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/ircd_parser.c (file contents), Revision 1156 by michael, Tue Aug 9 20:29:20 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 3229 by michael, Sat Mar 29 17:28:01 2014 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 3.0.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-2013 Free Software Foundation, Inc.
6 >
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 26 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "3.0.2"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 58 | Line 58
58   /* Pull parsers.  */
59   #define YYPULL 1
60  
61 /* Using locations.  */
62 #define YYLSP_NEEDED 0
61  
62  
63  
64   /* Copy the first part of user declarations.  */
65 <
68 < /* Line 268 of yacc.c  */
69 < #line 25 "ircd_parser.y"
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
68   #define YY_NO_UNPUT
# Line 77 | Line 73
73   #include "stdinc.h"
74   #include "ircd.h"
75   #include "list.h"
76 < #include "s_conf.h"
76 > #include "conf.h"
77 > #include "conf_class.h"
78   #include "event.h"
79 < #include "s_log.h"
79 > #include "log.h"
80   #include "client.h"     /* for UMODE_ALL only */
81   #include "irc_string.h"
85 #include "sprintf_irc.h"
82   #include "memory.h"
83   #include "modules.h"
84   #include "s_serv.h"
# Line 92 | Line 88
88   #include "resv.h"
89   #include "numeric.h"
90   #include "s_user.h"
91 + #include "motd.h"
92  
93   #ifdef HAVE_LIBCRYPTO
94   #include <openssl/rsa.h>
95   #include <openssl/bio.h>
96   #include <openssl/pem.h>
97 + #include <openssl/dh.h>
98   #endif
99  
100 < static char *class_name = NULL;
103 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
106 < static struct ClassItem *yy_class = NULL;
107 < static char *yy_class_name = NULL;
108 <
109 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
111 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
112 < static unsigned int listener_flags = 0;
113 < static unsigned int regex_ban = 0;
114 < static char userbuf[IRCD_BUFSIZE];
115 < static char hostbuf[IRCD_BUFSIZE];
116 < static char reasonbuf[REASONLEN + 1];
117 < static char gecos_name[REALLEN * 4];
118 <
119 < static char *resv_reason = NULL;
120 < static char *listener_address = NULL;
121 < static int not_atom = 0;
100 > #include "rsa.h"
101  
102 < struct CollectItem
124 < {
125 <  dlink_node node;
126 <  char *name;
127 <  char *user;
128 <  char *host;
129 <  char *passwd;
130 <  int  port;
131 <  int  flags;
132 < #ifdef HAVE_LIBCRYPTO
133 <  char *rsa_public_key_file;
134 <  RSA *rsa_public_key;
135 < #endif
136 < };
102 > int yylex(void);
103  
104 < static void
139 < free_collect_item(struct CollectItem *item)
104 > static struct
105   {
106 <  MyFree(item->name);
107 <  MyFree(item->user);
108 <  MyFree(item->host);
109 <  MyFree(item->passwd);
110 < #ifdef HAVE_LIBCRYPTO
111 <  MyFree(item->rsa_public_key_file);
112 < #endif
113 <  MyFree(item);
114 < }
106 >  struct {
107 >    dlink_list list;
108 >  } mask,
109 >    leaf,
110 >    hub;
111 >
112 >  struct {
113 >    char buf[IRCD_BUFSIZE];
114 >  } name,
115 >    user,
116 >    host,
117 >    addr,
118 >    bind,
119 >    file,
120 >    ciph,
121 >    cert,
122 >    rpass,
123 >    spass,
124 >    class;
125 >
126 >  struct {
127 >    unsigned int value;
128 >  } flags,
129 >    modes,
130 >    size,
131 >    type,
132 >    port,
133 >    aftype,
134 >    ping_freq,
135 >    max_perip,
136 >    con_freq,
137 >    min_idle,
138 >    max_idle,
139 >    max_total,
140 >    max_global,
141 >    max_local,
142 >    max_ident,
143 >    max_sendq,
144 >    max_recvq,
145 >    cidr_bitlen_ipv4,
146 >    cidr_bitlen_ipv6,
147 >    number_per_cidr;
148 > } block_state;
149  
150   static void
151 < unhook_hub_leaf_confs(void)
151 > reset_block_state(void)
152   {
153 <  dlink_node *ptr;
155 <  dlink_node *next_ptr;
156 <  struct CollectItem *yy_hconf;
157 <  struct CollectItem *yy_lconf;
153 >  dlink_node *ptr = NULL, *ptr_next = NULL;
154  
155 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
155 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
156    {
157 <    yy_hconf = ptr->data;
158 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
159 <    free_collect_item(yy_hconf);
157 >    MyFree(ptr->data);
158 >    dlinkDelete(ptr, &block_state.mask.list);
159 >    free_dlink_node(ptr);
160    }
161  
162 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
162 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
163    {
164 <    yy_lconf = ptr->data;
165 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
166 <    free_collect_item(yy_lconf);
164 >    MyFree(ptr->data);
165 >    dlinkDelete(ptr, &block_state.leaf.list);
166 >    free_dlink_node(ptr);
167    }
172 }
168  
169 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
170 +  {
171 +    MyFree(ptr->data);
172 +    dlinkDelete(ptr, &block_state.hub.list);
173 +    free_dlink_node(ptr);
174 +  }
175  
176 +  memset(&block_state, 0, sizeof(block_state));
177 + }
178  
176 /* Line 268 of yacc.c  */
177 #line 178 "ircd_parser.c"
179  
180 < /* Enabling traces.  */
181 < #ifndef YYDEBUG
182 < # define YYDEBUG 0
183 < #endif
180 > #line 181 "conf_parser.c" /* yacc.c:339  */
181 >
182 > # ifndef YY_NULLPTR
183 > #  if defined __cplusplus && 201103L <= __cplusplus
184 > #   define YY_NULLPTR nullptr
185 > #  else
186 > #   define YY_NULLPTR 0
187 > #  endif
188 > # endif
189  
190   /* Enabling verbose error messages.  */
191   #ifdef YYERROR_VERBOSE
# Line 189 | Line 195 | unhook_hub_leaf_confs(void)
195   # define YYERROR_VERBOSE 0
196   #endif
197  
198 < /* Enabling the token table.  */
199 < #ifndef YYTOKEN_TABLE
200 < # define YYTOKEN_TABLE 0
198 > /* In a future release of Bison, this section will be replaced
199 >   by #include "y.tab.h".  */
200 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
201 > # define YY_YY_CONF_PARSER_H_INCLUDED
202 > /* Debug traces.  */
203 > #ifndef YYDEBUG
204 > # define YYDEBUG 0
205 > #endif
206 > #if YYDEBUG
207 > extern int yydebug;
208   #endif
209  
210 <
198 < /* Tokens.  */
210 > /* Token type.  */
211   #ifndef YYTOKENTYPE
212   # define YYTOKENTYPE
213 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
214 <      know about them.  */
215 <   enum yytokentype {
216 <     ACCEPT_PASSWORD = 258,
217 <     ACTION = 259,
218 <     ADMIN = 260,
219 <     AFTYPE = 261,
220 <     T_ALLOW = 262,
221 <     ANTI_NICK_FLOOD = 263,
222 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
223 <     AUTOCONN = 265,
224 <     T_BLOCK = 266,
225 <     BURST_AWAY = 267,
226 <     BURST_TOPICWHO = 268,
227 <     BYTES = 269,
228 <     KBYTES = 270,
229 <     MBYTES = 271,
230 <     GBYTES = 272,
231 <     TBYTES = 273,
232 <     CALLER_ID_WAIT = 274,
233 <     CAN_FLOOD = 275,
234 <     CAN_IDLE = 276,
235 <     CHANNEL = 277,
236 <     CIDR_BITLEN_IPV4 = 278,
237 <     CIDR_BITLEN_IPV6 = 279,
238 <     CIPHER_PREFERENCE = 280,
239 <     CLASS = 281,
240 <     COMPRESSED = 282,
241 <     COMPRESSION_LEVEL = 283,
242 <     CONNECT = 284,
243 <     CONNECTFREQ = 285,
244 <     CRYPTLINK = 286,
245 <     DEFAULT_CIPHER_PREFERENCE = 287,
246 <     DEFAULT_FLOODCOUNT = 288,
247 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
248 <     DEFAULT_SPLIT_USER_COUNT = 290,
249 <     DENY = 291,
250 <     DESCRIPTION = 292,
251 <     DIE = 293,
252 <     DISABLE_AUTH = 294,
253 <     DISABLE_FAKE_CHANNELS = 295,
254 <     DISABLE_HIDDEN = 296,
255 <     DISABLE_LOCAL_CHANNELS = 297,
256 <     DISABLE_REMOTE_COMMANDS = 298,
257 <     DOTS_IN_IDENT = 299,
258 <     DURATION = 300,
259 <     EGDPOOL_PATH = 301,
260 <     EMAIL = 302,
261 <     ENABLE = 303,
262 <     ENCRYPTED = 304,
263 <     EXCEED_LIMIT = 305,
264 <     EXEMPT = 306,
265 <     FAILED_OPER_NOTICE = 307,
266 <     IRCD_FLAGS = 308,
267 <     FLATTEN_LINKS = 309,
268 <     FFAILED_OPERLOG = 310,
269 <     FKILLLOG = 311,
270 <     FKLINELOG = 312,
271 <     FGLINELOG = 313,
272 <     FIOERRLOG = 314,
273 <     FOPERLOG = 315,
274 <     FOPERSPYLOG = 316,
275 <     FUSERLOG = 317,
276 <     GECOS = 318,
277 <     GENERAL = 319,
278 <     GLINE = 320,
279 <     GLINES = 321,
280 <     GLINE_EXEMPT = 322,
281 <     GLINE_LOG = 323,
282 <     GLINE_TIME = 324,
283 <     GLINE_MIN_CIDR = 325,
284 <     GLINE_MIN_CIDR6 = 326,
285 <     GLOBAL_KILL = 327,
286 <     IRCD_AUTH = 328,
287 <     NEED_IDENT = 329,
288 <     HAVENT_READ_CONF = 330,
289 <     HIDDEN = 331,
290 <     HIDDEN_ADMIN = 332,
291 <     HIDDEN_NAME = 333,
292 <     HIDDEN_OPER = 334,
293 <     HIDE_SERVER_IPS = 335,
294 <     HIDE_SERVERS = 336,
295 <     HIDE_SPOOF_IPS = 337,
296 <     HOST = 338,
297 <     HUB = 339,
298 <     HUB_MASK = 340,
299 <     IDLETIME = 341,
300 <     IGNORE_BOGUS_TS = 342,
301 <     INVISIBLE_ON_CONNECT = 343,
302 <     IP = 344,
303 <     KILL = 345,
304 <     KILL_CHASE_TIME_LIMIT = 346,
305 <     KLINE = 347,
306 <     KLINE_EXEMPT = 348,
307 <     KLINE_REASON = 349,
308 <     KLINE_WITH_REASON = 350,
309 <     KNOCK_DELAY = 351,
310 <     KNOCK_DELAY_CHANNEL = 352,
311 <     LEAF_MASK = 353,
312 <     LINKS_DELAY = 354,
313 <     LISTEN = 355,
314 <     T_LOG = 356,
315 <     LOGGING = 357,
316 <     LOG_LEVEL = 358,
317 <     MAX_ACCEPT = 359,
318 <     MAX_BANS = 360,
319 <     MAX_CHANS_PER_USER = 361,
320 <     MAX_GLOBAL = 362,
321 <     MAX_IDENT = 363,
322 <     MAX_LOCAL = 364,
323 <     MAX_NICK_CHANGES = 365,
324 <     MAX_NICK_TIME = 366,
325 <     MAX_NUMBER = 367,
326 <     MAX_TARGETS = 368,
327 <     MAX_WATCH = 369,
328 <     MESSAGE_LOCALE = 370,
329 <     MIN_NONWILDCARD = 371,
330 <     MIN_NONWILDCARD_SIMPLE = 372,
331 <     MODULE = 373,
332 <     MODULES = 374,
333 <     NAME = 375,
334 <     NEED_PASSWORD = 376,
335 <     NETWORK_DESC = 377,
336 <     NETWORK_NAME = 378,
337 <     NICK = 379,
338 <     NICK_CHANGES = 380,
339 <     NO_CREATE_ON_SPLIT = 381,
340 <     NO_JOIN_ON_SPLIT = 382,
341 <     NO_OPER_FLOOD = 383,
342 <     NO_TILDE = 384,
343 <     NOT = 385,
344 <     NUMBER = 386,
345 <     NUMBER_PER_IDENT = 387,
346 <     NUMBER_PER_CIDR = 388,
347 <     NUMBER_PER_IP = 389,
348 <     NUMBER_PER_IP_GLOBAL = 390,
349 <     OPERATOR = 391,
350 <     OPERS_BYPASS_CALLERID = 392,
351 <     OPER_LOG = 393,
352 <     OPER_ONLY_UMODES = 394,
353 <     OPER_PASS_RESV = 395,
354 <     OPER_SPY_T = 396,
355 <     OPER_UMODES = 397,
356 <     JOIN_FLOOD_COUNT = 398,
357 <     JOIN_FLOOD_TIME = 399,
358 <     PACE_WAIT = 400,
359 <     PACE_WAIT_SIMPLE = 401,
360 <     PASSWORD = 402,
361 <     PATH = 403,
362 <     PING_COOKIE = 404,
363 <     PING_TIME = 405,
364 <     PING_WARNING = 406,
365 <     PORT = 407,
366 <     QSTRING = 408,
367 <     QUIET_ON_BAN = 409,
368 <     REASON = 410,
369 <     REDIRPORT = 411,
370 <     REDIRSERV = 412,
371 <     REGEX_T = 413,
372 <     REHASH = 414,
373 <     TREJECT_HOLD_TIME = 415,
374 <     REMOTE = 416,
375 <     REMOTEBAN = 417,
376 <     RESTRICT_CHANNELS = 418,
377 <     RESTRICTED = 419,
378 <     RSA_PRIVATE_KEY_FILE = 420,
379 <     RSA_PUBLIC_KEY_FILE = 421,
380 <     SSL_CERTIFICATE_FILE = 422,
381 <     T_SSL_CONNECTION_METHOD = 423,
382 <     T_SSLV3 = 424,
383 <     T_TLSV1 = 425,
384 <     RESV = 426,
385 <     RESV_EXEMPT = 427,
386 <     SECONDS = 428,
387 <     MINUTES = 429,
388 <     HOURS = 430,
389 <     DAYS = 431,
390 <     WEEKS = 432,
391 <     SENDQ = 433,
392 <     SEND_PASSWORD = 434,
393 <     SERVERHIDE = 435,
394 <     SERVERINFO = 436,
395 <     SERVLINK_PATH = 437,
396 <     IRCD_SID = 438,
397 <     TKLINE_EXPIRE_NOTICES = 439,
398 <     T_SHARED = 440,
399 <     T_CLUSTER = 441,
400 <     TYPE = 442,
401 <     SHORT_MOTD = 443,
402 <     SILENT = 444,
403 <     SPOOF = 445,
404 <     SPOOF_NOTICE = 446,
405 <     STATS_E_DISABLED = 447,
406 <     STATS_I_OPER_ONLY = 448,
407 <     STATS_K_OPER_ONLY = 449,
408 <     STATS_O_OPER_ONLY = 450,
409 <     STATS_P_OPER_ONLY = 451,
410 <     TBOOL = 452,
411 <     TMASKED = 453,
412 <     T_REJECT = 454,
413 <     TS_MAX_DELTA = 455,
414 <     TS_WARN_DELTA = 456,
415 <     TWODOTS = 457,
416 <     T_ALL = 458,
417 <     T_BOTS = 459,
418 <     T_SOFTCALLERID = 460,
419 <     T_CALLERID = 461,
420 <     T_CCONN = 462,
421 <     T_CCONN_FULL = 463,
422 <     T_CLIENT_FLOOD = 464,
423 <     T_DEAF = 465,
424 <     T_DEBUG = 466,
425 <     T_DRONE = 467,
426 <     T_EXTERNAL = 468,
427 <     T_FULL = 469,
428 <     T_INVISIBLE = 470,
429 <     T_IPV4 = 471,
430 <     T_IPV6 = 472,
431 <     T_LOCOPS = 473,
432 <     T_LOGPATH = 474,
433 <     T_L_CRIT = 475,
434 <     T_L_DEBUG = 476,
435 <     T_L_ERROR = 477,
436 <     T_L_INFO = 478,
437 <     T_L_NOTICE = 479,
438 <     T_L_TRACE = 480,
439 <     T_L_WARN = 481,
428 <     T_MAX_CLIENTS = 482,
429 <     T_NCHANGE = 483,
430 <     T_OPERWALL = 484,
431 <     T_REJ = 485,
432 <     T_SERVER = 486,
433 <     T_SERVNOTICE = 487,
434 <     T_SKILL = 488,
435 <     T_SPY = 489,
436 <     T_SSL = 490,
437 <     T_UMODES = 491,
438 <     T_UNAUTH = 492,
439 <     T_UNRESV = 493,
440 <     T_UNXLINE = 494,
441 <     T_WALLOP = 495,
442 <     THROTTLE_TIME = 496,
443 <     TOPICBURST = 497,
444 <     TRUE_NO_OPER_FLOOD = 498,
445 <     TKLINE = 499,
446 <     TXLINE = 500,
447 <     TRESV = 501,
448 <     UNKLINE = 502,
449 <     USER = 503,
450 <     USE_EGD = 504,
451 <     USE_EXCEPT = 505,
452 <     USE_INVEX = 506,
453 <     USE_KNOCK = 507,
454 <     USE_LOGGING = 508,
455 <     USE_WHOIS_ACTUALLY = 509,
456 <     VHOST = 510,
457 <     VHOST6 = 511,
458 <     XLINE = 512,
459 <     WARN = 513,
460 <     WARN_NO_NLINE = 514
461 <   };
213 >  enum yytokentype
214 >  {
215 >    ACCEPT_PASSWORD = 258,
216 >    ADMIN = 259,
217 >    AFTYPE = 260,
218 >    ANTI_NICK_FLOOD = 261,
219 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
220 >    AUTOCONN = 263,
221 >    BYTES = 264,
222 >    KBYTES = 265,
223 >    MBYTES = 266,
224 >    CALLER_ID_WAIT = 267,
225 >    CAN_FLOOD = 268,
226 >    CHANNEL = 269,
227 >    CIDR_BITLEN_IPV4 = 270,
228 >    CIDR_BITLEN_IPV6 = 271,
229 >    CLASS = 272,
230 >    CONNECT = 273,
231 >    CONNECTFREQ = 274,
232 >    CYCLE_ON_HOST_CHANGE = 275,
233 >    DEFAULT_FLOODCOUNT = 276,
234 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
235 >    DEFAULT_SPLIT_USER_COUNT = 278,
236 >    DENY = 279,
237 >    DESCRIPTION = 280,
238 >    DIE = 281,
239 >    DISABLE_AUTH = 282,
240 >    DISABLE_FAKE_CHANNELS = 283,
241 >    DISABLE_REMOTE_COMMANDS = 284,
242 >    DOTS_IN_IDENT = 285,
243 >    EGDPOOL_PATH = 286,
244 >    EMAIL = 287,
245 >    ENCRYPTED = 288,
246 >    EXCEED_LIMIT = 289,
247 >    EXEMPT = 290,
248 >    FAILED_OPER_NOTICE = 291,
249 >    FLATTEN_LINKS = 292,
250 >    GECOS = 293,
251 >    GENERAL = 294,
252 >    GLINE = 295,
253 >    GLINE_DURATION = 296,
254 >    GLINE_ENABLE = 297,
255 >    GLINE_EXEMPT = 298,
256 >    GLINE_MIN_CIDR = 299,
257 >    GLINE_MIN_CIDR6 = 300,
258 >    GLINE_REQUEST_DURATION = 301,
259 >    GLOBAL_KILL = 302,
260 >    HAVENT_READ_CONF = 303,
261 >    HIDDEN = 304,
262 >    HIDDEN_NAME = 305,
263 >    HIDE_IDLE_FROM_OPERS = 306,
264 >    HIDE_SERVER_IPS = 307,
265 >    HIDE_SERVERS = 308,
266 >    HIDE_SERVICES = 309,
267 >    HIDE_SPOOF_IPS = 310,
268 >    HOST = 311,
269 >    HUB = 312,
270 >    HUB_MASK = 313,
271 >    IGNORE_BOGUS_TS = 314,
272 >    INVISIBLE_ON_CONNECT = 315,
273 >    IP = 316,
274 >    IRCD_AUTH = 317,
275 >    IRCD_FLAGS = 318,
276 >    IRCD_SID = 319,
277 >    JOIN_FLOOD_COUNT = 320,
278 >    JOIN_FLOOD_TIME = 321,
279 >    KILL = 322,
280 >    KILL_CHASE_TIME_LIMIT = 323,
281 >    KLINE = 324,
282 >    KLINE_EXEMPT = 325,
283 >    KNOCK_DELAY = 326,
284 >    KNOCK_DELAY_CHANNEL = 327,
285 >    LEAF_MASK = 328,
286 >    LINKS_DELAY = 329,
287 >    LISTEN = 330,
288 >    MASK = 331,
289 >    MAX_ACCEPT = 332,
290 >    MAX_BANS = 333,
291 >    MAX_CHANS_PER_OPER = 334,
292 >    MAX_CHANS_PER_USER = 335,
293 >    MAX_GLOBAL = 336,
294 >    MAX_IDENT = 337,
295 >    MAX_IDLE = 338,
296 >    MAX_LOCAL = 339,
297 >    MAX_NICK_CHANGES = 340,
298 >    MAX_NICK_LENGTH = 341,
299 >    MAX_NICK_TIME = 342,
300 >    MAX_NUMBER = 343,
301 >    MAX_TARGETS = 344,
302 >    MAX_TOPIC_LENGTH = 345,
303 >    MAX_WATCH = 346,
304 >    MIN_IDLE = 347,
305 >    MIN_NONWILDCARD = 348,
306 >    MIN_NONWILDCARD_SIMPLE = 349,
307 >    MODULE = 350,
308 >    MODULES = 351,
309 >    MOTD = 352,
310 >    NAME = 353,
311 >    NEED_IDENT = 354,
312 >    NEED_PASSWORD = 355,
313 >    NETWORK_DESC = 356,
314 >    NETWORK_NAME = 357,
315 >    NICK = 358,
316 >    NO_CREATE_ON_SPLIT = 359,
317 >    NO_JOIN_ON_SPLIT = 360,
318 >    NO_OPER_FLOOD = 361,
319 >    NO_TILDE = 362,
320 >    NUMBER = 363,
321 >    NUMBER_PER_CIDR = 364,
322 >    NUMBER_PER_IP = 365,
323 >    OPER_ONLY_UMODES = 366,
324 >    OPER_PASS_RESV = 367,
325 >    OPER_UMODES = 368,
326 >    OPERATOR = 369,
327 >    OPERS_BYPASS_CALLERID = 370,
328 >    PACE_WAIT = 371,
329 >    PACE_WAIT_SIMPLE = 372,
330 >    PASSWORD = 373,
331 >    PATH = 374,
332 >    PING_COOKIE = 375,
333 >    PING_TIME = 376,
334 >    PORT = 377,
335 >    QSTRING = 378,
336 >    RANDOM_IDLE = 379,
337 >    REASON = 380,
338 >    REDIRPORT = 381,
339 >    REDIRSERV = 382,
340 >    REHASH = 383,
341 >    REMOTE = 384,
342 >    REMOTEBAN = 385,
343 >    RESV = 386,
344 >    RESV_EXEMPT = 387,
345 >    RSA_PRIVATE_KEY_FILE = 388,
346 >    RSA_PUBLIC_KEY_FILE = 389,
347 >    SECONDS = 390,
348 >    MINUTES = 391,
349 >    HOURS = 392,
350 >    DAYS = 393,
351 >    WEEKS = 394,
352 >    MONTHS = 395,
353 >    YEARS = 396,
354 >    SEND_PASSWORD = 397,
355 >    SENDQ = 398,
356 >    SERVERHIDE = 399,
357 >    SERVERINFO = 400,
358 >    SHORT_MOTD = 401,
359 >    SPOOF = 402,
360 >    SPOOF_NOTICE = 403,
361 >    SQUIT = 404,
362 >    SSL_CERTIFICATE_FILE = 405,
363 >    SSL_CERTIFICATE_FINGERPRINT = 406,
364 >    SSL_CONNECTION_REQUIRED = 407,
365 >    SSL_DH_PARAM_FILE = 408,
366 >    STATS_E_DISABLED = 409,
367 >    STATS_I_OPER_ONLY = 410,
368 >    STATS_K_OPER_ONLY = 411,
369 >    STATS_O_OPER_ONLY = 412,
370 >    STATS_P_OPER_ONLY = 413,
371 >    STATS_U_OPER_ONLY = 414,
372 >    T_ALL = 415,
373 >    T_BOTS = 416,
374 >    T_CALLERID = 417,
375 >    T_CCONN = 418,
376 >    T_CLUSTER = 419,
377 >    T_DEAF = 420,
378 >    T_DEBUG = 421,
379 >    T_DLINE = 422,
380 >    T_EXTERNAL = 423,
381 >    T_FARCONNECT = 424,
382 >    T_FILE = 425,
383 >    T_FULL = 426,
384 >    T_GLOBOPS = 427,
385 >    T_INVISIBLE = 428,
386 >    T_IPV4 = 429,
387 >    T_IPV6 = 430,
388 >    T_LOCOPS = 431,
389 >    T_LOG = 432,
390 >    T_MAX_CLIENTS = 433,
391 >    T_NCHANGE = 434,
392 >    T_NONONREG = 435,
393 >    T_OPERWALL = 436,
394 >    T_RECVQ = 437,
395 >    T_REJ = 438,
396 >    T_RESTART = 439,
397 >    T_SERVER = 440,
398 >    T_SERVICE = 441,
399 >    T_SERVICES_NAME = 442,
400 >    T_SERVNOTICE = 443,
401 >    T_SET = 444,
402 >    T_SHARED = 445,
403 >    T_SIZE = 446,
404 >    T_SKILL = 447,
405 >    T_SOFTCALLERID = 448,
406 >    T_SPY = 449,
407 >    T_SSL = 450,
408 >    T_SSL_CIPHER_LIST = 451,
409 >    T_SSL_CLIENT_METHOD = 452,
410 >    T_SSL_SERVER_METHOD = 453,
411 >    T_SSLV3 = 454,
412 >    T_TLSV1 = 455,
413 >    T_UMODES = 456,
414 >    T_UNAUTH = 457,
415 >    T_UNDLINE = 458,
416 >    T_UNLIMITED = 459,
417 >    T_UNRESV = 460,
418 >    T_UNXLINE = 461,
419 >    T_WALLOP = 462,
420 >    T_WALLOPS = 463,
421 >    T_WEBIRC = 464,
422 >    TBOOL = 465,
423 >    THROTTLE_TIME = 466,
424 >    TKLINE_EXPIRE_NOTICES = 467,
425 >    TMASKED = 468,
426 >    TRUE_NO_OPER_FLOOD = 469,
427 >    TS_MAX_DELTA = 470,
428 >    TS_WARN_DELTA = 471,
429 >    TWODOTS = 472,
430 >    TYPE = 473,
431 >    UNKLINE = 474,
432 >    USE_EGD = 475,
433 >    USE_LOGGING = 476,
434 >    USER = 477,
435 >    VHOST = 478,
436 >    VHOST6 = 479,
437 >    WARN_NO_NLINE = 480,
438 >    XLINE = 481
439 >  };
440   #endif
441   /* Tokens.  */
442   #define ACCEPT_PASSWORD 258
443 < #define ACTION 259
444 < #define ADMIN 260
445 < #define AFTYPE 261
446 < #define T_ALLOW 262
447 < #define ANTI_NICK_FLOOD 263
448 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
449 < #define AUTOCONN 265
450 < #define T_BLOCK 266
451 < #define BURST_AWAY 267
452 < #define BURST_TOPICWHO 268
453 < #define BYTES 269
454 < #define KBYTES 270
455 < #define MBYTES 271
456 < #define GBYTES 272
457 < #define TBYTES 273
458 < #define CALLER_ID_WAIT 274
459 < #define CAN_FLOOD 275
460 < #define CAN_IDLE 276
461 < #define CHANNEL 277
462 < #define CIDR_BITLEN_IPV4 278
463 < #define CIDR_BITLEN_IPV6 279
464 < #define CIPHER_PREFERENCE 280
465 < #define CLASS 281
466 < #define COMPRESSED 282
467 < #define COMPRESSION_LEVEL 283
468 < #define CONNECT 284
469 < #define CONNECTFREQ 285
470 < #define CRYPTLINK 286
471 < #define DEFAULT_CIPHER_PREFERENCE 287
472 < #define DEFAULT_FLOODCOUNT 288
473 < #define DEFAULT_SPLIT_SERVER_COUNT 289
474 < #define DEFAULT_SPLIT_USER_COUNT 290
475 < #define DENY 291
476 < #define DESCRIPTION 292
477 < #define DIE 293
478 < #define DISABLE_AUTH 294
479 < #define DISABLE_FAKE_CHANNELS 295
480 < #define DISABLE_HIDDEN 296
481 < #define DISABLE_LOCAL_CHANNELS 297
482 < #define DISABLE_REMOTE_COMMANDS 298
483 < #define DOTS_IN_IDENT 299
484 < #define DURATION 300
485 < #define EGDPOOL_PATH 301
486 < #define EMAIL 302
487 < #define ENABLE 303
488 < #define ENCRYPTED 304
489 < #define EXCEED_LIMIT 305
490 < #define EXEMPT 306
491 < #define FAILED_OPER_NOTICE 307
492 < #define IRCD_FLAGS 308
493 < #define FLATTEN_LINKS 309
494 < #define FFAILED_OPERLOG 310
495 < #define FKILLLOG 311
496 < #define FKLINELOG 312
497 < #define FGLINELOG 313
498 < #define FIOERRLOG 314
499 < #define FOPERLOG 315
500 < #define FOPERSPYLOG 316
501 < #define FUSERLOG 317
502 < #define GECOS 318
503 < #define GENERAL 319
504 < #define GLINE 320
505 < #define GLINES 321
506 < #define GLINE_EXEMPT 322
507 < #define GLINE_LOG 323
508 < #define GLINE_TIME 324
509 < #define GLINE_MIN_CIDR 325
510 < #define GLINE_MIN_CIDR6 326
511 < #define GLOBAL_KILL 327
512 < #define IRCD_AUTH 328
513 < #define NEED_IDENT 329
514 < #define HAVENT_READ_CONF 330
515 < #define HIDDEN 331
516 < #define HIDDEN_ADMIN 332
517 < #define HIDDEN_NAME 333
518 < #define HIDDEN_OPER 334
519 < #define HIDE_SERVER_IPS 335
520 < #define HIDE_SERVERS 336
521 < #define HIDE_SPOOF_IPS 337
522 < #define HOST 338
523 < #define HUB 339
524 < #define HUB_MASK 340
525 < #define IDLETIME 341
526 < #define IGNORE_BOGUS_TS 342
527 < #define INVISIBLE_ON_CONNECT 343
528 < #define IP 344
529 < #define KILL 345
530 < #define KILL_CHASE_TIME_LIMIT 346
531 < #define KLINE 347
532 < #define KLINE_EXEMPT 348
533 < #define KLINE_REASON 349
534 < #define KLINE_WITH_REASON 350
535 < #define KNOCK_DELAY 351
536 < #define KNOCK_DELAY_CHANNEL 352
537 < #define LEAF_MASK 353
538 < #define LINKS_DELAY 354
539 < #define LISTEN 355
540 < #define T_LOG 356
541 < #define LOGGING 357
542 < #define LOG_LEVEL 358
543 < #define MAX_ACCEPT 359
544 < #define MAX_BANS 360
545 < #define MAX_CHANS_PER_USER 361
546 < #define MAX_GLOBAL 362
547 < #define MAX_IDENT 363
548 < #define MAX_LOCAL 364
549 < #define MAX_NICK_CHANGES 365
550 < #define MAX_NICK_TIME 366
551 < #define MAX_NUMBER 367
552 < #define MAX_TARGETS 368
553 < #define MAX_WATCH 369
554 < #define MESSAGE_LOCALE 370
555 < #define MIN_NONWILDCARD 371
556 < #define MIN_NONWILDCARD_SIMPLE 372
557 < #define MODULE 373
558 < #define MODULES 374
559 < #define NAME 375
560 < #define NEED_PASSWORD 376
561 < #define NETWORK_DESC 377
562 < #define NETWORK_NAME 378
563 < #define NICK 379
564 < #define NICK_CHANGES 380
565 < #define NO_CREATE_ON_SPLIT 381
566 < #define NO_JOIN_ON_SPLIT 382
567 < #define NO_OPER_FLOOD 383
568 < #define NO_TILDE 384
569 < #define NOT 385
570 < #define NUMBER 386
571 < #define NUMBER_PER_IDENT 387
572 < #define NUMBER_PER_CIDR 388
573 < #define NUMBER_PER_IP 389
574 < #define NUMBER_PER_IP_GLOBAL 390
575 < #define OPERATOR 391
576 < #define OPERS_BYPASS_CALLERID 392
577 < #define OPER_LOG 393
578 < #define OPER_ONLY_UMODES 394
579 < #define OPER_PASS_RESV 395
580 < #define OPER_SPY_T 396
581 < #define OPER_UMODES 397
582 < #define JOIN_FLOOD_COUNT 398
583 < #define JOIN_FLOOD_TIME 399
584 < #define PACE_WAIT 400
585 < #define PACE_WAIT_SIMPLE 401
586 < #define PASSWORD 402
587 < #define PATH 403
588 < #define PING_COOKIE 404
589 < #define PING_TIME 405
590 < #define PING_WARNING 406
591 < #define PORT 407
592 < #define QSTRING 408
593 < #define QUIET_ON_BAN 409
594 < #define REASON 410
595 < #define REDIRPORT 411
596 < #define REDIRSERV 412
597 < #define REGEX_T 413
598 < #define REHASH 414
599 < #define TREJECT_HOLD_TIME 415
600 < #define REMOTE 416
601 < #define REMOTEBAN 417
602 < #define RESTRICT_CHANNELS 418
603 < #define RESTRICTED 419
604 < #define RSA_PRIVATE_KEY_FILE 420
605 < #define RSA_PUBLIC_KEY_FILE 421
606 < #define SSL_CERTIFICATE_FILE 422
607 < #define T_SSL_CONNECTION_METHOD 423
608 < #define T_SSLV3 424
609 < #define T_TLSV1 425
610 < #define RESV 426
611 < #define RESV_EXEMPT 427
612 < #define SECONDS 428
613 < #define MINUTES 429
614 < #define HOURS 430
615 < #define DAYS 431
616 < #define WEEKS 432
617 < #define SENDQ 433
618 < #define SEND_PASSWORD 434
619 < #define SERVERHIDE 435
620 < #define SERVERINFO 436
621 < #define SERVLINK_PATH 437
622 < #define IRCD_SID 438
623 < #define TKLINE_EXPIRE_NOTICES 439
624 < #define T_SHARED 440
625 < #define T_CLUSTER 441
626 < #define TYPE 442
627 < #define SHORT_MOTD 443
628 < #define SILENT 444
629 < #define SPOOF 445
630 < #define SPOOF_NOTICE 446
631 < #define STATS_E_DISABLED 447
632 < #define STATS_I_OPER_ONLY 448
633 < #define STATS_K_OPER_ONLY 449
634 < #define STATS_O_OPER_ONLY 450
635 < #define STATS_P_OPER_ONLY 451
636 < #define TBOOL 452
637 < #define TMASKED 453
638 < #define T_REJECT 454
639 < #define TS_MAX_DELTA 455
640 < #define TS_WARN_DELTA 456
641 < #define TWODOTS 457
642 < #define T_ALL 458
643 < #define T_BOTS 459
644 < #define T_SOFTCALLERID 460
645 < #define T_CALLERID 461
646 < #define T_CCONN 462
647 < #define T_CCONN_FULL 463
648 < #define T_CLIENT_FLOOD 464
649 < #define T_DEAF 465
650 < #define T_DEBUG 466
651 < #define T_DRONE 467
652 < #define T_EXTERNAL 468
653 < #define T_FULL 469
654 < #define T_INVISIBLE 470
655 < #define T_IPV4 471
656 < #define T_IPV6 472
657 < #define T_LOCOPS 473
658 < #define T_LOGPATH 474
659 < #define T_L_CRIT 475
660 < #define T_L_DEBUG 476
661 < #define T_L_ERROR 477
662 < #define T_L_INFO 478
663 < #define T_L_NOTICE 479
664 < #define T_L_TRACE 480
665 < #define T_L_WARN 481
688 < #define T_MAX_CLIENTS 482
689 < #define T_NCHANGE 483
690 < #define T_OPERWALL 484
691 < #define T_REJ 485
692 < #define T_SERVER 486
693 < #define T_SERVNOTICE 487
694 < #define T_SKILL 488
695 < #define T_SPY 489
696 < #define T_SSL 490
697 < #define T_UMODES 491
698 < #define T_UNAUTH 492
699 < #define T_UNRESV 493
700 < #define T_UNXLINE 494
701 < #define T_WALLOP 495
702 < #define THROTTLE_TIME 496
703 < #define TOPICBURST 497
704 < #define TRUE_NO_OPER_FLOOD 498
705 < #define TKLINE 499
706 < #define TXLINE 500
707 < #define TRESV 501
708 < #define UNKLINE 502
709 < #define USER 503
710 < #define USE_EGD 504
711 < #define USE_EXCEPT 505
712 < #define USE_INVEX 506
713 < #define USE_KNOCK 507
714 < #define USE_LOGGING 508
715 < #define USE_WHOIS_ACTUALLY 509
716 < #define VHOST 510
717 < #define VHOST6 511
718 < #define XLINE 512
719 < #define WARN 513
720 < #define WARN_NO_NLINE 514
721 <
722 <
723 <
443 > #define ADMIN 259
444 > #define AFTYPE 260
445 > #define ANTI_NICK_FLOOD 261
446 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
447 > #define AUTOCONN 263
448 > #define BYTES 264
449 > #define KBYTES 265
450 > #define MBYTES 266
451 > #define CALLER_ID_WAIT 267
452 > #define CAN_FLOOD 268
453 > #define CHANNEL 269
454 > #define CIDR_BITLEN_IPV4 270
455 > #define CIDR_BITLEN_IPV6 271
456 > #define CLASS 272
457 > #define CONNECT 273
458 > #define CONNECTFREQ 274
459 > #define CYCLE_ON_HOST_CHANGE 275
460 > #define DEFAULT_FLOODCOUNT 276
461 > #define DEFAULT_SPLIT_SERVER_COUNT 277
462 > #define DEFAULT_SPLIT_USER_COUNT 278
463 > #define DENY 279
464 > #define DESCRIPTION 280
465 > #define DIE 281
466 > #define DISABLE_AUTH 282
467 > #define DISABLE_FAKE_CHANNELS 283
468 > #define DISABLE_REMOTE_COMMANDS 284
469 > #define DOTS_IN_IDENT 285
470 > #define EGDPOOL_PATH 286
471 > #define EMAIL 287
472 > #define ENCRYPTED 288
473 > #define EXCEED_LIMIT 289
474 > #define EXEMPT 290
475 > #define FAILED_OPER_NOTICE 291
476 > #define FLATTEN_LINKS 292
477 > #define GECOS 293
478 > #define GENERAL 294
479 > #define GLINE 295
480 > #define GLINE_DURATION 296
481 > #define GLINE_ENABLE 297
482 > #define GLINE_EXEMPT 298
483 > #define GLINE_MIN_CIDR 299
484 > #define GLINE_MIN_CIDR6 300
485 > #define GLINE_REQUEST_DURATION 301
486 > #define GLOBAL_KILL 302
487 > #define HAVENT_READ_CONF 303
488 > #define HIDDEN 304
489 > #define HIDDEN_NAME 305
490 > #define HIDE_IDLE_FROM_OPERS 306
491 > #define HIDE_SERVER_IPS 307
492 > #define HIDE_SERVERS 308
493 > #define HIDE_SERVICES 309
494 > #define HIDE_SPOOF_IPS 310
495 > #define HOST 311
496 > #define HUB 312
497 > #define HUB_MASK 313
498 > #define IGNORE_BOGUS_TS 314
499 > #define INVISIBLE_ON_CONNECT 315
500 > #define IP 316
501 > #define IRCD_AUTH 317
502 > #define IRCD_FLAGS 318
503 > #define IRCD_SID 319
504 > #define JOIN_FLOOD_COUNT 320
505 > #define JOIN_FLOOD_TIME 321
506 > #define KILL 322
507 > #define KILL_CHASE_TIME_LIMIT 323
508 > #define KLINE 324
509 > #define KLINE_EXEMPT 325
510 > #define KNOCK_DELAY 326
511 > #define KNOCK_DELAY_CHANNEL 327
512 > #define LEAF_MASK 328
513 > #define LINKS_DELAY 329
514 > #define LISTEN 330
515 > #define MASK 331
516 > #define MAX_ACCEPT 332
517 > #define MAX_BANS 333
518 > #define MAX_CHANS_PER_OPER 334
519 > #define MAX_CHANS_PER_USER 335
520 > #define MAX_GLOBAL 336
521 > #define MAX_IDENT 337
522 > #define MAX_IDLE 338
523 > #define MAX_LOCAL 339
524 > #define MAX_NICK_CHANGES 340
525 > #define MAX_NICK_LENGTH 341
526 > #define MAX_NICK_TIME 342
527 > #define MAX_NUMBER 343
528 > #define MAX_TARGETS 344
529 > #define MAX_TOPIC_LENGTH 345
530 > #define MAX_WATCH 346
531 > #define MIN_IDLE 347
532 > #define MIN_NONWILDCARD 348
533 > #define MIN_NONWILDCARD_SIMPLE 349
534 > #define MODULE 350
535 > #define MODULES 351
536 > #define MOTD 352
537 > #define NAME 353
538 > #define NEED_IDENT 354
539 > #define NEED_PASSWORD 355
540 > #define NETWORK_DESC 356
541 > #define NETWORK_NAME 357
542 > #define NICK 358
543 > #define NO_CREATE_ON_SPLIT 359
544 > #define NO_JOIN_ON_SPLIT 360
545 > #define NO_OPER_FLOOD 361
546 > #define NO_TILDE 362
547 > #define NUMBER 363
548 > #define NUMBER_PER_CIDR 364
549 > #define NUMBER_PER_IP 365
550 > #define OPER_ONLY_UMODES 366
551 > #define OPER_PASS_RESV 367
552 > #define OPER_UMODES 368
553 > #define OPERATOR 369
554 > #define OPERS_BYPASS_CALLERID 370
555 > #define PACE_WAIT 371
556 > #define PACE_WAIT_SIMPLE 372
557 > #define PASSWORD 373
558 > #define PATH 374
559 > #define PING_COOKIE 375
560 > #define PING_TIME 376
561 > #define PORT 377
562 > #define QSTRING 378
563 > #define RANDOM_IDLE 379
564 > #define REASON 380
565 > #define REDIRPORT 381
566 > #define REDIRSERV 382
567 > #define REHASH 383
568 > #define REMOTE 384
569 > #define REMOTEBAN 385
570 > #define RESV 386
571 > #define RESV_EXEMPT 387
572 > #define RSA_PRIVATE_KEY_FILE 388
573 > #define RSA_PUBLIC_KEY_FILE 389
574 > #define SECONDS 390
575 > #define MINUTES 391
576 > #define HOURS 392
577 > #define DAYS 393
578 > #define WEEKS 394
579 > #define MONTHS 395
580 > #define YEARS 396
581 > #define SEND_PASSWORD 397
582 > #define SENDQ 398
583 > #define SERVERHIDE 399
584 > #define SERVERINFO 400
585 > #define SHORT_MOTD 401
586 > #define SPOOF 402
587 > #define SPOOF_NOTICE 403
588 > #define SQUIT 404
589 > #define SSL_CERTIFICATE_FILE 405
590 > #define SSL_CERTIFICATE_FINGERPRINT 406
591 > #define SSL_CONNECTION_REQUIRED 407
592 > #define SSL_DH_PARAM_FILE 408
593 > #define STATS_E_DISABLED 409
594 > #define STATS_I_OPER_ONLY 410
595 > #define STATS_K_OPER_ONLY 411
596 > #define STATS_O_OPER_ONLY 412
597 > #define STATS_P_OPER_ONLY 413
598 > #define STATS_U_OPER_ONLY 414
599 > #define T_ALL 415
600 > #define T_BOTS 416
601 > #define T_CALLERID 417
602 > #define T_CCONN 418
603 > #define T_CLUSTER 419
604 > #define T_DEAF 420
605 > #define T_DEBUG 421
606 > #define T_DLINE 422
607 > #define T_EXTERNAL 423
608 > #define T_FARCONNECT 424
609 > #define T_FILE 425
610 > #define T_FULL 426
611 > #define T_GLOBOPS 427
612 > #define T_INVISIBLE 428
613 > #define T_IPV4 429
614 > #define T_IPV6 430
615 > #define T_LOCOPS 431
616 > #define T_LOG 432
617 > #define T_MAX_CLIENTS 433
618 > #define T_NCHANGE 434
619 > #define T_NONONREG 435
620 > #define T_OPERWALL 436
621 > #define T_RECVQ 437
622 > #define T_REJ 438
623 > #define T_RESTART 439
624 > #define T_SERVER 440
625 > #define T_SERVICE 441
626 > #define T_SERVICES_NAME 442
627 > #define T_SERVNOTICE 443
628 > #define T_SET 444
629 > #define T_SHARED 445
630 > #define T_SIZE 446
631 > #define T_SKILL 447
632 > #define T_SOFTCALLERID 448
633 > #define T_SPY 449
634 > #define T_SSL 450
635 > #define T_SSL_CIPHER_LIST 451
636 > #define T_SSL_CLIENT_METHOD 452
637 > #define T_SSL_SERVER_METHOD 453
638 > #define T_SSLV3 454
639 > #define T_TLSV1 455
640 > #define T_UMODES 456
641 > #define T_UNAUTH 457
642 > #define T_UNDLINE 458
643 > #define T_UNLIMITED 459
644 > #define T_UNRESV 460
645 > #define T_UNXLINE 461
646 > #define T_WALLOP 462
647 > #define T_WALLOPS 463
648 > #define T_WEBIRC 464
649 > #define TBOOL 465
650 > #define THROTTLE_TIME 466
651 > #define TKLINE_EXPIRE_NOTICES 467
652 > #define TMASKED 468
653 > #define TRUE_NO_OPER_FLOOD 469
654 > #define TS_MAX_DELTA 470
655 > #define TS_WARN_DELTA 471
656 > #define TWODOTS 472
657 > #define TYPE 473
658 > #define UNKLINE 474
659 > #define USE_EGD 475
660 > #define USE_LOGGING 476
661 > #define USER 477
662 > #define VHOST 478
663 > #define VHOST6 479
664 > #define WARN_NO_NLINE 480
665 > #define XLINE 481
666  
667 + /* Value type.  */
668   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
669 < typedef union YYSTYPE
669 > typedef union YYSTYPE YYSTYPE;
670 > union YYSTYPE
671   {
672 <
729 < /* Line 293 of yacc.c  */
730 < #line 131 "ircd_parser.y"
672 > #line 143 "conf_parser.y" /* yacc.c:355  */
673  
674    int number;
675    char *string;
676  
677 <
678 <
737 < /* Line 293 of yacc.c  */
738 < #line 739 "ircd_parser.c"
739 < } YYSTYPE;
677 > #line 678 "conf_parser.c" /* yacc.c:355  */
678 > };
679   # define YYSTYPE_IS_TRIVIAL 1
741 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
680   # define YYSTYPE_IS_DECLARED 1
681   #endif
682  
683  
684 < /* Copy the second part of user declarations.  */
684 > extern YYSTYPE yylval;
685 >
686 > int yyparse (void);
687 >
688 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
689  
690 + /* Copy the second part of user declarations.  */
691  
692 < /* Line 343 of yacc.c  */
750 < #line 751 "ircd_parser.c"
692 > #line 693 "conf_parser.c" /* yacc.c:358  */
693  
694   #ifdef short
695   # undef short
# Line 761 | Line 703 | typedef unsigned char yytype_uint8;
703  
704   #ifdef YYTYPE_INT8
705   typedef YYTYPE_INT8 yytype_int8;
764 #elif (defined __STDC__ || defined __C99__FUNC__ \
765     || defined __cplusplus || defined _MSC_VER)
766 typedef signed char yytype_int8;
706   #else
707 < typedef short int yytype_int8;
707 > typedef signed char yytype_int8;
708   #endif
709  
710   #ifdef YYTYPE_UINT16
# Line 785 | Line 724 | typedef short int yytype_int16;
724   #  define YYSIZE_T __SIZE_TYPE__
725   # elif defined size_t
726   #  define YYSIZE_T size_t
727 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
789 <     || defined __cplusplus || defined _MSC_VER)
727 > # elif ! defined YYSIZE_T
728   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
729   #  define YYSIZE_T size_t
730   # else
# Line 800 | Line 738 | typedef short int yytype_int16;
738   # if defined YYENABLE_NLS && YYENABLE_NLS
739   #  if ENABLE_NLS
740   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
741 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
741 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
742   #  endif
743   # endif
744   # ifndef YY_
745 < #  define YY_(msgid) msgid
745 > #  define YY_(Msgid) Msgid
746 > # endif
747 > #endif
748 >
749 > #ifndef YY_ATTRIBUTE
750 > # if (defined __GNUC__                                               \
751 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
752 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
753 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
754 > # else
755 > #  define YY_ATTRIBUTE(Spec) /* empty */
756 > # endif
757 > #endif
758 >
759 > #ifndef YY_ATTRIBUTE_PURE
760 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
761 > #endif
762 >
763 > #ifndef YY_ATTRIBUTE_UNUSED
764 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
765 > #endif
766 >
767 > #if !defined _Noreturn \
768 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
769 > # if defined _MSC_VER && 1200 <= _MSC_VER
770 > #  define _Noreturn __declspec (noreturn)
771 > # else
772 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
773   # endif
774   #endif
775  
776   /* Suppress unused-variable warnings by "using" E.  */
777   #if ! defined lint || defined __GNUC__
778 < # define YYUSE(e) ((void) (e))
778 > # define YYUSE(E) ((void) (E))
779   #else
780 < # define YYUSE(e) /* empty */
780 > # define YYUSE(E) /* empty */
781   #endif
782  
783 < /* Identity function, used to suppress warnings about constant conditions.  */
784 < #ifndef lint
785 < # define YYID(n) (n)
786 < #else
787 < #if (defined __STDC__ || defined __C99__FUNC__ \
788 <     || defined __cplusplus || defined _MSC_VER)
789 < static int
790 < YYID (int yyi)
783 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
784 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
785 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
786 >    _Pragma ("GCC diagnostic push") \
787 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
788 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
789 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
790 >    _Pragma ("GCC diagnostic pop")
791   #else
792 < static int
828 < YYID (yyi)
829 <    int yyi;
792 > # define YY_INITIAL_VALUE(Value) Value
793   #endif
794 < {
795 <  return yyi;
796 < }
794 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
795 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
796 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
797   #endif
798 + #ifndef YY_INITIAL_VALUE
799 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
800 + #endif
801 +
802  
803   #if ! defined yyoverflow || YYERROR_VERBOSE
804  
# Line 850 | Line 817 | YYID (yyi)
817   #    define alloca _alloca
818   #   else
819   #    define YYSTACK_ALLOC alloca
820 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
854 <     || defined __cplusplus || defined _MSC_VER)
820 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
821   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
822 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
823   #     ifndef EXIT_SUCCESS
824   #      define EXIT_SUCCESS 0
825   #     endif
# Line 862 | Line 829 | YYID (yyi)
829   # endif
830  
831   # ifdef YYSTACK_ALLOC
832 <   /* Pacify GCC's `empty if-body' warning.  */
833 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
832 >   /* Pacify GCC's 'empty if-body' warning.  */
833 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
834   #  ifndef YYSTACK_ALLOC_MAXIMUM
835      /* The OS might guarantee only one guard page at the bottom of the stack,
836         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 879 | Line 846 | YYID (yyi)
846   #  endif
847   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
848         && ! ((defined YYMALLOC || defined malloc) \
849 <             && (defined YYFREE || defined free)))
849 >             && (defined YYFREE || defined free)))
850   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
851   #   ifndef EXIT_SUCCESS
852   #    define EXIT_SUCCESS 0
# Line 887 | Line 854 | YYID (yyi)
854   #  endif
855   #  ifndef YYMALLOC
856   #   define YYMALLOC malloc
857 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
891 <     || defined __cplusplus || defined _MSC_VER)
857 > #   if ! defined malloc && ! defined EXIT_SUCCESS
858   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
859   #   endif
860   #  endif
861   #  ifndef YYFREE
862   #   define YYFREE free
863 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
898 <     || defined __cplusplus || defined _MSC_VER)
863 > #   if ! defined free && ! defined EXIT_SUCCESS
864   void free (void *); /* INFRINGES ON USER NAME SPACE */
865   #   endif
866   #  endif
# Line 905 | Line 870 | void free (void *); /* INFRINGES ON USER
870  
871   #if (! defined yyoverflow \
872       && (! defined __cplusplus \
873 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
873 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
874  
875   /* A type that is properly aligned for any stack member.  */
876   union yyalloc
# Line 930 | Line 895 | union yyalloc
895     elements in the stack, and YYPTR gives the new location of the
896     stack.  Advance YYPTR to a properly aligned location for the next
897     stack.  */
898 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
899 <    do                                                                  \
900 <      {                                                                 \
901 <        YYSIZE_T yynewbytes;                                            \
902 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
903 <        Stack = &yyptr->Stack_alloc;                                    \
904 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
905 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
906 <      }                                                                 \
907 <    while (YYID (0))
898 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
899 >    do                                                                  \
900 >      {                                                                 \
901 >        YYSIZE_T yynewbytes;                                            \
902 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
903 >        Stack = &yyptr->Stack_alloc;                                    \
904 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
905 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
906 >      }                                                                 \
907 >    while (0)
908  
909   #endif
910  
911   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
912 < /* Copy COUNT objects from FROM to TO.  The source and destination do
912 > /* Copy COUNT objects from SRC to DST.  The source and destination do
913     not overlap.  */
914   # ifndef YYCOPY
915   #  if defined __GNUC__ && 1 < __GNUC__
916 < #   define YYCOPY(To, From, Count) \
917 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
916 > #   define YYCOPY(Dst, Src, Count) \
917 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
918   #  else
919 < #   define YYCOPY(To, From, Count)              \
920 <      do                                        \
921 <        {                                       \
922 <          YYSIZE_T yyi;                         \
923 <          for (yyi = 0; yyi < (Count); yyi++)   \
924 <            (To)[yyi] = (From)[yyi];            \
925 <        }                                       \
926 <      while (YYID (0))
919 > #   define YYCOPY(Dst, Src, Count)              \
920 >      do                                        \
921 >        {                                       \
922 >          YYSIZE_T yyi;                         \
923 >          for (yyi = 0; yyi < (Count); yyi++)   \
924 >            (Dst)[yyi] = (Src)[yyi];            \
925 >        }                                       \
926 >      while (0)
927   #  endif
928   # endif
929   #endif /* !YYCOPY_NEEDED */
# Line 966 | Line 931 | union yyalloc
931   /* YYFINAL -- State number of the termination state.  */
932   #define YYFINAL  2
933   /* YYLAST -- Last index in YYTABLE.  */
934 < #define YYLAST   1258
934 > #define YYLAST   1233
935  
936   /* YYNTOKENS -- Number of terminals.  */
937 < #define YYNTOKENS  265
937 > #define YYNTOKENS  233
938   /* YYNNTS -- Number of nonterminals.  */
939 < #define YYNNTS  318
939 > #define YYNNTS  291
940   /* YYNRULES -- Number of rules.  */
941 < #define YYNRULES  687
942 < /* YYNRULES -- Number of states.  */
943 < #define YYNSTATES  1354
941 > #define YYNRULES  657
942 > /* YYNSTATES -- Number of states.  */
943 > #define YYNSTATES  1288
944  
945 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
945 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
946 >   by yylex, with out-of-bounds checking.  */
947   #define YYUNDEFTOK  2
948 < #define YYMAXUTOK   514
948 > #define YYMAXUTOK   481
949  
950 < #define YYTRANSLATE(YYX)                                                \
950 > #define YYTRANSLATE(YYX)                                                \
951    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
952  
953 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
954 < static const yytype_uint16 yytranslate[] =
953 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
954 >   as returned by yylex, without out-of-bounds checking.  */
955 > static const yytype_uint8 yytranslate[] =
956   {
957         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961 <       2,     2,     2,     2,   264,     2,     2,     2,     2,     2,
962 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   260,
963 <       2,   263,     2,     2,     2,     2,     2,     2,     2,     2,
961 >       2,     2,     2,     2,   231,     2,     2,     2,     2,     2,
962 >       2,     2,     2,     2,     2,     2,     2,     2,   232,   227,
963 >       2,   230,     2,     2,     2,     2,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
968         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
969 <       2,     2,     2,   262,     2,   261,     2,     2,     2,     2,
969 >       2,     2,     2,   229,     2,   228,     2,     2,     2,     2,
970         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
971         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1035 | Line 1002 | static const yytype_uint16 yytranslate[]
1002       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1003       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1004       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1005 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1039 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1040 <     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1041 <     255,   256,   257,   258,   259
1005 >     225,   226
1006   };
1007  
1008   #if YYDEBUG
1009 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1046 <   YYRHS.  */
1047 < static const yytype_uint16 yyprhs[] =
1048 < {
1049 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1050 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1051 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1052 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
1053 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
1054 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1055 <     154,   156,   158,   160,   163,   164,   170,   174,   176,   178,
1056 <     180,   185,   190,   195,   200,   205,   210,   215,   220,   225,
1057 <     230,   235,   241,   244,   246,   248,   250,   252,   255,   260,
1058 <     265,   270,   276,   279,   281,   283,   285,   287,   289,   291,
1059 <     293,   295,   297,   299,   301,   303,   305,   308,   313,   318,
1060 <     323,   328,   333,   338,   343,   348,   353,   358,   363,   368,
1061 <     373,   378,   383,   388,   393,   398,   399,   407,   408,   410,
1062 <     413,   415,   417,   419,   421,   423,   425,   427,   429,   431,
1063 <     434,   439,   441,   446,   451,   456,   461,   466,   467,   473,
1064 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1065 <     497,   499,   501,   503,   505,   507,   509,   511,   513,   515,
1066 <     517,   518,   524,   528,   530,   531,   535,   536,   539,   541,
1067 <     543,   545,   547,   549,   551,   553,   555,   557,   559,   561,
1068 <     563,   565,   567,   569,   571,   572,   580,   581,   583,   586,
1069 <     588,   590,   592,   594,   596,   598,   600,   602,   604,   606,
1070 <     608,   610,   612,   614,   617,   622,   624,   629,   634,   639,
1071 <     644,   649,   654,   659,   664,   669,   674,   679,   684,   685,
1072 <     692,   693,   699,   703,   705,   707,   709,   711,   714,   716,
1073 <     718,   720,   722,   724,   727,   728,   734,   738,   740,   742,
1074 <     746,   751,   756,   757,   764,   767,   769,   771,   773,   775,
1075 <     777,   779,   781,   783,   785,   788,   793,   798,   803,   808,
1076 <     809,   815,   819,   821,   822,   826,   827,   830,   832,   834,
1077 <     836,   838,   840,   842,   844,   846,   848,   850,   855,   860,
1078 <     865,   866,   873,   876,   878,   880,   882,   884,   887,   892,
1079 <     897,   902,   903,   910,   913,   915,   917,   919,   921,   924,
1080 <     929,   934,   935,   941,   945,   947,   949,   951,   953,   955,
1081 <     957,   959,   961,   963,   965,   967,   969,   970,   977,   980,
1082 <     982,   984,   986,   989,   994,   995,  1001,  1005,  1007,  1009,
1083 <    1011,  1013,  1015,  1017,  1019,  1021,  1023,  1025,  1027,  1029,
1084 <    1030,  1038,  1039,  1041,  1044,  1046,  1048,  1050,  1052,  1054,
1085 <    1056,  1058,  1060,  1062,  1064,  1066,  1068,  1070,  1072,  1074,
1086 <    1077,  1082,  1084,  1089,  1094,  1099,  1104,  1109,  1114,  1119,
1087 <    1120,  1126,  1130,  1132,  1133,  1137,  1138,  1141,  1143,  1145,
1088 <    1147,  1149,  1151,  1156,  1161,  1166,  1171,  1176,  1181,  1182,
1089 <    1189,  1190,  1196,  1200,  1202,  1204,  1207,  1209,  1211,  1213,
1090 <    1215,  1217,  1222,  1227,  1228,  1235,  1238,  1240,  1242,  1244,
1091 <    1246,  1251,  1256,  1262,  1265,  1267,  1269,  1271,  1276,  1277,
1092 <    1284,  1285,  1291,  1295,  1297,  1299,  1302,  1304,  1306,  1308,
1093 <    1310,  1312,  1317,  1322,  1328,  1331,  1333,  1335,  1337,  1339,
1094 <    1341,  1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,
1095 <    1361,  1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,
1096 <    1381,  1383,  1385,  1387,  1389,  1391,  1393,  1395,  1397,  1399,
1097 <    1401,  1403,  1405,  1407,  1409,  1411,  1413,  1415,  1417,  1419,
1098 <    1421,  1423,  1425,  1427,  1429,  1431,  1433,  1435,  1437,  1439,
1099 <    1441,  1443,  1445,  1450,  1455,  1460,  1465,  1470,  1475,  1480,
1100 <    1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,  1530,
1101 <    1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,  1580,
1102 <    1585,  1590,  1595,  1600,  1605,  1610,  1615,  1620,  1625,  1630,
1103 <    1635,  1640,  1645,  1650,  1655,  1660,  1665,  1670,  1675,  1680,
1104 <    1685,  1690,  1695,  1700,  1701,  1707,  1711,  1713,  1715,  1717,
1105 <    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1106 <    1739,  1741,  1743,  1745,  1747,  1749,  1751,  1752,  1758,  1762,
1107 <    1764,  1766,  1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,
1108 <    1784,  1786,  1788,  1790,  1792,  1794,  1796,  1798,  1800,  1802,
1109 <    1807,  1812,  1817,  1822,  1823,  1830,  1833,  1835,  1837,  1839,
1110 <    1841,  1843,  1845,  1847,  1849,  1854,  1859,  1860,  1866,  1870,
1111 <    1872,  1874,  1876,  1881,  1886,  1887,  1893,  1897,  1899,  1901,
1112 <    1903,  1909,  1912,  1914,  1916,  1918,  1920,  1922,  1924,  1926,
1113 <    1928,  1930,  1932,  1934,  1936,  1938,  1940,  1942,  1944,  1946,
1114 <    1948,  1950,  1952,  1957,  1962,  1967,  1972,  1977,  1982,  1987,
1115 <    1992,  1997,  2002,  2007,  2012,  2017,  2022,  2027,  2032,  2037,
1116 <    2042,  2048,  2051,  2053,  2055,  2057,  2059,  2061,  2063,  2065,
1117 <    2067,  2069,  2074,  2079,  2084,  2089,  2094,  2099
1118 < };
1119 <
1120 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1121 < static const yytype_int16 yyrhs[] =
1122 < {
1123 <     266,     0,    -1,    -1,   266,   267,    -1,   295,    -1,   301,
1124 <      -1,   316,    -1,   552,    -1,   339,    -1,   358,    -1,   372,
1125 <      -1,   277,    -1,   573,    -1,   390,    -1,   397,    -1,   407,
1126 <      -1,   416,    -1,   442,    -1,   452,    -1,   458,    -1,   472,
1127 <      -1,   536,    -1,   462,    -1,   272,    -1,     1,   260,    -1,
1128 <       1,   261,    -1,    -1,   269,    -1,   131,   268,    -1,   131,
1129 <     173,   268,    -1,   131,   174,   268,    -1,   131,   175,   268,
1130 <      -1,   131,   176,   268,    -1,   131,   177,   268,    -1,    -1,
1131 <     271,    -1,   131,   270,    -1,   131,    14,   270,    -1,   131,
1132 <      15,   270,    -1,   131,    16,   270,    -1,   119,   262,   273,
1133 <     261,   260,    -1,   273,   274,    -1,   274,    -1,   275,    -1,
1134 <     276,    -1,     1,   260,    -1,   118,   263,   153,   260,    -1,
1135 <     148,   263,   153,   260,    -1,   181,   262,   278,   261,   260,
1136 <      -1,   278,   279,    -1,   279,    -1,   286,    -1,   291,    -1,
1137 <     294,    -1,   288,    -1,   289,    -1,   290,    -1,   293,    -1,
1138 <     285,    -1,   292,    -1,   287,    -1,   284,    -1,   280,    -1,
1139 <       1,   260,    -1,    -1,   168,   281,   263,   282,   260,    -1,
1140 <     282,   264,   283,    -1,   283,    -1,   169,    -1,   170,    -1,
1141 <     167,   263,   153,   260,    -1,   165,   263,   153,   260,    -1,
1142 <     120,   263,   153,   260,    -1,   183,   263,   153,   260,    -1,
1143 <      37,   263,   153,   260,    -1,   123,   263,   153,   260,    -1,
1144 <     122,   263,   153,   260,    -1,   255,   263,   153,   260,    -1,
1145 <     256,   263,   153,   260,    -1,   227,   263,   131,   260,    -1,
1146 <      84,   263,   197,   260,    -1,     5,   262,   296,   261,   260,
1147 <      -1,   296,   297,    -1,   297,    -1,   298,    -1,   300,    -1,
1148 <     299,    -1,     1,   260,    -1,   120,   263,   153,   260,    -1,
1149 <      47,   263,   153,   260,    -1,    37,   263,   153,   260,    -1,
1150 <     102,   262,   302,   261,   260,    -1,   302,   303,    -1,   303,
1151 <      -1,   304,    -1,   305,    -1,   314,    -1,   315,    -1,   306,
1152 <      -1,   308,    -1,   310,    -1,   311,    -1,   313,    -1,   309,
1153 <      -1,   312,    -1,   307,    -1,     1,   260,    -1,   219,   263,
1154 <     153,   260,    -1,   138,   263,   153,   260,    -1,    62,   263,
1155 <     153,   260,    -1,    55,   263,   153,   260,    -1,    60,   263,
1156 <     153,   260,    -1,    61,   263,   153,   260,    -1,    58,   263,
1157 <     153,   260,    -1,    57,   263,   153,   260,    -1,    59,   263,
1158 <     153,   260,    -1,    56,   263,   153,   260,    -1,   103,   263,
1159 <     220,   260,    -1,   103,   263,   222,   260,    -1,   103,   263,
1160 <     226,   260,    -1,   103,   263,   224,   260,    -1,   103,   263,
1161 <     225,   260,    -1,   103,   263,   223,   260,    -1,   103,   263,
1162 <     221,   260,    -1,   253,   263,   197,   260,    -1,    -1,   136,
1163 <     317,   318,   262,   319,   261,   260,    -1,    -1,   322,    -1,
1164 <     319,   320,    -1,   320,    -1,   321,    -1,   323,    -1,   324,
1165 <      -1,   328,    -1,   327,    -1,   325,    -1,   326,    -1,   332,
1166 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   153,
1167 <      -1,   248,   263,   153,   260,    -1,   147,   263,   153,   260,
1168 <      -1,    49,   263,   197,   260,    -1,   166,   263,   153,   260,
1169 <      -1,    26,   263,   153,   260,    -1,    -1,   236,   329,   263,
1170 <     330,   260,    -1,   330,   264,   331,    -1,   331,    -1,   204,
1171 <      -1,   207,    -1,   208,    -1,   210,    -1,   211,    -1,   214,
1172 <      -1,   233,    -1,   228,    -1,   230,    -1,   237,    -1,   234,
1173 <      -1,   213,    -1,   229,    -1,   232,    -1,   215,    -1,   240,
1174 <      -1,   205,    -1,   206,    -1,   218,    -1,    -1,    53,   333,
1175 <     263,   334,   260,    -1,   334,   264,   335,    -1,   335,    -1,
1176 <      -1,   130,   336,   338,    -1,    -1,   337,   338,    -1,    72,
1177 <      -1,   161,    -1,    92,    -1,   247,    -1,   257,    -1,    65,
1178 <      -1,    38,    -1,   159,    -1,     5,    -1,    77,    -1,   125,
1179 <      -1,   229,    -1,   141,    -1,    79,    -1,   162,    -1,    49,
1180 <      -1,    -1,    26,   340,   341,   262,   342,   261,   260,    -1,
1181 <      -1,   345,    -1,   342,   343,    -1,   343,    -1,   344,    -1,
1182 <     355,    -1,   356,    -1,   346,    -1,   347,    -1,   357,    -1,
1183 <     348,    -1,   349,    -1,   350,    -1,   351,    -1,   352,    -1,
1184 <     353,    -1,   354,    -1,     1,   260,    -1,   120,   263,   153,
1185 <     260,    -1,   153,    -1,   150,   263,   269,   260,    -1,   151,
1186 <     263,   269,   260,    -1,   134,   263,   131,   260,    -1,    30,
1187 <     263,   269,   260,    -1,   112,   263,   131,   260,    -1,   107,
1188 <     263,   131,   260,    -1,   109,   263,   131,   260,    -1,   108,
1189 <     263,   131,   260,    -1,   178,   263,   271,   260,    -1,    23,
1190 <     263,   131,   260,    -1,    24,   263,   131,   260,    -1,   133,
1191 <     263,   131,   260,    -1,    -1,   100,   359,   262,   364,   261,
1192 <     260,    -1,    -1,    53,   361,   263,   362,   260,    -1,   362,
1193 <     264,   363,    -1,   363,    -1,   235,    -1,    76,    -1,   231,
1194 <      -1,   364,   365,    -1,   365,    -1,   366,    -1,   360,    -1,
1195 <     370,    -1,   371,    -1,     1,   260,    -1,    -1,   152,   263,
1196 <     368,   367,   260,    -1,   368,   264,   369,    -1,   369,    -1,
1197 <     131,    -1,   131,   202,   131,    -1,    89,   263,   153,   260,
1198 <      -1,    83,   263,   153,   260,    -1,    -1,    73,   373,   262,
1199 <     374,   261,   260,    -1,   374,   375,    -1,   375,    -1,   376,
1200 <      -1,   377,    -1,   378,    -1,   380,    -1,   387,    -1,   388,
1201 <      -1,   389,    -1,   379,    -1,     1,   260,    -1,   248,   263,
1202 <     153,   260,    -1,   147,   263,   153,   260,    -1,    26,   263,
1203 <     153,   260,    -1,    49,   263,   197,   260,    -1,    -1,    53,
1204 <     381,   263,   382,   260,    -1,   382,   264,   383,    -1,   383,
1205 <      -1,    -1,   130,   384,   386,    -1,    -1,   385,   386,    -1,
1206 <     191,    -1,    50,    -1,    93,    -1,    74,    -1,    20,    -1,
1207 <      21,    -1,   129,    -1,    67,    -1,   172,    -1,   121,    -1,
1208 <     190,   263,   153,   260,    -1,   157,   263,   153,   260,    -1,
1209 <     156,   263,   131,   260,    -1,    -1,   171,   391,   262,   392,
1210 <     261,   260,    -1,   392,   393,    -1,   393,    -1,   394,    -1,
1211 <     395,    -1,   396,    -1,     1,   260,    -1,   155,   263,   153,
1212 <     260,    -1,    22,   263,   153,   260,    -1,   124,   263,   153,
1213 <     260,    -1,    -1,   185,   398,   262,   399,   261,   260,    -1,
1214 <     399,   400,    -1,   400,    -1,   401,    -1,   402,    -1,   403,
1215 <      -1,     1,   260,    -1,   120,   263,   153,   260,    -1,   248,
1216 <     263,   153,   260,    -1,    -1,   187,   404,   263,   405,   260,
1217 <      -1,   405,   264,   406,    -1,   406,    -1,    92,    -1,   244,
1218 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1219 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1220 <     186,   408,   262,   409,   261,   260,    -1,   409,   410,    -1,
1221 <     410,    -1,   411,    -1,   412,    -1,     1,   260,    -1,   120,
1222 <     263,   153,   260,    -1,    -1,   187,   413,   263,   414,   260,
1223 <      -1,   414,   264,   415,    -1,   415,    -1,    92,    -1,   244,
1224 <      -1,   247,    -1,   257,    -1,   245,    -1,   239,    -1,   171,
1225 <      -1,   246,    -1,   238,    -1,   218,    -1,   203,    -1,    -1,
1226 <      29,   417,   418,   262,   419,   261,   260,    -1,    -1,   422,
1227 <      -1,   419,   420,    -1,   420,    -1,   421,    -1,   423,    -1,
1228 <     424,    -1,   425,    -1,   426,    -1,   428,    -1,   427,    -1,
1229 <     429,    -1,   438,    -1,   439,    -1,   440,    -1,   437,    -1,
1230 <     436,    -1,   441,    -1,     1,   260,    -1,   120,   263,   153,
1231 <     260,    -1,   153,    -1,    83,   263,   153,   260,    -1,   255,
1232 <     263,   153,   260,    -1,   179,   263,   153,   260,    -1,     3,
1233 <     263,   153,   260,    -1,   152,   263,   131,   260,    -1,     6,
1234 <     263,   216,   260,    -1,     6,   263,   217,   260,    -1,    -1,
1235 <      53,   430,   263,   431,   260,    -1,   431,   264,   432,    -1,
1236 <     432,    -1,    -1,   130,   433,   435,    -1,    -1,   434,   435,
1237 <      -1,    27,    -1,    31,    -1,    10,    -1,    12,    -1,   242,
1238 <      -1,   166,   263,   153,   260,    -1,    49,   263,   197,   260,
1239 <      -1,    85,   263,   153,   260,    -1,    98,   263,   153,   260,
1240 <      -1,    26,   263,   153,   260,    -1,    25,   263,   153,   260,
1241 <      -1,    -1,    90,   443,   262,   448,   261,   260,    -1,    -1,
1242 <     187,   445,   263,   446,   260,    -1,   446,   264,   447,    -1,
1243 <     447,    -1,   158,    -1,   448,   449,    -1,   449,    -1,   450,
1244 <      -1,   451,    -1,   444,    -1,     1,    -1,   248,   263,   153,
1245 <     260,    -1,   155,   263,   153,   260,    -1,    -1,    36,   453,
1246 <     262,   454,   261,   260,    -1,   454,   455,    -1,   455,    -1,
1247 <     456,    -1,   457,    -1,     1,    -1,    89,   263,   153,   260,
1248 <      -1,   155,   263,   153,   260,    -1,    51,   262,   459,   261,
1249 <     260,    -1,   459,   460,    -1,   460,    -1,   461,    -1,     1,
1250 <      -1,    89,   263,   153,   260,    -1,    -1,    63,   463,   262,
1251 <     468,   261,   260,    -1,    -1,   187,   465,   263,   466,   260,
1252 <      -1,   466,   264,   467,    -1,   467,    -1,   158,    -1,   468,
1253 <     469,    -1,   469,    -1,   470,    -1,   471,    -1,   464,    -1,
1254 <       1,    -1,   120,   263,   153,   260,    -1,   155,   263,   153,
1255 <     260,    -1,    64,   262,   473,   261,   260,    -1,   473,   474,
1256 <      -1,   474,    -1,   483,    -1,   484,    -1,   486,    -1,   487,
1257 <      -1,   488,    -1,   489,    -1,   490,    -1,   491,    -1,   492,
1258 <      -1,   493,    -1,   482,    -1,   495,    -1,   496,    -1,   497,
1259 <      -1,   498,    -1,   514,    -1,   500,    -1,   502,    -1,   504,
1260 <      -1,   503,    -1,   507,    -1,   501,    -1,   508,    -1,   509,
1261 <      -1,   510,    -1,   511,    -1,   513,    -1,   512,    -1,   528,
1262 <      -1,   515,    -1,   519,    -1,   520,    -1,   524,    -1,   505,
1263 <      -1,   506,    -1,   534,    -1,   532,    -1,   533,    -1,   516,
1264 <      -1,   485,    -1,   517,    -1,   518,    -1,   535,    -1,   523,
1265 <      -1,   494,    -1,   521,    -1,   522,    -1,   478,    -1,   481,
1266 <      -1,   476,    -1,   477,    -1,   479,    -1,   480,    -1,   499,
1267 <      -1,   475,    -1,     1,    -1,   114,   263,   131,   260,    -1,
1268 <      70,   263,   131,   260,    -1,    71,   263,   131,   260,    -1,
1269 <      12,   263,   197,   260,    -1,   254,   263,   197,   260,    -1,
1270 <     160,   263,   269,   260,    -1,   184,   263,   197,   260,    -1,
1271 <      91,   263,   269,   260,    -1,    82,   263,   197,   260,    -1,
1272 <      87,   263,   197,   260,    -1,    43,   263,   197,   260,    -1,
1273 <      52,   263,   197,   260,    -1,     8,   263,   197,   260,    -1,
1274 <     111,   263,   269,   260,    -1,   110,   263,   131,   260,    -1,
1275 <     104,   263,   131,   260,    -1,     9,   263,   269,   260,    -1,
1276 <     201,   263,   269,   260,    -1,   200,   263,   269,   260,    -1,
1277 <      75,   263,   131,   260,    -1,    95,   263,   197,   260,    -1,
1278 <      94,   263,   153,   260,    -1,    88,   263,   197,   260,    -1,
1279 <     259,   263,   197,   260,    -1,   192,   263,   197,   260,    -1,
1280 <     195,   263,   197,   260,    -1,   196,   263,   197,   260,    -1,
1281 <     194,   263,   197,   260,    -1,   194,   263,   198,   260,    -1,
1282 <     193,   263,   197,   260,    -1,   193,   263,   198,   260,    -1,
1283 <     145,   263,   269,   260,    -1,    19,   263,   269,   260,    -1,
1284 <     137,   263,   197,   260,    -1,   146,   263,   269,   260,    -1,
1285 <     188,   263,   197,   260,    -1,   128,   263,   197,   260,    -1,
1286 <     243,   263,   197,   260,    -1,   140,   263,   197,   260,    -1,
1287 <     115,   263,   153,   260,    -1,    86,   263,   269,   260,    -1,
1288 <      44,   263,   131,   260,    -1,   113,   263,   131,   260,    -1,
1289 <     182,   263,   153,   260,    -1,    32,   263,   153,   260,    -1,
1290 <      28,   263,   131,   260,    -1,   249,   263,   197,   260,    -1,
1291 <      46,   263,   153,   260,    -1,   149,   263,   197,   260,    -1,
1292 <      39,   263,   197,   260,    -1,   241,   263,   269,   260,    -1,
1293 <      -1,   142,   525,   263,   526,   260,    -1,   526,   264,   527,
1294 <      -1,   527,    -1,   204,    -1,   207,    -1,   208,    -1,   210,
1295 <      -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,   230,
1296 <      -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,   232,
1297 <      -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,   218,
1298 <      -1,    -1,   139,   529,   263,   530,   260,    -1,   530,   264,
1299 <     531,    -1,   531,    -1,   204,    -1,   207,    -1,   208,    -1,
1300 <     210,    -1,   211,    -1,   214,    -1,   233,    -1,   228,    -1,
1301 <     230,    -1,   237,    -1,   234,    -1,   213,    -1,   229,    -1,
1302 <     232,    -1,   215,    -1,   240,    -1,   205,    -1,   206,    -1,
1303 <     218,    -1,   116,   263,   131,   260,    -1,   117,   263,   131,
1304 <     260,    -1,    33,   263,   131,   260,    -1,   209,   263,   271,
1305 <     260,    -1,    -1,    66,   537,   262,   538,   261,   260,    -1,
1306 <     538,   539,    -1,   539,    -1,   540,    -1,   541,    -1,   542,
1307 <      -1,   546,    -1,   547,    -1,   548,    -1,     1,    -1,    48,
1308 <     263,   197,   260,    -1,    45,   263,   269,   260,    -1,    -1,
1309 <     102,   543,   263,   544,   260,    -1,   544,   264,   545,    -1,
1310 <     545,    -1,   199,    -1,    11,    -1,   248,   263,   153,   260,
1311 <      -1,   120,   263,   153,   260,    -1,    -1,     4,   549,   263,
1312 <     550,   260,    -1,   550,   264,   551,    -1,   551,    -1,   199,
1313 <      -1,    11,    -1,    22,   262,   553,   261,   260,    -1,   553,
1314 <     554,    -1,   554,    -1,   557,    -1,   558,    -1,   559,    -1,
1315 <     560,    -1,   565,    -1,   561,    -1,   562,    -1,   563,    -1,
1316 <     564,    -1,   566,    -1,   567,    -1,   568,    -1,   556,    -1,
1317 <     569,    -1,   570,    -1,   571,    -1,   572,    -1,   555,    -1,
1318 <       1,    -1,    40,   263,   197,   260,    -1,   163,   263,   197,
1319 <     260,    -1,    42,   263,   197,   260,    -1,   250,   263,   197,
1320 <     260,    -1,   251,   263,   197,   260,    -1,   252,   263,   197,
1321 <     260,    -1,    96,   263,   269,   260,    -1,    97,   263,   269,
1322 <     260,    -1,   106,   263,   131,   260,    -1,   154,   263,   197,
1323 <     260,    -1,   105,   263,   131,   260,    -1,    35,   263,   131,
1324 <     260,    -1,    34,   263,   131,   260,    -1,   126,   263,   197,
1325 <     260,    -1,   127,   263,   197,   260,    -1,    13,   263,   197,
1326 <     260,    -1,   143,   263,   131,   260,    -1,   144,   263,   269,
1327 <     260,    -1,   180,   262,   574,   261,   260,    -1,   574,   575,
1328 <      -1,   575,    -1,   576,    -1,   577,    -1,   579,    -1,   581,
1329 <      -1,   580,    -1,   578,    -1,   582,    -1,     1,    -1,    54,
1330 <     263,   197,   260,    -1,    81,   263,   197,   260,    -1,    78,
1331 <     263,   153,   260,    -1,    99,   263,   269,   260,    -1,    76,
1332 <     263,   197,   260,    -1,    41,   263,   197,   260,    -1,    80,
1333 <     263,   197,   260,    -1
1334 < };
1335 <
1336 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1009 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1010   static const yytype_uint16 yyrline[] =
1011   {
1012 <       0,   394,   394,   395,   398,   399,   400,   401,   402,   403,
1013 <     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
1014 <     414,   415,   416,   417,   418,   419,   423,   423,   424,   428,
1015 <     432,   436,   440,   444,   450,   450,   451,   452,   453,   454,
1016 <     461,   464,   464,   465,   465,   465,   467,   473,   480,   482,
1017 <     482,   483,   483,   484,   484,   485,   485,   486,   487,   487,
1018 <     488,   488,   489,   490,   494,   493,   512,   512,   513,   519,
1019 <     527,   561,   621,   636,   651,   660,   674,   683,   711,   741,
1020 <     764,   773,   775,   775,   776,   776,   777,   777,   779,   788,
1021 <     797,   810,   812,   813,   815,   815,   816,   817,   817,   818,
1022 <     818,   819,   819,   820,   820,   821,   822,   824,   828,   832,
1023 <     839,   846,   853,   860,   867,   874,   881,   888,   892,   896,
1024 <     900,   904,   908,   912,   918,   928,   927,  1021,  1021,  1022,
1025 <    1022,  1023,  1023,  1023,  1024,  1024,  1024,  1025,  1025,  1025,
1026 <    1027,  1039,  1051,  1085,  1097,  1108,  1150,  1160,  1159,  1165,
1027 <    1165,  1166,  1170,  1174,  1178,  1182,  1186,  1190,  1194,  1198,
1028 <    1202,  1206,  1210,  1214,  1218,  1222,  1226,  1230,  1234,  1238,
1029 <    1245,  1244,  1248,  1248,  1249,  1249,  1250,  1250,  1252,  1259,
1030 <    1266,  1273,  1280,  1287,  1294,  1301,  1308,  1315,  1322,  1329,
1031 <    1336,  1343,  1350,  1357,  1371,  1370,  1420,  1420,  1422,  1422,
1032 <    1423,  1424,  1424,  1425,  1426,  1427,  1428,  1429,  1430,  1431,
1033 <    1432,  1433,  1434,  1435,  1437,  1446,  1455,  1461,  1467,  1473,
1034 <    1479,  1485,  1491,  1497,  1503,  1509,  1515,  1521,  1531,  1530,
1035 <    1547,  1546,  1551,  1551,  1552,  1556,  1560,  1568,  1568,  1569,
1036 <    1569,  1569,  1569,  1569,  1571,  1571,  1573,  1573,  1575,  1589,
1037 <    1609,  1618,  1631,  1630,  1699,  1699,  1700,  1700,  1700,  1700,
1038 <    1701,  1701,  1701,  1702,  1702,  1704,  1741,  1754,  1763,  1775,
1039 <    1774,  1778,  1778,  1779,  1779,  1780,  1780,  1782,  1789,  1796,
1040 <    1803,  1810,  1817,  1824,  1831,  1838,  1845,  1855,  1874,  1884,
1041 <    1898,  1897,  1913,  1913,  1914,  1914,  1914,  1914,  1916,  1925,
1042 <    1940,  1954,  1953,  1969,  1969,  1970,  1970,  1970,  1970,  1972,
1043 <    1981,  2004,  2003,  2009,  2009,  2010,  2014,  2018,  2022,  2026,
1044 <    2030,  2034,  2038,  2042,  2046,  2050,  2060,  2059,  2076,  2076,
1045 <    2077,  2077,  2077,  2079,  2086,  2085,  2091,  2091,  2092,  2096,
1046 <    2100,  2104,  2108,  2112,  2116,  2120,  2124,  2128,  2132,  2142,
1047 <    2141,  2287,  2287,  2288,  2288,  2289,  2289,  2289,  2290,  2290,
1048 <    2291,  2291,  2292,  2292,  2292,  2293,  2293,  2294,  2294,  2295,
1049 <    2297,  2309,  2321,  2330,  2356,  2374,  2392,  2398,  2402,  2411,
1050 <    2410,  2414,  2414,  2415,  2415,  2416,  2416,  2418,  2429,  2436,
1051 <    2443,  2450,  2460,  2501,  2512,  2525,  2538,  2547,  2583,  2582,
1052 <    2646,  2645,  2649,  2649,  2650,  2656,  2656,  2657,  2657,  2657,
1053 <    2657,  2659,  2678,  2688,  2687,  2710,  2710,  2711,  2711,  2711,
1054 <    2713,  2719,  2728,  2730,  2730,  2731,  2731,  2733,  2752,  2751,
1055 <    2799,  2798,  2802,  2802,  2803,  2809,  2809,  2810,  2810,  2810,
1056 <    2810,  2812,  2818,  2827,  2830,  2830,  2831,  2831,  2832,  2832,
1057 <    2833,  2833,  2834,  2834,  2835,  2835,  2836,  2836,  2837,  2837,
1058 <    2838,  2838,  2839,  2839,  2840,  2840,  2841,  2841,  2842,  2842,
1059 <    2843,  2843,  2844,  2844,  2845,  2845,  2846,  2846,  2847,  2847,
1060 <    2848,  2848,  2849,  2849,  2850,  2850,  2851,  2852,  2852,  2853,
1061 <    2853,  2854,  2855,  2855,  2856,  2856,  2857,  2857,  2858,  2858,
1062 <    2859,  2860,  2863,  2868,  2873,  2878,  2883,  2888,  2893,  2898,
1063 <    2903,  2908,  2913,  2918,  2923,  2928,  2933,  2938,  2943,  2948,
1064 <    2953,  2959,  2970,  2975,  2984,  2989,  2994,  2999,  3004,  3009,
1065 <    3012,  3017,  3020,  3025,  3030,  3035,  3040,  3045,  3050,  3055,
1066 <    3060,  3065,  3076,  3081,  3086,  3091,  3100,  3132,  3150,  3155,
1067 <    3164,  3169,  3174,  3180,  3179,  3184,  3184,  3185,  3188,  3191,
1068 <    3194,  3197,  3200,  3203,  3206,  3209,  3212,  3215,  3218,  3221,
1069 <    3224,  3227,  3230,  3233,  3236,  3239,  3245,  3244,  3249,  3249,
1070 <    3250,  3253,  3256,  3259,  3262,  3265,  3268,  3271,  3274,  3277,
1071 <    3280,  3283,  3286,  3289,  3292,  3295,  3298,  3301,  3304,  3309,
1072 <    3314,  3319,  3324,  3334,  3333,  3357,  3357,  3358,  3359,  3360,
1073 <    3361,  3362,  3363,  3364,  3366,  3372,  3379,  3378,  3383,  3383,
1074 <    3384,  3388,  3394,  3428,  3438,  3437,  3487,  3487,  3488,  3492,
1075 <    3501,  3504,  3504,  3505,  3505,  3506,  3506,  3507,  3507,  3508,
1076 <    3508,  3509,  3509,  3510,  3511,  3511,  3512,  3512,  3513,  3513,
1077 <    3514,  3514,  3516,  3521,  3526,  3531,  3536,  3541,  3546,  3551,
1405 <    3556,  3561,  3566,  3571,  3576,  3581,  3586,  3591,  3596,  3601,
1406 <    3609,  3612,  3612,  3613,  3613,  3614,  3615,  3616,  3616,  3617,
1407 <    3618,  3620,  3626,  3632,  3641,  3655,  3661,  3667
1012 >       0,   373,   373,   374,   377,   378,   379,   380,   381,   382,
1013 >     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
1014 >     393,   394,   395,   396,   397,   398,   399,   403,   403,   404,
1015 >     408,   412,   416,   420,   424,   428,   432,   438,   438,   439,
1016 >     440,   441,   442,   449,   452,   452,   453,   453,   453,   455,
1017 >     461,   468,   470,   470,   471,   471,   472,   472,   473,   473,
1018 >     474,   474,   475,   475,   476,   476,   477,   477,   478,   478,
1019 >     479,   480,   483,   484,   486,   486,   487,   493,   501,   501,
1020 >     502,   508,   516,   558,   616,   644,   652,   667,   682,   691,
1021 >     705,   714,   742,   772,   797,   819,   841,   850,   852,   852,
1022 >     853,   853,   854,   854,   856,   865,   874,   887,   886,   904,
1023 >     904,   905,   905,   905,   907,   913,   922,   923,   923,   925,
1024 >     925,   926,   928,   935,   935,   948,   949,   951,   951,   952,
1025 >     952,   954,   962,   965,   971,   970,   976,   976,   977,   981,
1026 >     985,   989,   993,   997,  1001,  1005,  1009,  1020,  1019,  1099,
1027 >    1099,  1100,  1100,  1100,  1101,  1101,  1101,  1102,  1102,  1103,
1028 >    1104,  1104,  1106,  1112,  1118,  1124,  1135,  1141,  1147,  1158,
1029 >    1165,  1164,  1170,  1170,  1171,  1175,  1179,  1183,  1187,  1191,
1030 >    1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,
1031 >    1235,  1239,  1243,  1247,  1251,  1258,  1257,  1263,  1263,  1264,
1032 >    1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,  1304,
1033 >    1308,  1312,  1316,  1320,  1324,  1328,  1332,  1336,  1340,  1344,
1034 >    1348,  1352,  1356,  1367,  1366,  1427,  1427,  1428,  1429,  1429,
1035 >    1430,  1431,  1432,  1433,  1434,  1435,  1436,  1437,  1438,  1438,
1036 >    1439,  1440,  1441,  1442,  1444,  1450,  1456,  1462,  1468,  1474,
1037 >    1480,  1486,  1492,  1498,  1505,  1511,  1517,  1523,  1532,  1542,
1038 >    1541,  1547,  1547,  1548,  1552,  1563,  1562,  1569,  1568,  1573,
1039 >    1573,  1574,  1578,  1582,  1588,  1588,  1589,  1589,  1589,  1589,
1040 >    1589,  1591,  1591,  1593,  1593,  1595,  1609,  1629,  1635,  1645,
1041 >    1644,  1686,  1686,  1687,  1687,  1687,  1687,  1688,  1688,  1688,
1042 >    1689,  1689,  1691,  1697,  1703,  1709,  1721,  1720,  1726,  1726,
1043 >    1727,  1731,  1735,  1739,  1743,  1747,  1751,  1755,  1759,  1763,
1044 >    1769,  1783,  1792,  1806,  1805,  1820,  1820,  1821,  1821,  1821,
1045 >    1821,  1823,  1829,  1835,  1845,  1847,  1847,  1848,  1848,  1850,
1046 >    1866,  1865,  1890,  1890,  1891,  1891,  1891,  1891,  1893,  1899,
1047 >    1919,  1918,  1924,  1924,  1925,  1929,  1933,  1937,  1941,  1945,
1048 >    1949,  1953,  1957,  1961,  1971,  1970,  1991,  1991,  1992,  1992,
1049 >    1992,  1994,  2001,  2000,  2006,  2006,  2007,  2011,  2015,  2019,
1050 >    2023,  2027,  2031,  2035,  2039,  2043,  2053,  2052,  2124,  2124,
1051 >    2125,  2125,  2125,  2126,  2126,  2127,  2128,  2128,  2128,  2129,
1052 >    2129,  2129,  2130,  2130,  2131,  2133,  2139,  2145,  2151,  2164,
1053 >    2177,  2183,  2189,  2193,  2202,  2201,  2206,  2206,  2207,  2211,
1054 >    2217,  2228,  2234,  2240,  2246,  2262,  2261,  2287,  2287,  2288,
1055 >    2288,  2288,  2290,  2310,  2320,  2319,  2346,  2346,  2347,  2347,
1056 >    2347,  2349,  2355,  2364,  2366,  2366,  2367,  2367,  2369,  2387,
1057 >    2386,  2409,  2409,  2410,  2410,  2410,  2412,  2418,  2427,  2430,
1058 >    2430,  2431,  2431,  2432,  2432,  2433,  2433,  2434,  2434,  2435,
1059 >    2435,  2436,  2437,  2438,  2438,  2439,  2439,  2440,  2440,  2441,
1060 >    2441,  2442,  2443,  2443,  2444,  2444,  2445,  2445,  2446,  2446,
1061 >    2447,  2447,  2448,  2448,  2449,  2449,  2450,  2450,  2451,  2452,
1062 >    2453,  2453,  2454,  2454,  2455,  2456,  2457,  2458,  2458,  2459,
1063 >    2460,  2463,  2468,  2474,  2480,  2486,  2492,  2497,  2502,  2507,
1064 >    2512,  2517,  2522,  2527,  2532,  2537,  2542,  2547,  2552,  2557,
1065 >    2563,  2574,  2579,  2584,  2589,  2594,  2599,  2604,  2607,  2612,
1066 >    2615,  2620,  2625,  2630,  2635,  2640,  2645,  2650,  2655,  2660,
1067 >    2665,  2670,  2675,  2684,  2693,  2698,  2703,  2709,  2708,  2713,
1068 >    2713,  2714,  2717,  2720,  2723,  2726,  2729,  2732,  2735,  2738,
1069 >    2741,  2744,  2747,  2750,  2753,  2756,  2759,  2762,  2765,  2768,
1070 >    2771,  2774,  2780,  2779,  2784,  2784,  2785,  2788,  2791,  2794,
1071 >    2797,  2800,  2803,  2806,  2809,  2812,  2815,  2818,  2821,  2824,
1072 >    2827,  2830,  2833,  2836,  2839,  2842,  2845,  2850,  2855,  2860,
1073 >    2869,  2872,  2872,  2873,  2874,  2874,  2875,  2875,  2876,  2877,
1074 >    2878,  2879,  2880,  2880,  2881,  2881,  2883,  2888,  2893,  2898,
1075 >    2903,  2908,  2913,  2918,  2923,  2928,  2933,  2938,  2946,  2949,
1076 >    2949,  2950,  2950,  2951,  2952,  2953,  2954,  2954,  2955,  2956,
1077 >    2958,  2964,  2970,  2976,  2982,  2991,  3005,  3011
1078   };
1079   #endif
1080  
1081 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1081 > #if YYDEBUG || YYERROR_VERBOSE || 0
1082   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1083     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1084   static const char *const yytname[] =
1085   {
1086 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1087 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1088 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1089 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1090 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1421 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1422 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1086 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1087 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1088 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1089 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1090 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1091    "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1092    "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1093 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1426 <  "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL", "ENABLE",
1093 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1094    "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1095 <  "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1096 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1097 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1098 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1099 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1100 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1101 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1102 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1103 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1104 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1105 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1106 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1107 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1108 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1109 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1443 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1095 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1096 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1097 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1098 >  "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", "HIDE_SERVERS",
1099 >  "HIDE_SERVICES", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1100 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "IRCD_AUTH",
1101 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1102 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_DELAY",
1103 >  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK",
1104 >  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1105 >  "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1106 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1107 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1108 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1109 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1110    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1111 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1112 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1113 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1114 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1115 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1116 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1117 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1118 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1119 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1120 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1121 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1122 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1123 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1124 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1125 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1126 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1127 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1128 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1129 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1130 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1131 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1132 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1133 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1134 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1135 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1470 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1471 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1111 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1112 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1113 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1114 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1115 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1116 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1117 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1118 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1119 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1120 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1121 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1122 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1123 >  "T_CALLERID", "T_CCONN", "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE",
1124 >  "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1125 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1126 >  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART",
1127 >  "T_SERVER", "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET",
1128 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1129 >  "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1130 >  "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1131 >  "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1132 >  "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1133 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1134 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1135 >  "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1136    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1137    "sizespec", "modules_entry", "modules_items", "modules_item",
1138    "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1139 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1140 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1141 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1139 >  "serverinfo_item", "serverinfo_ssl_client_method",
1140 >  "serverinfo_ssl_server_method", "client_method_types",
1141 >  "client_method_type_item", "server_method_types",
1142 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1143 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1144 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1145    "serverinfo_description", "serverinfo_network_name",
1146    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1147 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1148 <  "admin_item", "admin_name", "admin_email", "admin_description",
1149 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1150 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1151 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1152 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1153 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1154 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1155 <  "oper_user", "oper_password", "oper_encrypted",
1156 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1157 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@4",
1158 <  "oper_flags_items", "oper_flags_item", "$@5", "$@6",
1159 <  "oper_flags_item_atom", "class_entry", "$@7", "class_name_b",
1160 <  "class_items", "class_item", "class_name", "class_name_t",
1161 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1147 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1148 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1149 >  "admin_items", "admin_item", "admin_name", "admin_email",
1150 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1151 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1152 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1153 >  "logging_file_items", "logging_file_item", "logging_file_name",
1154 >  "logging_file_size", "logging_file_type", "$@3",
1155 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1156 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1157 >  "oper_encrypted", "oper_rsa_public_key_file",
1158 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1159 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1160 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1161 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1162 >  "class_name", "class_ping_time", "class_number_per_ip",
1163    "class_connectfreq", "class_max_number", "class_max_global",
1164 <  "class_max_local", "class_max_ident", "class_sendq",
1164 >  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1165    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1166 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1167 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1168 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1169 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1170 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1171 <  "$@12", "auth_flags_items", "auth_flags_item", "$@13", "$@14",
1172 <  "auth_flags_item_atom", "auth_spoof", "auth_redir_serv",
1173 <  "auth_redir_port", "resv_entry", "$@15", "resv_items", "resv_item",
1174 <  "resv_creason", "resv_channel", "resv_nick", "shared_entry", "$@16",
1166 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1167 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1168 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1169 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1170 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1171 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1172 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1173 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1174 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1175 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1176 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1177    "shared_items", "shared_item", "shared_name", "shared_user",
1178 <  "shared_type", "$@17", "shared_types", "shared_type_item",
1179 <  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1180 <  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1181 <  "connect_entry", "$@20", "connect_name_b", "connect_items",
1182 <  "connect_item", "connect_name", "connect_name_t", "connect_host",
1183 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1184 <  "connect_port", "connect_aftype", "connect_flags", "$@21",
1185 <  "connect_flags_items", "connect_flags_item", "$@22", "$@23",
1186 <  "connect_flags_item_atom", "connect_rsa_public_key_file",
1187 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1188 <  "connect_class", "connect_cipher_preference", "kill_entry", "$@24",
1519 <  "kill_type", "$@25", "kill_type_items", "kill_type_item", "kill_items",
1520 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@26",
1178 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1179 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1180 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1181 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1182 >  "connect_host", "connect_vhost", "connect_send_password",
1183 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1184 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1185 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1186 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1187 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1188 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1189    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1190 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@27",
1523 <  "gecos_flags", "$@28", "gecos_flags_items", "gecos_flags_item",
1190 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1191    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1192    "general_entry", "general_items", "general_item", "general_max_watch",
1193 +  "general_cycle_on_host_change", "general_gline_enable",
1194 +  "general_gline_duration", "general_gline_request_duration",
1195    "general_gline_min_cidr", "general_gline_min_cidr6",
1196 <  "general_burst_away", "general_use_whois_actually",
1197 <  "general_reject_hold_time", "general_tkline_expire_notices",
1529 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1530 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1196 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1197 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1198    "general_failed_oper_notice", "general_anti_nick_flood",
1199    "general_max_nick_time", "general_max_nick_changes",
1200    "general_max_accept", "general_anti_spam_exit_message_time",
1201    "general_ts_warn_delta", "general_ts_max_delta",
1202 <  "general_havent_read_conf", "general_kline_with_reason",
1536 <  "general_kline_reason", "general_invisible_on_connect",
1202 >  "general_havent_read_conf", "general_invisible_on_connect",
1203    "general_warn_no_nline", "general_stats_e_disabled",
1204    "general_stats_o_oper_only", "general_stats_P_oper_only",
1205 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1206 <  "general_pace_wait", "general_caller_id_wait",
1207 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1208 <  "general_short_motd", "general_no_oper_flood",
1209 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1210 <  "general_message_locale", "general_idletime", "general_dots_in_ident",
1211 <  "general_max_targets", "general_servlink_path",
1212 <  "general_default_cipher_preference", "general_compression_level",
1213 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1214 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1215 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1216 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1217 <  "general_min_nonwildcard_simple", "general_default_floodcount",
1552 <  "general_client_flood", "gline_entry", "$@31", "gline_items",
1553 <  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@32",
1554 <  "gline_logging_types", "gline_logging_type_item", "gline_user",
1555 <  "gline_server", "gline_action", "$@33", "gdeny_types", "gdeny_type_item",
1556 <  "channel_entry", "channel_items", "channel_item",
1557 <  "channel_disable_fake_channels", "channel_restrict_channels",
1558 <  "channel_disable_local_channels", "channel_use_except",
1559 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1205 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1206 >  "general_stats_i_oper_only", "general_pace_wait",
1207 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1208 >  "general_pace_wait_simple", "general_short_motd",
1209 >  "general_no_oper_flood", "general_true_no_oper_flood",
1210 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1211 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1212 >  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1213 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1214 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1215 >  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1216 >  "general_default_floodcount", "channel_entry", "channel_items",
1217 >  "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1218    "channel_knock_delay_channel", "channel_max_chans_per_user",
1219 <  "channel_quiet_on_ban", "channel_max_bans",
1219 >  "channel_max_chans_per_oper", "channel_max_bans",
1220    "channel_default_split_user_count", "channel_default_split_server_count",
1221    "channel_no_create_on_split", "channel_no_join_on_split",
1222 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1223 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1224 <  "serverhide_flatten_links", "serverhide_hide_servers",
1225 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1226 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1222 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1223 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1224 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1225 >  "serverhide_hide_services", "serverhide_hidden_name",
1226 >  "serverhide_links_delay", "serverhide_hidden",
1227 >  "serverhide_hide_server_ips", YY_NULLPTR
1228   };
1229   #endif
1230  
1231   # ifdef YYPRINT
1232 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1233 <   token YYLEX-NUM.  */
1232 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1233 >   (internal) symbol number NUM (which must be that of a token).  */
1234   static const yytype_uint16 yytoknum[] =
1235   {
1236         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1596 | Line 1255 | static const yytype_uint16 yytoknum[] =
1255       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1256       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1257       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1258 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1259 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1601 <     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
1602 <     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
1603 <      59,   125,   123,    61,    44
1258 >     475,   476,   477,   478,   479,   480,   481,    59,   125,   123,
1259 >      61,    44,    58
1260   };
1261   # endif
1262  
1263 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1608 < static const yytype_uint16 yyr1[] =
1609 < {
1610 <       0,   265,   266,   266,   267,   267,   267,   267,   267,   267,
1611 <     267,   267,   267,   267,   267,   267,   267,   267,   267,   267,
1612 <     267,   267,   267,   267,   267,   267,   268,   268,   269,   269,
1613 <     269,   269,   269,   269,   270,   270,   271,   271,   271,   271,
1614 <     272,   273,   273,   274,   274,   274,   275,   276,   277,   278,
1615 <     278,   279,   279,   279,   279,   279,   279,   279,   279,   279,
1616 <     279,   279,   279,   279,   281,   280,   282,   282,   283,   283,
1617 <     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
1618 <     294,   295,   296,   296,   297,   297,   297,   297,   298,   299,
1619 <     300,   301,   302,   302,   303,   303,   303,   303,   303,   303,
1620 <     303,   303,   303,   303,   303,   303,   303,   304,   305,   306,
1621 <     307,   308,   309,   310,   311,   312,   313,   314,   314,   314,
1622 <     314,   314,   314,   314,   315,   317,   316,   318,   318,   319,
1623 <     319,   320,   320,   320,   320,   320,   320,   320,   320,   320,
1624 <     321,   322,   323,   324,   325,   326,   327,   329,   328,   330,
1625 <     330,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1626 <     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
1627 <     333,   332,   334,   334,   336,   335,   337,   335,   338,   338,
1628 <     338,   338,   338,   338,   338,   338,   338,   338,   338,   338,
1629 <     338,   338,   338,   338,   340,   339,   341,   341,   342,   342,
1630 <     343,   343,   343,   343,   343,   343,   343,   343,   343,   343,
1631 <     343,   343,   343,   343,   344,   345,   346,   347,   348,   349,
1632 <     350,   351,   352,   353,   354,   355,   356,   357,   359,   358,
1633 <     361,   360,   362,   362,   363,   363,   363,   364,   364,   365,
1634 <     365,   365,   365,   365,   367,   366,   368,   368,   369,   369,
1635 <     370,   371,   373,   372,   374,   374,   375,   375,   375,   375,
1636 <     375,   375,   375,   375,   375,   376,   377,   378,   379,   381,
1637 <     380,   382,   382,   384,   383,   385,   383,   386,   386,   386,
1638 <     386,   386,   386,   386,   386,   386,   386,   387,   388,   389,
1639 <     391,   390,   392,   392,   393,   393,   393,   393,   394,   395,
1640 <     396,   398,   397,   399,   399,   400,   400,   400,   400,   401,
1641 <     402,   404,   403,   405,   405,   406,   406,   406,   406,   406,
1642 <     406,   406,   406,   406,   406,   406,   408,   407,   409,   409,
1643 <     410,   410,   410,   411,   413,   412,   414,   414,   415,   415,
1644 <     415,   415,   415,   415,   415,   415,   415,   415,   415,   417,
1645 <     416,   418,   418,   419,   419,   420,   420,   420,   420,   420,
1646 <     420,   420,   420,   420,   420,   420,   420,   420,   420,   420,
1647 <     421,   422,   423,   424,   425,   426,   427,   428,   428,   430,
1648 <     429,   431,   431,   433,   432,   434,   432,   435,   435,   435,
1649 <     435,   435,   436,   437,   438,   439,   440,   441,   443,   442,
1650 <     445,   444,   446,   446,   447,   448,   448,   449,   449,   449,
1651 <     449,   450,   451,   453,   452,   454,   454,   455,   455,   455,
1652 <     456,   457,   458,   459,   459,   460,   460,   461,   463,   462,
1653 <     465,   464,   466,   466,   467,   468,   468,   469,   469,   469,
1654 <     469,   470,   471,   472,   473,   473,   474,   474,   474,   474,
1655 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1656 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1657 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1658 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1659 <     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
1660 <     474,   474,   475,   476,   477,   478,   479,   480,   481,   482,
1661 <     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
1662 <     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
1663 <     502,   503,   503,   504,   505,   506,   507,   508,   509,   510,
1664 <     511,   512,   513,   514,   515,   516,   517,   518,   519,   520,
1665 <     521,   522,   523,   525,   524,   526,   526,   527,   527,   527,
1666 <     527,   527,   527,   527,   527,   527,   527,   527,   527,   527,
1667 <     527,   527,   527,   527,   527,   527,   529,   528,   530,   530,
1668 <     531,   531,   531,   531,   531,   531,   531,   531,   531,   531,
1669 <     531,   531,   531,   531,   531,   531,   531,   531,   531,   532,
1670 <     533,   534,   535,   537,   536,   538,   538,   539,   539,   539,
1671 <     539,   539,   539,   539,   540,   541,   543,   542,   544,   544,
1672 <     545,   545,   546,   547,   549,   548,   550,   550,   551,   551,
1673 <     552,   553,   553,   554,   554,   554,   554,   554,   554,   554,
1674 <     554,   554,   554,   554,   554,   554,   554,   554,   554,   554,
1675 <     554,   554,   555,   556,   557,   558,   559,   560,   561,   562,
1676 <     563,   564,   565,   566,   567,   568,   569,   570,   571,   572,
1677 <     573,   574,   574,   575,   575,   575,   575,   575,   575,   575,
1678 <     575,   576,   577,   578,   579,   580,   581,   582
1679 < };
1263 > #define YYPACT_NINF -755
1264  
1265 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1266 < static const yytype_uint8 yyr2[] =
1265 > #define yypact_value_is_default(Yystate) \
1266 >  (!!((Yystate) == (-755)))
1267 >
1268 > #define YYTABLE_NINF -124
1269 >
1270 > #define yytable_value_is_error(Yytable_value) \
1271 >  0
1272 >
1273 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1274 >     STATE-NUM.  */
1275 > static const yytype_int16 yypact[] =
1276   {
1277 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1278 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1279 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1280 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1281 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1282 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1283 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1284 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1285 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1286 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1287 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1288 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1289 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1290 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1291 <       4,     1,     4,     4,     4,     4,     4,     0,     5,     3,
1292 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1293 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1294 <       0,     5,     3,     1,     0,     3,     0,     2,     1,     1,
1295 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1296 <       1,     1,     1,     1,     0,     7,     0,     1,     2,     1,
1297 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1298 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1299 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1300 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1301 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1302 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1303 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1304 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1305 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1306 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1307 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1308 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1309 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1310 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1311 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1312 <       7,     0,     1,     2,     1,     1,     1,     1,     1,     1,
1313 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1314 <       4,     1,     4,     4,     4,     4,     4,     4,     4,     0,
1315 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1316 <       1,     1,     4,     4,     4,     4,     4,     4,     0,     6,
1317 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1318 <       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1319 <       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1320 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1321 <       1,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1322 <       1,     1,     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,     4,     4,     4,     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,     4,     0,     5,     3,     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,     4,
1337 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1338 <       1,     1,     1,     1,     4,     4,     0,     5,     3,     1,
1339 <       1,     1,     4,     4,     0,     5,     3,     1,     1,     1,
1340 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1342 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1343 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1344 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1345 <       1,     4,     4,     4,     4,     4,     4,     4
1277 >    -755,   717,  -755,  -198,  -223,  -208,  -755,  -755,  -755,  -186,
1278 >    -755,  -184,  -755,  -755,  -755,  -179,  -755,  -755,  -755,  -168,
1279 >    -154,  -755,  -146,  -123,  -755,  -755,  -755,  -755,  -755,  -755,
1280 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1281 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   282,
1282 >     963,   -84,   -59,   -46,   130,   -45,   414,   -39,   -26,   -19,
1283 >      79,   -18,   -11,    21,   503,   408,    40,    39,    53,    41,
1284 >     -14,    -1,    64,    66,     7,  -755,  -755,  -755,  -755,  -755,
1285 >      81,    82,    96,   100,   102,   104,   105,   117,   119,   121,
1286 >     127,   128,    13,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1287 >    -755,  -755,  -755,  -755,  -755,  -755,   723,   577,    61,  -755,
1288 >     131,    10,  -755,  -755,    36,  -755,   132,   133,   135,   139,
1289 >     141,   142,   143,   144,   146,   148,   151,   153,   157,   158,
1290 >     160,   162,   164,   165,   166,   168,   170,   180,   182,   183,
1291 >     187,   188,   189,  -755,   192,  -755,   193,   195,   197,   199,
1292 >     200,   201,   202,   206,   207,   208,   209,   212,   213,   216,
1293 >     217,   219,   221,   222,   223,   108,  -755,  -755,  -755,  -755,
1294 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1295 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1296 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1297 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1298 >    -755,  -755,  -755,  -755,  -755,  -755,   353,     8,   292,    29,
1299 >     227,   231,    24,  -755,  -755,  -755,    22,   546,    47,  -755,
1300 >     236,   237,   240,   246,   248,   251,   253,   254,    15,  -755,
1301 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,    60,   255,
1302 >     257,   259,   260,   262,   263,   265,   266,   272,   288,   291,
1303 >     294,   303,   305,   306,   307,   308,     9,  -755,  -755,  -755,
1304 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1305 >    -755,  -755,  -755,  -755,  -755,     4,    65,   309,    19,  -755,
1306 >    -755,  -755,   155,  -755,   313,    23,  -755,  -755,    62,  -755,
1307 >     215,   352,   365,   270,  -755,   252,   436,   335,   438,   440,
1308 >     440,   440,   443,   451,   454,   355,   356,   340,  -755,   347,
1309 >     346,   351,   354,  -755,   357,   358,   360,   362,   366,   367,
1310 >     368,   369,   370,   372,   373,   377,   258,  -755,  -755,  -755,
1311 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1312 >    -755,  -755,  -755,  -755,   381,   382,   383,   384,   385,   386,
1313 >     387,  -755,   388,   390,   391,   392,   393,   394,   397,   326,
1314 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1315 >    -755,  -755,  -755,  -755,  -755,  -755,   406,   407,    69,  -755,
1316 >    -755,  -755,   460,   411,  -755,  -755,   412,   413,    48,  -755,
1317 >    -755,  -755,   375,   440,   440,   401,   487,   431,   537,   523,
1318 >     437,   440,   439,   540,   543,   440,   547,   446,   447,   448,
1319 >     440,   551,   552,   440,   553,   554,   555,   557,   456,   441,
1320 >     457,   442,   458,   440,   440,   459,   464,   466,    58,    95,
1321 >     467,   468,   469,   558,   440,   472,   473,   440,   440,   474,
1322 >     475,   461,  -755,   462,   463,   465,  -755,   471,   476,   477,
1323 >     479,   480,   163,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1324 >    -755,  -755,  -755,   481,   482,    50,  -755,  -755,  -755,   489,
1325 >     484,   490,  -755,   492,  -755,    25,  -755,  -755,  -755,  -755,
1326 >    -755,   563,   564,   496,  -755,   498,   499,   506,    18,  -755,
1327 >    -755,  -755,   510,   515,   516,  -755,   518,   519,   527,   528,
1328 >     529,  -755,   531,    14,  -755,  -755,  -755,  -755,  -755,  -755,
1329 >    -755,  -755,  -755,  -755,  -755,   513,   532,   533,   534,    11,
1330 >    -755,  -755,  -755,  -755,   493,   494,   544,   567,   556,   559,
1331 >     560,   440,   526,  -755,  -755,   569,   561,   571,   562,   594,
1332 >     603,   642,   644,   649,   651,   652,   668,   654,   -99,   -42,
1333 >     655,   657,   566,  -755,   568,   572,  -755,    73,  -755,  -755,
1334 >    -755,  -755,   573,   570,  -755,   565,   658,   574,  -755,   581,
1335 >     579,  -755,   582,    27,  -755,  -755,  -755,  -755,   589,   590,
1336 >     591,  -755,   592,   593,   595,   596,   267,   597,   598,   599,
1337 >     600,   601,   602,   607,   608,  -755,  -755,   674,   677,   440,
1338 >     606,   680,   683,   440,   690,   691,   440,   707,   729,   732,
1339 >     440,   733,   733,   615,  -755,  -755,   720,   129,   728,   646,
1340 >     731,   735,   629,   745,   746,   762,   748,   750,   751,   752,
1341 >     653,  -755,   756,   759,   656,  -755,   660,  -755,   761,   765,
1342 >     662,  -755,   663,   665,   666,   669,   670,   671,   672,   675,
1343 >     679,   687,   692,   694,   695,   697,   698,   704,   705,   706,
1344 >     710,   711,   715,   716,   719,   721,   730,   738,   740,   684,
1345 >     741,   747,   749,   753,   754,   760,   763,   766,   767,   771,
1346 >     772,   773,   774,   775,   776,   777,   778,   779,   780,   781,
1347 >     782,   783,   784,  -755,  -755,   788,   685,   714,   794,   793,
1348 >     811,   824,   827,   785,  -755,   837,   839,   786,  -755,  -755,
1349 >     854,   856,   787,   796,   789,  -755,   791,   792,  -755,  -755,
1350 >     866,   873,   795,  -755,  -755,   891,   805,   797,   897,   898,
1351 >     900,   901,   815,   800,   903,   804,  -755,  -755,   909,   910,
1352 >     913,   810,  -755,   812,   813,   817,   818,   819,   820,   821,
1353 >     822,  -755,   823,   825,   826,   828,   829,   830,   831,   832,
1354 >     833,   834,   835,   836,   838,  -755,  -755,  -209,  -755,  -755,
1355 >    -755,  -189,  -755,   842,   843,  -755,  -755,   915,   841,   845,
1356 >    -755,   846,  -755,    26,   847,  -755,  -755,   928,   848,   931,
1357 >     849,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   440,
1358 >     440,   440,   440,   440,   440,   440,  -755,  -755,  -755,  -755,
1359 >    -755,  -755,  -755,  -755,  -755,  -755,   850,   852,   853,   -34,
1360 >     855,   857,   858,   859,   860,   861,   862,   863,   864,   865,
1361 >     289,   867,   868,  -755,   869,   870,   871,   872,   874,   875,
1362 >     876,     5,   877,   878,   879,   880,   881,   882,   883,  -755,
1363 >     884,   885,  -755,  -755,   886,   887,  -755,  -755,  -755,  -755,
1364 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1365 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1366 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1367 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1368 >    -755,  -755,  -755,  -755,  -755,  -174,  -755,  -755,  -755,  -755,
1369 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1370 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -172,
1371 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1372 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1373 >    -755,  -755,   888,   889,   245,   890,   892,   893,   894,   895,
1374 >    -755,   896,   899,  -755,   902,   904,   -16,   907,   844,  -755,
1375 >    -755,  -755,  -755,   905,   906,  -755,   908,   911,   524,   912,
1376 >     914,   916,   917,   918,   790,   919,  -755,   920,   921,   922,
1377 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1378 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1379 >    -755,  -755,  -755,   -99,  -755,   -42,  -755,  -755,   923,   584,
1380 >    -755,  -755,   924,   851,   925,  -755,    57,  -755,  -755,  -755,
1381 >    -755,  -755,   926,   769,   927,  -755,  -755,  -755,  -755,  -755,
1382 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -171,  -755,
1383 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1384 >     733,   733,   733,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1385 >    -755,  -755,  -755,  -755,  -755,  -755,  -155,  -755,  -755,  -755,
1386 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1387 >     684,  -755,   747,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1388 >    -755,  -755,  -755,  -755,  -755,   -50,  -755,  -755,  -755,  -755,
1389 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -49,
1390 >    -755,   956,   796,   929,  -755,  -755,  -755,  -755,  -755,   930,
1391 >    -755,  -755,   932,  -755,  -755,  -755,  -755,   933,  -755,  -755,
1392 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -23,
1393 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1394 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1395 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,   -15,  -755,  -755,
1396 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1397 >    -755,  -755,  -755,  -755,  -755,  -755,     0,  -755,  -755,   943,
1398 >    -101,   936,   934,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1399 >    -755,  -755,  -755,  -755,  -755,    30,  -755,  -755,  -755,   -34,
1400 >    -755,  -755,  -755,  -755,     5,  -755,  -755,  -755,   245,  -755,
1401 >     -16,  -755,  -755,  -755,   954,   964,   971,  -755,   524,  -755,
1402 >     790,  -755,   584,   940,   941,   942,   297,  -755,  -755,   769,
1403 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1404 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1405 >    -755,  -755,    55,  -755,  -755,  -755,   297,  -755
1406   };
1407  
1408 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1409 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1410 <   means the default is an error.  */
1408 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1409 >     Performed when YYTABLE does not specify something else to do.  Zero
1410 >     means the default is an error.  */
1411   static const yytype_uint16 yydefact[] =
1412   {
1413 <       2,     0,     1,     0,     0,     0,   194,   349,   413,     0,
1414 <     428,     0,   603,   252,   398,   228,     0,     0,   125,   290,
1415 <       0,     0,   301,   326,     3,    23,    11,     4,     5,     6,
1416 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1417 <      22,    20,    21,     7,    12,    24,    25,     0,     0,   196,
1765 <     351,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1766 <       0,   127,     0,     0,     0,     0,     0,     0,     0,     0,
1767 <       0,     0,    83,    84,    86,    85,   651,     0,     0,     0,
1768 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1769 <       0,     0,     0,     0,     0,     0,   632,   650,   645,   633,
1770 <     634,   635,   636,   638,   639,   640,   641,   637,   642,   643,
1771 <     644,   646,   647,   648,   649,   215,     0,   197,   371,     0,
1772 <     352,     0,   426,     0,     0,   424,   425,     0,   501,     0,
1773 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1413 >       2,     0,     1,     0,     0,     0,   223,   386,   434,     0,
1414 >     449,     0,   289,   425,   265,     0,   107,   147,   323,     0,
1415 >       0,   364,     0,     0,   340,     3,    23,    11,     4,    24,
1416 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1417 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1418         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776       0,   576,     0,   553,     0,     0,     0,     0,     0,     0,
1419         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1420 <       0,     0,     0,     0,     0,   445,   500,   495,   496,   493,
1779 <     497,   498,   494,   456,   446,   447,   485,   448,   449,   450,
1780 <     451,   452,   453,   454,   455,   490,   457,   458,   459,   460,
1781 <     499,   462,   467,   463,   465,   464,   479,   480,   466,   468,
1782 <     469,   470,   471,   473,   472,   461,   475,   484,   486,   487,
1783 <     476,   477,   491,   492,   489,   478,   474,   482,   483,   481,
1784 <     488,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1785 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    93,
1786 <      94,    95,    98,   105,    99,   103,   100,   101,   104,   102,
1787 <      96,    97,     0,     0,     0,     0,    42,    43,    44,   141,
1788 <       0,   128,     0,   680,     0,     0,     0,     0,     0,     0,
1789 <       0,     0,   672,   673,   674,   678,   675,   677,   676,   679,
1790 <       0,     0,     0,     0,     0,     0,     0,     0,    64,     0,
1791 <       0,     0,     0,     0,    50,    62,    61,    58,    51,    60,
1792 <      54,    55,    56,    52,    59,    57,    53,     0,     0,    87,
1793 <       0,     0,     0,     0,    82,     0,     0,     0,     0,     0,
1420 >       0,     0,     0,     0,     0,    99,   100,   102,   101,   625,
1421         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1422 <       0,     0,     0,     0,   631,     0,     0,   419,     0,     0,
1423 <       0,   416,   417,   418,     0,     0,   423,   440,     0,     0,
1424 <     430,   439,     0,   436,   437,   438,     0,     0,     0,     0,
1422 >       0,     0,     0,   612,   624,   614,   615,   616,   617,   613,
1423 >     618,   619,   620,   621,   622,   623,     0,     0,     0,   447,
1424 >       0,     0,   445,   446,     0,   510,     0,     0,     0,     0,
1425         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1426         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1427 +       0,     0,     0,   582,     0,   557,     0,     0,     0,     0,
1428         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1429 +       0,     0,     0,     0,     0,     0,   460,   507,   509,   501,
1430 +     502,   503,   504,   505,   500,   471,   461,   462,   463,   464,
1431 +     465,   466,   467,   468,   469,   470,   497,   472,   473,   506,
1432 +     475,   480,   481,   476,   478,   477,   491,   492,   479,   482,
1433 +     483,   484,   485,   474,   487,   488,   489,   508,   498,   499,
1434 +     496,   490,   486,   494,   495,   493,     0,     0,     0,     0,
1435 +       0,     0,     0,    45,    46,    47,     0,     0,     0,   649,
1436 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   640,
1437 +     641,   642,   643,   644,   647,   645,   646,   648,     0,     0,
1438         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1439 +       0,     0,     0,     0,     0,     0,     0,    53,    68,    69,
1440 +      67,    64,    63,    70,    54,    66,    57,    58,    59,    55,
1441 +      65,    60,    61,    62,    56,     0,     0,     0,     0,   118,
1442 +     119,   120,     0,   338,     0,     0,   336,   337,     0,   103,
1443 +       0,     0,     0,     0,    98,     0,     0,     0,     0,     0,
1444 +       0,     0,     0,     0,     0,     0,     0,     0,   611,     0,
1445 +       0,     0,     0,   259,     0,     0,     0,     0,     0,     0,
1446 +       0,     0,     0,     0,     0,     0,     0,   226,   227,   230,
1447 +     232,   233,   234,   235,   236,   237,   238,   239,   228,   229,
1448 +     231,   240,   241,   242,     0,     0,     0,     0,     0,     0,
1449 +       0,   414,     0,     0,     0,     0,     0,     0,     0,     0,
1450 +     389,   390,   391,   392,   393,   394,   395,   397,   396,   399,
1451 +     403,   400,   401,   402,   398,   440,     0,     0,     0,   437,
1452 +     438,   439,     0,     0,   444,   455,     0,     0,     0,   452,
1453 +     453,   454,     0,     0,     0,     0,     0,     0,     0,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1803       0,     0,   444,   613,   624,     0,     0,   616,     0,     0,
1804       0,   606,   607,   608,   609,   610,   611,   612,     0,     0,
1805       0,   269,     0,     0,     0,     0,     0,     0,   255,   256,
1806     257,   258,   263,   259,   260,   261,   262,   410,     0,   400,
1807       0,   409,     0,   406,   407,   408,     0,   230,     0,     0,
1808       0,   240,     0,   238,   239,   241,   242,   106,     0,     0,
1455         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1810       0,    92,    45,     0,     0,     0,    41,     0,     0,     0,
1811       0,     0,     0,   293,   294,   295,   296,     0,     0,     0,
1812       0,     0,     0,     0,     0,   671,    63,     0,     0,     0,
1456         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1814      49,     0,     0,   311,     0,     0,   304,   305,   306,   307,
1815       0,     0,   334,     0,   329,   330,   331,     0,     0,     0,
1816      81,     0,     0,     0,     0,     0,    26,     0,     0,     0,
1457         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1458 <     630,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1459 <       0,     0,     0,     0,     0,     0,   199,   200,   203,   204,
1460 <     206,   207,   208,   209,   210,   211,   212,   201,   202,   205,
1461 <       0,     0,     0,     0,     0,     0,   379,     0,     0,     0,
1462 <       0,     0,     0,     0,     0,     0,   354,   355,   356,   357,
1463 <     358,   359,   361,   360,   362,   367,   366,   363,   364,   365,
1464 <     368,     0,     0,     0,   415,     0,   422,     0,     0,     0,
1465 <       0,   435,     0,     0,     0,     0,     0,     0,     0,     0,
1458 >       0,     0,   459,     0,     0,     0,   306,     0,     0,     0,
1459 >       0,     0,     0,   292,   293,   294,   295,   300,   296,   297,
1460 >     298,   299,   431,     0,     0,     0,   428,   429,   430,     0,
1461 >       0,     0,   267,     0,   277,     0,   275,   276,   278,   279,
1462 >      48,     0,     0,     0,    44,     0,     0,     0,     0,   110,
1463 >     111,   112,     0,     0,     0,   195,     0,     0,     0,     0,
1464 >       0,   170,     0,     0,   150,   151,   152,   153,   156,   157,
1465 >     158,   159,   155,   154,   160,     0,     0,     0,     0,     0,
1466 >     326,   327,   328,   329,     0,     0,     0,     0,     0,     0,
1467 >       0,     0,     0,   639,    71,     0,     0,     0,     0,     0,
1468         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1469 +       0,     0,     0,    52,     0,     0,   372,     0,   367,   368,
1470 +     369,   121,     0,     0,   117,     0,     0,     0,   335,     0,
1471 +       0,   350,     0,     0,   343,   344,   345,   346,     0,     0,
1472 +       0,    97,     0,     0,     0,     0,    27,     0,     0,     0,
1473 +       0,     0,     0,     0,     0,   610,   243,     0,     0,     0,
1474         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1475 +       0,     0,     0,     0,   225,   404,     0,     0,     0,     0,
1476         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1477 +       0,   388,     0,     0,     0,   436,     0,   443,     0,     0,
1478 +       0,   451,     0,     0,     0,     0,     0,     0,     0,     0,
1479         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1830       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1831     443,     0,     0,     0,     0,     0,     0,     0,   605,   264,
1832       0,     0,     0,     0,     0,     0,     0,     0,     0,   254,
1833       0,     0,     0,     0,   405,   243,     0,     0,     0,     0,
1834       0,   237,     0,     0,     0,     0,     0,     0,     0,     0,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1836      91,     0,     0,    40,     0,     0,     0,   170,     0,     0,
1837       0,   147,     0,     0,   130,   131,   132,   133,   136,   137,
1838     135,   134,   138,   297,     0,     0,     0,     0,   292,     0,
1839       0,     0,     0,     0,     0,     0,   670,     0,     0,     0,
1840       0,     0,     0,     0,     0,     0,     0,     0,     0,    48,
1841     308,     0,     0,     0,     0,   303,   332,     0,     0,     0,
1842     328,    90,    89,    88,   667,   664,   663,   652,   654,    26,
1843      26,    26,    26,    26,    28,    27,   658,   659,   662,   660,
1844     665,   666,   668,   669,   661,   653,   655,   656,   657,   213,
1481         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1846       0,     0,     0,     0,   198,   369,     0,     0,     0,     0,
1482         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1483 <       0,   353,     0,     0,   414,   427,     0,     0,     0,   429,
1484 <     514,   518,   505,   534,   547,   546,   601,   551,   512,   543,
1485 <     549,   513,   503,   504,   521,   510,   542,   511,   524,   509,
1486 <     523,   522,   517,   516,   515,   544,   502,   541,   599,   600,
1487 <     538,   535,   580,   596,   597,   581,   582,   583,   584,   591,
1488 <     585,   594,   598,   587,   592,   588,   593,   586,   590,   589,
1489 <     595,     0,   579,   540,   557,   573,   574,   558,   559,   560,
1490 <     561,   568,   562,   571,   575,   564,   569,   565,   570,   563,
1491 <     567,   566,   572,     0,   556,   533,   536,   550,   507,   545,
1492 <     508,   537,   526,   531,   532,   529,   530,   527,   528,   520,
1493 <     519,    34,    34,    34,    36,    35,   602,   552,   539,   548,
1494 <     506,   525,     0,     0,     0,     0,     0,     0,   604,     0,
1495 <       0,   275,     0,     0,     0,     0,     0,   253,     0,     0,
1861 <       0,   399,     0,     0,     0,   248,   244,   247,   229,   110,
1862 <     116,   114,   113,   115,   111,   112,   109,   117,   123,   118,
1863 <     122,   120,   121,   119,   108,   107,   124,    46,    47,   139,
1864 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   129,
1865 <       0,     0,     0,   291,   686,   681,   685,   683,   687,   682,
1866 <     684,    74,    80,    72,    76,    75,    71,    70,    68,    69,
1867 <       0,    67,    73,    79,    77,    78,     0,     0,     0,   302,
1868 <       0,     0,   327,    29,    30,    31,    32,    33,     0,     0,
1483 >       0,     0,     0,   458,   301,     0,     0,     0,     0,     0,
1484 >       0,     0,     0,     0,   291,     0,     0,     0,   427,   280,
1485 >       0,     0,     0,     0,     0,   274,     0,     0,    43,   113,
1486 >       0,     0,     0,   109,   161,     0,     0,     0,     0,     0,
1487 >       0,     0,     0,     0,     0,     0,   149,   330,     0,     0,
1488 >       0,     0,   325,     0,     0,     0,     0,     0,     0,     0,
1489 >       0,   638,     0,     0,     0,     0,     0,     0,     0,     0,
1490 >       0,     0,     0,     0,     0,    76,    77,     0,    75,    80,
1491 >      81,     0,    79,     0,     0,    51,   370,     0,     0,     0,
1492 >     366,     0,   116,     0,     0,   334,   347,     0,     0,     0,
1493 >       0,   342,   106,   105,   104,   633,   632,   626,   636,    27,
1494 >      27,    27,    27,    27,    27,    27,    29,    28,   637,   627,
1495 >     628,   631,   630,   629,   634,   635,     0,     0,     0,     0,
1496         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1497 <       0,   195,     0,     0,     0,     0,     0,     0,   385,     0,
1498 <       0,     0,     0,     0,     0,     0,     0,   350,   420,   421,
1499 <     441,   442,   434,     0,   433,   577,     0,   554,     0,    37,
1500 <      38,    39,   629,   628,     0,   627,   615,   614,   621,   620,
1501 <       0,   619,   623,   622,   267,   268,   273,     0,   272,     0,
1502 <     266,   289,   288,   287,   265,   412,   404,     0,   403,   411,
1503 <     235,   236,   234,     0,   233,   251,   250,     0,     0,     0,
1504 <       0,     0,   176,     0,     0,     0,     0,     0,   126,   299,
1505 <     300,   298,    65,     0,   309,   315,   321,   325,   324,   323,
1506 <     320,   316,   319,   322,   317,   318,     0,   314,   310,   333,
1507 <     338,   344,   348,   347,   346,   343,   339,   342,   345,   340,
1508 <     341,     0,   337,   225,   226,   219,   221,   223,   222,   220,
1509 <     214,   227,   218,   216,   217,   224,   375,   377,   378,   397,
1510 <     396,   393,   383,     0,   382,     0,   372,   394,   395,   370,
1511 <     376,   392,   374,   373,   431,     0,   578,   555,   625,     0,
1512 <     617,     0,     0,   270,   275,   281,   282,   278,   284,   280,
1513 <     279,   286,   283,   285,   277,   276,   401,     0,   231,     0,
1514 <     249,   246,   245,   146,   144,   174,     0,   173,     0,   140,
1515 <     143,   145,   151,   167,   168,   152,   153,   154,   155,   162,
1516 <     156,   165,   169,   158,   163,   159,   164,   157,   161,   160,
1517 <     166,     0,   150,   142,    66,   312,     0,   335,     0,     0,
1518 <     380,   385,   389,   390,   387,   388,   391,   386,   432,   626,
1519 <     618,   274,   271,   402,   232,     0,   171,   176,   186,   184,
1520 <     193,   183,   178,   187,   191,   180,   188,   190,   185,   179,
1521 <     192,   189,   181,   182,   177,   148,     0,   313,   336,   384,
1522 <     381,   175,   172,   149
1497 >      37,     0,     0,   224,     0,     0,     0,     0,     0,     0,
1498 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   387,
1499 >       0,     0,   435,   448,     0,     0,   450,   523,   527,   542,
1500 >     512,   609,   555,   549,   552,   522,   514,   513,   516,   517,
1501 >     515,   530,   520,   521,   531,   519,   526,   525,   524,   550,
1502 >     511,   607,   608,   546,   592,   586,   603,   587,   588,   589,
1503 >     597,   606,   590,   600,   604,   593,   605,   598,   594,   599,
1504 >     591,   602,   596,   595,   601,     0,   585,   548,   566,   561,
1505 >     578,   562,   563,   564,   572,   581,   565,   575,   579,   568,
1506 >     580,   573,   569,   574,   567,   577,   571,   570,   576,     0,
1507 >     560,   543,   541,   544,   554,   545,   533,   539,   540,   537,
1508 >     538,   534,   535,   536,   553,   556,   518,   547,   529,   528,
1509 >     551,   532,     0,     0,     0,     0,     0,     0,     0,     0,
1510 >     290,     0,     0,   426,     0,     0,     0,   285,   281,   284,
1511 >     266,    49,    50,     0,     0,   108,     0,     0,     0,     0,
1512 >       0,     0,     0,     0,     0,     0,   148,     0,     0,     0,
1513 >     324,   651,   650,   656,   654,   657,   652,   653,   655,    88,
1514 >      96,    87,    94,    95,    86,    90,    89,    83,    82,    84,
1515 >      93,    85,    72,     0,    73,     0,    91,    92,     0,     0,
1516 >     365,   122,     0,     0,     0,   134,     0,   126,   127,   129,
1517 >     128,   339,     0,     0,     0,   341,    30,    31,    32,    33,
1518 >      34,    35,    36,   254,   255,   247,   264,   263,     0,   262,
1519 >     249,   251,   258,   250,   248,   257,   244,   256,   246,   245,
1520 >      37,    37,    37,    39,    38,   252,   253,   409,   412,   413,
1521 >     423,   420,   406,   421,   418,   419,     0,   417,   422,   405,
1522 >     411,   408,   410,   424,   407,   441,   442,   456,   457,   583,
1523 >       0,   558,     0,   304,   305,   314,   311,   316,   312,   313,
1524 >     319,   315,   317,   310,   318,     0,   309,   303,   322,   321,
1525 >     320,   302,   433,   432,   288,   287,   272,   273,   271,     0,
1526 >     270,     0,     0,     0,   114,   115,   169,   165,   215,   202,
1527 >     212,   211,   200,   205,   222,   214,   220,   204,   207,   217,
1528 >     219,   216,   213,   221,   208,   210,   218,   206,   209,     0,
1529 >     198,   162,   164,   166,   167,   168,   179,   174,   191,   175,
1530 >     176,   177,   185,   194,   178,   188,   192,   181,   193,   186,
1531 >     182,   187,   180,   190,   184,   183,   189,     0,   173,   163,
1532 >     333,   331,   332,    74,    78,   371,   376,   382,   385,   378,
1533 >     384,   379,   383,   381,   377,   380,     0,   375,   130,     0,
1534 >       0,     0,     0,   125,   348,   354,   360,   363,   356,   362,
1535 >     357,   361,   359,   355,   358,     0,   353,   349,   260,     0,
1536 >      40,    41,    42,   415,     0,   584,   559,   307,     0,   268,
1537 >       0,   286,   283,   282,     0,     0,     0,   196,     0,   171,
1538 >       0,   373,     0,     0,     0,     0,     0,   124,   351,     0,
1539 >     261,   416,   308,   269,   201,   199,   203,   197,   172,   374,
1540 >     131,   133,   132,   140,   145,   144,   139,   142,   146,   143,
1541 >     138,   141,     0,   137,   352,   135,     0,   136
1542   };
1543  
1544 < /* YYDEFGOTO[NTERM-NUM].  */
1545 < static const yytype_int16 yydefgoto[] =
1900 < {
1901 <      -1,     1,    24,   834,   835,   984,   985,    25,   275,   276,
1902 <     277,   278,    26,   313,   314,   315,   534,  1070,  1071,   316,
1903 <     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
1904 <      27,    71,    72,    73,    74,    75,    28,   258,   259,   260,
1905 <     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1906 <     271,    29,    61,   280,   773,   774,   775,   281,   776,   777,
1907 <     778,   779,   780,   781,  1046,  1301,  1302,   782,  1042,  1276,
1908 <    1277,  1325,  1278,  1344,    30,    49,   116,   595,   596,   597,
1909 <     117,   598,   599,   600,   601,   602,   603,   604,   605,   606,
1910 <     607,   608,   609,    31,    58,   481,   736,  1163,  1164,   482,
1911 <     483,   484,  1169,  1016,  1017,   485,   486,    32,    56,   457,
1912 <     458,   459,   460,   461,   462,   463,   722,  1147,  1148,  1252,
1913 <    1149,  1265,   464,   465,   466,    33,    62,   512,   513,   514,
1914 <     515,   516,    34,    65,   545,   546,   547,   548,   549,   812,
1915 <    1196,  1197,    35,    66,   553,   554,   555,   556,   818,  1211,
1916 <    1212,    36,    50,   119,   625,   626,   627,   120,   628,   629,
1917 <     630,   631,   632,   633,   634,   871,  1233,  1234,  1309,  1235,
1918 <    1317,   635,   636,   637,   638,   639,   640,    37,    57,   471,
1919 <     731,  1157,  1158,   472,   473,   474,   475,    38,    51,   360,
1920 <     361,   362,   363,    39,   124,   125,   126,    40,    53,   371,
1921 <     649,  1123,  1124,   372,   373,   374,   375,    41,   184,   185,
1922 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1923 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1924 <     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1925 <     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1926 <     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1927 <     410,   963,   964,   236,   408,   941,   942,   237,   238,   239,
1928 <     240,    42,    55,   440,   441,   442,   443,   444,   714,  1140,
1929 <    1141,   445,   446,   447,   711,  1134,  1135,    43,    95,    96,
1930 <      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1931 <     107,   108,   109,   110,   111,   112,   113,   114,    44,   291,
1932 <     292,   293,   294,   295,   296,   297,   298,   299
1933 < };
1934 <
1935 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1936 <   STATE-NUM.  */
1937 < #define YYPACT_NINF -949
1938 < static const yytype_int16 yypact[] =
1544 >  /* YYPGOTO[NTERM-NUM].  */
1545 > static const yytype_int16 yypgoto[] =
1546   {
1547 <    -949,   670,  -949,  -256,  -248,  -245,  -949,  -949,  -949,  -212,
1548 <    -949,  -205,  -949,  -949,  -949,  -949,  -189,  -183,  -949,  -949,
1549 <    -154,  -152,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1550 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1551 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,    22,   642,  -127,
1552 <     -31,  -132,     5,  -125,   415,  -119,   -98,   -89,   -86,   578,
1553 <      14,    -8,   -75,   664,   313,   -74,   -61,   -45,   -46,   -37,
1554 <     -23,    31,  -949,  -949,  -949,  -949,  -949,   -22,    15,    30,
1555 <      33,    41,    42,    47,    48,    50,    61,    62,    70,    78,
1556 <      79,    80,    86,    90,    93,    94,  -949,  -949,  -949,  -949,
1557 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1558 <    -949,  -949,  -949,  -949,  -949,  -949,   -44,  -949,  -949,    89,
1559 <    -949,    20,  -949,    99,     2,  -949,  -949,   140,  -949,   100,
1560 <     104,   106,   111,   113,   115,   122,   123,   126,   127,   128,
1561 <     129,   131,   133,   135,   136,   137,   145,   147,   148,   151,
1562 <     155,   156,   157,   159,   163,   165,   167,   169,   174,   175,
1563 <     177,  -949,   178,  -949,   186,   187,   188,   193,   194,   197,
1564 <     199,   200,   205,   206,   209,   210,   211,   212,   213,   214,
1565 <     219,   220,   225,   228,    10,  -949,  -949,  -949,  -949,  -949,
1566 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1567 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1568 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1569 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1570 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1571 <    -949,   364,   308,    92,   318,    17,   229,   230,   231,   232,
1572 <     236,   237,   241,   242,   244,   245,   248,   250,   226,  -949,
1573 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1574 <    -949,  -949,    63,   251,   252,    60,  -949,  -949,  -949,  -949,
1575 <     182,  -949,    24,  -949,   253,   254,   255,   260,   270,   271,
1576 <     272,   192,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1970 <      72,   273,   274,   275,   276,   279,   281,   282,  -949,   285,
1971 <     286,   287,   288,   132,  -949,  -949,  -949,  -949,  -949,  -949,
1972 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   183,   102,  -949,
1973 <     222,   293,   336,   299,  -949,   198,   431,   432,   368,   369,
1974 <     436,   436,   440,   441,   376,   379,   446,   436,   381,   390,
1975 <     391,   392,   393,   332,  -949,   726,   521,  -949,   330,   331,
1976 <      76,  -949,  -949,  -949,   442,   338,  -949,  -949,   333,   337,
1977 <    -949,  -949,    57,  -949,  -949,  -949,   404,   436,   408,   436,
1978 <     482,   461,   486,   423,   424,   491,   470,   429,   496,   497,
1979 <     498,   434,   436,   445,   447,   436,   493,   450,   517,   518,
1980 <     436,   522,   523,   499,   526,   528,   463,   464,   400,   469,
1981 <     405,   436,   436,   475,   436,   514,   488,   489,   492,  -131,
1982 <    -110,   494,   501,   436,   436,   548,   436,   504,   505,   506,
1983 <     510,   428,  -949,  -949,  -949,   420,   427,  -949,   430,   448,
1984 <     112,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   435,   454,
1985 <     457,  -949,   459,   462,   465,   466,   467,   118,  -949,  -949,
1986 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   468,  -949,
1987 <     472,  -949,    74,  -949,  -949,  -949,   449,  -949,   474,   483,
1988 <     490,  -949,    29,  -949,  -949,  -949,  -949,  -949,   555,   557,
1989 <     560,   571,   573,   579,   599,   601,   360,   602,   604,   561,
1990 <     502,  -949,  -949,   608,   611,   507,  -949,   305,   511,   503,
1991 <     512,   515,   152,  -949,  -949,  -949,  -949,   568,   577,   580,
1992 <     626,   583,   584,   436,   524,  -949,  -949,   634,   586,   637,
1993 <     638,   639,   640,   641,   532,   646,   672,   648,   651,   547,
1994 <    -949,   551,   549,  -949,   550,    69,  -949,  -949,  -949,  -949,
1995 <     558,   556,  -949,    75,  -949,  -949,  -949,   562,   563,   564,
1996 <    -949,   565,   566,   569,   572,   576,   207,   582,   587,   588,
1997 <     589,   592,   593,   594,   597,   598,   603,   607,   609,   610,
1998 <    -949,   615,   574,   581,   605,   616,   617,   618,   619,   620,
1999 <     622,   623,   624,   625,   628,   116,  -949,  -949,  -949,  -949,
2000 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2001 <     629,   632,   645,   649,   650,   652,  -949,   653,   654,   655,
2002 <     656,   660,   665,   667,   668,   160,  -949,  -949,  -949,  -949,
2003 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2004 <    -949,   675,   686,   678,  -949,   681,  -949,   687,   690,   682,
2005 <     688,  -949,   689,   691,   693,   694,   695,   696,   700,   704,
2006 <     705,   707,   708,   715,   718,   722,   723,   725,   727,   728,
2007 <     730,   731,   732,   733,   737,   741,   742,   744,   745,   747,
2008 <     748,   749,   750,   751,   692,   752,   729,   753,   754,   755,
2009 <     756,   757,   758,   759,   760,   761,   762,   763,   764,   765,
2010 <     767,   768,   769,    49,   770,   771,   772,   773,   774,   775,
2011 <    -949,   683,   436,   712,   776,   709,   711,   777,  -949,  -949,
2012 <     797,   714,   778,   799,   783,   833,   836,   873,   780,  -949,
2013 <     883,   779,   885,   784,  -949,  -949,   782,   890,   893,   796,
2014 <     787,  -949,   788,   789,   790,   791,   792,   793,   794,   795,
2015 <     798,   800,   801,   802,   803,   804,   805,   806,   807,   808,
2016 <    -949,   809,   810,  -949,   811,   812,   813,  -949,   814,   815,
2017 <     816,  -949,   817,   181,  -949,  -949,  -949,  -949,  -949,  -949,
2018 <    -949,  -949,  -949,  -949,   903,   904,   906,   821,  -949,   822,
2019 <     823,   824,   825,   826,   827,   828,  -949,   829,   830,   831,
2020 <     832,   834,   835,   837,   -80,   838,   839,   840,   841,  -949,
2021 <    -949,   919,   842,   920,   843,  -949,  -949,   921,   844,   846,
2022 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   436,
2023 <     436,   436,   436,   436,  -949,  -949,  -949,  -949,  -949,  -949,
2024 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2025 <     962,   965,   436,   971,   973,   977,   978,   957,   980,   981,
2026 <     436,   436,   548,   853,  -949,  -949,   961,  -117,   963,   964,
2027 <     918,   855,   966,   967,   968,   969,   992,   972,   974,   975,
2028 <     864,  -949,   866,   869,  -949,  -949,   870,   871,   662,  -949,
2029 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2030 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2031 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2032 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2033 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2034 <    -949,  -244,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2035 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2036 <    -949,  -949,  -949,  -236,  -949,  -949,  -949,  -949,  -949,  -949,
2037 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2038 <    -949,   548,   548,   548,  -949,  -949,  -949,  -949,  -949,  -949,
2039 <    -949,  -949,    -3,   872,   874,    -2,   875,   876,  -949,   877,
2040 <     878,  1003,   879,   880,   881,   882,   884,  -949,   886,   703,
2041 <     887,  -949,   -63,   888,   889,   676,   891,  -949,  -949,  -949,
2042 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2043 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2044 <     990,   948,   894,   997,   998,   999,   895,  1000,   896,  -949,
2045 <     899,   900,   901,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2046 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2047 <    -224,  -949,  -949,  -949,  -949,  -949,   902,   570,   905,  -949,
2048 <     907,   627,  -949,  -949,  -949,  -949,  -949,  -949,   908,   909,
2049 <     910,   911,   912,   913,   914,   915,   916,   917,   922,   923,
2050 <     924,  -949,   925,   926,   927,   928,   929,   930,  1024,   931,
2051 <     932,   933,   934,   935,   936,   937,   938,  -949,  -949,  -949,
2052 <    -949,  -949,  -949,  -219,  -949,  -949,   692,  -949,   729,  -949,
2053 <    -949,  -949,  -949,  -949,  -216,  -949,  -949,  -949,  -949,  -949,
2054 <    -213,  -949,  -949,  -949,  -949,  -949,  -949,  -158,  -949,   630,
2055 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -149,  -949,  -949,
2056 <    -949,  -949,  -949,  -129,  -949,  -949,  -949,  1032,   796,   939,
2057 <     940,   941,  1034,   942,   943,   944,   766,   945,  -949,  -949,
2058 <    -949,  -949,  -949,   -80,  -949,  -949,  -949,  -949,  -949,  -949,
2059 <    -949,  -949,  -949,  -949,  -949,  -949,  -106,  -949,  -949,  -949,
2060 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2061 <    -949,   -25,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2062 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2063 <    -949,  -949,  -949,    38,  -949,     0,  -949,  -949,  -949,  -949,
2064 <    -949,  -949,  -949,  -949,  -949,   662,  -949,  -949,  -949,    -3,
2065 <    -949,    -2,   630,  -949,  1003,  -949,  -949,  -949,  -949,  -949,
2066 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   703,  -949,   -63,
2067 <    -949,  -949,  -949,  -949,  -949,  -949,    56,  -949,   553,  -949,
2068 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2069 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2070 <    -949,    88,  -949,  -949,  -949,  -949,   570,  -949,   627,     0,
2071 <    -949,  1024,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2072 <    -949,  -949,  -949,  -949,  -949,   553,  -949,  1034,  -949,  -949,
2073 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2074 <    -949,  -949,  -949,  -949,  -949,  -949,   766,  -949,  -949,  -949,
2075 <    -949,  -949,  -949,  -949
1547 >    -755,  -755,  -755,  -298,  -307,  -754,  -621,  -755,  -755,   935,
1548 >    -755,  -755,  -755,  -755,   619,  -755,  -755,  -755,   107,  -755,
1549 >      93,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1550 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  1051,  -755,
1551 >    -755,  -755,  -755,  -755,  -755,   630,  -755,  -755,  -755,  -755,
1552 >     937,  -755,  -755,  -755,  -755,    91,  -755,  -755,  -755,  -755,
1553 >    -755,  -152,  -755,  -755,  -755,   623,  -755,  -755,  -755,  -755,
1554 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -113,  -755,  -755,
1555 >    -755,  -108,  -755,  -755,  -755,   806,  -755,  -755,  -755,  -755,
1556 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1557 >    -755,  -755,  -755,  -755,   -77,  -755,  -755,  -755,  -755,  -755,
1558 >     -82,  -755,   678,  -755,  -755,  -755,    28,  -755,  -755,  -755,
1559 >    -755,  -755,   708,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1560 >     -79,  -755,  -755,  -755,  -755,  -755,  -755,   643,  -755,  -755,
1561 >    -755,  -755,  -755,   938,  -755,  -755,  -755,  -755,   588,  -755,
1562 >    -755,  -755,  -755,  -755,   -86,  -755,  -755,  -755,   609,  -755,
1563 >    -755,  -755,  -755,   -78,  -755,  -755,  -755,   808,  -755,  -755,
1564 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   -56,
1565 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,   700,  -755,
1566 >    -755,  -755,  -755,  -755,   798,  -755,  -755,  -755,  -755,  1068,
1567 >    -755,  -755,  -755,  -755,   799,  -755,  -755,  -755,  -755,  1015,
1568 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1569 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1570 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1571 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1572 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,    80,  -755,  -755,
1573 >    -755,    83,  -755,  -755,  -755,  -755,  -755,  1089,  -755,  -755,
1574 >    -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1575 >    -755,  -755,   946,  -755,  -755,  -755,  -755,  -755,  -755,  -755,
1576 >    -755
1577   };
1578  
1579 < /* YYPGOTO[NTERM-NUM].  */
1580 < static const yytype_int16 yypgoto[] =
1579 >  /* YYDEFGOTO[NTERM-NUM].  */
1580 > static const yytype_int16 yydefgoto[] =
1581   {
1582 <    -949,  -949,  -949,  -427,  -340,  -948,  -423,  -949,  -949,   946,
1583 <    -949,  -949,  -949,  -949,   865,  -949,  -949,  -949,  -293,  -949,
1584 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1585 <    -949,  -949,  1095,  -949,  -949,  -949,  -949,  -949,   643,  -949,
1586 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1587 <    -949,  -949,  -949,  -949,  -949,   406,  -949,  -949,  -949,  -949,
1588 <    -949,  -949,  -949,  -949,  -949,  -949,  -166,  -949,  -949,  -949,
1589 <    -146,  -949,  -949,  -118,  -949,  -949,  -949,  -949,   613,  -949,
1590 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1591 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -60,  -949,
1592 <     724,  -949,  -949,  -949,    43,  -949,  -949,  -949,  -949,  -949,
1593 <     781,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -42,  -949,
1594 <    -949,   -39,  -949,  -949,  -949,  -949,  -949,  -949,   698,  -949,
1595 <    -949,  -949,  -949,  -949,  -949,   669,  -949,  -949,  -949,  -949,
1596 <    -949,   -91,  -949,  -949,  -949,   663,  -949,  -949,  -949,  -949,
1597 <     -90,  -949,  -949,  -949,  -949,   595,  -949,  -949,  -949,  -949,
1598 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   -94,  -949,  -949,
1599 <     -87,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1600 <    -949,  -949,   -48,  -949,   785,  -949,  -949,  -949,  -949,  -949,
1601 <     863,  -949,  -949,  -949,  -949,  1100,  -949,  -949,  -949,  -949,
1602 <    -949,  -949,   -20,  -949,   854,  -949,  -949,  -949,  -949,  1043,
1603 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1604 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1605 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1606 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1607 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1608 <    -949,  -949,   101,  -949,  -949,  -949,   105,  -949,  -949,  -949,
1609 <    -949,  -949,  -949,  -949,   818,  -949,  -949,  -949,  -949,  -949,
1610 <     -21,  -949,  -949,  -949,  -949,  -949,   -17,  -949,  -949,  1133,
1611 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2111 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
2112 <     949,  -949,  -949,  -949,  -949,  -949,  -949,  -949
1582 >      -1,     1,    25,   816,   817,  1073,  1074,    26,   222,   223,
1583 >     224,   225,    27,   266,   267,   268,   269,   777,   778,   781,
1584 >     782,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1585 >     279,   280,   281,   282,   283,   284,    28,    74,    75,    76,
1586 >      77,    78,    29,    61,   498,   499,   500,   501,    30,   288,
1587 >     289,   290,   291,   292,  1036,  1037,  1038,  1039,  1040,  1211,
1588 >    1282,  1283,    31,    62,   513,   514,   515,   516,   517,   518,
1589 >     519,   520,   521,   522,   523,   743,  1187,  1188,   524,   737,
1590 >    1159,  1160,    32,    51,   336,   337,   338,   339,   340,   341,
1591 >     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
1592 >     352,   353,   610,  1058,  1059,    33,    59,   484,   722,  1129,
1593 >    1130,   485,   486,   487,  1133,   978,   979,   488,   489,    34,
1594 >      57,   462,   463,   464,   465,   466,   467,   468,   707,  1115,
1595 >    1116,   469,   470,   471,    35,    63,   529,   530,   531,   532,
1596 >     533,    36,   295,   296,   297,    37,    69,   583,   584,   585,
1597 >     586,   587,   798,  1225,  1226,    38,    66,   567,   568,   569,
1598 >     570,   788,  1206,  1207,    39,    52,   369,   370,   371,   372,
1599 >     373,   374,   375,   376,   377,   378,   379,   632,  1086,  1087,
1600 >     380,   381,   382,   383,   384,    40,    58,   475,   476,   477,
1601 >     478,    41,    53,   388,   389,   390,   391,    42,   111,   112,
1602 >     113,    43,    55,   398,   399,   400,   401,    44,   165,   166,
1603 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1604 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1605 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1606 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1607 >     207,   208,   209,   210,   211,   431,   939,   940,   212,   429,
1608 >     915,   916,   213,   214,   215,    45,    92,    93,    94,    95,
1609 >      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1610 >      46,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1611 >     247
1612   };
1613  
1614 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1615 <   positive, shift that token.  If negative, reduce the rule which
1616 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1617 < #define YYTABLE_NINF -1
2119 < static const yytype_uint16 yytable[] =
1614 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1615 >     positive, shift that token.  If negative, reduce the rule whose
1616 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1617 > static const yytype_int16 yytable[] =
1618   {
1619 <     567,   568,   704,   122,    45,    46,   122,   574,  1132,  1138,
1620 <    1312,   128,  1313,  1160,    47,   272,  1125,    48,   129,   130,
1621 <    1126,   357,   131,    67,  1127,   508,   115,  1314,  1128,   132,
1622 <     476,  1315,    67,  1129,  1130,  1131,  1182,   653,   133,   655,
1623 <    1183,  1244,   134,   135,  1248,  1245,   509,  1250,  1249,   136,
1624 <      52,  1251,   668,   137,   138,   671,   139,    54,   367,    68,
1625 <     676,   272,   140,   981,   982,   983,   695,   696,    68,    69,
1626 <     541,   687,   688,    59,   690,   467,   550,   357,    69,    60,
1627 <     141,   142,   477,   701,   702,   143,   705,   697,   698,  1068,
1628 <    1069,   123,   144,   467,   123,    76,   145,   146,   147,  1103,
1629 <    1104,   148,  1253,   550,   149,   150,  1254,    77,    63,   358,
1630 <      64,  1266,   478,   433,   151,  1267,   434,   581,   479,   448,
1631 <     152,   153,   118,   154,   155,   156,   157,   158,    78,    79,
1632 <     121,  1268,   273,   300,    80,  1269,    81,   127,   159,   582,
1633 <     583,   367,    70,   241,   449,   279,   584,   160,   510,   161,
1634 <     162,    70,   163,   508,  1305,   164,   165,   435,  1306,   166,
1635 <     436,   610,   274,   611,   242,   358,   612,   450,  1161,   301,
1636 <     167,   451,  1162,   243,   509,   359,   244,   368,   273,   511,
1637 <     703,   480,   764,   795,   541,   613,   614,   282,   327,   542,
1638 <      82,    83,   168,   283,   169,   551,  1133,  1139,   170,    84,
1639 <      85,   328,   171,   172,   173,   174,   175,   765,   274,   615,
1640 <     176,   177,   369,   616,   437,   329,   302,   330,   355,   178,
1641 <      86,    87,   551,   585,   586,   587,   331,   245,   588,   468,
1642 <     766,   359,   438,   284,   767,  1307,   589,    88,    89,  1308,
1643 <     332,   335,  1316,   617,   370,   618,   285,   468,    90,   590,
1644 <     591,   179,   303,   180,   304,   305,   543,    91,   619,   181,
1645 <     368,   469,   552,   365,   182,   452,   592,   593,   286,   183,
1646 <     287,   431,   288,   289,   453,   454,   510,   487,   336,   469,
1647 <     620,   246,   247,   248,   249,   250,   251,   252,   253,   552,
1648 <     740,   290,   333,   337,   594,   369,   338,   306,  1310,   307,
1649 <     308,   768,  1311,   542,   339,   340,   764,   511,   455,   448,
1650 <     341,   342,   621,   343,   300,   309,  1326,   544,   650,   476,
1651 <    1327,   505,   470,   502,   344,   345,   622,   370,   769,   254,
1652 <     814,   765,   526,   346,   449,   733,   819,   643,   566,   623,
1653 <     470,   347,   348,   349,    92,    93,    94,   770,  1345,   350,
1654 <     301,   356,  1346,   351,   766,   353,   352,   450,   767,   310,
1655 <     439,   451,   364,   376,   255,   433,   456,   377,   434,   378,
1656 <     543,   477,   993,   717,   379,   557,   380,   863,   381,   728,
1657 <     829,   830,   831,   832,   833,   382,   383,   311,   312,   384,
1658 <     385,   386,   387,   539,   388,   561,   389,   302,   390,   391,
1659 <     392,   478,  1083,  1084,  1085,  1086,  1087,   479,   393,   435,
1660 <     394,   395,   436,   787,   396,   624,   128,   771,   397,   398,
1661 <     399,   880,   400,   129,   130,   768,   401,   131,   402,   772,
1662 <     403,   544,   404,   303,   132,   304,   305,   405,   406,  1100,
1663 <     407,   409,  1048,   133,   507,   256,   558,   134,   135,   411,
1664 <     412,   413,   769,   524,   136,   452,   414,   415,   137,   138,
1665 <     416,   139,   417,   418,   453,   454,   437,   140,   419,   420,
1666 <     480,   770,   421,   422,   423,   424,   425,   426,   306,   257,
1667 <     307,   308,   427,   428,   438,   141,   142,   500,   429,   559,
1668 <     143,   430,   488,   489,   490,   491,   309,   144,   455,   492,
1669 <     493,   145,   146,   147,   494,   495,   148,   496,   497,   149,
1670 <     150,   498,  1090,   499,   503,   504,   517,   518,   519,   151,
1671 <    1098,  1099,   610,   520,   611,   152,   153,   612,   154,   155,
1672 <     156,   157,   158,   521,   522,   523,   527,   528,   529,   530,
1673 <     310,   771,   531,   159,   532,   533,   613,   614,   535,   536,
1674 <     537,   538,   160,   772,   161,   162,   456,   163,  1328,   560,
1675 <     164,   165,   562,   563,   166,   564,   565,   566,   311,   312,
1676 <     615,   569,   570,   571,   616,   167,   572,   573,   575,   245,
1677 <     750,   751,   752,   753,   754,   755,   756,   576,   577,   578,
1678 <     579,  1329,   580,   641,   642,   645,   647,   168,   646,   169,
1679 <     648,   652,  1330,   170,   617,   654,   618,   171,   172,   173,
1680 <     174,   175,   439,   656,   657,   176,   177,   658,  1331,   619,
1681 <     659,   660,   661,   662,   178,  1332,   663,   664,   665,   666,
1682 <    1333,   667,  1334,   246,   247,   248,   249,   250,   251,   252,
1683 <     253,   620,   669,    76,   670,  1335,   672,   673,   674,   675,
1684 <    1255,  1256,   679,   677,   678,    77,   179,   680,   180,   681,
1685 <     682,   683,  1185,   684,   181,   283,   685,   691,   686,   182,
1686 <       2,     3,   689,   621,   183,     4,    78,    79,  1336,   703,
1687 <    1257,   254,    80,   712,    81,   692,   693,   622,   710,   694,
1688 <     713,   699,     5,   715,  1337,   719,     6,  1258,   700,     7,
1689 <     623,   706,   707,   708,  1259,   284,     8,   709,   742,   735,
1690 <     743,   716,  1338,   744,  1339,  1340,   255,   720,   285,  1200,
1691 <     721,     9,   723,  1260,   745,   724,   746,   581,   725,   726,
1692 <     727,   730,   747,    10,    11,   732,    12,   737,    82,    83,
1693 <     286,  1186,   287,    13,   288,   289,   738,    84,    85,   582,
1694 <     583,  1261,   748,   739,   749,   757,   584,   758,   759,  1262,
1695 <      14,   761,   760,   290,   762,   789,   784,   763,    86,    87,
1696 <      15,   783,    16,  1187,   790,   785,   624,   791,   786,   792,
1697 <     793,   794,  1341,   798,   796,    88,    89,   797,  1188,    17,
1698 <     799,   800,   801,   802,   803,   804,    90,   256,  1201,   805,
1699 <    1342,   807,  1263,   806,   808,    91,    18,   809,  1189,  1190,
1700 <    1343,   810,   811,   813,  1191,  1192,  1193,  1194,   816,   817,
1701 <    1122,  1264,   821,   822,   823,   824,   825,  1195,   882,   826,
1702 <    1202,   257,   827,   585,   586,   587,   828,   850,   588,   883,
1703 <     886,    19,   836,   887,   851,  1203,   589,   837,   838,   839,
1704 <      20,    21,   840,   841,   842,    22,    23,   843,   844,   590,
1705 <     591,  1156,   996,   845,   997,  1204,  1205,   846,   852,   847,
1706 <     848,  1206,  1207,  1208,  1209,   849,   592,   593,  1167,   853,
1707 <     854,   855,   856,   857,  1210,   858,   859,   860,   861,   865,
1708 <    1304,   862,    92,    93,    94,   866,   922,   923,   924,   925,
1709 <     926,   501,   927,   928,   594,   929,   930,   931,   867,   994,
1710 <     932,  1000,   868,   869,  1003,   870,   872,   873,   874,   875,
1711 <     933,   934,   935,   876,   936,   937,   938,  1015,   877,   939,
1712 <     878,   879,   940,   944,   945,   946,   947,   948,   884,   949,
1713 <     950,   885,   951,   952,   953,   888,   992,   954,   889,   890,
1714 <     999,   891,  1002,   892,   893,   894,   895,   955,   956,   957,
1715 <     896,   958,   959,   960,   897,   898,   961,   899,   900,   962,
1716 <    1282,  1283,  1284,  1285,  1286,   901,  1287,  1288,   902,  1289,
1717 <    1290,  1291,   903,   904,  1292,   905,  1004,   906,   907,  1005,
1718 <     908,   909,   910,   911,  1293,  1294,  1295,   912,  1296,  1297,
1719 <    1298,   913,   914,  1299,   915,   916,  1300,   917,   918,   919,
1720 <     920,   921,   943,   965,   966,   967,   968,   969,   970,   971,
1721 <     972,   973,   974,   975,   976,   977,  1006,   978,   979,   980,
1722 <     986,   987,   988,   989,   990,   991,  1008,   998,  1010,   995,
1723 <    1007,  1001,  1009,  1013,  1011,  1012,  1014,  1018,  1019,  1020,
1724 <    1021,  1022,  1023,  1024,  1025,  1026,  1050,  1051,  1027,  1052,
1725 <    1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
1726 <    1038,  1039,  1076,  1078,  1080,  1040,  1041,  1043,  1044,  1045,
1727 <    1047,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,
1728 <    1062,  1063,  1064,  1088,  1065,  1066,  1089,  1067,  1072,  1073,
1729 <    1074,  1075,  1091,  1079,  1092,  1077,  1082,  1081,  1093,  1094,
1730 <    1095,  1096,  1097,  1101,  1102,  1107,  1105,  1106,  1108,  1109,
1731 <    1110,  1111,  1112,  1113,  1117,  1114,  1118,  1115,  1116,  1119,
1732 <    1120,  1121,  1136,  1146,  1137,  1142,  1143,  1144,  1145,  1150,
1733 <    1151,  1152,  1153,  1170,  1154,  1171,  1155,  1159,  1165,  1166,
1734 <    1173,  1174,  1175,  1177,  1232,  1168,  1178,  1172,  1176,  1179,
1735 <    1180,  1181,  1184,  1270,  1275,  1198,   334,  1199,  1213,  1214,
1736 <    1215,  1216,  1217,  1218,  1219,  1220,  1221,  1222,   540,  1049,
1737 <    1353,  1352,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,
1738 <    1231,  1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1272,
1739 <    1273,  1274,  1279,  1280,  1281,  1303,   741,  1351,   864,  1324,
1740 <     788,  1271,  1322,  1321,   815,  1347,   820,  1350,  1348,  1323,
1741 <     881,   506,  1349,   644,   366,  1318,   651,   432,   354,  1247,
1742 <    1320,  1246,  1319,     0,     0,     0,     0,     0,   729,     0,
2245 <     525,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2246 <       0,     0,     0,     0,     0,     0,     0,   734,   718
1619 >     841,   842,   597,   598,   599,   564,    49,   840,    70,   472,
1620 >     248,   109,   525,  1084,    79,   502,   229,  1056,  1022,   495,
1621 >     286,    50,  1023,   495,   293,   219,   479,  1032,   579,    47,
1622 >      48,   503,    71,  1126,   249,    80,    81,   395,  1024,    72,
1623 >     286,    82,  1025,    54,   230,    56,   526,   504,   525,   395,
1624 >      60,   472,   231,  1099,   293,  1101,  1228,  1100,  1032,  1102,
1625 >    1229,    64,   385,   579,   232,   233,   250,   234,   235,   236,
1626 >     385,   110,  1233,   251,   564,    65,  1234,   505,    83,    84,
1627 >     219,   480,   526,    67,    85,    86,   481,   527,   482,   237,
1628 >    1057,    87,    88,    89,   496,   252,   653,   654,   496,   253,
1629 >     775,   776,   565,  1254,   661,    73,    68,   254,   665,   115,
1630 >     255,   256,   506,   670,   116,   117,   673,    90,    91,   220,
1631 >     118,   294,   386,   527,  1033,   580,   683,   684,   119,   120,
1632 >     386,   109,   507,   473,   396,   121,   528,   696,   122,   123,
1633 >     699,   700,   257,   221,   124,   106,   396,   483,   508,   125,
1634 >     126,   294,   127,   128,   129,  1033,   130,   779,   780,   258,
1635 >     580,   397,   259,   131,   453,   509,   510,   132,   133,  1127,
1636 >     107,   565,   528,   397,   220,   473,   134,  1237,  1239,  1128,
1637 >     454,  1238,  1240,   108,   114,   135,   387,   260,   497,  -123,
1638 >     216,   110,   497,   136,   387,   137,   455,   138,   221,   139,
1639 >    1085,   140,   141,   217,  1247,   261,   262,   263,  1248,  -123,
1640 >     218,   226,  1249,   299,   142,   511,  1250,  1034,   227,   143,
1641 >     144,   145,   566,   146,   147,   148,   456,  1251,   149,   300,
1642 >     474,  1252,   264,   265,   760,   303,   512,   562,   393,   751,
1643 >     287,   317,   745,   542,  1035,   581,   732,   573,  1034,   582,
1644 >     228,   577,   493,   724,   150,   800,   490,  1258,  1105,   319,
1645 >     287,  1259,   151,   152,   153,   154,   155,   156,   688,   285,
1646 >     298,   689,   474,   320,   321,  1035,   650,   322,   717,  1106,
1647 >     581,   457,  1285,    70,   582,  1212,  1286,   544,  1107,   458,
1648 >     459,   566,   571,   479,   301,   157,   302,   644,  1070,  1071,
1649 >    1072,   789,   828,   845,   846,   690,   832,    71,   691,   835,
1650 >     460,   305,   306,   839,    72,  1108,  1230,  1231,  1232,   158,
1651 >     159,   323,   160,   161,   162,   575,   307,   354,   163,   355,
1652 >     308,   356,   309,   164,   310,   311,   451,  1273,   588,   324,
1653 >     325,   326,   327,   357,  1109,  1110,   328,   312,   480,   313,
1654 >     329,   314,  1111,   481,   453,   482,   330,   315,   316,   358,
1655 >     592,   392,   402,   403,  1274,   404,  1275,   331,   332,   405,
1656 >     454,   406,   407,   408,   409,   596,   410,  1112,   411,   333,
1657 >      73,   412,   359,   413,   360,   461,   455,   414,   415,   361,
1658 >     416,   713,   417,  1113,   418,   419,   420,   840,   421,   362,
1659 >     422,   334,   809,   810,   811,   812,   813,   814,   815,   248,
1660 >     423,  1276,   424,   425,   483,   115,   456,   426,   427,   428,
1661 >     116,   117,   430,   432,   363,   433,   118,   434,  1277,   435,
1662 >     436,   437,   438,   249,   119,   120,   439,   440,   441,   442,
1663 >     335,   121,   443,   444,   122,   123,   445,   446,   364,   447,
1664 >     124,   448,   449,   450,  1114,   125,   126,   491,   127,   128,
1665 >     129,   492,   130,  1278,  1279,   250,   534,   535,   365,   131,
1666 >     536,   457,   251,   132,   133,   589,   537,   366,   538,   458,
1667 >     459,   539,   134,   540,   541,   545,   623,   546,   590,   547,
1668 >     548,   135,   549,   550,   252,   551,   552,   591,   253,   136,
1669 >     460,   137,   553,   138,   229,   139,   254,   140,   141,   255,
1670 >     256,  1046,  1047,  1048,  1049,  1050,  1051,  1052,   554,  1280,
1671 >     142,   555,   367,  1281,   556,   143,   144,   145,  1138,   146,
1672 >     147,   148,   230,   557,   149,   558,   559,   560,   561,   572,
1673 >     231,   257,  1139,   576,   593,   594,   595,   502,   596,   368,
1674 >    1140,   600,   232,   233,   640,   234,   235,   236,   258,   601,
1675 >     150,   259,   602,   503,  1141,   603,   604,   605,   151,   152,
1676 >     153,   154,   155,   156,   606,   461,   607,   237,   354,   504,
1677 >     355,   608,   356,   646,   609,   652,   260,   611,   612,  1255,
1678 >     613,  1142,   614,  1143,   357,   656,   615,   616,   617,   618,
1679 >     619,   157,   620,   621,   261,   262,   263,   622,   625,   505,
1680 >     358,   655,   626,   627,   628,   629,   630,   631,   633,  1144,
1681 >     634,   635,   636,   637,   638,   158,   159,   639,   160,   161,
1682 >     162,   264,   265,   359,   163,   360,   642,   643,   647,   164,
1683 >     361,   657,   648,   649,   506,   658,   659,   660,   663,   662,
1684 >     362,   664,  1145,  1196,  1146,   666,   667,   668,   669,   671,
1685 >     672,   674,   675,   676,   507,   677,   678,   680,   682,   685,
1686 >     765,   679,   681,  1147,   686,   363,   687,   692,   693,   694,
1687 >     508,   695,   697,   698,   701,   702,   726,   727,   703,   704,
1688 >     756,  1148,   762,   705,   764,   706,  1149,   509,   510,   364,
1689 >    1150,   708,   766,   753,   754,  1151,   709,   710,  1152,   711,
1690 >     712,   715,   716,  1153,   720,  1197,   719,     2,     3,   365,
1691 >     721,     4,   723,   728,   319,   729,   767,  1154,   366,   730,
1692 >    1155,     5,  1156,   894,     6,     7,   731,   734,   320,   321,
1693 >     747,     8,   322,  1157,  1198,   735,   736,   511,   738,   739,
1694 >    1158,  1199,     9,   761,   755,    10,    11,   740,   741,   742,
1695 >    1200,   744,   748,   749,   750,   768,   757,   769,   512,   758,
1696 >     759,   763,   770,   367,   771,   772,   773,   774,   783,    12,
1697 >     784,   794,   826,   791,    13,   827,   323,  1201,   830,  1202,
1698 >    1203,   831,    14,   785,   793,   786,   918,   792,   833,   834,
1699 >     368,   795,   787,  1204,   324,   325,   326,   327,   796,   797,
1700 >    1205,   328,   799,    15,    16,   329,   802,   803,   804,   805,
1701 >     806,   330,   807,   808,   818,   819,   820,   821,   822,   823,
1702 >     836,    17,   331,   332,   824,   825,   829,   837,  1215,  1166,
1703 >     838,   840,   843,   844,   333,   895,   896,   897,    18,   898,
1704 >     899,   847,   900,   901,   849,   902,   848,   903,   850,   851,
1705 >     904,    19,    20,   905,   906,   907,   334,   908,   852,   853,
1706 >     854,   855,   909,   856,   857,   858,   910,   911,   912,   860,
1707 >     859,    21,   861,   862,   864,   563,   913,   863,   865,   866,
1708 >     867,   914,   868,   869,    22,   963,   870,   871,   872,   873,
1709 >    1216,   966,   874,    23,   977,   335,   875,    24,   919,   920,
1710 >     921,   962,   922,   923,   876,   924,   925,   965,   926,   877,
1711 >     927,   878,   879,   928,   880,   881,   929,   930,   931,  1217,
1712 >     932,   882,   883,   884,   967,   933,  1218,   885,   886,   934,
1713 >     935,   936,   887,   888,   964,  1219,   889,   968,   890,   937,
1714 >     969,  1167,  1168,  1169,   938,  1170,  1171,   891,  1172,  1173,
1715 >     971,  1174,   972,  1175,    79,   892,  1176,   893,   917,  1177,
1716 >    1178,  1179,  1220,  1180,  1221,  1222,   941,   974,  1181,   975,
1717 >     942,   943,  1182,  1183,  1184,    80,    81,   944,  1223,   983,
1718 >     945,    82,  1185,   946,   947,  1224,   984,  1186,   948,   949,
1719 >     950,   951,   952,   953,   954,   955,   956,   957,   958,   959,
1720 >     960,   961,   970,   973,   986,   987,   980,   976,   981,   982,
1721 >     989,   990,   985,   991,   992,   993,   995,   988,    83,    84,
1722 >     994,   996,   997,   998,    85,    86,   999,  1000,  1028,  1001,
1723 >    1002,    87,    88,    89,  1003,  1004,  1005,  1006,  1007,  1008,
1724 >    1009,  1042,  1010,  1011,  1044,  1012,  1013,  1014,  1015,  1016,
1725 >    1017,  1018,  1019,  1020,  1241,  1021,  1253,    90,    91,  1026,
1726 >    1027,  1029,  1030,  1031,  1041,  1132,  1045,  1053,  1043,  1054,
1727 >    1055,  1209,  1060,  1264,  1061,  1062,  1063,  1064,  1065,  1066,
1728 >    1067,  1068,  1069,  1265,  1075,  1076,  1077,  1078,  1079,  1080,
1729 >    1266,  1081,  1082,  1083,  1088,  1089,  1090,  1091,  1092,  1093,
1730 >    1094,  1095,  1096,  1097,  1098,  1103,  1104,  1117,  1194,  1118,
1731 >    1119,  1120,  1121,  1122,  1131,   304,  1123,  1213,   733,  1124,
1732 >    1193,  1125,  1134,  1135,  1287,  1136,   746,  1268,  1137,  1161,
1733 >    1267,  1162,   624,  1163,  1164,  1165,  1189,  1190,  1191,  1192,
1734 >    1195,  1208,  1260,  1214,  1227,  1210,  1243,   494,  1263,  1262,
1735 >    1242,  1257,  1244,   725,  1245,  1246,  1256,  1270,  1271,  1272,
1736 >     714,   801,   752,  1284,  1269,   718,   790,   641,  1261,   394,
1737 >     452,   318,  1236,  1235,   543,     0,   645,     0,     0,     0,
1738 >       0,     0,     0,     0,     0,     0,     0,   651,     0,     0,
1739 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1740 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1741 >       0,     0,     0,     0,     0,   574,     0,     0,     0,     0,
1742 >       0,     0,     0,   578
1743   };
1744  
2249 #define yypact_value_is_default(yystate) \
2250  ((yystate) == (-949))
2251
2252 #define yytable_value_is_error(yytable_value) \
2253  YYID (0)
2254
1745   static const yytype_int16 yycheck[] =
1746   {
1747 <     340,   341,   425,     1,   260,   261,     1,   347,    11,    11,
1748 <      10,     1,    12,    76,   262,     1,   260,   262,     8,     9,
1749 <     264,     1,    12,     1,   260,     1,   153,    27,   264,    19,
1750 <       1,    31,     1,   981,   982,   983,   260,   377,    28,   379,
1751 <     264,   260,    32,    33,   260,   264,    22,   260,   264,    39,
1752 <     262,   264,   392,    43,    44,   395,    46,   262,     1,    37,
1753 <     400,     1,    52,    14,    15,    16,   197,   198,    37,    47,
1754 <       1,   411,   412,   262,   414,     1,     1,     1,    47,   262,
1755 <      70,    71,    53,   423,   424,    75,   426,   197,   198,   169,
1756 <     170,    89,    82,     1,    89,     1,    86,    87,    88,   216,
1757 <     217,    91,   260,     1,    94,    95,   264,    13,   262,    89,
1758 <     262,   260,    83,     1,   104,   264,     4,     1,    89,     1,
1759 <     110,   111,   153,   113,   114,   115,   116,   117,    34,    35,
1760 <     262,   260,   118,     1,    40,   264,    42,   262,   128,    23,
1761 <      24,     1,   120,   262,    26,   153,    30,   137,   124,   139,
1762 <     140,   120,   142,     1,   260,   145,   146,    45,   264,   149,
1763 <      48,     1,   148,     3,   262,    89,     6,    49,   231,    37,
1764 <     160,    53,   235,   262,    22,   155,   262,   120,   118,   155,
1765 <     131,   152,     1,   523,     1,    25,    26,   262,   262,   120,
1766 <      96,    97,   182,     1,   184,   120,   199,   199,   188,   105,
1767 <     106,   262,   192,   193,   194,   195,   196,    26,   148,    49,
1768 <     200,   201,   155,    53,   102,   260,    84,   263,   262,   209,
1769 <     126,   127,   120,   107,   108,   109,   263,     1,   112,   155,
1770 <      49,   155,   120,    41,    53,   260,   120,   143,   144,   264,
1771 <     263,   263,   242,    83,   187,    85,    54,   155,   154,   133,
1772 <     134,   241,   120,   243,   122,   123,   187,   163,    98,   249,
1773 <     120,   187,   187,   261,   254,   147,   150,   151,    76,   259,
1774 <      78,   261,    80,    81,   156,   157,   124,   260,   263,   187,
1775 <     120,    55,    56,    57,    58,    59,    60,    61,    62,   187,
1776 <     261,    99,   261,   263,   178,   155,   263,   165,   260,   167,
1777 <     168,   120,   264,   120,   263,   263,     1,   155,   190,     1,
1778 <     263,   263,   152,   263,     1,   183,   260,   248,   261,     1,
1779 <     264,   261,   248,   260,   263,   263,   166,   187,   147,   103,
1780 <     261,    26,   260,   263,    26,   261,   261,   261,   131,   179,
1781 <     248,   263,   263,   263,   250,   251,   252,   166,   260,   263,
1782 <      37,   262,   264,   263,    49,   261,   263,    49,    53,   227,
1783 <     248,    53,   263,   263,   138,     1,   248,   263,     4,   263,
1784 <     187,    53,   712,   261,   263,   153,   263,   261,   263,   261,
1785 <     173,   174,   175,   176,   177,   263,   263,   255,   256,   263,
1786 <     263,   263,   263,   261,   263,   197,   263,    84,   263,   263,
1787 <     263,    83,   829,   830,   831,   832,   833,    89,   263,    45,
1788 <     263,   263,    48,   261,   263,   255,     1,   236,   263,   263,
1789 <     263,   261,   263,     8,     9,   120,   263,    12,   263,   248,
1790 <     263,   248,   263,   120,    19,   122,   123,   263,   263,   862,
1791 <     263,   263,   261,    28,   262,   219,   153,    32,    33,   263,
1792 <     263,   263,   147,   261,    39,   147,   263,   263,    43,    44,
1793 <     263,    46,   263,   263,   156,   157,   102,    52,   263,   263,
1794 <     152,   166,   263,   263,   263,   263,   263,   263,   165,   253,
1795 <     167,   168,   263,   263,   120,    70,    71,   261,   263,   153,
1796 <      75,   263,   263,   263,   263,   263,   183,    82,   190,   263,
1797 <     263,    86,    87,    88,   263,   263,    91,   263,   263,    94,
1798 <      95,   263,   852,   263,   263,   263,   263,   263,   263,   104,
1799 <     860,   861,     1,   263,     3,   110,   111,     6,   113,   114,
1800 <     115,   116,   117,   263,   263,   263,   263,   263,   263,   263,
1801 <     227,   236,   263,   128,   263,   263,    25,    26,   263,   263,
1802 <     263,   263,   137,   248,   139,   140,   248,   142,     5,   260,
1803 <     145,   146,   131,   131,   149,   197,   197,   131,   255,   256,
1804 <      49,   131,   131,   197,    53,   160,   197,   131,   197,     1,
1805 <     220,   221,   222,   223,   224,   225,   226,   197,   197,   197,
1806 <     197,    38,   260,   263,   263,   153,   263,   182,   260,   184,
1807 <     263,   197,    49,   188,    83,   197,    85,   192,   193,   194,
1808 <     195,   196,   248,   131,   153,   200,   201,   131,    65,    98,
1809 <     197,   197,   131,   153,   209,    72,   197,   131,   131,   131,
1810 <      77,   197,    79,    55,    56,    57,    58,    59,    60,    61,
1811 <      62,   120,   197,     1,   197,    92,   153,   197,   131,   131,
1812 <      20,    21,   153,   131,   131,    13,   241,   131,   243,   131,
1813 <     197,   197,    92,   263,   249,     1,   197,   153,   263,   254,
1814 <       0,     1,   197,   152,   259,     5,    34,    35,   125,   131,
1815 <      50,   103,    40,   263,    42,   197,   197,   166,   260,   197,
1816 <     263,   197,    22,   263,   141,   260,    26,    67,   197,    29,
1817 <     179,   197,   197,   197,    74,    41,    36,   197,   153,   260,
1818 <     153,   263,   159,   153,   161,   162,   138,   263,    54,    92,
1819 <     263,    51,   263,    93,   153,   263,   153,     1,   263,   263,
1820 <     263,   263,   153,    63,    64,   263,    66,   263,    96,    97,
1821 <      76,   171,    78,    73,    80,    81,   263,   105,   106,    23,
1822 <      24,   121,   153,   263,   153,   153,    30,   153,   197,   129,
1823 <      90,   153,   260,    99,   153,   197,   263,   260,   126,   127,
1824 <     100,   260,   102,   203,   197,   263,   255,   197,   263,   153,
1825 <     197,   197,   229,   197,   260,   143,   144,   153,   218,   119,
1826 <     153,   153,   153,   153,   153,   263,   154,   219,   171,   153,
1827 <     247,   153,   172,   131,   153,   163,   136,   260,   238,   239,
1828 <     257,   260,   263,   263,   244,   245,   246,   247,   260,   263,
1829 <     158,   191,   260,   260,   260,   260,   260,   257,   153,   260,
1830 <     203,   253,   260,   107,   108,   109,   260,   263,   112,   153,
1831 <     153,   171,   260,   153,   263,   218,   120,   260,   260,   260,
1832 <     180,   181,   260,   260,   260,   185,   186,   260,   260,   133,
1833 <     134,   158,   153,   260,   153,   238,   239,   260,   263,   260,
1834 <     260,   244,   245,   246,   247,   260,   150,   151,   202,   263,
1835 <     263,   263,   263,   263,   257,   263,   263,   263,   263,   260,
1836 <    1183,   263,   250,   251,   252,   263,   204,   205,   206,   207,
1837 <     208,   258,   210,   211,   178,   213,   214,   215,   263,   197,
1838 <     218,   197,   263,   263,   131,   263,   263,   263,   263,   263,
1839 <     228,   229,   230,   263,   232,   233,   234,   131,   263,   237,
1840 <     263,   263,   240,   204,   205,   206,   207,   208,   260,   210,
1841 <     211,   260,   213,   214,   215,   263,   263,   218,   260,   260,
1842 <     153,   260,   153,   260,   260,   260,   260,   228,   229,   230,
1843 <     260,   232,   233,   234,   260,   260,   237,   260,   260,   240,
1844 <     204,   205,   206,   207,   208,   260,   210,   211,   260,   213,
1845 <     214,   215,   260,   260,   218,   260,   153,   260,   260,   153,
1846 <     260,   260,   260,   260,   228,   229,   230,   260,   232,   233,
1847 <     234,   260,   260,   237,   260,   260,   240,   260,   260,   260,
1848 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1849 <     260,   260,   260,   260,   260,   260,   153,   260,   260,   260,
1850 <     260,   260,   260,   260,   260,   260,   153,   260,   153,   263,
1851 <     260,   263,   263,   153,   260,   263,   153,   260,   260,   260,
1852 <     260,   260,   260,   260,   260,   260,   153,   153,   260,   153,
1853 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1854 <     260,   260,   153,   153,   153,   263,   263,   263,   263,   263,
1855 <     263,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1856 <     260,   260,   260,   131,   260,   260,   131,   260,   260,   260,
1857 <     260,   260,   131,   260,   131,   263,   260,   263,   131,   131,
1858 <     153,   131,   131,   260,   153,   197,   153,   153,   263,   153,
1859 <     153,   153,   153,   131,   260,   153,   260,   153,   153,   260,
1860 <     260,   260,   260,   130,   260,   260,   260,   260,   260,   260,
1861 <     260,   260,   260,   153,   260,   197,   260,   260,   260,   260,
1862 <     153,   153,   153,   153,   130,   264,   260,   263,   263,   260,
1863 <     260,   260,   260,   131,   130,   260,    71,   260,   260,   260,
1864 <     260,   260,   260,   260,   260,   260,   260,   260,   313,   773,
1865 <    1346,  1327,   260,   260,   260,   260,   260,   260,   260,   260,
1866 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1867 <     260,   260,   260,   260,   260,   260,   482,  1325,   595,  1269,
1868 <     512,  1168,  1254,  1252,   545,  1306,   553,  1311,  1308,  1267,
1869 <     625,   275,  1309,   360,   124,  1245,   372,   184,    95,  1128,
1870 <    1251,  1126,  1249,    -1,    -1,    -1,    -1,    -1,   457,    -1,
2381 <     291,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2382 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   472,   440
1747 >     621,   622,   309,   310,   311,     1,   229,   108,     1,     1,
1748 >       1,     1,     1,     8,     1,     1,     1,    51,   227,     1,
1749 >       1,   229,   231,     1,     1,     1,     1,     1,     1,   227,
1750 >     228,    17,    25,    49,    25,    22,    23,     1,   227,    32,
1751 >       1,    28,   231,   229,    29,   229,    35,    33,     1,     1,
1752 >     229,     1,    37,   227,     1,   227,   227,   231,     1,   231,
1753 >     231,   229,     1,     1,    49,    50,    57,    52,    53,    54,
1754 >       1,    61,   227,    64,     1,   229,   231,    63,    65,    66,
1755 >       1,    56,    35,   229,    71,    72,    61,    76,    63,    74,
1756 >     124,    78,    79,    80,    76,    86,   403,   404,    76,    90,
1757 >     199,   200,    98,   204,   411,    98,   229,    98,   415,     1,
1758 >     101,   102,    98,   420,     6,     7,   423,   104,   105,    95,
1759 >      12,    98,    61,    76,    98,    98,   433,   434,    20,    21,
1760 >      61,     1,   118,   125,    98,    27,   125,   444,    30,    31,
1761 >     447,   448,   133,   119,    36,   229,    98,   122,   134,    41,
1762 >      42,    98,    44,    45,    46,    98,    48,   199,   200,   150,
1763 >      98,   125,   153,    55,     1,   151,   152,    59,    60,   185,
1764 >     229,    98,   125,   125,    95,   125,    68,   227,   227,   195,
1765 >      17,   231,   231,   229,   229,    77,   125,   178,   170,   170,
1766 >     229,    61,   170,    85,   125,    87,    33,    89,   119,    91,
1767 >     195,    93,    94,   229,   227,   196,   197,   198,   231,   170,
1768 >     229,   229,   227,   227,   106,   201,   231,   191,   229,   111,
1769 >     112,   113,   218,   115,   116,   117,    63,   227,   120,   230,
1770 >     222,   231,   223,   224,   541,   228,   222,   228,   228,   228,
1771 >     221,   228,   228,   228,   218,   218,   228,   228,   191,   222,
1772 >     229,   228,   228,   228,   146,   228,   227,   227,    13,     1,
1773 >     221,   231,   154,   155,   156,   157,   158,   159,   210,   229,
1774 >     229,   213,   222,    15,    16,   218,   228,    19,   228,    34,
1775 >     218,   118,   227,     1,   222,   228,   231,   227,    43,   126,
1776 >     127,   218,   227,     1,   230,   187,   230,   228,     9,    10,
1777 >      11,   228,   609,   174,   175,   210,   613,    25,   213,   616,
1778 >     147,   230,   230,   620,    32,    70,  1070,  1071,  1072,   211,
1779 >     212,    63,   214,   215,   216,   170,   230,     1,   220,     3,
1780 >     230,     5,   230,   225,   230,   230,   228,    40,   123,    81,
1781 >      82,    83,    84,    17,    99,   100,    88,   230,    56,   230,
1782 >      92,   230,   107,    61,     1,    63,    98,   230,   230,    33,
1783 >     108,   230,   230,   230,    67,   230,    69,   109,   110,   230,
1784 >      17,   230,   230,   230,   230,   108,   230,   132,   230,   121,
1785 >      98,   230,    56,   230,    58,   222,    33,   230,   230,    63,
1786 >     230,   228,   230,   148,   230,   230,   230,   108,   230,    73,
1787 >     230,   143,   135,   136,   137,   138,   139,   140,   141,     1,
1788 >     230,   114,   230,   230,   122,     1,    63,   230,   230,   230,
1789 >       6,     7,   230,   230,    98,   230,    12,   230,   131,   230,
1790 >     230,   230,   230,    25,    20,    21,   230,   230,   230,   230,
1791 >     182,    27,   230,   230,    30,    31,   230,   230,   122,   230,
1792 >      36,   230,   230,   230,   209,    41,    42,   230,    44,    45,
1793 >      46,   230,    48,   166,   167,    57,   230,   230,   142,    55,
1794 >     230,   118,    64,    59,    60,   123,   230,   151,   230,   126,
1795 >     127,   230,    68,   230,   230,   230,   228,   230,   123,   230,
1796 >     230,    77,   230,   230,    86,   230,   230,   227,    90,    85,
1797 >     147,    87,   230,    89,     1,    91,    98,    93,    94,   101,
1798 >     102,   809,   810,   811,   812,   813,   814,   815,   230,   222,
1799 >     106,   230,   196,   226,   230,   111,   112,   113,     4,   115,
1800 >     116,   117,    29,   230,   120,   230,   230,   230,   230,   230,
1801 >      37,   133,    18,   230,   108,   210,   108,     1,   108,   223,
1802 >      26,   108,    49,    50,   228,    52,    53,    54,   150,   108,
1803 >     146,   153,   108,    17,    40,   210,   210,   227,   154,   155,
1804 >     156,   157,   158,   159,   227,   222,   230,    74,     1,    33,
1805 >       3,   230,     5,   123,   230,   210,   178,   230,   230,  1210,
1806 >     230,    67,   230,    69,    17,   108,   230,   230,   230,   230,
1807 >     230,   187,   230,   230,   196,   197,   198,   230,   227,    63,
1808 >      33,   210,   230,   230,   230,   230,   230,   230,   230,    95,
1809 >     230,   230,   230,   230,   230,   211,   212,   230,   214,   215,
1810 >     216,   223,   224,    56,   220,    58,   230,   230,   227,   225,
1811 >      63,   210,   230,   230,    98,   108,   123,   210,   108,   210,
1812 >      73,   108,   128,    69,   130,   108,   210,   210,   210,   108,
1813 >     108,   108,   108,   108,   118,   108,   210,   210,   210,   210,
1814 >     108,   230,   230,   149,   210,    98,   210,   210,   210,   210,
1815 >     134,   123,   210,   210,   210,   210,   123,   123,   227,   227,
1816 >     123,   167,   123,   230,   123,   230,   172,   151,   152,   122,
1817 >     176,   230,   108,   210,   210,   181,   230,   230,   184,   230,
1818 >     230,   230,   230,   189,   230,   131,   227,     0,     1,   142,
1819 >     230,     4,   230,   227,     1,   227,   123,   203,   151,   230,
1820 >     206,    14,   208,    49,    17,    18,   230,   227,    15,    16,
1821 >     227,    24,    19,   219,   160,   230,   230,   201,   230,   230,
1822 >     226,   167,    35,   227,   210,    38,    39,   230,   230,   230,
1823 >     176,   230,   230,   230,   230,   123,   210,   123,   222,   210,
1824 >     210,   210,   123,   196,   123,   123,   108,   123,   123,    62,
1825 >     123,   123,   108,   210,    67,   108,    63,   203,   108,   205,
1826 >     206,   108,    75,   227,   229,   227,    49,   227,   108,   108,
1827 >     223,   227,   230,   219,    81,    82,    83,    84,   227,   230,
1828 >     226,    88,   230,    96,    97,    92,   227,   227,   227,   227,
1829 >     227,    98,   227,   227,   227,   227,   227,   227,   227,   227,
1830 >     123,   114,   109,   110,   227,   227,   230,   108,    69,    49,
1831 >     108,   108,   227,   123,   121,   161,   162,   163,   131,   165,
1832 >     166,   123,   168,   169,   123,   171,   210,   173,   123,   230,
1833 >     176,   144,   145,   179,   180,   181,   143,   183,   123,   123,
1834 >     108,   123,   188,   123,   123,   123,   192,   193,   194,   123,
1835 >     227,   164,   123,   227,   123,   266,   202,   227,   123,   227,
1836 >     227,   207,   227,   227,   177,   210,   227,   227,   227,   227,
1837 >     131,   108,   227,   186,   108,   182,   227,   190,   161,   162,
1838 >     163,   123,   165,   166,   227,   168,   169,   123,   171,   227,
1839 >     173,   227,   227,   176,   227,   227,   179,   180,   181,   160,
1840 >     183,   227,   227,   227,   123,   188,   167,   227,   227,   192,
1841 >     193,   194,   227,   227,   230,   176,   227,   123,   227,   202,
1842 >     123,   161,   162,   163,   207,   165,   166,   227,   168,   169,
1843 >     123,   171,   123,   173,     1,   227,   176,   227,   227,   179,
1844 >     180,   181,   203,   183,   205,   206,   227,   123,   188,   123,
1845 >     227,   227,   192,   193,   194,    22,    23,   227,   219,   123,
1846 >     227,    28,   202,   227,   227,   226,   123,   207,   227,   227,
1847 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1848 >     227,   227,   227,   227,   123,   210,   227,   230,   227,   227,
1849 >     123,   123,   227,   123,   123,   210,   123,   230,    65,    66,
1850 >     230,   227,   123,   123,    71,    72,   123,   227,   123,   227,
1851 >     227,    78,    79,    80,   227,   227,   227,   227,   227,   227,
1852 >     227,   123,   227,   227,   123,   227,   227,   227,   227,   227,
1853 >     227,   227,   227,   227,   108,   227,   123,   104,   105,   227,
1854 >     227,   230,   227,   227,   227,   231,   227,   227,   230,   227,
1855 >     227,   230,   227,   129,   227,   227,   227,   227,   227,   227,
1856 >     227,   227,   227,   129,   227,   227,   227,   227,   227,   227,
1857 >     129,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1858 >     227,   227,   227,   227,   227,   227,   227,   227,  1025,   227,
1859 >     227,   227,   227,   227,   217,    74,   227,  1036,   498,   227,
1860 >    1023,   227,   227,   227,  1286,   227,   513,  1250,   227,   227,
1861 >    1248,   227,   336,   227,   227,   227,   227,   227,   227,   227,
1862 >     227,   227,  1229,   227,   227,   230,   227,   222,  1240,  1238,
1863 >    1132,   227,   232,   485,   232,   232,   230,   227,   227,   227,
1864 >     462,   583,   529,  1259,  1252,   475,   567,   369,  1234,   111,
1865 >     165,    92,  1102,  1100,   238,    -1,   388,    -1,    -1,    -1,
1866 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   398,    -1,    -1,
1867 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1868 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1869 >      -1,    -1,    -1,    -1,    -1,   288,    -1,    -1,    -1,    -1,
1870 >      -1,    -1,    -1,   295
1871   };
1872  
1873 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1874 <   symbol of state STATE-NUM.  */
1873 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1874 >     symbol of state STATE-NUM.  */
1875   static const yytype_uint16 yystos[] =
1876   {
1877 <       0,   266,     0,     1,     5,    22,    26,    29,    36,    51,
1878 <      63,    64,    66,    73,    90,   100,   102,   119,   136,   171,
1879 <     180,   181,   185,   186,   267,   272,   277,   295,   301,   316,
1880 <     339,   358,   372,   390,   397,   407,   416,   442,   452,   458,
1881 <     462,   472,   536,   552,   573,   260,   261,   262,   262,   340,
1882 <     417,   453,   262,   463,   262,   537,   373,   443,   359,   262,
1883 <     262,   317,   391,   262,   262,   398,   408,     1,    37,    47,
1884 <     120,   296,   297,   298,   299,   300,     1,    13,    34,    35,
1885 <      40,    42,    96,    97,   105,   106,   126,   127,   143,   144,
1886 <     154,   163,   250,   251,   252,   553,   554,   555,   556,   557,
1887 <     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
1888 <     568,   569,   570,   571,   572,   153,   341,   345,   153,   418,
1889 <     422,   262,     1,    89,   459,   460,   461,   262,     1,     8,
1890 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    46,
1891 <      52,    70,    71,    75,    82,    86,    87,    88,    91,    94,
1892 <      95,   104,   110,   111,   113,   114,   115,   116,   117,   128,
1893 <     137,   139,   140,   142,   145,   146,   149,   160,   182,   184,
1894 <     188,   192,   193,   194,   195,   196,   200,   201,   209,   241,
1895 <     243,   249,   254,   259,   473,   474,   475,   476,   477,   478,
1896 <     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
1897 <     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
1898 <     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
1899 <     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
1900 <     519,   520,   521,   522,   523,   524,   528,   532,   533,   534,
1901 <     535,   262,   262,   262,   262,     1,    55,    56,    57,    58,
1902 <      59,    60,    61,    62,   103,   138,   219,   253,   302,   303,
1903 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1904 <     314,   315,     1,   118,   148,   273,   274,   275,   276,   153,
1905 <     318,   322,   262,     1,    41,    54,    76,    78,    80,    81,
1906 <      99,   574,   575,   576,   577,   578,   579,   580,   581,   582,
1907 <       1,    37,    84,   120,   122,   123,   165,   167,   168,   183,
1908 <     227,   255,   256,   278,   279,   280,   284,   285,   286,   287,
1909 <     288,   289,   290,   291,   292,   293,   294,   262,   262,   260,
1910 <     263,   263,   263,   261,   297,   263,   263,   263,   263,   263,
1911 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1912 <     263,   263,   263,   261,   554,   262,   262,     1,    89,   155,
1913 <     454,   455,   456,   457,   263,   261,   460,     1,   120,   155,
1914 <     187,   464,   468,   469,   470,   471,   263,   263,   263,   263,
1915 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1916 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1917 <     263,   263,   263,   263,   263,   263,   263,   263,   529,   263,
1918 <     525,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1919 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1920 <     263,   261,   474,     1,     4,    45,    48,   102,   120,   248,
1921 <     538,   539,   540,   541,   542,   546,   547,   548,     1,    26,
1922 <      49,    53,   147,   156,   157,   190,   248,   374,   375,   376,
1923 <     377,   378,   379,   380,   387,   388,   389,     1,   155,   187,
1924 <     248,   444,   448,   449,   450,   451,     1,    53,    83,    89,
1925 <     152,   360,   364,   365,   366,   370,   371,   260,   263,   263,
1926 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1927 <     261,   303,   260,   263,   263,   261,   274,   262,     1,    22,
1928 <     124,   155,   392,   393,   394,   395,   396,   263,   263,   263,
1929 <     263,   263,   263,   263,   261,   575,   260,   263,   263,   263,
1930 <     263,   263,   263,   263,   281,   263,   263,   263,   263,   261,
1931 <     279,     1,   120,   187,   248,   399,   400,   401,   402,   403,
1932 <       1,   120,   187,   409,   410,   411,   412,   153,   153,   153,
1933 <     260,   197,   131,   131,   197,   197,   131,   269,   269,   131,
1934 <     131,   197,   197,   131,   269,   197,   197,   197,   197,   197,
1935 <     260,     1,    23,    24,    30,   107,   108,   109,   112,   120,
1936 <     133,   134,   150,   151,   178,   342,   343,   344,   346,   347,
1937 <     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
1938 <       1,     3,     6,    25,    26,    49,    53,    83,    85,    98,
1939 <     120,   152,   166,   179,   255,   419,   420,   421,   423,   424,
1940 <     425,   426,   427,   428,   429,   436,   437,   438,   439,   440,
1941 <     441,   263,   263,   261,   455,   153,   260,   263,   263,   465,
1942 <     261,   469,   197,   269,   197,   269,   131,   153,   131,   197,
1943 <     197,   131,   153,   197,   131,   131,   131,   197,   269,   197,
1944 <     197,   269,   153,   197,   131,   131,   269,   131,   131,   153,
1945 <     131,   131,   197,   197,   263,   197,   263,   269,   269,   197,
1946 <     269,   153,   197,   197,   197,   197,   198,   197,   198,   197,
1947 <     197,   269,   269,   131,   271,   269,   197,   197,   197,   197,
1948 <     260,   549,   263,   263,   543,   263,   263,   261,   539,   260,
1949 <     263,   263,   381,   263,   263,   263,   263,   263,   261,   375,
1950 <     263,   445,   263,   261,   449,   260,   361,   263,   263,   263,
1951 <     261,   365,   153,   153,   153,   153,   153,   153,   153,   153,
1952 <     220,   221,   222,   223,   224,   225,   226,   153,   153,   197,
1953 <     260,   153,   153,   260,     1,    26,    49,    53,   120,   147,
1954 <     166,   236,   248,   319,   320,   321,   323,   324,   325,   326,
1955 <     327,   328,   332,   260,   263,   263,   263,   261,   393,   197,
1956 <     197,   197,   153,   197,   197,   269,   260,   153,   197,   153,
1957 <     153,   153,   153,   153,   263,   153,   131,   153,   153,   260,
1958 <     260,   263,   404,   263,   261,   400,   260,   263,   413,   261,
1959 <     410,   260,   260,   260,   260,   260,   260,   260,   260,   173,
1960 <     174,   175,   176,   177,   268,   269,   260,   260,   260,   260,
1961 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1962 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1963 <     263,   263,   263,   261,   343,   260,   263,   263,   263,   263,
1964 <     263,   430,   263,   263,   263,   263,   263,   263,   263,   263,
1965 <     261,   420,   153,   153,   260,   260,   153,   153,   263,   260,
1966 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1967 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1968 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1969 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
1970 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
1971 <     240,   530,   531,   260,   204,   205,   206,   207,   208,   210,
1972 <     211,   213,   214,   215,   218,   228,   229,   230,   232,   233,
1973 <     234,   237,   240,   526,   527,   260,   260,   260,   260,   260,
1974 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1975 <     260,    14,    15,    16,   270,   271,   260,   260,   260,   260,
1976 <     260,   260,   263,   269,   197,   263,   153,   153,   260,   153,
1977 <     197,   263,   153,   131,   153,   153,   153,   260,   153,   263,
1978 <     153,   260,   263,   153,   153,   131,   368,   369,   260,   260,
1979 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1980 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1981 <     263,   263,   333,   263,   263,   263,   329,   263,   261,   320,
1982 <     153,   153,   153,   260,   260,   260,   260,   260,   260,   260,
1983 <     260,   260,   260,   260,   260,   260,   260,   260,   169,   170,
1984 <     282,   283,   260,   260,   260,   260,   153,   263,   153,   260,
1985 <     153,   263,   260,   268,   268,   268,   268,   268,   131,   131,
1986 <     269,   131,   131,   131,   131,   153,   131,   131,   269,   269,
1987 <     271,   260,   153,   216,   217,   153,   153,   197,   263,   153,
1988 <     153,   153,   153,   131,   153,   153,   153,   260,   260,   260,
1989 <     260,   260,   158,   466,   467,   260,   264,   260,   264,   270,
1990 <     270,   270,    11,   199,   550,   551,   260,   260,    11,   199,
1991 <     544,   545,   260,   260,   260,   260,   130,   382,   383,   385,
1992 <     260,   260,   260,   260,   260,   260,   158,   446,   447,   260,
1993 <      76,   231,   235,   362,   363,   260,   260,   202,   264,   367,
1994 <     153,   197,   263,   153,   153,   153,   263,   153,   260,   260,
1995 <     260,   260,   260,   264,   260,    92,   171,   203,   218,   238,
1996 <     239,   244,   245,   246,   247,   257,   405,   406,   260,   260,
1997 <      92,   171,   203,   218,   238,   239,   244,   245,   246,   247,
1998 <     257,   414,   415,   260,   260,   260,   260,   260,   260,   260,
1999 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2000 <     260,   260,   130,   431,   432,   434,   260,   260,   260,   260,
2001 <     260,   260,   260,   260,   260,   264,   531,   527,   260,   264,
2002 <     260,   264,   384,   260,   264,    20,    21,    50,    67,    74,
2003 <      93,   121,   129,   172,   191,   386,   260,   264,   260,   264,
2004 <     131,   369,   260,   260,   260,   130,   334,   335,   337,   260,
2005 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2518 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2519 <     240,   330,   331,   260,   283,   260,   264,   260,   264,   433,
2520 <     260,   264,    10,    12,    27,    31,   242,   435,   467,   551,
2521 <     545,   386,   383,   447,   363,   336,   260,   264,     5,    38,
2522 <      49,    65,    72,    77,    79,    92,   125,   141,   159,   161,
2523 <     162,   229,   247,   257,   338,   260,   264,   406,   415,   435,
2524 <     432,   338,   335,   331
1877 >       0,   234,     0,     1,     4,    14,    17,    18,    24,    35,
1878 >      38,    39,    62,    67,    75,    96,    97,   114,   131,   144,
1879 >     145,   164,   177,   186,   190,   235,   240,   245,   269,   275,
1880 >     281,   295,   315,   338,   352,   367,   374,   378,   388,   397,
1881 >     418,   424,   430,   434,   440,   498,   513,   227,   228,   229,
1882 >     229,   316,   398,   425,   229,   435,   229,   353,   419,   339,
1883 >     229,   276,   296,   368,   229,   229,   389,   229,   229,   379,
1884 >       1,    25,    32,    98,   270,   271,   272,   273,   274,     1,
1885 >      22,    23,    28,    65,    66,    71,    72,    78,    79,    80,
1886 >     104,   105,   499,   500,   501,   502,   503,   504,   505,   506,
1887 >     507,   508,   509,   510,   511,   512,   229,   229,   229,     1,
1888 >      61,   431,   432,   433,   229,     1,     6,     7,    12,    20,
1889 >      21,    27,    30,    31,    36,    41,    42,    44,    45,    46,
1890 >      48,    55,    59,    60,    68,    77,    85,    87,    89,    91,
1891 >      93,    94,   106,   111,   112,   113,   115,   116,   117,   120,
1892 >     146,   154,   155,   156,   157,   158,   159,   187,   211,   212,
1893 >     214,   215,   216,   220,   225,   441,   442,   443,   444,   445,
1894 >     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1895 >     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1896 >     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1897 >     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
1898 >     486,   487,   491,   495,   496,   497,   229,   229,   229,     1,
1899 >      95,   119,   241,   242,   243,   244,   229,   229,   229,     1,
1900 >      29,    37,    49,    50,    52,    53,    54,    74,   514,   515,
1901 >     516,   517,   518,   519,   520,   521,   522,   523,     1,    25,
1902 >      57,    64,    86,    90,    98,   101,   102,   133,   150,   153,
1903 >     178,   196,   197,   198,   223,   224,   246,   247,   248,   249,
1904 >     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1905 >     264,   265,   266,   267,   268,   229,     1,   221,   282,   283,
1906 >     284,   285,   286,     1,    98,   375,   376,   377,   229,   227,
1907 >     230,   230,   230,   228,   271,   230,   230,   230,   230,   230,
1908 >     230,   230,   230,   230,   230,   230,   230,   228,   500,     1,
1909 >      15,    16,    19,    63,    81,    82,    83,    84,    88,    92,
1910 >      98,   109,   110,   121,   143,   182,   317,   318,   319,   320,
1911 >     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
1912 >     331,   332,   333,   334,     1,     3,     5,    17,    33,    56,
1913 >      58,    63,    73,    98,   122,   142,   151,   196,   223,   399,
1914 >     400,   401,   402,   403,   404,   405,   406,   407,   408,   409,
1915 >     413,   414,   415,   416,   417,     1,    61,   125,   426,   427,
1916 >     428,   429,   230,   228,   432,     1,    98,   125,   436,   437,
1917 >     438,   439,   230,   230,   230,   230,   230,   230,   230,   230,
1918 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1919 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   492,
1920 >     230,   488,   230,   230,   230,   230,   230,   230,   230,   230,
1921 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1922 >     230,   228,   442,     1,    17,    33,    63,   118,   126,   127,
1923 >     147,   222,   354,   355,   356,   357,   358,   359,   360,   364,
1924 >     365,   366,     1,   125,   222,   420,   421,   422,   423,     1,
1925 >      56,    61,    63,   122,   340,   344,   345,   346,   350,   351,
1926 >     227,   230,   230,   228,   242,     1,    76,   170,   277,   278,
1927 >     279,   280,     1,    17,    33,    63,    98,   118,   134,   151,
1928 >     152,   201,   222,   297,   298,   299,   300,   301,   302,   303,
1929 >     304,   305,   306,   307,   311,     1,    35,    76,   125,   369,
1930 >     370,   371,   372,   373,   230,   230,   230,   230,   230,   230,
1931 >     230,   230,   228,   515,   227,   230,   230,   230,   230,   230,
1932 >     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1933 >     230,   230,   228,   247,     1,    98,   218,   390,   391,   392,
1934 >     393,   227,   230,   228,   283,   170,   230,   228,   376,     1,
1935 >      98,   218,   222,   380,   381,   382,   383,   384,   123,   123,
1936 >     123,   227,   108,   108,   210,   108,   108,   237,   237,   237,
1937 >     108,   108,   108,   210,   210,   227,   227,   230,   230,   230,
1938 >     335,   230,   230,   230,   230,   230,   230,   230,   230,   230,
1939 >     230,   230,   230,   228,   318,   227,   230,   230,   230,   230,
1940 >     230,   230,   410,   230,   230,   230,   230,   230,   230,   230,
1941 >     228,   400,   230,   230,   228,   427,   123,   227,   230,   230,
1942 >     228,   437,   210,   237,   237,   210,   108,   210,   108,   123,
1943 >     210,   237,   210,   108,   108,   237,   108,   210,   210,   210,
1944 >     237,   108,   108,   237,   108,   108,   108,   108,   210,   230,
1945 >     210,   230,   210,   237,   237,   210,   210,   210,   210,   213,
1946 >     210,   213,   210,   210,   210,   123,   237,   210,   210,   237,
1947 >     237,   210,   210,   227,   227,   230,   230,   361,   230,   230,
1948 >     230,   230,   230,   228,   355,   230,   230,   228,   421,   227,
1949 >     230,   230,   341,   230,   228,   345,   123,   123,   227,   227,
1950 >     230,   230,   228,   278,   227,   230,   230,   312,   230,   230,
1951 >     230,   230,   230,   308,   230,   228,   298,   227,   230,   230,
1952 >     230,   228,   370,   210,   210,   210,   123,   210,   210,   210,
1953 >     237,   227,   123,   210,   123,   108,   108,   123,   123,   123,
1954 >     123,   123,   123,   108,   123,   199,   200,   250,   251,   199,
1955 >     200,   252,   253,   123,   123,   227,   227,   230,   394,   228,
1956 >     391,   210,   227,   229,   123,   227,   227,   230,   385,   230,
1957 >     228,   381,   227,   227,   227,   227,   227,   227,   227,   135,
1958 >     136,   137,   138,   139,   140,   141,   236,   237,   227,   227,
1959 >     227,   227,   227,   227,   227,   227,   108,   108,   237,   230,
1960 >     108,   108,   237,   108,   108,   237,   123,   108,   108,   237,
1961 >     108,   239,   239,   227,   123,   174,   175,   123,   210,   123,
1962 >     123,   230,   123,   123,   108,   123,   123,   123,   123,   227,
1963 >     123,   123,   227,   227,   123,   123,   227,   227,   227,   227,
1964 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1965 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1966 >     227,   227,   227,   227,    49,   161,   162,   163,   165,   166,
1967 >     168,   169,   171,   173,   176,   179,   180,   181,   183,   188,
1968 >     192,   193,   194,   202,   207,   493,   494,   227,    49,   161,
1969 >     162,   163,   165,   166,   168,   169,   171,   173,   176,   179,
1970 >     180,   181,   183,   188,   192,   193,   194,   202,   207,   489,
1971 >     490,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1972 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1973 >     227,   227,   123,   210,   230,   123,   108,   123,   123,   123,
1974 >     227,   123,   123,   227,   123,   123,   230,   108,   348,   349,
1975 >     227,   227,   227,   123,   123,   227,   123,   210,   230,   123,
1976 >     123,   123,   123,   210,   230,   123,   227,   123,   123,   123,
1977 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1978 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1979 >     227,   227,   227,   231,   227,   231,   227,   227,   123,   230,
1980 >     227,   227,     1,    98,   191,   218,   287,   288,   289,   290,
1981 >     291,   227,   123,   230,   123,   227,   236,   236,   236,   236,
1982 >     236,   236,   236,   227,   227,   227,    51,   124,   336,   337,
1983 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1984 >       9,    10,    11,   238,   239,   227,   227,   227,   227,   227,
1985 >     227,   227,   227,   227,     8,   195,   411,   412,   227,   227,
1986 >     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1987 >     231,   227,   231,   227,   227,    13,    34,    43,    70,    99,
1988 >     100,   107,   132,   148,   209,   362,   363,   227,   227,   227,
1989 >     227,   227,   227,   227,   227,   227,    49,   185,   195,   342,
1990 >     343,   217,   231,   347,   227,   227,   227,   227,     4,    18,
1991 >      26,    40,    67,    69,    95,   128,   130,   149,   167,   172,
1992 >     176,   181,   184,   189,   203,   206,   208,   219,   226,   313,
1993 >     314,   227,   227,   227,   227,   227,    49,   161,   162,   163,
1994 >     165,   166,   168,   169,   171,   173,   176,   179,   180,   181,
1995 >     183,   188,   192,   193,   194,   202,   207,   309,   310,   227,
1996 >     227,   227,   227,   251,   253,   227,    69,   131,   160,   167,
1997 >     176,   203,   205,   206,   219,   226,   395,   396,   227,   230,
1998 >     230,   292,   228,   288,   227,    69,   131,   160,   167,   176,
1999 >     203,   205,   206,   219,   226,   386,   387,   227,   227,   231,
2000 >     238,   238,   238,   227,   231,   494,   490,   227,   231,   227,
2001 >     231,   108,   349,   227,   232,   232,   232,   227,   231,   227,
2002 >     231,   227,   231,   123,   204,   239,   230,   227,   227,   231,
2003 >     337,   412,   363,   343,   129,   129,   129,   314,   310,   396,
2004 >     227,   227,   227,    40,    67,    69,   114,   131,   166,   167,
2005 >     222,   226,   293,   294,   387,   227,   231,   294
2006   };
2007  
2008 < #define yyerrok         (yyerrstatus = 0)
2009 < #define yyclearin       (yychar = YYEMPTY)
2010 < #define YYEMPTY         (-2)
2011 < #define YYEOF           0
2012 <
2013 < #define YYACCEPT        goto yyacceptlab
2014 < #define YYABORT         goto yyabortlab
2015 < #define YYERROR         goto yyerrorlab
2016 <
2017 <
2018 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2019 <   to ease the transition to the new meaning of YYERROR, for GCC.
2020 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2021 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2022 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2023 <   discussed.  */
2024 <
2025 < #define YYFAIL          goto yyerrlab
2026 < #if defined YYFAIL
2027 <  /* This is here to suppress warnings from the GCC cpp's
2028 <     -Wunused-macros.  Normally we don't worry about that warning, but
2029 <     some users do, and we want to make it easy for users to remove
2030 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2031 < #endif
2008 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2009 > static const yytype_uint16 yyr1[] =
2010 > {
2011 >       0,   233,   234,   234,   235,   235,   235,   235,   235,   235,
2012 >     235,   235,   235,   235,   235,   235,   235,   235,   235,   235,
2013 >     235,   235,   235,   235,   235,   235,   235,   236,   236,   237,
2014 >     237,   237,   237,   237,   237,   237,   237,   238,   238,   239,
2015 >     239,   239,   239,   240,   241,   241,   242,   242,   242,   243,
2016 >     244,   245,   246,   246,   247,   247,   247,   247,   247,   247,
2017 >     247,   247,   247,   247,   247,   247,   247,   247,   247,   247,
2018 >     247,   247,   248,   249,   250,   250,   251,   251,   252,   252,
2019 >     253,   253,   254,   255,   256,   257,   258,   259,   260,   261,
2020 >     262,   263,   264,   265,   266,   267,   268,   269,   270,   270,
2021 >     271,   271,   271,   271,   272,   273,   274,   276,   275,   277,
2022 >     277,   278,   278,   278,   279,   280,   281,   282,   282,   283,
2023 >     283,   283,   284,   286,   285,   287,   287,   288,   288,   288,
2024 >     288,   289,   290,   290,   292,   291,   293,   293,   294,   294,
2025 >     294,   294,   294,   294,   294,   294,   294,   296,   295,   297,
2026 >     297,   298,   298,   298,   298,   298,   298,   298,   298,   298,
2027 >     298,   298,   299,   300,   301,   302,   303,   304,   305,   306,
2028 >     308,   307,   309,   309,   310,   310,   310,   310,   310,   310,
2029 >     310,   310,   310,   310,   310,   310,   310,   310,   310,   310,
2030 >     310,   310,   310,   310,   310,   312,   311,   313,   313,   314,
2031 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2032 >     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
2033 >     314,   314,   314,   316,   315,   317,   317,   318,   318,   318,
2034 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2035 >     318,   318,   318,   318,   319,   320,   321,   322,   323,   324,
2036 >     325,   326,   327,   328,   329,   330,   331,   332,   333,   335,
2037 >     334,   336,   336,   337,   337,   339,   338,   341,   340,   342,
2038 >     342,   343,   343,   343,   344,   344,   345,   345,   345,   345,
2039 >     345,   347,   346,   348,   348,   349,   349,   350,   351,   353,
2040 >     352,   354,   354,   355,   355,   355,   355,   355,   355,   355,
2041 >     355,   355,   356,   357,   358,   359,   361,   360,   362,   362,
2042 >     363,   363,   363,   363,   363,   363,   363,   363,   363,   363,
2043 >     364,   365,   366,   368,   367,   369,   369,   370,   370,   370,
2044 >     370,   371,   372,   373,   374,   375,   375,   376,   376,   377,
2045 >     379,   378,   380,   380,   381,   381,   381,   381,   382,   383,
2046 >     385,   384,   386,   386,   387,   387,   387,   387,   387,   387,
2047 >     387,   387,   387,   387,   389,   388,   390,   390,   391,   391,
2048 >     391,   392,   394,   393,   395,   395,   396,   396,   396,   396,
2049 >     396,   396,   396,   396,   396,   396,   398,   397,   399,   399,
2050 >     400,   400,   400,   400,   400,   400,   400,   400,   400,   400,
2051 >     400,   400,   400,   400,   400,   401,   402,   403,   404,   405,
2052 >     406,   407,   408,   408,   410,   409,   411,   411,   412,   412,
2053 >     413,   414,   415,   416,   417,   419,   418,   420,   420,   421,
2054 >     421,   421,   422,   423,   425,   424,   426,   426,   427,   427,
2055 >     427,   428,   429,   430,   431,   431,   432,   432,   433,   435,
2056 >     434,   436,   436,   437,   437,   437,   438,   439,   440,   441,
2057 >     441,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2058 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2059 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2060 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2061 >     442,   442,   442,   442,   442,   442,   442,   442,   442,   442,
2062 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
2063 >     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
2064 >     462,   463,   464,   465,   466,   467,   468,   469,   469,   470,
2065 >     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
2066 >     480,   481,   482,   483,   484,   485,   486,   488,   487,   489,
2067 >     489,   490,   490,   490,   490,   490,   490,   490,   490,   490,
2068 >     490,   490,   490,   490,   490,   490,   490,   490,   490,   490,
2069 >     490,   490,   492,   491,   493,   493,   494,   494,   494,   494,
2070 >     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
2071 >     494,   494,   494,   494,   494,   494,   494,   495,   496,   497,
2072 >     498,   499,   499,   500,   500,   500,   500,   500,   500,   500,
2073 >     500,   500,   500,   500,   500,   500,   501,   502,   503,   504,
2074 >     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
2075 >     514,   515,   515,   515,   515,   515,   515,   515,   515,   515,
2076 >     516,   517,   518,   519,   520,   521,   522,   523
2077 > };
2078  
2079 < #define YYRECOVERING()  (!!yyerrstatus)
2079 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2080 > static const yytype_uint8 yyr2[] =
2081 > {
2082 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2083 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2084 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2085 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2086 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2087 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2088 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2089 >       1,     2,     4,     4,     3,     1,     1,     1,     3,     1,
2090 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
2091 >       4,     4,     4,     4,     4,     4,     4,     5,     2,     1,
2092 >       1,     1,     1,     2,     4,     4,     4,     0,     6,     2,
2093 >       1,     1,     1,     2,     4,     4,     5,     2,     1,     1,
2094 >       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
2095 >       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2096 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2097 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2098 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2099 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2100 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2101 >       1,     1,     1,     1,     1,     0,     5,     3,     1,     3,
2102 >       1,     3,     1,     3,     1,     1,     1,     1,     1,     1,
2103 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2104 >       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
2105 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2106 >       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
2107 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
2108 >       5,     3,     1,     1,     1,     0,     6,     0,     5,     3,
2109 >       1,     1,     1,     1,     2,     1,     1,     1,     1,     1,
2110 >       2,     0,     5,     3,     1,     1,     3,     4,     4,     0,
2111 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2112 >       1,     2,     4,     4,     4,     4,     0,     5,     3,     1,
2113 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2114 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2115 >       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
2116 >       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
2117 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2118 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
2119 >       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2120 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
2121 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2122 >       1,     1,     1,     1,     2,     4,     4,     4,     4,     4,
2123 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2124 >       4,     4,     4,     4,     4,     0,     6,     2,     1,     1,
2125 >       1,     1,     4,     4,     0,     6,     2,     1,     1,     1,
2126 >       1,     4,     4,     5,     2,     1,     1,     1,     4,     0,
2127 >       6,     2,     1,     1,     1,     1,     4,     4,     5,     2,
2128 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2129 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2130 >       1,     1,     1,     1,     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,     1,     1,
2133 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2134 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2135 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2136 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2137 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
2138 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2139 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2140 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
2141 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2142 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2143 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2144 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2145 >       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
2146 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2147 >       4,     4,     4,     4,     4,     4,     4,     4
2148 > };
2149  
2554 #define YYBACKUP(Token, Value)                                  \
2555 do                                                              \
2556  if (yychar == YYEMPTY && yylen == 1)                          \
2557    {                                                           \
2558      yychar = (Token);                                         \
2559      yylval = (Value);                                         \
2560      YYPOPSTACK (1);                                           \
2561      goto yybackup;                                            \
2562    }                                                           \
2563  else                                                          \
2564    {                                                           \
2565      yyerror (YY_("syntax error: cannot back up")); \
2566      YYERROR;                                                  \
2567    }                                                           \
2568 while (YYID (0))
2569
2570
2571 #define YYTERROR        1
2572 #define YYERRCODE       256
2573
2574
2575 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2576   If N is 0, then set CURRENT to the empty location which ends
2577   the previous symbol: RHS[0] (always defined).  */
2578
2579 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2580 #ifndef YYLLOC_DEFAULT
2581 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2582    do                                                                  \
2583      if (YYID (N))                                                    \
2584        {                                                               \
2585          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2586          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2587          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2588          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2589        }                                                               \
2590      else                                                              \
2591        {                                                               \
2592          (Current).first_line   = (Current).last_line   =              \
2593            YYRHSLOC (Rhs, 0).last_line;                                \
2594          (Current).first_column = (Current).last_column =              \
2595            YYRHSLOC (Rhs, 0).last_column;                              \
2596        }                                                               \
2597    while (YYID (0))
2598 #endif
2150  
2151 + #define yyerrok         (yyerrstatus = 0)
2152 + #define yyclearin       (yychar = YYEMPTY)
2153 + #define YYEMPTY         (-2)
2154 + #define YYEOF           0
2155 +
2156 + #define YYACCEPT        goto yyacceptlab
2157 + #define YYABORT         goto yyabortlab
2158 + #define YYERROR         goto yyerrorlab
2159  
2601 /* This macro is provided for backward compatibility. */
2160  
2161 < #ifndef YY_LOCATION_PRINT
2604 < # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2605 < #endif
2161 > #define YYRECOVERING()  (!!yyerrstatus)
2162  
2163 + #define YYBACKUP(Token, Value)                                  \
2164 + do                                                              \
2165 +  if (yychar == YYEMPTY)                                        \
2166 +    {                                                           \
2167 +      yychar = (Token);                                         \
2168 +      yylval = (Value);                                         \
2169 +      YYPOPSTACK (yylen);                                       \
2170 +      yystate = *yyssp;                                         \
2171 +      goto yybackup;                                            \
2172 +    }                                                           \
2173 +  else                                                          \
2174 +    {                                                           \
2175 +      yyerror (YY_("syntax error: cannot back up")); \
2176 +      YYERROR;                                                  \
2177 +    }                                                           \
2178 + while (0)
2179 +
2180 + /* Error token number */
2181 + #define YYTERROR        1
2182 + #define YYERRCODE       256
2183  
2608 /* YYLEX -- calling `yylex' with the right arguments.  */
2184  
2610 #ifdef YYLEX_PARAM
2611 # define YYLEX yylex (YYLEX_PARAM)
2612 #else
2613 # define YYLEX yylex ()
2614 #endif
2185  
2186   /* Enable debugging if requested.  */
2187   #if YYDEBUG
# Line 2621 | Line 2191 | while (YYID (0))
2191   #  define YYFPRINTF fprintf
2192   # endif
2193  
2194 < # define YYDPRINTF(Args)                        \
2195 < do {                                            \
2196 <  if (yydebug)                                  \
2197 <    YYFPRINTF Args;                             \
2198 < } while (YYID (0))
2629 <
2630 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2631 < do {                                                                      \
2632 <  if (yydebug)                                                            \
2633 <    {                                                                     \
2634 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2635 <      yy_symbol_print (stderr,                                            \
2636 <                  Type, Value); \
2637 <      YYFPRINTF (stderr, "\n");                                           \
2638 <    }                                                                     \
2639 < } while (YYID (0))
2194 > # define YYDPRINTF(Args)                        \
2195 > do {                                            \
2196 >  if (yydebug)                                  \
2197 >    YYFPRINTF Args;                             \
2198 > } while (0)
2199  
2200 + /* This macro is provided for backward compatibility. */
2201 + #ifndef YY_LOCATION_PRINT
2202 + # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2203 + #endif
2204  
2642 /*--------------------------------.
2643 | Print this symbol on YYOUTPUT.  |
2644 `--------------------------------*/
2205  
2206 < /*ARGSUSED*/
2207 < #if (defined __STDC__ || defined __C99__FUNC__ \
2208 <     || defined __cplusplus || defined _MSC_VER)
2206 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2207 > do {                                                                      \
2208 >  if (yydebug)                                                            \
2209 >    {                                                                     \
2210 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2211 >      yy_symbol_print (stderr,                                            \
2212 >                  Type, Value); \
2213 >      YYFPRINTF (stderr, "\n");                                           \
2214 >    }                                                                     \
2215 > } while (0)
2216 >
2217 >
2218 > /*----------------------------------------.
2219 > | Print this symbol's value on YYOUTPUT.  |
2220 > `----------------------------------------*/
2221 >
2222   static void
2223   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2651 #else
2652 static void
2653 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2654    FILE *yyoutput;
2655    int yytype;
2656    YYSTYPE const * const yyvaluep;
2657 #endif
2224   {
2225 +  FILE *yyo = yyoutput;
2226 +  YYUSE (yyo);
2227    if (!yyvaluep)
2228      return;
2229   # ifdef YYPRINT
2230    if (yytype < YYNTOKENS)
2231      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2664 # else
2665  YYUSE (yyoutput);
2232   # endif
2233 <  switch (yytype)
2668 <    {
2669 <      default:
2670 <        break;
2671 <    }
2233 >  YYUSE (yytype);
2234   }
2235  
2236  
# Line 2676 | Line 2238 | yy_symbol_value_print (yyoutput, yytype,
2238   | Print this symbol on YYOUTPUT.  |
2239   `--------------------------------*/
2240  
2679 #if (defined __STDC__ || defined __C99__FUNC__ \
2680     || defined __cplusplus || defined _MSC_VER)
2241   static void
2242   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2683 #else
2684 static void
2685 yy_symbol_print (yyoutput, yytype, yyvaluep)
2686    FILE *yyoutput;
2687    int yytype;
2688    YYSTYPE const * const yyvaluep;
2689 #endif
2243   {
2244 <  if (yytype < YYNTOKENS)
2245 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2693 <  else
2694 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2244 >  YYFPRINTF (yyoutput, "%s %s (",
2245 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2246  
2247    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2248    YYFPRINTF (yyoutput, ")");
# Line 2702 | Line 2253 | yy_symbol_print (yyoutput, yytype, yyval
2253   | TOP (included).                                                   |
2254   `------------------------------------------------------------------*/
2255  
2705 #if (defined __STDC__ || defined __C99__FUNC__ \
2706     || defined __cplusplus || defined _MSC_VER)
2256   static void
2257   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2709 #else
2710 static void
2711 yy_stack_print (yybottom, yytop)
2712    yytype_int16 *yybottom;
2713    yytype_int16 *yytop;
2714 #endif
2258   {
2259    YYFPRINTF (stderr, "Stack now");
2260    for (; yybottom <= yytop; yybottom++)
# Line 2722 | Line 2265 | yy_stack_print (yybottom, yytop)
2265    YYFPRINTF (stderr, "\n");
2266   }
2267  
2268 < # define YY_STACK_PRINT(Bottom, Top)                            \
2269 < do {                                                            \
2270 <  if (yydebug)                                                  \
2271 <    yy_stack_print ((Bottom), (Top));                           \
2272 < } while (YYID (0))
2268 > # define YY_STACK_PRINT(Bottom, Top)                            \
2269 > do {                                                            \
2270 >  if (yydebug)                                                  \
2271 >    yy_stack_print ((Bottom), (Top));                           \
2272 > } while (0)
2273  
2274  
2275   /*------------------------------------------------.
2276   | Report that the YYRULE is going to be reduced.  |
2277   `------------------------------------------------*/
2278  
2736 #if (defined __STDC__ || defined __C99__FUNC__ \
2737     || defined __cplusplus || defined _MSC_VER)
2738 static void
2739 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2740 #else
2279   static void
2280 < yy_reduce_print (yyvsp, yyrule)
2743 <    YYSTYPE *yyvsp;
2744 <    int yyrule;
2745 < #endif
2280 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2281   {
2282 +  unsigned long int yylno = yyrline[yyrule];
2283    int yynrhs = yyr2[yyrule];
2284    int yyi;
2749  unsigned long int yylno = yyrline[yyrule];
2285    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2286 <             yyrule - 1, yylno);
2286 >             yyrule - 1, yylno);
2287    /* The symbols being reduced.  */
2288    for (yyi = 0; yyi < yynrhs; yyi++)
2289      {
2290        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2291 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2292 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2293 <                                       );
2291 >      yy_symbol_print (stderr,
2292 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2293 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2294 >                                              );
2295        YYFPRINTF (stderr, "\n");
2296      }
2297   }
2298  
2299 < # define YY_REDUCE_PRINT(Rule)          \
2300 < do {                                    \
2301 <  if (yydebug)                          \
2302 <    yy_reduce_print (yyvsp, Rule); \
2303 < } while (YYID (0))
2299 > # define YY_REDUCE_PRINT(Rule)          \
2300 > do {                                    \
2301 >  if (yydebug)                          \
2302 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2303 > } while (0)
2304  
2305   /* Nonzero means print parse trace.  It is left uninitialized so that
2306     multiple parsers can coexist.  */
# Line 2778 | Line 2314 | int yydebug;
2314  
2315  
2316   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2317 < #ifndef YYINITDEPTH
2317 > #ifndef YYINITDEPTH
2318   # define YYINITDEPTH 200
2319   #endif
2320  
# Line 2801 | Line 2337 | int yydebug;
2337   #   define yystrlen strlen
2338   #  else
2339   /* Return the length of YYSTR.  */
2804 #if (defined __STDC__ || defined __C99__FUNC__ \
2805     || defined __cplusplus || defined _MSC_VER)
2340   static YYSIZE_T
2341   yystrlen (const char *yystr)
2808 #else
2809 static YYSIZE_T
2810 yystrlen (yystr)
2811    const char *yystr;
2812 #endif
2342   {
2343    YYSIZE_T yylen;
2344    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2825 | Line 2354 | yystrlen (yystr)
2354   #  else
2355   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2356     YYDEST.  */
2828 #if (defined __STDC__ || defined __C99__FUNC__ \
2829     || defined __cplusplus || defined _MSC_VER)
2357   static char *
2358   yystpcpy (char *yydest, const char *yysrc)
2832 #else
2833 static char *
2834 yystpcpy (yydest, yysrc)
2835    char *yydest;
2836    const char *yysrc;
2837 #endif
2359   {
2360    char *yyd = yydest;
2361    const char *yys = yysrc;
# Line 2864 | Line 2385 | yytnamerr (char *yyres, const char *yyst
2385        char const *yyp = yystr;
2386  
2387        for (;;)
2388 <        switch (*++yyp)
2389 <          {
2390 <          case '\'':
2391 <          case ',':
2392 <            goto do_not_strip_quotes;
2393 <
2394 <          case '\\':
2395 <            if (*++yyp != '\\')
2396 <              goto do_not_strip_quotes;
2397 <            /* Fall through.  */
2398 <          default:
2399 <            if (yyres)
2400 <              yyres[yyn] = *yyp;
2401 <            yyn++;
2402 <            break;
2403 <
2404 <          case '"':
2405 <            if (yyres)
2406 <              yyres[yyn] = '\0';
2407 <            return yyn;
2408 <          }
2388 >        switch (*++yyp)
2389 >          {
2390 >          case '\'':
2391 >          case ',':
2392 >            goto do_not_strip_quotes;
2393 >
2394 >          case '\\':
2395 >            if (*++yyp != '\\')
2396 >              goto do_not_strip_quotes;
2397 >            /* Fall through.  */
2398 >          default:
2399 >            if (yyres)
2400 >              yyres[yyn] = *yyp;
2401 >            yyn++;
2402 >            break;
2403 >
2404 >          case '"':
2405 >            if (yyres)
2406 >              yyres[yyn] = '\0';
2407 >            return yyn;
2408 >          }
2409      do_not_strip_quotes: ;
2410      }
2411  
# Line 2907 | Line 2428 | static int
2428   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2429                  yytype_int16 *yyssp, int yytoken)
2430   {
2431 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2431 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2432    YYSIZE_T yysize = yysize0;
2912  YYSIZE_T yysize1;
2433    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2434    /* Internationalized format string. */
2435 <  const char *yyformat = 0;
2435 >  const char *yyformat = YY_NULLPTR;
2436    /* Arguments of yyformat. */
2437    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2438    /* Number of reported tokens (one for the "unexpected", one per
# Line 2920 | Line 2440 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2440    int yycount = 0;
2441  
2442    /* There are many possibilities here to consider:
2923     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2924       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2925       for details.  YYERROR is fine as it does not invoke this
2926       function.
2443       - If this state is a consistent state with a default action, then
2444         the only way this function was invoked is if the default action
2445         is an error action.  In that case, don't check for expected
# Line 2972 | Line 2488 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2488                      break;
2489                    }
2490                  yyarg[yycount++] = yytname[yyx];
2491 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2492 <                if (! (yysize <= yysize1
2493 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2494 <                  return 2;
2495 <                yysize = yysize1;
2491 >                {
2492 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2493 >                  if (! (yysize <= yysize1
2494 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2495 >                    return 2;
2496 >                  yysize = yysize1;
2497 >                }
2498                }
2499          }
2500      }
# Line 2996 | Line 2514 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2514   # undef YYCASE_
2515      }
2516  
2517 <  yysize1 = yysize + yystrlen (yyformat);
2518 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2519 <    return 2;
2520 <  yysize = yysize1;
2517 >  {
2518 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2519 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2520 >      return 2;
2521 >    yysize = yysize1;
2522 >  }
2523  
2524    if (*yymsg_alloc < yysize)
2525      {
# Line 3036 | Line 2556 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2556   | Release the memory associated to this symbol.  |
2557   `-----------------------------------------------*/
2558  
3039 /*ARGSUSED*/
3040 #if (defined __STDC__ || defined __C99__FUNC__ \
3041     || defined __cplusplus || defined _MSC_VER)
2559   static void
2560   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
3044 #else
3045 static void
3046 yydestruct (yymsg, yytype, yyvaluep)
3047    const char *yymsg;
3048    int yytype;
3049    YYSTYPE *yyvaluep;
3050 #endif
2561   {
2562    YYUSE (yyvaluep);
3053
2563    if (!yymsg)
2564      yymsg = "Deleting";
2565    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2566  
2567 <  switch (yytype)
2568 <    {
2569 <
3061 <      default:
3062 <        break;
3063 <    }
2567 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2568 >  YYUSE (yytype);
2569 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2570   }
2571  
2572  
3067 /* Prevent warnings from -Wmissing-prototypes.  */
3068 #ifdef YYPARSE_PARAM
3069 #if defined __STDC__ || defined __cplusplus
3070 int yyparse (void *YYPARSE_PARAM);
3071 #else
3072 int yyparse ();
3073 #endif
3074 #else /* ! YYPARSE_PARAM */
3075 #if defined __STDC__ || defined __cplusplus
3076 int yyparse (void);
3077 #else
3078 int yyparse ();
3079 #endif
3080 #endif /* ! YYPARSE_PARAM */
2573  
2574  
2575   /* The lookahead symbol.  */
# Line 3085 | Line 2577 | int yychar;
2577  
2578   /* The semantic value of the lookahead symbol.  */
2579   YYSTYPE yylval;
3088
2580   /* Number of syntax errors so far.  */
2581   int yynerrs;
2582  
# Line 3094 | Line 2585 | int yynerrs;
2585   | yyparse.  |
2586   `----------*/
2587  
3097 #ifdef YYPARSE_PARAM
3098 #if (defined __STDC__ || defined __C99__FUNC__ \
3099     || defined __cplusplus || defined _MSC_VER)
3100 int
3101 yyparse (void *YYPARSE_PARAM)
3102 #else
3103 int
3104 yyparse (YYPARSE_PARAM)
3105    void *YYPARSE_PARAM;
3106 #endif
3107 #else /* ! YYPARSE_PARAM */
3108 #if (defined __STDC__ || defined __C99__FUNC__ \
3109     || defined __cplusplus || defined _MSC_VER)
2588   int
2589   yyparse (void)
3112 #else
3113 int
3114 yyparse ()
3115
3116 #endif
3117 #endif
2590   {
2591      int yystate;
2592      /* Number of tokens to shift before error messages enabled.  */
2593      int yyerrstatus;
2594  
2595      /* The stacks and their tools:
2596 <       `yyss': related to states.
2597 <       `yyvs': related to semantic values.
2596 >       'yyss': related to states.
2597 >       'yyvs': related to semantic values.
2598  
2599 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2599 >       Refer to the stacks through separate pointers, to allow yyoverflow
2600         to reallocate them elsewhere.  */
2601  
2602      /* The state stack.  */
# Line 3142 | Line 2614 | yyparse ()
2614    int yyn;
2615    int yyresult;
2616    /* Lookahead token as an internal (translated) token number.  */
2617 <  int yytoken;
2617 >  int yytoken = 0;
2618    /* The variables used to return semantic value and location from the
2619       action routines.  */
2620    YYSTYPE yyval;
# Line 3160 | Line 2632 | yyparse ()
2632       Keep to zero when no symbol should be popped.  */
2633    int yylen = 0;
2634  
2635 <  yytoken = 0;
2636 <  yyss = yyssa;
3165 <  yyvs = yyvsa;
2635 >  yyssp = yyss = yyssa;
2636 >  yyvsp = yyvs = yyvsa;
2637    yystacksize = YYINITDEPTH;
2638  
2639    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3171 | Line 2642 | yyparse ()
2642    yyerrstatus = 0;
2643    yynerrs = 0;
2644    yychar = YYEMPTY; /* Cause a token to be read.  */
3174
3175  /* Initialize stack pointers.
3176     Waste one element of value and location stack
3177     so that they stay on the same level as the state stack.
3178     The wasted elements are never initialized.  */
3179  yyssp = yyss;
3180  yyvsp = yyvs;
3181
2645    goto yysetstate;
2646  
2647   /*------------------------------------------------------------.
# Line 3199 | Line 2662 | yyparse ()
2662  
2663   #ifdef yyoverflow
2664        {
2665 <        /* Give user a chance to reallocate the stack.  Use copies of
2666 <           these so that the &'s don't force the real ones into
2667 <           memory.  */
2668 <        YYSTYPE *yyvs1 = yyvs;
2669 <        yytype_int16 *yyss1 = yyss;
2670 <
2671 <        /* Each stack pointer address is followed by the size of the
2672 <           data in use in that stack, in bytes.  This used to be a
2673 <           conditional around just the two extra args, but that might
2674 <           be undefined if yyoverflow is a macro.  */
2675 <        yyoverflow (YY_("memory exhausted"),
2676 <                    &yyss1, yysize * sizeof (*yyssp),
2677 <                    &yyvs1, yysize * sizeof (*yyvsp),
2678 <                    &yystacksize);
2665 >        /* Give user a chance to reallocate the stack.  Use copies of
2666 >           these so that the &'s don't force the real ones into
2667 >           memory.  */
2668 >        YYSTYPE *yyvs1 = yyvs;
2669 >        yytype_int16 *yyss1 = yyss;
2670 >
2671 >        /* Each stack pointer address is followed by the size of the
2672 >           data in use in that stack, in bytes.  This used to be a
2673 >           conditional around just the two extra args, but that might
2674 >           be undefined if yyoverflow is a macro.  */
2675 >        yyoverflow (YY_("memory exhausted"),
2676 >                    &yyss1, yysize * sizeof (*yyssp),
2677 >                    &yyvs1, yysize * sizeof (*yyvsp),
2678 >                    &yystacksize);
2679  
2680 <        yyss = yyss1;
2681 <        yyvs = yyvs1;
2680 >        yyss = yyss1;
2681 >        yyvs = yyvs1;
2682        }
2683   #else /* no yyoverflow */
2684   # ifndef YYSTACK_RELOCATE
# Line 3223 | Line 2686 | yyparse ()
2686   # else
2687        /* Extend the stack our own way.  */
2688        if (YYMAXDEPTH <= yystacksize)
2689 <        goto yyexhaustedlab;
2689 >        goto yyexhaustedlab;
2690        yystacksize *= 2;
2691        if (YYMAXDEPTH < yystacksize)
2692 <        yystacksize = YYMAXDEPTH;
2692 >        yystacksize = YYMAXDEPTH;
2693  
2694        {
2695 <        yytype_int16 *yyss1 = yyss;
2696 <        union yyalloc *yyptr =
2697 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2698 <        if (! yyptr)
2699 <          goto yyexhaustedlab;
2700 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2701 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2695 >        yytype_int16 *yyss1 = yyss;
2696 >        union yyalloc *yyptr =
2697 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2698 >        if (! yyptr)
2699 >          goto yyexhaustedlab;
2700 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2701 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2702   #  undef YYSTACK_RELOCATE
2703 <        if (yyss1 != yyssa)
2704 <          YYSTACK_FREE (yyss1);
2703 >        if (yyss1 != yyssa)
2704 >          YYSTACK_FREE (yyss1);
2705        }
2706   # endif
2707   #endif /* no yyoverflow */
# Line 3247 | Line 2710 | yyparse ()
2710        yyvsp = yyvs + yysize - 1;
2711  
2712        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2713 <                  (unsigned long int) yystacksize));
2713 >                  (unsigned long int) yystacksize));
2714  
2715        if (yyss + yystacksize - 1 <= yyssp)
2716 <        YYABORT;
2716 >        YYABORT;
2717      }
2718  
2719    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3279 | Line 2742 | yybackup:
2742    if (yychar == YYEMPTY)
2743      {
2744        YYDPRINTF ((stderr, "Reading a token: "));
2745 <      yychar = YYLEX;
2745 >      yychar = yylex ();
2746      }
2747  
2748    if (yychar <= YYEOF)
# Line 3319 | Line 2782 | yybackup:
2782    yychar = YYEMPTY;
2783  
2784    yystate = yyn;
2785 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2786    *++yyvsp = yylval;
2787 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2788  
2789    goto yynewstate;
2790  
# Line 3342 | Line 2807 | yyreduce:
2807    yylen = yyr2[yyn];
2808  
2809    /* If YYLEN is nonzero, implement the default value of the action:
2810 <     `$$ = $1'.
2810 >     '$$ = $1'.
2811  
2812       Otherwise, the following line sets YYVAL to garbage.
2813       This behavior is undocumented and Bison
# Line 3355 | Line 2820 | yyreduce:
2820    YY_REDUCE_PRINT (yyn);
2821    switch (yyn)
2822      {
2823 <        case 26:
2824 <
3360 < /* Line 1806 of yacc.c  */
3361 < #line 423 "ircd_parser.y"
2823 >        case 27:
2824 > #line 403 "conf_parser.y" /* yacc.c:1646  */
2825      { (yyval.number) = 0; }
2826 <    break;
3364 <
3365 <  case 28:
3366 <
3367 < /* Line 1806 of yacc.c  */
3368 < #line 425 "ircd_parser.y"
3369 <    {
3370 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3371 <                }
2826 > #line 2827 "conf_parser.c" /* yacc.c:1646  */
2827      break;
2828  
2829    case 29:
2830 <
3376 < /* Line 1806 of yacc.c  */
3377 < #line 429 "ircd_parser.y"
2830 > #line 405 "conf_parser.y" /* yacc.c:1646  */
2831      {
2832 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
2832 >                        (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number);
2833                  }
2834 + #line 2835 "conf_parser.c" /* yacc.c:1646  */
2835      break;
2836  
2837    case 30:
2838 <
3385 < /* Line 1806 of yacc.c  */
3386 < #line 433 "ircd_parser.y"
2838 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2839      {
2840 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
2840 >                        (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number);
2841                  }
2842 + #line 2843 "conf_parser.c" /* yacc.c:1646  */
2843      break;
2844  
2845    case 31:
2846 <
3394 < /* Line 1806 of yacc.c  */
3395 < #line 437 "ircd_parser.y"
2846 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2847      {
2848 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
2848 >                        (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number);
2849                  }
2850 + #line 2851 "conf_parser.c" /* yacc.c:1646  */
2851      break;
2852  
2853    case 32:
2854 <
3403 < /* Line 1806 of yacc.c  */
3404 < #line 441 "ircd_parser.y"
2854 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2855      {
2856 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
2856 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number);
2857                  }
2858 + #line 2859 "conf_parser.c" /* yacc.c:1646  */
2859      break;
2860  
2861    case 33:
2862 <
3412 < /* Line 1806 of yacc.c  */
3413 < #line 445 "ircd_parser.y"
2862 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2863      {
2864 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
2864 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number);
2865                  }
2866 + #line 2867 "conf_parser.c" /* yacc.c:1646  */
2867      break;
2868  
2869    case 34:
2870 + #line 425 "conf_parser.y" /* yacc.c:1646  */
2871 +    {
2872 +                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number);
2873 +                }
2874 + #line 2875 "conf_parser.c" /* yacc.c:1646  */
2875 +    break;
2876  
2877 < /* Line 1806 of yacc.c  */
2878 < #line 450 "ircd_parser.y"
2879 <    { (yyval.number) = 0; }
2877 >  case 35:
2878 > #line 429 "conf_parser.y" /* yacc.c:1646  */
2879 >    {
2880 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number);
2881 >                }
2882 > #line 2883 "conf_parser.c" /* yacc.c:1646  */
2883      break;
2884  
2885    case 36:
2886 <
2887 < /* Line 1806 of yacc.c  */
2888 < #line 451 "ircd_parser.y"
2889 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2886 > #line 433 "conf_parser.y" /* yacc.c:1646  */
2887 >    {
2888 >                        (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number);
2889 >                }
2890 > #line 2891 "conf_parser.c" /* yacc.c:1646  */
2891      break;
2892  
2893    case 37:
2894 <
2895 < /* Line 1806 of yacc.c  */
2896 < #line 452 "ircd_parser.y"
3437 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2894 > #line 438 "conf_parser.y" /* yacc.c:1646  */
2895 >    { (yyval.number) = 0; }
2896 > #line 2897 "conf_parser.c" /* yacc.c:1646  */
2897      break;
2898  
2899 <  case 38:
2900 <
2901 < /* Line 1806 of yacc.c  */
2902 < #line 453 "ircd_parser.y"
3444 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2899 >  case 39:
2900 > #line 439 "conf_parser.y" /* yacc.c:1646  */
2901 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2902 > #line 2903 "conf_parser.c" /* yacc.c:1646  */
2903      break;
2904  
2905 <  case 39:
2905 >  case 40:
2906 > #line 440 "conf_parser.y" /* yacc.c:1646  */
2907 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2908 > #line 2909 "conf_parser.c" /* yacc.c:1646  */
2909 >    break;
2910  
2911 < /* Line 1806 of yacc.c  */
2912 < #line 454 "ircd_parser.y"
2913 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2911 >  case 41:
2912 > #line 441 "conf_parser.y" /* yacc.c:1646  */
2913 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2914 > #line 2915 "conf_parser.c" /* yacc.c:1646  */
2915      break;
2916  
2917 <  case 46:
2917 >  case 42:
2918 > #line 442 "conf_parser.y" /* yacc.c:1646  */
2919 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2920 > #line 2921 "conf_parser.c" /* yacc.c:1646  */
2921 >    break;
2922  
2923 < /* Line 1806 of yacc.c  */
2924 < #line 468 "ircd_parser.y"
2923 >  case 49:
2924 > #line 456 "conf_parser.y" /* yacc.c:1646  */
2925      {
2926    if (conf_parser_ctx.pass == 2)
2927      add_conf_module(libio_basename(yylval.string));
2928   }
2929 + #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932 <  case 47:
2933 <
3466 < /* Line 1806 of yacc.c  */
3467 < #line 474 "ircd_parser.y"
2932 >  case 50:
2933 > #line 462 "conf_parser.y" /* yacc.c:1646  */
2934      {
2935    if (conf_parser_ctx.pass == 2)
2936      mod_add_path(yylval.string);
2937   }
2938 + #line 2939 "conf_parser.c" /* yacc.c:1646  */
2939      break;
2940  
2941 <  case 64:
2942 <
3476 < /* Line 1806 of yacc.c  */
3477 < #line 494 "ircd_parser.y"
2941 >  case 76:
2942 > #line 488 "conf_parser.y" /* yacc.c:1646  */
2943      {
2944   #ifdef HAVE_LIBCRYPTO
2945 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2946 <    ServerInfo.tls_version = 0;
2945 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2946 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2947   #endif
2948   }
2949 + #line 2950 "conf_parser.c" /* yacc.c:1646  */
2950      break;
2951  
2952 <  case 65:
2953 <
3488 < /* Line 1806 of yacc.c  */
3489 < #line 500 "ircd_parser.y"
2952 >  case 77:
2953 > #line 494 "conf_parser.y" /* yacc.c:1646  */
2954      {
2955   #ifdef HAVE_LIBCRYPTO
2956 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2957 <  {
3494 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3495 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3496 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3497 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3498 <  }
2956 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2957 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
2958   #endif
2959   }
2960 + #line 2961 "conf_parser.c" /* yacc.c:1646  */
2961      break;
2962  
2963 <  case 68:
2964 <
3505 < /* Line 1806 of yacc.c  */
3506 < #line 514 "ircd_parser.y"
2963 >  case 80:
2964 > #line 503 "conf_parser.y" /* yacc.c:1646  */
2965      {
2966   #ifdef HAVE_LIBCRYPTO
2967 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2968 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
2967 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2968 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2969   #endif
2970   }
2971 + #line 2972 "conf_parser.c" /* yacc.c:1646  */
2972      break;
2973  
2974 <  case 69:
2975 <
3517 < /* Line 1806 of yacc.c  */
3518 < #line 520 "ircd_parser.y"
2974 >  case 81:
2975 > #line 509 "conf_parser.y" /* yacc.c:1646  */
2976      {
2977   #ifdef HAVE_LIBCRYPTO
2978 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2979 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
2978 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2979 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2980   #endif
2981   }
2982 + #line 2983 "conf_parser.c" /* yacc.c:1646  */
2983      break;
2984  
2985 <  case 70:
2986 <
3529 < /* Line 1806 of yacc.c  */
3530 < #line 528 "ircd_parser.y"
2985 >  case 82:
2986 > #line 517 "conf_parser.y" /* yacc.c:1646  */
2987      {
2988   #ifdef HAVE_LIBCRYPTO
2989 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2989 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2990    {
2991      if (!ServerInfo.rsa_private_key_file)
2992      {
2993 <      yyerror("No rsa_private_key_file specified, SSL disabled");
2993 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
2994        break;
2995      }
2996  
2997      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
2998 +                                     SSL_FILETYPE_PEM) <= 0 ||
2999 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3000                                       SSL_FILETYPE_PEM) <= 0)
3001      {
3002 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3002 >      report_crypto_errors();
3003 >      conf_error_report("Could not open/read certificate file");
3004        break;
3005      }
3006  
3007      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3008 +                                    SSL_FILETYPE_PEM) <= 0 ||
3009 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3010                                      SSL_FILETYPE_PEM) <= 0)
3011      {
3012 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3012 >      report_crypto_errors();
3013 >      conf_error_report("Could not read RSA private key");
3014        break;
3015      }
3016  
3017 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3017 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3018 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3019      {
3020 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3020 >      report_crypto_errors();
3021 >      conf_error_report("Could not read RSA private key");
3022        break;
3023      }
3024    }
3025   #endif
3026   }
3027 + #line 3028 "conf_parser.c" /* yacc.c:1646  */
3028      break;
3029  
3030 <  case 71:
3031 <
3567 < /* Line 1806 of yacc.c  */
3568 < #line 562 "ircd_parser.y"
3030 >  case 83:
3031 > #line 559 "conf_parser.y" /* yacc.c:1646  */
3032      {
3033   #ifdef HAVE_LIBCRYPTO
3034 <  if (conf_parser_ctx.pass == 1)
3034 >  BIO *file = NULL;
3035 >
3036 >  if (conf_parser_ctx.pass != 1)
3037 >    break;
3038 >
3039 >  if (ServerInfo.rsa_private_key)
3040    {
3041 <    BIO *file;
3041 >    RSA_free(ServerInfo.rsa_private_key);
3042 >    ServerInfo.rsa_private_key = NULL;
3043 >  }
3044  
3045 <    if (ServerInfo.rsa_private_key)
3046 <    {
3047 <      RSA_free(ServerInfo.rsa_private_key);
3048 <      ServerInfo.rsa_private_key = NULL;
3049 <    }
3045 >  if (ServerInfo.rsa_private_key_file)
3046 >  {
3047 >    MyFree(ServerInfo.rsa_private_key_file);
3048 >    ServerInfo.rsa_private_key_file = NULL;
3049 >  }
3050  
3051 <    if (ServerInfo.rsa_private_key_file)
3582 <    {
3583 <      MyFree(ServerInfo.rsa_private_key_file);
3584 <      ServerInfo.rsa_private_key_file = NULL;
3585 <    }
3051 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3052  
3053 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3053 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3054 >  {
3055 >    conf_error_report("File open failed, ignoring");
3056 >    break;
3057 >  }
3058  
3059 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3590 <    {
3591 <      yyerror("File open failed, ignoring");
3592 <      break;
3593 <    }
3059 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3060  
3061 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3062 <      0, NULL);
3061 >  BIO_set_close(file, BIO_CLOSE);
3062 >  BIO_free(file);
3063  
3064 <    BIO_set_close(file, BIO_CLOSE);
3065 <    BIO_free(file);
3064 >  if (ServerInfo.rsa_private_key == NULL)
3065 >  {
3066 >    conf_error_report("Couldn't extract key, ignoring");
3067 >    break;
3068 >  }
3069  
3070 <    if (ServerInfo.rsa_private_key == NULL)
3070 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3071 >  {
3072 >    RSA_free(ServerInfo.rsa_private_key);
3073 >    ServerInfo.rsa_private_key = NULL;
3074 >
3075 >    conf_error_report("Invalid key, ignoring");
3076 >    break;
3077 >  }
3078 >
3079 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3080 >  {
3081 >    RSA_free(ServerInfo.rsa_private_key);
3082 >    ServerInfo.rsa_private_key = NULL;
3083 >
3084 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3085 >  }
3086 > #endif
3087 > }
3088 > #line 3089 "conf_parser.c" /* yacc.c:1646  */
3089 >    break;
3090 >
3091 >  case 84:
3092 > #line 617 "conf_parser.y" /* yacc.c:1646  */
3093      {
3094 <      yyerror("Couldn't extract key, ignoring");
3095 <      break;
3096 <    }
3094 > /* TBD - XXX: error reporting */
3095 > #ifdef HAVE_LIBCRYPTO
3096 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3097 >  {
3098 >    BIO *file = BIO_new_file(yylval.string, "r");
3099  
3100 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3100 >    if (file)
3101      {
3102 <      RSA_free(ServerInfo.rsa_private_key);
3610 <      ServerInfo.rsa_private_key = NULL;
3102 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3103  
3104 <      yyerror("Invalid key, ignoring");
3613 <      break;
3614 <    }
3104 >      BIO_free(file);
3105  
3106 <    /* require 2048 bit (256 byte) key */
3107 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3108 <    {
3109 <      RSA_free(ServerInfo.rsa_private_key);
3110 <      ServerInfo.rsa_private_key = NULL;
3106 >      if (dh)
3107 >      {
3108 >        if (DH_size(dh) < 128)
3109 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3110 >        else
3111 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3112  
3113 <      yyerror("Not a 2048 bit key, ignoring");
3113 >        DH_free(dh);
3114 >      }
3115      }
3116    }
3117   #endif
3118   }
3119 + #line 3120 "conf_parser.c" /* yacc.c:1646  */
3120      break;
3121  
3122 <  case 72:
3122 >  case 85:
3123 > #line 645 "conf_parser.y" /* yacc.c:1646  */
3124 >    {
3125 > #ifdef HAVE_LIBCRYPTO
3126 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3127 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3128 > #endif
3129 > }
3130 > #line 3131 "conf_parser.c" /* yacc.c:1646  */
3131 >    break;
3132  
3133 < /* Line 1806 of yacc.c  */
3134 < #line 622 "ircd_parser.y"
3133 >  case 86:
3134 > #line 653 "conf_parser.y" /* yacc.c:1646  */
3135      {
3136    /* this isn't rehashable */
3137    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3138    {
3139      if (valid_servname(yylval.string))
3140 <      DupString(ServerInfo.name, yylval.string);
3140 >      ServerInfo.name = xstrdup(yylval.string);
3141      else
3142      {
3143 <      ilog(L_ERROR, "Ignoring serverinfo::name -- invalid name. Aborting.");
3143 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3144        exit(0);
3145      }
3146    }
3147   }
3148 + #line 3149 "conf_parser.c" /* yacc.c:1646  */
3149      break;
3150  
3151 <  case 73:
3152 <
3650 < /* Line 1806 of yacc.c  */
3651 < #line 637 "ircd_parser.y"
3151 >  case 87:
3152 > #line 668 "conf_parser.y" /* yacc.c:1646  */
3153      {
3154    /* this isn't rehashable */
3155    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3156    {
3157      if (valid_sid(yylval.string))
3158 <      DupString(ServerInfo.sid, yylval.string);
3158 >      ServerInfo.sid = xstrdup(yylval.string);
3159      else
3160      {
3161 <      ilog(L_ERROR, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3161 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3162        exit(0);
3163      }
3164    }
3165   }
3166 + #line 3167 "conf_parser.c" /* yacc.c:1646  */
3167      break;
3168  
3169 <  case 74:
3170 <
3669 < /* Line 1806 of yacc.c  */
3670 < #line 652 "ircd_parser.y"
3169 >  case 88:
3170 > #line 683 "conf_parser.y" /* yacc.c:1646  */
3171      {
3172    if (conf_parser_ctx.pass == 2)
3173    {
3174      MyFree(ServerInfo.description);
3175 <    DupString(ServerInfo.description,yylval.string);
3175 >    ServerInfo.description = xstrdup(yylval.string);
3176    }
3177   }
3178 + #line 3179 "conf_parser.c" /* yacc.c:1646  */
3179      break;
3180  
3181 <  case 75:
3182 <
3682 < /* Line 1806 of yacc.c  */
3683 < #line 661 "ircd_parser.y"
3181 >  case 89:
3182 > #line 692 "conf_parser.y" /* yacc.c:1646  */
3183      {
3184    if (conf_parser_ctx.pass == 2)
3185    {
# Line 3690 | Line 3189 | yyreduce:
3189        p = '\0';
3190  
3191      MyFree(ServerInfo.network_name);
3192 <    DupString(ServerInfo.network_name, yylval.string);
3192 >    ServerInfo.network_name = xstrdup(yylval.string);
3193    }
3194   }
3195 + #line 3196 "conf_parser.c" /* yacc.c:1646  */
3196      break;
3197  
3198 <  case 76:
3199 <
3700 < /* Line 1806 of yacc.c  */
3701 < #line 675 "ircd_parser.y"
3198 >  case 90:
3199 > #line 706 "conf_parser.y" /* yacc.c:1646  */
3200      {
3201 <  if (conf_parser_ctx.pass == 2)
3704 <  {
3705 <    MyFree(ServerInfo.network_desc);
3706 <    DupString(ServerInfo.network_desc, yylval.string);
3707 <  }
3708 < }
3201 >  if (conf_parser_ctx.pass != 2)
3202      break;
3203  
3204 <  case 77:
3204 >  MyFree(ServerInfo.network_desc);
3205 >  ServerInfo.network_desc = xstrdup(yylval.string);
3206 > }
3207 > #line 3208 "conf_parser.c" /* yacc.c:1646  */
3208 >    break;
3209  
3210 < /* Line 1806 of yacc.c  */
3211 < #line 684 "ircd_parser.y"
3210 >  case 91:
3211 > #line 715 "conf_parser.y" /* yacc.c:1646  */
3212      {
3213    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3214    {
# Line 3724 | Line 3221 | yyreduce:
3221      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3222  
3223      if (getaddrinfo(yylval.string, NULL, &hints, &res))
3224 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3224 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3225      else
3226      {
3227        assert(res != NULL);
# Line 3738 | Line 3235 | yyreduce:
3235      }
3236    }
3237   }
3238 + #line 3239 "conf_parser.c" /* yacc.c:1646  */
3239      break;
3240  
3241 <  case 78:
3242 <
3745 < /* Line 1806 of yacc.c  */
3746 < #line 712 "ircd_parser.y"
3241 >  case 92:
3242 > #line 743 "conf_parser.y" /* yacc.c:1646  */
3243      {
3244   #ifdef IPV6
3245    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3757 | Line 3253 | yyreduce:
3253      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3254  
3255      if (getaddrinfo(yylval.string, NULL, &hints, &res))
3256 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3256 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3257      else
3258      {
3259        assert(res != NULL);
# Line 3772 | Line 3268 | yyreduce:
3268    }
3269   #endif
3270   }
3271 + #line 3272 "conf_parser.c" /* yacc.c:1646  */
3272      break;
3273  
3274 <  case 79:
3275 <
3779 < /* Line 1806 of yacc.c  */
3780 < #line 742 "ircd_parser.y"
3274 >  case 93:
3275 > #line 773 "conf_parser.y" /* yacc.c:1646  */
3276      {
3277 <  if (conf_parser_ctx.pass == 2)
3277 >  if (conf_parser_ctx.pass != 2)
3278 >    break;
3279 >
3280 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3281    {
3282 <    recalc_fdlimit(NULL);
3282 >    char buf[IRCD_BUFSIZE];
3283  
3284 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3285 <    {
3286 <      char buf[IRCD_BUFSIZE];
3789 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3790 <      yyerror(buf);
3791 <    }
3792 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3793 <    {
3794 <      char buf[IRCD_BUFSIZE];
3795 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3796 <      yyerror(buf);
3797 <    }
3798 <    else
3799 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3284 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3285 >    conf_error_report(buf);
3286 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3287    }
3288 +  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3289 +  {
3290 +    char buf[IRCD_BUFSIZE];
3291 +
3292 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3293 +    conf_error_report(buf);
3294 +    ServerInfo.max_clients = MAXCLIENTS_MAX;
3295 +  }
3296 +  else
3297 +    ServerInfo.max_clients = (yyvsp[-1].number);
3298   }
3299 + #line 3300 "conf_parser.c" /* yacc.c:1646  */
3300      break;
3301  
3302 <  case 80:
3303 <
3806 < /* Line 1806 of yacc.c  */
3807 < #line 765 "ircd_parser.y"
3302 >  case 94:
3303 > #line 798 "conf_parser.y" /* yacc.c:1646  */
3304      {
3305 <  if (conf_parser_ctx.pass == 2)
3810 <    ServerInfo.hub = yylval.number;
3811 < }
3305 >  if (conf_parser_ctx.pass != 2)
3306      break;
3307  
3308 <  case 88:
3309 <
3310 < /* Line 1806 of yacc.c  */
3311 < #line 780 "ircd_parser.y"
3312 <    {
3313 <  if (conf_parser_ctx.pass == 2)
3308 >  if ((yyvsp[-1].number) < 9)
3309 >  {
3310 >    conf_error_report("max_nick_length too low, setting to 9");
3311 >    ServerInfo.max_nick_length = 9;
3312 >  }
3313 >  else if ((yyvsp[-1].number) > NICKLEN)
3314    {
3315 <    MyFree(AdminInfo.name);
3316 <    DupString(AdminInfo.name, yylval.string);
3315 >    char buf[IRCD_BUFSIZE];
3316 >
3317 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3318 >    conf_error_report(buf);
3319 >    ServerInfo.max_nick_length = NICKLEN;
3320    }
3321 +  else
3322 +    ServerInfo.max_nick_length = (yyvsp[-1].number);
3323   }
3324 + #line 3325 "conf_parser.c" /* yacc.c:1646  */
3325      break;
3326  
3327 <  case 89:
3328 <
3829 < /* Line 1806 of yacc.c  */
3830 < #line 789 "ircd_parser.y"
3327 >  case 95:
3328 > #line 820 "conf_parser.y" /* yacc.c:1646  */
3329      {
3330 <  if (conf_parser_ctx.pass == 2)
3330 >  if (conf_parser_ctx.pass != 2)
3331 >    break;
3332 >
3333 >  if ((yyvsp[-1].number) < 80)
3334    {
3335 <    MyFree(AdminInfo.email);
3336 <    DupString(AdminInfo.email, yylval.string);
3335 >    conf_error_report("max_topic_length too low, setting to 80");
3336 >    ServerInfo.max_topic_length = 80;
3337    }
3338 +  else if ((yyvsp[-1].number) > TOPICLEN)
3339 +  {
3340 +    char buf[IRCD_BUFSIZE];
3341 +
3342 +    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3343 +    conf_error_report(buf);
3344 +    ServerInfo.max_topic_length = TOPICLEN;
3345 +  }
3346 +  else
3347 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3348   }
3349 + #line 3350 "conf_parser.c" /* yacc.c:1646  */
3350      break;
3351  
3352 <  case 90:
3353 <
3842 < /* Line 1806 of yacc.c  */
3843 < #line 798 "ircd_parser.y"
3352 >  case 96:
3353 > #line 842 "conf_parser.y" /* yacc.c:1646  */
3354      {
3355    if (conf_parser_ctx.pass == 2)
3356 <  {
3847 <    MyFree(AdminInfo.description);
3848 <    DupString(AdminInfo.description, yylval.string);
3849 <  }
3356 >    ServerInfo.hub = yylval.number;
3357   }
3358 + #line 3359 "conf_parser.c" /* yacc.c:1646  */
3359      break;
3360  
3361 <  case 107:
3362 <
3855 < /* Line 1806 of yacc.c  */
3856 < #line 825 "ircd_parser.y"
3361 >  case 104:
3362 > #line 857 "conf_parser.y" /* yacc.c:1646  */
3363      {
3364 <                        }
3364 >  if (conf_parser_ctx.pass != 2)
3365      break;
3366  
3367 <  case 108:
3367 >  MyFree(AdminInfo.name);
3368 >  AdminInfo.name = xstrdup(yylval.string);
3369 > }
3370 > #line 3371 "conf_parser.c" /* yacc.c:1646  */
3371 >    break;
3372  
3373 < /* Line 1806 of yacc.c  */
3374 < #line 829 "ircd_parser.y"
3373 >  case 105:
3374 > #line 866 "conf_parser.y" /* yacc.c:1646  */
3375      {
3376 <                        }
3376 >  if (conf_parser_ctx.pass != 2)
3377      break;
3378  
3379 <  case 109:
3379 >  MyFree(AdminInfo.email);
3380 >  AdminInfo.email = xstrdup(yylval.string);
3381 > }
3382 > #line 3383 "conf_parser.c" /* yacc.c:1646  */
3383 >    break;
3384  
3385 < /* Line 1806 of yacc.c  */
3386 < #line 833 "ircd_parser.y"
3385 >  case 106:
3386 > #line 875 "conf_parser.y" /* yacc.c:1646  */
3387      {
3388 <  if (conf_parser_ctx.pass == 2)
3875 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3876 <            sizeof(ConfigLoggingEntry.userlog));
3877 < }
3388 >  if (conf_parser_ctx.pass != 2)
3389      break;
3390  
3391 <  case 110:
3391 >  MyFree(AdminInfo.description);
3392 >  AdminInfo.description = xstrdup(yylval.string);
3393 > }
3394 > #line 3395 "conf_parser.c" /* yacc.c:1646  */
3395 >    break;
3396  
3397 < /* Line 1806 of yacc.c  */
3398 < #line 840 "ircd_parser.y"
3397 >  case 107:
3398 > #line 887 "conf_parser.y" /* yacc.c:1646  */
3399      {
3400    if (conf_parser_ctx.pass == 2)
3401 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3887 <            sizeof(ConfigLoggingEntry.failed_operlog));
3401 >    reset_block_state();
3402   }
3403 + #line 3404 "conf_parser.c" /* yacc.c:1646  */
3404      break;
3405  
3406 <  case 111:
3406 >  case 108:
3407 > #line 891 "conf_parser.y" /* yacc.c:1646  */
3408 >    {
3409 >  dlink_node *ptr = NULL;
3410 >
3411 >  if (conf_parser_ctx.pass != 2)
3412 >    break;
3413  
3414 < /* Line 1806 of yacc.c  */
3415 < #line 847 "ircd_parser.y"
3414 >  if (!block_state.file.buf[0])
3415 >    break;
3416 >
3417 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3418 >    motd_add(ptr->data, block_state.file.buf);
3419 > }
3420 > #line 3421 "conf_parser.c" /* yacc.c:1646  */
3421 >    break;
3422 >
3423 >  case 114:
3424 > #line 908 "conf_parser.y" /* yacc.c:1646  */
3425      {
3426    if (conf_parser_ctx.pass == 2)
3427 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
3898 <            sizeof(ConfigLoggingEntry.operlog));
3427 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3428   }
3429 + #line 3430 "conf_parser.c" /* yacc.c:1646  */
3430      break;
3431  
3432 <  case 112:
3433 <
3904 < /* Line 1806 of yacc.c  */
3905 < #line 854 "ircd_parser.y"
3432 >  case 115:
3433 > #line 914 "conf_parser.y" /* yacc.c:1646  */
3434      {
3435    if (conf_parser_ctx.pass == 2)
3436 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
3909 <            sizeof(ConfigLoggingEntry.operspylog));
3436 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3437   }
3438 + #line 3439 "conf_parser.c" /* yacc.c:1646  */
3439      break;
3440  
3441 <  case 113:
3442 <
3915 < /* Line 1806 of yacc.c  */
3916 < #line 861 "ircd_parser.y"
3441 >  case 122:
3442 > #line 929 "conf_parser.y" /* yacc.c:1646  */
3443      {
3444    if (conf_parser_ctx.pass == 2)
3445 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
3920 <            sizeof(ConfigLoggingEntry.glinelog));
3445 >    ConfigLoggingEntry.use_logging = yylval.number;
3446   }
3447 + #line 3448 "conf_parser.c" /* yacc.c:1646  */
3448      break;
3449  
3450 <  case 114:
3451 <
3926 < /* Line 1806 of yacc.c  */
3927 < #line 868 "ircd_parser.y"
3450 >  case 123:
3451 > #line 935 "conf_parser.y" /* yacc.c:1646  */
3452      {
3453    if (conf_parser_ctx.pass == 2)
3454 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
3931 <            sizeof(ConfigLoggingEntry.klinelog));
3454 >    reset_block_state();
3455   }
3456 + #line 3457 "conf_parser.c" /* yacc.c:1646  */
3457      break;
3458  
3459 <  case 115:
3460 <
3937 < /* Line 1806 of yacc.c  */
3938 < #line 875 "ircd_parser.y"
3459 >  case 124:
3460 > #line 939 "conf_parser.y" /* yacc.c:1646  */
3461      {
3462 <  if (conf_parser_ctx.pass == 2)
3463 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
3464 <            sizeof(ConfigLoggingEntry.ioerrlog));
3462 >  if (conf_parser_ctx.pass != 2)
3463 >    break;
3464 >
3465 >  if (block_state.type.value && block_state.file.buf[0])
3466 >    log_set_file(block_state.type.value, block_state.size.value,
3467 >                 block_state.file.buf);
3468   }
3469 + #line 3470 "conf_parser.c" /* yacc.c:1646  */
3470      break;
3471  
3472 <  case 116:
3472 >  case 131:
3473 > #line 955 "conf_parser.y" /* yacc.c:1646  */
3474 >    {
3475 >  if (conf_parser_ctx.pass != 2)
3476 >    break;
3477 >
3478 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3479 > }
3480 > #line 3481 "conf_parser.c" /* yacc.c:1646  */
3481 >    break;
3482  
3483 < /* Line 1806 of yacc.c  */
3484 < #line 882 "ircd_parser.y"
3483 >  case 132:
3484 > #line 963 "conf_parser.y" /* yacc.c:1646  */
3485      {
3486 <  if (conf_parser_ctx.pass == 2)
3952 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
3953 <            sizeof(ConfigLoggingEntry.killlog));
3486 >  block_state.size.value = (yyvsp[-1].number);
3487   }
3488 + #line 3489 "conf_parser.c" /* yacc.c:1646  */
3489      break;
3490  
3491 <  case 117:
3491 >  case 133:
3492 > #line 966 "conf_parser.y" /* yacc.c:1646  */
3493 >    {
3494 >  block_state.size.value = 0;
3495 > }
3496 > #line 3497 "conf_parser.c" /* yacc.c:1646  */
3497 >    break;
3498  
3499 < /* Line 1806 of yacc.c  */
3500 < #line 889 "ircd_parser.y"
3501 <    {
3499 >  case 134:
3500 > #line 971 "conf_parser.y" /* yacc.c:1646  */
3501 >    {
3502    if (conf_parser_ctx.pass == 2)
3503 <    set_log_level(L_CRIT);
3503 >    block_state.type.value = 0;
3504   }
3505 + #line 3506 "conf_parser.c" /* yacc.c:1646  */
3506      break;
3507  
3508 <  case 118:
3509 <
3969 < /* Line 1806 of yacc.c  */
3970 < #line 893 "ircd_parser.y"
3508 >  case 138:
3509 > #line 978 "conf_parser.y" /* yacc.c:1646  */
3510      {
3511    if (conf_parser_ctx.pass == 2)
3512 <    set_log_level(L_ERROR);
3512 >    block_state.type.value = LOG_TYPE_USER;
3513   }
3514 + #line 3515 "conf_parser.c" /* yacc.c:1646  */
3515      break;
3516  
3517 <  case 119:
3518 <
3979 < /* Line 1806 of yacc.c  */
3980 < #line 897 "ircd_parser.y"
3517 >  case 139:
3518 > #line 982 "conf_parser.y" /* yacc.c:1646  */
3519      {
3520    if (conf_parser_ctx.pass == 2)
3521 <    set_log_level(L_WARN);
3521 >    block_state.type.value = LOG_TYPE_OPER;
3522   }
3523 + #line 3524 "conf_parser.c" /* yacc.c:1646  */
3524      break;
3525  
3526 <  case 120:
3527 <
3989 < /* Line 1806 of yacc.c  */
3990 < #line 901 "ircd_parser.y"
3526 >  case 140:
3527 > #line 986 "conf_parser.y" /* yacc.c:1646  */
3528      {
3529    if (conf_parser_ctx.pass == 2)
3530 <    set_log_level(L_NOTICE);
3530 >    block_state.type.value = LOG_TYPE_GLINE;
3531   }
3532 + #line 3533 "conf_parser.c" /* yacc.c:1646  */
3533      break;
3534  
3535 <  case 121:
3536 <
3999 < /* Line 1806 of yacc.c  */
4000 < #line 905 "ircd_parser.y"
3535 >  case 141:
3536 > #line 990 "conf_parser.y" /* yacc.c:1646  */
3537      {
3538    if (conf_parser_ctx.pass == 2)
3539 <    set_log_level(L_TRACE);
3539 >    block_state.type.value = LOG_TYPE_XLINE;
3540   }
3541 + #line 3542 "conf_parser.c" /* yacc.c:1646  */
3542      break;
3543  
3544 <  case 122:
3545 <
4009 < /* Line 1806 of yacc.c  */
4010 < #line 909 "ircd_parser.y"
3544 >  case 142:
3545 > #line 994 "conf_parser.y" /* yacc.c:1646  */
3546      {
3547    if (conf_parser_ctx.pass == 2)
3548 <    set_log_level(L_INFO);
3548 >    block_state.type.value = LOG_TYPE_RESV;
3549   }
3550 + #line 3551 "conf_parser.c" /* yacc.c:1646  */
3551      break;
3552  
3553 <  case 123:
3554 <
4019 < /* Line 1806 of yacc.c  */
4020 < #line 913 "ircd_parser.y"
3553 >  case 143:
3554 > #line 998 "conf_parser.y" /* yacc.c:1646  */
3555      {
3556    if (conf_parser_ctx.pass == 2)
3557 <    set_log_level(L_DEBUG);
3557 >    block_state.type.value = LOG_TYPE_DLINE;
3558   }
3559 + #line 3560 "conf_parser.c" /* yacc.c:1646  */
3560      break;
3561  
3562 <  case 124:
3563 <
4029 < /* Line 1806 of yacc.c  */
4030 < #line 919 "ircd_parser.y"
3562 >  case 144:
3563 > #line 1002 "conf_parser.y" /* yacc.c:1646  */
3564      {
3565    if (conf_parser_ctx.pass == 2)
3566 <    ConfigLoggingEntry.use_logging = yylval.number;
3566 >    block_state.type.value = LOG_TYPE_KLINE;
3567   }
3568 + #line 3569 "conf_parser.c" /* yacc.c:1646  */
3569      break;
3570  
3571 <  case 125:
3572 <
4039 < /* Line 1806 of yacc.c  */
4040 < #line 928 "ircd_parser.y"
3571 >  case 145:
3572 > #line 1006 "conf_parser.y" /* yacc.c:1646  */
3573      {
3574    if (conf_parser_ctx.pass == 2)
3575 <  {
4044 <    yy_conf = make_conf_item(OPER_TYPE);
4045 <    yy_aconf = map_to_conf(yy_conf);
4046 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
4047 <  }
4048 <  else
4049 <  {
4050 <    MyFree(class_name);
4051 <    class_name = NULL;
4052 <  }
3575 >    block_state.type.value = LOG_TYPE_KILL;
3576   }
3577 + #line 3578 "conf_parser.c" /* yacc.c:1646  */
3578      break;
3579  
3580 <  case 126:
3581 <
4058 < /* Line 1806 of yacc.c  */
4059 < #line 941 "ircd_parser.y"
3580 >  case 146:
3581 > #line 1010 "conf_parser.y" /* yacc.c:1646  */
3582      {
3583    if (conf_parser_ctx.pass == 2)
3584 <  {
3585 <    struct CollectItem *yy_tmp;
3586 <    dlink_node *ptr;
3587 <    dlink_node *next_ptr;
3584 >    block_state.type.value = LOG_TYPE_DEBUG;
3585 > }
3586 > #line 3587 "conf_parser.c" /* yacc.c:1646  */
3587 >    break;
3588  
3589 <    conf_add_class_to_conf(yy_conf, class_name);
3589 >  case 147:
3590 > #line 1020 "conf_parser.y" /* yacc.c:1646  */
3591 >    {
3592 >  if (conf_parser_ctx.pass != 2)
3593 >    break;
3594  
3595 <    /* Now, make sure there is a copy of the "base" given oper
3596 <     * block in each of the collected copies
3597 <     */
3595 >  reset_block_state();
3596 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3597 > }
3598 > #line 3599 "conf_parser.c" /* yacc.c:1646  */
3599 >    break;
3600  
3601 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3601 >  case 148:
3602 > #line 1027 "conf_parser.y" /* yacc.c:1646  */
3603      {
3604 <      struct AccessItem *new_aconf;
4076 <      struct ConfItem *new_conf;
4077 <      yy_tmp = ptr->data;
3604 >  dlink_node *ptr = NULL;
3605  
3606 <      new_conf = make_conf_item(OPER_TYPE);
3607 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3606 >  if (conf_parser_ctx.pass != 2)
3607 >    break;
3608  
3609 <      new_aconf->flags = yy_aconf->flags;
3609 >  if (!block_state.name.buf[0])
3610 >    break;
3611 > #ifdef HAVE_LIBCRYPTO
3612 >  if (!block_state.file.buf[0] &&
3613 >      !block_state.rpass.buf[0])
3614 >    break;
3615 > #else
3616 >  if (!block_state.rpass.buf[0])
3617 >    break;
3618 > #endif
3619  
3620 <      if (yy_conf->name != NULL)
3621 <        DupString(new_conf->name, yy_conf->name);
3622 <      if (yy_tmp->user != NULL)
3623 <        DupString(new_aconf->user, yy_tmp->user);
4088 <      else
4089 <        DupString(new_aconf->user, "*");
4090 <      if (yy_tmp->host != NULL)
4091 <        DupString(new_aconf->host, yy_tmp->host);
4092 <      else
4093 <        DupString(new_aconf->host, "*");
4094 <      conf_add_class_to_conf(new_conf, class_name);
4095 <      if (yy_aconf->passwd != NULL)
4096 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3620 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3621 >  {
3622 >    struct MaskItem *conf = NULL;
3623 >    struct split_nuh_item nuh;
3624  
3625 <      new_aconf->port = yy_aconf->port;
3626 < #ifdef HAVE_LIBCRYPTO
3627 <      if (yy_aconf->rsa_public_key_file != NULL)
3628 <      {
3629 <        BIO *file;
3625 >    nuh.nuhmask  = ptr->data;
3626 >    nuh.nickptr  = NULL;
3627 >    nuh.userptr  = block_state.user.buf;
3628 >    nuh.hostptr  = block_state.host.buf;
3629 >    nuh.nicksize = 0;
3630 >    nuh.usersize = sizeof(block_state.user.buf);
3631 >    nuh.hostsize = sizeof(block_state.host.buf);
3632 >    split_nuh(&nuh);
3633  
3634 <        DupString(new_aconf->rsa_public_key_file,
3635 <                  yy_aconf->rsa_public_key_file);
3634 >    conf         = conf_make(CONF_OPER);
3635 >    conf->name   = xstrdup(block_state.name.buf);
3636 >    conf->user   = xstrdup(block_state.user.buf);
3637 >    conf->host   = xstrdup(block_state.host.buf);
3638 >
3639 >    if (block_state.cert.buf[0])
3640 >      conf->certfp = xstrdup(block_state.cert.buf);
3641 >
3642 >    if (block_state.rpass.buf[0])
3643 >      conf->passwd = xstrdup(block_state.rpass.buf);
3644 >
3645 >    conf->flags = block_state.flags.value;
3646 >    conf->modes = block_state.modes.value;
3647 >    conf->port  = block_state.port.value;
3648 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3649  
3650 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4108 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4109 <                                                           NULL, 0, NULL);
4110 <        BIO_set_close(file, BIO_CLOSE);
4111 <        BIO_free(file);
4112 <      }
4113 < #endif
3650 >    conf_add_class_to_conf(conf, block_state.class.buf);
3651  
3652   #ifdef HAVE_LIBCRYPTO
3653 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3654 <          && yy_tmp->host)
3655 < #else
3656 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3657 < #endif
3653 >    if (block_state.file.buf[0])
3654 >    {
3655 >      BIO *file = NULL;
3656 >      RSA *pkey = NULL;
3657 >
3658 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3659        {
3660 <        conf_add_class_to_conf(new_conf, class_name);
3661 <        if (yy_tmp->name != NULL)
4124 <          DupString(new_conf->name, yy_tmp->name);
3660 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3661 >        break;
3662        }
3663  
3664 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3665 <      free_collect_item(yy_tmp);
4129 <    }
4130 <
4131 <    yy_conf = NULL;
4132 <    yy_aconf = NULL;
3664 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3665 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3666  
3667 <
3668 <    MyFree(class_name);
3669 <    class_name = NULL;
3667 >      conf->rsa_public_key = pkey;
3668 >      BIO_set_close(file, BIO_CLOSE);
3669 >      BIO_free(file);
3670 >    }
3671 > #endif /* HAVE_LIBCRYPTO */
3672    }
3673   }
3674 + #line 3675 "conf_parser.c" /* yacc.c:1646  */
3675      break;
3676  
3677 <  case 140:
3678 <
4143 < /* Line 1806 of yacc.c  */
4144 < #line 1028 "ircd_parser.y"
3677 >  case 162:
3678 > #line 1107 "conf_parser.y" /* yacc.c:1646  */
3679      {
3680    if (conf_parser_ctx.pass == 2)
3681 <  {
4148 <    if (strlen(yylval.string) > OPERNICKLEN)
4149 <      yylval.string[OPERNICKLEN] = '\0';
4150 <
4151 <    MyFree(yy_conf->name);
4152 <    DupString(yy_conf->name, yylval.string);
4153 <  }
3681 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3682   }
3683 + #line 3684 "conf_parser.c" /* yacc.c:1646  */
3684      break;
3685  
3686 <  case 141:
3687 <
4159 < /* Line 1806 of yacc.c  */
4160 < #line 1040 "ircd_parser.y"
3686 >  case 163:
3687 > #line 1113 "conf_parser.y" /* yacc.c:1646  */
3688      {
3689    if (conf_parser_ctx.pass == 2)
3690 <  {
4164 <    if (strlen(yylval.string) > OPERNICKLEN)
4165 <      yylval.string[OPERNICKLEN] = '\0';
4166 <
4167 <    MyFree(yy_conf->name);
4168 <    DupString(yy_conf->name, yylval.string);
4169 <  }
3690 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3691   }
3692 + #line 3693 "conf_parser.c" /* yacc.c:1646  */
3693      break;
3694  
3695 <  case 142:
3696 <
4175 < /* Line 1806 of yacc.c  */
4176 < #line 1052 "ircd_parser.y"
3695 >  case 164:
3696 > #line 1119 "conf_parser.y" /* yacc.c:1646  */
3697      {
3698    if (conf_parser_ctx.pass == 2)
3699 <  {
3700 <    struct split_nuh_item nuh;
3701 <
3702 <    nuh.nuhmask  = yylval.string;
4183 <    nuh.nickptr  = NULL;
4184 <    nuh.userptr  = userbuf;
4185 <    nuh.hostptr  = hostbuf;
3699 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3700 > }
3701 > #line 3702 "conf_parser.c" /* yacc.c:1646  */
3702 >    break;
3703  
3704 <    nuh.nicksize = 0;
3705 <    nuh.usersize = sizeof(userbuf);
3706 <    nuh.hostsize = sizeof(hostbuf);
3704 >  case 165:
3705 > #line 1125 "conf_parser.y" /* yacc.c:1646  */
3706 >    {
3707 >  if (conf_parser_ctx.pass != 2)
3708 >    break;
3709  
3710 <    split_nuh(&nuh);
3710 >  if (yylval.number)
3711 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3712 >  else
3713 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3714 > }
3715 > #line 3716 "conf_parser.c" /* yacc.c:1646  */
3716 >    break;
3717  
3718 <    if (yy_aconf->user == NULL)
3718 >  case 166:
3719 > #line 1136 "conf_parser.y" /* yacc.c:1646  */
3720      {
3721 <      DupString(yy_aconf->user, userbuf);
3722 <      DupString(yy_aconf->host, hostbuf);
3723 <    }
3724 <    else
3721 >  if (conf_parser_ctx.pass == 2)
3722 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3723 > }
3724 > #line 3725 "conf_parser.c" /* yacc.c:1646  */
3725 >    break;
3726 >
3727 >  case 167:
3728 > #line 1142 "conf_parser.y" /* yacc.c:1646  */
3729      {
3730 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3730 >  if (conf_parser_ctx.pass == 2)
3731 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3732 > }
3733 > #line 3734 "conf_parser.c" /* yacc.c:1646  */
3734 >    break;
3735  
3736 <      DupString(yy_tmp->user, userbuf);
3737 <      DupString(yy_tmp->host, hostbuf);
3736 >  case 168:
3737 > #line 1148 "conf_parser.y" /* yacc.c:1646  */
3738 >    {
3739 >  if (conf_parser_ctx.pass != 2)
3740 >    break;
3741  
3742 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3743 <    }
3744 <  }
3742 >  if (yylval.number)
3743 >    block_state.flags.value |= CONF_FLAGS_SSL;
3744 >  else
3745 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3746   }
3747 + #line 3748 "conf_parser.c" /* yacc.c:1646  */
3748      break;
3749  
3750 <  case 143:
3751 <
4213 < /* Line 1806 of yacc.c  */
4214 < #line 1086 "ircd_parser.y"
3750 >  case 169:
3751 > #line 1159 "conf_parser.y" /* yacc.c:1646  */
3752      {
3753    if (conf_parser_ctx.pass == 2)
3754 <  {
4218 <    if (yy_aconf->passwd != NULL)
4219 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4220 <
4221 <    MyFree(yy_aconf->passwd);
4222 <    DupString(yy_aconf->passwd, yylval.string);
4223 <  }
3754 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3755   }
3756 + #line 3757 "conf_parser.c" /* yacc.c:1646  */
3757      break;
3758  
3759 <  case 144:
3760 <
4229 < /* Line 1806 of yacc.c  */
4230 < #line 1098 "ircd_parser.y"
3759 >  case 170:
3760 > #line 1165 "conf_parser.y" /* yacc.c:1646  */
3761      {
3762    if (conf_parser_ctx.pass == 2)
3763 <  {
4234 <    if (yylval.number)
4235 <      SetConfEncrypted(yy_aconf);
4236 <    else
4237 <      ClearConfEncrypted(yy_aconf);
4238 <  }
3763 >    block_state.modes.value = 0;
3764   }
3765 + #line 3766 "conf_parser.c" /* yacc.c:1646  */
3766      break;
3767  
3768 <  case 145:
3769 <
4244 < /* Line 1806 of yacc.c  */
4245 < #line 1109 "ircd_parser.y"
3768 >  case 174:
3769 > #line 1172 "conf_parser.y" /* yacc.c:1646  */
3770      {
4247 #ifdef HAVE_LIBCRYPTO
3771    if (conf_parser_ctx.pass == 2)
3772 <  {
3773 <    BIO *file;
3772 >    block_state.modes.value |= UMODE_BOTS;
3773 > }
3774 > #line 3775 "conf_parser.c" /* yacc.c:1646  */
3775 >    break;
3776  
3777 <    if (yy_aconf->rsa_public_key != NULL)
3777 >  case 175:
3778 > #line 1176 "conf_parser.y" /* yacc.c:1646  */
3779      {
3780 <      RSA_free(yy_aconf->rsa_public_key);
3781 <      yy_aconf->rsa_public_key = NULL;
3782 <    }
3780 >  if (conf_parser_ctx.pass == 2)
3781 >    block_state.modes.value |= UMODE_CCONN;
3782 > }
3783 > #line 3784 "conf_parser.c" /* yacc.c:1646  */
3784 >    break;
3785  
3786 <    if (yy_aconf->rsa_public_key_file != NULL)
3786 >  case 176:
3787 > #line 1180 "conf_parser.y" /* yacc.c:1646  */
3788      {
3789 <      MyFree(yy_aconf->rsa_public_key_file);
3790 <      yy_aconf->rsa_public_key_file = NULL;
3791 <    }
3792 <
3793 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4265 <    file = BIO_new_file(yylval.string, "r");
3789 >  if (conf_parser_ctx.pass == 2)
3790 >    block_state.modes.value |= UMODE_DEAF;
3791 > }
3792 > #line 3793 "conf_parser.c" /* yacc.c:1646  */
3793 >    break;
3794  
3795 <    if (file == NULL)
3795 >  case 177:
3796 > #line 1184 "conf_parser.y" /* yacc.c:1646  */
3797      {
3798 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3799 <      break;
3800 <    }
3801 <
3802 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3798 >  if (conf_parser_ctx.pass == 2)
3799 >    block_state.modes.value |= UMODE_DEBUG;
3800 > }
3801 > #line 3802 "conf_parser.c" /* yacc.c:1646  */
3802 >    break;
3803  
3804 <    if (yy_aconf->rsa_public_key == NULL)
3804 >  case 178:
3805 > #line 1188 "conf_parser.y" /* yacc.c:1646  */
3806      {
3807 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3808 <      break;
4279 <    }
4280 <
4281 <    BIO_set_close(file, BIO_CLOSE);
4282 <    BIO_free(file);
4283 <  }
4284 < #endif /* HAVE_LIBCRYPTO */
3807 >  if (conf_parser_ctx.pass == 2)
3808 >    block_state.modes.value |= UMODE_FULL;
3809   }
3810 + #line 3811 "conf_parser.c" /* yacc.c:1646  */
3811      break;
3812  
3813 <  case 146:
3814 <
4290 < /* Line 1806 of yacc.c  */
4291 < #line 1151 "ircd_parser.y"
3813 >  case 179:
3814 > #line 1192 "conf_parser.y" /* yacc.c:1646  */
3815      {
3816    if (conf_parser_ctx.pass == 2)
3817 <  {
4295 <    MyFree(class_name);
4296 <    DupString(class_name, yylval.string);
4297 <  }
3817 >    block_state.modes.value |= UMODE_HIDDEN;
3818   }
3819 + #line 3820 "conf_parser.c" /* yacc.c:1646  */
3820      break;
3821  
3822 <  case 147:
3823 <
4303 < /* Line 1806 of yacc.c  */
4304 < #line 1160 "ircd_parser.y"
3822 >  case 180:
3823 > #line 1196 "conf_parser.y" /* yacc.c:1646  */
3824      {
3825    if (conf_parser_ctx.pass == 2)
3826 <    yy_aconf->modes = 0;
3826 >    block_state.modes.value |= UMODE_SKILL;
3827   }
3828 + #line 3829 "conf_parser.c" /* yacc.c:1646  */
3829      break;
3830  
3831 <  case 151:
3832 <
4313 < /* Line 1806 of yacc.c  */
4314 < #line 1167 "ircd_parser.y"
3831 >  case 181:
3832 > #line 1200 "conf_parser.y" /* yacc.c:1646  */
3833      {
3834    if (conf_parser_ctx.pass == 2)
3835 <    yy_aconf->modes |= UMODE_BOTS;
3835 >    block_state.modes.value |= UMODE_NCHANGE;
3836   }
3837 + #line 3838 "conf_parser.c" /* yacc.c:1646  */
3838      break;
3839  
3840 <  case 152:
3841 <
4323 < /* Line 1806 of yacc.c  */
4324 < #line 1171 "ircd_parser.y"
3840 >  case 182:
3841 > #line 1204 "conf_parser.y" /* yacc.c:1646  */
3842      {
3843    if (conf_parser_ctx.pass == 2)
3844 <    yy_aconf->modes |= UMODE_CCONN;
3844 >    block_state.modes.value |= UMODE_REJ;
3845   }
3846 + #line 3847 "conf_parser.c" /* yacc.c:1646  */
3847      break;
3848  
3849 <  case 153:
3850 <
4333 < /* Line 1806 of yacc.c  */
4334 < #line 1175 "ircd_parser.y"
3849 >  case 183:
3850 > #line 1208 "conf_parser.y" /* yacc.c:1646  */
3851      {
3852    if (conf_parser_ctx.pass == 2)
3853 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3853 >    block_state.modes.value |= UMODE_UNAUTH;
3854   }
3855 + #line 3856 "conf_parser.c" /* yacc.c:1646  */
3856      break;
3857  
3858 <  case 154:
3859 <
4343 < /* Line 1806 of yacc.c  */
4344 < #line 1179 "ircd_parser.y"
3858 >  case 184:
3859 > #line 1212 "conf_parser.y" /* yacc.c:1646  */
3860      {
3861    if (conf_parser_ctx.pass == 2)
3862 <    yy_aconf->modes |= UMODE_DEAF;
3862 >    block_state.modes.value |= UMODE_SPY;
3863   }
3864 + #line 3865 "conf_parser.c" /* yacc.c:1646  */
3865      break;
3866  
3867 <  case 155:
3868 <
4353 < /* Line 1806 of yacc.c  */
4354 < #line 1183 "ircd_parser.y"
3867 >  case 185:
3868 > #line 1216 "conf_parser.y" /* yacc.c:1646  */
3869      {
3870    if (conf_parser_ctx.pass == 2)
3871 <    yy_aconf->modes |= UMODE_DEBUG;
3871 >    block_state.modes.value |= UMODE_EXTERNAL;
3872   }
3873 + #line 3874 "conf_parser.c" /* yacc.c:1646  */
3874      break;
3875  
3876 <  case 156:
3877 <
4363 < /* Line 1806 of yacc.c  */
4364 < #line 1187 "ircd_parser.y"
3876 >  case 186:
3877 > #line 1220 "conf_parser.y" /* yacc.c:1646  */
3878      {
3879    if (conf_parser_ctx.pass == 2)
3880 <    yy_aconf->modes |= UMODE_FULL;
3880 >    block_state.modes.value |= UMODE_OPERWALL;
3881   }
3882 + #line 3883 "conf_parser.c" /* yacc.c:1646  */
3883      break;
3884  
3885 <  case 157:
3886 <
4373 < /* Line 1806 of yacc.c  */
4374 < #line 1191 "ircd_parser.y"
3885 >  case 187:
3886 > #line 1224 "conf_parser.y" /* yacc.c:1646  */
3887      {
3888    if (conf_parser_ctx.pass == 2)
3889 <    yy_aconf->modes |= UMODE_SKILL;
3889 >    block_state.modes.value |= UMODE_SERVNOTICE;
3890   }
3891 + #line 3892 "conf_parser.c" /* yacc.c:1646  */
3892      break;
3893  
3894 <  case 158:
3895 <
4383 < /* Line 1806 of yacc.c  */
4384 < #line 1195 "ircd_parser.y"
3894 >  case 188:
3895 > #line 1228 "conf_parser.y" /* yacc.c:1646  */
3896      {
3897    if (conf_parser_ctx.pass == 2)
3898 <    yy_aconf->modes |= UMODE_NCHANGE;
3898 >    block_state.modes.value |= UMODE_INVISIBLE;
3899   }
3900 + #line 3901 "conf_parser.c" /* yacc.c:1646  */
3901      break;
3902  
3903 <  case 159:
3904 <
4393 < /* Line 1806 of yacc.c  */
4394 < #line 1199 "ircd_parser.y"
3903 >  case 189:
3904 > #line 1232 "conf_parser.y" /* yacc.c:1646  */
3905      {
3906    if (conf_parser_ctx.pass == 2)
3907 <    yy_aconf->modes |= UMODE_REJ;
3907 >    block_state.modes.value |= UMODE_WALLOP;
3908   }
3909 + #line 3910 "conf_parser.c" /* yacc.c:1646  */
3910      break;
3911  
3912 <  case 160:
3913 <
4403 < /* Line 1806 of yacc.c  */
4404 < #line 1203 "ircd_parser.y"
3912 >  case 190:
3913 > #line 1236 "conf_parser.y" /* yacc.c:1646  */
3914      {
3915    if (conf_parser_ctx.pass == 2)
3916 <    yy_aconf->modes |= UMODE_UNAUTH;
3916 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3917   }
3918 + #line 3919 "conf_parser.c" /* yacc.c:1646  */
3919      break;
3920  
3921 <  case 161:
3922 <
4413 < /* Line 1806 of yacc.c  */
4414 < #line 1207 "ircd_parser.y"
3921 >  case 191:
3922 > #line 1240 "conf_parser.y" /* yacc.c:1646  */
3923      {
3924    if (conf_parser_ctx.pass == 2)
3925 <    yy_aconf->modes |= UMODE_SPY;
3925 >    block_state.modes.value |= UMODE_CALLERID;
3926   }
3927 + #line 3928 "conf_parser.c" /* yacc.c:1646  */
3928      break;
3929  
3930 <  case 162:
3931 <
4423 < /* Line 1806 of yacc.c  */
4424 < #line 1211 "ircd_parser.y"
3930 >  case 192:
3931 > #line 1244 "conf_parser.y" /* yacc.c:1646  */
3932      {
3933    if (conf_parser_ctx.pass == 2)
3934 <    yy_aconf->modes |= UMODE_EXTERNAL;
3934 >    block_state.modes.value |= UMODE_LOCOPS;
3935   }
3936 + #line 3937 "conf_parser.c" /* yacc.c:1646  */
3937      break;
3938  
3939 <  case 163:
3940 <
4433 < /* Line 1806 of yacc.c  */
4434 < #line 1215 "ircd_parser.y"
3939 >  case 193:
3940 > #line 1248 "conf_parser.y" /* yacc.c:1646  */
3941      {
3942    if (conf_parser_ctx.pass == 2)
3943 <    yy_aconf->modes |= UMODE_OPERWALL;
3943 >    block_state.modes.value |= UMODE_REGONLY;
3944   }
3945 + #line 3946 "conf_parser.c" /* yacc.c:1646  */
3946      break;
3947  
3948 <  case 164:
3949 <
4443 < /* Line 1806 of yacc.c  */
4444 < #line 1219 "ircd_parser.y"
3948 >  case 194:
3949 > #line 1252 "conf_parser.y" /* yacc.c:1646  */
3950      {
3951    if (conf_parser_ctx.pass == 2)
3952 <    yy_aconf->modes |= UMODE_SERVNOTICE;
3952 >    block_state.modes.value |= UMODE_FARCONNECT;
3953   }
3954 + #line 3955 "conf_parser.c" /* yacc.c:1646  */
3955      break;
3956  
3957 <  case 165:
3958 <
4453 < /* Line 1806 of yacc.c  */
4454 < #line 1223 "ircd_parser.y"
3957 >  case 195:
3958 > #line 1258 "conf_parser.y" /* yacc.c:1646  */
3959      {
3960    if (conf_parser_ctx.pass == 2)
3961 <    yy_aconf->modes |= UMODE_INVISIBLE;
3961 >    block_state.port.value = 0;
3962   }
3963 + #line 3964 "conf_parser.c" /* yacc.c:1646  */
3964      break;
3965  
3966 <  case 166:
3967 <
4463 < /* Line 1806 of yacc.c  */
4464 < #line 1227 "ircd_parser.y"
3966 >  case 199:
3967 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
3968      {
3969    if (conf_parser_ctx.pass == 2)
3970 <    yy_aconf->modes |= UMODE_WALLOP;
3970 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3971   }
3972 + #line 3973 "conf_parser.c" /* yacc.c:1646  */
3973      break;
3974  
3975 <  case 167:
3976 <
4473 < /* Line 1806 of yacc.c  */
4474 < #line 1231 "ircd_parser.y"
3975 >  case 200:
3976 > #line 1269 "conf_parser.y" /* yacc.c:1646  */
3977      {
3978    if (conf_parser_ctx.pass == 2)
3979 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
3979 >    block_state.port.value |= OPER_FLAG_KILL;
3980   }
3981 + #line 3982 "conf_parser.c" /* yacc.c:1646  */
3982      break;
3983  
3984 <  case 168:
3985 <
4483 < /* Line 1806 of yacc.c  */
4484 < #line 1235 "ircd_parser.y"
3984 >  case 201:
3985 > #line 1273 "conf_parser.y" /* yacc.c:1646  */
3986      {
3987    if (conf_parser_ctx.pass == 2)
3988 <    yy_aconf->modes |= UMODE_CALLERID;
3988 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3989   }
3990 + #line 3991 "conf_parser.c" /* yacc.c:1646  */
3991      break;
3992  
3993 <  case 169:
3994 <
4493 < /* Line 1806 of yacc.c  */
4494 < #line 1239 "ircd_parser.y"
3993 >  case 202:
3994 > #line 1277 "conf_parser.y" /* yacc.c:1646  */
3995      {
3996    if (conf_parser_ctx.pass == 2)
3997 <    yy_aconf->modes |= UMODE_LOCOPS;
3997 >    block_state.port.value |= OPER_FLAG_CONNECT;
3998   }
3999 + #line 4000 "conf_parser.c" /* yacc.c:1646  */
4000      break;
4001  
4002 <  case 170:
4003 <
4503 < /* Line 1806 of yacc.c  */
4504 < #line 1245 "ircd_parser.y"
4002 >  case 203:
4003 > #line 1281 "conf_parser.y" /* yacc.c:1646  */
4004      {
4005 +  if (conf_parser_ctx.pass == 2)
4006 +    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4007   }
4008 + #line 4009 "conf_parser.c" /* yacc.c:1646  */
4009      break;
4010  
4011 <  case 174:
4012 <
4013 < /* Line 1806 of yacc.c  */
4014 < #line 1249 "ircd_parser.y"
4015 <    { not_atom = 1; }
4011 >  case 204:
4012 > #line 1285 "conf_parser.y" /* yacc.c:1646  */
4013 >    {
4014 >  if (conf_parser_ctx.pass == 2)
4015 >    block_state.port.value |= OPER_FLAG_SQUIT;
4016 > }
4017 > #line 4018 "conf_parser.c" /* yacc.c:1646  */
4018      break;
4019  
4020 <  case 176:
4021 <
4022 < /* Line 1806 of yacc.c  */
4023 < #line 1250 "ircd_parser.y"
4024 <    { not_atom = 0; }
4020 >  case 205:
4021 > #line 1289 "conf_parser.y" /* yacc.c:1646  */
4022 >    {
4023 >  if (conf_parser_ctx.pass == 2)
4024 >    block_state.port.value |= OPER_FLAG_K;
4025 > }
4026 > #line 4027 "conf_parser.c" /* yacc.c:1646  */
4027      break;
4028  
4029 <  case 178:
4030 <
4525 < /* Line 1806 of yacc.c  */
4526 < #line 1253 "ircd_parser.y"
4029 >  case 206:
4030 > #line 1293 "conf_parser.y" /* yacc.c:1646  */
4031      {
4032    if (conf_parser_ctx.pass == 2)
4033 <  {
4530 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4531 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4532 <  }
4033 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4034   }
4035 + #line 4036 "conf_parser.c" /* yacc.c:1646  */
4036      break;
4037  
4038 <  case 179:
4039 <
4538 < /* Line 1806 of yacc.c  */
4539 < #line 1260 "ircd_parser.y"
4038 >  case 207:
4039 > #line 1297 "conf_parser.y" /* yacc.c:1646  */
4040      {
4041    if (conf_parser_ctx.pass == 2)
4042 <  {
4543 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4544 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4545 <  }
4042 >    block_state.port.value |= OPER_FLAG_DLINE;
4043   }
4044 + #line 4045 "conf_parser.c" /* yacc.c:1646  */
4045      break;
4046  
4047 <  case 180:
4048 <
4551 < /* Line 1806 of yacc.c  */
4552 < #line 1267 "ircd_parser.y"
4047 >  case 208:
4048 > #line 1301 "conf_parser.y" /* yacc.c:1646  */
4049      {
4050    if (conf_parser_ctx.pass == 2)
4051 <  {
4556 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4557 <    else yy_aconf->port |= OPER_FLAG_K;
4558 <  }
4051 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4052   }
4053 + #line 4054 "conf_parser.c" /* yacc.c:1646  */
4054      break;
4055  
4056 <  case 181:
4057 <
4564 < /* Line 1806 of yacc.c  */
4565 < #line 1274 "ircd_parser.y"
4056 >  case 209:
4057 > #line 1305 "conf_parser.y" /* yacc.c:1646  */
4058      {
4059    if (conf_parser_ctx.pass == 2)
4060 <  {
4569 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4570 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4571 <  }
4060 >    block_state.port.value |= OPER_FLAG_XLINE;
4061   }
4062 + #line 4063 "conf_parser.c" /* yacc.c:1646  */
4063      break;
4064  
4065 <  case 182:
4066 <
4577 < /* Line 1806 of yacc.c  */
4578 < #line 1281 "ircd_parser.y"
4065 >  case 210:
4066 > #line 1309 "conf_parser.y" /* yacc.c:1646  */
4067      {
4068    if (conf_parser_ctx.pass == 2)
4069 <  {
4582 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4583 <    else yy_aconf->port |= OPER_FLAG_X;
4584 <  }
4069 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4070   }
4071 + #line 4072 "conf_parser.c" /* yacc.c:1646  */
4072      break;
4073  
4074 <  case 183:
4075 <
4590 < /* Line 1806 of yacc.c  */
4591 < #line 1288 "ircd_parser.y"
4074 >  case 211:
4075 > #line 1313 "conf_parser.y" /* yacc.c:1646  */
4076      {
4077    if (conf_parser_ctx.pass == 2)
4078 <  {
4595 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4596 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4597 <  }
4078 >    block_state.port.value |= OPER_FLAG_GLINE;
4079   }
4080 + #line 4081 "conf_parser.c" /* yacc.c:1646  */
4081      break;
4082  
4083 <  case 184:
4084 <
4603 < /* Line 1806 of yacc.c  */
4604 < #line 1295 "ircd_parser.y"
4083 >  case 212:
4084 > #line 1317 "conf_parser.y" /* yacc.c:1646  */
4085      {
4086    if (conf_parser_ctx.pass == 2)
4087 <  {
4608 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4609 <    else yy_aconf->port |= OPER_FLAG_DIE;
4610 <  }
4087 >    block_state.port.value |= OPER_FLAG_DIE;
4088   }
4089 + #line 4090 "conf_parser.c" /* yacc.c:1646  */
4090      break;
4091  
4092 <  case 185:
4093 <
4616 < /* Line 1806 of yacc.c  */
4617 < #line 1302 "ircd_parser.y"
4092 >  case 213:
4093 > #line 1321 "conf_parser.y" /* yacc.c:1646  */
4094      {
4095    if (conf_parser_ctx.pass == 2)
4096 <  {
4621 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4622 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4623 <  }
4096 >    block_state.port.value |= OPER_FLAG_RESTART;
4097   }
4098 + #line 4099 "conf_parser.c" /* yacc.c:1646  */
4099      break;
4100  
4101 <  case 186:
4102 <
4629 < /* Line 1806 of yacc.c  */
4630 < #line 1309 "ircd_parser.y"
4101 >  case 214:
4102 > #line 1325 "conf_parser.y" /* yacc.c:1646  */
4103      {
4104    if (conf_parser_ctx.pass == 2)
4105 <  {
4634 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4635 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4636 <  }
4105 >    block_state.port.value |= OPER_FLAG_REHASH;
4106   }
4107 + #line 4108 "conf_parser.c" /* yacc.c:1646  */
4108      break;
4109  
4110 <  case 187:
4111 <
4642 < /* Line 1806 of yacc.c  */
4643 < #line 1316 "ircd_parser.y"
4110 >  case 215:
4111 > #line 1329 "conf_parser.y" /* yacc.c:1646  */
4112      {
4113    if (conf_parser_ctx.pass == 2)
4114 <  {
4647 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4648 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4649 <  }
4114 >    block_state.port.value |= OPER_FLAG_ADMIN;
4115   }
4116 + #line 4117 "conf_parser.c" /* yacc.c:1646  */
4117      break;
4118  
4119 <  case 188:
4120 <
4655 < /* Line 1806 of yacc.c  */
4656 < #line 1323 "ircd_parser.y"
4119 >  case 216:
4120 > #line 1333 "conf_parser.y" /* yacc.c:1646  */
4121      {
4122    if (conf_parser_ctx.pass == 2)
4123 <  {
4660 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4661 <    else yy_aconf->port |= OPER_FLAG_N;
4662 <  }
4123 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4124   }
4125 + #line 4126 "conf_parser.c" /* yacc.c:1646  */
4126      break;
4127  
4128 <  case 189:
4129 <
4668 < /* Line 1806 of yacc.c  */
4669 < #line 1330 "ircd_parser.y"
4128 >  case 217:
4129 > #line 1337 "conf_parser.y" /* yacc.c:1646  */
4130      {
4131    if (conf_parser_ctx.pass == 2)
4132 <  {
4673 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4674 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
4675 <  }
4132 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4133   }
4134 + #line 4135 "conf_parser.c" /* yacc.c:1646  */
4135      break;
4136  
4137 <  case 190:
4138 <
4681 < /* Line 1806 of yacc.c  */
4682 < #line 1337 "ircd_parser.y"
4137 >  case 218:
4138 > #line 1341 "conf_parser.y" /* yacc.c:1646  */
4139      {
4140    if (conf_parser_ctx.pass == 2)
4141 <  {
4686 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
4687 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
4688 <  }
4141 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4142   }
4143 + #line 4144 "conf_parser.c" /* yacc.c:1646  */
4144      break;
4145  
4146 <  case 191:
4147 <
4694 < /* Line 1806 of yacc.c  */
4695 < #line 1344 "ircd_parser.y"
4146 >  case 219:
4147 > #line 1345 "conf_parser.y" /* yacc.c:1646  */
4148      {
4149    if (conf_parser_ctx.pass == 2)
4150 <  {
4699 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4700 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4701 <  }
4150 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4151   }
4152 + #line 4153 "conf_parser.c" /* yacc.c:1646  */
4153      break;
4154  
4155 <  case 192:
4156 <
4707 < /* Line 1806 of yacc.c  */
4708 < #line 1351 "ircd_parser.y"
4155 >  case 220:
4156 > #line 1349 "conf_parser.y" /* yacc.c:1646  */
4157      {
4158    if (conf_parser_ctx.pass == 2)
4159 <  {
4712 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4713 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4714 <  }
4159 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4160   }
4161 + #line 4162 "conf_parser.c" /* yacc.c:1646  */
4162      break;
4163  
4164 <  case 193:
4165 <
4720 < /* Line 1806 of yacc.c  */
4721 < #line 1358 "ircd_parser.y"
4164 >  case 221:
4165 > #line 1353 "conf_parser.y" /* yacc.c:1646  */
4166      {
4167    if (conf_parser_ctx.pass == 2)
4168 <  {
4725 <    if (not_atom) ClearConfEncrypted(yy_aconf);
4726 <    else SetConfEncrypted(yy_aconf);
4727 <  }
4168 >    block_state.port.value |= OPER_FLAG_SET;
4169   }
4170 + #line 4171 "conf_parser.c" /* yacc.c:1646  */
4171      break;
4172  
4173 <  case 194:
4174 <
4733 < /* Line 1806 of yacc.c  */
4734 < #line 1371 "ircd_parser.y"
4173 >  case 222:
4174 > #line 1357 "conf_parser.y" /* yacc.c:1646  */
4175      {
4176 <  if (conf_parser_ctx.pass == 1)
4177 <  {
4738 <    yy_conf = make_conf_item(CLASS_TYPE);
4739 <    yy_class = map_to_conf(yy_conf);
4740 <  }
4176 >  if (conf_parser_ctx.pass == 2)
4177 >    block_state.port.value |= OPER_FLAG_MODULE;
4178   }
4179 + #line 4180 "conf_parser.c" /* yacc.c:1646  */
4180      break;
4181  
4182 <  case 195:
4183 <
4746 < /* Line 1806 of yacc.c  */
4747 < #line 1378 "ircd_parser.y"
4182 >  case 223:
4183 > #line 1367 "conf_parser.y" /* yacc.c:1646  */
4184      {
4185 <  if (conf_parser_ctx.pass == 1)
4186 <  {
4751 <    struct ConfItem *cconf = NULL;
4752 <    struct ClassItem *class = NULL;
4185 >  if (conf_parser_ctx.pass != 1)
4186 >    break;
4187  
4188 <    if (yy_class_name == NULL)
4755 <      delete_conf_item(yy_conf);
4756 <    else
4757 <    {
4758 <      cconf = find_exact_name_conf(CLASS_TYPE, yy_class_name, NULL, NULL);
4188 >  reset_block_state();
4189  
4190 <      if (cconf != NULL)                /* The class existed already */
4191 <      {
4192 <        int user_count = 0;
4190 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4191 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4192 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4193 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4194 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4195 > }
4196 > #line 4197 "conf_parser.c" /* yacc.c:1646  */
4197 >    break;
4198  
4199 <        rebuild_cidr_class(cconf, yy_class);
4199 >  case 224:
4200 > #line 1379 "conf_parser.y" /* yacc.c:1646  */
4201 >    {
4202 >  struct ClassItem *class = NULL;
4203  
4204 <        class = map_to_conf(cconf);
4204 >  if (conf_parser_ctx.pass != 1)
4205 >    break;
4206  
4207 <        user_count = class->curr_user_count;
4208 <        memcpy(class, yy_class, sizeof(*class));
4770 <        class->curr_user_count = user_count;
4771 <        class->active = 1;
4207 >  if (!block_state.class.buf[0])
4208 >    break;
4209  
4210 <        delete_conf_item(yy_conf);
4210 >  if (!(class = class_find(block_state.class.buf, 0)))
4211 >    class = class_make();
4212  
4213 <        MyFree(cconf->name);            /* Allows case change of class name */
4214 <        cconf->name = yy_class_name;
4215 <      }
4216 <      else      /* Brand new class */
4217 <      {
4218 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4219 <        yy_conf->name = yy_class_name;
4220 <        yy_class->active = 1;
4221 <      }
4222 <    }
4213 >  class->active = 1;
4214 >  MyFree(class->name);
4215 >  class->name = xstrdup(block_state.class.buf);
4216 >  class->ping_freq = block_state.ping_freq.value;
4217 >  class->max_perip = block_state.max_perip.value;
4218 >  class->con_freq = block_state.con_freq.value;
4219 >  class->max_total = block_state.max_total.value;
4220 >  class->max_global = block_state.max_global.value;
4221 >  class->max_local = block_state.max_local.value;
4222 >  class->max_ident = block_state.max_ident.value;
4223 >  class->max_sendq = block_state.max_sendq.value;
4224 >  class->max_recvq = block_state.max_recvq.value;
4225  
4226 <    yy_class_name = NULL;
4226 >  if (block_state.min_idle.value > block_state.max_idle.value)
4227 >  {
4228 >    block_state.min_idle.value = 0;
4229 >    block_state.max_idle.value = 0;
4230 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4231    }
4232 +
4233 +  class->flags = block_state.flags.value;
4234 +  class->min_idle = block_state.min_idle.value;
4235 +  class->max_idle = block_state.max_idle.value;
4236 +
4237 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4238 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4239 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4240 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4241 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4242 +        rebuild_cidr_list(class);
4243 +
4244 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4245 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4246 +  class->number_per_cidr = block_state.number_per_cidr.value;
4247   }
4248 + #line 4249 "conf_parser.c" /* yacc.c:1646  */
4249      break;
4250  
4251 <  case 214:
4252 <
4793 < /* Line 1806 of yacc.c  */
4794 < #line 1438 "ircd_parser.y"
4251 >  case 244:
4252 > #line 1445 "conf_parser.y" /* yacc.c:1646  */
4253      {
4254    if (conf_parser_ctx.pass == 1)
4255 <  {
4798 <    MyFree(yy_class_name);
4799 <    DupString(yy_class_name, yylval.string);
4800 <  }
4255 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4256   }
4257 + #line 4258 "conf_parser.c" /* yacc.c:1646  */
4258      break;
4259  
4260 <  case 215:
4261 <
4806 < /* Line 1806 of yacc.c  */
4807 < #line 1447 "ircd_parser.y"
4260 >  case 245:
4261 > #line 1451 "conf_parser.y" /* yacc.c:1646  */
4262      {
4263    if (conf_parser_ctx.pass == 1)
4264 <  {
4811 <    MyFree(yy_class_name);
4812 <    DupString(yy_class_name, yylval.string);
4813 <  }
4264 >    block_state.ping_freq.value = (yyvsp[-1].number);
4265   }
4266 + #line 4267 "conf_parser.c" /* yacc.c:1646  */
4267      break;
4268  
4269 <  case 216:
4270 <
4819 < /* Line 1806 of yacc.c  */
4820 < #line 1456 "ircd_parser.y"
4269 >  case 246:
4270 > #line 1457 "conf_parser.y" /* yacc.c:1646  */
4271      {
4272    if (conf_parser_ctx.pass == 1)
4273 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4273 >    block_state.max_perip.value = (yyvsp[-1].number);
4274   }
4275 + #line 4276 "conf_parser.c" /* yacc.c:1646  */
4276      break;
4277  
4278 <  case 217:
4279 <
4829 < /* Line 1806 of yacc.c  */
4830 < #line 1462 "ircd_parser.y"
4278 >  case 247:
4279 > #line 1463 "conf_parser.y" /* yacc.c:1646  */
4280      {
4281    if (conf_parser_ctx.pass == 1)
4282 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4282 >    block_state.con_freq.value = (yyvsp[-1].number);
4283   }
4284 + #line 4285 "conf_parser.c" /* yacc.c:1646  */
4285      break;
4286  
4287 <  case 218:
4288 <
4839 < /* Line 1806 of yacc.c  */
4840 < #line 1468 "ircd_parser.y"
4287 >  case 248:
4288 > #line 1469 "conf_parser.y" /* yacc.c:1646  */
4289      {
4290    if (conf_parser_ctx.pass == 1)
4291 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4291 >    block_state.max_total.value = (yyvsp[-1].number);
4292   }
4293 + #line 4294 "conf_parser.c" /* yacc.c:1646  */
4294      break;
4295  
4296 <  case 219:
4297 <
4849 < /* Line 1806 of yacc.c  */
4850 < #line 1474 "ircd_parser.y"
4296 >  case 249:
4297 > #line 1475 "conf_parser.y" /* yacc.c:1646  */
4298      {
4299    if (conf_parser_ctx.pass == 1)
4300 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4300 >    block_state.max_global.value = (yyvsp[-1].number);
4301   }
4302 + #line 4303 "conf_parser.c" /* yacc.c:1646  */
4303      break;
4304  
4305 <  case 220:
4306 <
4859 < /* Line 1806 of yacc.c  */
4860 < #line 1480 "ircd_parser.y"
4305 >  case 250:
4306 > #line 1481 "conf_parser.y" /* yacc.c:1646  */
4307      {
4308    if (conf_parser_ctx.pass == 1)
4309 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4309 >    block_state.max_local.value = (yyvsp[-1].number);
4310   }
4311 + #line 4312 "conf_parser.c" /* yacc.c:1646  */
4312      break;
4313  
4314 <  case 221:
4315 <
4869 < /* Line 1806 of yacc.c  */
4870 < #line 1486 "ircd_parser.y"
4314 >  case 251:
4315 > #line 1487 "conf_parser.y" /* yacc.c:1646  */
4316      {
4317    if (conf_parser_ctx.pass == 1)
4318 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4318 >    block_state.max_ident.value = (yyvsp[-1].number);
4319   }
4320 + #line 4321 "conf_parser.c" /* yacc.c:1646  */
4321      break;
4322  
4323 <  case 222:
4324 <
4879 < /* Line 1806 of yacc.c  */
4880 < #line 1492 "ircd_parser.y"
4323 >  case 252:
4324 > #line 1493 "conf_parser.y" /* yacc.c:1646  */
4325      {
4326    if (conf_parser_ctx.pass == 1)
4327 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4327 >    block_state.max_sendq.value = (yyvsp[-1].number);
4328   }
4329 + #line 4330 "conf_parser.c" /* yacc.c:1646  */
4330      break;
4331  
4332 <  case 223:
4333 <
4889 < /* Line 1806 of yacc.c  */
4890 < #line 1498 "ircd_parser.y"
4332 >  case 253:
4333 > #line 1499 "conf_parser.y" /* yacc.c:1646  */
4334      {
4335    if (conf_parser_ctx.pass == 1)
4336 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4336 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4337 >      block_state.max_recvq.value = (yyvsp[-1].number);
4338   }
4339 + #line 4340 "conf_parser.c" /* yacc.c:1646  */
4340      break;
4341  
4342 <  case 224:
4343 <
4899 < /* Line 1806 of yacc.c  */
4900 < #line 1504 "ircd_parser.y"
4342 >  case 254:
4343 > #line 1506 "conf_parser.y" /* yacc.c:1646  */
4344      {
4345    if (conf_parser_ctx.pass == 1)
4346 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4346 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4347   }
4348 + #line 4349 "conf_parser.c" /* yacc.c:1646  */
4349      break;
4350  
4351 <  case 225:
4352 <
4909 < /* Line 1806 of yacc.c  */
4910 < #line 1510 "ircd_parser.y"
4351 >  case 255:
4352 > #line 1512 "conf_parser.y" /* yacc.c:1646  */
4353      {
4354    if (conf_parser_ctx.pass == 1)
4355 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4355 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4356   }
4357 + #line 4358 "conf_parser.c" /* yacc.c:1646  */
4358      break;
4359  
4360 <  case 226:
4361 <
4919 < /* Line 1806 of yacc.c  */
4920 < #line 1516 "ircd_parser.y"
4360 >  case 256:
4361 > #line 1518 "conf_parser.y" /* yacc.c:1646  */
4362      {
4363    if (conf_parser_ctx.pass == 1)
4364 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4364 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4365   }
4366 + #line 4367 "conf_parser.c" /* yacc.c:1646  */
4367      break;
4368  
4369 <  case 227:
4369 >  case 257:
4370 > #line 1524 "conf_parser.y" /* yacc.c:1646  */
4371 >    {
4372 >  if (conf_parser_ctx.pass != 1)
4373 >    break;
4374  
4375 < /* Line 1806 of yacc.c  */
4376 < #line 1522 "ircd_parser.y"
4375 >  block_state.min_idle.value = (yyvsp[-1].number);
4376 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4377 > }
4378 > #line 4379 "conf_parser.c" /* yacc.c:1646  */
4379 >    break;
4380 >
4381 >  case 258:
4382 > #line 1533 "conf_parser.y" /* yacc.c:1646  */
4383      {
4384 <  if (conf_parser_ctx.pass == 1)
4385 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4384 >  if (conf_parser_ctx.pass != 1)
4385 >    break;
4386 >
4387 >  block_state.max_idle.value = (yyvsp[-1].number);
4388 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4389   }
4390 + #line 4391 "conf_parser.c" /* yacc.c:1646  */
4391      break;
4392  
4393 <  case 228:
4393 >  case 259:
4394 > #line 1542 "conf_parser.y" /* yacc.c:1646  */
4395 >    {
4396 >  if (conf_parser_ctx.pass == 1)
4397 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4398 > }
4399 > #line 4400 "conf_parser.c" /* yacc.c:1646  */
4400 >    break;
4401  
4402 < /* Line 1806 of yacc.c  */
4403 < #line 1531 "ircd_parser.y"
4402 >  case 263:
4403 > #line 1549 "conf_parser.y" /* yacc.c:1646  */
4404      {
4405 <  if (conf_parser_ctx.pass == 2)
4406 <  {
4944 <    listener_address = NULL;
4945 <    listener_flags = 0;
4946 <  }
4405 >  if (conf_parser_ctx.pass == 1)
4406 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4407   }
4408 + #line 4409 "conf_parser.c" /* yacc.c:1646  */
4409      break;
4410  
4411 <  case 229:
4411 >  case 264:
4412 > #line 1553 "conf_parser.y" /* yacc.c:1646  */
4413 >    {
4414 >  if (conf_parser_ctx.pass == 1)
4415 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4416 > }
4417 > #line 4418 "conf_parser.c" /* yacc.c:1646  */
4418 >    break;
4419  
4420 < /* Line 1806 of yacc.c  */
4421 < #line 1538 "ircd_parser.y"
4420 >  case 265:
4421 > #line 1563 "conf_parser.y" /* yacc.c:1646  */
4422      {
4423    if (conf_parser_ctx.pass == 2)
4424 <  {
4957 <    MyFree(listener_address);
4958 <    listener_address = NULL;
4959 <  }
4424 >    reset_block_state();
4425   }
4426 + #line 4427 "conf_parser.c" /* yacc.c:1646  */
4427      break;
4428  
4429 <  case 230:
4430 <
4965 < /* Line 1806 of yacc.c  */
4966 < #line 1547 "ircd_parser.y"
4429 >  case 267:
4430 > #line 1569 "conf_parser.y" /* yacc.c:1646  */
4431      {
4432 <  listener_flags = 0;
4432 >  block_state.flags.value = 0;
4433   }
4434 + #line 4435 "conf_parser.c" /* yacc.c:1646  */
4435      break;
4436  
4437 <  case 234:
4438 <
4974 < /* Line 1806 of yacc.c  */
4975 < #line 1553 "ircd_parser.y"
4437 >  case 271:
4438 > #line 1575 "conf_parser.y" /* yacc.c:1646  */
4439      {
4440    if (conf_parser_ctx.pass == 2)
4441 <    listener_flags |= LISTENER_SSL;
4441 >    block_state.flags.value |= LISTENER_SSL;
4442   }
4443 + #line 4444 "conf_parser.c" /* yacc.c:1646  */
4444      break;
4445  
4446 <  case 235:
4447 <
4984 < /* Line 1806 of yacc.c  */
4985 < #line 1557 "ircd_parser.y"
4446 >  case 272:
4447 > #line 1579 "conf_parser.y" /* yacc.c:1646  */
4448      {
4449    if (conf_parser_ctx.pass == 2)
4450 <    listener_flags |= LISTENER_HIDDEN;
4450 >    block_state.flags.value |= LISTENER_HIDDEN;
4451   }
4452 + #line 4453 "conf_parser.c" /* yacc.c:1646  */
4453      break;
4454  
4455 <  case 236:
4456 <
4994 < /* Line 1806 of yacc.c  */
4995 < #line 1561 "ircd_parser.y"
4455 >  case 273:
4456 > #line 1583 "conf_parser.y" /* yacc.c:1646  */
4457      {
4458    if (conf_parser_ctx.pass == 2)
4459 <    listener_flags |= LISTENER_SERVER;
4459 >   block_state.flags.value |= LISTENER_SERVER;
4460   }
4461 + #line 4462 "conf_parser.c" /* yacc.c:1646  */
4462      break;
4463  
4464 <  case 244:
4465 <
4466 < /* Line 1806 of yacc.c  */
4467 < #line 1571 "ircd_parser.y"
5006 <    { listener_flags = 0; }
4464 >  case 281:
4465 > #line 1591 "conf_parser.y" /* yacc.c:1646  */
4466 >    { block_state.flags.value = 0; }
4467 > #line 4468 "conf_parser.c" /* yacc.c:1646  */
4468      break;
4469  
4470 <  case 248:
4471 <
5011 < /* Line 1806 of yacc.c  */
5012 < #line 1576 "ircd_parser.y"
4470 >  case 285:
4471 > #line 1596 "conf_parser.y" /* yacc.c:1646  */
4472      {
4473    if (conf_parser_ctx.pass == 2)
4474    {
4475 <    if ((listener_flags & LISTENER_SSL))
4475 >    if (block_state.flags.value & LISTENER_SSL)
4476   #ifdef HAVE_LIBCRYPTO
4477        if (!ServerInfo.server_ctx)
4478   #endif
4479        {
4480 <        yyerror("SSL not available - port closed");
4480 >        conf_error_report("SSL not available - port closed");
4481          break;
4482        }
4483 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4483 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4484    }
4485   }
4486 + #line 4487 "conf_parser.c" /* yacc.c:1646  */
4487      break;
4488  
4489 <  case 249:
4490 <
5031 < /* Line 1806 of yacc.c  */
5032 < #line 1590 "ircd_parser.y"
4489 >  case 286:
4490 > #line 1610 "conf_parser.y" /* yacc.c:1646  */
4491      {
4492    if (conf_parser_ctx.pass == 2)
4493    {
4494      int i;
4495  
4496 <    if ((listener_flags & LISTENER_SSL))
4496 >    if (block_state.flags.value & LISTENER_SSL)
4497   #ifdef HAVE_LIBCRYPTO
4498        if (!ServerInfo.server_ctx)
4499   #endif
4500        {
4501 <        yyerror("SSL not available - port closed");
4501 >        conf_error_report("SSL not available - port closed");
4502          break;
4503        }
4504  
4505 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4506 <      add_listener(i, listener_address, listener_flags);
4505 >    for (i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4506 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4507    }
4508   }
4509 + #line 4510 "conf_parser.c" /* yacc.c:1646  */
4510      break;
4511  
4512 <  case 250:
4513 <
5055 < /* Line 1806 of yacc.c  */
5056 < #line 1610 "ircd_parser.y"
4512 >  case 287:
4513 > #line 1630 "conf_parser.y" /* yacc.c:1646  */
4514      {
4515    if (conf_parser_ctx.pass == 2)
4516 <  {
5060 <    MyFree(listener_address);
5061 <    DupString(listener_address, yylval.string);
5062 <  }
4516 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4517   }
4518 + #line 4519 "conf_parser.c" /* yacc.c:1646  */
4519      break;
4520  
4521 <  case 251:
4522 <
5068 < /* Line 1806 of yacc.c  */
5069 < #line 1619 "ircd_parser.y"
4521 >  case 288:
4522 > #line 1636 "conf_parser.y" /* yacc.c:1646  */
4523      {
4524    if (conf_parser_ctx.pass == 2)
4525 <  {
5073 <    MyFree(listener_address);
5074 <    DupString(listener_address, yylval.string);
5075 <  }
4525 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4526   }
4527 + #line 4528 "conf_parser.c" /* yacc.c:1646  */
4528      break;
4529  
4530 <  case 252:
4531 <
5081 < /* Line 1806 of yacc.c  */
5082 < #line 1631 "ircd_parser.y"
4530 >  case 289:
4531 > #line 1645 "conf_parser.y" /* yacc.c:1646  */
4532      {
4533    if (conf_parser_ctx.pass == 2)
4534 <  {
5086 <    yy_conf = make_conf_item(CLIENT_TYPE);
5087 <    yy_aconf = map_to_conf(yy_conf);
5088 <  }
5089 <  else
5090 <  {
5091 <    MyFree(class_name);
5092 <    class_name = NULL;
5093 <  }
4534 >    reset_block_state();
4535   }
4536 + #line 4537 "conf_parser.c" /* yacc.c:1646  */
4537      break;
4538  
4539 <  case 253:
4540 <
5099 < /* Line 1806 of yacc.c  */
5100 < #line 1643 "ircd_parser.y"
5101 <    {
5102 <  if (conf_parser_ctx.pass == 2)
5103 <  {
5104 <    struct CollectItem *yy_tmp = NULL;
5105 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5106 <
5107 <    if (yy_aconf->user && yy_aconf->host)
5108 <    {
5109 <      conf_add_class_to_conf(yy_conf, class_name);
5110 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
5111 <    }
5112 <    else
5113 <      delete_conf_item(yy_conf);
5114 <
5115 <    /* copy over settings from first struct */
5116 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4539 >  case 290:
4540 > #line 1649 "conf_parser.y" /* yacc.c:1646  */
4541      {
4542 <      struct AccessItem *new_aconf;
5119 <      struct ConfItem *new_conf;
5120 <
5121 <      new_conf = make_conf_item(CLIENT_TYPE);
5122 <      new_aconf = map_to_conf(new_conf);
5123 <
5124 <      yy_tmp = ptr->data;
5125 <
5126 <      assert(yy_tmp->user && yy_tmp->host);
4542 >  dlink_node *ptr = NULL;
4543  
4544 <      if (yy_aconf->passwd != NULL)
5129 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5130 <      if (yy_conf->name != NULL)
5131 <        DupString(new_conf->name, yy_conf->name);
5132 <      if (yy_aconf->passwd != NULL)
5133 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5134 <
5135 <      new_aconf->flags = yy_aconf->flags;
5136 <      new_aconf->port  = yy_aconf->port;
5137 <
5138 <      DupString(new_aconf->user, yy_tmp->user);
5139 <      collapse(new_aconf->user);
5140 <
5141 <      DupString(new_aconf->host, yy_tmp->host);
5142 <      collapse(new_aconf->host);
5143 <
5144 <      conf_add_class_to_conf(new_conf, class_name);
5145 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5146 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5147 <      free_collect_item(yy_tmp);
5148 <    }
5149 <
5150 <    MyFree(class_name);
5151 <    class_name = NULL;
5152 <    yy_conf = NULL;
5153 <    yy_aconf = NULL;
5154 <  }
5155 < }
4544 >  if (conf_parser_ctx.pass != 2)
4545      break;
4546  
4547 <  case 265:
5159 <
5160 < /* Line 1806 of yacc.c  */
5161 < #line 1705 "ircd_parser.y"
5162 <    {
5163 <  if (conf_parser_ctx.pass == 2)
4547 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4548    {
4549 <    struct CollectItem *yy_tmp = NULL;
4549 >    struct MaskItem *conf = NULL;
4550      struct split_nuh_item nuh;
4551  
4552 <    nuh.nuhmask  = yylval.string;
4552 >    nuh.nuhmask  = ptr->data;
4553      nuh.nickptr  = NULL;
4554 <    nuh.userptr  = userbuf;
4555 <    nuh.hostptr  = hostbuf;
5172 <
4554 >    nuh.userptr  = block_state.user.buf;
4555 >    nuh.hostptr  = block_state.host.buf;
4556      nuh.nicksize = 0;
4557 <    nuh.usersize = sizeof(userbuf);
4558 <    nuh.hostsize = sizeof(hostbuf);
5176 <
4557 >    nuh.usersize = sizeof(block_state.user.buf);
4558 >    nuh.hostsize = sizeof(block_state.host.buf);
4559      split_nuh(&nuh);
4560  
4561 <    if (yy_aconf->user == NULL)
4562 <    {
4563 <      DupString(yy_aconf->user, userbuf);
5182 <      DupString(yy_aconf->host, hostbuf);
5183 <    }
5184 <    else
5185 <    {
5186 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4561 >    conf        = conf_make(CONF_CLIENT);
4562 >    conf->user  = xstrdup(block_state.user.buf);
4563 >    conf->host  = xstrdup(block_state.host.buf);
4564  
4565 <      DupString(yy_tmp->user, userbuf);
4566 <      DupString(yy_tmp->host, hostbuf);
4565 >    if (block_state.rpass.buf[0])
4566 >      conf->passwd = xstrdup(block_state.rpass.buf);
4567 >    if (block_state.name.buf[0])
4568 >      conf->name = xstrdup(block_state.name.buf);
4569  
4570 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4571 <    }
4570 >    conf->flags = block_state.flags.value;
4571 >    conf->port  = block_state.port.value;
4572 >
4573 >    conf_add_class_to_conf(conf, block_state.class.buf);
4574 >    add_conf_by_address(CONF_CLIENT, conf);
4575    }
4576   }
4577 + #line 4578 "conf_parser.c" /* yacc.c:1646  */
4578      break;
4579  
4580 <  case 266:
4581 <
5199 < /* Line 1806 of yacc.c  */
5200 < #line 1742 "ircd_parser.y"
4580 >  case 302:
4581 > #line 1692 "conf_parser.y" /* yacc.c:1646  */
4582      {
4583    if (conf_parser_ctx.pass == 2)
4584 <  {
5204 <    /* be paranoid */
5205 <    if (yy_aconf->passwd != NULL)
5206 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5207 <
5208 <    MyFree(yy_aconf->passwd);
5209 <    DupString(yy_aconf->passwd, yylval.string);
5210 <  }
4584 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4585   }
4586 + #line 4587 "conf_parser.c" /* yacc.c:1646  */
4587      break;
4588  
4589 <  case 267:
4590 <
5216 < /* Line 1806 of yacc.c  */
5217 < #line 1755 "ircd_parser.y"
4589 >  case 303:
4590 > #line 1698 "conf_parser.y" /* yacc.c:1646  */
4591      {
4592    if (conf_parser_ctx.pass == 2)
4593 <  {
5221 <    MyFree(class_name);
5222 <    DupString(class_name, yylval.string);
5223 <  }
4593 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4594   }
4595 + #line 4596 "conf_parser.c" /* yacc.c:1646  */
4596      break;
4597  
4598 <  case 268:
4598 >  case 304:
4599 > #line 1704 "conf_parser.y" /* yacc.c:1646  */
4600 >    {
4601 >  if (conf_parser_ctx.pass == 2)
4602 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4603 > }
4604 > #line 4605 "conf_parser.c" /* yacc.c:1646  */
4605 >    break;
4606  
4607 < /* Line 1806 of yacc.c  */
4608 < #line 1764 "ircd_parser.y"
4607 >  case 305:
4608 > #line 1710 "conf_parser.y" /* yacc.c:1646  */
4609      {
4610    if (conf_parser_ctx.pass == 2)
4611    {
4612      if (yylval.number)
4613 <      SetConfEncrypted(yy_aconf);
4613 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4614      else
4615 <      ClearConfEncrypted(yy_aconf);
4615 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4616    }
4617   }
4618 + #line 4619 "conf_parser.c" /* yacc.c:1646  */
4619      break;
4620  
4621 <  case 269:
4622 <
5244 < /* Line 1806 of yacc.c  */
5245 < #line 1775 "ircd_parser.y"
4621 >  case 306:
4622 > #line 1721 "conf_parser.y" /* yacc.c:1646  */
4623      {
4624 +  if (conf_parser_ctx.pass == 2)
4625 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4626   }
4627 + #line 4628 "conf_parser.c" /* yacc.c:1646  */
4628      break;
4629  
4630 <  case 273:
4631 <
4632 < /* Line 1806 of yacc.c  */
4633 < #line 1779 "ircd_parser.y"
4634 <    { not_atom = 1; }
4635 <    break;
4636 <
5257 <  case 275:
5258 <
5259 < /* Line 1806 of yacc.c  */
5260 < #line 1780 "ircd_parser.y"
5261 <    { not_atom = 0; }
4630 >  case 310:
4631 > #line 1728 "conf_parser.y" /* yacc.c:1646  */
4632 >    {
4633 >  if (conf_parser_ctx.pass == 2)
4634 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4635 > }
4636 > #line 4637 "conf_parser.c" /* yacc.c:1646  */
4637      break;
4638  
4639 <  case 277:
4640 <
5266 < /* Line 1806 of yacc.c  */
5267 < #line 1783 "ircd_parser.y"
4639 >  case 311:
4640 > #line 1732 "conf_parser.y" /* yacc.c:1646  */
4641      {
4642    if (conf_parser_ctx.pass == 2)
4643 <  {
5271 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5272 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5273 <  }
4643 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4644   }
4645 + #line 4646 "conf_parser.c" /* yacc.c:1646  */
4646      break;
4647  
4648 <  case 278:
4649 <
5279 < /* Line 1806 of yacc.c  */
5280 < #line 1790 "ircd_parser.y"
4648 >  case 312:
4649 > #line 1736 "conf_parser.y" /* yacc.c:1646  */
4650      {
4651    if (conf_parser_ctx.pass == 2)
4652 <  {
5284 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5285 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5286 <  }
4652 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4653   }
4654 + #line 4655 "conf_parser.c" /* yacc.c:1646  */
4655      break;
4656  
4657 <  case 279:
4658 <
5292 < /* Line 1806 of yacc.c  */
5293 < #line 1797 "ircd_parser.y"
4657 >  case 313:
4658 > #line 1740 "conf_parser.y" /* yacc.c:1646  */
4659      {
4660    if (conf_parser_ctx.pass == 2)
4661 <  {
5297 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5298 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5299 <  }
4661 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4662   }
4663 + #line 4664 "conf_parser.c" /* yacc.c:1646  */
4664      break;
4665  
4666 <  case 280:
4667 <
5305 < /* Line 1806 of yacc.c  */
5306 < #line 1804 "ircd_parser.y"
4666 >  case 314:
4667 > #line 1744 "conf_parser.y" /* yacc.c:1646  */
4668      {
4669    if (conf_parser_ctx.pass == 2)
4670 <  {
5310 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5311 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5312 <  }
4670 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4671   }
4672 + #line 4673 "conf_parser.c" /* yacc.c:1646  */
4673      break;
4674  
4675 <  case 281:
4676 <
5318 < /* Line 1806 of yacc.c  */
5319 < #line 1811 "ircd_parser.y"
4675 >  case 315:
4676 > #line 1748 "conf_parser.y" /* yacc.c:1646  */
4677      {
4678    if (conf_parser_ctx.pass == 2)
4679 <  {
5323 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5324 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5325 <  }
4679 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4680   }
4681 + #line 4682 "conf_parser.c" /* yacc.c:1646  */
4682      break;
4683  
4684 <  case 282:
4685 <
5331 < /* Line 1806 of yacc.c  */
5332 < #line 1818 "ircd_parser.y"
4684 >  case 316:
4685 > #line 1752 "conf_parser.y" /* yacc.c:1646  */
4686      {
4687    if (conf_parser_ctx.pass == 2)
4688 <  {
5336 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5337 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5338 <  }
4688 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4689   }
4690 + #line 4691 "conf_parser.c" /* yacc.c:1646  */
4691      break;
4692  
4693 <  case 283:
4694 <
5344 < /* Line 1806 of yacc.c  */
5345 < #line 1825 "ircd_parser.y"
4693 >  case 317:
4694 > #line 1756 "conf_parser.y" /* yacc.c:1646  */
4695      {
4696    if (conf_parser_ctx.pass == 2)
4697 <  {
5349 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5350 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5351 <  }
4697 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4698   }
4699 + #line 4700 "conf_parser.c" /* yacc.c:1646  */
4700      break;
4701  
4702 <  case 284:
4703 <
5357 < /* Line 1806 of yacc.c  */
5358 < #line 1832 "ircd_parser.y"
4702 >  case 318:
4703 > #line 1760 "conf_parser.y" /* yacc.c:1646  */
4704      {
4705    if (conf_parser_ctx.pass == 2)
4706 <  {
5362 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5363 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5364 <  }
4706 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4707   }
4708 + #line 4709 "conf_parser.c" /* yacc.c:1646  */
4709      break;
4710  
4711 <  case 285:
4712 <
5370 < /* Line 1806 of yacc.c  */
5371 < #line 1839 "ircd_parser.y"
4711 >  case 319:
4712 > #line 1764 "conf_parser.y" /* yacc.c:1646  */
4713      {
4714    if (conf_parser_ctx.pass == 2)
4715 <  {
5375 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5376 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5377 <  }
4715 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4716   }
4717 + #line 4718 "conf_parser.c" /* yacc.c:1646  */
4718      break;
4719  
4720 <  case 286:
4721 <
5383 < /* Line 1806 of yacc.c  */
5384 < #line 1846 "ircd_parser.y"
4720 >  case 320:
4721 > #line 1770 "conf_parser.y" /* yacc.c:1646  */
4722      {
4723 <  if (conf_parser_ctx.pass == 2)
4723 >  if (conf_parser_ctx.pass != 2)
4724 >    break;
4725 >
4726 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4727    {
4728 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
4729 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4728 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4729 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4730    }
4731 +  else
4732 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4733   }
4734 + #line 4735 "conf_parser.c" /* yacc.c:1646  */
4735      break;
4736  
4737 <  case 287:
4738 <
5396 < /* Line 1806 of yacc.c  */
5397 < #line 1856 "ircd_parser.y"
4737 >  case 321:
4738 > #line 1784 "conf_parser.y" /* yacc.c:1646  */
4739      {
4740 <  if (conf_parser_ctx.pass == 2)
4741 <  {
5401 <    MyFree(yy_conf->name);
4740 >  if (conf_parser_ctx.pass != 2)
4741 >    break;
4742  
4743 <    if (strlen(yylval.string) < HOSTLEN)
4744 <    {    
5405 <      DupString(yy_conf->name, yylval.string);
5406 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5407 <    }
5408 <    else
5409 <    {
5410 <      ilog(L_ERROR, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5411 <      yy_conf->name = NULL;
5412 <    }
5413 <  }
4743 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4744 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4745   }
4746 + #line 4747 "conf_parser.c" /* yacc.c:1646  */
4747      break;
4748  
4749 <  case 288:
4750 <
5419 < /* Line 1806 of yacc.c  */
5420 < #line 1875 "ircd_parser.y"
4749 >  case 322:
4750 > #line 1793 "conf_parser.y" /* yacc.c:1646  */
4751      {
4752 <  if (conf_parser_ctx.pass == 2)
5423 <  {
5424 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5425 <    MyFree(yy_conf->name);
5426 <    DupString(yy_conf->name, yylval.string);
5427 <  }
5428 < }
4752 >  if (conf_parser_ctx.pass != 2)
4753      break;
4754  
4755 <  case 289:
4755 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4756 >  block_state.port.value = (yyvsp[-1].number);
4757 > }
4758 > #line 4759 "conf_parser.c" /* yacc.c:1646  */
4759 >    break;
4760  
4761 < /* Line 1806 of yacc.c  */
4762 < #line 1885 "ircd_parser.y"
4761 >  case 323:
4762 > #line 1806 "conf_parser.y" /* yacc.c:1646  */
4763      {
4764 <  if (conf_parser_ctx.pass == 2)
5437 <  {
5438 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5439 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5440 <  }
5441 < }
4764 >  if (conf_parser_ctx.pass != 2)
4765      break;
4766  
4767 <  case 290:
4767 >  reset_block_state();
4768 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4769 > }
4770 > #line 4771 "conf_parser.c" /* yacc.c:1646  */
4771 >    break;
4772  
4773 < /* Line 1806 of yacc.c  */
4774 < #line 1898 "ircd_parser.y"
4773 >  case 324:
4774 > #line 1813 "conf_parser.y" /* yacc.c:1646  */
4775      {
4776 <  if (conf_parser_ctx.pass == 2)
5450 <  {
5451 <    MyFree(resv_reason);
5452 <    resv_reason = NULL;
5453 <  }
5454 < }
4776 >  if (conf_parser_ctx.pass != 2)
4777      break;
4778  
4779 <  case 291:
4779 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4780 > }
4781 > #line 4782 "conf_parser.c" /* yacc.c:1646  */
4782 >    break;
4783  
4784 < /* Line 1806 of yacc.c  */
4785 < #line 1905 "ircd_parser.y"
4784 >  case 331:
4785 > #line 1824 "conf_parser.y" /* yacc.c:1646  */
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788 <  {
5464 <    MyFree(resv_reason);
5465 <    resv_reason = NULL;
5466 <  }
4788 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4789   }
4790 + #line 4791 "conf_parser.c" /* yacc.c:1646  */
4791      break;
4792  
4793 <  case 298:
4794 <
5472 < /* Line 1806 of yacc.c  */
5473 < #line 1917 "ircd_parser.y"
4793 >  case 332:
4794 > #line 1830 "conf_parser.y" /* yacc.c:1646  */
4795      {
4796    if (conf_parser_ctx.pass == 2)
4797 <  {
5477 <    MyFree(resv_reason);
5478 <    DupString(resv_reason, yylval.string);
5479 <  }
4797 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4798   }
4799 + #line 4800 "conf_parser.c" /* yacc.c:1646  */
4800      break;
4801  
4802 <  case 299:
4803 <
5485 < /* Line 1806 of yacc.c  */
5486 < #line 1926 "ircd_parser.y"
4802 >  case 333:
4803 > #line 1836 "conf_parser.y" /* yacc.c:1646  */
4804      {
4805    if (conf_parser_ctx.pass == 2)
4806 <  {
5490 <    if (IsChanPrefix(*yylval.string))
5491 <    {
5492 <      char def_reason[] = "No reason";
5493 <
5494 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5495 <    }
5496 <  }
5497 <  /* ignore it for now.. but we really should make a warning if
5498 <   * its an erroneous name --fl_ */
4806 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4807   }
4808 + #line 4809 "conf_parser.c" /* yacc.c:1646  */
4809      break;
4810  
4811 <  case 300:
4812 <
5504 < /* Line 1806 of yacc.c  */
5505 < #line 1941 "ircd_parser.y"
4811 >  case 339:
4812 > #line 1851 "conf_parser.y" /* yacc.c:1646  */
4813      {
4814 <  if (conf_parser_ctx.pass == 2)
4815 <  {
5509 <    char def_reason[] = "No reason";
4814 >  if (conf_parser_ctx.pass != 2)
4815 >    break;
4816  
4817 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4817 >  if (valid_servname(yylval.string))
4818 >  {
4819 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4820 >    conf->name = xstrdup(yylval.string);
4821    }
4822   }
4823 + #line 4824 "conf_parser.c" /* yacc.c:1646  */
4824      break;
4825  
4826 <  case 301:
4827 <
5518 < /* Line 1806 of yacc.c  */
5519 < #line 1954 "ircd_parser.y"
4826 >  case 340:
4827 > #line 1866 "conf_parser.y" /* yacc.c:1646  */
4828      {
4829 <  if (conf_parser_ctx.pass == 2)
5522 <  {
5523 <    yy_conf = make_conf_item(ULINE_TYPE);
5524 <    yy_match_item = map_to_conf(yy_conf);
5525 <    yy_match_item->action = SHARED_ALL;
5526 <  }
5527 < }
4829 >  if (conf_parser_ctx.pass != 2)
4830      break;
4831  
4832 <  case 302:
4832 >  reset_block_state();
4833  
4834 < /* Line 1806 of yacc.c  */
4835 < #line 1962 "ircd_parser.y"
4836 <    {
4837 <  if (conf_parser_ctx.pass == 2)
5536 <  {
5537 <    yy_conf = NULL;
5538 <  }
4834 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4835 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4836 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4837 >  block_state.flags.value = SHARED_ALL;
4838   }
4839 + #line 4840 "conf_parser.c" /* yacc.c:1646  */
4840      break;
4841  
4842 <  case 309:
4842 >  case 341:
4843 > #line 1877 "conf_parser.y" /* yacc.c:1646  */
4844 >    {
4845 >  struct MaskItem *conf = NULL;
4846 >
4847 >  if (conf_parser_ctx.pass != 2)
4848 >    break;
4849 >
4850 >  conf = conf_make(CONF_ULINE);
4851 >  conf->flags = block_state.flags.value;
4852 >  conf->name = xstrdup(block_state.name.buf);
4853 >  conf->user = xstrdup(block_state.user.buf);
4854 >  conf->host = xstrdup(block_state.host.buf);
4855 > }
4856 > #line 4857 "conf_parser.c" /* yacc.c:1646  */
4857 >    break;
4858  
4859 < /* Line 1806 of yacc.c  */
4860 < #line 1973 "ircd_parser.y"
4859 >  case 348:
4860 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4861      {
4862    if (conf_parser_ctx.pass == 2)
4863 <  {
5549 <    MyFree(yy_conf->name);
5550 <    DupString(yy_conf->name, yylval.string);
5551 <  }
4863 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4864   }
4865 + #line 4866 "conf_parser.c" /* yacc.c:1646  */
4866      break;
4867  
4868 <  case 310:
4869 <
5557 < /* Line 1806 of yacc.c  */
5558 < #line 1982 "ircd_parser.y"
4868 >  case 349:
4869 > #line 1900 "conf_parser.y" /* yacc.c:1646  */
4870      {
4871    if (conf_parser_ctx.pass == 2)
4872    {
# Line 5563 | Line 4874 | yyreduce:
4874  
4875      nuh.nuhmask  = yylval.string;
4876      nuh.nickptr  = NULL;
4877 <    nuh.userptr  = userbuf;
4878 <    nuh.hostptr  = hostbuf;
4877 >    nuh.userptr  = block_state.user.buf;
4878 >    nuh.hostptr  = block_state.host.buf;
4879  
4880      nuh.nicksize = 0;
4881 <    nuh.usersize = sizeof(userbuf);
4882 <    nuh.hostsize = sizeof(hostbuf);
4881 >    nuh.usersize = sizeof(block_state.user.buf);
4882 >    nuh.hostsize = sizeof(block_state.host.buf);
4883  
4884      split_nuh(&nuh);
5574
5575    DupString(yy_match_item->user, userbuf);
5576    DupString(yy_match_item->host, hostbuf);
4885    }
4886   }
4887 + #line 4888 "conf_parser.c" /* yacc.c:1646  */
4888      break;
4889  
4890 <  case 311:
4891 <
5583 < /* Line 1806 of yacc.c  */
5584 < #line 2004 "ircd_parser.y"
4890 >  case 350:
4891 > #line 1919 "conf_parser.y" /* yacc.c:1646  */
4892      {
4893    if (conf_parser_ctx.pass == 2)
4894 <    yy_match_item->action = 0;
4894 >    block_state.flags.value = 0;
4895   }
4896 + #line 4897 "conf_parser.c" /* yacc.c:1646  */
4897      break;
4898  
4899 <  case 315:
4900 <
5593 < /* Line 1806 of yacc.c  */
5594 < #line 2011 "ircd_parser.y"
4899 >  case 354:
4900 > #line 1926 "conf_parser.y" /* yacc.c:1646  */
4901      {
4902    if (conf_parser_ctx.pass == 2)
4903 <    yy_match_item->action |= SHARED_KLINE;
4903 >    block_state.flags.value |= SHARED_KLINE;
4904   }
4905 + #line 4906 "conf_parser.c" /* yacc.c:1646  */
4906      break;
4907  
4908 <  case 316:
4909 <
5603 < /* Line 1806 of yacc.c  */
5604 < #line 2015 "ircd_parser.y"
4908 >  case 355:
4909 > #line 1930 "conf_parser.y" /* yacc.c:1646  */
4910      {
4911    if (conf_parser_ctx.pass == 2)
4912 <    yy_match_item->action |= SHARED_TKLINE;
4912 >    block_state.flags.value |= SHARED_UNKLINE;
4913   }
4914 + #line 4915 "conf_parser.c" /* yacc.c:1646  */
4915      break;
4916  
4917 <  case 317:
4918 <
5613 < /* Line 1806 of yacc.c  */
5614 < #line 2019 "ircd_parser.y"
4917 >  case 356:
4918 > #line 1934 "conf_parser.y" /* yacc.c:1646  */
4919      {
4920    if (conf_parser_ctx.pass == 2)
4921 <    yy_match_item->action |= SHARED_UNKLINE;
4921 >    block_state.flags.value |= SHARED_DLINE;
4922   }
4923 + #line 4924 "conf_parser.c" /* yacc.c:1646  */
4924      break;
4925  
4926 <  case 318:
4927 <
5623 < /* Line 1806 of yacc.c  */
5624 < #line 2023 "ircd_parser.y"
4926 >  case 357:
4927 > #line 1938 "conf_parser.y" /* yacc.c:1646  */
4928      {
4929    if (conf_parser_ctx.pass == 2)
4930 <    yy_match_item->action |= SHARED_XLINE;
4930 >    block_state.flags.value |= SHARED_UNDLINE;
4931   }
4932 + #line 4933 "conf_parser.c" /* yacc.c:1646  */
4933      break;
4934  
4935 <  case 319:
4936 <
5633 < /* Line 1806 of yacc.c  */
5634 < #line 2027 "ircd_parser.y"
4935 >  case 358:
4936 > #line 1942 "conf_parser.y" /* yacc.c:1646  */
4937      {
4938    if (conf_parser_ctx.pass == 2)
4939 <    yy_match_item->action |= SHARED_TXLINE;
4939 >    block_state.flags.value |= SHARED_XLINE;
4940   }
4941 + #line 4942 "conf_parser.c" /* yacc.c:1646  */
4942      break;
4943  
4944 <  case 320:
4945 <
5643 < /* Line 1806 of yacc.c  */
5644 < #line 2031 "ircd_parser.y"
4944 >  case 359:
4945 > #line 1946 "conf_parser.y" /* yacc.c:1646  */
4946      {
4947    if (conf_parser_ctx.pass == 2)
4948 <    yy_match_item->action |= SHARED_UNXLINE;
4948 >    block_state.flags.value |= SHARED_UNXLINE;
4949   }
4950 + #line 4951 "conf_parser.c" /* yacc.c:1646  */
4951      break;
4952  
4953 <  case 321:
4954 <
5653 < /* Line 1806 of yacc.c  */
5654 < #line 2035 "ircd_parser.y"
4953 >  case 360:
4954 > #line 1950 "conf_parser.y" /* yacc.c:1646  */
4955      {
4956    if (conf_parser_ctx.pass == 2)
4957 <    yy_match_item->action |= SHARED_RESV;
4957 >    block_state.flags.value |= SHARED_RESV;
4958   }
4959 + #line 4960 "conf_parser.c" /* yacc.c:1646  */
4960      break;
4961  
4962 <  case 322:
4963 <
5663 < /* Line 1806 of yacc.c  */
5664 < #line 2039 "ircd_parser.y"
4962 >  case 361:
4963 > #line 1954 "conf_parser.y" /* yacc.c:1646  */
4964      {
4965    if (conf_parser_ctx.pass == 2)
4966 <    yy_match_item->action |= SHARED_TRESV;
4966 >    block_state.flags.value |= SHARED_UNRESV;
4967   }
4968 + #line 4969 "conf_parser.c" /* yacc.c:1646  */
4969      break;
4970  
4971 <  case 323:
4972 <
5673 < /* Line 1806 of yacc.c  */
5674 < #line 2043 "ircd_parser.y"
4971 >  case 362:
4972 > #line 1958 "conf_parser.y" /* yacc.c:1646  */
4973      {
4974    if (conf_parser_ctx.pass == 2)
4975 <    yy_match_item->action |= SHARED_UNRESV;
4975 >    block_state.flags.value |= SHARED_LOCOPS;
4976   }
4977 + #line 4978 "conf_parser.c" /* yacc.c:1646  */
4978      break;
4979  
4980 <  case 324:
4981 <
5683 < /* Line 1806 of yacc.c  */
5684 < #line 2047 "ircd_parser.y"
4980 >  case 363:
4981 > #line 1962 "conf_parser.y" /* yacc.c:1646  */
4982      {
4983    if (conf_parser_ctx.pass == 2)
4984 <    yy_match_item->action |= SHARED_LOCOPS;
4984 >    block_state.flags.value = SHARED_ALL;
4985   }
4986 + #line 4987 "conf_parser.c" /* yacc.c:1646  */
4987      break;
4988  
4989 <  case 325:
4990 <
5693 < /* Line 1806 of yacc.c  */
5694 < #line 2051 "ircd_parser.y"
4989 >  case 364:
4990 > #line 1971 "conf_parser.y" /* yacc.c:1646  */
4991      {
4992 <  if (conf_parser_ctx.pass == 2)
5697 <    yy_match_item->action = SHARED_ALL;
5698 < }
4992 >  if (conf_parser_ctx.pass != 2)
4993      break;
4994  
4995 <  case 326:
4995 >  reset_block_state();
4996  
4997 < /* Line 1806 of yacc.c  */
4998 < #line 2060 "ircd_parser.y"
5705 <    {
5706 <  if (conf_parser_ctx.pass == 2)
5707 <  {
5708 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5709 <    yy_conf->flags = SHARED_ALL;
5710 <  }
4997 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4998 >  block_state.flags.value = SHARED_ALL;
4999   }
5000 + #line 5001 "conf_parser.c" /* yacc.c:1646  */
5001      break;
5002  
5003 <  case 327:
5004 <
5716 < /* Line 1806 of yacc.c  */
5717 < #line 2067 "ircd_parser.y"
5003 >  case 365:
5004 > #line 1980 "conf_parser.y" /* yacc.c:1646  */
5005      {
5006 <  if (conf_parser_ctx.pass == 2)
5720 <  {
5721 <    if (yy_conf->name == NULL)
5722 <      DupString(yy_conf->name, "*");
5723 <    yy_conf = NULL;
5724 <  }
5725 < }
5726 <    break;
5006 >  struct MaskItem *conf = NULL;
5007  
5008 <  case 333:
5729 <
5730 < /* Line 1806 of yacc.c  */
5731 < #line 2080 "ircd_parser.y"
5732 <    {
5733 <  if (conf_parser_ctx.pass == 2)
5734 <    DupString(yy_conf->name, yylval.string);
5735 < }
5008 >  if (conf_parser_ctx.pass != 2)
5009      break;
5010  
5011 <  case 334:
5012 <
5013 < /* Line 1806 of yacc.c  */
5741 < #line 2086 "ircd_parser.y"
5742 <    {
5743 <  if (conf_parser_ctx.pass == 2)
5744 <    yy_conf->flags = 0;
5011 >  conf = conf_make(CONF_CLUSTER);
5012 >  conf->flags = block_state.flags.value;
5013 >  conf->name = xstrdup(block_state.name.buf);
5014   }
5015 + #line 5016 "conf_parser.c" /* yacc.c:1646  */
5016      break;
5017  
5018 <  case 338:
5019 <
5750 < /* Line 1806 of yacc.c  */
5751 < #line 2093 "ircd_parser.y"
5018 >  case 371:
5019 > #line 1995 "conf_parser.y" /* yacc.c:1646  */
5020      {
5021    if (conf_parser_ctx.pass == 2)
5022 <    yy_conf->flags |= SHARED_KLINE;
5022 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5023   }
5024 + #line 5025 "conf_parser.c" /* yacc.c:1646  */
5025      break;
5026  
5027 <  case 339:
5028 <
5760 < /* Line 1806 of yacc.c  */
5761 < #line 2097 "ircd_parser.y"
5027 >  case 372:
5028 > #line 2001 "conf_parser.y" /* yacc.c:1646  */
5029      {
5030    if (conf_parser_ctx.pass == 2)
5031 <    yy_conf->flags |= SHARED_TKLINE;
5031 >    block_state.flags.value = 0;
5032   }
5033 + #line 5034 "conf_parser.c" /* yacc.c:1646  */
5034      break;
5035  
5036 <  case 340:
5037 <
5770 < /* Line 1806 of yacc.c  */
5771 < #line 2101 "ircd_parser.y"
5036 >  case 376:
5037 > #line 2008 "conf_parser.y" /* yacc.c:1646  */
5038      {
5039    if (conf_parser_ctx.pass == 2)
5040 <    yy_conf->flags |= SHARED_UNKLINE;
5040 >    block_state.flags.value |= SHARED_KLINE;
5041   }
5042 + #line 5043 "conf_parser.c" /* yacc.c:1646  */
5043      break;
5044  
5045 <  case 341:
5046 <
5780 < /* Line 1806 of yacc.c  */
5781 < #line 2105 "ircd_parser.y"
5045 >  case 377:
5046 > #line 2012 "conf_parser.y" /* yacc.c:1646  */
5047      {
5048    if (conf_parser_ctx.pass == 2)
5049 <    yy_conf->flags |= SHARED_XLINE;
5049 >    block_state.flags.value |= SHARED_UNKLINE;
5050   }
5051 + #line 5052 "conf_parser.c" /* yacc.c:1646  */
5052      break;
5053  
5054 <  case 342:
5055 <
5790 < /* Line 1806 of yacc.c  */
5791 < #line 2109 "ircd_parser.y"
5054 >  case 378:
5055 > #line 2016 "conf_parser.y" /* yacc.c:1646  */
5056      {
5057    if (conf_parser_ctx.pass == 2)
5058 <    yy_conf->flags |= SHARED_TXLINE;
5058 >    block_state.flags.value |= SHARED_DLINE;
5059   }
5060 + #line 5061 "conf_parser.c" /* yacc.c:1646  */
5061      break;
5062  
5063 <  case 343:
5064 <
5800 < /* Line 1806 of yacc.c  */
5801 < #line 2113 "ircd_parser.y"
5063 >  case 379:
5064 > #line 2020 "conf_parser.y" /* yacc.c:1646  */
5065      {
5066    if (conf_parser_ctx.pass == 2)
5067 <    yy_conf->flags |= SHARED_UNXLINE;
5067 >    block_state.flags.value |= SHARED_UNDLINE;
5068   }
5069 + #line 5070 "conf_parser.c" /* yacc.c:1646  */
5070      break;
5071  
5072 <  case 344:
5073 <
5810 < /* Line 1806 of yacc.c  */
5811 < #line 2117 "ircd_parser.y"
5072 >  case 380:
5073 > #line 2024 "conf_parser.y" /* yacc.c:1646  */
5074      {
5075    if (conf_parser_ctx.pass == 2)
5076 <    yy_conf->flags |= SHARED_RESV;
5076 >    block_state.flags.value |= SHARED_XLINE;
5077   }
5078 + #line 5079 "conf_parser.c" /* yacc.c:1646  */
5079      break;
5080  
5081 <  case 345:
5082 <
5820 < /* Line 1806 of yacc.c  */
5821 < #line 2121 "ircd_parser.y"
5081 >  case 381:
5082 > #line 2028 "conf_parser.y" /* yacc.c:1646  */
5083      {
5084    if (conf_parser_ctx.pass == 2)
5085 <    yy_conf->flags |= SHARED_TRESV;
5085 >    block_state.flags.value |= SHARED_UNXLINE;
5086   }
5087 + #line 5088 "conf_parser.c" /* yacc.c:1646  */
5088      break;
5089  
5090 <  case 346:
5091 <
5830 < /* Line 1806 of yacc.c  */
5831 < #line 2125 "ircd_parser.y"
5090 >  case 382:
5091 > #line 2032 "conf_parser.y" /* yacc.c:1646  */
5092      {
5093    if (conf_parser_ctx.pass == 2)
5094 <    yy_conf->flags |= SHARED_UNRESV;
5094 >    block_state.flags.value |= SHARED_RESV;
5095   }
5096 + #line 5097 "conf_parser.c" /* yacc.c:1646  */
5097      break;
5098  
5099 <  case 347:
5100 <
5840 < /* Line 1806 of yacc.c  */
5841 < #line 2129 "ircd_parser.y"
5099 >  case 383:
5100 > #line 2036 "conf_parser.y" /* yacc.c:1646  */
5101      {
5102    if (conf_parser_ctx.pass == 2)
5103 <    yy_conf->flags |= SHARED_LOCOPS;
5103 >    block_state.flags.value |= SHARED_UNRESV;
5104   }
5105 + #line 5106 "conf_parser.c" /* yacc.c:1646  */
5106      break;
5107  
5108 <  case 348:
5109 <
5850 < /* Line 1806 of yacc.c  */
5851 < #line 2133 "ircd_parser.y"
5108 >  case 384:
5109 > #line 2040 "conf_parser.y" /* yacc.c:1646  */
5110      {
5111    if (conf_parser_ctx.pass == 2)
5112 <    yy_conf->flags = SHARED_ALL;
5112 >    block_state.flags.value |= SHARED_LOCOPS;
5113   }
5114 + #line 5115 "conf_parser.c" /* yacc.c:1646  */
5115      break;
5116  
5117 <  case 349:
5118 <
5860 < /* Line 1806 of yacc.c  */
5861 < #line 2142 "ircd_parser.y"
5117 >  case 385:
5118 > #line 2044 "conf_parser.y" /* yacc.c:1646  */
5119      {
5120    if (conf_parser_ctx.pass == 2)
5121 <  {
5865 <    yy_conf = make_conf_item(SERVER_TYPE);
5866 <    yy_aconf = (struct AccessItem *)map_to_conf(yy_conf);
5867 <    yy_aconf->passwd = NULL;
5868 <    /* defaults */
5869 <    yy_aconf->port = PORTNUM;
5870 <
5871 <    if (ConfigFileEntry.burst_away)
5872 <      yy_aconf->flags = CONF_FLAGS_BURST_AWAY;
5873 <  }
5874 <  else
5875 <  {
5876 <    MyFree(class_name);
5877 <    class_name = NULL;
5878 <  }
5121 >    block_state.flags.value = SHARED_ALL;
5122   }
5123 + #line 5124 "conf_parser.c" /* yacc.c:1646  */
5124      break;
5125  
5126 <  case 350:
5127 <
5884 < /* Line 1806 of yacc.c  */
5885 < #line 2160 "ircd_parser.y"
5126 >  case 386:
5127 > #line 2053 "conf_parser.y" /* yacc.c:1646  */
5128      {
5887  if (conf_parser_ctx.pass == 2)
5888  {
5889    struct CollectItem *yy_hconf=NULL;
5890    struct CollectItem *yy_lconf=NULL;
5891    dlink_node *ptr;
5892    dlink_node *next_ptr;
5893 #ifdef HAVE_LIBCRYPTO
5894    if (yy_aconf->host &&
5895        ((yy_aconf->passwd && yy_aconf->spasswd) ||
5896         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
5897 #else /* !HAVE_LIBCRYPTO */
5898      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
5899          yy_aconf->passwd && yy_aconf->spasswd)
5900 #endif /* !HAVE_LIBCRYPTO */
5901        {
5902          if (conf_add_server(yy_conf, class_name) == -1)
5903          {
5904            delete_conf_item(yy_conf);
5905            yy_conf = NULL;
5906            yy_aconf = NULL;
5907          }
5908        }
5909        else
5910        {
5911          /* Even if yy_conf ->name is NULL
5912           * should still unhook any hub/leaf confs still pending
5913           */
5914          unhook_hub_leaf_confs();
5915
5916          if (yy_conf->name != NULL)
5917          {
5918 #ifndef HAVE_LIBCRYPTO
5919            if (IsConfCryptLink(yy_aconf))
5920              yyerror("Ignoring connect block -- no OpenSSL support");
5921 #else
5922            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
5923              yyerror("Ignoring connect block -- missing key");
5924 #endif
5925            if (yy_aconf->host == NULL)
5926              yyerror("Ignoring connect block -- missing host");
5927            else if (!IsConfCryptLink(yy_aconf) &&
5928                    (!yy_aconf->passwd || !yy_aconf->spasswd))
5929              yyerror("Ignoring connect block -- missing password");
5930          }
5931
5932
5933          /* XXX
5934           * This fixes a try_connections() core (caused by invalid class_ptr
5935           * pointers) reported by metalrock. That's an ugly fix, but there
5936           * is currently no better way. The entire config subsystem needs an
5937           * rewrite ASAP. make_conf_item() shouldn't really add things onto
5938           * a doubly linked list immediately without any sanity checks!  -Michael
5939           */
5940          delete_conf_item(yy_conf);
5941
5942          yy_aconf = NULL;
5943          yy_conf = NULL;
5944        }
5945
5946      /*
5947       * yy_conf is still pointing at the server that is having
5948       * a connect block built for it. This means, y_aconf->name
5949       * points to the actual irc name this server will be known as.
5950       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5951       * given in the link list at yy_hconf. Fill in the HUB confs
5952       * from this link list now.
5953       */        
5954      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5955      {
5956        struct ConfItem *new_hub_conf;
5957        struct MatchItem *match_item;
5958
5959        yy_hconf = ptr->data;
5960
5961        /* yy_conf == NULL is a fatal error for this connect block! */
5962        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5963        {
5964          new_hub_conf = make_conf_item(HUB_TYPE);
5965          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5966          DupString(new_hub_conf->name, yy_conf->name);
5967          if (yy_hconf->user != NULL)
5968            DupString(match_item->user, yy_hconf->user);
5969          else
5970            DupString(match_item->user, "*");
5971          if (yy_hconf->host != NULL)
5972            DupString(match_item->host, yy_hconf->host);
5973          else
5974            DupString(match_item->host, "*");
5975        }
5976        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5977        free_collect_item(yy_hconf);
5978      }
5979
5980      /* Ditto for the LEAF confs */
5981
5982      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5983      {
5984        struct ConfItem *new_leaf_conf;
5985        struct MatchItem *match_item;
5129  
5130 <        yy_lconf = ptr->data;
5130 >  if (conf_parser_ctx.pass != 2)
5131 >    break;
5132  
5133 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5134 <        {
5135 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5992 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5993 <          DupString(new_leaf_conf->name, yy_conf->name);
5994 <          if (yy_lconf->user != NULL)
5995 <            DupString(match_item->user, yy_lconf->user);
5996 <          else
5997 <            DupString(match_item->user, "*");
5998 <          if (yy_lconf->host != NULL)
5999 <            DupString(match_item->host, yy_lconf->host);
6000 <          else
6001 <            DupString(match_item->host, "*");
6002 <        }
6003 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
6004 <        free_collect_item(yy_lconf);
6005 <      }
6006 <      MyFree(class_name);
6007 <      class_name = NULL;
6008 <      yy_conf = NULL;
6009 <      yy_aconf = NULL;
6010 <  }
5133 >  reset_block_state();
5134 >  block_state.aftype.value = AF_INET;
5135 >  block_state.port.value = PORTNUM;
5136   }
5137 + #line 5138 "conf_parser.c" /* yacc.c:1646  */
5138      break;
5139  
5140 <  case 370:
5141 <
6016 < /* Line 1806 of yacc.c  */
6017 < #line 2298 "ircd_parser.y"
5140 >  case 387:
5141 > #line 2062 "conf_parser.y" /* yacc.c:1646  */
5142      {
5143 <  if (conf_parser_ctx.pass == 2)
5144 <  {
6021 <    if (yy_conf->name != NULL)
6022 <      yyerror("Multiple connect name entry");
5143 >  struct MaskItem *conf = NULL;
5144 >  struct addrinfo hints, *res;
5145  
5146 <    MyFree(yy_conf->name);
6025 <    DupString(yy_conf->name, yylval.string);
6026 <  }
6027 < }
5146 >  if (conf_parser_ctx.pass != 2)
5147      break;
5148  
5149 <  case 371:
5149 >  if (!block_state.name.buf[0] ||
5150 >      !block_state.host.buf[0])
5151 >    break;
5152  
5153 < /* Line 1806 of yacc.c  */
5154 < #line 2310 "ircd_parser.y"
5155 <    {
6035 <  if (conf_parser_ctx.pass == 2)
6036 <  {
6037 <    if (yy_conf->name != NULL)
6038 <      yyerror("Multiple connect name entry");
5153 >  if (!block_state.rpass.buf[0] ||
5154 >      !block_state.spass.buf[0])
5155 >    break;
5156  
5157 <    MyFree(yy_conf->name);
5158 <    DupString(yy_conf->name, yylval.string);
6042 <  }
6043 < }
5157 >  if (has_wildcards(block_state.name.buf) ||
5158 >      has_wildcards(block_state.host.buf))
5159      break;
5160  
5161 <  case 372:
5161 >  conf = conf_make(CONF_SERVER);
5162 >  conf->port = block_state.port.value;
5163 >  conf->flags = block_state.flags.value;
5164 >  conf->aftype = block_state.aftype.value;
5165 >  conf->host = xstrdup(block_state.host.buf);
5166 >  conf->name = xstrdup(block_state.name.buf);
5167 >  conf->passwd = xstrdup(block_state.rpass.buf);
5168 >  conf->spasswd = xstrdup(block_state.spass.buf);
5169  
5170 < /* Line 1806 of yacc.c  */
5171 < #line 2322 "ircd_parser.y"
6050 <    {
6051 <  if (conf_parser_ctx.pass == 2)
6052 <  {
6053 <    MyFree(yy_aconf->host);
6054 <    DupString(yy_aconf->host, yylval.string);
6055 <  }
6056 < }
6057 <    break;
5170 >  if (block_state.cert.buf[0])
5171 >    conf->certfp = xstrdup(block_state.cert.buf);
5172  
5173 <  case 373:
5173 >  if (block_state.ciph.buf[0])
5174 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5175  
5176 < /* Line 1806 of yacc.c  */
5177 < #line 2331 "ircd_parser.y"
6063 <    {
6064 <  if (conf_parser_ctx.pass == 2)
6065 <  {
6066 <    struct addrinfo hints, *res;
5176 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5177 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5178  
5179 +  if (block_state.bind.buf[0])
5180 +  {
5181      memset(&hints, 0, sizeof(hints));
5182  
5183      hints.ai_family   = AF_UNSPEC;
5184      hints.ai_socktype = SOCK_STREAM;
5185      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5186  
5187 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5188 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5187 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5188 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5189      else
5190      {
5191        assert(res != NULL);
5192  
5193 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5194 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5195 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5193 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5194 >      conf->bind.ss.ss_family = res->ai_family;
5195 >      conf->bind.ss_len = res->ai_addrlen;
5196        freeaddrinfo(res);
5197      }
5198    }
6086 }
6087    break;
6088
6089  case 374:
5199  
5200 < /* Line 1806 of yacc.c  */
5201 < #line 2357 "ircd_parser.y"
6093 <    {
6094 <  if (conf_parser_ctx.pass == 2)
6095 <  {
6096 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6097 <      yyerror("Server passwords cannot begin with a colon");
6098 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6099 <      yyerror("Server passwords cannot contain spaces");
6100 <    else {
6101 <      if (yy_aconf->spasswd != NULL)
6102 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
6103 <
6104 <      MyFree(yy_aconf->spasswd);
6105 <      DupString(yy_aconf->spasswd, yylval.string);
6106 <    }
6107 <  }
5200 >  conf_add_class_to_conf(conf, block_state.class.buf);
5201 >  lookup_confhost(conf);
5202   }
5203 + #line 5204 "conf_parser.c" /* yacc.c:1646  */
5204      break;
5205  
5206 <  case 375:
5207 <
6113 < /* Line 1806 of yacc.c  */
6114 < #line 2375 "ircd_parser.y"
5206 >  case 405:
5207 > #line 2134 "conf_parser.y" /* yacc.c:1646  */
5208      {
5209    if (conf_parser_ctx.pass == 2)
5210 <  {
6118 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
6119 <      yyerror("Server passwords cannot begin with a colon");
6120 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
6121 <      yyerror("Server passwords cannot contain spaces");
6122 <    else {
6123 <      if (yy_aconf->passwd != NULL)
6124 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
6125 <
6126 <      MyFree(yy_aconf->passwd);
6127 <      DupString(yy_aconf->passwd, yylval.string);
6128 <    }
6129 <  }
5210 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5211   }
5212 + #line 5213 "conf_parser.c" /* yacc.c:1646  */
5213      break;
5214  
5215 <  case 376:
5216 <
6135 < /* Line 1806 of yacc.c  */
6136 < #line 2393 "ircd_parser.y"
5215 >  case 406:
5216 > #line 2140 "conf_parser.y" /* yacc.c:1646  */
5217      {
5218    if (conf_parser_ctx.pass == 2)
5219 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5219 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5220   }
5221 + #line 5222 "conf_parser.c" /* yacc.c:1646  */
5222      break;
5223  
5224 <  case 377:
5225 <
6145 < /* Line 1806 of yacc.c  */
6146 < #line 2399 "ircd_parser.y"
5224 >  case 407:
5225 > #line 2146 "conf_parser.y" /* yacc.c:1646  */
5226      {
5227    if (conf_parser_ctx.pass == 2)
5228 <    yy_aconf->aftype = AF_INET;
5228 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5229   }
5230 + #line 5231 "conf_parser.c" /* yacc.c:1646  */
5231      break;
5232  
5233 <  case 378:
5234 <
6155 < /* Line 1806 of yacc.c  */
6156 < #line 2403 "ircd_parser.y"
5233 >  case 408:
5234 > #line 2152 "conf_parser.y" /* yacc.c:1646  */
5235      {
5236 < #ifdef IPV6
6159 <  if (conf_parser_ctx.pass == 2)
6160 <    yy_aconf->aftype = AF_INET6;
6161 < #endif
6162 < }
5236 >  if (conf_parser_ctx.pass != 2)
5237      break;
5238  
5239 <  case 379:
5240 <
5241 < /* Line 1806 of yacc.c  */
5242 < #line 2411 "ircd_parser.y"
5243 <    {
5239 >  if ((yyvsp[-1].string)[0] == ':')
5240 >    conf_error_report("Server passwords cannot begin with a colon");
5241 >  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5242 >    conf_error_report("Server passwords cannot contain spaces");
5243 >  else
5244 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5245   }
5246 + #line 5247 "conf_parser.c" /* yacc.c:1646  */
5247      break;
5248  
5249 <  case 383:
5250 <
5251 < /* Line 1806 of yacc.c  */
5252 < #line 2415 "ircd_parser.y"
6177 <    { not_atom = 1; }
5249 >  case 409:
5250 > #line 2165 "conf_parser.y" /* yacc.c:1646  */
5251 >    {
5252 >  if (conf_parser_ctx.pass != 2)
5253      break;
5254  
5255 <  case 385:
5256 <
5257 < /* Line 1806 of yacc.c  */
5258 < #line 2416 "ircd_parser.y"
5259 <    { not_atom = 0; }
5255 >  if ((yyvsp[-1].string)[0] == ':')
5256 >    conf_error_report("Server passwords cannot begin with a colon");
5257 >  else if (strchr((yyvsp[-1].string), ' ') != NULL)
5258 >    conf_error_report("Server passwords cannot contain spaces");
5259 >  else
5260 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5261 > }
5262 > #line 5263 "conf_parser.c" /* yacc.c:1646  */
5263      break;
5264  
5265 <  case 387:
5266 <
6189 < /* Line 1806 of yacc.c  */
6190 < #line 2419 "ircd_parser.y"
5265 >  case 410:
5266 > #line 2178 "conf_parser.y" /* yacc.c:1646  */
5267      {
5268    if (conf_parser_ctx.pass == 2)
5269 < #ifndef HAVE_LIBZ
6194 <    yyerror("Ignoring flags = compressed; -- no zlib support");
6195 < #else
6196 < {
6197 <   if (not_atom)ClearConfCompressed(yy_aconf);
6198 <   else SetConfCompressed(yy_aconf);
6199 < }
6200 < #endif
5269 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5270   }
5271 + #line 5272 "conf_parser.c" /* yacc.c:1646  */
5272      break;
5273  
5274 <  case 388:
5275 <
6206 < /* Line 1806 of yacc.c  */
6207 < #line 2430 "ircd_parser.y"
5274 >  case 411:
5275 > #line 2184 "conf_parser.y" /* yacc.c:1646  */
5276      {
5277    if (conf_parser_ctx.pass == 2)
5278 <  {
6211 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6212 <    else SetConfCryptLink(yy_aconf);
6213 <  }
5278 >    block_state.port.value = (yyvsp[-1].number);
5279   }
5280 + #line 5281 "conf_parser.c" /* yacc.c:1646  */
5281      break;
5282  
5283 <  case 389:
5284 <
6219 < /* Line 1806 of yacc.c  */
6220 < #line 2437 "ircd_parser.y"
5283 >  case 412:
5284 > #line 2190 "conf_parser.y" /* yacc.c:1646  */
5285      {
5286    if (conf_parser_ctx.pass == 2)
5287 <  {
6224 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6225 <    else SetConfAllowAutoConn(yy_aconf);
6226 <  }
5287 >    block_state.aftype.value = AF_INET;
5288   }
5289 + #line 5290 "conf_parser.c" /* yacc.c:1646  */
5290      break;
5291  
5292 <  case 390:
5293 <
6232 < /* Line 1806 of yacc.c  */
6233 < #line 2444 "ircd_parser.y"
5292 >  case 413:
5293 > #line 2194 "conf_parser.y" /* yacc.c:1646  */
5294      {
5295 + #ifdef IPV6
5296    if (conf_parser_ctx.pass == 2)
5297 <  {
5298 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6238 <    else SetConfAwayBurst(yy_aconf);
6239 <  }
5297 >    block_state.aftype.value = AF_INET6;
5298 > #endif
5299   }
5300 + #line 5301 "conf_parser.c" /* yacc.c:1646  */
5301      break;
5302  
5303 <  case 391:
5304 <
6245 < /* Line 1806 of yacc.c  */
6246 < #line 2451 "ircd_parser.y"
5303 >  case 414:
5304 > #line 2202 "conf_parser.y" /* yacc.c:1646  */
5305      {
5306 <  if (conf_parser_ctx.pass == 2)
6249 <  {
6250 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6251 <    else SetConfTopicBurst(yy_aconf);
6252 <  }
5306 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5307   }
5308 + #line 5309 "conf_parser.c" /* yacc.c:1646  */
5309      break;
5310  
5311 <  case 392:
5312 <
6258 < /* Line 1806 of yacc.c  */
6259 < #line 2461 "ircd_parser.y"
5311 >  case 418:
5312 > #line 2208 "conf_parser.y" /* yacc.c:1646  */
5313      {
6261 #ifdef HAVE_LIBCRYPTO
5314    if (conf_parser_ctx.pass == 2)
5315 <  {
5316 <    BIO *file;
5317 <
5318 <    if (yy_aconf->rsa_public_key != NULL)
6267 <    {
6268 <      RSA_free(yy_aconf->rsa_public_key);
6269 <      yy_aconf->rsa_public_key = NULL;
6270 <    }
6271 <
6272 <    if (yy_aconf->rsa_public_key_file != NULL)
6273 <    {
6274 <      MyFree(yy_aconf->rsa_public_key_file);
6275 <      yy_aconf->rsa_public_key_file = NULL;
6276 <    }
6277 <
6278 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6279 <
6280 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6281 <    {
6282 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6283 <      break;
6284 <    }
6285 <
6286 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
5315 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5316 > }
5317 > #line 5318 "conf_parser.c" /* yacc.c:1646  */
5318 >    break;
5319  
5320 <    if (yy_aconf->rsa_public_key == NULL)
5320 >  case 419:
5321 > #line 2212 "conf_parser.y" /* yacc.c:1646  */
5322      {
5323 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
5324 <      break;
6292 <    }
6293 <      
6294 <    BIO_set_close(file, BIO_CLOSE);
6295 <    BIO_free(file);
6296 <  }
6297 < #endif /* HAVE_LIBCRYPTO */
5323 >  if (conf_parser_ctx.pass == 2)
5324 >    block_state.flags.value |= CONF_FLAGS_SSL;
5325   }
5326 + #line 5327 "conf_parser.c" /* yacc.c:1646  */
5327      break;
5328  
5329 <  case 393:
5330 <
6303 < /* Line 1806 of yacc.c  */
6304 < #line 2502 "ircd_parser.y"
5329 >  case 420:
5330 > #line 2218 "conf_parser.y" /* yacc.c:1646  */
5331      {
5332    if (conf_parser_ctx.pass == 2)
5333    {
5334      if (yylval.number)
5335 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5335 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5336      else
5337 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5337 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5338    }
5339   }
5340 + #line 5341 "conf_parser.c" /* yacc.c:1646  */
5341      break;
5342  
5343 <  case 394:
5344 <
6318 < /* Line 1806 of yacc.c  */
6319 < #line 2513 "ircd_parser.y"
5343 >  case 421:
5344 > #line 2229 "conf_parser.y" /* yacc.c:1646  */
5345      {
5346    if (conf_parser_ctx.pass == 2)
5347 <  {
6323 <    struct CollectItem *yy_tmp;
6324 <
6325 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6326 <    DupString(yy_tmp->host, yylval.string);
6327 <    DupString(yy_tmp->user, "*");
6328 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6329 <  }
5347 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5348   }
5349 + #line 5350 "conf_parser.c" /* yacc.c:1646  */
5350      break;
5351  
5352 <  case 395:
5353 <
6335 < /* Line 1806 of yacc.c  */
6336 < #line 2526 "ircd_parser.y"
5352 >  case 422:
5353 > #line 2235 "conf_parser.y" /* yacc.c:1646  */
5354      {
5355    if (conf_parser_ctx.pass == 2)
5356 <  {
6340 <    struct CollectItem *yy_tmp;
6341 <
6342 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6343 <    DupString(yy_tmp->host, yylval.string);
6344 <    DupString(yy_tmp->user, "*");
6345 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6346 <  }
5356 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5357   }
5358 + #line 5359 "conf_parser.c" /* yacc.c:1646  */
5359      break;
5360  
5361 <  case 396:
5362 <
6352 < /* Line 1806 of yacc.c  */
6353 < #line 2539 "ircd_parser.y"
5361 >  case 423:
5362 > #line 2241 "conf_parser.y" /* yacc.c:1646  */
5363      {
5364    if (conf_parser_ctx.pass == 2)
5365 <  {
6357 <    MyFree(class_name);
6358 <    DupString(class_name, yylval.string);
6359 <  }
5365 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5366   }
5367 + #line 5368 "conf_parser.c" /* yacc.c:1646  */
5368      break;
5369  
5370 <  case 397:
5371 <
6365 < /* Line 1806 of yacc.c  */
6366 < #line 2548 "ircd_parser.y"
5370 >  case 424:
5371 > #line 2247 "conf_parser.y" /* yacc.c:1646  */
5372      {
5373   #ifdef HAVE_LIBCRYPTO
5374    if (conf_parser_ctx.pass == 2)
5375 <  {
6371 <    struct EncCapability *ecap;
6372 <    const char *cipher_name;
6373 <    int found = 0;
6374 <
6375 <    yy_aconf->cipher_preference = NULL;
6376 <    cipher_name = yylval.string;
6377 <
6378 <    for (ecap = CipherTable; ecap->name; ecap++)
6379 <    {
6380 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6381 <          (ecap->cap & CAP_ENC_MASK))
6382 <      {
6383 <        yy_aconf->cipher_preference = ecap;
6384 <        found = 1;
6385 <        break;
6386 <      }
6387 <    }
6388 <
6389 <    if (!found)
6390 <      yyerror("Invalid cipher");
6391 <  }
5375 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5376   #else
5377    if (conf_parser_ctx.pass == 2)
5378 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5378 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5379   #endif
5380   }
5381 + #line 5382 "conf_parser.c" /* yacc.c:1646  */
5382      break;
5383  
5384 <  case 398:
5385 <
6401 < /* Line 1806 of yacc.c  */
6402 < #line 2583 "ircd_parser.y"
5384 >  case 425:
5385 > #line 2262 "conf_parser.y" /* yacc.c:1646  */
5386      {
5387    if (conf_parser_ctx.pass == 2)
5388 <  {
6406 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6407 <    regex_ban = 0;
6408 <  }
5388 >    reset_block_state();
5389   }
5390 + #line 5391 "conf_parser.c" /* yacc.c:1646  */
5391      break;
5392  
5393 <  case 399:
5394 <
6414 < /* Line 1806 of yacc.c  */
6415 < #line 2590 "ircd_parser.y"
6416 <    {
6417 <  if (conf_parser_ctx.pass == 2)
6418 <  {
6419 <    if (userbuf[0] && hostbuf[0])
5393 >  case 426:
5394 > #line 2266 "conf_parser.y" /* yacc.c:1646  */
5395      {
5396 <      if (regex_ban)
6422 <      {
6423 < #ifdef HAVE_LIBPCRE
6424 <        void *exp_user = NULL;
6425 <        void *exp_host = NULL;
6426 <        const char *errptr = NULL;
6427 <
6428 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6429 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6430 <        {
6431 <          ilog(L_ERROR, "Failed to add regular expression based K-Line: %s",
6432 <               errptr);
6433 <          break;
6434 <        }
6435 <
6436 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6437 <        yy_aconf->regexuser = exp_user;
6438 <        yy_aconf->regexhost = exp_host;
5396 >  struct MaskItem *conf = NULL;
5397  
5398 <        DupString(yy_aconf->user, userbuf);
6441 <        DupString(yy_aconf->host, hostbuf);
6442 <
6443 <        if (reasonbuf[0])
6444 <          DupString(yy_aconf->reason, reasonbuf);
6445 <        else
6446 <          DupString(yy_aconf->reason, "No reason");
6447 < #else
6448 <        ilog(L_ERROR, "Failed to add regular expression based K-Line: no PCRE support");
6449 <        break;
6450 < #endif
6451 <      }
6452 <      else
6453 <      {
6454 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6455 <
6456 <        DupString(yy_aconf->user, userbuf);
6457 <        DupString(yy_aconf->host, hostbuf);
6458 <
6459 <        if (reasonbuf[0])
6460 <          DupString(yy_aconf->reason, reasonbuf);
6461 <        else
6462 <          DupString(yy_aconf->reason, "No reason");
6463 <        add_conf_by_address(CONF_KILL, yy_aconf);
6464 <      }
6465 <    }
6466 <
6467 <    yy_aconf = NULL;
6468 <  }
6469 < }
5398 >  if (conf_parser_ctx.pass != 2)
5399      break;
5400  
5401 <  case 400:
5402 <
6474 < /* Line 1806 of yacc.c  */
6475 < #line 2646 "ircd_parser.y"
6476 <    {
6477 < }
5401 >  if (!block_state.user.buf[0] ||
5402 >      !block_state.host.buf[0])
5403      break;
5404  
5405 <  case 404:
5405 >  conf = conf_make(CONF_KLINE);
5406 >  conf->user = xstrdup(block_state.user.buf);
5407 >  conf->host = xstrdup(block_state.host.buf);
5408  
5409 < /* Line 1806 of yacc.c  */
5410 < #line 2651 "ircd_parser.y"
5411 <    {
5412 <  if (conf_parser_ctx.pass == 2)
5413 <    regex_ban = 1;
5409 >  if (block_state.rpass.buf[0])
5410 >    conf->reason = xstrdup(block_state.rpass.buf);
5411 >  else
5412 >    conf->reason = xstrdup(CONF_NOREASON);
5413 >  add_conf_by_address(CONF_KLINE, conf);
5414   }
5415 + #line 5416 "conf_parser.c" /* yacc.c:1646  */
5416      break;
5417  
5418 <  case 411:
5419 <
6492 < /* Line 1806 of yacc.c  */
6493 < #line 2660 "ircd_parser.y"
5418 >  case 432:
5419 > #line 2291 "conf_parser.y" /* yacc.c:1646  */
5420      {
5421 +
5422    if (conf_parser_ctx.pass == 2)
5423    {
5424      struct split_nuh_item nuh;
5425  
5426      nuh.nuhmask  = yylval.string;
5427      nuh.nickptr  = NULL;
5428 <    nuh.userptr  = userbuf;
5429 <    nuh.hostptr  = hostbuf;
5428 >    nuh.userptr  = block_state.user.buf;
5429 >    nuh.hostptr  = block_state.host.buf;
5430  
5431      nuh.nicksize = 0;
5432 <    nuh.usersize = sizeof(userbuf);
5433 <    nuh.hostsize = sizeof(hostbuf);
5432 >    nuh.usersize = sizeof(block_state.user.buf);
5433 >    nuh.hostsize = sizeof(block_state.host.buf);
5434  
5435      split_nuh(&nuh);
5436    }
5437   }
5438 + #line 5439 "conf_parser.c" /* yacc.c:1646  */
5439      break;
5440  
5441 <  case 412:
5442 <
6515 < /* Line 1806 of yacc.c  */
6516 < #line 2679 "ircd_parser.y"
5441 >  case 433:
5442 > #line 2311 "conf_parser.y" /* yacc.c:1646  */
5443      {
5444    if (conf_parser_ctx.pass == 2)
5445 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5445 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5446   }
5447 + #line 5448 "conf_parser.c" /* yacc.c:1646  */
5448      break;
5449  
5450 <  case 413:
5451 <
6525 < /* Line 1806 of yacc.c  */
6526 < #line 2688 "ircd_parser.y"
5450 >  case 434:
5451 > #line 2320 "conf_parser.y" /* yacc.c:1646  */
5452      {
5453    if (conf_parser_ctx.pass == 2)
5454 <    hostbuf[0] = reasonbuf[0] = '\0';
5454 >    reset_block_state();
5455   }
5456 + #line 5457 "conf_parser.c" /* yacc.c:1646  */
5457      break;
5458  
5459 <  case 414:
5460 <
6535 < /* Line 1806 of yacc.c  */
6536 < #line 2692 "ircd_parser.y"
5459 >  case 435:
5460 > #line 2324 "conf_parser.y" /* yacc.c:1646  */
5461      {
5462 <  if (conf_parser_ctx.pass == 2)
6539 <  {
6540 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
6541 <    {
6542 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6543 <      DupString(yy_aconf->host, hostbuf);
5462 >  struct MaskItem *conf = NULL;
5463  
5464 <      if (reasonbuf[0])
6546 <        DupString(yy_aconf->reason, reasonbuf);
6547 <      else
6548 <        DupString(yy_aconf->reason, "No reason");
6549 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6550 <      yy_aconf = NULL;
6551 <    }
6552 <  }
6553 < }
5464 >  if (conf_parser_ctx.pass != 2)
5465      break;
5466  
5467 <  case 420:
6557 <
6558 < /* Line 1806 of yacc.c  */
6559 < #line 2714 "ircd_parser.y"
6560 <    {
6561 <  if (conf_parser_ctx.pass == 2)
6562 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
6563 < }
5467 >  if (!block_state.addr.buf[0])
5468      break;
5469  
5470 <  case 421:
5470 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5471 >  {
5472 >    conf = conf_make(CONF_DLINE);
5473 >    conf->host = xstrdup(block_state.addr.buf);
5474  
5475 < /* Line 1806 of yacc.c  */
5476 < #line 2720 "ircd_parser.y"
5477 <    {
5478 <  if (conf_parser_ctx.pass == 2)
5479 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5475 >    if (block_state.rpass.buf[0])
5476 >      conf->reason = xstrdup(block_state.rpass.buf);
5477 >    else
5478 >      conf->reason = xstrdup(CONF_NOREASON);
5479 >    add_conf_by_address(CONF_DLINE, conf);
5480 >  }
5481   }
5482 + #line 5483 "conf_parser.c" /* yacc.c:1646  */
5483      break;
5484  
5485 <  case 427:
5486 <
6578 < /* Line 1806 of yacc.c  */
6579 < #line 2734 "ircd_parser.y"
5485 >  case 441:
5486 > #line 2350 "conf_parser.y" /* yacc.c:1646  */
5487      {
5488    if (conf_parser_ctx.pass == 2)
5489 <  {
6583 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
6584 <    {
6585 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
6586 <      DupString(yy_aconf->host, yylval.string);
6587 <
6588 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6589 <      yy_aconf = NULL;
6590 <    }
6591 <  }
5489 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5490   }
5491 + #line 5492 "conf_parser.c" /* yacc.c:1646  */
5492      break;
5493  
5494 <  case 428:
5495 <
6597 < /* Line 1806 of yacc.c  */
6598 < #line 2752 "ircd_parser.y"
5494 >  case 442:
5495 > #line 2356 "conf_parser.y" /* yacc.c:1646  */
5496      {
5497    if (conf_parser_ctx.pass == 2)
5498 <  {
6602 <    regex_ban = 0;
6603 <    reasonbuf[0] = gecos_name[0] = '\0';
6604 <  }
5498 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5499   }
5500 + #line 5501 "conf_parser.c" /* yacc.c:1646  */
5501      break;
5502  
5503 <  case 429:
5504 <
6610 < /* Line 1806 of yacc.c  */
6611 < #line 2759 "ircd_parser.y"
5503 >  case 448:
5504 > #line 2370 "conf_parser.y" /* yacc.c:1646  */
5505      {
5506    if (conf_parser_ctx.pass == 2)
5507    {
5508 <    if (gecos_name[0])
5508 >    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5509      {
5510 <      if (regex_ban)
5511 <      {
6619 < #ifdef HAVE_LIBPCRE
6620 <        void *exp_p = NULL;
6621 <        const char *errptr = NULL;
6622 <
6623 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
6624 <        {
6625 <          ilog(L_ERROR, "Failed to add regular expression based X-Line: %s",
6626 <               errptr);
6627 <          break;
6628 <        }
6629 <
6630 <        yy_conf = make_conf_item(RXLINE_TYPE);
6631 <        yy_conf->regexpname = exp_p;
6632 < #else
6633 <        ilog(L_ERROR, "Failed to add regular expression based X-Line: no PCRE support");
6634 <        break;
6635 < #endif
6636 <      }
6637 <      else
6638 <        yy_conf = make_conf_item(XLINE_TYPE);
6639 <
6640 <      yy_match_item = map_to_conf(yy_conf);
6641 <      DupString(yy_conf->name, gecos_name);
5510 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5511 >      conf->host = xstrdup(yylval.string);
5512  
5513 <      if (reasonbuf[0])
6644 <        DupString(yy_match_item->reason, reasonbuf);
6645 <      else
6646 <        DupString(yy_match_item->reason, "No reason");
5513 >      add_conf_by_address(CONF_EXEMPT, conf);
5514      }
5515    }
5516   }
5517 + #line 5518 "conf_parser.c" /* yacc.c:1646  */
5518      break;
5519  
5520 <  case 430:
5521 <
6654 < /* Line 1806 of yacc.c  */
6655 < #line 2799 "ircd_parser.y"
6656 <    {
6657 < }
6658 <    break;
6659 <
6660 <  case 434:
6661 <
6662 < /* Line 1806 of yacc.c  */
6663 < #line 2804 "ircd_parser.y"
6664 <    {
6665 <  if (conf_parser_ctx.pass == 2)
6666 <    regex_ban = 1;
6667 < }
6668 <    break;
6669 <
6670 <  case 441:
6671 <
6672 < /* Line 1806 of yacc.c  */
6673 < #line 2813 "ircd_parser.y"
6674 <    {
6675 <  if (conf_parser_ctx.pass == 2)
6676 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
6677 < }
6678 <    break;
6679 <
6680 <  case 442:
6681 <
6682 < /* Line 1806 of yacc.c  */
6683 < #line 2819 "ircd_parser.y"
5520 >  case 449:
5521 > #line 2387 "conf_parser.y" /* yacc.c:1646  */
5522      {
5523    if (conf_parser_ctx.pass == 2)
5524 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
6687 < }
6688 <    break;
6689 <
6690 <  case 502:
6691 <
6692 < /* Line 1806 of yacc.c  */
6693 < #line 2864 "ircd_parser.y"
6694 <    {
6695 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
6696 < }
6697 <    break;
6698 <
6699 <  case 503:
6700 <
6701 < /* Line 1806 of yacc.c  */
6702 < #line 2869 "ircd_parser.y"
6703 <    {
6704 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
6705 < }
6706 <    break;
6707 <
6708 <  case 504:
6709 <
6710 < /* Line 1806 of yacc.c  */
6711 < #line 2874 "ircd_parser.y"
6712 <    {
6713 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5524 >    reset_block_state();
5525   }
5526 + #line 5527 "conf_parser.c" /* yacc.c:1646  */
5527      break;
5528  
5529 <  case 505:
5530 <
6719 < /* Line 1806 of yacc.c  */
6720 < #line 2879 "ircd_parser.y"
5529 >  case 450:
5530 > #line 2391 "conf_parser.y" /* yacc.c:1646  */
5531      {
5532 <  ConfigFileEntry.burst_away = yylval.number;
6723 < }
6724 <    break;
5532 >  struct MaskItem *conf = NULL;
5533  
5534 <  case 506:
6727 <
6728 < /* Line 1806 of yacc.c  */
6729 < #line 2884 "ircd_parser.y"
6730 <    {
6731 <  ConfigFileEntry.use_whois_actually = yylval.number;
6732 < }
5534 >  if (conf_parser_ctx.pass != 2)
5535      break;
5536  
5537 <  case 507:
6736 <
6737 < /* Line 1806 of yacc.c  */
6738 < #line 2889 "ircd_parser.y"
6739 <    {
6740 <  GlobalSetOptions.rejecttime = yylval.number;
6741 < }
5537 >  if (!block_state.name.buf[0])
5538      break;
5539  
5540 <  case 508:
5540 >  conf = conf_make(CONF_XLINE);
5541 >  conf->name = xstrdup(block_state.name.buf);
5542  
5543 < /* Line 1806 of yacc.c  */
5544 < #line 2894 "ircd_parser.y"
5545 <    {
5546 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5543 >  if (block_state.rpass.buf[0])
5544 >    conf->reason = xstrdup(block_state.rpass.buf);
5545 >  else
5546 >    conf->reason = xstrdup(CONF_NOREASON);
5547   }
5548 + #line 5549 "conf_parser.c" /* yacc.c:1646  */
5549      break;
5550  
5551 <  case 509:
5552 <
6755 < /* Line 1806 of yacc.c  */
6756 < #line 2899 "ircd_parser.y"
5551 >  case 456:
5552 > #line 2413 "conf_parser.y" /* yacc.c:1646  */
5553      {
5554 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5554 >  if (conf_parser_ctx.pass == 2)
5555 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5556   }
5557 + #line 5558 "conf_parser.c" /* yacc.c:1646  */
5558      break;
5559  
5560 <  case 510:
5561 <
6764 < /* Line 1806 of yacc.c  */
6765 < #line 2904 "ircd_parser.y"
5560 >  case 457:
5561 > #line 2419 "conf_parser.y" /* yacc.c:1646  */
5562      {
5563 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5563 >  if (conf_parser_ctx.pass == 2)
5564 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5565   }
5566 + #line 5567 "conf_parser.c" /* yacc.c:1646  */
5567      break;
5568  
5569    case 511:
5570 <
6773 < /* Line 1806 of yacc.c  */
6774 < #line 2909 "ircd_parser.y"
5570 > #line 2464 "conf_parser.y" /* yacc.c:1646  */
5571      {
5572 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5572 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5573   }
5574 + #line 5575 "conf_parser.c" /* yacc.c:1646  */
5575      break;
5576  
5577    case 512:
5578 <
6782 < /* Line 1806 of yacc.c  */
6783 < #line 2914 "ircd_parser.y"
5578 > #line 2469 "conf_parser.y" /* yacc.c:1646  */
5579      {
5580 <  ConfigFileEntry.disable_remote = yylval.number;
5580 >  if (conf_parser_ctx.pass == 2)
5581 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5582   }
5583 + #line 5584 "conf_parser.c" /* yacc.c:1646  */
5584      break;
5585  
5586    case 513:
5587 <
6791 < /* Line 1806 of yacc.c  */
6792 < #line 2919 "ircd_parser.y"
5587 > #line 2475 "conf_parser.y" /* yacc.c:1646  */
5588      {
5589 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5589 >  if (conf_parser_ctx.pass == 2)
5590 >    ConfigFileEntry.glines = yylval.number;
5591   }
5592 + #line 5593 "conf_parser.c" /* yacc.c:1646  */
5593      break;
5594  
5595    case 514:
5596 <
6800 < /* Line 1806 of yacc.c  */
6801 < #line 2924 "ircd_parser.y"
5596 > #line 2481 "conf_parser.y" /* yacc.c:1646  */
5597      {
5598 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5598 >  if (conf_parser_ctx.pass == 2)
5599 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5600   }
5601 + #line 5602 "conf_parser.c" /* yacc.c:1646  */
5602      break;
5603  
5604    case 515:
5605 <
6809 < /* Line 1806 of yacc.c  */
6810 < #line 2929 "ircd_parser.y"
5605 > #line 2487 "conf_parser.y" /* yacc.c:1646  */
5606      {
5607 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5607 >  if (conf_parser_ctx.pass == 2)
5608 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5609   }
5610 + #line 5611 "conf_parser.c" /* yacc.c:1646  */
5611      break;
5612  
5613    case 516:
5614 <
6818 < /* Line 1806 of yacc.c  */
6819 < #line 2934 "ircd_parser.y"
5614 > #line 2493 "conf_parser.y" /* yacc.c:1646  */
5615      {
5616 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5616 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5617   }
5618 + #line 5619 "conf_parser.c" /* yacc.c:1646  */
5619      break;
5620  
5621    case 517:
5622 <
6827 < /* Line 1806 of yacc.c  */
6828 < #line 2939 "ircd_parser.y"
5622 > #line 2498 "conf_parser.y" /* yacc.c:1646  */
5623      {
5624 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5624 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5625   }
5626 + #line 5627 "conf_parser.c" /* yacc.c:1646  */
5627      break;
5628  
5629    case 518:
5630 <
6836 < /* Line 1806 of yacc.c  */
6837 < #line 2944 "ircd_parser.y"
5630 > #line 2503 "conf_parser.y" /* yacc.c:1646  */
5631      {
5632 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5632 >  ConfigFileEntry.tkline_expire_notices = yylval.number;
5633   }
5634 + #line 5635 "conf_parser.c" /* yacc.c:1646  */
5635      break;
5636  
5637    case 519:
5638 <
6845 < /* Line 1806 of yacc.c  */
6846 < #line 2949 "ircd_parser.y"
5638 > #line 2508 "conf_parser.y" /* yacc.c:1646  */
5639      {
5640 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5640 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5641   }
5642 + #line 5643 "conf_parser.c" /* yacc.c:1646  */
5643      break;
5644  
5645    case 520:
5646 <
6854 < /* Line 1806 of yacc.c  */
6855 < #line 2954 "ircd_parser.y"
5646 > #line 2513 "conf_parser.y" /* yacc.c:1646  */
5647      {
5648 <  if (conf_parser_ctx.pass == 2)
6858 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5648 >  ConfigFileEntry.hide_spoof_ips = yylval.number;
5649   }
5650 + #line 5651 "conf_parser.c" /* yacc.c:1646  */
5651      break;
5652  
5653    case 521:
5654 <
6864 < /* Line 1806 of yacc.c  */
6865 < #line 2960 "ircd_parser.y"
5654 > #line 2518 "conf_parser.y" /* yacc.c:1646  */
5655      {
5656 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6868 <  {
6869 <    ilog(L_CRIT, "You haven't read your config file properly.");
6870 <    ilog(L_CRIT, "There is a line in the example conf that will kill your server if not removed.");
6871 <    ilog(L_CRIT, "Consider actually reading/editing the conf file, and removing this line.");
6872 <    exit(0);
6873 <  }
5656 >  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5657   }
5658 + #line 5659 "conf_parser.c" /* yacc.c:1646  */
5659      break;
5660  
5661    case 522:
5662 <
6879 < /* Line 1806 of yacc.c  */
6880 < #line 2971 "ircd_parser.y"
5662 > #line 2523 "conf_parser.y" /* yacc.c:1646  */
5663      {
5664 <  ConfigFileEntry.kline_with_reason = yylval.number;
5664 >  ConfigFileEntry.failed_oper_notice = yylval.number;
5665   }
5666 + #line 5667 "conf_parser.c" /* yacc.c:1646  */
5667      break;
5668  
5669    case 523:
5670 <
6888 < /* Line 1806 of yacc.c  */
6889 < #line 2976 "ircd_parser.y"
5670 > #line 2528 "conf_parser.y" /* yacc.c:1646  */
5671      {
5672 <  if (conf_parser_ctx.pass == 2)
6892 <  {
6893 <    MyFree(ConfigFileEntry.kline_reason);
6894 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6895 <  }
5672 >  ConfigFileEntry.anti_nick_flood = yylval.number;
5673   }
5674 + #line 5675 "conf_parser.c" /* yacc.c:1646  */
5675      break;
5676  
5677    case 524:
5678 <
6901 < /* Line 1806 of yacc.c  */
6902 < #line 2985 "ircd_parser.y"
5678 > #line 2533 "conf_parser.y" /* yacc.c:1646  */
5679      {
5680 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5680 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5681   }
5682 + #line 5683 "conf_parser.c" /* yacc.c:1646  */
5683      break;
5684  
5685    case 525:
5686 <
6910 < /* Line 1806 of yacc.c  */
6911 < #line 2990 "ircd_parser.y"
5686 > #line 2538 "conf_parser.y" /* yacc.c:1646  */
5687      {
5688 <  ConfigFileEntry.warn_no_nline = yylval.number;
5688 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5689   }
5690 + #line 5691 "conf_parser.c" /* yacc.c:1646  */
5691      break;
5692  
5693    case 526:
5694 <
6919 < /* Line 1806 of yacc.c  */
6920 < #line 2995 "ircd_parser.y"
5694 > #line 2543 "conf_parser.y" /* yacc.c:1646  */
5695      {
5696 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5696 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5697   }
5698 + #line 5699 "conf_parser.c" /* yacc.c:1646  */
5699      break;
5700  
5701    case 527:
5702 <
6928 < /* Line 1806 of yacc.c  */
6929 < #line 3000 "ircd_parser.y"
5702 > #line 2548 "conf_parser.y" /* yacc.c:1646  */
5703      {
5704 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5704 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5705   }
5706 + #line 5707 "conf_parser.c" /* yacc.c:1646  */
5707      break;
5708  
5709    case 528:
5710 <
6937 < /* Line 1806 of yacc.c  */
6938 < #line 3005 "ircd_parser.y"
5710 > #line 2553 "conf_parser.y" /* yacc.c:1646  */
5711      {
5712 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5712 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5713   }
5714 + #line 5715 "conf_parser.c" /* yacc.c:1646  */
5715      break;
5716  
5717    case 529:
5718 <
6946 < /* Line 1806 of yacc.c  */
6947 < #line 3010 "ircd_parser.y"
5718 > #line 2558 "conf_parser.y" /* yacc.c:1646  */
5719      {
5720 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5720 >  if (conf_parser_ctx.pass == 2)
5721 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5722   }
5723 + #line 5724 "conf_parser.c" /* yacc.c:1646  */
5724      break;
5725  
5726    case 530:
5727 <
6955 < /* Line 1806 of yacc.c  */
6956 < #line 3013 "ircd_parser.y"
5727 > #line 2564 "conf_parser.y" /* yacc.c:1646  */
5728      {
5729 <  ConfigFileEntry.stats_k_oper_only = 1;
5729 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5730 >  {
5731 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5732 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5733 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5734 >    exit(0);
5735 >  }
5736   }
5737 + #line 5738 "conf_parser.c" /* yacc.c:1646  */
5738      break;
5739  
5740    case 531:
5741 <
6964 < /* Line 1806 of yacc.c  */
6965 < #line 3018 "ircd_parser.y"
5741 > #line 2575 "conf_parser.y" /* yacc.c:1646  */
5742      {
5743 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5743 >  ConfigFileEntry.invisible_on_connect = yylval.number;
5744   }
5745 + #line 5746 "conf_parser.c" /* yacc.c:1646  */
5746      break;
5747  
5748    case 532:
5749 <
6973 < /* Line 1806 of yacc.c  */
6974 < #line 3021 "ircd_parser.y"
5749 > #line 2580 "conf_parser.y" /* yacc.c:1646  */
5750      {
5751 <  ConfigFileEntry.stats_i_oper_only = 1;
5751 >  ConfigFileEntry.warn_no_nline = yylval.number;
5752   }
5753 + #line 5754 "conf_parser.c" /* yacc.c:1646  */
5754      break;
5755  
5756    case 533:
5757 <
6982 < /* Line 1806 of yacc.c  */
6983 < #line 3026 "ircd_parser.y"
5757 > #line 2585 "conf_parser.y" /* yacc.c:1646  */
5758      {
5759 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5759 >  ConfigFileEntry.stats_e_disabled = yylval.number;
5760   }
5761 + #line 5762 "conf_parser.c" /* yacc.c:1646  */
5762      break;
5763  
5764    case 534:
5765 <
6991 < /* Line 1806 of yacc.c  */
6992 < #line 3031 "ircd_parser.y"
5765 > #line 2590 "conf_parser.y" /* yacc.c:1646  */
5766      {
5767 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5767 >  ConfigFileEntry.stats_o_oper_only = yylval.number;
5768   }
5769 + #line 5770 "conf_parser.c" /* yacc.c:1646  */
5770      break;
5771  
5772    case 535:
5773 <
7000 < /* Line 1806 of yacc.c  */
7001 < #line 3036 "ircd_parser.y"
5773 > #line 2595 "conf_parser.y" /* yacc.c:1646  */
5774      {
5775 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5775 >  ConfigFileEntry.stats_P_oper_only = yylval.number;
5776   }
5777 + #line 5778 "conf_parser.c" /* yacc.c:1646  */
5778      break;
5779  
5780    case 536:
5781 <
7009 < /* Line 1806 of yacc.c  */
7010 < #line 3041 "ircd_parser.y"
5781 > #line 2600 "conf_parser.y" /* yacc.c:1646  */
5782      {
5783 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5783 >  ConfigFileEntry.stats_u_oper_only = yylval.number;
5784   }
5785 + #line 5786 "conf_parser.c" /* yacc.c:1646  */
5786      break;
5787  
5788    case 537:
5789 <
7018 < /* Line 1806 of yacc.c  */
7019 < #line 3046 "ircd_parser.y"
5789 > #line 2605 "conf_parser.y" /* yacc.c:1646  */
5790      {
5791 <  ConfigFileEntry.short_motd = yylval.number;
5791 >  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5792   }
5793 + #line 5794 "conf_parser.c" /* yacc.c:1646  */
5794      break;
5795  
5796    case 538:
5797 <
7027 < /* Line 1806 of yacc.c  */
7028 < #line 3051 "ircd_parser.y"
5797 > #line 2608 "conf_parser.y" /* yacc.c:1646  */
5798      {
5799 <  ConfigFileEntry.no_oper_flood = yylval.number;
5799 >  ConfigFileEntry.stats_k_oper_only = 1;
5800   }
5801 + #line 5802 "conf_parser.c" /* yacc.c:1646  */
5802      break;
5803  
5804    case 539:
5805 <
7036 < /* Line 1806 of yacc.c  */
7037 < #line 3056 "ircd_parser.y"
5805 > #line 2613 "conf_parser.y" /* yacc.c:1646  */
5806      {
5807 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5807 >  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5808   }
5809 + #line 5810 "conf_parser.c" /* yacc.c:1646  */
5810      break;
5811  
5812    case 540:
5813 <
7045 < /* Line 1806 of yacc.c  */
7046 < #line 3061 "ircd_parser.y"
5813 > #line 2616 "conf_parser.y" /* yacc.c:1646  */
5814      {
5815 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5815 >  ConfigFileEntry.stats_i_oper_only = 1;
5816   }
5817 + #line 5818 "conf_parser.c" /* yacc.c:1646  */
5818      break;
5819  
5820    case 541:
5821 <
7054 < /* Line 1806 of yacc.c  */
7055 < #line 3066 "ircd_parser.y"
5821 > #line 2621 "conf_parser.y" /* yacc.c:1646  */
5822      {
5823 <  if (conf_parser_ctx.pass == 2)
7058 <  {
7059 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
7060 <      yylval.string[LOCALE_LENGTH-1] = '\0';
7061 <
7062 <    set_locale(yylval.string);
7063 <  }
5823 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5824   }
5825 + #line 5826 "conf_parser.c" /* yacc.c:1646  */
5826      break;
5827  
5828    case 542:
5829 <
7069 < /* Line 1806 of yacc.c  */
7070 < #line 3077 "ircd_parser.y"
5829 > #line 2626 "conf_parser.y" /* yacc.c:1646  */
5830      {
5831 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
5831 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5832   }
5833 + #line 5834 "conf_parser.c" /* yacc.c:1646  */
5834      break;
5835  
5836    case 543:
5837 <
7078 < /* Line 1806 of yacc.c  */
7079 < #line 3082 "ircd_parser.y"
5837 > #line 2631 "conf_parser.y" /* yacc.c:1646  */
5838      {
5839 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5839 >  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5840   }
5841 + #line 5842 "conf_parser.c" /* yacc.c:1646  */
5842      break;
5843  
5844    case 544:
5845 <
7087 < /* Line 1806 of yacc.c  */
7088 < #line 3087 "ircd_parser.y"
5845 > #line 2636 "conf_parser.y" /* yacc.c:1646  */
5846      {
5847 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5847 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5848   }
5849 + #line 5850 "conf_parser.c" /* yacc.c:1646  */
5850      break;
5851  
5852    case 545:
5853 <
7096 < /* Line 1806 of yacc.c  */
7097 < #line 3092 "ircd_parser.y"
5853 > #line 2641 "conf_parser.y" /* yacc.c:1646  */
5854      {
5855 <  if (conf_parser_ctx.pass == 2)
7100 <  {
7101 <    MyFree(ConfigFileEntry.servlink_path);
7102 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7103 <  }
5855 >  ConfigFileEntry.short_motd = yylval.number;
5856   }
5857 + #line 5858 "conf_parser.c" /* yacc.c:1646  */
5858      break;
5859  
5860    case 546:
5861 <
7109 < /* Line 1806 of yacc.c  */
7110 < #line 3101 "ircd_parser.y"
7111 <    {
7112 < #ifdef HAVE_LIBCRYPTO
7113 <  if (conf_parser_ctx.pass == 2)
7114 <  {
7115 <    struct EncCapability *ecap;
7116 <    const char *cipher_name;
7117 <    int found = 0;
7118 <
7119 <    ConfigFileEntry.default_cipher_preference = NULL;
7120 <    cipher_name = yylval.string;
7121 <
7122 <    for (ecap = CipherTable; ecap->name; ecap++)
5861 > #line 2646 "conf_parser.y" /* yacc.c:1646  */
5862      {
5863 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
7125 <          (ecap->cap & CAP_ENC_MASK))
7126 <      {
7127 <        ConfigFileEntry.default_cipher_preference = ecap;
7128 <        found = 1;
7129 <        break;
7130 <      }
7131 <    }
7132 <
7133 <    if (!found)
7134 <      yyerror("Invalid cipher");
7135 <  }
7136 < #else
7137 <  if (conf_parser_ctx.pass == 2)
7138 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
7139 < #endif
5863 >  ConfigFileEntry.no_oper_flood = yylval.number;
5864   }
5865 + #line 5866 "conf_parser.c" /* yacc.c:1646  */
5866      break;
5867  
5868    case 547:
5869 <
7145 < /* Line 1806 of yacc.c  */
7146 < #line 3133 "ircd_parser.y"
5869 > #line 2651 "conf_parser.y" /* yacc.c:1646  */
5870      {
5871 <  if (conf_parser_ctx.pass == 2)
7149 <  {
7150 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
7151 < #ifndef HAVE_LIBZ
7152 <    yyerror("Ignoring compression_level -- no zlib support");
7153 < #else
7154 <    if ((ConfigFileEntry.compression_level < 1) ||
7155 <        (ConfigFileEntry.compression_level > 9))
7156 <    {
7157 <      yyerror("Ignoring invalid compression_level, using default");
7158 <      ConfigFileEntry.compression_level = 0;
7159 <    }
7160 < #endif
7161 <  }
5871 >  ConfigFileEntry.true_no_oper_flood = yylval.number;
5872   }
5873 + #line 5874 "conf_parser.c" /* yacc.c:1646  */
5874      break;
5875  
5876    case 548:
5877 <
7167 < /* Line 1806 of yacc.c  */
7168 < #line 3151 "ircd_parser.y"
5877 > #line 2656 "conf_parser.y" /* yacc.c:1646  */
5878      {
5879 <  ConfigFileEntry.use_egd = yylval.number;
5879 >  ConfigFileEntry.oper_pass_resv = yylval.number;
5880   }
5881 + #line 5882 "conf_parser.c" /* yacc.c:1646  */
5882      break;
5883  
5884    case 549:
5885 <
7176 < /* Line 1806 of yacc.c  */
7177 < #line 3156 "ircd_parser.y"
5885 > #line 2661 "conf_parser.y" /* yacc.c:1646  */
5886      {
5887 <  if (conf_parser_ctx.pass == 2)
7180 <  {
7181 <    MyFree(ConfigFileEntry.egdpool_path);
7182 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
7183 <  }
5887 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5888   }
5889 + #line 5890 "conf_parser.c" /* yacc.c:1646  */
5890      break;
5891  
5892    case 550:
5893 <
7189 < /* Line 1806 of yacc.c  */
7190 < #line 3165 "ircd_parser.y"
5893 > #line 2666 "conf_parser.y" /* yacc.c:1646  */
5894      {
5895 <  ConfigFileEntry.ping_cookie = yylval.number;
5895 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5896   }
5897 + #line 5898 "conf_parser.c" /* yacc.c:1646  */
5898      break;
5899  
5900    case 551:
5901 <
7198 < /* Line 1806 of yacc.c  */
7199 < #line 3170 "ircd_parser.y"
5901 > #line 2671 "conf_parser.y" /* yacc.c:1646  */
5902      {
5903 <  ConfigFileEntry.disable_auth = yylval.number;
5903 >  ConfigFileEntry.use_egd = yylval.number;
5904   }
5905 + #line 5906 "conf_parser.c" /* yacc.c:1646  */
5906      break;
5907  
5908    case 552:
5909 <
7207 < /* Line 1806 of yacc.c  */
7208 < #line 3175 "ircd_parser.y"
5909 > #line 2676 "conf_parser.y" /* yacc.c:1646  */
5910      {
5911 <  ConfigFileEntry.throttle_time = yylval.number;
5911 >  if (conf_parser_ctx.pass == 2)
5912 >  {
5913 >    MyFree(ConfigFileEntry.egdpool_path);
5914 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
5915 >  }
5916   }
5917 + #line 5918 "conf_parser.c" /* yacc.c:1646  */
5918      break;
5919  
5920    case 553:
5921 <
7216 < /* Line 1806 of yacc.c  */
7217 < #line 3180 "ircd_parser.y"
5921 > #line 2685 "conf_parser.y" /* yacc.c:1646  */
5922      {
5923 <  ConfigFileEntry.oper_umodes = 0;
5923 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
5924 >  {
5925 >    MyFree(ConfigFileEntry.service_name);
5926 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
5927 >  }
5928   }
5929 + #line 5930 "conf_parser.c" /* yacc.c:1646  */
5930      break;
5931  
5932 <  case 557:
5933 <
7225 < /* Line 1806 of yacc.c  */
7226 < #line 3186 "ircd_parser.y"
5932 >  case 554:
5933 > #line 2694 "conf_parser.y" /* yacc.c:1646  */
5934      {
5935 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5935 >  ConfigFileEntry.ping_cookie = yylval.number;
5936   }
5937 + #line 5938 "conf_parser.c" /* yacc.c:1646  */
5938      break;
5939  
5940 <  case 558:
5941 <
7234 < /* Line 1806 of yacc.c  */
7235 < #line 3189 "ircd_parser.y"
5940 >  case 555:
5941 > #line 2699 "conf_parser.y" /* yacc.c:1646  */
5942      {
5943 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5943 >  ConfigFileEntry.disable_auth = yylval.number;
5944   }
5945 + #line 5946 "conf_parser.c" /* yacc.c:1646  */
5946      break;
5947  
5948 <  case 559:
5949 <
7243 < /* Line 1806 of yacc.c  */
7244 < #line 3192 "ircd_parser.y"
5948 >  case 556:
5949 > #line 2704 "conf_parser.y" /* yacc.c:1646  */
5950      {
5951 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
5951 >  ConfigFileEntry.throttle_time = yylval.number;
5952   }
5953 + #line 5954 "conf_parser.c" /* yacc.c:1646  */
5954      break;
5955  
5956 <  case 560:
5957 <
7252 < /* Line 1806 of yacc.c  */
7253 < #line 3195 "ircd_parser.y"
5956 >  case 557:
5957 > #line 2709 "conf_parser.y" /* yacc.c:1646  */
5958      {
5959 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5959 >  ConfigFileEntry.oper_umodes = 0;
5960   }
5961 + #line 5962 "conf_parser.c" /* yacc.c:1646  */
5962      break;
5963  
5964    case 561:
5965 <
7261 < /* Line 1806 of yacc.c  */
7262 < #line 3198 "ircd_parser.y"
5965 > #line 2715 "conf_parser.y" /* yacc.c:1646  */
5966      {
5967 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5967 >  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5968   }
5969 + #line 5970 "conf_parser.c" /* yacc.c:1646  */
5970      break;
5971  
5972    case 562:
5973 <
7270 < /* Line 1806 of yacc.c  */
7271 < #line 3201 "ircd_parser.y"
5973 > #line 2718 "conf_parser.y" /* yacc.c:1646  */
5974      {
5975 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
5975 >  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5976   }
5977 + #line 5978 "conf_parser.c" /* yacc.c:1646  */
5978      break;
5979  
5980    case 563:
5981 <
7279 < /* Line 1806 of yacc.c  */
7280 < #line 3204 "ircd_parser.y"
5981 > #line 2721 "conf_parser.y" /* yacc.c:1646  */
5982      {
5983 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
5983 >  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5984   }
5985 + #line 5986 "conf_parser.c" /* yacc.c:1646  */
5986      break;
5987  
5988    case 564:
5989 <
7288 < /* Line 1806 of yacc.c  */
7289 < #line 3207 "ircd_parser.y"
5989 > #line 2724 "conf_parser.y" /* yacc.c:1646  */
5990      {
5991 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
5991 >  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5992   }
5993 + #line 5994 "conf_parser.c" /* yacc.c:1646  */
5994      break;
5995  
5996    case 565:
5997 <
7297 < /* Line 1806 of yacc.c  */
7298 < #line 3210 "ircd_parser.y"
5997 > #line 2727 "conf_parser.y" /* yacc.c:1646  */
5998      {
5999 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
5999 >  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6000   }
6001 + #line 6002 "conf_parser.c" /* yacc.c:1646  */
6002      break;
6003  
6004    case 566:
6005 <
7306 < /* Line 1806 of yacc.c  */
7307 < #line 3213 "ircd_parser.y"
6005 > #line 2730 "conf_parser.y" /* yacc.c:1646  */
6006      {
6007 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6007 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6008   }
6009 + #line 6010 "conf_parser.c" /* yacc.c:1646  */
6010      break;
6011  
6012    case 567:
6013 <
7315 < /* Line 1806 of yacc.c  */
7316 < #line 3216 "ircd_parser.y"
6013 > #line 2733 "conf_parser.y" /* yacc.c:1646  */
6014      {
6015 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6015 >  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6016   }
6017 + #line 6018 "conf_parser.c" /* yacc.c:1646  */
6018      break;
6019  
6020    case 568:
6021 <
7324 < /* Line 1806 of yacc.c  */
7325 < #line 3219 "ircd_parser.y"
6021 > #line 2736 "conf_parser.y" /* yacc.c:1646  */
6022      {
6023 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6023 >  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6024   }
6025 + #line 6026 "conf_parser.c" /* yacc.c:1646  */
6026      break;
6027  
6028    case 569:
6029 <
7333 < /* Line 1806 of yacc.c  */
7334 < #line 3222 "ircd_parser.y"
6029 > #line 2739 "conf_parser.y" /* yacc.c:1646  */
6030      {
6031 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6031 >  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6032   }
6033 + #line 6034 "conf_parser.c" /* yacc.c:1646  */
6034      break;
6035  
6036    case 570:
6037 <
7342 < /* Line 1806 of yacc.c  */
7343 < #line 3225 "ircd_parser.y"
6037 > #line 2742 "conf_parser.y" /* yacc.c:1646  */
6038      {
6039 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6039 >  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6040   }
6041 + #line 6042 "conf_parser.c" /* yacc.c:1646  */
6042      break;
6043  
6044    case 571:
6045 <
7351 < /* Line 1806 of yacc.c  */
7352 < #line 3228 "ircd_parser.y"
6045 > #line 2745 "conf_parser.y" /* yacc.c:1646  */
6046      {
6047 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6047 >  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6048   }
6049 + #line 6050 "conf_parser.c" /* yacc.c:1646  */
6050      break;
6051  
6052    case 572:
6053 <
7360 < /* Line 1806 of yacc.c  */
7361 < #line 3231 "ircd_parser.y"
6053 > #line 2748 "conf_parser.y" /* yacc.c:1646  */
6054      {
6055 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6055 >  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6056   }
6057 + #line 6058 "conf_parser.c" /* yacc.c:1646  */
6058      break;
6059  
6060    case 573:
6061 <
7369 < /* Line 1806 of yacc.c  */
7370 < #line 3234 "ircd_parser.y"
6061 > #line 2751 "conf_parser.y" /* yacc.c:1646  */
6062      {
6063 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6063 >  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6064   }
6065 + #line 6066 "conf_parser.c" /* yacc.c:1646  */
6066      break;
6067  
6068    case 574:
6069 <
7378 < /* Line 1806 of yacc.c  */
7379 < #line 3237 "ircd_parser.y"
6069 > #line 2754 "conf_parser.y" /* yacc.c:1646  */
6070      {
6071 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6071 >  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6072   }
6073 + #line 6074 "conf_parser.c" /* yacc.c:1646  */
6074      break;
6075  
6076    case 575:
6077 <
7387 < /* Line 1806 of yacc.c  */
7388 < #line 3240 "ircd_parser.y"
6077 > #line 2757 "conf_parser.y" /* yacc.c:1646  */
6078      {
6079 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6079 >  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6080   }
6081 + #line 6082 "conf_parser.c" /* yacc.c:1646  */
6082      break;
6083  
6084    case 576:
6085 <
7396 < /* Line 1806 of yacc.c  */
7397 < #line 3245 "ircd_parser.y"
6085 > #line 2760 "conf_parser.y" /* yacc.c:1646  */
6086      {
6087 <  ConfigFileEntry.oper_only_umodes = 0;
6087 >  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6088   }
6089 + #line 6090 "conf_parser.c" /* yacc.c:1646  */
6090      break;
6091  
6092 <  case 580:
6093 <
7405 < /* Line 1806 of yacc.c  */
7406 < #line 3251 "ircd_parser.y"
6092 >  case 577:
6093 > #line 2763 "conf_parser.y" /* yacc.c:1646  */
6094      {
6095 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6095 >  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6096   }
6097 + #line 6098 "conf_parser.c" /* yacc.c:1646  */
6098      break;
6099  
6100 <  case 581:
6101 <
7414 < /* Line 1806 of yacc.c  */
7415 < #line 3254 "ircd_parser.y"
6100 >  case 578:
6101 > #line 2766 "conf_parser.y" /* yacc.c:1646  */
6102      {
6103 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6103 >  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6104   }
6105 + #line 6106 "conf_parser.c" /* yacc.c:1646  */
6106      break;
6107  
6108 <  case 582:
6109 <
7423 < /* Line 1806 of yacc.c  */
7424 < #line 3257 "ircd_parser.y"
6108 >  case 579:
6109 > #line 2769 "conf_parser.y" /* yacc.c:1646  */
6110      {
6111 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6111 >  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6112   }
6113 + #line 6114 "conf_parser.c" /* yacc.c:1646  */
6114      break;
6115  
6116 <  case 583:
6117 <
7432 < /* Line 1806 of yacc.c  */
7433 < #line 3260 "ircd_parser.y"
6116 >  case 580:
6117 > #line 2772 "conf_parser.y" /* yacc.c:1646  */
6118      {
6119 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6119 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6120   }
6121 + #line 6122 "conf_parser.c" /* yacc.c:1646  */
6122      break;
6123  
6124 <  case 584:
6125 <
7441 < /* Line 1806 of yacc.c  */
7442 < #line 3263 "ircd_parser.y"
6124 >  case 581:
6125 > #line 2775 "conf_parser.y" /* yacc.c:1646  */
6126      {
6127 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6127 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6128   }
6129 + #line 6130 "conf_parser.c" /* yacc.c:1646  */
6130      break;
6131  
6132 <  case 585:
6133 <
6134 < /* Line 1806 of yacc.c  */
6135 < #line 3266 "ircd_parser.y"
7452 <    {
7453 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6132 >  case 582:
6133 > #line 2780 "conf_parser.y" /* yacc.c:1646  */
6134 >    {
6135 >  ConfigFileEntry.oper_only_umodes = 0;
6136   }
6137 + #line 6138 "conf_parser.c" /* yacc.c:1646  */
6138      break;
6139  
6140    case 586:
6141 <
7459 < /* Line 1806 of yacc.c  */
7460 < #line 3269 "ircd_parser.y"
6141 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6142      {
6143 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6143 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6144   }
6145 + #line 6146 "conf_parser.c" /* yacc.c:1646  */
6146      break;
6147  
6148    case 587:
6149 <
7468 < /* Line 1806 of yacc.c  */
7469 < #line 3272 "ircd_parser.y"
6149 > #line 2789 "conf_parser.y" /* yacc.c:1646  */
6150      {
6151 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6151 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6152   }
6153 + #line 6154 "conf_parser.c" /* yacc.c:1646  */
6154      break;
6155  
6156    case 588:
6157 <
7477 < /* Line 1806 of yacc.c  */
7478 < #line 3275 "ircd_parser.y"
6157 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6158      {
6159 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6159 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6160   }
6161 + #line 6162 "conf_parser.c" /* yacc.c:1646  */
6162      break;
6163  
6164    case 589:
6165 <
7486 < /* Line 1806 of yacc.c  */
7487 < #line 3278 "ircd_parser.y"
6165 > #line 2795 "conf_parser.y" /* yacc.c:1646  */
6166      {
6167 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6167 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6168   }
6169 + #line 6170 "conf_parser.c" /* yacc.c:1646  */
6170      break;
6171  
6172    case 590:
6173 <
7495 < /* Line 1806 of yacc.c  */
7496 < #line 3281 "ircd_parser.y"
6173 > #line 2798 "conf_parser.y" /* yacc.c:1646  */
6174      {
6175 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6175 >  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6176   }
6177 + #line 6178 "conf_parser.c" /* yacc.c:1646  */
6178      break;
6179  
6180    case 591:
6181 <
7504 < /* Line 1806 of yacc.c  */
7505 < #line 3284 "ircd_parser.y"
6181 > #line 2801 "conf_parser.y" /* yacc.c:1646  */
6182      {
6183 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6183 >  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6184   }
6185 + #line 6186 "conf_parser.c" /* yacc.c:1646  */
6186      break;
6187  
6188    case 592:
6189 <
7513 < /* Line 1806 of yacc.c  */
7514 < #line 3287 "ircd_parser.y"
6189 > #line 2804 "conf_parser.y" /* yacc.c:1646  */
6190      {
6191 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6191 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6192   }
6193 + #line 6194 "conf_parser.c" /* yacc.c:1646  */
6194      break;
6195  
6196    case 593:
6197 <
7522 < /* Line 1806 of yacc.c  */
7523 < #line 3290 "ircd_parser.y"
6197 > #line 2807 "conf_parser.y" /* yacc.c:1646  */
6198      {
6199 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6199 >  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6200   }
6201 + #line 6202 "conf_parser.c" /* yacc.c:1646  */
6202      break;
6203  
6204    case 594:
6205 <
7531 < /* Line 1806 of yacc.c  */
7532 < #line 3293 "ircd_parser.y"
6205 > #line 2810 "conf_parser.y" /* yacc.c:1646  */
6206      {
6207 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6207 >  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6208   }
6209 + #line 6210 "conf_parser.c" /* yacc.c:1646  */
6210      break;
6211  
6212    case 595:
6213 <
7540 < /* Line 1806 of yacc.c  */
7541 < #line 3296 "ircd_parser.y"
6213 > #line 2813 "conf_parser.y" /* yacc.c:1646  */
6214      {
6215 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6215 >  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6216   }
6217 + #line 6218 "conf_parser.c" /* yacc.c:1646  */
6218      break;
6219  
6220    case 596:
6221 <
7549 < /* Line 1806 of yacc.c  */
7550 < #line 3299 "ircd_parser.y"
6221 > #line 2816 "conf_parser.y" /* yacc.c:1646  */
6222      {
6223 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6223 >  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6224   }
6225 + #line 6226 "conf_parser.c" /* yacc.c:1646  */
6226      break;
6227  
6228    case 597:
6229 <
7558 < /* Line 1806 of yacc.c  */
7559 < #line 3302 "ircd_parser.y"
6229 > #line 2819 "conf_parser.y" /* yacc.c:1646  */
6230      {
6231 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6231 >  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6232   }
6233 + #line 6234 "conf_parser.c" /* yacc.c:1646  */
6234      break;
6235  
6236    case 598:
6237 <
7567 < /* Line 1806 of yacc.c  */
7568 < #line 3305 "ircd_parser.y"
6237 > #line 2822 "conf_parser.y" /* yacc.c:1646  */
6238      {
6239 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6239 >  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6240   }
6241 + #line 6242 "conf_parser.c" /* yacc.c:1646  */
6242      break;
6243  
6244    case 599:
6245 <
7576 < /* Line 1806 of yacc.c  */
7577 < #line 3310 "ircd_parser.y"
6245 > #line 2825 "conf_parser.y" /* yacc.c:1646  */
6246      {
6247 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6247 >  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6248   }
6249 + #line 6250 "conf_parser.c" /* yacc.c:1646  */
6250      break;
6251  
6252    case 600:
6253 <
7585 < /* Line 1806 of yacc.c  */
7586 < #line 3315 "ircd_parser.y"
6253 > #line 2828 "conf_parser.y" /* yacc.c:1646  */
6254      {
6255 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6255 >  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6256   }
6257 + #line 6258 "conf_parser.c" /* yacc.c:1646  */
6258      break;
6259  
6260    case 601:
6261 <
7594 < /* Line 1806 of yacc.c  */
7595 < #line 3320 "ircd_parser.y"
6261 > #line 2831 "conf_parser.y" /* yacc.c:1646  */
6262      {
6263 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6263 >  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6264   }
6265 + #line 6266 "conf_parser.c" /* yacc.c:1646  */
6266      break;
6267  
6268    case 602:
6269 <
7603 < /* Line 1806 of yacc.c  */
7604 < #line 3325 "ircd_parser.y"
6269 > #line 2834 "conf_parser.y" /* yacc.c:1646  */
6270      {
6271 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6271 >  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6272   }
6273 + #line 6274 "conf_parser.c" /* yacc.c:1646  */
6274      break;
6275  
6276    case 603:
6277 <
7612 < /* Line 1806 of yacc.c  */
7613 < #line 3334 "ircd_parser.y"
6277 > #line 2837 "conf_parser.y" /* yacc.c:1646  */
6278      {
6279 <  if (conf_parser_ctx.pass == 2)
7616 <  {
7617 <    yy_conf = make_conf_item(GDENY_TYPE);
7618 <    yy_aconf = map_to_conf(yy_conf);
7619 <  }
6279 >  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6280   }
6281 + #line 6282 "conf_parser.c" /* yacc.c:1646  */
6282      break;
6283  
6284    case 604:
6285 <
7625 < /* Line 1806 of yacc.c  */
7626 < #line 3341 "ircd_parser.y"
7627 <    {
7628 <  if (conf_parser_ctx.pass == 2)
7629 <  {
7630 <    /*
7631 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7632 <     * end we will have one extra, so we should free it.
7633 <     */
7634 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
6285 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6286      {
6287 <      delete_conf_item(yy_conf);
7637 <      yy_conf = NULL;
7638 <      yy_aconf = NULL;
7639 <    }
7640 <  }
6287 >  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6288   }
6289 + #line 6290 "conf_parser.c" /* yacc.c:1646  */
6290      break;
6291  
6292 <  case 614:
6293 <
7646 < /* Line 1806 of yacc.c  */
7647 < #line 3367 "ircd_parser.y"
6292 >  case 605:
6293 > #line 2843 "conf_parser.y" /* yacc.c:1646  */
6294      {
6295 <  if (conf_parser_ctx.pass == 2)
7650 <    ConfigFileEntry.glines = yylval.number;
6295 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6296   }
6297 + #line 6298 "conf_parser.c" /* yacc.c:1646  */
6298      break;
6299  
6300 <  case 615:
6301 <
7656 < /* Line 1806 of yacc.c  */
7657 < #line 3373 "ircd_parser.y"
6300 >  case 606:
6301 > #line 2846 "conf_parser.y" /* yacc.c:1646  */
6302      {
6303 <  if (conf_parser_ctx.pass == 2)
7660 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6303 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6304   }
6305 + #line 6306 "conf_parser.c" /* yacc.c:1646  */
6306      break;
6307  
6308 <  case 616:
6309 <
7666 < /* Line 1806 of yacc.c  */
7667 < #line 3379 "ircd_parser.y"
6308 >  case 607:
6309 > #line 2851 "conf_parser.y" /* yacc.c:1646  */
6310      {
6311 <  if (conf_parser_ctx.pass == 2)
7670 <    ConfigFileEntry.gline_logging = 0;
6311 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6312   }
6313 + #line 6314 "conf_parser.c" /* yacc.c:1646  */
6314      break;
6315  
6316 <  case 620:
6317 <
7676 < /* Line 1806 of yacc.c  */
7677 < #line 3385 "ircd_parser.y"
6316 >  case 608:
6317 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6318      {
6319 <  if (conf_parser_ctx.pass == 2)
7680 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6319 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6320   }
6321 + #line 6322 "conf_parser.c" /* yacc.c:1646  */
6322      break;
6323  
6324 <  case 621:
6325 <
7686 < /* Line 1806 of yacc.c  */
7687 < #line 3389 "ircd_parser.y"
6324 >  case 609:
6325 > #line 2861 "conf_parser.y" /* yacc.c:1646  */
6326      {
6327 <  if (conf_parser_ctx.pass == 2)
7690 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6327 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6328   }
6329 + #line 6330 "conf_parser.c" /* yacc.c:1646  */
6330      break;
6331  
6332 <  case 622:
6333 <
7696 < /* Line 1806 of yacc.c  */
7697 < #line 3395 "ircd_parser.y"
6332 >  case 626:
6333 > #line 2884 "conf_parser.y" /* yacc.c:1646  */
6334      {
6335 <  if (conf_parser_ctx.pass == 2)
7700 <  {
7701 <    struct split_nuh_item nuh;
7702 <
7703 <    nuh.nuhmask  = yylval.string;
7704 <    nuh.nickptr  = NULL;
7705 <    nuh.userptr  = userbuf;
7706 <    nuh.hostptr  = hostbuf;
7707 <
7708 <    nuh.nicksize = 0;
7709 <    nuh.usersize = sizeof(userbuf);
7710 <    nuh.hostsize = sizeof(hostbuf);
7711 <
7712 <    split_nuh(&nuh);
7713 <
7714 <    if (yy_aconf->user == NULL)
7715 <    {
7716 <      DupString(yy_aconf->user, userbuf);
7717 <      DupString(yy_aconf->host, hostbuf);
7718 <    }
7719 <    else
7720 <    {
7721 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7722 <
7723 <      DupString(yy_tmp->user, userbuf);
7724 <      DupString(yy_tmp->host, hostbuf);
7725 <
7726 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7727 <    }
7728 <  }
7729 < }
7730 <    break;
7731 <
7732 <  case 623:
7733 <
7734 < /* Line 1806 of yacc.c  */
7735 < #line 3429 "ircd_parser.y"
7736 <    {
7737 <  if (conf_parser_ctx.pass == 2)  
7738 <  {
7739 <    MyFree(yy_conf->name);
7740 <    DupString(yy_conf->name, yylval.string);
7741 <  }
6335 >  ConfigChannel.disable_fake_channels = yylval.number;
6336   }
6337 + #line 6338 "conf_parser.c" /* yacc.c:1646  */
6338      break;
6339  
6340 <  case 624:
6341 <
7747 < /* Line 1806 of yacc.c  */
7748 < #line 3438 "ircd_parser.y"
6340 >  case 627:
6341 > #line 2889 "conf_parser.y" /* yacc.c:1646  */
6342      {
6343 <  if (conf_parser_ctx.pass == 2)
7751 <    yy_aconf->flags = 0;
7752 < }
7753 <    break;
7754 <
7755 <  case 625:
7756 <
7757 < /* Line 1806 of yacc.c  */
7758 < #line 3442 "ircd_parser.y"
7759 <    {
7760 <  if (conf_parser_ctx.pass == 2)
7761 <  {
7762 <    struct CollectItem *yy_tmp = NULL;
7763 <    dlink_node *ptr, *next_ptr;
7764 <
7765 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7766 <    {
7767 <      struct AccessItem *new_aconf;
7768 <      struct ConfItem *new_conf;
7769 <
7770 <      yy_tmp = ptr->data;
7771 <      new_conf = make_conf_item(GDENY_TYPE);
7772 <      new_aconf = map_to_conf(new_conf);
7773 <
7774 <      new_aconf->flags = yy_aconf->flags;
7775 <
7776 <      if (yy_conf->name != NULL)
7777 <        DupString(new_conf->name, yy_conf->name);
7778 <      else
7779 <        DupString(new_conf->name, "*");
7780 <      if (yy_aconf->user != NULL)
7781 <         DupString(new_aconf->user, yy_tmp->user);
7782 <      else  
7783 <        DupString(new_aconf->user, "*");
7784 <      if (yy_aconf->host != NULL)
7785 <        DupString(new_aconf->host, yy_tmp->host);
7786 <      else
7787 <        DupString(new_aconf->host, "*");
7788 <
7789 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7790 <    }
7791 <
7792 <    /*
7793 <     * In case someone has fed us with more than one action= after user/name
7794 <     * which would leak memory  -Michael
7795 <     */
7796 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7797 <      delete_conf_item(yy_conf);
7798 <
7799 <    yy_conf = make_conf_item(GDENY_TYPE);
7800 <    yy_aconf = map_to_conf(yy_conf);
7801 <  }
6343 >  ConfigChannel.knock_delay = (yyvsp[-1].number);
6344   }
6345 + #line 6346 "conf_parser.c" /* yacc.c:1646  */
6346      break;
6347  
6348    case 628:
6349 <
7807 < /* Line 1806 of yacc.c  */
7808 < #line 3489 "ircd_parser.y"
6349 > #line 2894 "conf_parser.y" /* yacc.c:1646  */
6350      {
6351 <  if (conf_parser_ctx.pass == 2)
7811 <    yy_aconf->flags |= GDENY_REJECT;
6351 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6352   }
6353 + #line 6354 "conf_parser.c" /* yacc.c:1646  */
6354      break;
6355  
6356    case 629:
6357 <
7817 < /* Line 1806 of yacc.c  */
7818 < #line 3493 "ircd_parser.y"
6357 > #line 2899 "conf_parser.y" /* yacc.c:1646  */
6358      {
6359 <  if (conf_parser_ctx.pass == 2)
7821 <    yy_aconf->flags |= GDENY_BLOCK;
6359 >  ConfigChannel.max_chans_per_user = (yyvsp[-1].number);
6360   }
6361 + #line 6362 "conf_parser.c" /* yacc.c:1646  */
6362      break;
6363  
6364 <  case 652:
6365 <
7827 < /* Line 1806 of yacc.c  */
7828 < #line 3517 "ircd_parser.y"
6364 >  case 630:
6365 > #line 2904 "conf_parser.y" /* yacc.c:1646  */
6366      {
6367 <  ConfigChannel.disable_fake_channels = yylval.number;
6367 >  ConfigChannel.max_chans_per_oper = (yyvsp[-1].number);
6368   }
6369 + #line 6370 "conf_parser.c" /* yacc.c:1646  */
6370      break;
6371  
6372 <  case 653:
6373 <
7836 < /* Line 1806 of yacc.c  */
7837 < #line 3522 "ircd_parser.y"
6372 >  case 631:
6373 > #line 2909 "conf_parser.y" /* yacc.c:1646  */
6374      {
6375 <  ConfigChannel.restrict_channels = yylval.number;
6375 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6376   }
6377 + #line 6378 "conf_parser.c" /* yacc.c:1646  */
6378      break;
6379  
6380 <  case 654:
6381 <
7845 < /* Line 1806 of yacc.c  */
7846 < #line 3527 "ircd_parser.y"
6380 >  case 632:
6381 > #line 2914 "conf_parser.y" /* yacc.c:1646  */
6382      {
6383 <  ConfigChannel.disable_local_channels = yylval.number;
6383 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6384   }
6385 + #line 6386 "conf_parser.c" /* yacc.c:1646  */
6386      break;
6387  
6388 <  case 655:
6389 <
7854 < /* Line 1806 of yacc.c  */
7855 < #line 3532 "ircd_parser.y"
6388 >  case 633:
6389 > #line 2919 "conf_parser.y" /* yacc.c:1646  */
6390      {
6391 <  ConfigChannel.use_except = yylval.number;
6391 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6392   }
6393 + #line 6394 "conf_parser.c" /* yacc.c:1646  */
6394      break;
6395  
6396 <  case 656:
6397 <
7863 < /* Line 1806 of yacc.c  */
7864 < #line 3537 "ircd_parser.y"
7865 <    {
7866 <  ConfigChannel.use_invex = yylval.number;
7867 < }
7868 <    break;
7869 <
7870 <  case 657:
7871 <
7872 < /* Line 1806 of yacc.c  */
7873 < #line 3542 "ircd_parser.y"
7874 <    {
7875 <  ConfigChannel.use_knock = yylval.number;
7876 < }
7877 <    break;
7878 <
7879 <  case 658:
7880 <
7881 < /* Line 1806 of yacc.c  */
7882 < #line 3547 "ircd_parser.y"
7883 <    {
7884 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
7885 < }
7886 <    break;
7887 <
7888 <  case 659:
7889 <
7890 < /* Line 1806 of yacc.c  */
7891 < #line 3552 "ircd_parser.y"
7892 <    {
7893 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
7894 < }
7895 <    break;
7896 <
7897 <  case 660:
7898 <
7899 < /* Line 1806 of yacc.c  */
7900 < #line 3557 "ircd_parser.y"
7901 <    {
7902 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
7903 < }
7904 <    break;
7905 <
7906 <  case 661:
7907 <
7908 < /* Line 1806 of yacc.c  */
7909 < #line 3562 "ircd_parser.y"
7910 <    {
7911 <  ConfigChannel.quiet_on_ban = yylval.number;
7912 < }
7913 <    break;
7914 <
7915 <  case 662:
7916 <
7917 < /* Line 1806 of yacc.c  */
7918 < #line 3567 "ircd_parser.y"
7919 <    {
7920 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
7921 < }
7922 <    break;
7923 <
7924 <  case 663:
7925 <
7926 < /* Line 1806 of yacc.c  */
7927 < #line 3572 "ircd_parser.y"
7928 <    {
7929 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
7930 < }
7931 <    break;
7932 <
7933 <  case 664:
7934 <
7935 < /* Line 1806 of yacc.c  */
7936 < #line 3577 "ircd_parser.y"
7937 <    {
7938 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
7939 < }
7940 <    break;
7941 <
7942 <  case 665:
7943 <
7944 < /* Line 1806 of yacc.c  */
7945 < #line 3582 "ircd_parser.y"
6396 >  case 634:
6397 > #line 2924 "conf_parser.y" /* yacc.c:1646  */
6398      {
6399    ConfigChannel.no_create_on_split = yylval.number;
6400   }
6401 + #line 6402 "conf_parser.c" /* yacc.c:1646  */
6402      break;
6403  
6404 <  case 666:
6405 <
7953 < /* Line 1806 of yacc.c  */
7954 < #line 3587 "ircd_parser.y"
6404 >  case 635:
6405 > #line 2929 "conf_parser.y" /* yacc.c:1646  */
6406      {
6407    ConfigChannel.no_join_on_split = yylval.number;
6408   }
6409 + #line 6410 "conf_parser.c" /* yacc.c:1646  */
6410      break;
6411  
6412 <  case 667:
6413 <
7962 < /* Line 1806 of yacc.c  */
7963 < #line 3592 "ircd_parser.y"
7964 <    {
7965 <  ConfigChannel.burst_topicwho = yylval.number;
7966 < }
7967 <    break;
7968 <
7969 <  case 668:
7970 <
7971 < /* Line 1806 of yacc.c  */
7972 < #line 3597 "ircd_parser.y"
6412 >  case 636:
6413 > #line 2934 "conf_parser.y" /* yacc.c:1646  */
6414      {
6415    GlobalSetOptions.joinfloodcount = yylval.number;
6416   }
6417 + #line 6418 "conf_parser.c" /* yacc.c:1646  */
6418      break;
6419  
6420 <  case 669:
6421 <
7980 < /* Line 1806 of yacc.c  */
7981 < #line 3602 "ircd_parser.y"
6420 >  case 637:
6421 > #line 2939 "conf_parser.y" /* yacc.c:1646  */
6422      {
6423    GlobalSetOptions.joinfloodtime = yylval.number;
6424   }
6425 + #line 6426 "conf_parser.c" /* yacc.c:1646  */
6426      break;
6427  
6428 <  case 681:
6429 <
7989 < /* Line 1806 of yacc.c  */
7990 < #line 3621 "ircd_parser.y"
6428 >  case 650:
6429 > #line 2959 "conf_parser.y" /* yacc.c:1646  */
6430      {
6431    if (conf_parser_ctx.pass == 2)
6432      ConfigServerHide.flatten_links = yylval.number;
6433   }
6434 + #line 6435 "conf_parser.c" /* yacc.c:1646  */
6435      break;
6436  
6437 <  case 682:
6437 >  case 651:
6438 > #line 2965 "conf_parser.y" /* yacc.c:1646  */
6439 >    {
6440 >  if (conf_parser_ctx.pass == 2)
6441 >    ConfigServerHide.disable_remote_commands = yylval.number;
6442 > }
6443 > #line 6444 "conf_parser.c" /* yacc.c:1646  */
6444 >    break;
6445  
6446 < /* Line 1806 of yacc.c  */
6447 < #line 3627 "ircd_parser.y"
6446 >  case 652:
6447 > #line 2971 "conf_parser.y" /* yacc.c:1646  */
6448      {
6449    if (conf_parser_ctx.pass == 2)
6450      ConfigServerHide.hide_servers = yylval.number;
6451   }
6452 + #line 6453 "conf_parser.c" /* yacc.c:1646  */
6453      break;
6454  
6455 <  case 683:
6455 >  case 653:
6456 > #line 2977 "conf_parser.y" /* yacc.c:1646  */
6457 >    {
6458 >  if (conf_parser_ctx.pass == 2)
6459 >    ConfigServerHide.hide_services = yylval.number;
6460 > }
6461 > #line 6462 "conf_parser.c" /* yacc.c:1646  */
6462 >    break;
6463  
6464 < /* Line 1806 of yacc.c  */
6465 < #line 3633 "ircd_parser.y"
6464 >  case 654:
6465 > #line 2983 "conf_parser.y" /* yacc.c:1646  */
6466      {
6467    if (conf_parser_ctx.pass == 2)
6468    {
6469      MyFree(ConfigServerHide.hidden_name);
6470 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6470 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6471    }
6472   }
6473 + #line 6474 "conf_parser.c" /* yacc.c:1646  */
6474      break;
6475  
6476 <  case 684:
6477 <
8022 < /* Line 1806 of yacc.c  */
8023 < #line 3642 "ircd_parser.y"
6476 >  case 655:
6477 > #line 2992 "conf_parser.y" /* yacc.c:1646  */
6478      {
6479    if (conf_parser_ctx.pass == 2)
6480    {
6481 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6481 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6482      {
6483 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6483 >      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[-1].number));
6484        ConfigServerHide.links_disabled = 0;
6485      }
6486  
6487 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6487 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6488    }
6489   }
6490 + #line 6491 "conf_parser.c" /* yacc.c:1646  */
6491      break;
6492  
6493 <  case 685:
6494 <
8040 < /* Line 1806 of yacc.c  */
8041 < #line 3656 "ircd_parser.y"
6493 >  case 656:
6494 > #line 3006 "conf_parser.y" /* yacc.c:1646  */
6495      {
6496    if (conf_parser_ctx.pass == 2)
6497      ConfigServerHide.hidden = yylval.number;
6498   }
6499 + #line 6500 "conf_parser.c" /* yacc.c:1646  */
6500      break;
6501  
6502 <  case 686:
6503 <
8050 < /* Line 1806 of yacc.c  */
8051 < #line 3662 "ircd_parser.y"
8052 <    {
8053 <  if (conf_parser_ctx.pass == 2)
8054 <    ConfigServerHide.disable_hidden = yylval.number;
8055 < }
8056 <    break;
8057 <
8058 <  case 687:
8059 <
8060 < /* Line 1806 of yacc.c  */
8061 < #line 3668 "ircd_parser.y"
6502 >  case 657:
6503 > #line 3012 "conf_parser.y" /* yacc.c:1646  */
6504      {
6505    if (conf_parser_ctx.pass == 2)
6506      ConfigServerHide.hide_server_ips = yylval.number;
6507   }
6508 + #line 6509 "conf_parser.c" /* yacc.c:1646  */
6509      break;
6510  
6511  
6512 <
8070 < /* Line 1806 of yacc.c  */
8071 < #line 8072 "ircd_parser.c"
6512 > #line 6513 "conf_parser.c" /* yacc.c:1646  */
6513        default: break;
6514      }
6515    /* User semantic actions sometimes alter yychar, and that requires
# Line 8090 | Line 6531 | yyreduce:
6531  
6532    *++yyvsp = yyval;
6533  
6534 <  /* Now `shift' the result of the reduction.  Determine what state
6534 >  /* Now 'shift' the result of the reduction.  Determine what state
6535       that goes to, based on the state we popped back to and the rule
6536       number reduced by.  */
6537  
# Line 8105 | Line 6546 | yyreduce:
6546    goto yynewstate;
6547  
6548  
6549 < /*------------------------------------.
6550 < | yyerrlab -- here on detecting error |
6551 < `------------------------------------*/
6549 > /*--------------------------------------.
6550 > | yyerrlab -- here on detecting error.  |
6551 > `--------------------------------------*/
6552   yyerrlab:
6553    /* Make sure we have latest lookahead translation.  See comments at
6554       user semantic actions for why this is necessary.  */
# Line 8158 | Line 6599 | yyerrlab:
6599    if (yyerrstatus == 3)
6600      {
6601        /* If just tried and failed to reuse lookahead token after an
6602 <         error, discard it.  */
6602 >         error, discard it.  */
6603  
6604        if (yychar <= YYEOF)
6605 <        {
6606 <          /* Return failure if at end of input.  */
6607 <          if (yychar == YYEOF)
6608 <            YYABORT;
6609 <        }
6605 >        {
6606 >          /* Return failure if at end of input.  */
6607 >          if (yychar == YYEOF)
6608 >            YYABORT;
6609 >        }
6610        else
6611 <        {
6612 <          yydestruct ("Error: discarding",
6613 <                      yytoken, &yylval);
6614 <          yychar = YYEMPTY;
6615 <        }
6611 >        {
6612 >          yydestruct ("Error: discarding",
6613 >                      yytoken, &yylval);
6614 >          yychar = YYEMPTY;
6615 >        }
6616      }
6617  
6618    /* Else will try to reuse lookahead token after shifting the error
# Line 8190 | Line 6631 | yyerrorlab:
6631    if (/*CONSTCOND*/ 0)
6632       goto yyerrorlab;
6633  
6634 <  /* Do not reclaim the symbols of the rule which action triggered
6634 >  /* Do not reclaim the symbols of the rule whose action triggered
6635       this YYERROR.  */
6636    YYPOPSTACK (yylen);
6637    yylen = 0;
# Line 8203 | Line 6644 | yyerrorlab:
6644   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6645   `-------------------------------------------------------------*/
6646   yyerrlab1:
6647 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6647 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6648  
6649    for (;;)
6650      {
6651        yyn = yypact[yystate];
6652        if (!yypact_value_is_default (yyn))
6653 <        {
6654 <          yyn += YYTERROR;
6655 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6656 <            {
6657 <              yyn = yytable[yyn];
6658 <              if (0 < yyn)
6659 <                break;
6660 <            }
6661 <        }
6653 >        {
6654 >          yyn += YYTERROR;
6655 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6656 >            {
6657 >              yyn = yytable[yyn];
6658 >              if (0 < yyn)
6659 >                break;
6660 >            }
6661 >        }
6662  
6663        /* Pop the current state because it cannot handle the error token.  */
6664        if (yyssp == yyss)
6665 <        YYABORT;
6665 >        YYABORT;
6666  
6667  
6668        yydestruct ("Error: popping",
6669 <                  yystos[yystate], yyvsp);
6669 >                  yystos[yystate], yyvsp);
6670        YYPOPSTACK (1);
6671        yystate = *yyssp;
6672        YY_STACK_PRINT (yyss, yyssp);
6673      }
6674  
6675 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6676    *++yyvsp = yylval;
6677 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6678  
6679  
6680    /* Shift the error token.  */
# Line 8255 | Line 6698 | yyabortlab:
6698    yyresult = 1;
6699    goto yyreturn;
6700  
6701 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6701 > #if !defined yyoverflow || YYERROR_VERBOSE
6702   /*-------------------------------------------------.
6703   | yyexhaustedlab -- memory exhaustion comes here.  |
6704   `-------------------------------------------------*/
# Line 8274 | Line 6717 | yyreturn:
6717        yydestruct ("Cleanup: discarding lookahead",
6718                    yytoken, &yylval);
6719      }
6720 <  /* Do not reclaim the symbols of the rule which action triggered
6720 >  /* Do not reclaim the symbols of the rule whose action triggered
6721       this YYABORT or YYACCEPT.  */
6722    YYPOPSTACK (yylen);
6723    YY_STACK_PRINT (yyss, yyssp);
6724    while (yyssp != yyss)
6725      {
6726        yydestruct ("Cleanup: popping",
6727 <                  yystos[*yyssp], yyvsp);
6727 >                  yystos[*yyssp], yyvsp);
6728        YYPOPSTACK (1);
6729      }
6730   #ifndef yyoverflow
# Line 8292 | Line 6735 | yyreturn:
6735    if (yymsg != yymsgbuf)
6736      YYSTACK_FREE (yymsg);
6737   #endif
6738 <  /* Make sure YYID is used.  */
8296 <  return YYID (yyresult);
6738 >  return yyresult;
6739   }
8298
8299
8300

Comparing:
ircd-hybrid-8/src/ircd_parser.c (property svn:keywords), Revision 1156 by michael, Tue Aug 9 20:29:20 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 3229 by michael, Sat Mar 29 17:28:01 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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