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-7.3/src/ircd_parser.c (file contents), Revision 1133 by michael, Fri May 27 20:11:42 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 4114 by michael, Tue Jul 1 16:47:15 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"
84 > #include "server.h"
85   #include "hostmask.h"
86   #include "send.h"
87   #include "listener.h"
88   #include "resv.h"
89   #include "numeric.h"
90 < #include "s_user.h"
90 > #include "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 >  {
108 >    dlink_list list;
109 >  } mask,
110 >    leaf,
111 >    hub;
112 >
113 >  struct
114 >  {
115 >    char buf[IRCD_BUFSIZE];
116 >  } name,
117 >    user,
118 >    host,
119 >    addr,
120 >    bind,
121 >    file,
122 >    ciph,
123 >    cert,
124 >    rpass,
125 >    spass,
126 >    class;
127 >
128 >  struct
129 >  {
130 >    unsigned int value;
131 >  } flags,
132 >    modes,
133 >    size,
134 >    type,
135 >    port,
136 >    aftype,
137 >    ping_freq,
138 >    max_perip,
139 >    con_freq,
140 >    min_idle,
141 >    max_idle,
142 >    max_total,
143 >    max_global,
144 >    max_local,
145 >    max_ident,
146 >    max_sendq,
147 >    max_recvq,
148 >    max_channels,
149 >    cidr_bitlen_ipv4,
150 >    cidr_bitlen_ipv6,
151 >    number_per_cidr;
152 > } block_state;
153  
154   static void
155 < unhook_hub_leaf_confs(void)
155 > reset_block_state(void)
156   {
157 <  dlink_node *ptr;
155 <  dlink_node *next_ptr;
156 <  struct CollectItem *yy_hconf;
157 <  struct CollectItem *yy_lconf;
157 >  dlink_node *ptr = NULL, *ptr_next = NULL;
158  
159 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
159 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
160    {
161 <    yy_hconf = ptr->data;
162 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
163 <    free_collect_item(yy_hconf);
161 >    MyFree(ptr->data);
162 >    dlinkDelete(ptr, &block_state.mask.list);
163 >    free_dlink_node(ptr);
164    }
165  
166 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
166 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
167    {
168 <    yy_lconf = ptr->data;
169 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
170 <    free_collect_item(yy_lconf);
168 >    MyFree(ptr->data);
169 >    dlinkDelete(ptr, &block_state.leaf.list);
170 >    free_dlink_node(ptr);
171    }
172 }
172  
173 +  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
174 +  {
175 +    MyFree(ptr->data);
176 +    dlinkDelete(ptr, &block_state.hub.list);
177 +    free_dlink_node(ptr);
178 +  }
179  
180 +  memset(&block_state, 0, sizeof(block_state));
181 + }
182  
176 /* Line 268 of yacc.c  */
177 #line 178 "ircd_parser.c"
183  
184 < /* Enabling traces.  */
185 < #ifndef YYDEBUG
186 < # define YYDEBUG 0
187 < #endif
184 > #line 185 "conf_parser.c" /* yacc.c:339  */
185 >
186 > # ifndef YY_NULLPTR
187 > #  if defined __cplusplus && 201103L <= __cplusplus
188 > #   define YY_NULLPTR nullptr
189 > #  else
190 > #   define YY_NULLPTR 0
191 > #  endif
192 > # endif
193  
194   /* Enabling verbose error messages.  */
195   #ifdef YYERROR_VERBOSE
# Line 189 | Line 199 | unhook_hub_leaf_confs(void)
199   # define YYERROR_VERBOSE 0
200   #endif
201  
202 < /* Enabling the token table.  */
203 < #ifndef YYTOKEN_TABLE
204 < # define YYTOKEN_TABLE 0
202 > /* In a future release of Bison, this section will be replaced
203 >   by #include "y.tab.h".  */
204 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
205 > # define YY_YY_CONF_PARSER_H_INCLUDED
206 > /* Debug traces.  */
207 > #ifndef YYDEBUG
208 > # define YYDEBUG 0
209 > #endif
210 > #if YYDEBUG
211 > extern int yydebug;
212   #endif
213  
214 <
198 < /* Tokens.  */
214 > /* Token type.  */
215   #ifndef YYTOKENTYPE
216   # define YYTOKENTYPE
217 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
218 <      know about them.  */
219 <   enum yytokentype {
220 <     ACCEPT_PASSWORD = 258,
221 <     ACTION = 259,
222 <     ADMIN = 260,
223 <     AFTYPE = 261,
224 <     T_ALLOW = 262,
225 <     ANTI_NICK_FLOOD = 263,
226 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
227 <     AUTOCONN = 265,
228 <     T_BLOCK = 266,
229 <     BURST_AWAY = 267,
230 <     BURST_TOPICWHO = 268,
231 <     BYTES = 269,
232 <     KBYTES = 270,
233 <     MBYTES = 271,
234 <     GBYTES = 272,
235 <     TBYTES = 273,
236 <     CALLER_ID_WAIT = 274,
237 <     CAN_FLOOD = 275,
238 <     CAN_IDLE = 276,
239 <     CHANNEL = 277,
240 <     CIDR_BITLEN_IPV4 = 278,
241 <     CIDR_BITLEN_IPV6 = 279,
242 <     CIPHER_PREFERENCE = 280,
243 <     CLASS = 281,
244 <     COMPRESSED = 282,
245 <     COMPRESSION_LEVEL = 283,
246 <     CONNECT = 284,
247 <     CONNECTFREQ = 285,
248 <     CRYPTLINK = 286,
249 <     DEFAULT_CIPHER_PREFERENCE = 287,
250 <     DEFAULT_FLOODCOUNT = 288,
251 <     DEFAULT_SPLIT_SERVER_COUNT = 289,
252 <     DEFAULT_SPLIT_USER_COUNT = 290,
253 <     DENY = 291,
254 <     DESCRIPTION = 292,
255 <     DIE = 293,
256 <     DISABLE_AUTH = 294,
257 <     DISABLE_FAKE_CHANNELS = 295,
258 <     DISABLE_HIDDEN = 296,
259 <     DISABLE_LOCAL_CHANNELS = 297,
260 <     DISABLE_REMOTE_COMMANDS = 298,
261 <     DOTS_IN_IDENT = 299,
262 <     DURATION = 300,
263 <     EGDPOOL_PATH = 301,
264 <     EMAIL = 302,
265 <     ENABLE = 303,
266 <     ENCRYPTED = 304,
267 <     EXCEED_LIMIT = 305,
268 <     EXEMPT = 306,
269 <     FAILED_OPER_NOTICE = 307,
270 <     IRCD_FLAGS = 308,
271 <     FLATTEN_LINKS = 309,
272 <     FFAILED_OPERLOG = 310,
273 <     FKILLLOG = 311,
274 <     FKLINELOG = 312,
275 <     FGLINELOG = 313,
276 <     FIOERRLOG = 314,
277 <     FOPERLOG = 315,
278 <     FOPERSPYLOG = 316,
279 <     FUSERLOG = 317,
280 <     GECOS = 318,
281 <     GENERAL = 319,
282 <     GLINE = 320,
283 <     GLINES = 321,
284 <     GLINE_EXEMPT = 322,
285 <     GLINE_LOG = 323,
286 <     GLINE_TIME = 324,
287 <     GLINE_MIN_CIDR = 325,
288 <     GLINE_MIN_CIDR6 = 326,
289 <     GLOBAL_KILL = 327,
290 <     IRCD_AUTH = 328,
291 <     NEED_IDENT = 329,
292 <     HAVENT_READ_CONF = 330,
293 <     HIDDEN = 331,
294 <     HIDDEN_ADMIN = 332,
295 <     HIDDEN_NAME = 333,
296 <     HIDDEN_OPER = 334,
297 <     HIDE_SERVER_IPS = 335,
298 <     HIDE_SERVERS = 336,
299 <     HIDE_SPOOF_IPS = 337,
300 <     HOST = 338,
301 <     HUB = 339,
302 <     HUB_MASK = 340,
303 <     IDLETIME = 341,
304 <     IGNORE_BOGUS_TS = 342,
305 <     INVISIBLE_ON_CONNECT = 343,
306 <     IP = 344,
307 <     KILL = 345,
308 <     KILL_CHASE_TIME_LIMIT = 346,
309 <     KLINE = 347,
310 <     KLINE_EXEMPT = 348,
311 <     KLINE_REASON = 349,
312 <     KLINE_WITH_REASON = 350,
313 <     KNOCK_DELAY = 351,
314 <     KNOCK_DELAY_CHANNEL = 352,
315 <     LEAF_MASK = 353,
316 <     LINKS_DELAY = 354,
317 <     LISTEN = 355,
318 <     T_LOG = 356,
319 <     LOGGING = 357,
320 <     LOG_LEVEL = 358,
321 <     MAX_ACCEPT = 359,
322 <     MAX_BANS = 360,
323 <     MAX_CHANS_PER_USER = 361,
324 <     MAX_GLOBAL = 362,
325 <     MAX_IDENT = 363,
326 <     MAX_LOCAL = 364,
327 <     MAX_NICK_CHANGES = 365,
328 <     MAX_NICK_TIME = 366,
329 <     MAX_NUMBER = 367,
330 <     MAX_TARGETS = 368,
331 <     MAX_WATCH = 369,
332 <     MESSAGE_LOCALE = 370,
333 <     MIN_NONWILDCARD = 371,
334 <     MIN_NONWILDCARD_SIMPLE = 372,
335 <     MODULE = 373,
336 <     MODULES = 374,
337 <     NAME = 375,
338 <     NEED_PASSWORD = 376,
339 <     NETWORK_DESC = 377,
340 <     NETWORK_NAME = 378,
341 <     NICK = 379,
342 <     NICK_CHANGES = 380,
343 <     NO_CREATE_ON_SPLIT = 381,
344 <     NO_JOIN_ON_SPLIT = 382,
345 <     NO_OPER_FLOOD = 383,
346 <     NO_TILDE = 384,
347 <     NOT = 385,
348 <     NUMBER = 386,
349 <     NUMBER_PER_IDENT = 387,
350 <     NUMBER_PER_CIDR = 388,
351 <     NUMBER_PER_IP = 389,
352 <     NUMBER_PER_IP_GLOBAL = 390,
353 <     OPERATOR = 391,
354 <     OPERS_BYPASS_CALLERID = 392,
355 <     OPER_LOG = 393,
356 <     OPER_ONLY_UMODES = 394,
357 <     OPER_PASS_RESV = 395,
358 <     OPER_SPY_T = 396,
359 <     OPER_UMODES = 397,
360 <     JOIN_FLOOD_COUNT = 398,
361 <     JOIN_FLOOD_TIME = 399,
362 <     PACE_WAIT = 400,
363 <     PACE_WAIT_SIMPLE = 401,
364 <     PASSWORD = 402,
365 <     PATH = 403,
366 <     PING_COOKIE = 404,
367 <     PING_TIME = 405,
368 <     PING_WARNING = 406,
369 <     PORT = 407,
370 <     QSTRING = 408,
371 <     QUIET_ON_BAN = 409,
372 <     REASON = 410,
373 <     REDIRPORT = 411,
374 <     REDIRSERV = 412,
375 <     REGEX_T = 413,
376 <     REHASH = 414,
377 <     TREJECT_HOLD_TIME = 415,
378 <     REMOTE = 416,
379 <     REMOTEBAN = 417,
380 <     RESTRICT_CHANNELS = 418,
381 <     RESTRICTED = 419,
382 <     RSA_PRIVATE_KEY_FILE = 420,
383 <     RSA_PUBLIC_KEY_FILE = 421,
384 <     SSL_CERTIFICATE_FILE = 422,
385 <     T_SSL_CONNECTION_METHOD = 423,
386 <     T_SSLV3 = 424,
387 <     T_TLSV1 = 425,
388 <     RESV = 426,
389 <     RESV_EXEMPT = 427,
390 <     SECONDS = 428,
391 <     MINUTES = 429,
392 <     HOURS = 430,
393 <     DAYS = 431,
394 <     WEEKS = 432,
395 <     SENDQ = 433,
396 <     SEND_PASSWORD = 434,
397 <     SERVERHIDE = 435,
398 <     SERVERINFO = 436,
399 <     SERVLINK_PATH = 437,
400 <     IRCD_SID = 438,
401 <     TKLINE_EXPIRE_NOTICES = 439,
402 <     T_SHARED = 440,
403 <     T_CLUSTER = 441,
404 <     TYPE = 442,
405 <     SHORT_MOTD = 443,
406 <     SILENT = 444,
407 <     SPOOF = 445,
408 <     SPOOF_NOTICE = 446,
409 <     STATS_E_DISABLED = 447,
410 <     STATS_I_OPER_ONLY = 448,
411 <     STATS_K_OPER_ONLY = 449,
412 <     STATS_O_OPER_ONLY = 450,
413 <     STATS_P_OPER_ONLY = 451,
414 <     TBOOL = 452,
415 <     TMASKED = 453,
416 <     T_REJECT = 454,
417 <     TS_MAX_DELTA = 455,
418 <     TS_WARN_DELTA = 456,
419 <     TWODOTS = 457,
420 <     T_ALL = 458,
421 <     T_BOTS = 459,
422 <     T_SOFTCALLERID = 460,
423 <     T_CALLERID = 461,
424 <     T_CCONN = 462,
425 <     T_CCONN_FULL = 463,
426 <     T_CLIENT_FLOOD = 464,
427 <     T_DEAF = 465,
428 <     T_DEBUG = 466,
429 <     T_DRONE = 467,
430 <     T_EXTERNAL = 468,
431 <     T_FULL = 469,
432 <     T_INVISIBLE = 470,
433 <     T_IPV4 = 471,
434 <     T_IPV6 = 472,
435 <     T_LOCOPS = 473,
436 <     T_LOGPATH = 474,
437 <     T_L_CRIT = 475,
438 <     T_L_DEBUG = 476,
439 <     T_L_ERROR = 477,
440 <     T_L_INFO = 478,
441 <     T_L_NOTICE = 479,
442 <     T_L_TRACE = 480,
443 <     T_L_WARN = 481,
444 <     T_MAX_CLIENTS = 482,
445 <     T_NCHANGE = 483,
446 <     T_OPERWALL = 484,
447 <     T_REJ = 485,
448 <     T_SERVER = 486,
449 <     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 <   };
217 >  enum yytokentype
218 >  {
219 >    ACCEPT_PASSWORD = 258,
220 >    ADMIN = 259,
221 >    AFTYPE = 260,
222 >    ANTI_NICK_FLOOD = 261,
223 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
224 >    AUTOCONN = 263,
225 >    BYTES = 264,
226 >    KBYTES = 265,
227 >    MBYTES = 266,
228 >    CALLER_ID_WAIT = 267,
229 >    CAN_FLOOD = 268,
230 >    CHANNEL = 269,
231 >    CIDR_BITLEN_IPV4 = 270,
232 >    CIDR_BITLEN_IPV6 = 271,
233 >    CLASS = 272,
234 >    CONNECT = 273,
235 >    CONNECTFREQ = 274,
236 >    CYCLE_ON_HOST_CHANGE = 275,
237 >    DEFAULT_FLOODCOUNT = 276,
238 >    DEFAULT_SPLIT_SERVER_COUNT = 277,
239 >    DEFAULT_SPLIT_USER_COUNT = 278,
240 >    DENY = 279,
241 >    DESCRIPTION = 280,
242 >    DIE = 281,
243 >    DISABLE_AUTH = 282,
244 >    DISABLE_FAKE_CHANNELS = 283,
245 >    DISABLE_REMOTE_COMMANDS = 284,
246 >    DOTS_IN_IDENT = 285,
247 >    EGDPOOL_PATH = 286,
248 >    EMAIL = 287,
249 >    ENCRYPTED = 288,
250 >    EXCEED_LIMIT = 289,
251 >    EXEMPT = 290,
252 >    FAILED_OPER_NOTICE = 291,
253 >    FLATTEN_LINKS = 292,
254 >    GECOS = 293,
255 >    GENERAL = 294,
256 >    GLINE = 295,
257 >    GLINE_DURATION = 296,
258 >    GLINE_ENABLE = 297,
259 >    GLINE_EXEMPT = 298,
260 >    GLINE_MIN_CIDR = 299,
261 >    GLINE_MIN_CIDR6 = 300,
262 >    GLINE_REQUEST_DURATION = 301,
263 >    GLOBAL_KILL = 302,
264 >    HAVENT_READ_CONF = 303,
265 >    HIDDEN = 304,
266 >    HIDDEN_NAME = 305,
267 >    HIDE_CHANS = 306,
268 >    HIDE_IDLE = 307,
269 >    HIDE_IDLE_FROM_OPERS = 308,
270 >    HIDE_SERVER_IPS = 309,
271 >    HIDE_SERVERS = 310,
272 >    HIDE_SERVICES = 311,
273 >    HIDE_SPOOF_IPS = 312,
274 >    HOST = 313,
275 >    HUB = 314,
276 >    HUB_MASK = 315,
277 >    IGNORE_BOGUS_TS = 316,
278 >    INVISIBLE_ON_CONNECT = 317,
279 >    INVITE_CLIENT_COUNT = 318,
280 >    INVITE_CLIENT_TIME = 319,
281 >    IP = 320,
282 >    IRCD_AUTH = 321,
283 >    IRCD_FLAGS = 322,
284 >    IRCD_SID = 323,
285 >    JOIN_FLOOD_COUNT = 324,
286 >    JOIN_FLOOD_TIME = 325,
287 >    KILL = 326,
288 >    KILL_CHASE_TIME_LIMIT = 327,
289 >    KLINE = 328,
290 >    KLINE_EXEMPT = 329,
291 >    KNOCK_CLIENT_COUNT = 330,
292 >    KNOCK_CLIENT_TIME = 331,
293 >    KNOCK_DELAY_CHANNEL = 332,
294 >    LEAF_MASK = 333,
295 >    LINKS_DELAY = 334,
296 >    LISTEN = 335,
297 >    MASK = 336,
298 >    MAX_ACCEPT = 337,
299 >    MAX_BANS = 338,
300 >    MAX_CHANNELS = 339,
301 >    MAX_GLOBAL = 340,
302 >    MAX_IDENT = 341,
303 >    MAX_IDLE = 342,
304 >    MAX_LOCAL = 343,
305 >    MAX_NICK_CHANGES = 344,
306 >    MAX_NICK_LENGTH = 345,
307 >    MAX_NICK_TIME = 346,
308 >    MAX_NUMBER = 347,
309 >    MAX_TARGETS = 348,
310 >    MAX_TOPIC_LENGTH = 349,
311 >    MAX_WATCH = 350,
312 >    MIN_IDLE = 351,
313 >    MIN_NONWILDCARD = 352,
314 >    MIN_NONWILDCARD_SIMPLE = 353,
315 >    MODULE = 354,
316 >    MODULES = 355,
317 >    MOTD = 356,
318 >    NAME = 357,
319 >    NEED_IDENT = 358,
320 >    NEED_PASSWORD = 359,
321 >    NETWORK_DESC = 360,
322 >    NETWORK_NAME = 361,
323 >    NICK = 362,
324 >    NO_CREATE_ON_SPLIT = 363,
325 >    NO_JOIN_ON_SPLIT = 364,
326 >    NO_OPER_FLOOD = 365,
327 >    NO_TILDE = 366,
328 >    NUMBER = 367,
329 >    NUMBER_PER_CIDR = 368,
330 >    NUMBER_PER_IP = 369,
331 >    OPER_ONLY_UMODES = 370,
332 >    OPER_PASS_RESV = 371,
333 >    OPER_UMODES = 372,
334 >    OPERATOR = 373,
335 >    OPERS_BYPASS_CALLERID = 374,
336 >    PACE_WAIT = 375,
337 >    PACE_WAIT_SIMPLE = 376,
338 >    PASSWORD = 377,
339 >    PATH = 378,
340 >    PING_COOKIE = 379,
341 >    PING_TIME = 380,
342 >    PORT = 381,
343 >    QSTRING = 382,
344 >    RANDOM_IDLE = 383,
345 >    REASON = 384,
346 >    REDIRPORT = 385,
347 >    REDIRSERV = 386,
348 >    REHASH = 387,
349 >    REMOTE = 388,
350 >    REMOTEBAN = 389,
351 >    RESV = 390,
352 >    RESV_EXEMPT = 391,
353 >    RSA_PRIVATE_KEY_FILE = 392,
354 >    RSA_PUBLIC_KEY_FILE = 393,
355 >    SECONDS = 394,
356 >    MINUTES = 395,
357 >    HOURS = 396,
358 >    DAYS = 397,
359 >    WEEKS = 398,
360 >    MONTHS = 399,
361 >    YEARS = 400,
362 >    SEND_PASSWORD = 401,
363 >    SENDQ = 402,
364 >    SERVERHIDE = 403,
365 >    SERVERINFO = 404,
366 >    SHORT_MOTD = 405,
367 >    SPOOF = 406,
368 >    SPOOF_NOTICE = 407,
369 >    SQUIT = 408,
370 >    SSL_CERTIFICATE_FILE = 409,
371 >    SSL_CERTIFICATE_FINGERPRINT = 410,
372 >    SSL_CONNECTION_REQUIRED = 411,
373 >    SSL_DH_ELLIPTIC_CURVE = 412,
374 >    SSL_DH_PARAM_FILE = 413,
375 >    SSL_MESSAGE_DIGEST_ALGORITHM = 414,
376 >    STATS_E_DISABLED = 415,
377 >    STATS_I_OPER_ONLY = 416,
378 >    STATS_K_OPER_ONLY = 417,
379 >    STATS_O_OPER_ONLY = 418,
380 >    STATS_P_OPER_ONLY = 419,
381 >    STATS_U_OPER_ONLY = 420,
382 >    T_ALL = 421,
383 >    T_BOTS = 422,
384 >    T_CALLERID = 423,
385 >    T_CCONN = 424,
386 >    T_CLUSTER = 425,
387 >    T_DEAF = 426,
388 >    T_DEBUG = 427,
389 >    T_DLINE = 428,
390 >    T_EXTERNAL = 429,
391 >    T_FARCONNECT = 430,
392 >    T_FILE = 431,
393 >    T_FULL = 432,
394 >    T_GLOBOPS = 433,
395 >    T_INVISIBLE = 434,
396 >    T_IPV4 = 435,
397 >    T_IPV6 = 436,
398 >    T_LOCOPS = 437,
399 >    T_LOG = 438,
400 >    T_MAX_CLIENTS = 439,
401 >    T_NCHANGE = 440,
402 >    T_NONONREG = 441,
403 >    T_RECVQ = 442,
404 >    T_REJ = 443,
405 >    T_RESTART = 444,
406 >    T_SERVER = 445,
407 >    T_SERVICE = 446,
408 >    T_SERVICES_NAME = 447,
409 >    T_SERVNOTICE = 448,
410 >    T_SET = 449,
411 >    T_SHARED = 450,
412 >    T_SIZE = 451,
413 >    T_SKILL = 452,
414 >    T_SOFTCALLERID = 453,
415 >    T_SPY = 454,
416 >    T_SSL = 455,
417 >    T_SSL_CIPHER_LIST = 456,
418 >    T_SSL_CLIENT_METHOD = 457,
419 >    T_SSL_SERVER_METHOD = 458,
420 >    T_SSLV3 = 459,
421 >    T_TLSV1 = 460,
422 >    T_UMODES = 461,
423 >    T_UNAUTH = 462,
424 >    T_UNDLINE = 463,
425 >    T_UNLIMITED = 464,
426 >    T_UNRESV = 465,
427 >    T_UNXLINE = 466,
428 >    T_WALLOP = 467,
429 >    T_WALLOPS = 468,
430 >    T_WEBIRC = 469,
431 >    TBOOL = 470,
432 >    THROTTLE_COUNT = 471,
433 >    THROTTLE_TIME = 472,
434 >    TKLINE_EXPIRE_NOTICES = 473,
435 >    TMASKED = 474,
436 >    TRUE_NO_OPER_FLOOD = 475,
437 >    TS_MAX_DELTA = 476,
438 >    TS_WARN_DELTA = 477,
439 >    TWODOTS = 478,
440 >    TYPE = 479,
441 >    UNKLINE = 480,
442 >    USE_EGD = 481,
443 >    USE_LOGGING = 482,
444 >    USER = 483,
445 >    VHOST = 484,
446 >    VHOST6 = 485,
447 >    WARN_NO_CONNECT_BLOCK = 486,
448 >    XLINE = 487
449 >  };
450   #endif
451   /* Tokens.  */
452   #define ACCEPT_PASSWORD 258
453 < #define ACTION 259
454 < #define ADMIN 260
455 < #define AFTYPE 261
456 < #define T_ALLOW 262
457 < #define ANTI_NICK_FLOOD 263
458 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
459 < #define AUTOCONN 265
460 < #define T_BLOCK 266
461 < #define BURST_AWAY 267
462 < #define BURST_TOPICWHO 268
463 < #define BYTES 269
464 < #define KBYTES 270
465 < #define MBYTES 271
466 < #define GBYTES 272
467 < #define TBYTES 273
468 < #define CALLER_ID_WAIT 274
469 < #define CAN_FLOOD 275
470 < #define CAN_IDLE 276
471 < #define CHANNEL 277
472 < #define CIDR_BITLEN_IPV4 278
473 < #define CIDR_BITLEN_IPV6 279
474 < #define CIPHER_PREFERENCE 280
475 < #define CLASS 281
476 < #define COMPRESSED 282
477 < #define COMPRESSION_LEVEL 283
478 < #define CONNECT 284
479 < #define CONNECTFREQ 285
480 < #define CRYPTLINK 286
481 < #define DEFAULT_CIPHER_PREFERENCE 287
482 < #define DEFAULT_FLOODCOUNT 288
483 < #define DEFAULT_SPLIT_SERVER_COUNT 289
484 < #define DEFAULT_SPLIT_USER_COUNT 290
485 < #define DENY 291
486 < #define DESCRIPTION 292
487 < #define DIE 293
488 < #define DISABLE_AUTH 294
489 < #define DISABLE_FAKE_CHANNELS 295
490 < #define DISABLE_HIDDEN 296
491 < #define DISABLE_LOCAL_CHANNELS 297
492 < #define DISABLE_REMOTE_COMMANDS 298
493 < #define DOTS_IN_IDENT 299
494 < #define DURATION 300
495 < #define EGDPOOL_PATH 301
496 < #define EMAIL 302
497 < #define ENABLE 303
498 < #define ENCRYPTED 304
499 < #define EXCEED_LIMIT 305
500 < #define EXEMPT 306
501 < #define FAILED_OPER_NOTICE 307
502 < #define IRCD_FLAGS 308
503 < #define FLATTEN_LINKS 309
504 < #define FFAILED_OPERLOG 310
505 < #define FKILLLOG 311
506 < #define FKLINELOG 312
507 < #define FGLINELOG 313
508 < #define FIOERRLOG 314
509 < #define FOPERLOG 315
510 < #define FOPERSPYLOG 316
511 < #define FUSERLOG 317
512 < #define GECOS 318
513 < #define GENERAL 319
514 < #define GLINE 320
515 < #define GLINES 321
516 < #define GLINE_EXEMPT 322
517 < #define GLINE_LOG 323
518 < #define GLINE_TIME 324
519 < #define GLINE_MIN_CIDR 325
520 < #define GLINE_MIN_CIDR6 326
521 < #define GLOBAL_KILL 327
522 < #define IRCD_AUTH 328
523 < #define NEED_IDENT 329
524 < #define HAVENT_READ_CONF 330
525 < #define HIDDEN 331
526 < #define HIDDEN_ADMIN 332
527 < #define HIDDEN_NAME 333
528 < #define HIDDEN_OPER 334
529 < #define HIDE_SERVER_IPS 335
530 < #define HIDE_SERVERS 336
531 < #define HIDE_SPOOF_IPS 337
532 < #define HOST 338
533 < #define HUB 339
534 < #define HUB_MASK 340
535 < #define IDLETIME 341
536 < #define IGNORE_BOGUS_TS 342
537 < #define INVISIBLE_ON_CONNECT 343
538 < #define IP 344
539 < #define KILL 345
540 < #define KILL_CHASE_TIME_LIMIT 346
541 < #define KLINE 347
542 < #define KLINE_EXEMPT 348
543 < #define KLINE_REASON 349
544 < #define KLINE_WITH_REASON 350
545 < #define KNOCK_DELAY 351
546 < #define KNOCK_DELAY_CHANNEL 352
547 < #define LEAF_MASK 353
548 < #define LINKS_DELAY 354
549 < #define LISTEN 355
550 < #define T_LOG 356
551 < #define LOGGING 357
552 < #define LOG_LEVEL 358
553 < #define MAX_ACCEPT 359
554 < #define MAX_BANS 360
555 < #define MAX_CHANS_PER_USER 361
556 < #define MAX_GLOBAL 362
557 < #define MAX_IDENT 363
558 < #define MAX_LOCAL 364
559 < #define MAX_NICK_CHANGES 365
560 < #define MAX_NICK_TIME 366
561 < #define MAX_NUMBER 367
562 < #define MAX_TARGETS 368
563 < #define MAX_WATCH 369
564 < #define MESSAGE_LOCALE 370
565 < #define MIN_NONWILDCARD 371
566 < #define MIN_NONWILDCARD_SIMPLE 372
567 < #define MODULE 373
568 < #define MODULES 374
569 < #define NAME 375
570 < #define NEED_PASSWORD 376
571 < #define NETWORK_DESC 377
572 < #define NETWORK_NAME 378
573 < #define NICK 379
574 < #define NICK_CHANGES 380
575 < #define NO_CREATE_ON_SPLIT 381
576 < #define NO_JOIN_ON_SPLIT 382
577 < #define NO_OPER_FLOOD 383
578 < #define NO_TILDE 384
579 < #define NOT 385
580 < #define NUMBER 386
581 < #define NUMBER_PER_IDENT 387
582 < #define NUMBER_PER_CIDR 388
583 < #define NUMBER_PER_IP 389
584 < #define NUMBER_PER_IP_GLOBAL 390
585 < #define OPERATOR 391
586 < #define OPERS_BYPASS_CALLERID 392
587 < #define OPER_LOG 393
588 < #define OPER_ONLY_UMODES 394
589 < #define OPER_PASS_RESV 395
590 < #define OPER_SPY_T 396
591 < #define OPER_UMODES 397
592 < #define JOIN_FLOOD_COUNT 398
593 < #define JOIN_FLOOD_TIME 399
594 < #define PACE_WAIT 400
595 < #define PACE_WAIT_SIMPLE 401
596 < #define PASSWORD 402
597 < #define PATH 403
598 < #define PING_COOKIE 404
599 < #define PING_TIME 405
600 < #define PING_WARNING 406
601 < #define PORT 407
602 < #define QSTRING 408
603 < #define QUIET_ON_BAN 409
604 < #define REASON 410
605 < #define REDIRPORT 411
606 < #define REDIRSERV 412
607 < #define REGEX_T 413
608 < #define REHASH 414
609 < #define TREJECT_HOLD_TIME 415
610 < #define REMOTE 416
611 < #define REMOTEBAN 417
612 < #define RESTRICT_CHANNELS 418
613 < #define RESTRICTED 419
614 < #define RSA_PRIVATE_KEY_FILE 420
615 < #define RSA_PUBLIC_KEY_FILE 421
616 < #define SSL_CERTIFICATE_FILE 422
617 < #define T_SSL_CONNECTION_METHOD 423
618 < #define T_SSLV3 424
619 < #define T_TLSV1 425
620 < #define RESV 426
621 < #define RESV_EXEMPT 427
622 < #define SECONDS 428
623 < #define MINUTES 429
624 < #define HOURS 430
625 < #define DAYS 431
626 < #define WEEKS 432
627 < #define SENDQ 433
628 < #define SEND_PASSWORD 434
629 < #define SERVERHIDE 435
630 < #define SERVERINFO 436
631 < #define SERVLINK_PATH 437
632 < #define IRCD_SID 438
633 < #define TKLINE_EXPIRE_NOTICES 439
634 < #define T_SHARED 440
635 < #define T_CLUSTER 441
636 < #define TYPE 442
637 < #define SHORT_MOTD 443
638 < #define SILENT 444
639 < #define SPOOF 445
640 < #define SPOOF_NOTICE 446
641 < #define STATS_E_DISABLED 447
642 < #define STATS_I_OPER_ONLY 448
643 < #define STATS_K_OPER_ONLY 449
644 < #define STATS_O_OPER_ONLY 450
645 < #define STATS_P_OPER_ONLY 451
646 < #define TBOOL 452
647 < #define TMASKED 453
648 < #define T_REJECT 454
649 < #define TS_MAX_DELTA 455
650 < #define TS_WARN_DELTA 456
651 < #define TWODOTS 457
652 < #define T_ALL 458
653 < #define T_BOTS 459
654 < #define T_SOFTCALLERID 460
655 < #define T_CALLERID 461
656 < #define T_CCONN 462
657 < #define T_CCONN_FULL 463
658 < #define T_CLIENT_FLOOD 464
659 < #define T_DEAF 465
660 < #define T_DEBUG 466
661 < #define T_DRONE 467
662 < #define T_EXTERNAL 468
663 < #define T_FULL 469
664 < #define T_INVISIBLE 470
665 < #define T_IPV4 471
666 < #define T_IPV6 472
667 < #define T_LOCOPS 473
668 < #define T_LOGPATH 474
669 < #define T_L_CRIT 475
670 < #define T_L_DEBUG 476
671 < #define T_L_ERROR 477
672 < #define T_L_INFO 478
673 < #define T_L_NOTICE 479
674 < #define T_L_TRACE 480
675 < #define T_L_WARN 481
676 < #define T_MAX_CLIENTS 482
677 < #define T_NCHANGE 483
678 < #define T_OPERWALL 484
679 < #define T_REJ 485
680 < #define T_SERVER 486
681 < #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 <
453 > #define ADMIN 259
454 > #define AFTYPE 260
455 > #define ANTI_NICK_FLOOD 261
456 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
457 > #define AUTOCONN 263
458 > #define BYTES 264
459 > #define KBYTES 265
460 > #define MBYTES 266
461 > #define CALLER_ID_WAIT 267
462 > #define CAN_FLOOD 268
463 > #define CHANNEL 269
464 > #define CIDR_BITLEN_IPV4 270
465 > #define CIDR_BITLEN_IPV6 271
466 > #define CLASS 272
467 > #define CONNECT 273
468 > #define CONNECTFREQ 274
469 > #define CYCLE_ON_HOST_CHANGE 275
470 > #define DEFAULT_FLOODCOUNT 276
471 > #define DEFAULT_SPLIT_SERVER_COUNT 277
472 > #define DEFAULT_SPLIT_USER_COUNT 278
473 > #define DENY 279
474 > #define DESCRIPTION 280
475 > #define DIE 281
476 > #define DISABLE_AUTH 282
477 > #define DISABLE_FAKE_CHANNELS 283
478 > #define DISABLE_REMOTE_COMMANDS 284
479 > #define DOTS_IN_IDENT 285
480 > #define EGDPOOL_PATH 286
481 > #define EMAIL 287
482 > #define ENCRYPTED 288
483 > #define EXCEED_LIMIT 289
484 > #define EXEMPT 290
485 > #define FAILED_OPER_NOTICE 291
486 > #define FLATTEN_LINKS 292
487 > #define GECOS 293
488 > #define GENERAL 294
489 > #define GLINE 295
490 > #define GLINE_DURATION 296
491 > #define GLINE_ENABLE 297
492 > #define GLINE_EXEMPT 298
493 > #define GLINE_MIN_CIDR 299
494 > #define GLINE_MIN_CIDR6 300
495 > #define GLINE_REQUEST_DURATION 301
496 > #define GLOBAL_KILL 302
497 > #define HAVENT_READ_CONF 303
498 > #define HIDDEN 304
499 > #define HIDDEN_NAME 305
500 > #define HIDE_CHANS 306
501 > #define HIDE_IDLE 307
502 > #define HIDE_IDLE_FROM_OPERS 308
503 > #define HIDE_SERVER_IPS 309
504 > #define HIDE_SERVERS 310
505 > #define HIDE_SERVICES 311
506 > #define HIDE_SPOOF_IPS 312
507 > #define HOST 313
508 > #define HUB 314
509 > #define HUB_MASK 315
510 > #define IGNORE_BOGUS_TS 316
511 > #define INVISIBLE_ON_CONNECT 317
512 > #define INVITE_CLIENT_COUNT 318
513 > #define INVITE_CLIENT_TIME 319
514 > #define IP 320
515 > #define IRCD_AUTH 321
516 > #define IRCD_FLAGS 322
517 > #define IRCD_SID 323
518 > #define JOIN_FLOOD_COUNT 324
519 > #define JOIN_FLOOD_TIME 325
520 > #define KILL 326
521 > #define KILL_CHASE_TIME_LIMIT 327
522 > #define KLINE 328
523 > #define KLINE_EXEMPT 329
524 > #define KNOCK_CLIENT_COUNT 330
525 > #define KNOCK_CLIENT_TIME 331
526 > #define KNOCK_DELAY_CHANNEL 332
527 > #define LEAF_MASK 333
528 > #define LINKS_DELAY 334
529 > #define LISTEN 335
530 > #define MASK 336
531 > #define MAX_ACCEPT 337
532 > #define MAX_BANS 338
533 > #define MAX_CHANNELS 339
534 > #define MAX_GLOBAL 340
535 > #define MAX_IDENT 341
536 > #define MAX_IDLE 342
537 > #define MAX_LOCAL 343
538 > #define MAX_NICK_CHANGES 344
539 > #define MAX_NICK_LENGTH 345
540 > #define MAX_NICK_TIME 346
541 > #define MAX_NUMBER 347
542 > #define MAX_TARGETS 348
543 > #define MAX_TOPIC_LENGTH 349
544 > #define MAX_WATCH 350
545 > #define MIN_IDLE 351
546 > #define MIN_NONWILDCARD 352
547 > #define MIN_NONWILDCARD_SIMPLE 353
548 > #define MODULE 354
549 > #define MODULES 355
550 > #define MOTD 356
551 > #define NAME 357
552 > #define NEED_IDENT 358
553 > #define NEED_PASSWORD 359
554 > #define NETWORK_DESC 360
555 > #define NETWORK_NAME 361
556 > #define NICK 362
557 > #define NO_CREATE_ON_SPLIT 363
558 > #define NO_JOIN_ON_SPLIT 364
559 > #define NO_OPER_FLOOD 365
560 > #define NO_TILDE 366
561 > #define NUMBER 367
562 > #define NUMBER_PER_CIDR 368
563 > #define NUMBER_PER_IP 369
564 > #define OPER_ONLY_UMODES 370
565 > #define OPER_PASS_RESV 371
566 > #define OPER_UMODES 372
567 > #define OPERATOR 373
568 > #define OPERS_BYPASS_CALLERID 374
569 > #define PACE_WAIT 375
570 > #define PACE_WAIT_SIMPLE 376
571 > #define PASSWORD 377
572 > #define PATH 378
573 > #define PING_COOKIE 379
574 > #define PING_TIME 380
575 > #define PORT 381
576 > #define QSTRING 382
577 > #define RANDOM_IDLE 383
578 > #define REASON 384
579 > #define REDIRPORT 385
580 > #define REDIRSERV 386
581 > #define REHASH 387
582 > #define REMOTE 388
583 > #define REMOTEBAN 389
584 > #define RESV 390
585 > #define RESV_EXEMPT 391
586 > #define RSA_PRIVATE_KEY_FILE 392
587 > #define RSA_PUBLIC_KEY_FILE 393
588 > #define SECONDS 394
589 > #define MINUTES 395
590 > #define HOURS 396
591 > #define DAYS 397
592 > #define WEEKS 398
593 > #define MONTHS 399
594 > #define YEARS 400
595 > #define SEND_PASSWORD 401
596 > #define SENDQ 402
597 > #define SERVERHIDE 403
598 > #define SERVERINFO 404
599 > #define SHORT_MOTD 405
600 > #define SPOOF 406
601 > #define SPOOF_NOTICE 407
602 > #define SQUIT 408
603 > #define SSL_CERTIFICATE_FILE 409
604 > #define SSL_CERTIFICATE_FINGERPRINT 410
605 > #define SSL_CONNECTION_REQUIRED 411
606 > #define SSL_DH_ELLIPTIC_CURVE 412
607 > #define SSL_DH_PARAM_FILE 413
608 > #define SSL_MESSAGE_DIGEST_ALGORITHM 414
609 > #define STATS_E_DISABLED 415
610 > #define STATS_I_OPER_ONLY 416
611 > #define STATS_K_OPER_ONLY 417
612 > #define STATS_O_OPER_ONLY 418
613 > #define STATS_P_OPER_ONLY 419
614 > #define STATS_U_OPER_ONLY 420
615 > #define T_ALL 421
616 > #define T_BOTS 422
617 > #define T_CALLERID 423
618 > #define T_CCONN 424
619 > #define T_CLUSTER 425
620 > #define T_DEAF 426
621 > #define T_DEBUG 427
622 > #define T_DLINE 428
623 > #define T_EXTERNAL 429
624 > #define T_FARCONNECT 430
625 > #define T_FILE 431
626 > #define T_FULL 432
627 > #define T_GLOBOPS 433
628 > #define T_INVISIBLE 434
629 > #define T_IPV4 435
630 > #define T_IPV6 436
631 > #define T_LOCOPS 437
632 > #define T_LOG 438
633 > #define T_MAX_CLIENTS 439
634 > #define T_NCHANGE 440
635 > #define T_NONONREG 441
636 > #define T_RECVQ 442
637 > #define T_REJ 443
638 > #define T_RESTART 444
639 > #define T_SERVER 445
640 > #define T_SERVICE 446
641 > #define T_SERVICES_NAME 447
642 > #define T_SERVNOTICE 448
643 > #define T_SET 449
644 > #define T_SHARED 450
645 > #define T_SIZE 451
646 > #define T_SKILL 452
647 > #define T_SOFTCALLERID 453
648 > #define T_SPY 454
649 > #define T_SSL 455
650 > #define T_SSL_CIPHER_LIST 456
651 > #define T_SSL_CLIENT_METHOD 457
652 > #define T_SSL_SERVER_METHOD 458
653 > #define T_SSLV3 459
654 > #define T_TLSV1 460
655 > #define T_UMODES 461
656 > #define T_UNAUTH 462
657 > #define T_UNDLINE 463
658 > #define T_UNLIMITED 464
659 > #define T_UNRESV 465
660 > #define T_UNXLINE 466
661 > #define T_WALLOP 467
662 > #define T_WALLOPS 468
663 > #define T_WEBIRC 469
664 > #define TBOOL 470
665 > #define THROTTLE_COUNT 471
666 > #define THROTTLE_TIME 472
667 > #define TKLINE_EXPIRE_NOTICES 473
668 > #define TMASKED 474
669 > #define TRUE_NO_OPER_FLOOD 475
670 > #define TS_MAX_DELTA 476
671 > #define TS_WARN_DELTA 477
672 > #define TWODOTS 478
673 > #define TYPE 479
674 > #define UNKLINE 480
675 > #define USE_EGD 481
676 > #define USE_LOGGING 482
677 > #define USER 483
678 > #define VHOST 484
679 > #define VHOST6 485
680 > #define WARN_NO_CONNECT_BLOCK 486
681 > #define XLINE 487
682  
683 + /* Value type.  */
684   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
685 < typedef union YYSTYPE
685 > typedef union YYSTYPE YYSTYPE;
686 > union YYSTYPE
687   {
688 <
729 < /* Line 293 of yacc.c  */
730 < #line 131 "ircd_parser.y"
688 > #line 147 "conf_parser.y" /* yacc.c:355  */
689  
690    int number;
691    char *string;
692  
693 <
694 <
737 < /* Line 293 of yacc.c  */
738 < #line 739 "ircd_parser.c"
739 < } YYSTYPE;
693 > #line 694 "conf_parser.c" /* yacc.c:355  */
694 > };
695   # define YYSTYPE_IS_TRIVIAL 1
741 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
696   # define YYSTYPE_IS_DECLARED 1
697   #endif
698  
699  
700 < /* Copy the second part of user declarations.  */
700 > extern YYSTYPE yylval;
701  
702 + int yyparse (void);
703 +
704 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
705 +
706 + /* Copy the second part of user declarations.  */
707  
708 < /* Line 343 of yacc.c  */
750 < #line 751 "ircd_parser.c"
708 > #line 709 "conf_parser.c" /* yacc.c:358  */
709  
710   #ifdef short
711   # undef short
# Line 761 | Line 719 | typedef unsigned char yytype_uint8;
719  
720   #ifdef YYTYPE_INT8
721   typedef YYTYPE_INT8 yytype_int8;
764 #elif (defined __STDC__ || defined __C99__FUNC__ \
765     || defined __cplusplus || defined _MSC_VER)
766 typedef signed char yytype_int8;
722   #else
723 < typedef short int yytype_int8;
723 > typedef signed char yytype_int8;
724   #endif
725  
726   #ifdef YYTYPE_UINT16
# Line 785 | Line 740 | typedef short int yytype_int16;
740   #  define YYSIZE_T __SIZE_TYPE__
741   # elif defined size_t
742   #  define YYSIZE_T size_t
743 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
789 <     || defined __cplusplus || defined _MSC_VER)
743 > # elif ! defined YYSIZE_T
744   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
745   #  define YYSIZE_T size_t
746   # else
# Line 800 | Line 754 | typedef short int yytype_int16;
754   # if defined YYENABLE_NLS && YYENABLE_NLS
755   #  if ENABLE_NLS
756   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
757 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
757 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
758   #  endif
759   # endif
760   # ifndef YY_
761 < #  define YY_(msgid) msgid
761 > #  define YY_(Msgid) Msgid
762 > # endif
763 > #endif
764 >
765 > #ifndef YY_ATTRIBUTE
766 > # if (defined __GNUC__                                               \
767 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
768 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
769 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
770 > # else
771 > #  define YY_ATTRIBUTE(Spec) /* empty */
772 > # endif
773 > #endif
774 >
775 > #ifndef YY_ATTRIBUTE_PURE
776 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
777 > #endif
778 >
779 > #ifndef YY_ATTRIBUTE_UNUSED
780 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
781 > #endif
782 >
783 > #if !defined _Noreturn \
784 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
785 > # if defined _MSC_VER && 1200 <= _MSC_VER
786 > #  define _Noreturn __declspec (noreturn)
787 > # else
788 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
789   # endif
790   #endif
791  
792   /* Suppress unused-variable warnings by "using" E.  */
793   #if ! defined lint || defined __GNUC__
794 < # define YYUSE(e) ((void) (e))
794 > # define YYUSE(E) ((void) (E))
795   #else
796 < # define YYUSE(e) /* empty */
796 > # define YYUSE(E) /* empty */
797   #endif
798  
799 < /* Identity function, used to suppress warnings about constant conditions.  */
800 < #ifndef lint
801 < # define YYID(n) (n)
799 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
800 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
801 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
802 >    _Pragma ("GCC diagnostic push") \
803 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
804 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
805 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
806 >    _Pragma ("GCC diagnostic pop")
807   #else
808 < #if (defined __STDC__ || defined __C99__FUNC__ \
823 <     || defined __cplusplus || defined _MSC_VER)
824 < static int
825 < YYID (int yyi)
826 < #else
827 < static int
828 < YYID (yyi)
829 <    int yyi;
808 > # define YY_INITIAL_VALUE(Value) Value
809   #endif
810 < {
811 <  return yyi;
812 < }
810 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
811 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
812 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
813 > #endif
814 > #ifndef YY_INITIAL_VALUE
815 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
816   #endif
817  
818 +
819   #if ! defined yyoverflow || YYERROR_VERBOSE
820  
821   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 850 | Line 833 | YYID (yyi)
833   #    define alloca _alloca
834   #   else
835   #    define YYSTACK_ALLOC alloca
836 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
854 <     || defined __cplusplus || defined _MSC_VER)
836 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
837   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
838 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
839   #     ifndef EXIT_SUCCESS
840   #      define EXIT_SUCCESS 0
841   #     endif
# Line 862 | Line 845 | YYID (yyi)
845   # endif
846  
847   # ifdef YYSTACK_ALLOC
848 <   /* Pacify GCC's `empty if-body' warning.  */
849 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
848 >   /* Pacify GCC's 'empty if-body' warning.  */
849 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
850   #  ifndef YYSTACK_ALLOC_MAXIMUM
851      /* The OS might guarantee only one guard page at the bottom of the stack,
852         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 879 | Line 862 | YYID (yyi)
862   #  endif
863   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
864         && ! ((defined YYMALLOC || defined malloc) \
865 <             && (defined YYFREE || defined free)))
865 >             && (defined YYFREE || defined free)))
866   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
867   #   ifndef EXIT_SUCCESS
868   #    define EXIT_SUCCESS 0
# Line 887 | Line 870 | YYID (yyi)
870   #  endif
871   #  ifndef YYMALLOC
872   #   define YYMALLOC malloc
873 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
891 <     || defined __cplusplus || defined _MSC_VER)
873 > #   if ! defined malloc && ! defined EXIT_SUCCESS
874   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
875   #   endif
876   #  endif
877   #  ifndef YYFREE
878   #   define YYFREE free
879 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
898 <     || defined __cplusplus || defined _MSC_VER)
879 > #   if ! defined free && ! defined EXIT_SUCCESS
880   void free (void *); /* INFRINGES ON USER NAME SPACE */
881   #   endif
882   #  endif
# Line 905 | Line 886 | void free (void *); /* INFRINGES ON USER
886  
887   #if (! defined yyoverflow \
888       && (! defined __cplusplus \
889 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
889 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
890  
891   /* A type that is properly aligned for any stack member.  */
892   union yyalloc
# Line 930 | Line 911 | union yyalloc
911     elements in the stack, and YYPTR gives the new location of the
912     stack.  Advance YYPTR to a properly aligned location for the next
913     stack.  */
914 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 <    do                                                                  \
916 <      {                                                                 \
917 <        YYSIZE_T yynewbytes;                                            \
918 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 <        Stack = &yyptr->Stack_alloc;                                    \
920 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 <      }                                                                 \
923 <    while (YYID (0))
914 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
915 >    do                                                                  \
916 >      {                                                                 \
917 >        YYSIZE_T yynewbytes;                                            \
918 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
919 >        Stack = &yyptr->Stack_alloc;                                    \
920 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
921 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
922 >      }                                                                 \
923 >    while (0)
924  
925   #endif
926  
927   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
928 < /* Copy COUNT objects from FROM to TO.  The source and destination do
928 > /* Copy COUNT objects from SRC to DST.  The source and destination do
929     not overlap.  */
930   # ifndef YYCOPY
931   #  if defined __GNUC__ && 1 < __GNUC__
932 < #   define YYCOPY(To, From, Count) \
933 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
932 > #   define YYCOPY(Dst, Src, Count) \
933 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
934   #  else
935 < #   define YYCOPY(To, From, Count)              \
936 <      do                                        \
937 <        {                                       \
938 <          YYSIZE_T yyi;                         \
939 <          for (yyi = 0; yyi < (Count); yyi++)   \
940 <            (To)[yyi] = (From)[yyi];            \
941 <        }                                       \
942 <      while (YYID (0))
935 > #   define YYCOPY(Dst, Src, Count)              \
936 >      do                                        \
937 >        {                                       \
938 >          YYSIZE_T yyi;                         \
939 >          for (yyi = 0; yyi < (Count); yyi++)   \
940 >            (Dst)[yyi] = (Src)[yyi];            \
941 >        }                                       \
942 >      while (0)
943   #  endif
944   # endif
945   #endif /* !YYCOPY_NEEDED */
# Line 966 | Line 947 | union yyalloc
947   /* YYFINAL -- State number of the termination state.  */
948   #define YYFINAL  2
949   /* YYLAST -- Last index in YYTABLE.  */
950 < #define YYLAST   1258
950 > #define YYLAST   1377
951  
952   /* YYNTOKENS -- Number of terminals.  */
953 < #define YYNTOKENS  265
953 > #define YYNTOKENS  239
954   /* YYNNTS -- Number of nonterminals.  */
955 < #define YYNNTS  318
955 > #define YYNNTS  297
956   /* YYNRULES -- Number of rules.  */
957 < #define YYNRULES  687
958 < /* YYNRULES -- Number of states.  */
959 < #define YYNSTATES  1354
957 > #define YYNRULES  669
958 > /* YYNSTATES -- Number of states.  */
959 > #define YYNSTATES  1318
960  
961 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
961 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
962 >   by yylex, with out-of-bounds checking.  */
963   #define YYUNDEFTOK  2
964 < #define YYMAXUTOK   514
964 > #define YYMAXUTOK   487
965  
966 < #define YYTRANSLATE(YYX)                                                \
966 > #define YYTRANSLATE(YYX)                                                \
967    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
968  
969 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
970 < static const yytype_uint16 yytranslate[] =
969 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
970 >   as returned by yylex, without out-of-bounds checking.  */
971 > static const yytype_uint8 yytranslate[] =
972   {
973         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
976         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
977 <       2,     2,     2,     2,   264,     2,     2,     2,     2,     2,
978 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   260,
979 <       2,   263,     2,     2,     2,     2,     2,     2,     2,     2,
977 >       2,     2,     2,     2,   237,     2,     2,     2,     2,     2,
978 >       2,     2,     2,     2,     2,     2,     2,     2,   238,   233,
979 >       2,   236,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985 <       2,     2,     2,   262,     2,   261,     2,     2,     2,     2,
985 >       2,     2,     2,   235,     2,   234,     2,     2,     2,     2,
986         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
987         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
988         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1035 | Line 1018 | static const yytype_uint16 yytranslate[]
1018       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1019       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1020       215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1021 <     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
1021 >     225,   226,   227,   228,   229,   230,   231,   232
1022   };
1023  
1024   #if YYDEBUG
1025 < /* 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.  */
1025 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1026   static const yytype_uint16 yyrline[] =
1027   {
1028 <       0,   394,   394,   395,   398,   399,   400,   401,   402,   403,
1029 <     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
1030 <     414,   415,   416,   417,   418,   419,   423,   423,   424,   428,
1031 <     432,   436,   440,   444,   450,   450,   451,   452,   453,   454,
1032 <     461,   464,   464,   465,   465,   465,   467,   473,   480,   482,
1033 <     482,   483,   483,   484,   484,   485,   485,   486,   487,   487,
1034 <     488,   488,   489,   490,   494,   493,   512,   512,   513,   519,
1035 <     527,   561,   621,   636,   651,   660,   674,   683,   711,   741,
1036 <     764,   773,   775,   775,   776,   776,   777,   777,   779,   788,
1037 <     797,   810,   812,   813,   815,   815,   816,   817,   817,   818,
1038 <     818,   819,   819,   820,   820,   821,   822,   824,   828,   832,
1039 <     839,   846,   853,   860,   867,   874,   881,   888,   892,   896,
1040 <     900,   904,   908,   912,   918,   928,   927,  1021,  1021,  1022,
1041 <    1022,  1023,  1023,  1023,  1024,  1024,  1024,  1025,  1025,  1025,
1042 <    1027,  1039,  1051,  1085,  1097,  1108,  1150,  1160,  1159,  1165,
1043 <    1165,  1166,  1170,  1174,  1178,  1182,  1186,  1190,  1194,  1198,
1044 <    1202,  1206,  1210,  1214,  1218,  1222,  1226,  1230,  1234,  1238,
1045 <    1245,  1244,  1248,  1248,  1249,  1249,  1250,  1250,  1252,  1259,
1046 <    1266,  1273,  1280,  1287,  1294,  1301,  1308,  1315,  1322,  1329,
1047 <    1336,  1343,  1350,  1357,  1371,  1370,  1420,  1420,  1422,  1422,
1048 <    1423,  1424,  1424,  1425,  1426,  1427,  1428,  1429,  1430,  1431,
1049 <    1432,  1433,  1434,  1435,  1437,  1446,  1455,  1461,  1467,  1473,
1050 <    1479,  1485,  1491,  1497,  1503,  1509,  1515,  1521,  1531,  1530,
1051 <    1547,  1546,  1551,  1551,  1552,  1556,  1560,  1568,  1568,  1569,
1052 <    1569,  1569,  1569,  1569,  1571,  1571,  1573,  1573,  1575,  1589,
1053 <    1609,  1618,  1631,  1630,  1699,  1699,  1700,  1700,  1700,  1700,
1054 <    1701,  1701,  1701,  1702,  1702,  1704,  1741,  1754,  1763,  1775,
1055 <    1774,  1778,  1778,  1779,  1779,  1780,  1780,  1782,  1789,  1796,
1056 <    1803,  1810,  1817,  1824,  1831,  1838,  1845,  1855,  1874,  1884,
1057 <    1898,  1897,  1913,  1913,  1914,  1914,  1914,  1914,  1916,  1925,
1058 <    1940,  1954,  1953,  1969,  1969,  1970,  1970,  1970,  1970,  1972,
1059 <    1981,  2004,  2003,  2009,  2009,  2010,  2014,  2018,  2022,  2026,
1060 <    2030,  2034,  2038,  2042,  2046,  2050,  2060,  2059,  2076,  2076,
1061 <    2077,  2077,  2077,  2079,  2086,  2085,  2091,  2091,  2092,  2096,
1062 <    2100,  2104,  2108,  2112,  2116,  2120,  2124,  2128,  2132,  2142,
1063 <    2141,  2287,  2287,  2288,  2288,  2289,  2289,  2289,  2290,  2290,
1064 <    2291,  2291,  2292,  2292,  2292,  2293,  2293,  2294,  2294,  2295,
1065 <    2297,  2309,  2321,  2330,  2356,  2374,  2392,  2398,  2402,  2411,
1066 <    2410,  2414,  2414,  2415,  2415,  2416,  2416,  2418,  2429,  2436,
1067 <    2443,  2450,  2460,  2501,  2512,  2525,  2538,  2547,  2583,  2582,
1068 <    2646,  2645,  2649,  2649,  2650,  2656,  2656,  2657,  2657,  2657,
1069 <    2657,  2659,  2678,  2688,  2687,  2710,  2710,  2711,  2711,  2711,
1070 <    2713,  2719,  2728,  2730,  2730,  2731,  2731,  2733,  2752,  2751,
1071 <    2799,  2798,  2802,  2802,  2803,  2809,  2809,  2810,  2810,  2810,
1072 <    2810,  2812,  2818,  2827,  2830,  2830,  2831,  2831,  2832,  2832,
1073 <    2833,  2833,  2834,  2834,  2835,  2835,  2836,  2836,  2837,  2837,
1074 <    2838,  2838,  2839,  2839,  2840,  2840,  2841,  2841,  2842,  2842,
1075 <    2843,  2843,  2844,  2844,  2845,  2845,  2846,  2846,  2847,  2847,
1076 <    2848,  2848,  2849,  2849,  2850,  2850,  2851,  2852,  2852,  2853,
1077 <    2853,  2854,  2855,  2855,  2856,  2856,  2857,  2857,  2858,  2858,
1078 <    2859,  2860,  2863,  2868,  2873,  2878,  2883,  2888,  2893,  2898,
1079 <    2903,  2908,  2913,  2918,  2923,  2928,  2933,  2938,  2943,  2948,
1080 <    2953,  2959,  2970,  2975,  2984,  2989,  2994,  2999,  3004,  3009,
1081 <    3012,  3017,  3020,  3025,  3030,  3035,  3040,  3045,  3050,  3055,
1082 <    3060,  3065,  3076,  3081,  3086,  3091,  3100,  3132,  3150,  3155,
1083 <    3164,  3169,  3174,  3180,  3179,  3184,  3184,  3185,  3188,  3191,
1084 <    3194,  3197,  3200,  3203,  3206,  3209,  3212,  3215,  3218,  3221,
1085 <    3224,  3227,  3230,  3233,  3236,  3239,  3245,  3244,  3249,  3249,
1086 <    3250,  3253,  3256,  3259,  3262,  3265,  3268,  3271,  3274,  3277,
1087 <    3280,  3283,  3286,  3289,  3292,  3295,  3298,  3301,  3304,  3309,
1088 <    3314,  3319,  3324,  3334,  3333,  3357,  3357,  3358,  3359,  3360,
1089 <    3361,  3362,  3363,  3364,  3366,  3372,  3379,  3378,  3383,  3383,
1090 <    3384,  3388,  3394,  3428,  3438,  3437,  3487,  3487,  3488,  3492,
1091 <    3501,  3504,  3504,  3505,  3505,  3506,  3506,  3507,  3507,  3508,
1092 <    3508,  3509,  3509,  3510,  3511,  3511,  3512,  3512,  3513,  3513,
1093 <    3514,  3514,  3516,  3521,  3526,  3531,  3536,  3541,  3546,  3551,
1094 <    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
1028 >       0,   383,   383,   384,   387,   388,   389,   390,   391,   392,
1029 >     393,   394,   395,   396,   397,   398,   399,   400,   401,   402,
1030 >     403,   404,   405,   406,   407,   408,   409,   413,   413,   414,
1031 >     415,   416,   417,   418,   419,   420,   421,   424,   424,   425,
1032 >     426,   427,   428,   435,   438,   438,   439,   439,   439,   441,
1033 >     447,   454,   456,   456,   457,   458,   459,   460,   461,   462,
1034 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1035 >     473,   474,   475,   476,   479,   480,   482,   482,   483,   489,
1036 >     497,   497,   498,   504,   512,   554,   612,   640,   648,   661,
1037 >     689,   704,   719,   728,   742,   751,   779,   809,   834,   856,
1038 >     878,   887,   889,   889,   890,   891,   892,   893,   895,   904,
1039 >     913,   926,   925,   943,   943,   944,   944,   944,   946,   952,
1040 >     961,   962,   962,   964,   964,   965,   967,   974,   974,   987,
1041 >     988,   990,   990,   991,   991,   993,  1001,  1004,  1010,  1009,
1042 >    1015,  1015,  1016,  1020,  1024,  1028,  1032,  1036,  1040,  1044,
1043 >    1048,  1059,  1058,  1138,  1138,  1139,  1140,  1141,  1142,  1143,
1044 >    1144,  1145,  1146,  1147,  1148,  1149,  1151,  1157,  1163,  1169,
1045 >    1180,  1186,  1192,  1203,  1210,  1209,  1215,  1215,  1216,  1220,
1046 >    1224,  1228,  1232,  1236,  1240,  1244,  1248,  1252,  1256,  1260,
1047 >    1264,  1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,
1048 >    1307,  1306,  1312,  1312,  1313,  1317,  1321,  1325,  1329,  1333,
1049 >    1337,  1341,  1345,  1349,  1353,  1357,  1361,  1365,  1369,  1373,
1050 >    1377,  1381,  1385,  1389,  1393,  1397,  1401,  1412,  1411,  1473,
1051 >    1473,  1474,  1475,  1476,  1477,  1478,  1479,  1480,  1481,  1482,
1052 >    1483,  1484,  1485,  1486,  1486,  1487,  1488,  1489,  1490,  1492,
1053 >    1498,  1504,  1510,  1516,  1522,  1528,  1534,  1540,  1546,  1552,
1054 >    1559,  1565,  1571,  1577,  1586,  1596,  1595,  1601,  1601,  1602,
1055 >    1606,  1617,  1616,  1623,  1622,  1627,  1627,  1628,  1632,  1636,
1056 >    1642,  1642,  1643,  1643,  1643,  1643,  1643,  1645,  1645,  1647,
1057 >    1647,  1649,  1663,  1681,  1687,  1697,  1696,  1738,  1738,  1739,
1058 >    1740,  1741,  1742,  1743,  1744,  1745,  1746,  1747,  1749,  1755,
1059 >    1761,  1767,  1779,  1778,  1784,  1784,  1785,  1789,  1793,  1797,
1060 >    1801,  1805,  1809,  1813,  1817,  1821,  1827,  1841,  1850,  1864,
1061 >    1863,  1878,  1878,  1879,  1879,  1879,  1879,  1881,  1887,  1893,
1062 >    1903,  1905,  1905,  1906,  1906,  1908,  1924,  1923,  1948,  1948,
1063 >    1949,  1949,  1949,  1949,  1951,  1957,  1977,  1976,  1982,  1982,
1064 >    1983,  1987,  1991,  1995,  1999,  2003,  2007,  2011,  2015,  2019,
1065 >    2029,  2028,  2049,  2049,  2050,  2050,  2050,  2052,  2059,  2058,
1066 >    2064,  2064,  2065,  2069,  2073,  2077,  2081,  2085,  2089,  2093,
1067 >    2097,  2101,  2111,  2110,  2182,  2182,  2183,  2184,  2185,  2186,
1068 >    2187,  2188,  2189,  2190,  2191,  2192,  2193,  2194,  2195,  2196,
1069 >    2197,  2199,  2205,  2211,  2217,  2230,  2243,  2249,  2255,  2259,
1070 >    2268,  2267,  2272,  2272,  2273,  2277,  2283,  2294,  2300,  2306,
1071 >    2312,  2328,  2327,  2353,  2353,  2354,  2354,  2354,  2356,  2376,
1072 >    2386,  2385,  2412,  2412,  2413,  2413,  2413,  2415,  2421,  2430,
1073 >    2432,  2432,  2433,  2433,  2435,  2453,  2452,  2475,  2475,  2476,
1074 >    2476,  2476,  2478,  2484,  2493,  2496,  2496,  2497,  2498,  2499,
1075 >    2500,  2501,  2502,  2503,  2504,  2505,  2506,  2507,  2508,  2509,
1076 >    2510,  2511,  2512,  2513,  2514,  2515,  2516,  2517,  2518,  2519,
1077 >    2520,  2521,  2522,  2523,  2524,  2525,  2526,  2527,  2528,  2529,
1078 >    2530,  2531,  2532,  2533,  2534,  2535,  2536,  2537,  2538,  2539,
1079 >    2540,  2541,  2542,  2543,  2544,  2545,  2546,  2547,  2550,  2555,
1080 >    2561,  2567,  2573,  2579,  2584,  2589,  2594,  2599,  2604,  2609,
1081 >    2614,  2619,  2624,  2629,  2634,  2639,  2644,  2650,  2661,  2666,
1082 >    2671,  2676,  2681,  2686,  2691,  2694,  2699,  2702,  2707,  2712,
1083 >    2717,  2722,  2727,  2732,  2737,  2742,  2747,  2752,  2757,  2762,
1084 >    2771,  2780,  2785,  2790,  2795,  2801,  2800,  2805,  2805,  2806,
1085 >    2809,  2812,  2815,  2818,  2821,  2824,  2827,  2830,  2833,  2836,
1086 >    2839,  2842,  2845,  2848,  2851,  2854,  2857,  2860,  2863,  2866,
1087 >    2869,  2875,  2874,  2879,  2879,  2880,  2883,  2886,  2889,  2892,
1088 >    2895,  2898,  2901,  2904,  2907,  2910,  2913,  2916,  2919,  2922,
1089 >    2925,  2928,  2931,  2934,  2937,  2942,  2947,  2952,  2961,  2964,
1090 >    2964,  2965,  2966,  2967,  2968,  2969,  2970,  2971,  2972,  2973,
1091 >    2974,  2975,  2976,  2977,  2978,  2979,  2981,  2986,  2991,  2996,
1092 >    3001,  3006,  3011,  3016,  3021,  3026,  3031,  3036,  3041,  3046,
1093 >    3054,  3057,  3057,  3058,  3059,  3060,  3061,  3062,  3063,  3064,
1094 >    3065,  3066,  3068,  3074,  3080,  3086,  3092,  3101,  3116,  3122
1095   };
1096   #endif
1097  
1098 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1098 > #if YYDEBUG || YYERROR_VERBOSE || 0
1099   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1100     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1101   static const char *const yytname[] =
1102   {
1103 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1104 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1105 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1106 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CAN_IDLE",
1107 <  "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE",
1421 <  "CLASS", "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ",
1422 <  "CRYPTLINK", "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1103 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1104 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1105 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1106 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1107 >  "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1108    "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1109    "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1110 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1426 <  "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL", "ENABLE",
1110 >  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1111    "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1112 <  "IRCD_FLAGS", "FLATTEN_LINKS", "FFAILED_OPERLOG", "FKILLLOG",
1113 <  "FKLINELOG", "FGLINELOG", "FIOERRLOG", "FOPERLOG", "FOPERSPYLOG",
1114 <  "FUSERLOG", "GECOS", "GENERAL", "GLINE", "GLINES", "GLINE_EXEMPT",
1115 <  "GLINE_LOG", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1116 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1117 <  "HIDDEN_ADMIN", "HIDDEN_NAME", "HIDDEN_OPER", "HIDE_SERVER_IPS",
1118 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IDLETIME",
1119 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1120 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1121 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1122 <  "LINKS_DELAY", "LISTEN", "T_LOG", "LOGGING", "LOG_LEVEL", "MAX_ACCEPT",
1123 <  "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1124 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1125 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1126 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1127 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1112 >  "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1113 >  "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1114 >  "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1115 >  "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS",
1116 >  "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES", "HIDE_SPOOF_IPS",
1117 >  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1118 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "IP", "IRCD_AUTH",
1119 >  "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1120 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_CLIENT_COUNT",
1121 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1122 >  "LISTEN", "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1123 >  "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1124 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1125 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1126 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1127 >  "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1128    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1129 <  "NOT", "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1130 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_LOG",
1131 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1132 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1133 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1134 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1135 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1136 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1137 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1138 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1139 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1140 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1141 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1142 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1143 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1144 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1145 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1146 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DRONE",
1147 <  "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1148 <  "T_LOGPATH", "T_L_CRIT", "T_L_DEBUG", "T_L_ERROR", "T_L_INFO",
1149 <  "T_L_NOTICE", "T_L_TRACE", "T_L_WARN", "T_MAX_CLIENTS", "T_NCHANGE",
1150 <  "T_OPERWALL", "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY",
1151 <  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNRESV", "T_UNXLINE", "T_WALLOP",
1152 <  "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE",
1153 <  "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX",
1154 <  "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6",
1155 <  "XLINE", "WARN", "WARN_NO_NLINE", "';'", "'}'", "'{'", "'='", "','",
1156 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1157 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1158 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1159 <  "serverinfo_item", "serverinfo_ssl_connection_method", "$@1",
1160 <  "method_types", "method_type_item", "serverinfo_ssl_certificate_file",
1161 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1129 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1130 >  "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1131 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1132 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1133 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1134 >  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1135 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1136 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1137 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1138 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1139 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1140 >  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY",
1141 >  "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS", "T_CALLERID", "T_CCONN",
1142 >  "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1143 >  "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS", "T_INVISIBLE", "T_IPV4",
1144 >  "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS", "T_NCHANGE",
1145 >  "T_NONONREG", "T_RECVQ", "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE",
1146 >  "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET", "T_SHARED", "T_SIZE",
1147 >  "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL", "T_SSL_CIPHER_LIST",
1148 >  "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1149 >  "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1150 >  "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1151 >  "THROTTLE_COUNT", "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1152 >  "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1153 >  "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1154 >  "WARN_NO_CONNECT_BLOCK", "XLINE", "';'", "'}'", "'{'", "'='", "','",
1155 >  "':'", "$accept", "conf", "conf_item", "timespec_", "timespec",
1156 >  "sizespec_", "sizespec", "modules_entry", "modules_items",
1157 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1158 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_client_method",
1159 >  "serverinfo_ssl_server_method", "client_method_types",
1160 >  "client_method_type_item", "server_method_types",
1161 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1162 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1163 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1164 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1165    "serverinfo_description", "serverinfo_network_name",
1166    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1167 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1168 <  "admin_item", "admin_name", "admin_email", "admin_description",
1169 <  "logging_entry", "logging_items", "logging_item", "logging_path",
1170 <  "logging_oper_log", "logging_fuserlog", "logging_ffailed_operlog",
1171 <  "logging_foperlog", "logging_foperspylog", "logging_fglinelog",
1172 <  "logging_fklinelog", "logging_ioerrlog", "logging_killlog",
1173 <  "logging_log_level", "logging_use_logging", "oper_entry", "$@2",
1174 <  "oper_name_b", "oper_items", "oper_item", "oper_name", "oper_name_t",
1175 <  "oper_user", "oper_password", "oper_encrypted",
1176 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@3",
1177 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@4",
1178 <  "oper_flags_items", "oper_flags_item", "$@5", "$@6",
1179 <  "oper_flags_item_atom", "class_entry", "$@7", "class_name_b",
1180 <  "class_items", "class_item", "class_name", "class_name_t",
1181 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1182 <  "class_connectfreq", "class_max_number", "class_max_global",
1183 <  "class_max_local", "class_max_ident", "class_sendq",
1184 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1185 <  "class_number_per_cidr", "listen_entry", "$@8", "listen_flags", "$@9",
1186 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1187 <  "listen_port", "$@10", "port_items", "port_item", "listen_address",
1188 <  "listen_host", "auth_entry", "$@11", "auth_items", "auth_item",
1189 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1190 <  "$@12", "auth_flags_items", "auth_flags_item", "$@13", "$@14",
1191 <  "auth_flags_item_atom", "auth_spoof", "auth_redir_serv",
1192 <  "auth_redir_port", "resv_entry", "$@15", "resv_items", "resv_item",
1193 <  "resv_creason", "resv_channel", "resv_nick", "shared_entry", "$@16",
1167 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1168 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1169 >  "admin_items", "admin_item", "admin_name", "admin_email",
1170 >  "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1171 >  "motd_mask", "motd_file", "logging_entry", "logging_items",
1172 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1173 >  "logging_file_items", "logging_file_item", "logging_file_name",
1174 >  "logging_file_size", "logging_file_type", "$@3",
1175 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1176 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1177 >  "oper_encrypted", "oper_rsa_public_key_file",
1178 >  "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1179 >  "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1180 >  "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1181 >  "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1182 >  "class_name", "class_ping_time", "class_number_per_ip",
1183 >  "class_connectfreq", "class_max_channels", "class_max_number",
1184 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1185 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1186 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1187 >  "class_flags", "$@8", "class_flags_items", "class_flags_item",
1188 >  "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1189 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1190 >  "$@11", "port_items", "port_item", "listen_address", "listen_host",
1191 >  "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1192 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1193 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1194 >  "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1195 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1196 >  "service_items", "service_item", "service_name", "shared_entry", "$@15",
1197    "shared_items", "shared_item", "shared_name", "shared_user",
1198 <  "shared_type", "$@17", "shared_types", "shared_type_item",
1199 <  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1200 <  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1201 <  "connect_entry", "$@20", "connect_name_b", "connect_items",
1202 <  "connect_item", "connect_name", "connect_name_t", "connect_host",
1203 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1204 <  "connect_port", "connect_aftype", "connect_flags", "$@21",
1205 <  "connect_flags_items", "connect_flags_item", "$@22", "$@23",
1206 <  "connect_flags_item_atom", "connect_rsa_public_key_file",
1207 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1208 <  "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",
1198 >  "shared_type", "$@16", "shared_types", "shared_type_item",
1199 >  "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1200 >  "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1201 >  "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1202 >  "connect_host", "connect_vhost", "connect_send_password",
1203 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1204 >  "connect_port", "connect_aftype", "connect_flags", "$@20",
1205 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1206 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1207 >  "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1208 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1209    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1210 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@27",
1523 <  "gecos_flags", "$@28", "gecos_flags_items", "gecos_flags_item",
1210 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1211    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1212    "general_entry", "general_items", "general_item", "general_max_watch",
1213 +  "general_cycle_on_host_change", "general_gline_enable",
1214 +  "general_gline_duration", "general_gline_request_duration",
1215    "general_gline_min_cidr", "general_gline_min_cidr6",
1216 <  "general_burst_away", "general_use_whois_actually",
1217 <  "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",
1216 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1217 >  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1218    "general_failed_oper_notice", "general_anti_nick_flood",
1219    "general_max_nick_time", "general_max_nick_changes",
1220    "general_max_accept", "general_anti_spam_exit_message_time",
1221    "general_ts_warn_delta", "general_ts_max_delta",
1222 <  "general_havent_read_conf", "general_kline_with_reason",
1223 <  "general_kline_reason", "general_invisible_on_connect",
1537 <  "general_warn_no_nline", "general_stats_e_disabled",
1222 >  "general_havent_read_conf", "general_invisible_on_connect",
1223 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1224    "general_stats_o_oper_only", "general_stats_P_oper_only",
1225 <  "general_stats_k_oper_only", "general_stats_i_oper_only",
1226 <  "general_pace_wait", "general_caller_id_wait",
1227 <  "general_opers_bypass_callerid", "general_pace_wait_simple",
1228 <  "general_short_motd", "general_no_oper_flood",
1229 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1230 <  "general_message_locale", "general_idletime", "general_dots_in_ident",
1231 <  "general_max_targets", "general_servlink_path",
1232 <  "general_default_cipher_preference", "general_compression_level",
1233 <  "general_use_egd", "general_egdpool_path", "general_ping_cookie",
1234 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1235 <  "$@29", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1550 <  "$@30", "umode_items", "umode_item", "general_min_nonwildcard",
1225 >  "general_stats_u_oper_only", "general_stats_k_oper_only",
1226 >  "general_stats_i_oper_only", "general_pace_wait",
1227 >  "general_caller_id_wait", "general_opers_bypass_callerid",
1228 >  "general_pace_wait_simple", "general_short_motd",
1229 >  "general_no_oper_flood", "general_true_no_oper_flood",
1230 >  "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1231 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1232 >  "general_ping_cookie", "general_disable_auth", "general_throttle_count",
1233 >  "general_throttle_time", "general_oper_umodes", "$@24", "umode_oitems",
1234 >  "umode_oitem", "general_oper_only_umodes", "$@25", "umode_items",
1235 >  "umode_item", "general_min_nonwildcard",
1236    "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",
1237    "channel_entry", "channel_items", "channel_item",
1238 <  "channel_disable_fake_channels", "channel_restrict_channels",
1239 <  "channel_disable_local_channels", "channel_use_except",
1240 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1241 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1561 <  "channel_quiet_on_ban", "channel_max_bans",
1238 >  "channel_disable_fake_channels", "channel_invite_client_count",
1239 >  "channel_invite_client_time", "channel_knock_client_count",
1240 >  "channel_knock_client_time", "channel_knock_delay_channel",
1241 >  "channel_max_channels", "channel_max_bans",
1242    "channel_default_split_user_count", "channel_default_split_server_count",
1243    "channel_no_create_on_split", "channel_no_join_on_split",
1244 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1245 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1246 <  "serverhide_flatten_links", "serverhide_hide_servers",
1247 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1248 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1244 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1245 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1246 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1247 >  "serverhide_hide_services", "serverhide_hidden_name",
1248 >  "serverhide_links_delay", "serverhide_hidden",
1249 >  "serverhide_hide_server_ips", YY_NULLPTR
1250   };
1251   #endif
1252  
1253   # ifdef YYPRINT
1254 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1255 <   token YYLEX-NUM.  */
1254 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1255 >   (internal) symbol number NUM (which must be that of a token).  */
1256   static const yytype_uint16 yytoknum[] =
1257   {
1258         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1597 | Line 1278 | static const yytype_uint16 yytoknum[] =
1278       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1279       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1280       475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1281 <     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
1281 >     485,   486,   487,    59,   125,   123,    61,    44,    58
1282   };
1283   # endif
1284  
1285 < /* 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 < };
1285 > #define YYPACT_NINF -789
1286  
1287 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1288 < static const yytype_uint8 yyr2[] =
1287 > #define yypact_value_is_default(Yystate) \
1288 >  (!!((Yystate) == (-789)))
1289 >
1290 > #define YYTABLE_NINF -128
1291 >
1292 > #define yytable_value_is_error(Yytable_value) \
1293 >  0
1294 >
1295 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1296 >     STATE-NUM.  */
1297 > static const yytype_int16 yypact[] =
1298   {
1299 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1300 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1302 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1303 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1304 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1305 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     1,
1306 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1307 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1308 <       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1309 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     4,
1310 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1311 <       4,     4,     4,     4,     4,     0,     7,     0,     1,     2,
1312 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1313 <       4,     1,     4,     4,     4,     4,     4,     0,     5,     3,
1314 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1315 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1316 <       0,     5,     3,     1,     0,     3,     0,     2,     1,     1,
1317 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1318 <       1,     1,     1,     1,     0,     7,     0,     1,     2,     1,
1319 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1320 <       1,     1,     1,     2,     4,     1,     4,     4,     4,     4,
1321 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1322 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1323 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1324 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1325 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1326 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1327 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1328 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1329 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1330 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1332 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1333 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1334 <       7,     0,     1,     2,     1,     1,     1,     1,     1,     1,
1335 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1336 <       4,     1,     4,     4,     4,     4,     4,     4,     4,     0,
1337 <       5,     3,     1,     0,     3,     0,     2,     1,     1,     1,
1338 <       1,     1,     4,     4,     4,     4,     4,     4,     0,     6,
1339 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1340 <       1,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1341 <       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1342 <       0,     5,     3,     1,     1,     2,     1,     1,     1,     1,
1343 <       1,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1344 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1345 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1346 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1347 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1348 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1349 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1350 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1351 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1352 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1353 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1354 <       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1355 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1356 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1357 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1358 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1359 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1360 <       1,     1,     1,     1,     4,     4,     0,     5,     3,     1,
1361 <       1,     1,     4,     4,     0,     5,     3,     1,     1,     1,
1362 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1363 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1364 <       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
1365 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1366 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1367 <       1,     4,     4,     4,     4,     4,     4,     4
1299 >    -789,   656,  -789,   -59,  -226,  -220,  -789,  -789,  -789,  -217,
1300 >    -789,  -198,  -789,  -789,  -789,  -195,  -789,  -789,  -789,  -192,
1301 >    -189,  -789,  -181,  -171,  -789,  -789,  -789,  -789,  -789,  -789,
1302 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1303 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   307,
1304 >     925,  -169,  -160,  -158,    22,  -155,   387,  -136,  -121,  -119,
1305 >      50,  -116,  -114,   -97,   761,   433,   -84,    34,     2,   -82,
1306 >     -73,   -47,   -34,   -27,     9,  -789,  -789,  -789,  -789,  -789,
1307 >     -22,    -7,    -1,    44,    68,    79,    82,    84,    88,    92,
1308 >      98,   102,   104,   112,   266,  -789,  -789,  -789,  -789,  -789,
1309 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1310 >     681,   563,    19,  -789,   115,    21,  -789,  -789,    26,  -789,
1311 >     119,   129,   131,   141,   143,   145,   147,   148,   150,   154,
1312 >     155,   156,   159,   160,   164,   167,   175,   176,   177,   179,
1313 >     180,   183,   184,   186,   188,   189,   190,  -789,   194,  -789,
1314 >     207,   209,   210,   211,   215,   216,   217,   218,   220,   221,
1315 >     224,   225,   226,   227,   228,   230,   231,   232,   234,   235,
1316 >      61,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1317 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1318 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1319 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1320 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1321 >    -789,  -789,   343,    69,   301,   -70,   236,   239,    16,  -789,
1322 >    -789,  -789,   125,   388,   275,  -789,   241,   243,   251,   252,
1323 >     253,   255,   257,   259,   308,  -789,  -789,  -789,  -789,  -789,
1324 >    -789,  -789,  -789,  -789,   -29,   260,   263,   269,   273,   285,
1325 >     286,   288,   293,   294,   295,   296,   297,   300,   304,   305,
1326 >     310,   317,   319,   320,   168,  -789,  -789,  -789,  -789,  -789,
1327 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1328 >    -789,  -789,  -789,  -789,  -789,    25,    53,   321,    10,  -789,
1329 >    -789,  -789,    89,  -789,   322,    97,  -789,  -789,    93,  -789,
1330 >     258,   398,   432,    73,  -789,   249,   270,   345,   449,   450,
1331 >     451,   450,   457,   450,   450,   460,   461,   359,   361,   344,
1332 >    -789,   348,   342,   349,   350,  -789,   352,   353,   362,   364,
1333 >     365,   366,   370,   375,   376,   378,   383,   384,   386,   146,
1334 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1335 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   377,   389,
1336 >     391,   393,   395,   396,   397,  -789,   401,   403,   404,   407,
1337 >     412,   414,   415,    11,  -789,  -789,  -789,  -789,  -789,  -789,
1338 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1339 >     417,   418,     7,  -789,  -789,  -789,   468,   413,  -789,  -789,
1340 >     419,   422,    38,  -789,  -789,  -789,   382,   450,   450,   409,
1341 >     547,   446,   552,   539,   453,   450,   454,   559,   566,   450,
1342 >     567,   466,   469,   470,   450,   574,   575,   450,   578,   580,
1343 >     586,   587,   486,   439,   488,   472,   489,   450,   450,   491,
1344 >     495,   497,  -190,  -183,   498,   499,   500,   589,   605,   450,
1345 >     505,   506,   450,   450,   508,   509,   492,  -789,   496,   502,
1346 >     507,  -789,   510,   511,   514,   515,   516,    57,  -789,  -789,
1347 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   517,   518,
1348 >      41,  -789,  -789,  -789,   501,   523,   524,  -789,   525,  -789,
1349 >      18,  -789,  -789,  -789,  -789,  -789,   601,   603,   512,  -789,
1350 >     530,   534,   535,    29,  -789,  -789,  -789,   542,   536,   540,
1351 >    -789,   544,   549,   553,   557,   560,  -789,   561,    62,  -789,
1352 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1353 >     545,   564,   571,   573,    12,  -789,  -789,  -789,  -789,   520,
1354 >     526,   529,   604,   584,   588,   597,   450,   555,  -789,  -789,
1355 >     606,   599,   675,   620,   706,   692,   693,   695,   696,   697,
1356 >     698,   700,   702,   718,   704,   142,   149,   705,   707,   600,
1357 >    -789,   602,   607,  -789,    30,  -789,  -789,  -789,  -789,   621,
1358 >     608,  -789,   609,   710,   612,  -789,   613,   614,  -789,   616,
1359 >      23,  -789,  -789,  -789,  -789,   615,   625,   628,  -789,   631,
1360 >     633,   636,   638,   374,   639,   642,   644,   645,   646,   647,
1361 >     649,   651,   655,   657,  -789,  -789,   726,   737,   450,   617,
1362 >     742,   777,   779,   450,   780,   781,   450,   715,   782,   784,
1363 >     450,   791,   791,   673,  -789,  -789,   783,   192,   786,   709,
1364 >     790,   792,   672,   793,   795,   799,   798,   807,   813,   817,
1365 >     712,  -789,   824,   827,   722,  -789,   727,  -789,   837,   838,
1366 >     733,  -789,   734,   735,   736,   739,   741,   744,   745,   746,
1367 >     749,   750,   751,   752,   753,   754,   757,   758,   759,   760,
1368 >     763,   765,   766,   770,   771,   772,   773,   774,   778,   764,
1369 >     785,   688,   787,   788,   789,   794,   796,   797,   802,   803,
1370 >     804,   805,   806,   808,   809,   810,   811,   812,   814,   815,
1371 >     816,   818,   819,   820,  -789,  -789,   843,   800,   776,   848,
1372 >     869,   870,   883,   886,   821,  -789,   887,   889,   822,  -789,
1373 >    -789,   890,   892,   823,   911,   825,  -789,   828,   829,  -789,
1374 >    -789,   897,   898,   830,  -789,  -789,   899,   831,   832,   901,
1375 >     904,   905,   913,   835,   833,   929,   834,  -789,  -789,   930,
1376 >     933,   937,   839,  -789,   840,   841,   842,   844,   845,   846,
1377 >     847,   849,  -789,   850,   851,   852,   853,   854,   855,   856,
1378 >     857,   858,   859,   860,   861,   862,   863,   864,  -789,  -789,
1379 >    -188,  -789,  -789,  -789,  -185,  -789,   865,   866,  -789,  -789,
1380 >     938,   867,   868,  -789,   871,  -789,   182,   872,  -789,  -789,
1381 >     939,   873,   943,   874,  -789,  -789,  -789,  -789,  -789,  -789,
1382 >    -789,  -789,   450,   450,   450,   450,   450,   450,   450,  -789,
1383 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1384 >    -789,   875,   877,   878,   -32,   879,   880,   881,   882,   884,
1385 >     885,   888,   891,   893,   894,   895,   289,   896,   900,  -789,
1386 >     902,   903,   906,   907,   908,   909,   910,    -3,   912,   914,
1387 >     915,   916,   917,   918,   919,  -789,   920,   921,  -789,  -789,
1388 >     922,   923,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1389 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1390 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1391 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1392 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1393 >    -180,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1394 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1395 >    -789,  -789,  -789,  -789,  -789,  -178,  -789,  -789,  -789,  -789,
1396 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1397 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   924,
1398 >     926,   541,   927,   928,   931,   932,   934,  -789,   935,   936,
1399 >    -789,   940,   941,     1,   947,   942,  -789,  -789,  -789,  -789,
1400 >     944,   945,  -789,   948,   949,   494,   950,   951,   952,   953,
1401 >     954,   730,   955,  -789,   956,   957,   958,  -789,  -789,  -789,
1402 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1403 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1404 >    -789,  -789,   142,  -789,   149,  -789,  -789,   959,   576,  -789,
1405 >    -789,   960,   961,   962,  -789,    32,  -789,  -789,  -789,  -789,
1406 >    -789,   963,   748,   966,  -789,  -789,  -789,  -789,  -789,  -789,
1407 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -177,  -789,  -789,
1408 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1409 >     791,   791,   791,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1410 >    -789,  -789,  -789,  -789,  -789,  -789,  -172,  -789,  -789,  -789,
1411 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1412 >     764,  -789,   688,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1413 >    -789,  -789,  -789,  -789,  -789,   -65,  -789,  -789,  -789,  -789,
1414 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   -43,
1415 >    -789,   964,   911,   967,  -789,  -789,  -789,  -789,  -789,   965,
1416 >    -789,  -789,   968,  -789,  -789,  -789,  -789,   969,  -789,  -789,
1417 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   -41,  -789,
1418 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1419 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1420 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,   -30,  -789,  -789,
1421 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1422 >    -789,  -789,  -789,  -789,  -789,  -789,   -18,  -789,  -789,   973,
1423 >     -74,   972,   971,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1424 >    -789,  -789,  -789,  -789,  -789,   -17,  -789,  -789,  -789,   -32,
1425 >    -789,  -789,  -789,  -789,    -3,  -789,  -789,  -789,   541,  -789,
1426 >       1,  -789,  -789,  -789,   983,   986,   987,  -789,   494,  -789,
1427 >     730,  -789,   576,   976,   977,   978,   410,  -789,  -789,   748,
1428 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1429 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1430 >    -789,  -789,    70,  -789,  -789,  -789,   410,  -789
1431   };
1432  
1433 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1434 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1435 <   means the default is an error.  */
1433 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1434 >     Performed when YYTABLE does not specify something else to do.  Zero
1435 >     means the default is an error.  */
1436   static const yytype_uint16 yydefact[] =
1437   {
1438 <       2,     0,     1,     0,     0,     0,   194,   349,   413,     0,
1439 <     428,     0,   603,   252,   398,   228,     0,     0,   125,   290,
1440 <       0,     0,   301,   326,     3,    23,    11,     4,     5,     6,
1441 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1442 <      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,
1438 >       2,     0,     1,     0,     0,     0,   227,   392,   440,     0,
1439 >     455,     0,   295,   431,   271,     0,   111,   151,   329,     0,
1440 >       0,   370,     0,     0,   346,     3,    23,    11,     4,    24,
1441 >       5,     6,     8,     9,    10,    13,    14,    15,    16,    17,
1442 >      18,    19,    20,    22,    21,     7,    12,    25,    26,     0,
1443         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,
1444         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1445 +       0,     0,     0,     0,     0,   103,   104,   106,   105,   635,
1446         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1447 +       0,     0,     0,     0,     0,   620,   634,   622,   623,   624,
1448 +     625,   626,   627,   621,   628,   629,   630,   631,   632,   633,
1449 +       0,     0,     0,   453,     0,     0,   451,   452,     0,   517,
1450         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776       0,   576,     0,   553,     0,     0,     0,     0,     0,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 <       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,
1452 >       0,     0,     0,     0,     0,     0,     0,   591,     0,   565,
1453         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1795       0,     0,     0,     0,   631,     0,     0,   419,     0,     0,
1796       0,   416,   417,   418,     0,     0,   423,   440,     0,     0,
1797     430,   439,     0,   436,   437,   438,     0,     0,     0,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1455 +       0,   466,   514,   516,   508,   509,   510,   511,   512,   507,
1456 +     477,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1457 +     476,   504,   478,   479,   513,   481,   486,   487,   482,   484,
1458 +     483,   497,   498,   485,   488,   489,   490,   491,   480,   493,
1459 +     494,   495,   515,   505,   506,   502,   503,   496,   492,   500,
1460 +     501,   499,     0,     0,     0,     0,     0,     0,     0,    45,
1461 +      46,    47,     0,     0,     0,   661,     0,     0,     0,     0,
1462 +       0,     0,     0,     0,     0,   652,   653,   654,   655,   656,
1463 +     659,   657,   658,   660,     0,     0,     0,     0,     0,     0,
1464         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465 +       0,     0,     0,     0,     0,    53,    69,    70,    68,    65,
1466 +      63,    71,    72,    64,    54,    67,    57,    58,    59,    55,
1467 +      66,    60,    61,    62,    56,     0,     0,     0,     0,   122,
1468 +     123,   124,     0,   344,     0,     0,   342,   343,     0,   107,
1469 +       0,     0,     0,     0,   102,     0,     0,     0,     0,     0,
1470         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1471 +     619,     0,     0,     0,     0,   265,     0,     0,     0,     0,
1472         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1473 +     230,   231,   234,   236,   237,   238,   239,   240,   241,   242,
1474 +     243,   244,   232,   233,   235,   245,   246,   247,     0,     0,
1475 +       0,     0,     0,     0,     0,   420,     0,     0,     0,     0,
1476 +       0,     0,     0,     0,   395,   396,   397,   398,   399,   400,
1477 +     401,   403,   402,   405,   409,   406,   407,   408,   404,   446,
1478 +       0,     0,     0,   443,   444,   445,     0,     0,   450,   461,
1479 +       0,     0,     0,   458,   459,   460,     0,     0,     0,     0,
1480         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,
1481         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,
1482         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,
1483         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1484 <     630,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1485 <       0,     0,     0,     0,     0,     0,   199,   200,   203,   204,
1486 <     206,   207,   208,   209,   210,   211,   212,   201,   202,   205,
1487 <       0,     0,     0,     0,     0,     0,   379,     0,     0,     0,
1488 <       0,     0,     0,     0,     0,     0,   354,   355,   356,   357,
1489 <     358,   359,   361,   360,   362,   367,   366,   363,   364,   365,
1490 <     368,     0,     0,     0,   415,     0,   422,     0,     0,     0,
1491 <       0,   435,     0,     0,     0,     0,     0,     0,     0,     0,
1484 >       0,     0,     0,     0,     0,     0,     0,   465,     0,     0,
1485 >       0,   312,     0,     0,     0,     0,     0,     0,   298,   299,
1486 >     300,   301,   306,   302,   303,   304,   305,   437,     0,     0,
1487 >       0,   434,   435,   436,     0,     0,     0,   273,     0,   283,
1488 >       0,   281,   282,   284,   285,    48,     0,     0,     0,    44,
1489 >       0,     0,     0,     0,   114,   115,   116,     0,     0,     0,
1490 >     200,     0,     0,     0,     0,     0,   174,     0,     0,   154,
1491 >     155,   156,   157,   160,   161,   162,   163,   159,   158,   164,
1492 >       0,     0,     0,     0,     0,   332,   333,   334,   335,     0,
1493 >       0,     0,     0,     0,     0,     0,     0,     0,   651,    73,
1494         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496 +      52,     0,     0,   378,     0,   373,   374,   375,   125,     0,
1497 +       0,   121,     0,     0,     0,   341,     0,     0,   356,     0,
1498 +       0,   349,   350,   351,   352,     0,     0,     0,   101,     0,
1499 +       0,     0,     0,    27,     0,     0,     0,     0,     0,     0,
1500 +       0,     0,     0,     0,   618,   248,     0,     0,     0,     0,
1501         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1502 +       0,     0,     0,     0,   229,   410,     0,     0,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1504 <       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
1505 <     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,
1504 >       0,   394,     0,     0,     0,   442,     0,   449,     0,     0,
1505 >       0,   457,     0,     0,     0,     0,     0,     0,     0,     0,
1506         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,
1507         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1846       0,     0,     0,     0,   198,   369,     0,     0,     0,     0,
1508         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1848       0,   353,     0,     0,   414,   427,     0,     0,     0,   429,
1849     514,   518,   505,   534,   547,   546,   601,   551,   512,   543,
1850     549,   513,   503,   504,   521,   510,   542,   511,   524,   509,
1851     523,   522,   517,   516,   515,   544,   502,   541,   599,   600,
1852     538,   535,   580,   596,   597,   581,   582,   583,   584,   591,
1853     585,   594,   598,   587,   592,   588,   593,   586,   590,   589,
1854     595,     0,   579,   540,   557,   573,   574,   558,   559,   560,
1855     561,   568,   562,   571,   575,   564,   569,   565,   570,   563,
1856     567,   566,   572,     0,   556,   533,   536,   550,   507,   545,
1857     508,   537,   526,   531,   532,   529,   530,   527,   528,   520,
1858     519,    34,    34,    34,    36,    35,   602,   552,   539,   548,
1859     506,   525,     0,     0,     0,     0,     0,     0,   604,     0,
1860       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,
1509         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1510 <       0,   195,     0,     0,     0,     0,     0,     0,   385,     0,
1511 <       0,     0,     0,     0,     0,     0,     0,   350,   420,   421,
1512 <     441,   442,   434,     0,   433,   577,     0,   554,     0,    37,
1513 <      38,    39,   629,   628,     0,   627,   615,   614,   621,   620,
1514 <       0,   619,   623,   622,   267,   268,   273,     0,   272,     0,
1515 <     266,   289,   288,   287,   265,   412,   404,     0,   403,   411,
1516 <     235,   236,   234,     0,   233,   251,   250,     0,     0,     0,
1517 <       0,     0,   176,     0,     0,     0,     0,     0,   126,   299,
1518 <     300,   298,    65,     0,   309,   315,   321,   325,   324,   323,
1519 <     320,   316,   319,   322,   317,   318,     0,   314,   310,   333,
1520 <     338,   344,   348,   347,   346,   343,   339,   342,   345,   340,
1521 <     341,     0,   337,   225,   226,   219,   221,   223,   222,   220,
1522 <     214,   227,   218,   216,   217,   224,   375,   377,   378,   397,
1523 <     396,   393,   383,     0,   382,     0,   372,   394,   395,   370,
1524 <     376,   392,   374,   373,   431,     0,   578,   555,   625,     0,
1525 <     617,     0,     0,   270,   275,   281,   282,   278,   284,   280,
1526 <     279,   286,   283,   285,   277,   276,   401,     0,   231,     0,
1527 <     249,   246,   245,   146,   144,   174,     0,   173,     0,   140,
1528 <     143,   145,   151,   167,   168,   152,   153,   154,   155,   162,
1529 <     156,   165,   169,   158,   163,   159,   164,   157,   161,   160,
1530 <     166,     0,   150,   142,    66,   312,     0,   335,     0,     0,
1531 <     380,   385,   389,   390,   387,   388,   391,   386,   432,   626,
1532 <     618,   274,   271,   402,   232,     0,   171,   176,   186,   184,
1533 <     193,   183,   178,   187,   191,   180,   188,   190,   185,   179,
1534 <     192,   189,   181,   182,   177,   148,     0,   313,   336,   384,
1535 <     381,   175,   172,   149
1536 < };
1537 <
1538 < /* YYDEFGOTO[NTERM-NUM].  */
1539 < static const yytype_int16 yydefgoto[] =
1540 < {
1541 <      -1,     1,    24,   834,   835,   984,   985,    25,   275,   276,
1542 <     277,   278,    26,   313,   314,   315,   534,  1070,  1071,   316,
1543 <     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
1544 <      27,    71,    72,    73,    74,    75,    28,   258,   259,   260,
1545 <     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
1546 <     271,    29,    61,   280,   773,   774,   775,   281,   776,   777,
1547 <     778,   779,   780,   781,  1046,  1301,  1302,   782,  1042,  1276,
1548 <    1277,  1325,  1278,  1344,    30,    49,   116,   595,   596,   597,
1549 <     117,   598,   599,   600,   601,   602,   603,   604,   605,   606,
1550 <     607,   608,   609,    31,    58,   481,   736,  1163,  1164,   482,
1551 <     483,   484,  1169,  1016,  1017,   485,   486,    32,    56,   457,
1552 <     458,   459,   460,   461,   462,   463,   722,  1147,  1148,  1252,
1553 <    1149,  1265,   464,   465,   466,    33,    62,   512,   513,   514,
1554 <     515,   516,    34,    65,   545,   546,   547,   548,   549,   812,
1555 <    1196,  1197,    35,    66,   553,   554,   555,   556,   818,  1211,
1556 <    1212,    36,    50,   119,   625,   626,   627,   120,   628,   629,
1557 <     630,   631,   632,   633,   634,   871,  1233,  1234,  1309,  1235,
1558 <    1317,   635,   636,   637,   638,   639,   640,    37,    57,   471,
1559 <     731,  1157,  1158,   472,   473,   474,   475,    38,    51,   360,
1560 <     361,   362,   363,    39,   124,   125,   126,    40,    53,   371,
1561 <     649,  1123,  1124,   372,   373,   374,   375,    41,   184,   185,
1562 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1563 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1564 <     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1565 <     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1566 <     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1567 <     410,   963,   964,   236,   408,   941,   942,   237,   238,   239,
1568 <     240,    42,    55,   440,   441,   442,   443,   444,   714,  1140,
1569 <    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
1510 >       0,     0,     0,     0,   464,   307,     0,     0,     0,     0,
1511 >       0,     0,     0,     0,     0,   297,     0,     0,     0,   433,
1512 >     286,     0,     0,     0,     0,     0,   280,     0,     0,    43,
1513 >     117,     0,     0,     0,   113,   165,     0,     0,     0,     0,
1514 >       0,     0,     0,     0,     0,     0,     0,   153,   336,     0,
1515 >       0,     0,     0,   331,     0,     0,     0,     0,     0,     0,
1516 >       0,     0,   650,     0,     0,     0,     0,     0,     0,     0,
1517 >       0,     0,     0,     0,     0,     0,     0,     0,    78,    79,
1518 >       0,    77,    82,    83,     0,    81,     0,     0,    51,   376,
1519 >       0,     0,     0,   372,     0,   120,     0,     0,   340,   353,
1520 >       0,     0,     0,     0,   348,   110,   109,   108,   645,   644,
1521 >     636,   637,    27,    27,    27,    27,    27,    27,    27,    29,
1522 >      28,   638,   648,   649,   639,   640,   641,   643,   642,   646,
1523 >     647,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1524 >       0,     0,     0,     0,     0,     0,    37,     0,     0,   228,
1525 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1526 >       0,     0,     0,     0,     0,   393,     0,     0,   441,   454,
1527 >       0,     0,   456,   530,   534,   549,   519,   617,   562,   556,
1528 >     559,   529,   521,   520,   523,   524,   522,   537,   527,   528,
1529 >     538,   526,   533,   532,   531,   557,   518,   615,   616,   553,
1530 >     601,   595,   611,   596,   597,   598,   606,   614,   599,   608,
1531 >     612,   602,   613,   603,   607,   600,   610,   605,   604,   609,
1532 >       0,   594,   555,   574,   575,   576,   569,   587,   570,   571,
1533 >     572,   582,   590,   573,   584,   588,   578,   589,   579,   583,
1534 >     577,   586,   581,   580,   585,     0,   568,   550,   548,   551,
1535 >     561,   552,   540,   546,   547,   544,   545,   541,   542,   543,
1536 >     560,   563,   564,   525,   554,   536,   535,   558,   539,     0,
1537 >       0,     0,     0,     0,     0,     0,     0,   296,     0,     0,
1538 >     432,     0,     0,     0,   291,   287,   290,   272,    49,    50,
1539 >       0,     0,   112,     0,     0,     0,     0,     0,     0,     0,
1540 >       0,     0,     0,   152,     0,     0,     0,   330,   663,   662,
1541 >     668,   666,   669,   664,   665,   667,    92,   100,    91,    98,
1542 >      99,    90,    94,    93,    85,    84,    89,    86,    88,    97,
1543 >      87,    74,     0,    75,     0,    95,    96,     0,     0,   371,
1544 >     126,     0,     0,     0,   138,     0,   130,   131,   133,   132,
1545 >     345,     0,     0,     0,   347,    30,    31,    32,    33,    34,
1546 >      35,    36,   260,   261,   252,   270,   269,     0,   268,   253,
1547 >     255,   257,   264,   256,   254,   263,   249,   262,   251,   250,
1548 >      37,    37,    37,    39,    38,   258,   259,   415,   418,   419,
1549 >     429,   426,   412,   427,   424,   425,     0,   423,   428,   411,
1550 >     417,   414,   416,   430,   413,   447,   448,   462,   463,   592,
1551 >       0,   566,     0,   310,   311,   320,   317,   322,   318,   319,
1552 >     325,   321,   323,   316,   324,     0,   315,   309,   328,   327,
1553 >     326,   308,   439,   438,   294,   293,   278,   279,   277,     0,
1554 >     276,     0,     0,     0,   118,   119,   173,   169,   220,   207,
1555 >     217,   216,   205,   210,   226,   219,   224,   209,   212,   221,
1556 >     223,   218,   225,   213,   215,   222,   211,   214,     0,   203,
1557 >     166,   168,   170,   171,   172,   183,   184,   185,   178,   196,
1558 >     179,   180,   181,   191,   199,   182,   193,   197,   187,   198,
1559 >     188,   192,   186,   195,   190,   189,   194,     0,   177,   167,
1560 >     339,   337,   338,    76,    80,   377,   382,   388,   391,   384,
1561 >     390,   385,   389,   387,   383,   386,     0,   381,   134,     0,
1562 >       0,     0,     0,   129,   354,   360,   366,   369,   362,   368,
1563 >     363,   367,   365,   361,   364,     0,   359,   355,   266,     0,
1564 >      40,    41,    42,   421,     0,   593,   567,   313,     0,   274,
1565 >       0,   292,   289,   288,     0,     0,     0,   201,     0,   175,
1566 >       0,   379,     0,     0,     0,     0,     0,   128,   357,     0,
1567 >     267,   422,   314,   275,   206,   204,   208,   202,   176,   380,
1568 >     135,   137,   136,   144,   149,   148,   143,   146,   150,   147,
1569 >     142,   145,     0,   141,   358,   139,     0,   140
1570   };
1571  
1572 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1573 <   STATE-NUM.  */
1937 < #define YYPACT_NINF -949
1938 < static const yytype_int16 yypact[] =
1572 >  /* YYPGOTO[NTERM-NUM].  */
1573 > static const yytype_int16 yypgoto[] =
1574   {
1575 <    -949,   670,  -949,  -256,  -248,  -245,  -949,  -949,  -949,  -212,
1576 <    -949,  -205,  -949,  -949,  -949,  -949,  -189,  -183,  -949,  -949,
1577 <    -154,  -152,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1578 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1579 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,    22,   642,  -127,
1580 <     -31,  -132,     5,  -125,   415,  -119,   -98,   -89,   -86,   578,
1581 <      14,    -8,   -75,   664,   313,   -74,   -61,   -45,   -46,   -37,
1582 <     -23,    31,  -949,  -949,  -949,  -949,  -949,   -22,    15,    30,
1583 <      33,    41,    42,    47,    48,    50,    61,    62,    70,    78,
1584 <      79,    80,    86,    90,    93,    94,  -949,  -949,  -949,  -949,
1585 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1586 <    -949,  -949,  -949,  -949,  -949,  -949,   -44,  -949,  -949,    89,
1587 <    -949,    20,  -949,    99,     2,  -949,  -949,   140,  -949,   100,
1588 <     104,   106,   111,   113,   115,   122,   123,   126,   127,   128,
1589 <     129,   131,   133,   135,   136,   137,   145,   147,   148,   151,
1590 <     155,   156,   157,   159,   163,   165,   167,   169,   174,   175,
1591 <     177,  -949,   178,  -949,   186,   187,   188,   193,   194,   197,
1592 <     199,   200,   205,   206,   209,   210,   211,   212,   213,   214,
1593 <     219,   220,   225,   228,    10,  -949,  -949,  -949,  -949,  -949,
1594 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1595 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1596 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1597 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1598 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1599 <    -949,   364,   308,    92,   318,    17,   229,   230,   231,   232,
1600 <     236,   237,   241,   242,   244,   245,   248,   250,   226,  -949,
1601 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1602 <    -949,  -949,    63,   251,   252,    60,  -949,  -949,  -949,  -949,
1603 <     182,  -949,    24,  -949,   253,   254,   255,   260,   270,   271,
1604 <     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
1575 >    -789,  -789,  -789,  -396,  -317,  -788,  -641,  -789,  -789,   974,
1576 >    -789,  -789,  -789,  -789,   946,  -789,  -789,  -789,    54,  -789,
1577 >      17,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1578 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1579 >    1007,  -789,  -789,  -789,  -789,  -789,  -789,   610,  -789,  -789,
1580 >    -789,  -789,   836,  -789,  -789,  -789,  -789,    37,  -789,  -789,
1581 >    -789,  -789,  -789,  -194,  -789,  -789,  -789,   618,  -789,  -789,
1582 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -150,
1583 >    -789,  -789,  -789,  -153,  -789,  -789,  -789,   826,  -789,  -789,
1584 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1585 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -128,  -789,  -789,
1586 >    -789,  -789,  -789,  -138,  -789,   637,  -789,  -789,  -789,   -24,
1587 >    -789,  -789,  -789,  -789,  -789,   667,  -789,  -789,  -789,  -789,
1588 >    -789,  -789,  -789,  -110,  -789,  -789,  -789,  -789,  -789,  -789,
1589 >     619,  -789,  -789,  -789,  -789,  -789,   970,  -789,  -789,  -789,
1590 >    -789,   562,  -789,  -789,  -789,  -789,  -789,  -123,  -789,  -789,
1591 >    -789,   592,  -789,  -789,  -789,  -789,  -111,  -789,  -789,  -789,
1592 >     876,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1593 >    -789,  -789,   -92,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1594 >    -789,   690,  -789,  -789,  -789,  -789,  -789,   975,  -789,  -789,
1595 >    -789,  -789,  1079,  -789,  -789,  -789,  -789,   801,  -789,  -789,
1596 >    -789,  -789,  1025,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1597 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1598 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1599 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1600 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1601 >    -789,    80,  -789,  -789,  -789,    71,  -789,  -789,  -789,  -789,
1602 >    -789,  1111,  -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,
1603 >    -789,  -789,  -789,  -789,  -789,  -789,  -789,  -789,   979,  -789,
1604 >    -789,  -789,  -789,  -789,  -789,  -789,  -789
1605   };
1606  
1607 < /* YYPGOTO[NTERM-NUM].  */
1608 < static const yytype_int16 yypgoto[] =
1607 >  /* YYDEFGOTO[NTERM-NUM].  */
1608 > static const yytype_int16 yydefgoto[] =
1609   {
1610 <    -949,  -949,  -949,  -427,  -340,  -948,  -423,  -949,  -949,   946,
1611 <    -949,  -949,  -949,  -949,   865,  -949,  -949,  -949,  -293,  -949,
1612 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1613 <    -949,  -949,  1095,  -949,  -949,  -949,  -949,  -949,   643,  -949,
1614 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1615 <    -949,  -949,  -949,  -949,  -949,   406,  -949,  -949,  -949,  -949,
1616 <    -949,  -949,  -949,  -949,  -949,  -949,  -166,  -949,  -949,  -949,
1617 <    -146,  -949,  -949,  -118,  -949,  -949,  -949,  -949,   613,  -949,
1618 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1619 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -60,  -949,
1620 <     724,  -949,  -949,  -949,    43,  -949,  -949,  -949,  -949,  -949,
1621 <     781,  -949,  -949,  -949,  -949,  -949,  -949,  -949,   -42,  -949,
1622 <    -949,   -39,  -949,  -949,  -949,  -949,  -949,  -949,   698,  -949,
1623 <    -949,  -949,  -949,  -949,  -949,   669,  -949,  -949,  -949,  -949,
1624 <    -949,   -91,  -949,  -949,  -949,   663,  -949,  -949,  -949,  -949,
1625 <     -90,  -949,  -949,  -949,  -949,   595,  -949,  -949,  -949,  -949,
1626 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,   -94,  -949,  -949,
1627 <     -87,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1628 <    -949,  -949,   -48,  -949,   785,  -949,  -949,  -949,  -949,  -949,
1629 <     863,  -949,  -949,  -949,  -949,  1100,  -949,  -949,  -949,  -949,
1630 <    -949,  -949,   -20,  -949,   854,  -949,  -949,  -949,  -949,  1043,
1631 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1632 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1633 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1634 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1635 <    -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,  -949,
1636 <    -949,  -949,   101,  -949,  -949,  -949,   105,  -949,  -949,  -949,
1637 <    -949,  -949,  -949,  -949,   818,  -949,  -949,  -949,  -949,  -949,
1638 <     -21,  -949,  -949,  -949,  -949,  -949,   -17,  -949,  -949,  1133,
1639 <    -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
1610 >      -1,     1,    25,   839,   840,  1103,  1104,    26,   228,   229,
1611 >     230,   231,    27,   274,   275,   276,   277,   800,   801,   804,
1612 >     805,   278,   279,   280,   281,   282,   283,   284,   285,   286,
1613 >     287,   288,   289,   290,   291,   292,   293,   294,    28,    74,
1614 >      75,    76,    77,    78,    29,    61,   513,   514,   515,   516,
1615 >      30,   298,   299,   300,   301,   302,  1065,  1066,  1067,  1068,
1616 >    1069,  1241,  1312,  1313,    31,    62,   528,   529,   530,   531,
1617 >     532,   533,   534,   535,   536,   537,   538,   764,  1217,  1218,
1618 >     539,   758,  1188,  1189,    32,    51,   349,   350,   351,   352,
1619 >     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1620 >     363,   364,   365,   366,   367,   629,  1087,  1088,    33,    59,
1621 >     499,   743,  1159,  1160,   500,   501,   502,  1163,  1005,  1006,
1622 >     503,   504,    34,    57,   477,   478,   479,   480,   481,   482,
1623 >     483,   728,  1145,  1146,   484,   485,   486,    35,    63,   544,
1624 >     545,   546,   547,   548,    36,   305,   306,   307,    37,    69,
1625 >     600,   601,   602,   603,   604,   821,  1255,  1256,    38,    66,
1626 >     584,   585,   586,   587,   811,  1236,  1237,    39,    52,   383,
1627 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
1628 >     652,  1116,  1117,   394,   395,   396,   397,   398,    40,    58,
1629 >     490,   491,   492,   493,    41,    53,   402,   403,   404,   405,
1630 >      42,   115,   116,   117,    43,    55,   412,   413,   414,   415,
1631 >      44,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1632 >     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1633 >     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1634 >     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1635 >     209,   210,   211,   212,   213,   214,   215,   216,   217,   445,
1636 >     965,   966,   218,   443,   940,   941,   219,   220,   221,    45,
1637 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1638 >     104,   105,   106,   107,   108,   109,    46,   244,   245,   246,
1639 >     247,   248,   249,   250,   251,   252,   253
1640   };
1641  
1642 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1643 <   positive, shift that token.  If negative, reduce the rule which
1644 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1645 < #define YYTABLE_NINF -1
2119 < static const yytype_uint16 yytable[] =
1642 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1643 >     positive, shift that token.  If negative, reduce the rule whose
1644 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1645 > static const yytype_int16 yytable[] =
1646   {
1647 <     567,   568,   704,   122,    45,    46,   122,   574,  1132,  1138,
1648 <    1312,   128,  1313,  1160,    47,   272,  1125,    48,   129,   130,
1649 <    1126,   357,   131,    67,  1127,   508,   115,  1314,  1128,   132,
1650 <     476,  1315,    67,  1129,  1130,  1131,  1182,   653,   133,   655,
1651 <    1183,  1244,   134,   135,  1248,  1245,   509,  1250,  1249,   136,
1652 <      52,  1251,   668,   137,   138,   671,   139,    54,   367,    68,
1653 <     676,   272,   140,   981,   982,   983,   695,   696,    68,    69,
1654 <     541,   687,   688,    59,   690,   467,   550,   357,    69,    60,
1655 <     141,   142,   477,   701,   702,   143,   705,   697,   698,  1068,
1656 <    1069,   123,   144,   467,   123,    76,   145,   146,   147,  1103,
1657 <    1104,   148,  1253,   550,   149,   150,  1254,    77,    63,   358,
1658 <      64,  1266,   478,   433,   151,  1267,   434,   581,   479,   448,
1659 <     152,   153,   118,   154,   155,   156,   157,   158,    78,    79,
1660 <     121,  1268,   273,   300,    80,  1269,    81,   127,   159,   582,
1661 <     583,   367,    70,   241,   449,   279,   584,   160,   510,   161,
1662 <     162,    70,   163,   508,  1305,   164,   165,   435,  1306,   166,
1663 <     436,   610,   274,   611,   242,   358,   612,   450,  1161,   301,
1664 <     167,   451,  1162,   243,   509,   359,   244,   368,   273,   511,
1665 <     703,   480,   764,   795,   541,   613,   614,   282,   327,   542,
1666 <      82,    83,   168,   283,   169,   551,  1133,  1139,   170,    84,
1667 <      85,   328,   171,   172,   173,   174,   175,   765,   274,   615,
1668 <     176,   177,   369,   616,   437,   329,   302,   330,   355,   178,
1669 <      86,    87,   551,   585,   586,   587,   331,   245,   588,   468,
1670 <     766,   359,   438,   284,   767,  1307,   589,    88,    89,  1308,
1671 <     332,   335,  1316,   617,   370,   618,   285,   468,    90,   590,
1672 <     591,   179,   303,   180,   304,   305,   543,    91,   619,   181,
1673 <     368,   469,   552,   365,   182,   452,   592,   593,   286,   183,
1674 <     287,   431,   288,   289,   453,   454,   510,   487,   336,   469,
1675 <     620,   246,   247,   248,   249,   250,   251,   252,   253,   552,
1676 <     740,   290,   333,   337,   594,   369,   338,   306,  1310,   307,
1677 <     308,   768,  1311,   542,   339,   340,   764,   511,   455,   448,
1678 <     341,   342,   621,   343,   300,   309,  1326,   544,   650,   476,
1679 <    1327,   505,   470,   502,   344,   345,   622,   370,   769,   254,
1680 <     814,   765,   526,   346,   449,   733,   819,   643,   566,   623,
1681 <     470,   347,   348,   349,    92,    93,    94,   770,  1345,   350,
1682 <     301,   356,  1346,   351,   766,   353,   352,   450,   767,   310,
1683 <     439,   451,   364,   376,   255,   433,   456,   377,   434,   378,
1684 <     543,   477,   993,   717,   379,   557,   380,   863,   381,   728,
1685 <     829,   830,   831,   832,   833,   382,   383,   311,   312,   384,
1686 <     385,   386,   387,   539,   388,   561,   389,   302,   390,   391,
1687 <     392,   478,  1083,  1084,  1085,  1086,  1087,   479,   393,   435,
1688 <     394,   395,   436,   787,   396,   624,   128,   771,   397,   398,
1689 <     399,   880,   400,   129,   130,   768,   401,   131,   402,   772,
1690 <     403,   544,   404,   303,   132,   304,   305,   405,   406,  1100,
1691 <     407,   409,  1048,   133,   507,   256,   558,   134,   135,   411,
1692 <     412,   413,   769,   524,   136,   452,   414,   415,   137,   138,
1693 <     416,   139,   417,   418,   453,   454,   437,   140,   419,   420,
1694 <     480,   770,   421,   422,   423,   424,   425,   426,   306,   257,
1695 <     307,   308,   427,   428,   438,   141,   142,   500,   429,   559,
1696 <     143,   430,   488,   489,   490,   491,   309,   144,   455,   492,
1697 <     493,   145,   146,   147,   494,   495,   148,   496,   497,   149,
1698 <     150,   498,  1090,   499,   503,   504,   517,   518,   519,   151,
1699 <    1098,  1099,   610,   520,   611,   152,   153,   612,   154,   155,
1700 <     156,   157,   158,   521,   522,   523,   527,   528,   529,   530,
1701 <     310,   771,   531,   159,   532,   533,   613,   614,   535,   536,
1702 <     537,   538,   160,   772,   161,   162,   456,   163,  1328,   560,
1703 <     164,   165,   562,   563,   166,   564,   565,   566,   311,   312,
1704 <     615,   569,   570,   571,   616,   167,   572,   573,   575,   245,
1705 <     750,   751,   752,   753,   754,   755,   756,   576,   577,   578,
1706 <     579,  1329,   580,   641,   642,   645,   647,   168,   646,   169,
1707 <     648,   652,  1330,   170,   617,   654,   618,   171,   172,   173,
1708 <     174,   175,   439,   656,   657,   176,   177,   658,  1331,   619,
1709 <     659,   660,   661,   662,   178,  1332,   663,   664,   665,   666,
1710 <    1333,   667,  1334,   246,   247,   248,   249,   250,   251,   252,
1711 <     253,   620,   669,    76,   670,  1335,   672,   673,   674,   675,
1712 <    1255,  1256,   679,   677,   678,    77,   179,   680,   180,   681,
1713 <     682,   683,  1185,   684,   181,   283,   685,   691,   686,   182,
1714 <       2,     3,   689,   621,   183,     4,    78,    79,  1336,   703,
1715 <    1257,   254,    80,   712,    81,   692,   693,   622,   710,   694,
1716 <     713,   699,     5,   715,  1337,   719,     6,  1258,   700,     7,
1717 <     623,   706,   707,   708,  1259,   284,     8,   709,   742,   735,
1718 <     743,   716,  1338,   744,  1339,  1340,   255,   720,   285,  1200,
1719 <     721,     9,   723,  1260,   745,   724,   746,   581,   725,   726,
1720 <     727,   730,   747,    10,    11,   732,    12,   737,    82,    83,
1721 <     286,  1186,   287,    13,   288,   289,   738,    84,    85,   582,
1722 <     583,  1261,   748,   739,   749,   757,   584,   758,   759,  1262,
1723 <      14,   761,   760,   290,   762,   789,   784,   763,    86,    87,
1724 <      15,   783,    16,  1187,   790,   785,   624,   791,   786,   792,
1725 <     793,   794,  1341,   798,   796,    88,    89,   797,  1188,    17,
1726 <     799,   800,   801,   802,   803,   804,    90,   256,  1201,   805,
1727 <    1342,   807,  1263,   806,   808,    91,    18,   809,  1189,  1190,
1728 <    1343,   810,   811,   813,  1191,  1192,  1193,  1194,   816,   817,
1729 <    1122,  1264,   821,   822,   823,   824,   825,  1195,   882,   826,
1730 <    1202,   257,   827,   585,   586,   587,   828,   850,   588,   883,
1731 <     886,    19,   836,   887,   851,  1203,   589,   837,   838,   839,
1732 <      20,    21,   840,   841,   842,    22,    23,   843,   844,   590,
1733 <     591,  1156,   996,   845,   997,  1204,  1205,   846,   852,   847,
1734 <     848,  1206,  1207,  1208,  1209,   849,   592,   593,  1167,   853,
1735 <     854,   855,   856,   857,  1210,   858,   859,   860,   861,   865,
1736 <    1304,   862,    92,    93,    94,   866,   922,   923,   924,   925,
1737 <     926,   501,   927,   928,   594,   929,   930,   931,   867,   994,
1738 <     932,  1000,   868,   869,  1003,   870,   872,   873,   874,   875,
1739 <     933,   934,   935,   876,   936,   937,   938,  1015,   877,   939,
1740 <     878,   879,   940,   944,   945,   946,   947,   948,   884,   949,
1741 <     950,   885,   951,   952,   953,   888,   992,   954,   889,   890,
1742 <     999,   891,  1002,   892,   893,   894,   895,   955,   956,   957,
1743 <     896,   958,   959,   960,   897,   898,   961,   899,   900,   962,
1744 <    1282,  1283,  1284,  1285,  1286,   901,  1287,  1288,   902,  1289,
1745 <    1290,  1291,   903,   904,  1292,   905,  1004,   906,   907,  1005,
1746 <     908,   909,   910,   911,  1293,  1294,  1295,   912,  1296,  1297,
1747 <    1298,   913,   914,  1299,   915,   916,  1300,   917,   918,   919,
1748 <     920,   921,   943,   965,   966,   967,   968,   969,   970,   971,
1749 <     972,   973,   974,   975,   976,   977,  1006,   978,   979,   980,
1750 <     986,   987,   988,   989,   990,   991,  1008,   998,  1010,   995,
1751 <    1007,  1001,  1009,  1013,  1011,  1012,  1014,  1018,  1019,  1020,
1752 <    1021,  1022,  1023,  1024,  1025,  1026,  1050,  1051,  1027,  1052,
1753 <    1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
1754 <    1038,  1039,  1076,  1078,  1080,  1040,  1041,  1043,  1044,  1045,
1755 <    1047,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,
1756 <    1062,  1063,  1064,  1088,  1065,  1066,  1089,  1067,  1072,  1073,
1757 <    1074,  1075,  1091,  1079,  1092,  1077,  1082,  1081,  1093,  1094,
1758 <    1095,  1096,  1097,  1101,  1102,  1107,  1105,  1106,  1108,  1109,
1759 <    1110,  1111,  1112,  1113,  1117,  1114,  1118,  1115,  1116,  1119,
1760 <    1120,  1121,  1136,  1146,  1137,  1142,  1143,  1144,  1145,  1150,
1761 <    1151,  1152,  1153,  1170,  1154,  1171,  1155,  1159,  1165,  1166,
1762 <    1173,  1174,  1175,  1177,  1232,  1168,  1178,  1172,  1176,  1179,
1763 <    1180,  1181,  1184,  1270,  1275,  1198,   334,  1199,  1213,  1214,
1764 <    1215,  1216,  1217,  1218,  1219,  1220,  1221,  1222,   540,  1049,
1765 <    1353,  1352,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,
1766 <    1231,  1236,  1237,  1238,  1239,  1240,  1241,  1242,  1243,  1272,
1767 <    1273,  1274,  1279,  1280,  1281,  1303,   741,  1351,   864,  1324,
1768 <     788,  1271,  1322,  1321,   815,  1347,   820,  1350,  1348,  1323,
1769 <     881,   506,  1349,   644,   366,  1318,   651,   432,   354,  1247,
1770 <    1320,  1246,  1319,     0,     0,     0,     0,     0,   729,     0,
1771 <     525,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772 <       0,     0,     0,     0,     0,     0,     0,   734,   718
1647 >     867,   868,   614,   303,   616,  1114,   618,   619,   399,    49,
1648 >      70,   296,   368,   540,   369,    50,   370,   225,    54,   494,
1649 >     399,  1085,   113,   113,   596,   708,   581,   409,   371,   709,
1650 >     510,   581,   710,  1061,    71,   296,   711,    56,   866,   409,
1651 >      60,    72,   487,    64,   372,  1051,    65,   541,  1053,  1052,
1652 >    1156,   225,  1054,  1129,    67,  1131,  1258,  1130,   468,  1132,
1653 >    1259,  1263,   119,   517,    68,  1264,   110,   120,   121,   373,
1654 >     487,   374,   400,   122,   469,   111,   495,   112,   375,   518,
1655 >     118,   123,   124,   496,   400,   497,   114,   114,   125,   376,
1656 >     470,   126,   127,   542,   596,   519,  1086,   128,   303,   222,
1657 >     673,   674,   129,   130,   304,   131,   132,   133,   681,   134,
1658 >     511,    73,   685,   377,   223,   226,   224,   690,   135,   232,
1659 >     693,   233,   136,   137,   471,   597,   510,   582,   410,   520,
1660 >     703,   704,   582,   138,  1062,  1284,   401,   378,   234,   227,
1661 >     410,   543,   717,   139,   498,   720,   721,   331,   401,   226,
1662 >     140,   295,   141,   308,   142,   411,   143,   379,   144,   145,
1663 >     309,   332,   333,   505,   521,   334,   380,   411,  1267,   254,
1664 >     488,   146,  1268,   227,    47,    48,   147,   148,   149,   472,
1665 >     150,   151,   152,  1061,   522,   153,  -127,   473,   474,   310,
1666 >    1269,  1157,  1277,   255,  1270,   597,  1278,  1115,   488,   304,
1667 >     523,  1158,   311,  1279,   559,   512,   511,  1280,   475,   312,
1668 >    -127,   154,   381,   335,   315,  1281,  1288,   524,   525,  1282,
1669 >    1289,   155,   156,   157,   158,   159,   160,   256,  1063,   316,
1670 >     336,   337,   338,   339,   340,   317,   257,   297,   341,   781,
1671 >     382,   664,   342,   313,   590,   660,   772,   598,   343,   583,
1672 >     508,   599,   745,   161,   583,   407,  1064,   823,   258,   344,
1673 >     345,   297,   259,   753,   812,   592,  1242,    79,   526,   489,
1674 >     260,   346,   670,   261,   262,   738,   540,   162,   163,   164,
1675 >     318,   165,   166,   167,  1062,   476,   588,   168,    80,    81,
1676 >     527,   734,   169,   347,    82,   466,   766,   489,  1100,  1101,
1677 >    1102,   512,   494,  1315,   319,   263,   608,  1316,    70,   235,
1678 >     541,   853,  1260,  1261,  1262,   320,   858,   598,   321,   861,
1679 >     322,   599,   264,   865,   323,   265,   266,   267,   324,    83,
1680 >      84,   594,    71,   348,   325,    85,    86,   236,   326,    72,
1681 >     327,    87,    88,    89,   468,   237,   798,   799,   328,    90,
1682 >      91,   406,   268,   802,   803,   416,   542,   238,   239,   495,
1683 >     469,   609,   240,   241,   242,   417,   496,   418,   497,   269,
1684 >     270,   271,   871,   872,    92,    93,   470,   419,  1063,   420,
1685 >     643,   421,   610,   422,   423,   605,   424,   243,   119,   517,
1686 >     425,   426,   427,   120,   121,   428,   429,   272,   273,   122,
1687 >     430,   866,   579,   431,   543,   518,  1064,   123,   124,    73,
1688 >     471,   432,   433,   434,   125,   435,   436,   126,   127,   437,
1689 >     438,   519,   439,   128,   440,   441,   442,   498,   129,   130,
1690 >     444,   131,   132,   133,   254,   134,  1075,  1076,  1077,  1078,
1691 >    1079,  1080,  1081,   446,   135,   447,   448,   449,   136,   137,
1692 >    1303,   450,   451,   452,   453,   520,   454,   455,   255,   138,
1693 >     456,   457,   458,   459,   460,   472,   461,   462,   463,   139,
1694 >     464,   465,   506,   473,   474,   507,   140,   549,   141,   550,
1695 >     142,  1304,   143,  1305,   144,   145,   613,   551,   552,   553,
1696 >     521,   554,   256,   555,   475,   556,   560,   146,  1168,   561,
1697 >     329,   257,   147,   148,   149,   562,   150,   151,   152,   563,
1698 >     522,   153,  1169,   832,   833,   834,   835,   836,   837,   838,
1699 >    1170,   564,   565,   258,   566,   606,   523,   259,  1306,   567,
1700 >     568,   569,   570,   571,  1171,   260,   572,   154,   261,   262,
1701 >     573,   574,   557,   524,   525,  1307,   575,   155,   156,   157,
1702 >     158,   159,   160,   576,  1135,   577,   578,   589,   593,   607,
1703 >     611,   612,   613,   615,   368,  1172,   369,  1173,   370,   617,
1704 >     263,   476,   620,   621,   622,  1136,   623,   624,   626,   161,
1705 >     371,   625,  1308,  1309,  1137,   627,   628,   264,   630,   631,
1706 >     265,   266,   267,  1174,   526,   666,   372,   672,   632,  1285,
1707 >     633,   634,   635,   162,   163,   164,   636,   165,   166,   167,
1708 >     645,   637,   638,   168,   639,  1138,   527,   268,   169,   640,
1709 >     641,   373,   642,   374,   675,   646,  1175,   647,  1176,   648,
1710 >     375,   649,   650,   651,   269,   270,   271,   653,  1310,   654,
1711 >     655,   376,  1311,   656,  1139,  1140,   667,  1177,   657,  1226,
1712 >     658,   659,  1141,   662,   663,   668,     2,     3,   669,   676,
1713 >       4,   677,   272,   273,   678,   377,   679,  1178,   680,   682,
1714 >       5,   683,  1179,     6,     7,   699,  1180,  1142,   684,   686,
1715 >       8,   687,   331,  1181,   688,   689,   691,   692,  1182,   378,
1716 >     694,     9,   695,  1143,    10,    11,   332,   333,   696,   697,
1717 >     334,   698,  1183,   700,   702,  1184,   705,  1185,   701,   379,
1718 >     706,  1227,   707,   712,   713,   714,   715,   716,   380,  1186,
1719 >     718,   719,    12,   722,   723,   724,  1187,    13,   747,   725,
1720 >     748,   777,   786,   783,   740,   774,    14,   943,   726,   944,
1721 >     945,   775,  1228,   727,   776,   749,   729,   730,   335,  1229,
1722 >     731,   732,   733,   736,   737,  1144,    15,    16,  1230,   741,
1723 >     742,   744,   235,   750,   381,   336,   337,   338,   339,   340,
1724 >     751,   752,   756,   341,    17,   755,   757,   342,   768,  1195,
1725 >     759,  1196,  1197,   343,  1231,   760,  1232,  1233,   782,   761,
1726 >     236,    18,   382,   762,   344,   345,   763,   765,   237,   778,
1727 >     769,  1234,   785,   779,    19,    20,   346,   770,  1235,   771,
1728 >     238,   239,   780,   920,   784,   240,   241,   242,   787,   788,
1729 >     789,  1245,   790,   791,   792,   793,    21,   794,   347,   795,
1730 >     796,   797,   806,   808,   807,   809,   814,   817,   851,    22,
1731 >     243,   815,   862,   810,   816,   818,   819,    23,   825,   852,
1732 >     820,    24,   822,   854,   855,   946,   947,   948,   826,   949,
1733 >     950,   827,   951,   952,   828,   953,   829,   954,   348,   830,
1734 >     955,   831,   841,   956,   957,   842,   958,   843,   844,   845,
1735 >     846,   959,   847,  1246,   848,   960,   961,   962,   849,   856,
1736 >     850,   857,   859,   860,   863,   963,   864,  1198,  1199,  1200,
1737 >     964,  1201,  1202,   866,  1203,  1204,   869,  1205,   877,  1206,
1738 >     870,   880,  1207,   873,  1247,  1208,  1209,   875,  1210,   876,
1739 >     878,  1248,   879,  1211,   874,   881,    79,  1212,  1213,  1214,
1740 >    1249,   921,   922,   923,   882,   924,   925,  1215,   926,   927,
1741 >     883,   928,  1216,   929,   884,   885,   930,    80,    81,   931,
1742 >     932,   886,   933,    82,   887,   888,  1250,   934,  1251,  1252,
1743 >     889,   935,   936,   937,   890,   891,   892,   893,   894,   895,
1744 >     989,   938,   896,  1253,   897,   992,   939,   898,   899,   900,
1745 >    1254,   993,   901,   902,   903,   904,   905,   906,    83,    84,
1746 >     907,   908,   909,   910,    85,    86,   911,   994,   912,   913,
1747 >      87,    88,    89,   914,   915,   916,   917,   918,    90,    91,
1748 >     995,   919,   991,   996,   998,   990,   999,  1001,   942,  1002,
1749 >     967,   968,   969,  1004,  1010,  1011,  1013,   970,  1016,   971,
1750 >     972,  1017,  1018,    92,    93,   973,   974,   975,   976,   977,
1751 >    1019,   978,   979,   980,   981,   982,  1014,   983,   984,   985,
1752 >    1020,   986,   987,   988,   997,  1000,  1022,  1024,  1007,  1003,
1753 >    1025,  1008,  1009,  1012,  1026,  1057,  1071,  1023,  1015,  1021,
1754 >    1073,  1224,  1027,  1028,  1029,  1030,  1271,  1031,  1032,  1033,
1755 >    1034,   314,  1035,  1036,  1037,  1038,  1039,  1040,  1041,  1042,
1756 >    1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1055,  1056,
1757 >    1283,  1059,  1243,  1058,  1060,  1070,  1223,  1074,  1082,  1072,
1758 >    1083,  1084,  1089,  1090,  1091,  1092,  1294,  1093,  1094,  1295,
1759 >    1296,  1095,  1317,   754,  1096,  1297,  1097,  1098,  1099,  1105,
1760 >    1298,  1290,  1293,  1106,   591,  1107,  1108,   746,  1272,  1109,
1761 >    1110,  1111,  1112,  1113,   735,  1118,   767,  1119,  1120,  1121,
1762 >    1122,  1123,  1124,  1125,  1126,  1127,  1128,  1133,  1292,  1134,
1763 >    1147,  1148,   824,   773,  1149,  1150,  1314,  1151,  1152,  1153,
1764 >    1161,  1299,  1291,  1154,  1155,   644,   813,  1164,  1165,  1162,
1765 >     739,  1166,  1167,  1190,  1191,  1192,  1193,  1194,  1219,  1220,
1766 >    1221,  1222,  1225,  1238,   408,   467,  1244,  1239,  1240,  1257,
1767 >    1273,  1265,   509,  1274,  1287,   330,  1275,  1276,  1286,  1300,
1768 >    1301,  1302,  1266,   671,     0,     0,     0,     0,     0,     0,
1769 >     580,     0,     0,   558,     0,     0,     0,     0,     0,     0,
1770 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1771 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   661,
1773 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774 >       0,     0,     0,     0,     0,   595,     0,     0,     0,     0,
1775 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1776 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1782 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1783 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1784 >       0,     0,     0,     0,     0,     0,     0,   665
1785   };
1786  
2249 #define yypact_value_is_default(yystate) \
2250  ((yystate) == (-949))
2251
2252 #define yytable_value_is_error(yytable_value) \
2253  YYID (0)
2254
1787   static const yytype_int16 yycheck[] =
1788   {
1789 <     340,   341,   425,     1,   260,   261,     1,   347,    11,    11,
1790 <      10,     1,    12,    76,   262,     1,   260,   262,     8,     9,
1791 <     264,     1,    12,     1,   260,     1,   153,    27,   264,    19,
1792 <       1,    31,     1,   981,   982,   983,   260,   377,    28,   379,
1793 <     264,   260,    32,    33,   260,   264,    22,   260,   264,    39,
1794 <     262,   264,   392,    43,    44,   395,    46,   262,     1,    37,
1795 <     400,     1,    52,    14,    15,    16,   197,   198,    37,    47,
1796 <       1,   411,   412,   262,   414,     1,     1,     1,    47,   262,
1797 <      70,    71,    53,   423,   424,    75,   426,   197,   198,   169,
1798 <     170,    89,    82,     1,    89,     1,    86,    87,    88,   216,
1799 <     217,    91,   260,     1,    94,    95,   264,    13,   262,    89,
1800 <     262,   260,    83,     1,   104,   264,     4,     1,    89,     1,
1801 <     110,   111,   153,   113,   114,   115,   116,   117,    34,    35,
1802 <     262,   260,   118,     1,    40,   264,    42,   262,   128,    23,
1803 <      24,     1,   120,   262,    26,   153,    30,   137,   124,   139,
1804 <     140,   120,   142,     1,   260,   145,   146,    45,   264,   149,
1805 <      48,     1,   148,     3,   262,    89,     6,    49,   231,    37,
1806 <     160,    53,   235,   262,    22,   155,   262,   120,   118,   155,
1807 <     131,   152,     1,   523,     1,    25,    26,   262,   262,   120,
1808 <      96,    97,   182,     1,   184,   120,   199,   199,   188,   105,
1809 <     106,   262,   192,   193,   194,   195,   196,    26,   148,    49,
1810 <     200,   201,   155,    53,   102,   260,    84,   263,   262,   209,
1811 <     126,   127,   120,   107,   108,   109,   263,     1,   112,   155,
1812 <      49,   155,   120,    41,    53,   260,   120,   143,   144,   264,
1813 <     263,   263,   242,    83,   187,    85,    54,   155,   154,   133,
1814 <     134,   241,   120,   243,   122,   123,   187,   163,    98,   249,
1815 <     120,   187,   187,   261,   254,   147,   150,   151,    76,   259,
1816 <      78,   261,    80,    81,   156,   157,   124,   260,   263,   187,
1817 <     120,    55,    56,    57,    58,    59,    60,    61,    62,   187,
1818 <     261,    99,   261,   263,   178,   155,   263,   165,   260,   167,
1819 <     168,   120,   264,   120,   263,   263,     1,   155,   190,     1,
1820 <     263,   263,   152,   263,     1,   183,   260,   248,   261,     1,
1821 <     264,   261,   248,   260,   263,   263,   166,   187,   147,   103,
1822 <     261,    26,   260,   263,    26,   261,   261,   261,   131,   179,
1823 <     248,   263,   263,   263,   250,   251,   252,   166,   260,   263,
1824 <      37,   262,   264,   263,    49,   261,   263,    49,    53,   227,
1825 <     248,    53,   263,   263,   138,     1,   248,   263,     4,   263,
1826 <     187,    53,   712,   261,   263,   153,   263,   261,   263,   261,
1827 <     173,   174,   175,   176,   177,   263,   263,   255,   256,   263,
1828 <     263,   263,   263,   261,   263,   197,   263,    84,   263,   263,
1829 <     263,    83,   829,   830,   831,   832,   833,    89,   263,    45,
1830 <     263,   263,    48,   261,   263,   255,     1,   236,   263,   263,
1831 <     263,   261,   263,     8,     9,   120,   263,    12,   263,   248,
1832 <     263,   248,   263,   120,    19,   122,   123,   263,   263,   862,
1833 <     263,   263,   261,    28,   262,   219,   153,    32,    33,   263,
1834 <     263,   263,   147,   261,    39,   147,   263,   263,    43,    44,
1835 <     263,    46,   263,   263,   156,   157,   102,    52,   263,   263,
1836 <     152,   166,   263,   263,   263,   263,   263,   263,   165,   253,
1837 <     167,   168,   263,   263,   120,    70,    71,   261,   263,   153,
1838 <      75,   263,   263,   263,   263,   263,   183,    82,   190,   263,
1839 <     263,    86,    87,    88,   263,   263,    91,   263,   263,    94,
1840 <      95,   263,   852,   263,   263,   263,   263,   263,   263,   104,
1841 <     860,   861,     1,   263,     3,   110,   111,     6,   113,   114,
1842 <     115,   116,   117,   263,   263,   263,   263,   263,   263,   263,
1843 <     227,   236,   263,   128,   263,   263,    25,    26,   263,   263,
1844 <     263,   263,   137,   248,   139,   140,   248,   142,     5,   260,
1845 <     145,   146,   131,   131,   149,   197,   197,   131,   255,   256,
1846 <      49,   131,   131,   197,    53,   160,   197,   131,   197,     1,
1847 <     220,   221,   222,   223,   224,   225,   226,   197,   197,   197,
1848 <     197,    38,   260,   263,   263,   153,   263,   182,   260,   184,
1849 <     263,   197,    49,   188,    83,   197,    85,   192,   193,   194,
1850 <     195,   196,   248,   131,   153,   200,   201,   131,    65,    98,
1851 <     197,   197,   131,   153,   209,    72,   197,   131,   131,   131,
1852 <      77,   197,    79,    55,    56,    57,    58,    59,    60,    61,
1853 <      62,   120,   197,     1,   197,    92,   153,   197,   131,   131,
1854 <      20,    21,   153,   131,   131,    13,   241,   131,   243,   131,
1855 <     197,   197,    92,   263,   249,     1,   197,   153,   263,   254,
1856 <       0,     1,   197,   152,   259,     5,    34,    35,   125,   131,
1857 <      50,   103,    40,   263,    42,   197,   197,   166,   260,   197,
1858 <     263,   197,    22,   263,   141,   260,    26,    67,   197,    29,
1859 <     179,   197,   197,   197,    74,    41,    36,   197,   153,   260,
1860 <     153,   263,   159,   153,   161,   162,   138,   263,    54,    92,
1861 <     263,    51,   263,    93,   153,   263,   153,     1,   263,   263,
1862 <     263,   263,   153,    63,    64,   263,    66,   263,    96,    97,
1863 <      76,   171,    78,    73,    80,    81,   263,   105,   106,    23,
1864 <      24,   121,   153,   263,   153,   153,    30,   153,   197,   129,
1865 <      90,   153,   260,    99,   153,   197,   263,   260,   126,   127,
1866 <     100,   260,   102,   203,   197,   263,   255,   197,   263,   153,
1867 <     197,   197,   229,   197,   260,   143,   144,   153,   218,   119,
1868 <     153,   153,   153,   153,   153,   263,   154,   219,   171,   153,
1869 <     247,   153,   172,   131,   153,   163,   136,   260,   238,   239,
1870 <     257,   260,   263,   263,   244,   245,   246,   247,   260,   263,
1871 <     158,   191,   260,   260,   260,   260,   260,   257,   153,   260,
1872 <     203,   253,   260,   107,   108,   109,   260,   263,   112,   153,
1873 <     153,   171,   260,   153,   263,   218,   120,   260,   260,   260,
1874 <     180,   181,   260,   260,   260,   185,   186,   260,   260,   133,
1875 <     134,   158,   153,   260,   153,   238,   239,   260,   263,   260,
1876 <     260,   244,   245,   246,   247,   260,   150,   151,   202,   263,
1877 <     263,   263,   263,   263,   257,   263,   263,   263,   263,   260,
1878 <    1183,   263,   250,   251,   252,   263,   204,   205,   206,   207,
1879 <     208,   258,   210,   211,   178,   213,   214,   215,   263,   197,
1880 <     218,   197,   263,   263,   131,   263,   263,   263,   263,   263,
1881 <     228,   229,   230,   263,   232,   233,   234,   131,   263,   237,
1882 <     263,   263,   240,   204,   205,   206,   207,   208,   260,   210,
1883 <     211,   260,   213,   214,   215,   263,   263,   218,   260,   260,
1884 <     153,   260,   153,   260,   260,   260,   260,   228,   229,   230,
1885 <     260,   232,   233,   234,   260,   260,   237,   260,   260,   240,
1886 <     204,   205,   206,   207,   208,   260,   210,   211,   260,   213,
1887 <     214,   215,   260,   260,   218,   260,   153,   260,   260,   153,
1888 <     260,   260,   260,   260,   228,   229,   230,   260,   232,   233,
1889 <     234,   260,   260,   237,   260,   260,   240,   260,   260,   260,
1890 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1891 <     260,   260,   260,   260,   260,   260,   153,   260,   260,   260,
1892 <     260,   260,   260,   260,   260,   260,   153,   260,   153,   263,
1893 <     260,   263,   263,   153,   260,   263,   153,   260,   260,   260,
1894 <     260,   260,   260,   260,   260,   260,   153,   153,   260,   153,
1895 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1896 <     260,   260,   153,   153,   153,   263,   263,   263,   263,   263,
1897 <     263,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1898 <     260,   260,   260,   131,   260,   260,   131,   260,   260,   260,
1899 <     260,   260,   131,   260,   131,   263,   260,   263,   131,   131,
1900 <     153,   131,   131,   260,   153,   197,   153,   153,   263,   153,
1901 <     153,   153,   153,   131,   260,   153,   260,   153,   153,   260,
1902 <     260,   260,   260,   130,   260,   260,   260,   260,   260,   260,
1903 <     260,   260,   260,   153,   260,   197,   260,   260,   260,   260,
1904 <     153,   153,   153,   153,   130,   264,   260,   263,   263,   260,
1905 <     260,   260,   260,   131,   130,   260,    71,   260,   260,   260,
1906 <     260,   260,   260,   260,   260,   260,   260,   260,   313,   773,
1907 <    1346,  1327,   260,   260,   260,   260,   260,   260,   260,   260,
1908 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
1909 <     260,   260,   260,   260,   260,   260,   482,  1325,   595,  1269,
1910 <     512,  1168,  1254,  1252,   545,  1306,   553,  1311,  1308,  1267,
1911 <     625,   275,  1309,   360,   124,  1245,   372,   184,    95,  1128,
1912 <    1251,  1126,  1249,    -1,    -1,    -1,    -1,    -1,   457,    -1,
1913 <     291,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1914 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   472,   440
1789 >     641,   642,   319,     1,   321,     8,   323,   324,     1,   235,
1790 >       1,     1,     1,     1,     3,   235,     5,     1,   235,     1,
1791 >       1,    53,     1,     1,     1,   215,     1,     1,    17,   219,
1792 >       1,     1,   215,     1,    25,     1,   219,   235,   112,     1,
1793 >     235,    32,     1,   235,    33,   233,   235,    35,   233,   237,
1794 >      49,     1,   237,   233,   235,   233,   233,   237,     1,   237,
1795 >     237,   233,     1,     1,   235,   237,   235,     6,     7,    58,
1796 >       1,    60,    65,    12,    17,   235,    58,   235,    67,    17,
1797 >     235,    20,    21,    65,    65,    67,    65,    65,    27,    78,
1798 >      33,    30,    31,    81,     1,    33,   128,    36,     1,   235,
1799 >     417,   418,    41,    42,   102,    44,    45,    46,   425,    48,
1800 >      81,   102,   429,   102,   235,    99,   235,   434,    57,   235,
1801 >     437,   235,    61,    62,    67,   102,     1,   102,   102,    67,
1802 >     447,   448,   102,    72,   102,   209,   129,   126,   235,   123,
1803 >     102,   129,   459,    82,   126,   462,   463,     1,   129,    99,
1804 >      89,   235,    91,   235,    93,   129,    95,   146,    97,    98,
1805 >     233,    15,    16,   233,   102,    19,   155,   129,   233,     1,
1806 >     129,   110,   237,   123,   233,   234,   115,   116,   117,   122,
1807 >     119,   120,   121,     1,   122,   124,   176,   130,   131,   236,
1808 >     233,   190,   233,    25,   237,   102,   237,   200,   129,   102,
1809 >     138,   200,   236,   233,   233,   176,    81,   237,   151,   236,
1810 >     176,   150,   201,    67,   236,   233,   233,   155,   156,   237,
1811 >     237,   160,   161,   162,   163,   164,   165,    59,   196,   236,
1812 >      84,    85,    86,    87,    88,   236,    68,   227,    92,   556,
1813 >     229,   234,    96,   234,   234,   234,   234,   224,   102,   224,
1814 >     234,   228,   234,   192,   224,   234,   224,   234,    90,   113,
1815 >     114,   227,    94,   234,   234,   176,   234,     1,   206,   228,
1816 >     102,   125,   234,   105,   106,   234,     1,   216,   217,   218,
1817 >     236,   220,   221,   222,   102,   228,   233,   226,    22,    23,
1818 >     228,   234,   231,   147,    28,   234,   234,   228,     9,    10,
1819 >      11,   176,     1,   233,   236,   137,   233,   237,     1,     1,
1820 >      35,   628,  1100,  1101,  1102,   236,   633,   224,   236,   636,
1821 >     236,   228,   154,   640,   236,   157,   158,   159,   236,    63,
1822 >      64,   234,    25,   187,   236,    69,    70,    29,   236,    32,
1823 >     236,    75,    76,    77,     1,    37,   204,   205,   236,    83,
1824 >      84,   236,   184,   204,   205,   236,    81,    49,    50,    58,
1825 >      17,   112,    54,    55,    56,   236,    65,   236,    67,   201,
1826 >     202,   203,   180,   181,   108,   109,    33,   236,   196,   236,
1827 >     234,   236,   112,   236,   236,   127,   236,    79,     1,     1,
1828 >     236,   236,   236,     6,     7,   236,   236,   229,   230,    12,
1829 >     236,   112,   234,   236,   129,    17,   224,    20,    21,   102,
1830 >      67,   236,   236,   236,    27,   236,   236,    30,    31,   236,
1831 >     236,    33,   236,    36,   236,   236,   236,   126,    41,    42,
1832 >     236,    44,    45,    46,     1,    48,   832,   833,   834,   835,
1833 >     836,   837,   838,   236,    57,   236,   236,   236,    61,    62,
1834 >      40,   236,   236,   236,   236,    67,   236,   236,    25,    72,
1835 >     236,   236,   236,   236,   236,   122,   236,   236,   236,    82,
1836 >     236,   236,   236,   130,   131,   236,    89,   236,    91,   236,
1837 >      93,    71,    95,    73,    97,    98,   112,   236,   236,   236,
1838 >     102,   236,    59,   236,   151,   236,   236,   110,     4,   236,
1839 >     234,    68,   115,   116,   117,   236,   119,   120,   121,   236,
1840 >     122,   124,    18,   139,   140,   141,   142,   143,   144,   145,
1841 >      26,   236,   236,    90,   236,   127,   138,    94,   118,   236,
1842 >     236,   236,   236,   236,    40,   102,   236,   150,   105,   106,
1843 >     236,   236,   234,   155,   156,   135,   236,   160,   161,   162,
1844 >     163,   164,   165,   236,    13,   236,   236,   236,   236,   127,
1845 >     215,   112,   112,   112,     1,    71,     3,    73,     5,   112,
1846 >     137,   228,   112,   112,   215,    34,   215,   233,   236,   192,
1847 >      17,   233,   172,   173,    43,   236,   236,   154,   236,   236,
1848 >     157,   158,   159,    99,   206,   127,    33,   215,   236,  1240,
1849 >     236,   236,   236,   216,   217,   218,   236,   220,   221,   222,
1850 >     233,   236,   236,   226,   236,    74,   228,   184,   231,   236,
1851 >     236,    58,   236,    60,   215,   236,   132,   236,   134,   236,
1852 >      67,   236,   236,   236,   201,   202,   203,   236,   228,   236,
1853 >     236,    78,   232,   236,   103,   104,   233,   153,   236,    73,
1854 >     236,   236,   111,   236,   236,   236,     0,     1,   236,   112,
1855 >       4,   215,   229,   230,   112,   102,   127,   173,   215,   215,
1856 >      14,   112,   178,    17,    18,   236,   182,   136,   112,   112,
1857 >      24,   215,     1,   189,   215,   215,   112,   112,   194,   126,
1858 >     112,    35,   112,   152,    38,    39,    15,    16,   112,   112,
1859 >      19,   215,   208,   215,   215,   211,   215,   213,   236,   146,
1860 >     215,   135,   215,   215,   215,   215,   127,   112,   155,   225,
1861 >     215,   215,    66,   215,   215,   233,   232,    71,   127,   233,
1862 >     127,   127,   112,   127,   233,   215,    80,    49,   236,    51,
1863 >      52,   215,   166,   236,   215,   233,   236,   236,    67,   173,
1864 >     236,   236,   236,   236,   236,   214,   100,   101,   182,   236,
1865 >     236,   236,     1,   233,   201,    84,    85,    86,    87,    88,
1866 >     236,   236,   236,    92,   118,   233,   236,    96,   233,    49,
1867 >     236,    51,    52,   102,   208,   236,   210,   211,   233,   236,
1868 >      29,   135,   229,   236,   113,   114,   236,   236,    37,   215,
1869 >     236,   225,   127,   215,   148,   149,   125,   236,   232,   236,
1870 >      49,    50,   215,    49,   215,    54,    55,    56,   112,   127,
1871 >     127,    73,   127,   127,   127,   127,   170,   127,   147,   127,
1872 >     112,   127,   127,   233,   127,   233,   215,   127,   112,   183,
1873 >      79,   233,   127,   236,   235,   233,   233,   191,   233,   112,
1874 >     236,   195,   236,   236,   112,   167,   168,   169,   233,   171,
1875 >     172,   233,   174,   175,   233,   177,   233,   179,   187,   233,
1876 >     182,   233,   233,   185,   186,   233,   188,   233,   233,   233,
1877 >     233,   193,   233,   135,   233,   197,   198,   199,   233,   112,
1878 >     233,   112,   112,   112,   112,   207,   112,   167,   168,   169,
1879 >     212,   171,   172,   112,   174,   175,   233,   177,   236,   179,
1880 >     127,   112,   182,   127,   166,   185,   186,   127,   188,   127,
1881 >     127,   173,   127,   193,   215,   127,     1,   197,   198,   199,
1882 >     182,   167,   168,   169,   127,   171,   172,   207,   174,   175,
1883 >     127,   177,   212,   179,   127,   233,   182,    22,    23,   185,
1884 >     186,   127,   188,    28,   127,   233,   208,   193,   210,   211,
1885 >     233,   197,   198,   199,   127,   127,   233,   233,   233,   233,
1886 >     127,   207,   233,   225,   233,   127,   212,   233,   233,   233,
1887 >     232,   112,   233,   233,   233,   233,   233,   233,    63,    64,
1888 >     233,   233,   233,   233,    69,    70,   233,   127,   233,   233,
1889 >      75,    76,    77,   233,   233,   233,   233,   233,    83,    84,
1890 >     127,   233,   236,   127,   127,   215,   127,   127,   233,   127,
1891 >     233,   233,   233,   112,   127,   127,   127,   233,   127,   233,
1892 >     233,   127,   127,   108,   109,   233,   233,   233,   233,   233,
1893 >     127,   233,   233,   233,   233,   233,   215,   233,   233,   233,
1894 >     215,   233,   233,   233,   233,   233,   127,   127,   233,   236,
1895 >     127,   233,   233,   233,   127,   127,   127,   233,   236,   236,
1896 >     127,  1054,   233,   233,   233,   233,   112,   233,   233,   233,
1897 >     233,    74,   233,   233,   233,   233,   233,   233,   233,   233,
1898 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1899 >     127,   233,  1065,   236,   233,   233,  1052,   233,   233,   236,
1900 >     233,   233,   233,   233,   233,   233,   133,   233,   233,   133,
1901 >     133,   233,  1316,   513,   233,  1278,   233,   233,   233,   233,
1902 >    1280,  1259,  1270,   233,   298,   233,   233,   500,  1162,   233,
1903 >     233,   233,   233,   233,   477,   233,   528,   233,   233,   233,
1904 >     233,   233,   233,   233,   233,   233,   233,   233,  1268,   233,
1905 >     233,   233,   600,   544,   233,   233,  1289,   233,   233,   233,
1906 >     223,  1282,  1264,   233,   233,   349,   584,   233,   233,   237,
1907 >     490,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1908 >     233,   233,   233,   233,   115,   170,   233,   236,   236,   233,
1909 >     233,  1130,   228,   238,   233,    94,   238,   238,   236,   233,
1910 >     233,   233,  1132,   412,    -1,    -1,    -1,    -1,    -1,    -1,
1911 >     274,    -1,    -1,   244,    -1,    -1,    -1,    -1,    -1,    -1,
1912 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1914 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   383,
1915 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1916 >      -1,    -1,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
1917 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1919 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1920 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1921 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1923 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1924 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1925 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1926 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   402
1927   };
1928  
1929 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1930 <   symbol of state STATE-NUM.  */
1929 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1930 >     symbol of state STATE-NUM.  */
1931   static const yytype_uint16 yystos[] =
1932   {
1933 <       0,   266,     0,     1,     5,    22,    26,    29,    36,    51,
1934 <      63,    64,    66,    73,    90,   100,   102,   119,   136,   171,
1935 <     180,   181,   185,   186,   267,   272,   277,   295,   301,   316,
1936 <     339,   358,   372,   390,   397,   407,   416,   442,   452,   458,
1937 <     462,   472,   536,   552,   573,   260,   261,   262,   262,   340,
1938 <     417,   453,   262,   463,   262,   537,   373,   443,   359,   262,
1939 <     262,   317,   391,   262,   262,   398,   408,     1,    37,    47,
1940 <     120,   296,   297,   298,   299,   300,     1,    13,    34,    35,
1941 <      40,    42,    96,    97,   105,   106,   126,   127,   143,   144,
1942 <     154,   163,   250,   251,   252,   553,   554,   555,   556,   557,
1943 <     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
1944 <     568,   569,   570,   571,   572,   153,   341,   345,   153,   418,
1945 <     422,   262,     1,    89,   459,   460,   461,   262,     1,     8,
1946 <       9,    12,    19,    28,    32,    33,    39,    43,    44,    46,
1947 <      52,    70,    71,    75,    82,    86,    87,    88,    91,    94,
1948 <      95,   104,   110,   111,   113,   114,   115,   116,   117,   128,
1949 <     137,   139,   140,   142,   145,   146,   149,   160,   182,   184,
1950 <     188,   192,   193,   194,   195,   196,   200,   201,   209,   241,
1951 <     243,   249,   254,   259,   473,   474,   475,   476,   477,   478,
1952 <     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
1953 <     489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
1954 <     499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
1955 <     509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
1956 <     519,   520,   521,   522,   523,   524,   528,   532,   533,   534,
1957 <     535,   262,   262,   262,   262,     1,    55,    56,    57,    58,
1958 <      59,    60,    61,    62,   103,   138,   219,   253,   302,   303,
1959 <     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1960 <     314,   315,     1,   118,   148,   273,   274,   275,   276,   153,
1961 <     318,   322,   262,     1,    41,    54,    76,    78,    80,    81,
1962 <      99,   574,   575,   576,   577,   578,   579,   580,   581,   582,
1963 <       1,    37,    84,   120,   122,   123,   165,   167,   168,   183,
1964 <     227,   255,   256,   278,   279,   280,   284,   285,   286,   287,
1965 <     288,   289,   290,   291,   292,   293,   294,   262,   262,   260,
1966 <     263,   263,   263,   261,   297,   263,   263,   263,   263,   263,
1967 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1968 <     263,   263,   263,   261,   554,   262,   262,     1,    89,   155,
1969 <     454,   455,   456,   457,   263,   261,   460,     1,   120,   155,
1970 <     187,   464,   468,   469,   470,   471,   263,   263,   263,   263,
1971 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1972 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1973 <     263,   263,   263,   263,   263,   263,   263,   263,   529,   263,
1974 <     525,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1975 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1976 <     263,   261,   474,     1,     4,    45,    48,   102,   120,   248,
1977 <     538,   539,   540,   541,   542,   546,   547,   548,     1,    26,
1978 <      49,    53,   147,   156,   157,   190,   248,   374,   375,   376,
1979 <     377,   378,   379,   380,   387,   388,   389,     1,   155,   187,
1980 <     248,   444,   448,   449,   450,   451,     1,    53,    83,    89,
1981 <     152,   360,   364,   365,   366,   370,   371,   260,   263,   263,
1982 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1983 <     261,   303,   260,   263,   263,   261,   274,   262,     1,    22,
1984 <     124,   155,   392,   393,   394,   395,   396,   263,   263,   263,
1985 <     263,   263,   263,   263,   261,   575,   260,   263,   263,   263,
1986 <     263,   263,   263,   263,   281,   263,   263,   263,   263,   261,
1987 <     279,     1,   120,   187,   248,   399,   400,   401,   402,   403,
1988 <       1,   120,   187,   409,   410,   411,   412,   153,   153,   153,
1989 <     260,   197,   131,   131,   197,   197,   131,   269,   269,   131,
1990 <     131,   197,   197,   131,   269,   197,   197,   197,   197,   197,
1991 <     260,     1,    23,    24,    30,   107,   108,   109,   112,   120,
1992 <     133,   134,   150,   151,   178,   342,   343,   344,   346,   347,
1993 <     348,   349,   350,   351,   352,   353,   354,   355,   356,   357,
1994 <       1,     3,     6,    25,    26,    49,    53,    83,    85,    98,
1995 <     120,   152,   166,   179,   255,   419,   420,   421,   423,   424,
1996 <     425,   426,   427,   428,   429,   436,   437,   438,   439,   440,
1997 <     441,   263,   263,   261,   455,   153,   260,   263,   263,   465,
1998 <     261,   469,   197,   269,   197,   269,   131,   153,   131,   197,
1999 <     197,   131,   153,   197,   131,   131,   131,   197,   269,   197,
2000 <     197,   269,   153,   197,   131,   131,   269,   131,   131,   153,
2001 <     131,   131,   197,   197,   263,   197,   263,   269,   269,   197,
2002 <     269,   153,   197,   197,   197,   197,   198,   197,   198,   197,
2003 <     197,   269,   269,   131,   271,   269,   197,   197,   197,   197,
2004 <     260,   549,   263,   263,   543,   263,   263,   261,   539,   260,
2005 <     263,   263,   381,   263,   263,   263,   263,   263,   261,   375,
2006 <     263,   445,   263,   261,   449,   260,   361,   263,   263,   263,
2007 <     261,   365,   153,   153,   153,   153,   153,   153,   153,   153,
2008 <     220,   221,   222,   223,   224,   225,   226,   153,   153,   197,
2009 <     260,   153,   153,   260,     1,    26,    49,    53,   120,   147,
2010 <     166,   236,   248,   319,   320,   321,   323,   324,   325,   326,
2011 <     327,   328,   332,   260,   263,   263,   263,   261,   393,   197,
2012 <     197,   197,   153,   197,   197,   269,   260,   153,   197,   153,
2013 <     153,   153,   153,   153,   263,   153,   131,   153,   153,   260,
2014 <     260,   263,   404,   263,   261,   400,   260,   263,   413,   261,
2015 <     410,   260,   260,   260,   260,   260,   260,   260,   260,   173,
2016 <     174,   175,   176,   177,   268,   269,   260,   260,   260,   260,
2017 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2018 <     263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
2019 <     263,   263,   263,   261,   343,   260,   263,   263,   263,   263,
2020 <     263,   430,   263,   263,   263,   263,   263,   263,   263,   263,
2021 <     261,   420,   153,   153,   260,   260,   153,   153,   263,   260,
2022 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2023 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2024 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2025 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2026 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2027 <     240,   530,   531,   260,   204,   205,   206,   207,   208,   210,
2028 <     211,   213,   214,   215,   218,   228,   229,   230,   232,   233,
2029 <     234,   237,   240,   526,   527,   260,   260,   260,   260,   260,
2030 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2031 <     260,    14,    15,    16,   270,   271,   260,   260,   260,   260,
2032 <     260,   260,   263,   269,   197,   263,   153,   153,   260,   153,
2033 <     197,   263,   153,   131,   153,   153,   153,   260,   153,   263,
2034 <     153,   260,   263,   153,   153,   131,   368,   369,   260,   260,
2035 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2036 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2037 <     263,   263,   333,   263,   263,   263,   329,   263,   261,   320,
2038 <     153,   153,   153,   260,   260,   260,   260,   260,   260,   260,
2039 <     260,   260,   260,   260,   260,   260,   260,   260,   169,   170,
2040 <     282,   283,   260,   260,   260,   260,   153,   263,   153,   260,
2041 <     153,   263,   260,   268,   268,   268,   268,   268,   131,   131,
2042 <     269,   131,   131,   131,   131,   153,   131,   131,   269,   269,
2043 <     271,   260,   153,   216,   217,   153,   153,   197,   263,   153,
2044 <     153,   153,   153,   131,   153,   153,   153,   260,   260,   260,
2045 <     260,   260,   158,   466,   467,   260,   264,   260,   264,   270,
2046 <     270,   270,    11,   199,   550,   551,   260,   260,    11,   199,
2047 <     544,   545,   260,   260,   260,   260,   130,   382,   383,   385,
2048 <     260,   260,   260,   260,   260,   260,   158,   446,   447,   260,
2049 <      76,   231,   235,   362,   363,   260,   260,   202,   264,   367,
2050 <     153,   197,   263,   153,   153,   153,   263,   153,   260,   260,
2051 <     260,   260,   260,   264,   260,    92,   171,   203,   218,   238,
2052 <     239,   244,   245,   246,   247,   257,   405,   406,   260,   260,
2053 <      92,   171,   203,   218,   238,   239,   244,   245,   246,   247,
2054 <     257,   414,   415,   260,   260,   260,   260,   260,   260,   260,
2055 <     260,   260,   260,   260,   260,   260,   260,   260,   260,   260,
2056 <     260,   260,   130,   431,   432,   434,   260,   260,   260,   260,
2057 <     260,   260,   260,   260,   260,   264,   531,   527,   260,   264,
2058 <     260,   264,   384,   260,   264,    20,    21,    50,    67,    74,
2059 <      93,   121,   129,   172,   191,   386,   260,   264,   260,   264,
2060 <     131,   369,   260,   260,   260,   130,   334,   335,   337,   260,
2061 <     260,   260,   204,   205,   206,   207,   208,   210,   211,   213,
2062 <     214,   215,   218,   228,   229,   230,   232,   233,   234,   237,
2063 <     240,   330,   331,   260,   283,   260,   264,   260,   264,   433,
2064 <     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
1933 >       0,   240,     0,     1,     4,    14,    17,    18,    24,    35,
1934 >      38,    39,    66,    71,    80,   100,   101,   118,   135,   148,
1935 >     149,   170,   183,   191,   195,   241,   246,   251,   277,   283,
1936 >     289,   303,   323,   347,   361,   376,   383,   387,   397,   406,
1937 >     427,   433,   439,   443,   449,   508,   525,   233,   234,   235,
1938 >     235,   324,   407,   434,   235,   444,   235,   362,   428,   348,
1939 >     235,   284,   304,   377,   235,   235,   398,   235,   235,   388,
1940 >       1,    25,    32,   102,   278,   279,   280,   281,   282,     1,
1941 >      22,    23,    28,    63,    64,    69,    70,    75,    76,    77,
1942 >      83,    84,   108,   109,   509,   510,   511,   512,   513,   514,
1943 >     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
1944 >     235,   235,   235,     1,    65,   440,   441,   442,   235,     1,
1945 >       6,     7,    12,    20,    21,    27,    30,    31,    36,    41,
1946 >      42,    44,    45,    46,    48,    57,    61,    62,    72,    82,
1947 >      89,    91,    93,    95,    97,    98,   110,   115,   116,   117,
1948 >     119,   120,   121,   124,   150,   160,   161,   162,   163,   164,
1949 >     165,   192,   216,   217,   218,   220,   221,   222,   226,   231,
1950 >     450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
1951 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1952 >     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
1953 >     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1954 >     490,   491,   492,   493,   494,   495,   496,   497,   501,   505,
1955 >     506,   507,   235,   235,   235,     1,    99,   123,   247,   248,
1956 >     249,   250,   235,   235,   235,     1,    29,    37,    49,    50,
1957 >      54,    55,    56,    79,   526,   527,   528,   529,   530,   531,
1958 >     532,   533,   534,   535,     1,    25,    59,    68,    90,    94,
1959 >     102,   105,   106,   137,   154,   157,   158,   159,   184,   201,
1960 >     202,   203,   229,   230,   252,   253,   254,   255,   260,   261,
1961 >     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
1962 >     272,   273,   274,   275,   276,   235,     1,   227,   290,   291,
1963 >     292,   293,   294,     1,   102,   384,   385,   386,   235,   233,
1964 >     236,   236,   236,   234,   279,   236,   236,   236,   236,   236,
1965 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   234,
1966 >     510,     1,    15,    16,    19,    67,    84,    85,    86,    87,
1967 >      88,    92,    96,   102,   113,   114,   125,   147,   187,   325,
1968 >     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1969 >     336,   337,   338,   339,   340,   341,   342,   343,     1,     3,
1970 >       5,    17,    33,    58,    60,    67,    78,   102,   126,   146,
1971 >     155,   201,   229,   408,   409,   410,   411,   412,   413,   414,
1972 >     415,   416,   417,   418,   422,   423,   424,   425,   426,     1,
1973 >      65,   129,   435,   436,   437,   438,   236,   234,   441,     1,
1974 >     102,   129,   445,   446,   447,   448,   236,   236,   236,   236,
1975 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1976 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1977 >     236,   236,   236,   502,   236,   498,   236,   236,   236,   236,
1978 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1979 >     236,   236,   236,   236,   236,   236,   234,   451,     1,    17,
1980 >      33,    67,   122,   130,   131,   151,   228,   363,   364,   365,
1981 >     366,   367,   368,   369,   373,   374,   375,     1,   129,   228,
1982 >     429,   430,   431,   432,     1,    58,    65,    67,   126,   349,
1983 >     353,   354,   355,   359,   360,   233,   236,   236,   234,   248,
1984 >       1,    81,   176,   285,   286,   287,   288,     1,    17,    33,
1985 >      67,   102,   122,   138,   155,   156,   206,   228,   305,   306,
1986 >     307,   308,   309,   310,   311,   312,   313,   314,   315,   319,
1987 >       1,    35,    81,   129,   378,   379,   380,   381,   382,   236,
1988 >     236,   236,   236,   236,   236,   236,   236,   234,   527,   233,
1989 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1990 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   234,
1991 >     253,     1,   102,   224,   399,   400,   401,   402,   233,   236,
1992 >     234,   291,   176,   236,   234,   385,     1,   102,   224,   228,
1993 >     389,   390,   391,   392,   393,   127,   127,   127,   233,   112,
1994 >     112,   215,   112,   112,   243,   112,   243,   112,   243,   243,
1995 >     112,   112,   215,   215,   233,   233,   236,   236,   236,   344,
1996 >     236,   236,   236,   236,   236,   236,   236,   236,   236,   236,
1997 >     236,   236,   236,   234,   326,   233,   236,   236,   236,   236,
1998 >     236,   236,   419,   236,   236,   236,   236,   236,   236,   236,
1999 >     234,   409,   236,   236,   234,   436,   127,   233,   236,   236,
2000 >     234,   446,   215,   243,   243,   215,   112,   215,   112,   127,
2001 >     215,   243,   215,   112,   112,   243,   112,   215,   215,   215,
2002 >     243,   112,   112,   243,   112,   112,   112,   112,   215,   236,
2003 >     215,   236,   215,   243,   243,   215,   215,   215,   215,   219,
2004 >     215,   219,   215,   215,   215,   127,   112,   243,   215,   215,
2005 >     243,   243,   215,   215,   233,   233,   236,   236,   370,   236,
2006 >     236,   236,   236,   236,   234,   364,   236,   236,   234,   430,
2007 >     233,   236,   236,   350,   236,   234,   354,   127,   127,   233,
2008 >     233,   236,   236,   234,   286,   233,   236,   236,   320,   236,
2009 >     236,   236,   236,   236,   316,   236,   234,   306,   233,   236,
2010 >     236,   236,   234,   379,   215,   215,   215,   127,   215,   215,
2011 >     215,   243,   233,   127,   215,   127,   112,   112,   127,   127,
2012 >     127,   127,   127,   127,   127,   127,   112,   127,   204,   205,
2013 >     256,   257,   204,   205,   258,   259,   127,   127,   233,   233,
2014 >     236,   403,   234,   400,   215,   233,   235,   127,   233,   233,
2015 >     236,   394,   236,   234,   390,   233,   233,   233,   233,   233,
2016 >     233,   233,   139,   140,   141,   142,   143,   144,   145,   242,
2017 >     243,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2018 >     233,   112,   112,   243,   236,   112,   112,   112,   243,   112,
2019 >     112,   243,   127,   112,   112,   243,   112,   245,   245,   233,
2020 >     127,   180,   181,   127,   215,   127,   127,   236,   127,   127,
2021 >     112,   127,   127,   127,   127,   233,   127,   127,   233,   233,
2022 >     127,   127,   233,   233,   233,   233,   233,   233,   233,   233,
2023 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2024 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2025 >      49,   167,   168,   169,   171,   172,   174,   175,   177,   179,
2026 >     182,   185,   186,   188,   193,   197,   198,   199,   207,   212,
2027 >     503,   504,   233,    49,    51,    52,   167,   168,   169,   171,
2028 >     172,   174,   175,   177,   179,   182,   185,   186,   188,   193,
2029 >     197,   198,   199,   207,   212,   499,   500,   233,   233,   233,
2030 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2031 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   127,
2032 >     215,   236,   127,   112,   127,   127,   127,   233,   127,   127,
2033 >     233,   127,   127,   236,   112,   357,   358,   233,   233,   233,
2034 >     127,   127,   233,   127,   215,   236,   127,   127,   127,   127,
2035 >     215,   236,   127,   233,   127,   127,   127,   233,   233,   233,
2036 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2037 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2038 >     233,   233,   237,   233,   237,   233,   233,   127,   236,   233,
2039 >     233,     1,   102,   196,   224,   295,   296,   297,   298,   299,
2040 >     233,   127,   236,   127,   233,   242,   242,   242,   242,   242,
2041 >     242,   242,   233,   233,   233,    53,   128,   345,   346,   233,
2042 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2043 >       9,    10,    11,   244,   245,   233,   233,   233,   233,   233,
2044 >     233,   233,   233,   233,     8,   200,   420,   421,   233,   233,
2045 >     233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
2046 >     237,   233,   237,   233,   233,    13,    34,    43,    74,   103,
2047 >     104,   111,   136,   152,   214,   371,   372,   233,   233,   233,
2048 >     233,   233,   233,   233,   233,   233,    49,   190,   200,   351,
2049 >     352,   223,   237,   356,   233,   233,   233,   233,     4,    18,
2050 >      26,    40,    71,    73,    99,   132,   134,   153,   173,   178,
2051 >     182,   189,   194,   208,   211,   213,   225,   232,   321,   322,
2052 >     233,   233,   233,   233,   233,    49,    51,    52,   167,   168,
2053 >     169,   171,   172,   174,   175,   177,   179,   182,   185,   186,
2054 >     188,   193,   197,   198,   199,   207,   212,   317,   318,   233,
2055 >     233,   233,   233,   257,   259,   233,    73,   135,   166,   173,
2056 >     182,   208,   210,   211,   225,   232,   404,   405,   233,   236,
2057 >     236,   300,   234,   296,   233,    73,   135,   166,   173,   182,
2058 >     208,   210,   211,   225,   232,   395,   396,   233,   233,   237,
2059 >     244,   244,   244,   233,   237,   504,   500,   233,   237,   233,
2060 >     237,   112,   358,   233,   238,   238,   238,   233,   237,   233,
2061 >     237,   233,   237,   127,   209,   245,   236,   233,   233,   237,
2062 >     346,   421,   372,   352,   133,   133,   133,   322,   318,   405,
2063 >     233,   233,   233,    40,    71,    73,   118,   135,   172,   173,
2064 >     228,   232,   301,   302,   396,   233,   237,   302
2065   };
2066  
2067 < #define yyerrok         (yyerrstatus = 0)
2068 < #define yyclearin       (yychar = YYEMPTY)
2069 < #define YYEMPTY         (-2)
2070 < #define YYEOF           0
2071 <
2072 < #define YYACCEPT        goto yyacceptlab
2073 < #define YYABORT         goto yyabortlab
2074 < #define YYERROR         goto yyerrorlab
2075 <
2076 <
2077 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2078 <   to ease the transition to the new meaning of YYERROR, for GCC.
2079 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2080 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2081 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2082 <   discussed.  */
2083 <
2084 < #define YYFAIL          goto yyerrlab
2085 < #if defined YYFAIL
2086 <  /* This is here to suppress warnings from the GCC cpp's
2087 <     -Wunused-macros.  Normally we don't worry about that warning, but
2088 <     some users do, and we want to make it easy for users to remove
2089 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2090 < #endif
2067 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2068 > static const yytype_uint16 yyr1[] =
2069 > {
2070 >       0,   239,   240,   240,   241,   241,   241,   241,   241,   241,
2071 >     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2072 >     241,   241,   241,   241,   241,   241,   241,   242,   242,   243,
2073 >     243,   243,   243,   243,   243,   243,   243,   244,   244,   245,
2074 >     245,   245,   245,   246,   247,   247,   248,   248,   248,   249,
2075 >     250,   251,   252,   252,   253,   253,   253,   253,   253,   253,
2076 >     253,   253,   253,   253,   253,   253,   253,   253,   253,   253,
2077 >     253,   253,   253,   253,   254,   255,   256,   256,   257,   257,
2078 >     258,   258,   259,   259,   260,   261,   262,   263,   264,   265,
2079 >     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
2080 >     276,   277,   278,   278,   279,   279,   279,   279,   280,   281,
2081 >     282,   284,   283,   285,   285,   286,   286,   286,   287,   288,
2082 >     289,   290,   290,   291,   291,   291,   292,   294,   293,   295,
2083 >     295,   296,   296,   296,   296,   297,   298,   298,   300,   299,
2084 >     301,   301,   302,   302,   302,   302,   302,   302,   302,   302,
2085 >     302,   304,   303,   305,   305,   306,   306,   306,   306,   306,
2086 >     306,   306,   306,   306,   306,   306,   307,   308,   309,   310,
2087 >     311,   312,   313,   314,   316,   315,   317,   317,   318,   318,
2088 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2089 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2090 >     320,   319,   321,   321,   322,   322,   322,   322,   322,   322,
2091 >     322,   322,   322,   322,   322,   322,   322,   322,   322,   322,
2092 >     322,   322,   322,   322,   322,   322,   322,   324,   323,   325,
2093 >     325,   326,   326,   326,   326,   326,   326,   326,   326,   326,
2094 >     326,   326,   326,   326,   326,   326,   326,   326,   326,   327,
2095 >     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
2096 >     338,   339,   340,   341,   342,   344,   343,   345,   345,   346,
2097 >     346,   348,   347,   350,   349,   351,   351,   352,   352,   352,
2098 >     353,   353,   354,   354,   354,   354,   354,   356,   355,   357,
2099 >     357,   358,   358,   359,   360,   362,   361,   363,   363,   364,
2100 >     364,   364,   364,   364,   364,   364,   364,   364,   365,   366,
2101 >     367,   368,   370,   369,   371,   371,   372,   372,   372,   372,
2102 >     372,   372,   372,   372,   372,   372,   373,   374,   375,   377,
2103 >     376,   378,   378,   379,   379,   379,   379,   380,   381,   382,
2104 >     383,   384,   384,   385,   385,   386,   388,   387,   389,   389,
2105 >     390,   390,   390,   390,   391,   392,   394,   393,   395,   395,
2106 >     396,   396,   396,   396,   396,   396,   396,   396,   396,   396,
2107 >     398,   397,   399,   399,   400,   400,   400,   401,   403,   402,
2108 >     404,   404,   405,   405,   405,   405,   405,   405,   405,   405,
2109 >     405,   405,   407,   406,   408,   408,   409,   409,   409,   409,
2110 >     409,   409,   409,   409,   409,   409,   409,   409,   409,   409,
2111 >     409,   410,   411,   412,   413,   414,   415,   416,   417,   417,
2112 >     419,   418,   420,   420,   421,   421,   422,   423,   424,   425,
2113 >     426,   428,   427,   429,   429,   430,   430,   430,   431,   432,
2114 >     434,   433,   435,   435,   436,   436,   436,   437,   438,   439,
2115 >     440,   440,   441,   441,   442,   444,   443,   445,   445,   446,
2116 >     446,   446,   447,   448,   449,   450,   450,   451,   451,   451,
2117 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2118 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2119 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2120 >     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
2121 >     451,   451,   451,   451,   451,   451,   451,   451,   452,   453,
2122 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2123 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2124 >     474,   475,   476,   477,   478,   478,   479,   479,   480,   481,
2125 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
2126 >     492,   493,   494,   495,   496,   498,   497,   499,   499,   500,
2127 >     500,   500,   500,   500,   500,   500,   500,   500,   500,   500,
2128 >     500,   500,   500,   500,   500,   500,   500,   500,   500,   500,
2129 >     500,   502,   501,   503,   503,   504,   504,   504,   504,   504,
2130 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2131 >     504,   504,   504,   504,   504,   505,   506,   507,   508,   509,
2132 >     509,   510,   510,   510,   510,   510,   510,   510,   510,   510,
2133 >     510,   510,   510,   510,   510,   510,   511,   512,   513,   514,
2134 >     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
2135 >     525,   526,   526,   527,   527,   527,   527,   527,   527,   527,
2136 >     527,   527,   528,   529,   530,   531,   532,   533,   534,   535
2137 > };
2138  
2139 < #define YYRECOVERING()  (!!yyerrstatus)
2139 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2140 > static const yytype_uint8 yyr2[] =
2141 > {
2142 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2143 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2144 >       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
2145 >       3,     3,     3,     3,     3,     3,     3,     0,     1,     2,
2146 >       3,     3,     3,     5,     2,     1,     1,     1,     2,     4,
2147 >       4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
2148 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     2,     4,     4,     3,     1,     1,     1,
2150 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     4,
2151 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2152 >       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
2153 >       4,     0,     6,     2,     1,     1,     1,     2,     4,     4,
2154 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
2155 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
2156 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2157 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2158 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2159 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
2160 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2161 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2162 >       0,     5,     3,     1,     3,     1,     3,     1,     3,     1,
2163 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
2165 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2166 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2167 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2168 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2169 >       1,     0,     6,     0,     5,     3,     1,     1,     1,     1,
2170 >       2,     1,     1,     1,     1,     1,     2,     0,     5,     3,
2171 >       1,     1,     3,     4,     4,     0,     6,     2,     1,     1,
2172 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2173 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2174 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     0,
2175 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2176 >       5,     2,     1,     1,     1,     4,     0,     6,     2,     1,
2177 >       1,     1,     1,     2,     4,     4,     0,     5,     3,     1,
2178 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2179 >       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
2180 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2181 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2182 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2183 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2184 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
2185 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2186 >       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
2187 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
2188 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
2189 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2190 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2191 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2192 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2193 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2194 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2195 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2196 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2197 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2198 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2199 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2200 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2201 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2202 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2203 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
2204 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2205 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2206 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2207 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2208 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4
2209 > };
2210  
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
2211  
2212 + #define yyerrok         (yyerrstatus = 0)
2213 + #define yyclearin       (yychar = YYEMPTY)
2214 + #define YYEMPTY         (-2)
2215 + #define YYEOF           0
2216 +
2217 + #define YYACCEPT        goto yyacceptlab
2218 + #define YYABORT         goto yyabortlab
2219 + #define YYERROR         goto yyerrorlab
2220  
2601 /* This macro is provided for backward compatibility. */
2221  
2222 < #ifndef YY_LOCATION_PRINT
2604 < # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2605 < #endif
2222 > #define YYRECOVERING()  (!!yyerrstatus)
2223  
2224 + #define YYBACKUP(Token, Value)                                  \
2225 + do                                                              \
2226 +  if (yychar == YYEMPTY)                                        \
2227 +    {                                                           \
2228 +      yychar = (Token);                                         \
2229 +      yylval = (Value);                                         \
2230 +      YYPOPSTACK (yylen);                                       \
2231 +      yystate = *yyssp;                                         \
2232 +      goto yybackup;                                            \
2233 +    }                                                           \
2234 +  else                                                          \
2235 +    {                                                           \
2236 +      yyerror (YY_("syntax error: cannot back up")); \
2237 +      YYERROR;                                                  \
2238 +    }                                                           \
2239 + while (0)
2240 +
2241 + /* Error token number */
2242 + #define YYTERROR        1
2243 + #define YYERRCODE       256
2244  
2608 /* YYLEX -- calling `yylex' with the right arguments.  */
2245  
2610 #ifdef YYLEX_PARAM
2611 # define YYLEX yylex (YYLEX_PARAM)
2612 #else
2613 # define YYLEX yylex ()
2614 #endif
2246  
2247   /* Enable debugging if requested.  */
2248   #if YYDEBUG
# Line 2621 | Line 2252 | while (YYID (0))
2252   #  define YYFPRINTF fprintf
2253   # endif
2254  
2255 < # define YYDPRINTF(Args)                        \
2256 < do {                                            \
2257 <  if (yydebug)                                  \
2258 <    YYFPRINTF Args;                             \
2259 < } while (YYID (0))
2260 <
2261 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2262 < do {                                                                      \
2263 <  if (yydebug)                                                            \
2264 <    {                                                                     \
2634 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2635 <      yy_symbol_print (stderr,                                            \
2636 <                  Type, Value); \
2637 <      YYFPRINTF (stderr, "\n");                                           \
2638 <    }                                                                     \
2639 < } while (YYID (0))
2255 > # define YYDPRINTF(Args)                        \
2256 > do {                                            \
2257 >  if (yydebug)                                  \
2258 >    YYFPRINTF Args;                             \
2259 > } while (0)
2260 >
2261 > /* This macro is provided for backward compatibility. */
2262 > #ifndef YY_LOCATION_PRINT
2263 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2264 > #endif
2265  
2266  
2267 < /*--------------------------------.
2268 < | Print this symbol on YYOUTPUT.  |
2269 < `--------------------------------*/
2267 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2268 > do {                                                                      \
2269 >  if (yydebug)                                                            \
2270 >    {                                                                     \
2271 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2272 >      yy_symbol_print (stderr,                                            \
2273 >                  Type, Value); \
2274 >      YYFPRINTF (stderr, "\n");                                           \
2275 >    }                                                                     \
2276 > } while (0)
2277 >
2278 >
2279 > /*----------------------------------------.
2280 > | Print this symbol's value on YYOUTPUT.  |
2281 > `----------------------------------------*/
2282  
2646 /*ARGSUSED*/
2647 #if (defined __STDC__ || defined __C99__FUNC__ \
2648     || defined __cplusplus || defined _MSC_VER)
2283   static void
2284   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
2285   {
2286 +  FILE *yyo = yyoutput;
2287 +  YYUSE (yyo);
2288    if (!yyvaluep)
2289      return;
2290   # ifdef YYPRINT
2291    if (yytype < YYNTOKENS)
2292      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2664 # else
2665  YYUSE (yyoutput);
2293   # endif
2294 <  switch (yytype)
2668 <    {
2669 <      default:
2670 <        break;
2671 <    }
2294 >  YYUSE (yytype);
2295   }
2296  
2297  
# Line 2676 | Line 2299 | yy_symbol_value_print (yyoutput, yytype,
2299   | Print this symbol on YYOUTPUT.  |
2300   `--------------------------------*/
2301  
2679 #if (defined __STDC__ || defined __C99__FUNC__ \
2680     || defined __cplusplus || defined _MSC_VER)
2302   static void
2303   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
2304   {
2305 <  if (yytype < YYNTOKENS)
2306 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2693 <  else
2694 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2305 >  YYFPRINTF (yyoutput, "%s %s (",
2306 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2307  
2308    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2309    YYFPRINTF (yyoutput, ")");
# Line 2702 | Line 2314 | yy_symbol_print (yyoutput, yytype, yyval
2314   | TOP (included).                                                   |
2315   `------------------------------------------------------------------*/
2316  
2705 #if (defined __STDC__ || defined __C99__FUNC__ \
2706     || defined __cplusplus || defined _MSC_VER)
2317   static void
2318   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
2319   {
2320    YYFPRINTF (stderr, "Stack now");
2321    for (; yybottom <= yytop; yybottom++)
# Line 2722 | Line 2326 | yy_stack_print (yybottom, yytop)
2326    YYFPRINTF (stderr, "\n");
2327   }
2328  
2329 < # define YY_STACK_PRINT(Bottom, Top)                            \
2330 < do {                                                            \
2331 <  if (yydebug)                                                  \
2332 <    yy_stack_print ((Bottom), (Top));                           \
2333 < } while (YYID (0))
2329 > # define YY_STACK_PRINT(Bottom, Top)                            \
2330 > do {                                                            \
2331 >  if (yydebug)                                                  \
2332 >    yy_stack_print ((Bottom), (Top));                           \
2333 > } while (0)
2334  
2335  
2336   /*------------------------------------------------.
2337   | Report that the YYRULE is going to be reduced.  |
2338   `------------------------------------------------*/
2339  
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
2340   static void
2341 < yy_reduce_print (yyvsp, yyrule)
2743 <    YYSTYPE *yyvsp;
2744 <    int yyrule;
2745 < #endif
2341 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2342   {
2343 +  unsigned long int yylno = yyrline[yyrule];
2344    int yynrhs = yyr2[yyrule];
2345    int yyi;
2749  unsigned long int yylno = yyrline[yyrule];
2346    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2347 <             yyrule - 1, yylno);
2347 >             yyrule - 1, yylno);
2348    /* The symbols being reduced.  */
2349    for (yyi = 0; yyi < yynrhs; yyi++)
2350      {
2351        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2352 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2353 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2354 <                                       );
2352 >      yy_symbol_print (stderr,
2353 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2354 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2355 >                                              );
2356        YYFPRINTF (stderr, "\n");
2357      }
2358   }
2359  
2360 < # define YY_REDUCE_PRINT(Rule)          \
2361 < do {                                    \
2362 <  if (yydebug)                          \
2363 <    yy_reduce_print (yyvsp, Rule); \
2364 < } while (YYID (0))
2360 > # define YY_REDUCE_PRINT(Rule)          \
2361 > do {                                    \
2362 >  if (yydebug)                          \
2363 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2364 > } while (0)
2365  
2366   /* Nonzero means print parse trace.  It is left uninitialized so that
2367     multiple parsers can coexist.  */
# Line 2778 | Line 2375 | int yydebug;
2375  
2376  
2377   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2378 < #ifndef YYINITDEPTH
2378 > #ifndef YYINITDEPTH
2379   # define YYINITDEPTH 200
2380   #endif
2381  
# Line 2801 | Line 2398 | int yydebug;
2398   #   define yystrlen strlen
2399   #  else
2400   /* Return the length of YYSTR.  */
2804 #if (defined __STDC__ || defined __C99__FUNC__ \
2805     || defined __cplusplus || defined _MSC_VER)
2401   static YYSIZE_T
2402   yystrlen (const char *yystr)
2808 #else
2809 static YYSIZE_T
2810 yystrlen (yystr)
2811    const char *yystr;
2812 #endif
2403   {
2404    YYSIZE_T yylen;
2405    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2825 | Line 2415 | yystrlen (yystr)
2415   #  else
2416   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2417     YYDEST.  */
2828 #if (defined __STDC__ || defined __C99__FUNC__ \
2829     || defined __cplusplus || defined _MSC_VER)
2418   static char *
2419   yystpcpy (char *yydest, const char *yysrc)
2832 #else
2833 static char *
2834 yystpcpy (yydest, yysrc)
2835    char *yydest;
2836    const char *yysrc;
2837 #endif
2420   {
2421    char *yyd = yydest;
2422    const char *yys = yysrc;
# Line 2864 | Line 2446 | yytnamerr (char *yyres, const char *yyst
2446        char const *yyp = yystr;
2447  
2448        for (;;)
2449 <        switch (*++yyp)
2450 <          {
2451 <          case '\'':
2452 <          case ',':
2453 <            goto do_not_strip_quotes;
2454 <
2455 <          case '\\':
2456 <            if (*++yyp != '\\')
2457 <              goto do_not_strip_quotes;
2458 <            /* Fall through.  */
2459 <          default:
2460 <            if (yyres)
2461 <              yyres[yyn] = *yyp;
2462 <            yyn++;
2463 <            break;
2464 <
2465 <          case '"':
2466 <            if (yyres)
2467 <              yyres[yyn] = '\0';
2468 <            return yyn;
2469 <          }
2449 >        switch (*++yyp)
2450 >          {
2451 >          case '\'':
2452 >          case ',':
2453 >            goto do_not_strip_quotes;
2454 >
2455 >          case '\\':
2456 >            if (*++yyp != '\\')
2457 >              goto do_not_strip_quotes;
2458 >            /* Fall through.  */
2459 >          default:
2460 >            if (yyres)
2461 >              yyres[yyn] = *yyp;
2462 >            yyn++;
2463 >            break;
2464 >
2465 >          case '"':
2466 >            if (yyres)
2467 >              yyres[yyn] = '\0';
2468 >            return yyn;
2469 >          }
2470      do_not_strip_quotes: ;
2471      }
2472  
# Line 2907 | Line 2489 | static int
2489   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2490                  yytype_int16 *yyssp, int yytoken)
2491   {
2492 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2492 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2493    YYSIZE_T yysize = yysize0;
2912  YYSIZE_T yysize1;
2494    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2495    /* Internationalized format string. */
2496 <  const char *yyformat = 0;
2496 >  const char *yyformat = YY_NULLPTR;
2497    /* Arguments of yyformat. */
2498    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2499    /* Number of reported tokens (one for the "unexpected", one per
# Line 2920 | Line 2501 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2501    int yycount = 0;
2502  
2503    /* 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.
2504       - If this state is a consistent state with a default action, then
2505         the only way this function was invoked is if the default action
2506         is an error action.  In that case, don't check for expected
# Line 2972 | Line 2549 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2549                      break;
2550                    }
2551                  yyarg[yycount++] = yytname[yyx];
2552 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2553 <                if (! (yysize <= yysize1
2554 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2555 <                  return 2;
2556 <                yysize = yysize1;
2552 >                {
2553 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2554 >                  if (! (yysize <= yysize1
2555 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2556 >                    return 2;
2557 >                  yysize = yysize1;
2558 >                }
2559                }
2560          }
2561      }
# Line 2996 | Line 2575 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2575   # undef YYCASE_
2576      }
2577  
2578 <  yysize1 = yysize + yystrlen (yyformat);
2579 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2580 <    return 2;
2581 <  yysize = yysize1;
2578 >  {
2579 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2580 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2581 >      return 2;
2582 >    yysize = yysize1;
2583 >  }
2584  
2585    if (*yymsg_alloc < yysize)
2586      {
# Line 3036 | Line 2617 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2617   | Release the memory associated to this symbol.  |
2618   `-----------------------------------------------*/
2619  
3039 /*ARGSUSED*/
3040 #if (defined __STDC__ || defined __C99__FUNC__ \
3041     || defined __cplusplus || defined _MSC_VER)
2620   static void
2621   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
2622   {
2623    YYUSE (yyvaluep);
3053
2624    if (!yymsg)
2625      yymsg = "Deleting";
2626    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2627  
2628 <  switch (yytype)
2629 <    {
2630 <
3061 <      default:
3062 <        break;
3063 <    }
2628 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2629 >  YYUSE (yytype);
2630 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2631   }
2632  
2633  
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 */
2634  
2635  
2636   /* The lookahead symbol.  */
# Line 3085 | Line 2638 | int yychar;
2638  
2639   /* The semantic value of the lookahead symbol.  */
2640   YYSTYPE yylval;
3088
2641   /* Number of syntax errors so far.  */
2642   int yynerrs;
2643  
# Line 3094 | Line 2646 | int yynerrs;
2646   | yyparse.  |
2647   `----------*/
2648  
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)
2649   int
2650   yyparse (void)
3112 #else
3113 int
3114 yyparse ()
3115
3116 #endif
3117 #endif
2651   {
2652      int yystate;
2653      /* Number of tokens to shift before error messages enabled.  */
2654      int yyerrstatus;
2655  
2656      /* The stacks and their tools:
2657 <       `yyss': related to states.
2658 <       `yyvs': related to semantic values.
2657 >       'yyss': related to states.
2658 >       'yyvs': related to semantic values.
2659  
2660 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2660 >       Refer to the stacks through separate pointers, to allow yyoverflow
2661         to reallocate them elsewhere.  */
2662  
2663      /* The state stack.  */
# Line 3142 | Line 2675 | yyparse ()
2675    int yyn;
2676    int yyresult;
2677    /* Lookahead token as an internal (translated) token number.  */
2678 <  int yytoken;
2678 >  int yytoken = 0;
2679    /* The variables used to return semantic value and location from the
2680       action routines.  */
2681    YYSTYPE yyval;
# Line 3160 | Line 2693 | yyparse ()
2693       Keep to zero when no symbol should be popped.  */
2694    int yylen = 0;
2695  
2696 <  yytoken = 0;
2697 <  yyss = yyssa;
3165 <  yyvs = yyvsa;
2696 >  yyssp = yyss = yyssa;
2697 >  yyvsp = yyvs = yyvsa;
2698    yystacksize = YYINITDEPTH;
2699  
2700    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3171 | Line 2703 | yyparse ()
2703    yyerrstatus = 0;
2704    yynerrs = 0;
2705    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
2706    goto yysetstate;
2707  
2708   /*------------------------------------------------------------.
# Line 3199 | Line 2723 | yyparse ()
2723  
2724   #ifdef yyoverflow
2725        {
2726 <        /* Give user a chance to reallocate the stack.  Use copies of
2727 <           these so that the &'s don't force the real ones into
2728 <           memory.  */
2729 <        YYSTYPE *yyvs1 = yyvs;
2730 <        yytype_int16 *yyss1 = yyss;
2731 <
2732 <        /* Each stack pointer address is followed by the size of the
2733 <           data in use in that stack, in bytes.  This used to be a
2734 <           conditional around just the two extra args, but that might
2735 <           be undefined if yyoverflow is a macro.  */
2736 <        yyoverflow (YY_("memory exhausted"),
2737 <                    &yyss1, yysize * sizeof (*yyssp),
2738 <                    &yyvs1, yysize * sizeof (*yyvsp),
2739 <                    &yystacksize);
2726 >        /* Give user a chance to reallocate the stack.  Use copies of
2727 >           these so that the &'s don't force the real ones into
2728 >           memory.  */
2729 >        YYSTYPE *yyvs1 = yyvs;
2730 >        yytype_int16 *yyss1 = yyss;
2731 >
2732 >        /* Each stack pointer address is followed by the size of the
2733 >           data in use in that stack, in bytes.  This used to be a
2734 >           conditional around just the two extra args, but that might
2735 >           be undefined if yyoverflow is a macro.  */
2736 >        yyoverflow (YY_("memory exhausted"),
2737 >                    &yyss1, yysize * sizeof (*yyssp),
2738 >                    &yyvs1, yysize * sizeof (*yyvsp),
2739 >                    &yystacksize);
2740  
2741 <        yyss = yyss1;
2742 <        yyvs = yyvs1;
2741 >        yyss = yyss1;
2742 >        yyvs = yyvs1;
2743        }
2744   #else /* no yyoverflow */
2745   # ifndef YYSTACK_RELOCATE
# Line 3223 | Line 2747 | yyparse ()
2747   # else
2748        /* Extend the stack our own way.  */
2749        if (YYMAXDEPTH <= yystacksize)
2750 <        goto yyexhaustedlab;
2750 >        goto yyexhaustedlab;
2751        yystacksize *= 2;
2752        if (YYMAXDEPTH < yystacksize)
2753 <        yystacksize = YYMAXDEPTH;
2753 >        yystacksize = YYMAXDEPTH;
2754  
2755        {
2756 <        yytype_int16 *yyss1 = yyss;
2757 <        union yyalloc *yyptr =
2758 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 <        if (! yyptr)
2760 <          goto yyexhaustedlab;
2761 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2756 >        yytype_int16 *yyss1 = yyss;
2757 >        union yyalloc *yyptr =
2758 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 >        if (! yyptr)
2760 >          goto yyexhaustedlab;
2761 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2763   #  undef YYSTACK_RELOCATE
2764 <        if (yyss1 != yyssa)
2765 <          YYSTACK_FREE (yyss1);
2764 >        if (yyss1 != yyssa)
2765 >          YYSTACK_FREE (yyss1);
2766        }
2767   # endif
2768   #endif /* no yyoverflow */
# Line 3247 | Line 2771 | yyparse ()
2771        yyvsp = yyvs + yysize - 1;
2772  
2773        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2774 <                  (unsigned long int) yystacksize));
2774 >                  (unsigned long int) yystacksize));
2775  
2776        if (yyss + yystacksize - 1 <= yyssp)
2777 <        YYABORT;
2777 >        YYABORT;
2778      }
2779  
2780    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3279 | Line 2803 | yybackup:
2803    if (yychar == YYEMPTY)
2804      {
2805        YYDPRINTF ((stderr, "Reading a token: "));
2806 <      yychar = YYLEX;
2806 >      yychar = yylex ();
2807      }
2808  
2809    if (yychar <= YYEOF)
# Line 3319 | Line 2843 | yybackup:
2843    yychar = YYEMPTY;
2844  
2845    yystate = yyn;
2846 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2847    *++yyvsp = yylval;
2848 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2849  
2850    goto yynewstate;
2851  
# Line 3342 | Line 2868 | yyreduce:
2868    yylen = yyr2[yyn];
2869  
2870    /* If YYLEN is nonzero, implement the default value of the action:
2871 <     `$$ = $1'.
2871 >     '$$ = $1'.
2872  
2873       Otherwise, the following line sets YYVAL to garbage.
2874       This behavior is undocumented and Bison
# Line 3355 | Line 2881 | yyreduce:
2881    YY_REDUCE_PRINT (yyn);
2882    switch (yyn)
2883      {
2884 <        case 26:
2885 <
3360 < /* Line 1806 of yacc.c  */
3361 < #line 423 "ircd_parser.y"
2884 >        case 27:
2885 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2886      { (yyval.number) = 0; }
2887 <    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 <                }
2887 > #line 2888 "conf_parser.c" /* yacc.c:1646  */
2888      break;
2889  
2890    case 29:
2891 <
2892 < /* Line 1806 of yacc.c  */
2893 < #line 429 "ircd_parser.y"
3378 <    {
3379 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3380 <                }
2891 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2892 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2893 > #line 2894 "conf_parser.c" /* yacc.c:1646  */
2894      break;
2895  
2896    case 30:
2897 <
2898 < /* Line 1806 of yacc.c  */
2899 < #line 433 "ircd_parser.y"
3387 <    {
3388 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3389 <                }
2897 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2898 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2899 > #line 2900 "conf_parser.c" /* yacc.c:1646  */
2900      break;
2901  
2902    case 31:
2903 <
2904 < /* Line 1806 of yacc.c  */
2905 < #line 437 "ircd_parser.y"
3396 <    {
3397 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3398 <                }
2903 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2904 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2905 > #line 2906 "conf_parser.c" /* yacc.c:1646  */
2906      break;
2907  
2908    case 32:
2909 <
2910 < /* Line 1806 of yacc.c  */
2911 < #line 441 "ircd_parser.y"
3405 <    {
3406 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3407 <                }
2909 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2910 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2911 > #line 2912 "conf_parser.c" /* yacc.c:1646  */
2912      break;
2913  
2914    case 33:
2915 <
2916 < /* Line 1806 of yacc.c  */
2917 < #line 445 "ircd_parser.y"
3414 <    {
3415 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3416 <                }
2915 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2916 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2917 > #line 2918 "conf_parser.c" /* yacc.c:1646  */
2918      break;
2919  
2920    case 34:
2921 + #line 419 "conf_parser.y" /* yacc.c:1646  */
2922 +    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2923 + #line 2924 "conf_parser.c" /* yacc.c:1646  */
2924 +    break;
2925  
2926 < /* Line 1806 of yacc.c  */
2927 < #line 450 "ircd_parser.y"
2928 <    { (yyval.number) = 0; }
2926 >  case 35:
2927 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2928 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2929 > #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932    case 36:
2933 <
2934 < /* Line 1806 of yacc.c  */
2935 < #line 451 "ircd_parser.y"
3430 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2933 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2934 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2935 > #line 2936 "conf_parser.c" /* yacc.c:1646  */
2936      break;
2937  
2938    case 37:
2939 <
2940 < /* Line 1806 of yacc.c  */
2941 < #line 452 "ircd_parser.y"
3437 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2939 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2940 >    { (yyval.number) = 0; }
2941 > #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942      break;
2943  
2944 <  case 38:
2945 <
2946 < /* Line 1806 of yacc.c  */
2947 < #line 453 "ircd_parser.y"
3444 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2944 >  case 39:
2945 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2946 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2947 > #line 2948 "conf_parser.c" /* yacc.c:1646  */
2948      break;
2949  
2950 <  case 39:
2950 >  case 40:
2951 > #line 426 "conf_parser.y" /* yacc.c:1646  */
2952 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2953 > #line 2954 "conf_parser.c" /* yacc.c:1646  */
2954 >    break;
2955  
2956 < /* Line 1806 of yacc.c  */
2957 < #line 454 "ircd_parser.y"
2958 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2956 >  case 41:
2957 > #line 427 "conf_parser.y" /* yacc.c:1646  */
2958 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2959 > #line 2960 "conf_parser.c" /* yacc.c:1646  */
2960      break;
2961  
2962 <  case 46:
2962 >  case 42:
2963 > #line 428 "conf_parser.y" /* yacc.c:1646  */
2964 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2965 > #line 2966 "conf_parser.c" /* yacc.c:1646  */
2966 >    break;
2967  
2968 < /* Line 1806 of yacc.c  */
2969 < #line 468 "ircd_parser.y"
2968 >  case 49:
2969 > #line 442 "conf_parser.y" /* yacc.c:1646  */
2970      {
2971    if (conf_parser_ctx.pass == 2)
2972      add_conf_module(libio_basename(yylval.string));
2973   }
2974 + #line 2975 "conf_parser.c" /* yacc.c:1646  */
2975      break;
2976  
2977 <  case 47:
2978 <
3466 < /* Line 1806 of yacc.c  */
3467 < #line 474 "ircd_parser.y"
2977 >  case 50:
2978 > #line 448 "conf_parser.y" /* yacc.c:1646  */
2979      {
2980    if (conf_parser_ctx.pass == 2)
2981      mod_add_path(yylval.string);
2982   }
2983 + #line 2984 "conf_parser.c" /* yacc.c:1646  */
2984      break;
2985  
2986 <  case 64:
2987 <
3476 < /* Line 1806 of yacc.c  */
3477 < #line 494 "ircd_parser.y"
2986 >  case 78:
2987 > #line 484 "conf_parser.y" /* yacc.c:1646  */
2988      {
2989   #ifdef HAVE_LIBCRYPTO
2990 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
2991 <    ServerInfo.tls_version = 0;
2990 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2991 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2992   #endif
2993   }
2994 + #line 2995 "conf_parser.c" /* yacc.c:1646  */
2995      break;
2996  
2997 <  case 65:
2998 <
3488 < /* Line 1806 of yacc.c  */
3489 < #line 500 "ircd_parser.y"
2997 >  case 79:
2998 > #line 490 "conf_parser.y" /* yacc.c:1646  */
2999      {
3000   #ifdef HAVE_LIBCRYPTO
3001 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3002 <  {
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 <  }
3001 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3002 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3003   #endif
3004   }
3005 + #line 3006 "conf_parser.c" /* yacc.c:1646  */
3006      break;
3007  
3008 <  case 68:
3009 <
3505 < /* Line 1806 of yacc.c  */
3506 < #line 514 "ircd_parser.y"
3008 >  case 82:
3009 > #line 499 "conf_parser.y" /* yacc.c:1646  */
3010      {
3011   #ifdef HAVE_LIBCRYPTO
3012 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3013 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3012 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3013 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3014   #endif
3015   }
3016 + #line 3017 "conf_parser.c" /* yacc.c:1646  */
3017      break;
3018  
3019 <  case 69:
3020 <
3517 < /* Line 1806 of yacc.c  */
3518 < #line 520 "ircd_parser.y"
3019 >  case 83:
3020 > #line 505 "conf_parser.y" /* yacc.c:1646  */
3021      {
3022   #ifdef HAVE_LIBCRYPTO
3023 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3024 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3023 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3024 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3025   #endif
3026   }
3027 + #line 3028 "conf_parser.c" /* yacc.c:1646  */
3028      break;
3029  
3030 <  case 70:
3031 <
3529 < /* Line 1806 of yacc.c  */
3530 < #line 528 "ircd_parser.y"
3030 >  case 84:
3031 > #line 513 "conf_parser.y" /* yacc.c:1646  */
3032      {
3033   #ifdef HAVE_LIBCRYPTO
3034 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3034 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3035    {
3036      if (!ServerInfo.rsa_private_key_file)
3037      {
3038 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3038 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3039        break;
3040      }
3041  
3042      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3043 +                                     SSL_FILETYPE_PEM) <= 0 ||
3044 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3045                                       SSL_FILETYPE_PEM) <= 0)
3046      {
3047 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3047 >      report_crypto_errors();
3048 >      conf_error_report("Could not open/read certificate file");
3049        break;
3050      }
3051  
3052      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3053 +                                    SSL_FILETYPE_PEM) <= 0 ||
3054 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3055                                      SSL_FILETYPE_PEM) <= 0)
3056      {
3057 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3057 >      report_crypto_errors();
3058 >      conf_error_report("Could not read RSA private key");
3059        break;
3060      }
3061  
3062 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3062 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3063 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3064      {
3065 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3065 >      report_crypto_errors();
3066 >      conf_error_report("Could not read RSA private key");
3067        break;
3068      }
3069    }
3070   #endif
3071   }
3072 + #line 3073 "conf_parser.c" /* yacc.c:1646  */
3073      break;
3074  
3075 <  case 71:
3076 <
3567 < /* Line 1806 of yacc.c  */
3568 < #line 562 "ircd_parser.y"
3075 >  case 85:
3076 > #line 555 "conf_parser.y" /* yacc.c:1646  */
3077      {
3078   #ifdef HAVE_LIBCRYPTO
3079 <  if (conf_parser_ctx.pass == 1)
3079 >  BIO *file = NULL;
3080 >
3081 >  if (conf_parser_ctx.pass != 1)
3082 >    break;
3083 >
3084 >  if (ServerInfo.rsa_private_key)
3085    {
3086 <    BIO *file;
3086 >    RSA_free(ServerInfo.rsa_private_key);
3087 >    ServerInfo.rsa_private_key = NULL;
3088 >  }
3089  
3090 <    if (ServerInfo.rsa_private_key)
3091 <    {
3092 <      RSA_free(ServerInfo.rsa_private_key);
3093 <      ServerInfo.rsa_private_key = NULL;
3094 <    }
3090 >  if (ServerInfo.rsa_private_key_file)
3091 >  {
3092 >    MyFree(ServerInfo.rsa_private_key_file);
3093 >    ServerInfo.rsa_private_key_file = NULL;
3094 >  }
3095  
3096 <    if (ServerInfo.rsa_private_key_file)
3582 <    {
3583 <      MyFree(ServerInfo.rsa_private_key_file);
3584 <      ServerInfo.rsa_private_key_file = NULL;
3585 <    }
3096 >  ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3097  
3098 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3098 >  if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3099 >  {
3100 >    conf_error_report("File open failed, ignoring");
3101 >    break;
3102 >  }
3103  
3104 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3105 <    {
3106 <      yyerror("File open failed, ignoring");
3107 <      break;
3593 <    }
3104 >  ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3105 >
3106 >  BIO_set_close(file, BIO_CLOSE);
3107 >  BIO_free(file);
3108  
3109 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3110 <      0, NULL);
3109 >  if (ServerInfo.rsa_private_key == NULL)
3110 >  {
3111 >    conf_error_report("Couldn't extract key, ignoring");
3112 >    break;
3113 >  }
3114  
3115 <    BIO_set_close(file, BIO_CLOSE);
3116 <    BIO_free(file);
3115 >  if (!RSA_check_key(ServerInfo.rsa_private_key))
3116 >  {
3117 >    RSA_free(ServerInfo.rsa_private_key);
3118 >    ServerInfo.rsa_private_key = NULL;
3119  
3120 <    if (ServerInfo.rsa_private_key == NULL)
3120 >    conf_error_report("Invalid key, ignoring");
3121 >    break;
3122 >  }
3123 >
3124 >  if (RSA_size(ServerInfo.rsa_private_key) < 128)
3125 >  {
3126 >    RSA_free(ServerInfo.rsa_private_key);
3127 >    ServerInfo.rsa_private_key = NULL;
3128 >
3129 >    conf_error_report("Ignoring serverinfo::rsa_private_key_file -- need at least a 1024 bit key size");
3130 >  }
3131 > #endif
3132 > }
3133 > #line 3134 "conf_parser.c" /* yacc.c:1646  */
3134 >    break;
3135 >
3136 >  case 86:
3137 > #line 613 "conf_parser.y" /* yacc.c:1646  */
3138      {
3139 <      yyerror("Couldn't extract key, ignoring");
3140 <      break;
3141 <    }
3139 > /* TBD - XXX: error reporting */
3140 > #ifdef HAVE_LIBCRYPTO
3141 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3142 >  {
3143 >    BIO *file = BIO_new_file(yylval.string, "r");
3144  
3145 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3145 >    if (file)
3146      {
3147 <      RSA_free(ServerInfo.rsa_private_key);
3610 <      ServerInfo.rsa_private_key = NULL;
3147 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3148  
3149 <      yyerror("Invalid key, ignoring");
3150 <      break;
3149 >      BIO_free(file);
3150 >
3151 >      if (dh)
3152 >      {
3153 >        if (DH_size(dh) < 128)
3154 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3155 >        else
3156 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3157 >
3158 >        DH_free(dh);
3159 >      }
3160      }
3161 +  }
3162 + #endif
3163 + }
3164 + #line 3165 "conf_parser.c" /* yacc.c:1646  */
3165 +    break;
3166  
3167 <    /* require 2048 bit (256 byte) key */
3168 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3167 >  case 87:
3168 > #line 641 "conf_parser.y" /* yacc.c:1646  */
3169      {
3170 <      RSA_free(ServerInfo.rsa_private_key);
3171 <      ServerInfo.rsa_private_key = NULL;
3170 > #ifdef HAVE_LIBCRYPTO
3171 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3172 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3173 > #endif
3174 > }
3175 > #line 3176 "conf_parser.c" /* yacc.c:1646  */
3176 >    break;
3177  
3178 <      yyerror("Not a 2048 bit key, ignoring");
3179 <    }
3178 >  case 88:
3179 > #line 649 "conf_parser.y" /* yacc.c:1646  */
3180 >    {
3181 > #ifdef HAVE_LIBCRYPTO
3182 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3183 >  {
3184 >    if ((ServerInfo.message_digest_algorithm = EVP_get_digestbyname(yylval.string)) == NULL)
3185 >      conf_error_report("Ignoring serverinfo::ssl_message_digest_algorithm -- unknown message digest algorithm");
3186 >    else
3187 >      ServerInfo.message_digest_algorithm = EVP_sha256();
3188    }
3189   #endif
3190   }
3191 + #line 3192 "conf_parser.c" /* yacc.c:1646  */
3192      break;
3193  
3194 <  case 72:
3194 >  case 89:
3195 > #line 662 "conf_parser.y" /* yacc.c:1646  */
3196 >    {
3197 > #ifdef HAVE_LIBCRYPTO
3198 > #if OPENSSL_VERSION_NUMBER >= 0x1000005FL && !defined(OPENSSL_NO_ECDH)
3199 >  int nid = 0;
3200 >  EC_KEY *key = NULL;
3201  
3202 < /* Line 1806 of yacc.c  */
3203 < #line 622 "ircd_parser.y"
3202 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3203 >  {
3204 >    if ((nid = OBJ_sn2nid(yylval.string)) == 0)
3205 >    {
3206 >        conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- unknown curve name");
3207 >        break;
3208 >    }
3209 >
3210 >    if ((key = EC_KEY_new_by_curve_name(nid)) == NULL)
3211 >    {
3212 >      conf_error_report("Ignoring serverinfo::serverinfo_ssl_dh_elliptic_curve -- could not create curve");
3213 >      break;
3214 >    }
3215 >
3216 >    SSL_CTX_set_tmp_ecdh(ServerInfo.server_ctx, key);
3217 >    EC_KEY_free(key);
3218 > }
3219 > #endif
3220 > #endif
3221 > }
3222 > #line 3223 "conf_parser.c" /* yacc.c:1646  */
3223 >    break;
3224 >
3225 >  case 90:
3226 > #line 690 "conf_parser.y" /* yacc.c:1646  */
3227      {
3228    /* this isn't rehashable */
3229    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3230    {
3231      if (valid_servname(yylval.string))
3232 <      DupString(ServerInfo.name, yylval.string);
3232 >      ServerInfo.name = xstrdup(yylval.string);
3233      else
3234      {
3235 <      ilog(L_ERROR, "Ignoring serverinfo::name -- invalid name. Aborting.");
3235 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3236        exit(0);
3237      }
3238    }
3239   }
3240 + #line 3241 "conf_parser.c" /* yacc.c:1646  */
3241      break;
3242  
3243 <  case 73:
3244 <
3650 < /* Line 1806 of yacc.c  */
3651 < #line 637 "ircd_parser.y"
3243 >  case 91:
3244 > #line 705 "conf_parser.y" /* yacc.c:1646  */
3245      {
3246    /* this isn't rehashable */
3247    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3248    {
3249      if (valid_sid(yylval.string))
3250 <      DupString(ServerInfo.sid, yylval.string);
3250 >      ServerInfo.sid = xstrdup(yylval.string);
3251      else
3252      {
3253 <      ilog(L_ERROR, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3253 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3254        exit(0);
3255      }
3256    }
3257   }
3258 + #line 3259 "conf_parser.c" /* yacc.c:1646  */
3259      break;
3260  
3261 <  case 74:
3262 <
3669 < /* Line 1806 of yacc.c  */
3670 < #line 652 "ircd_parser.y"
3261 >  case 92:
3262 > #line 720 "conf_parser.y" /* yacc.c:1646  */
3263      {
3264    if (conf_parser_ctx.pass == 2)
3265    {
3266      MyFree(ServerInfo.description);
3267 <    DupString(ServerInfo.description,yylval.string);
3267 >    ServerInfo.description = xstrdup(yylval.string);
3268    }
3269   }
3270 + #line 3271 "conf_parser.c" /* yacc.c:1646  */
3271      break;
3272  
3273 <  case 75:
3274 <
3682 < /* Line 1806 of yacc.c  */
3683 < #line 661 "ircd_parser.y"
3273 >  case 93:
3274 > #line 729 "conf_parser.y" /* yacc.c:1646  */
3275      {
3276    if (conf_parser_ctx.pass == 2)
3277    {
3278      char *p;
3279  
3280 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3281 <      p = '\0';
3280 >    if ((p = strchr(yylval.string, ' ')))
3281 >      *p = '\0';
3282  
3283      MyFree(ServerInfo.network_name);
3284 <    DupString(ServerInfo.network_name, yylval.string);
3284 >    ServerInfo.network_name = xstrdup(yylval.string);
3285    }
3286   }
3287 + #line 3288 "conf_parser.c" /* yacc.c:1646  */
3288      break;
3289  
3290 <  case 76:
3291 <
3700 < /* Line 1806 of yacc.c  */
3701 < #line 675 "ircd_parser.y"
3290 >  case 94:
3291 > #line 743 "conf_parser.y" /* yacc.c:1646  */
3292      {
3293 <  if (conf_parser_ctx.pass == 2)
3704 <  {
3705 <    MyFree(ServerInfo.network_desc);
3706 <    DupString(ServerInfo.network_desc, yylval.string);
3707 <  }
3708 < }
3293 >  if (conf_parser_ctx.pass != 2)
3294      break;
3295  
3296 <  case 77:
3296 >  MyFree(ServerInfo.network_desc);
3297 >  ServerInfo.network_desc = xstrdup(yylval.string);
3298 > }
3299 > #line 3300 "conf_parser.c" /* yacc.c:1646  */
3300 >    break;
3301  
3302 < /* Line 1806 of yacc.c  */
3303 < #line 684 "ircd_parser.y"
3302 >  case 95:
3303 > #line 752 "conf_parser.y" /* yacc.c:1646  */
3304      {
3305    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3306    {
# Line 3724 | Line 3313 | yyreduce:
3313      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3314  
3315      if (getaddrinfo(yylval.string, NULL, &hints, &res))
3316 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
3316 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3317      else
3318      {
3319 <      assert(res != NULL);
3319 >      assert(res);
3320  
3321        memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3322        ServerInfo.ip.ss.ss_family = res->ai_family;
# Line 3738 | Line 3327 | yyreduce:
3327      }
3328    }
3329   }
3330 + #line 3331 "conf_parser.c" /* yacc.c:1646  */
3331      break;
3332  
3333 <  case 78:
3334 <
3745 < /* Line 1806 of yacc.c  */
3746 < #line 712 "ircd_parser.y"
3333 >  case 96:
3334 > #line 780 "conf_parser.y" /* yacc.c:1646  */
3335      {
3336   #ifdef IPV6
3337    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3757 | Line 3345 | yyreduce:
3345      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3346  
3347      if (getaddrinfo(yylval.string, NULL, &hints, &res))
3348 <      ilog(L_ERROR, "Invalid netmask for server vhost6(%s)", yylval.string);
3348 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3349      else
3350      {
3351 <      assert(res != NULL);
3351 >      assert(res);
3352  
3353        memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3354        ServerInfo.ip6.ss.ss_family = res->ai_family;
# Line 3772 | Line 3360 | yyreduce:
3360    }
3361   #endif
3362   }
3363 + #line 3364 "conf_parser.c" /* yacc.c:1646  */
3364      break;
3365  
3366 <  case 79:
3367 <
3779 < /* Line 1806 of yacc.c  */
3780 < #line 742 "ircd_parser.y"
3366 >  case 97:
3367 > #line 810 "conf_parser.y" /* yacc.c:1646  */
3368      {
3369 <  if (conf_parser_ctx.pass == 2)
3369 >  if (conf_parser_ctx.pass != 2)
3370 >    break;
3371 >
3372 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3373    {
3374 <    recalc_fdlimit(NULL);
3374 >    char buf[IRCD_BUFSIZE] = "";
3375  
3376 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3377 <    {
3378 <      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);
3376 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3377 >    conf_error_report(buf);
3378 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3379    }
3380 +  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3381 +  {
3382 +    char buf[IRCD_BUFSIZE] = "";
3383 +
3384 +    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3385 +    conf_error_report(buf);
3386 +    ServerInfo.max_clients = MAXCLIENTS_MAX;
3387 +  }
3388 +  else
3389 +    ServerInfo.max_clients = (yyvsp[-1].number);
3390   }
3391 + #line 3392 "conf_parser.c" /* yacc.c:1646  */
3392      break;
3393  
3394 <  case 80:
3395 <
3806 < /* Line 1806 of yacc.c  */
3807 < #line 765 "ircd_parser.y"
3394 >  case 98:
3395 > #line 835 "conf_parser.y" /* yacc.c:1646  */
3396      {
3397 <  if (conf_parser_ctx.pass == 2)
3810 <    ServerInfo.hub = yylval.number;
3811 < }
3397 >  if (conf_parser_ctx.pass != 2)
3398      break;
3399  
3400 <  case 88:
3401 <
3402 < /* Line 1806 of yacc.c  */
3403 < #line 780 "ircd_parser.y"
3404 <    {
3405 <  if (conf_parser_ctx.pass == 2)
3400 >  if ((yyvsp[-1].number) < 9)
3401 >  {
3402 >    conf_error_report("max_nick_length too low, setting to 9");
3403 >    ServerInfo.max_nick_length = 9;
3404 >  }
3405 >  else if ((yyvsp[-1].number) > NICKLEN)
3406    {
3407 <    MyFree(AdminInfo.name);
3408 <    DupString(AdminInfo.name, yylval.string);
3407 >    char buf[IRCD_BUFSIZE] = "";
3408 >
3409 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3410 >    conf_error_report(buf);
3411 >    ServerInfo.max_nick_length = NICKLEN;
3412    }
3413 +  else
3414 +    ServerInfo.max_nick_length = (yyvsp[-1].number);
3415   }
3416 + #line 3417 "conf_parser.c" /* yacc.c:1646  */
3417      break;
3418  
3419 <  case 89:
3420 <
3829 < /* Line 1806 of yacc.c  */
3830 < #line 789 "ircd_parser.y"
3419 >  case 99:
3420 > #line 857 "conf_parser.y" /* yacc.c:1646  */
3421      {
3422 <  if (conf_parser_ctx.pass == 2)
3422 >  if (conf_parser_ctx.pass != 2)
3423 >    break;
3424 >
3425 >  if ((yyvsp[-1].number) < 80)
3426    {
3427 <    MyFree(AdminInfo.email);
3428 <    DupString(AdminInfo.email, yylval.string);
3427 >    conf_error_report("max_topic_length too low, setting to 80");
3428 >    ServerInfo.max_topic_length = 80;
3429    }
3430 +  else if ((yyvsp[-1].number) > TOPICLEN)
3431 +  {
3432 +    char buf[IRCD_BUFSIZE] = "";
3433 +
3434 +    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3435 +    conf_error_report(buf);
3436 +    ServerInfo.max_topic_length = TOPICLEN;
3437 +  }
3438 +  else
3439 +    ServerInfo.max_topic_length = (yyvsp[-1].number);
3440   }
3441 + #line 3442 "conf_parser.c" /* yacc.c:1646  */
3442      break;
3443  
3444 <  case 90:
3445 <
3842 < /* Line 1806 of yacc.c  */
3843 < #line 798 "ircd_parser.y"
3444 >  case 100:
3445 > #line 879 "conf_parser.y" /* yacc.c:1646  */
3446      {
3447    if (conf_parser_ctx.pass == 2)
3448 <  {
3847 <    MyFree(AdminInfo.description);
3848 <    DupString(AdminInfo.description, yylval.string);
3849 <  }
3448 >    ServerInfo.hub = yylval.number;
3449   }
3450 + #line 3451 "conf_parser.c" /* yacc.c:1646  */
3451      break;
3452  
3453 <  case 107:
3454 <
3855 < /* Line 1806 of yacc.c  */
3856 < #line 825 "ircd_parser.y"
3453 >  case 108:
3454 > #line 896 "conf_parser.y" /* yacc.c:1646  */
3455      {
3456 <                        }
3456 >  if (conf_parser_ctx.pass != 2)
3457      break;
3458  
3459 <  case 108:
3460 <
3461 < /* Line 1806 of yacc.c  */
3462 < #line 829 "ircd_parser.y"
3865 <    {
3866 <                        }
3459 >  MyFree(AdminInfo.name);
3460 >  AdminInfo.name = xstrdup(yylval.string);
3461 > }
3462 > #line 3463 "conf_parser.c" /* yacc.c:1646  */
3463      break;
3464  
3465    case 109:
3466 <
3871 < /* Line 1806 of yacc.c  */
3872 < #line 833 "ircd_parser.y"
3466 > #line 905 "conf_parser.y" /* yacc.c:1646  */
3467      {
3468 <  if (conf_parser_ctx.pass == 2)
3469 <    strlcpy(ConfigLoggingEntry.userlog, yylval.string,
3470 <            sizeof(ConfigLoggingEntry.userlog));
3468 >  if (conf_parser_ctx.pass != 2)
3469 >    break;
3470 >
3471 >  MyFree(AdminInfo.email);
3472 >  AdminInfo.email = xstrdup(yylval.string);
3473   }
3474 + #line 3475 "conf_parser.c" /* yacc.c:1646  */
3475      break;
3476  
3477    case 110:
3478 <
3882 < /* Line 1806 of yacc.c  */
3883 < #line 840 "ircd_parser.y"
3478 > #line 914 "conf_parser.y" /* yacc.c:1646  */
3479      {
3480 <  if (conf_parser_ctx.pass == 2)
3481 <    strlcpy(ConfigLoggingEntry.failed_operlog, yylval.string,
3482 <            sizeof(ConfigLoggingEntry.failed_operlog));
3480 >  if (conf_parser_ctx.pass != 2)
3481 >    break;
3482 >
3483 >  MyFree(AdminInfo.description);
3484 >  AdminInfo.description = xstrdup(yylval.string);
3485   }
3486 + #line 3487 "conf_parser.c" /* yacc.c:1646  */
3487      break;
3488  
3489    case 111:
3490 <
3893 < /* Line 1806 of yacc.c  */
3894 < #line 847 "ircd_parser.y"
3490 > #line 926 "conf_parser.y" /* yacc.c:1646  */
3491      {
3492    if (conf_parser_ctx.pass == 2)
3493 <    strlcpy(ConfigLoggingEntry.operlog, yylval.string,
3898 <            sizeof(ConfigLoggingEntry.operlog));
3493 >    reset_block_state();
3494   }
3495 + #line 3496 "conf_parser.c" /* yacc.c:1646  */
3496      break;
3497  
3498    case 112:
3499 <
3904 < /* Line 1806 of yacc.c  */
3905 < #line 854 "ircd_parser.y"
3499 > #line 930 "conf_parser.y" /* yacc.c:1646  */
3500      {
3501 <  if (conf_parser_ctx.pass == 2)
3502 <    strlcpy(ConfigLoggingEntry.operspylog, yylval.string,
3503 <            sizeof(ConfigLoggingEntry.operspylog));
3910 < }
3501 >  dlink_node *ptr = NULL;
3502 >
3503 >  if (conf_parser_ctx.pass != 2)
3504      break;
3505  
3506 <  case 113:
3506 >  if (!block_state.file.buf[0])
3507 >    break;
3508  
3509 < /* Line 1806 of yacc.c  */
3510 < #line 861 "ircd_parser.y"
3509 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3510 >    motd_add(ptr->data, block_state.file.buf);
3511 > }
3512 > #line 3513 "conf_parser.c" /* yacc.c:1646  */
3513 >    break;
3514 >
3515 >  case 118:
3516 > #line 947 "conf_parser.y" /* yacc.c:1646  */
3517      {
3518    if (conf_parser_ctx.pass == 2)
3519 <    strlcpy(ConfigLoggingEntry.glinelog, yylval.string,
3920 <            sizeof(ConfigLoggingEntry.glinelog));
3519 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3520   }
3521 + #line 3522 "conf_parser.c" /* yacc.c:1646  */
3522      break;
3523  
3524 <  case 114:
3525 <
3926 < /* Line 1806 of yacc.c  */
3927 < #line 868 "ircd_parser.y"
3524 >  case 119:
3525 > #line 953 "conf_parser.y" /* yacc.c:1646  */
3526      {
3527    if (conf_parser_ctx.pass == 2)
3528 <    strlcpy(ConfigLoggingEntry.klinelog, yylval.string,
3931 <            sizeof(ConfigLoggingEntry.klinelog));
3528 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3529   }
3530 + #line 3531 "conf_parser.c" /* yacc.c:1646  */
3531      break;
3532  
3533 <  case 115:
3534 <
3937 < /* Line 1806 of yacc.c  */
3938 < #line 875 "ircd_parser.y"
3533 >  case 126:
3534 > #line 968 "conf_parser.y" /* yacc.c:1646  */
3535      {
3536    if (conf_parser_ctx.pass == 2)
3537 <    strlcpy(ConfigLoggingEntry.ioerrlog, yylval.string,
3942 <            sizeof(ConfigLoggingEntry.ioerrlog));
3537 >    ConfigLoggingEntry.use_logging = yylval.number;
3538   }
3539 + #line 3540 "conf_parser.c" /* yacc.c:1646  */
3540      break;
3541  
3542 <  case 116:
3543 <
3948 < /* Line 1806 of yacc.c  */
3949 < #line 882 "ircd_parser.y"
3542 >  case 127:
3543 > #line 974 "conf_parser.y" /* yacc.c:1646  */
3544      {
3545    if (conf_parser_ctx.pass == 2)
3546 <    strlcpy(ConfigLoggingEntry.killlog, yylval.string,
3953 <            sizeof(ConfigLoggingEntry.killlog));
3546 >    reset_block_state();
3547   }
3548 + #line 3549 "conf_parser.c" /* yacc.c:1646  */
3549      break;
3550  
3551 <  case 117:
3551 >  case 128:
3552 > #line 978 "conf_parser.y" /* yacc.c:1646  */
3553 >    {
3554 >  if (conf_parser_ctx.pass != 2)
3555 >    break;
3556  
3557 < /* Line 1806 of yacc.c  */
3558 < #line 889 "ircd_parser.y"
3559 <    {
3962 <  if (conf_parser_ctx.pass == 2)
3963 <    set_log_level(L_CRIT);
3557 >  if (block_state.type.value && block_state.file.buf[0])
3558 >    log_set_file(block_state.type.value, block_state.size.value,
3559 >                 block_state.file.buf);
3560   }
3561 + #line 3562 "conf_parser.c" /* yacc.c:1646  */
3562      break;
3563  
3564 <  case 118:
3564 >  case 135:
3565 > #line 994 "conf_parser.y" /* yacc.c:1646  */
3566 >    {
3567 >  if (conf_parser_ctx.pass != 2)
3568 >    break;
3569 >
3570 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3571 > }
3572 > #line 3573 "conf_parser.c" /* yacc.c:1646  */
3573 >    break;
3574  
3575 < /* Line 1806 of yacc.c  */
3576 < #line 893 "ircd_parser.y"
3575 >  case 136:
3576 > #line 1002 "conf_parser.y" /* yacc.c:1646  */
3577      {
3578 <  if (conf_parser_ctx.pass == 2)
3973 <    set_log_level(L_ERROR);
3578 >  block_state.size.value = (yyvsp[-1].number);
3579   }
3580 + #line 3581 "conf_parser.c" /* yacc.c:1646  */
3581      break;
3582  
3583 <  case 119:
3583 >  case 137:
3584 > #line 1005 "conf_parser.y" /* yacc.c:1646  */
3585 >    {
3586 >  block_state.size.value = 0;
3587 > }
3588 > #line 3589 "conf_parser.c" /* yacc.c:1646  */
3589 >    break;
3590  
3591 < /* Line 1806 of yacc.c  */
3592 < #line 897 "ircd_parser.y"
3591 >  case 138:
3592 > #line 1010 "conf_parser.y" /* yacc.c:1646  */
3593      {
3594    if (conf_parser_ctx.pass == 2)
3595 <    set_log_level(L_WARN);
3595 >    block_state.type.value = 0;
3596   }
3597 + #line 3598 "conf_parser.c" /* yacc.c:1646  */
3598      break;
3599  
3600 <  case 120:
3601 <
3989 < /* Line 1806 of yacc.c  */
3990 < #line 901 "ircd_parser.y"
3600 >  case 142:
3601 > #line 1017 "conf_parser.y" /* yacc.c:1646  */
3602      {
3603    if (conf_parser_ctx.pass == 2)
3604 <    set_log_level(L_NOTICE);
3604 >    block_state.type.value = LOG_TYPE_USER;
3605   }
3606 + #line 3607 "conf_parser.c" /* yacc.c:1646  */
3607      break;
3608  
3609 <  case 121:
3610 <
3999 < /* Line 1806 of yacc.c  */
4000 < #line 905 "ircd_parser.y"
3609 >  case 143:
3610 > #line 1021 "conf_parser.y" /* yacc.c:1646  */
3611      {
3612    if (conf_parser_ctx.pass == 2)
3613 <    set_log_level(L_TRACE);
3613 >    block_state.type.value = LOG_TYPE_OPER;
3614   }
3615 + #line 3616 "conf_parser.c" /* yacc.c:1646  */
3616      break;
3617  
3618 <  case 122:
3619 <
4009 < /* Line 1806 of yacc.c  */
4010 < #line 909 "ircd_parser.y"
3618 >  case 144:
3619 > #line 1025 "conf_parser.y" /* yacc.c:1646  */
3620      {
3621    if (conf_parser_ctx.pass == 2)
3622 <    set_log_level(L_INFO);
3622 >    block_state.type.value = LOG_TYPE_GLINE;
3623   }
3624 + #line 3625 "conf_parser.c" /* yacc.c:1646  */
3625      break;
3626  
3627 <  case 123:
3628 <
4019 < /* Line 1806 of yacc.c  */
4020 < #line 913 "ircd_parser.y"
3627 >  case 145:
3628 > #line 1029 "conf_parser.y" /* yacc.c:1646  */
3629      {
3630    if (conf_parser_ctx.pass == 2)
3631 <    set_log_level(L_DEBUG);
3631 >    block_state.type.value = LOG_TYPE_XLINE;
3632   }
3633 + #line 3634 "conf_parser.c" /* yacc.c:1646  */
3634      break;
3635  
3636 <  case 124:
3637 <
4029 < /* Line 1806 of yacc.c  */
4030 < #line 919 "ircd_parser.y"
3636 >  case 146:
3637 > #line 1033 "conf_parser.y" /* yacc.c:1646  */
3638      {
3639    if (conf_parser_ctx.pass == 2)
3640 <    ConfigLoggingEntry.use_logging = yylval.number;
3640 >    block_state.type.value = LOG_TYPE_RESV;
3641   }
3642 + #line 3643 "conf_parser.c" /* yacc.c:1646  */
3643      break;
3644  
3645 <  case 125:
3645 >  case 147:
3646 > #line 1037 "conf_parser.y" /* yacc.c:1646  */
3647 >    {
3648 >  if (conf_parser_ctx.pass == 2)
3649 >    block_state.type.value = LOG_TYPE_DLINE;
3650 > }
3651 > #line 3652 "conf_parser.c" /* yacc.c:1646  */
3652 >    break;
3653  
3654 < /* Line 1806 of yacc.c  */
3655 < #line 928 "ircd_parser.y"
3654 >  case 148:
3655 > #line 1041 "conf_parser.y" /* yacc.c:1646  */
3656      {
3657    if (conf_parser_ctx.pass == 2)
3658 <  {
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 <  }
3658 >    block_state.type.value = LOG_TYPE_KLINE;
3659   }
3660 + #line 3661 "conf_parser.c" /* yacc.c:1646  */
3661      break;
3662  
3663 <  case 126:
3663 >  case 149:
3664 > #line 1045 "conf_parser.y" /* yacc.c:1646  */
3665 >    {
3666 >  if (conf_parser_ctx.pass == 2)
3667 >    block_state.type.value = LOG_TYPE_KILL;
3668 > }
3669 > #line 3670 "conf_parser.c" /* yacc.c:1646  */
3670 >    break;
3671  
3672 < /* Line 1806 of yacc.c  */
3673 < #line 941 "ircd_parser.y"
3672 >  case 150:
3673 > #line 1049 "conf_parser.y" /* yacc.c:1646  */
3674      {
3675    if (conf_parser_ctx.pass == 2)
3676 <  {
3677 <    struct CollectItem *yy_tmp;
3678 <    dlink_node *ptr;
3679 <    dlink_node *next_ptr;
3676 >    block_state.type.value = LOG_TYPE_DEBUG;
3677 > }
3678 > #line 3679 "conf_parser.c" /* yacc.c:1646  */
3679 >    break;
3680  
3681 <    conf_add_class_to_conf(yy_conf, class_name);
3681 >  case 151:
3682 > #line 1059 "conf_parser.y" /* yacc.c:1646  */
3683 >    {
3684 >  if (conf_parser_ctx.pass != 2)
3685 >    break;
3686  
3687 <    /* Now, make sure there is a copy of the "base" given oper
3688 <     * block in each of the collected copies
3689 <     */
3687 >  reset_block_state();
3688 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3689 > }
3690 > #line 3691 "conf_parser.c" /* yacc.c:1646  */
3691 >    break;
3692  
3693 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3693 >  case 152:
3694 > #line 1066 "conf_parser.y" /* yacc.c:1646  */
3695      {
3696 <      struct AccessItem *new_aconf;
4076 <      struct ConfItem *new_conf;
4077 <      yy_tmp = ptr->data;
3696 >  dlink_node *ptr = NULL;
3697  
3698 <      new_conf = make_conf_item(OPER_TYPE);
3699 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3698 >  if (conf_parser_ctx.pass != 2)
3699 >    break;
3700  
3701 <      new_aconf->flags = yy_aconf->flags;
3701 >  if (!block_state.name.buf[0])
3702 >    break;
3703 > #ifdef HAVE_LIBCRYPTO
3704 >  if (!block_state.file.buf[0] &&
3705 >      !block_state.rpass.buf[0])
3706 >    break;
3707 > #else
3708 >  if (!block_state.rpass.buf[0])
3709 >    break;
3710 > #endif
3711  
3712 <      if (yy_conf->name != NULL)
3713 <        DupString(new_conf->name, yy_conf->name);
3714 <      if (yy_tmp->user != NULL)
3715 <        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);
3712 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3713 >  {
3714 >    struct MaskItem *conf = NULL;
3715 >    struct split_nuh_item nuh;
3716  
3717 <      new_aconf->port = yy_aconf->port;
3718 < #ifdef HAVE_LIBCRYPTO
3719 <      if (yy_aconf->rsa_public_key_file != NULL)
3720 <      {
3721 <        BIO *file;
3717 >    nuh.nuhmask  = ptr->data;
3718 >    nuh.nickptr  = NULL;
3719 >    nuh.userptr  = block_state.user.buf;
3720 >    nuh.hostptr  = block_state.host.buf;
3721 >    nuh.nicksize = 0;
3722 >    nuh.usersize = sizeof(block_state.user.buf);
3723 >    nuh.hostsize = sizeof(block_state.host.buf);
3724 >    split_nuh(&nuh);
3725  
3726 <        DupString(new_aconf->rsa_public_key_file,
3727 <                  yy_aconf->rsa_public_key_file);
3726 >    conf         = conf_make(CONF_OPER);
3727 >    conf->name   = xstrdup(block_state.name.buf);
3728 >    conf->user   = xstrdup(block_state.user.buf);
3729 >    conf->host   = xstrdup(block_state.host.buf);
3730 >
3731 >    if (block_state.cert.buf[0])
3732 >      conf->certfp = xstrdup(block_state.cert.buf);
3733 >
3734 >    if (block_state.rpass.buf[0])
3735 >      conf->passwd = xstrdup(block_state.rpass.buf);
3736 >
3737 >    conf->flags = block_state.flags.value;
3738 >    conf->modes = block_state.modes.value;
3739 >    conf->port  = block_state.port.value;
3740 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3741  
3742 <        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
3742 >    conf_add_class_to_conf(conf, block_state.class.buf);
3743  
3744   #ifdef HAVE_LIBCRYPTO
3745 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3746 <          && yy_tmp->host)
3747 < #else
3748 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3749 < #endif
3745 >    if (block_state.file.buf[0])
3746 >    {
3747 >      BIO *file = NULL;
3748 >      RSA *pkey = NULL;
3749 >
3750 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3751        {
3752 <        conf_add_class_to_conf(new_conf, class_name);
3753 <        if (yy_tmp->name != NULL)
4124 <          DupString(new_conf->name, yy_tmp->name);
3752 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3753 >        break;
3754        }
3755  
3756 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3757 <      free_collect_item(yy_tmp);
4129 <    }
4130 <
4131 <    yy_conf = NULL;
4132 <    yy_aconf = NULL;
3756 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3757 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3758  
3759 <
3760 <    MyFree(class_name);
3761 <    class_name = NULL;
3759 >      conf->rsa_public_key = pkey;
3760 >      BIO_set_close(file, BIO_CLOSE);
3761 >      BIO_free(file);
3762 >    }
3763 > #endif /* HAVE_LIBCRYPTO */
3764    }
3765   }
3766 + #line 3767 "conf_parser.c" /* yacc.c:1646  */
3767      break;
3768  
3769 <  case 140:
3770 <
4143 < /* Line 1806 of yacc.c  */
4144 < #line 1028 "ircd_parser.y"
3769 >  case 166:
3770 > #line 1152 "conf_parser.y" /* yacc.c:1646  */
3771      {
3772    if (conf_parser_ctx.pass == 2)
3773 <  {
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 <  }
3773 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3774   }
3775 + #line 3776 "conf_parser.c" /* yacc.c:1646  */
3776      break;
3777  
3778 <  case 141:
3779 <
4159 < /* Line 1806 of yacc.c  */
4160 < #line 1040 "ircd_parser.y"
3778 >  case 167:
3779 > #line 1158 "conf_parser.y" /* yacc.c:1646  */
3780      {
3781    if (conf_parser_ctx.pass == 2)
3782 <  {
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 <  }
3782 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3783   }
3784 + #line 3785 "conf_parser.c" /* yacc.c:1646  */
3785      break;
3786  
3787 <  case 142:
3788 <
4175 < /* Line 1806 of yacc.c  */
4176 < #line 1052 "ircd_parser.y"
3787 >  case 168:
3788 > #line 1164 "conf_parser.y" /* yacc.c:1646  */
3789      {
3790    if (conf_parser_ctx.pass == 2)
3791 <  {
3792 <    struct split_nuh_item nuh;
3793 <
3794 <    nuh.nuhmask  = yylval.string;
4183 <    nuh.nickptr  = NULL;
4184 <    nuh.userptr  = userbuf;
4185 <    nuh.hostptr  = hostbuf;
3791 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3792 > }
3793 > #line 3794 "conf_parser.c" /* yacc.c:1646  */
3794 >    break;
3795  
3796 <    nuh.nicksize = 0;
3797 <    nuh.usersize = sizeof(userbuf);
3798 <    nuh.hostsize = sizeof(hostbuf);
3796 >  case 169:
3797 > #line 1170 "conf_parser.y" /* yacc.c:1646  */
3798 >    {
3799 >  if (conf_parser_ctx.pass != 2)
3800 >    break;
3801  
3802 <    split_nuh(&nuh);
3802 >  if (yylval.number)
3803 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3804 >  else
3805 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3806 > }
3807 > #line 3808 "conf_parser.c" /* yacc.c:1646  */
3808 >    break;
3809  
3810 <    if (yy_aconf->user == NULL)
3810 >  case 170:
3811 > #line 1181 "conf_parser.y" /* yacc.c:1646  */
3812      {
3813 <      DupString(yy_aconf->user, userbuf);
3814 <      DupString(yy_aconf->host, hostbuf);
3815 <    }
3816 <    else
3813 >  if (conf_parser_ctx.pass == 2)
3814 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3815 > }
3816 > #line 3817 "conf_parser.c" /* yacc.c:1646  */
3817 >    break;
3818 >
3819 >  case 171:
3820 > #line 1187 "conf_parser.y" /* yacc.c:1646  */
3821      {
3822 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3822 >  if (conf_parser_ctx.pass == 2)
3823 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3824 > }
3825 > #line 3826 "conf_parser.c" /* yacc.c:1646  */
3826 >    break;
3827  
3828 <      DupString(yy_tmp->user, userbuf);
3829 <      DupString(yy_tmp->host, hostbuf);
3828 >  case 172:
3829 > #line 1193 "conf_parser.y" /* yacc.c:1646  */
3830 >    {
3831 >  if (conf_parser_ctx.pass != 2)
3832 >    break;
3833  
3834 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3835 <    }
3836 <  }
3834 >  if (yylval.number)
3835 >    block_state.flags.value |= CONF_FLAGS_SSL;
3836 >  else
3837 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3838   }
3839 + #line 3840 "conf_parser.c" /* yacc.c:1646  */
3840      break;
3841  
3842 <  case 143:
3843 <
4213 < /* Line 1806 of yacc.c  */
4214 < #line 1086 "ircd_parser.y"
3842 >  case 173:
3843 > #line 1204 "conf_parser.y" /* yacc.c:1646  */
3844      {
3845    if (conf_parser_ctx.pass == 2)
3846 <  {
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 <  }
3846 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3847   }
3848 + #line 3849 "conf_parser.c" /* yacc.c:1646  */
3849      break;
3850  
3851 <  case 144:
3852 <
4229 < /* Line 1806 of yacc.c  */
4230 < #line 1098 "ircd_parser.y"
3851 >  case 174:
3852 > #line 1210 "conf_parser.y" /* yacc.c:1646  */
3853      {
3854    if (conf_parser_ctx.pass == 2)
3855 <  {
4234 <    if (yylval.number)
4235 <      SetConfEncrypted(yy_aconf);
4236 <    else
4237 <      ClearConfEncrypted(yy_aconf);
4238 <  }
3855 >    block_state.modes.value = 0;
3856   }
3857 + #line 3858 "conf_parser.c" /* yacc.c:1646  */
3858      break;
3859  
3860 <  case 145:
3861 <
4244 < /* Line 1806 of yacc.c  */
4245 < #line 1109 "ircd_parser.y"
3860 >  case 178:
3861 > #line 1217 "conf_parser.y" /* yacc.c:1646  */
3862      {
4247 #ifdef HAVE_LIBCRYPTO
3863    if (conf_parser_ctx.pass == 2)
3864 <  {
3865 <    BIO *file;
3864 >    block_state.modes.value |= UMODE_BOTS;
3865 > }
3866 > #line 3867 "conf_parser.c" /* yacc.c:1646  */
3867 >    break;
3868  
3869 <    if (yy_aconf->rsa_public_key != NULL)
3869 >  case 179:
3870 > #line 1221 "conf_parser.y" /* yacc.c:1646  */
3871      {
3872 <      RSA_free(yy_aconf->rsa_public_key);
3873 <      yy_aconf->rsa_public_key = NULL;
3874 <    }
3872 >  if (conf_parser_ctx.pass == 2)
3873 >    block_state.modes.value |= UMODE_CCONN;
3874 > }
3875 > #line 3876 "conf_parser.c" /* yacc.c:1646  */
3876 >    break;
3877  
3878 <    if (yy_aconf->rsa_public_key_file != NULL)
3878 >  case 180:
3879 > #line 1225 "conf_parser.y" /* yacc.c:1646  */
3880      {
3881 <      MyFree(yy_aconf->rsa_public_key_file);
3882 <      yy_aconf->rsa_public_key_file = NULL;
3883 <    }
3884 <
3885 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
4265 <    file = BIO_new_file(yylval.string, "r");
3881 >  if (conf_parser_ctx.pass == 2)
3882 >    block_state.modes.value |= UMODE_DEAF;
3883 > }
3884 > #line 3885 "conf_parser.c" /* yacc.c:1646  */
3885 >    break;
3886  
3887 <    if (file == NULL)
3887 >  case 181:
3888 > #line 1229 "conf_parser.y" /* yacc.c:1646  */
3889      {
3890 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3891 <      break;
3892 <    }
3893 <
3894 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3890 >  if (conf_parser_ctx.pass == 2)
3891 >    block_state.modes.value |= UMODE_DEBUG;
3892 > }
3893 > #line 3894 "conf_parser.c" /* yacc.c:1646  */
3894 >    break;
3895  
3896 <    if (yy_aconf->rsa_public_key == NULL)
3896 >  case 182:
3897 > #line 1233 "conf_parser.y" /* yacc.c:1646  */
3898      {
3899 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3900 <      break;
4279 <    }
4280 <
4281 <    BIO_set_close(file, BIO_CLOSE);
4282 <    BIO_free(file);
4283 <  }
4284 < #endif /* HAVE_LIBCRYPTO */
3899 >  if (conf_parser_ctx.pass == 2)
3900 >    block_state.modes.value |= UMODE_FULL;
3901   }
3902 + #line 3903 "conf_parser.c" /* yacc.c:1646  */
3903      break;
3904  
3905 <  case 146:
3906 <
4290 < /* Line 1806 of yacc.c  */
4291 < #line 1151 "ircd_parser.y"
3905 >  case 183:
3906 > #line 1237 "conf_parser.y" /* yacc.c:1646  */
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909 <  {
4295 <    MyFree(class_name);
4296 <    DupString(class_name, yylval.string);
4297 <  }
3909 >    block_state.modes.value |= UMODE_HIDDEN;
3910   }
3911 + #line 3912 "conf_parser.c" /* yacc.c:1646  */
3912      break;
3913  
3914 <  case 147:
3915 <
4303 < /* Line 1806 of yacc.c  */
4304 < #line 1160 "ircd_parser.y"
3914 >  case 184:
3915 > #line 1241 "conf_parser.y" /* yacc.c:1646  */
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918 <    yy_aconf->modes = 0;
3918 >    block_state.modes.value |= UMODE_HIDECHANS;
3919   }
3920 + #line 3921 "conf_parser.c" /* yacc.c:1646  */
3921      break;
3922  
3923 <  case 151:
3924 <
4313 < /* Line 1806 of yacc.c  */
4314 < #line 1167 "ircd_parser.y"
3923 >  case 185:
3924 > #line 1245 "conf_parser.y" /* yacc.c:1646  */
3925      {
3926    if (conf_parser_ctx.pass == 2)
3927 <    yy_aconf->modes |= UMODE_BOTS;
3927 >    block_state.modes.value |= UMODE_HIDEIDLE;
3928   }
3929 + #line 3930 "conf_parser.c" /* yacc.c:1646  */
3930      break;
3931  
3932 <  case 152:
3933 <
4323 < /* Line 1806 of yacc.c  */
4324 < #line 1171 "ircd_parser.y"
3932 >  case 186:
3933 > #line 1249 "conf_parser.y" /* yacc.c:1646  */
3934      {
3935    if (conf_parser_ctx.pass == 2)
3936 <    yy_aconf->modes |= UMODE_CCONN;
3936 >    block_state.modes.value |= UMODE_SKILL;
3937   }
3938 + #line 3939 "conf_parser.c" /* yacc.c:1646  */
3939      break;
3940  
3941 <  case 153:
3942 <
4333 < /* Line 1806 of yacc.c  */
4334 < #line 1175 "ircd_parser.y"
3941 >  case 187:
3942 > #line 1253 "conf_parser.y" /* yacc.c:1646  */
3943      {
3944    if (conf_parser_ctx.pass == 2)
3945 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3945 >    block_state.modes.value |= UMODE_NCHANGE;
3946   }
3947 + #line 3948 "conf_parser.c" /* yacc.c:1646  */
3948      break;
3949  
3950 <  case 154:
3951 <
4343 < /* Line 1806 of yacc.c  */
4344 < #line 1179 "ircd_parser.y"
3950 >  case 188:
3951 > #line 1257 "conf_parser.y" /* yacc.c:1646  */
3952      {
3953    if (conf_parser_ctx.pass == 2)
3954 <    yy_aconf->modes |= UMODE_DEAF;
3954 >    block_state.modes.value |= UMODE_REJ;
3955   }
3956 + #line 3957 "conf_parser.c" /* yacc.c:1646  */
3957      break;
3958  
3959 <  case 155:
3960 <
4353 < /* Line 1806 of yacc.c  */
4354 < #line 1183 "ircd_parser.y"
3959 >  case 189:
3960 > #line 1261 "conf_parser.y" /* yacc.c:1646  */
3961      {
3962    if (conf_parser_ctx.pass == 2)
3963 <    yy_aconf->modes |= UMODE_DEBUG;
3963 >    block_state.modes.value |= UMODE_UNAUTH;
3964   }
3965 + #line 3966 "conf_parser.c" /* yacc.c:1646  */
3966      break;
3967  
3968 <  case 156:
3969 <
4363 < /* Line 1806 of yacc.c  */
4364 < #line 1187 "ircd_parser.y"
3968 >  case 190:
3969 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
3970      {
3971    if (conf_parser_ctx.pass == 2)
3972 <    yy_aconf->modes |= UMODE_FULL;
3972 >    block_state.modes.value |= UMODE_SPY;
3973   }
3974 + #line 3975 "conf_parser.c" /* yacc.c:1646  */
3975      break;
3976  
3977 <  case 157:
3978 <
4373 < /* Line 1806 of yacc.c  */
4374 < #line 1191 "ircd_parser.y"
3977 >  case 191:
3978 > #line 1269 "conf_parser.y" /* yacc.c:1646  */
3979      {
3980    if (conf_parser_ctx.pass == 2)
3981 <    yy_aconf->modes |= UMODE_SKILL;
3981 >    block_state.modes.value |= UMODE_EXTERNAL;
3982   }
3983 + #line 3984 "conf_parser.c" /* yacc.c:1646  */
3984      break;
3985  
3986 <  case 158:
3987 <
4383 < /* Line 1806 of yacc.c  */
4384 < #line 1195 "ircd_parser.y"
3986 >  case 192:
3987 > #line 1273 "conf_parser.y" /* yacc.c:1646  */
3988      {
3989    if (conf_parser_ctx.pass == 2)
3990 <    yy_aconf->modes |= UMODE_NCHANGE;
3990 >    block_state.modes.value |= UMODE_SERVNOTICE;
3991   }
3992 + #line 3993 "conf_parser.c" /* yacc.c:1646  */
3993      break;
3994  
3995 <  case 159:
3996 <
4393 < /* Line 1806 of yacc.c  */
4394 < #line 1199 "ircd_parser.y"
3995 >  case 193:
3996 > #line 1277 "conf_parser.y" /* yacc.c:1646  */
3997      {
3998    if (conf_parser_ctx.pass == 2)
3999 <    yy_aconf->modes |= UMODE_REJ;
3999 >    block_state.modes.value |= UMODE_INVISIBLE;
4000   }
4001 + #line 4002 "conf_parser.c" /* yacc.c:1646  */
4002      break;
4003  
4004 <  case 160:
4005 <
4403 < /* Line 1806 of yacc.c  */
4404 < #line 1203 "ircd_parser.y"
4004 >  case 194:
4005 > #line 1281 "conf_parser.y" /* yacc.c:1646  */
4006      {
4007    if (conf_parser_ctx.pass == 2)
4008 <    yy_aconf->modes |= UMODE_UNAUTH;
4008 >    block_state.modes.value |= UMODE_WALLOP;
4009   }
4010 + #line 4011 "conf_parser.c" /* yacc.c:1646  */
4011      break;
4012  
4013 <  case 161:
4014 <
4413 < /* Line 1806 of yacc.c  */
4414 < #line 1207 "ircd_parser.y"
4013 >  case 195:
4014 > #line 1285 "conf_parser.y" /* yacc.c:1646  */
4015      {
4016    if (conf_parser_ctx.pass == 2)
4017 <    yy_aconf->modes |= UMODE_SPY;
4017 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4018   }
4019 + #line 4020 "conf_parser.c" /* yacc.c:1646  */
4020      break;
4021  
4022 <  case 162:
4023 <
4423 < /* Line 1806 of yacc.c  */
4424 < #line 1211 "ircd_parser.y"
4022 >  case 196:
4023 > #line 1289 "conf_parser.y" /* yacc.c:1646  */
4024      {
4025    if (conf_parser_ctx.pass == 2)
4026 <    yy_aconf->modes |= UMODE_EXTERNAL;
4026 >    block_state.modes.value |= UMODE_CALLERID;
4027   }
4028 + #line 4029 "conf_parser.c" /* yacc.c:1646  */
4029      break;
4030  
4031 <  case 163:
4032 <
4433 < /* Line 1806 of yacc.c  */
4434 < #line 1215 "ircd_parser.y"
4031 >  case 197:
4032 > #line 1293 "conf_parser.y" /* yacc.c:1646  */
4033      {
4034    if (conf_parser_ctx.pass == 2)
4035 <    yy_aconf->modes |= UMODE_OPERWALL;
4035 >    block_state.modes.value |= UMODE_LOCOPS;
4036   }
4037 + #line 4038 "conf_parser.c" /* yacc.c:1646  */
4038      break;
4039  
4040 <  case 164:
4041 <
4443 < /* Line 1806 of yacc.c  */
4444 < #line 1219 "ircd_parser.y"
4040 >  case 198:
4041 > #line 1297 "conf_parser.y" /* yacc.c:1646  */
4042      {
4043    if (conf_parser_ctx.pass == 2)
4044 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4044 >    block_state.modes.value |= UMODE_REGONLY;
4045   }
4046 + #line 4047 "conf_parser.c" /* yacc.c:1646  */
4047      break;
4048  
4049 <  case 165:
4050 <
4453 < /* Line 1806 of yacc.c  */
4454 < #line 1223 "ircd_parser.y"
4049 >  case 199:
4050 > #line 1301 "conf_parser.y" /* yacc.c:1646  */
4051      {
4052    if (conf_parser_ctx.pass == 2)
4053 <    yy_aconf->modes |= UMODE_INVISIBLE;
4053 >    block_state.modes.value |= UMODE_FARCONNECT;
4054   }
4055 + #line 4056 "conf_parser.c" /* yacc.c:1646  */
4056      break;
4057  
4058 <  case 166:
4059 <
4463 < /* Line 1806 of yacc.c  */
4464 < #line 1227 "ircd_parser.y"
4058 >  case 200:
4059 > #line 1307 "conf_parser.y" /* yacc.c:1646  */
4060      {
4061    if (conf_parser_ctx.pass == 2)
4062 <    yy_aconf->modes |= UMODE_WALLOP;
4062 >    block_state.port.value = 0;
4063   }
4064 + #line 4065 "conf_parser.c" /* yacc.c:1646  */
4065      break;
4066  
4067 <  case 167:
4068 <
4473 < /* Line 1806 of yacc.c  */
4474 < #line 1231 "ircd_parser.y"
4067 >  case 204:
4068 > #line 1314 "conf_parser.y" /* yacc.c:1646  */
4069      {
4070    if (conf_parser_ctx.pass == 2)
4071 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4071 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4072   }
4073 + #line 4074 "conf_parser.c" /* yacc.c:1646  */
4074      break;
4075  
4076 <  case 168:
4077 <
4483 < /* Line 1806 of yacc.c  */
4484 < #line 1235 "ircd_parser.y"
4076 >  case 205:
4077 > #line 1318 "conf_parser.y" /* yacc.c:1646  */
4078      {
4079    if (conf_parser_ctx.pass == 2)
4080 <    yy_aconf->modes |= UMODE_CALLERID;
4080 >    block_state.port.value |= OPER_FLAG_KILL;
4081   }
4082 + #line 4083 "conf_parser.c" /* yacc.c:1646  */
4083      break;
4084  
4085 <  case 169:
4086 <
4493 < /* Line 1806 of yacc.c  */
4494 < #line 1239 "ircd_parser.y"
4085 >  case 206:
4086 > #line 1322 "conf_parser.y" /* yacc.c:1646  */
4087      {
4088    if (conf_parser_ctx.pass == 2)
4089 <    yy_aconf->modes |= UMODE_LOCOPS;
4089 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4090   }
4091 + #line 4092 "conf_parser.c" /* yacc.c:1646  */
4092      break;
4093  
4094 <  case 170:
4095 <
4503 < /* Line 1806 of yacc.c  */
4504 < #line 1245 "ircd_parser.y"
4094 >  case 207:
4095 > #line 1326 "conf_parser.y" /* yacc.c:1646  */
4096      {
4097 +  if (conf_parser_ctx.pass == 2)
4098 +    block_state.port.value |= OPER_FLAG_CONNECT;
4099   }
4100 + #line 4101 "conf_parser.c" /* yacc.c:1646  */
4101      break;
4102  
4103 <  case 174:
4104 <
4105 < /* Line 1806 of yacc.c  */
4106 < #line 1249 "ircd_parser.y"
4107 <    { not_atom = 1; }
4103 >  case 208:
4104 > #line 1330 "conf_parser.y" /* yacc.c:1646  */
4105 >    {
4106 >  if (conf_parser_ctx.pass == 2)
4107 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4108 > }
4109 > #line 4110 "conf_parser.c" /* yacc.c:1646  */
4110      break;
4111  
4112 <  case 176:
4113 <
4114 < /* Line 1806 of yacc.c  */
4115 < #line 1250 "ircd_parser.y"
4116 <    { not_atom = 0; }
4112 >  case 209:
4113 > #line 1334 "conf_parser.y" /* yacc.c:1646  */
4114 >    {
4115 >  if (conf_parser_ctx.pass == 2)
4116 >    block_state.port.value |= OPER_FLAG_SQUIT;
4117 > }
4118 > #line 4119 "conf_parser.c" /* yacc.c:1646  */
4119      break;
4120  
4121 <  case 178:
4122 <
4525 < /* Line 1806 of yacc.c  */
4526 < #line 1253 "ircd_parser.y"
4121 >  case 210:
4122 > #line 1338 "conf_parser.y" /* yacc.c:1646  */
4123      {
4124    if (conf_parser_ctx.pass == 2)
4125 <  {
4530 <    if (not_atom)yy_aconf->port &= ~OPER_FLAG_GLOBAL_KILL;
4531 <    else yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4532 <  }
4125 >    block_state.port.value |= OPER_FLAG_KLINE;
4126   }
4127 + #line 4128 "conf_parser.c" /* yacc.c:1646  */
4128      break;
4129  
4130 <  case 179:
4131 <
4538 < /* Line 1806 of yacc.c  */
4539 < #line 1260 "ircd_parser.y"
4130 >  case 211:
4131 > #line 1342 "conf_parser.y" /* yacc.c:1646  */
4132      {
4133    if (conf_parser_ctx.pass == 2)
4134 <  {
4543 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTE;
4544 <    else yy_aconf->port |= OPER_FLAG_REMOTE;
4545 <  }
4134 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4135   }
4136 + #line 4137 "conf_parser.c" /* yacc.c:1646  */
4137      break;
4138  
4139 <  case 180:
4140 <
4551 < /* Line 1806 of yacc.c  */
4552 < #line 1267 "ircd_parser.y"
4139 >  case 212:
4140 > #line 1346 "conf_parser.y" /* yacc.c:1646  */
4141      {
4142    if (conf_parser_ctx.pass == 2)
4143 <  {
4556 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_K;
4557 <    else yy_aconf->port |= OPER_FLAG_K;
4558 <  }
4143 >    block_state.port.value |= OPER_FLAG_DLINE;
4144   }
4145 + #line 4146 "conf_parser.c" /* yacc.c:1646  */
4146      break;
4147  
4148 <  case 181:
4149 <
4564 < /* Line 1806 of yacc.c  */
4565 < #line 1274 "ircd_parser.y"
4148 >  case 213:
4149 > #line 1350 "conf_parser.y" /* yacc.c:1646  */
4150      {
4151    if (conf_parser_ctx.pass == 2)
4152 <  {
4569 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_UNKLINE;
4570 <    else yy_aconf->port |= OPER_FLAG_UNKLINE;
4571 <  }
4152 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4153   }
4154 + #line 4155 "conf_parser.c" /* yacc.c:1646  */
4155      break;
4156  
4157 <  case 182:
4158 <
4577 < /* Line 1806 of yacc.c  */
4578 < #line 1281 "ircd_parser.y"
4157 >  case 214:
4158 > #line 1354 "conf_parser.y" /* yacc.c:1646  */
4159      {
4160    if (conf_parser_ctx.pass == 2)
4161 <  {
4582 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_X;
4583 <    else yy_aconf->port |= OPER_FLAG_X;
4584 <  }
4161 >    block_state.port.value |= OPER_FLAG_XLINE;
4162   }
4163 + #line 4164 "conf_parser.c" /* yacc.c:1646  */
4164      break;
4165  
4166 <  case 183:
4167 <
4590 < /* Line 1806 of yacc.c  */
4591 < #line 1288 "ircd_parser.y"
4166 >  case 215:
4167 > #line 1358 "conf_parser.y" /* yacc.c:1646  */
4168      {
4169    if (conf_parser_ctx.pass == 2)
4170 <  {
4595 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_GLINE;
4596 <    else yy_aconf->port |= OPER_FLAG_GLINE;
4597 <  }
4170 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4171   }
4172 + #line 4173 "conf_parser.c" /* yacc.c:1646  */
4173      break;
4174  
4175 <  case 184:
4176 <
4603 < /* Line 1806 of yacc.c  */
4604 < #line 1295 "ircd_parser.y"
4175 >  case 216:
4176 > #line 1362 "conf_parser.y" /* yacc.c:1646  */
4177      {
4178    if (conf_parser_ctx.pass == 2)
4179 <  {
4608 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_DIE;
4609 <    else yy_aconf->port |= OPER_FLAG_DIE;
4610 <  }
4179 >    block_state.port.value |= OPER_FLAG_GLINE;
4180   }
4181 + #line 4182 "conf_parser.c" /* yacc.c:1646  */
4182      break;
4183  
4184 <  case 185:
4185 <
4616 < /* Line 1806 of yacc.c  */
4617 < #line 1302 "ircd_parser.y"
4184 >  case 217:
4185 > #line 1366 "conf_parser.y" /* yacc.c:1646  */
4186      {
4187    if (conf_parser_ctx.pass == 2)
4188 <  {
4621 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REHASH;
4622 <    else yy_aconf->port |= OPER_FLAG_REHASH;
4623 <  }
4188 >    block_state.port.value |= OPER_FLAG_DIE;
4189   }
4190 + #line 4191 "conf_parser.c" /* yacc.c:1646  */
4191      break;
4192  
4193 <  case 186:
4194 <
4629 < /* Line 1806 of yacc.c  */
4630 < #line 1309 "ircd_parser.y"
4193 >  case 218:
4194 > #line 1370 "conf_parser.y" /* yacc.c:1646  */
4195      {
4196    if (conf_parser_ctx.pass == 2)
4197 <  {
4634 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_ADMIN;
4635 <    else yy_aconf->port |= OPER_FLAG_ADMIN;
4636 <  }
4197 >    block_state.port.value |= OPER_FLAG_RESTART;
4198   }
4199 + #line 4200 "conf_parser.c" /* yacc.c:1646  */
4200      break;
4201  
4202 <  case 187:
4203 <
4642 < /* Line 1806 of yacc.c  */
4643 < #line 1316 "ircd_parser.y"
4202 >  case 219:
4203 > #line 1374 "conf_parser.y" /* yacc.c:1646  */
4204      {
4205    if (conf_parser_ctx.pass == 2)
4206 <  {
4647 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_ADMIN;
4648 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_ADMIN;
4649 <  }
4206 >    block_state.port.value |= OPER_FLAG_REHASH;
4207   }
4208 + #line 4209 "conf_parser.c" /* yacc.c:1646  */
4209      break;
4210  
4211 <  case 188:
4212 <
4655 < /* Line 1806 of yacc.c  */
4656 < #line 1323 "ircd_parser.y"
4211 >  case 220:
4212 > #line 1378 "conf_parser.y" /* yacc.c:1646  */
4213      {
4214    if (conf_parser_ctx.pass == 2)
4215 <  {
4660 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_N;
4661 <    else yy_aconf->port |= OPER_FLAG_N;
4662 <  }
4215 >    block_state.port.value |= OPER_FLAG_ADMIN;
4216   }
4217 + #line 4218 "conf_parser.c" /* yacc.c:1646  */
4218      break;
4219  
4220 <  case 189:
4221 <
4668 < /* Line 1806 of yacc.c  */
4669 < #line 1330 "ircd_parser.y"
4220 >  case 221:
4221 > #line 1382 "conf_parser.y" /* yacc.c:1646  */
4222      {
4223    if (conf_parser_ctx.pass == 2)
4224 <  {
4673 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPERWALL;
4674 <    else yy_aconf->port |= OPER_FLAG_OPERWALL;
4675 <  }
4224 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4225   }
4226 + #line 4227 "conf_parser.c" /* yacc.c:1646  */
4227      break;
4228  
4229 <  case 190:
4230 <
4681 < /* Line 1806 of yacc.c  */
4682 < #line 1337 "ircd_parser.y"
4229 >  case 222:
4230 > #line 1386 "conf_parser.y" /* yacc.c:1646  */
4231      {
4232    if (conf_parser_ctx.pass == 2)
4233 <  {
4686 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_OPER_SPY;
4687 <    else yy_aconf->port |= OPER_FLAG_OPER_SPY;
4688 <  }
4233 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4234   }
4235 + #line 4236 "conf_parser.c" /* yacc.c:1646  */
4236      break;
4237  
4238 <  case 191:
4239 <
4694 < /* Line 1806 of yacc.c  */
4695 < #line 1344 "ircd_parser.y"
4238 >  case 223:
4239 > #line 1390 "conf_parser.y" /* yacc.c:1646  */
4240      {
4241    if (conf_parser_ctx.pass == 2)
4242 <  {
4699 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_HIDDEN_OPER;
4700 <    else yy_aconf->port |= OPER_FLAG_HIDDEN_OPER;
4701 <  }
4242 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4243   }
4244 + #line 4245 "conf_parser.c" /* yacc.c:1646  */
4245      break;
4246  
4247 <  case 192:
4248 <
4707 < /* Line 1806 of yacc.c  */
4708 < #line 1351 "ircd_parser.y"
4247 >  case 224:
4248 > #line 1394 "conf_parser.y" /* yacc.c:1646  */
4249      {
4250    if (conf_parser_ctx.pass == 2)
4251 <  {
4712 <    if (not_atom) yy_aconf->port &= ~OPER_FLAG_REMOTEBAN;
4713 <    else yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4714 <  }
4251 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4252   }
4253 + #line 4254 "conf_parser.c" /* yacc.c:1646  */
4254      break;
4255  
4256 <  case 193:
4257 <
4720 < /* Line 1806 of yacc.c  */
4721 < #line 1358 "ircd_parser.y"
4256 >  case 225:
4257 > #line 1398 "conf_parser.y" /* yacc.c:1646  */
4258      {
4259    if (conf_parser_ctx.pass == 2)
4260 <  {
4725 <    if (not_atom) ClearConfEncrypted(yy_aconf);
4726 <    else SetConfEncrypted(yy_aconf);
4727 <  }
4260 >    block_state.port.value |= OPER_FLAG_SET;
4261   }
4262 + #line 4263 "conf_parser.c" /* yacc.c:1646  */
4263      break;
4264  
4265 <  case 194:
4266 <
4733 < /* Line 1806 of yacc.c  */
4734 < #line 1371 "ircd_parser.y"
4265 >  case 226:
4266 > #line 1402 "conf_parser.y" /* yacc.c:1646  */
4267      {
4268 <  if (conf_parser_ctx.pass == 1)
4269 <  {
4738 <    yy_conf = make_conf_item(CLASS_TYPE);
4739 <    yy_class = map_to_conf(yy_conf);
4740 <  }
4268 >  if (conf_parser_ctx.pass == 2)
4269 >    block_state.port.value |= OPER_FLAG_MODULE;
4270   }
4271 + #line 4272 "conf_parser.c" /* yacc.c:1646  */
4272      break;
4273  
4274 <  case 195:
4275 <
4746 < /* Line 1806 of yacc.c  */
4747 < #line 1378 "ircd_parser.y"
4274 >  case 227:
4275 > #line 1412 "conf_parser.y" /* yacc.c:1646  */
4276      {
4277 <  if (conf_parser_ctx.pass == 1)
4278 <  {
4751 <    struct ConfItem *cconf = NULL;
4752 <    struct ClassItem *class = NULL;
4277 >  if (conf_parser_ctx.pass != 1)
4278 >    break;
4279  
4280 <    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);
4280 >  reset_block_state();
4281  
4282 <      if (cconf != NULL)                /* The class existed already */
4283 <      {
4284 <        int user_count = 0;
4282 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4283 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4284 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4285 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4286 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4287 > }
4288 > #line 4289 "conf_parser.c" /* yacc.c:1646  */
4289 >    break;
4290  
4291 <        rebuild_cidr_class(cconf, yy_class);
4291 >  case 228:
4292 > #line 1424 "conf_parser.y" /* yacc.c:1646  */
4293 >    {
4294 >  struct ClassItem *class = NULL;
4295  
4296 <        class = map_to_conf(cconf);
4296 >  if (conf_parser_ctx.pass != 1)
4297 >    break;
4298  
4299 <        user_count = class->curr_user_count;
4300 <        memcpy(class, yy_class, sizeof(*class));
4770 <        class->curr_user_count = user_count;
4771 <        class->active = 1;
4299 >  if (!block_state.class.buf[0])
4300 >    break;
4301  
4302 <        delete_conf_item(yy_conf);
4302 >  if (!(class = class_find(block_state.class.buf, 0)))
4303 >    class = class_make();
4304  
4305 <        MyFree(cconf->name);            /* Allows case change of class name */
4306 <        cconf->name = yy_class_name;
4307 <      }
4308 <      else      /* Brand new class */
4309 <      {
4310 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4311 <        yy_conf->name = yy_class_name;
4312 <        yy_class->active = 1;
4313 <      }
4314 <    }
4305 >  class->active = 1;
4306 >  MyFree(class->name);
4307 >  class->name = xstrdup(block_state.class.buf);
4308 >  class->ping_freq = block_state.ping_freq.value;
4309 >  class->max_perip = block_state.max_perip.value;
4310 >  class->con_freq = block_state.con_freq.value;
4311 >  class->max_total = block_state.max_total.value;
4312 >  class->max_global = block_state.max_global.value;
4313 >  class->max_local = block_state.max_local.value;
4314 >  class->max_ident = block_state.max_ident.value;
4315 >  class->max_sendq = block_state.max_sendq.value;
4316 >  class->max_recvq = block_state.max_recvq.value;
4317 >  class->max_channels = block_state.max_channels.value;
4318  
4319 <    yy_class_name = NULL;
4319 >  if (block_state.min_idle.value > block_state.max_idle.value)
4320 >  {
4321 >    block_state.min_idle.value = 0;
4322 >    block_state.max_idle.value = 0;
4323 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4324    }
4325 +
4326 +  class->flags = block_state.flags.value;
4327 +  class->min_idle = block_state.min_idle.value;
4328 +  class->max_idle = block_state.max_idle.value;
4329 +
4330 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4331 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4332 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4333 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4334 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4335 +        rebuild_cidr_list(class);
4336 +
4337 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4338 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4339 +  class->number_per_cidr = block_state.number_per_cidr.value;
4340   }
4341 + #line 4342 "conf_parser.c" /* yacc.c:1646  */
4342      break;
4343  
4344 <  case 214:
4345 <
4793 < /* Line 1806 of yacc.c  */
4794 < #line 1438 "ircd_parser.y"
4344 >  case 249:
4345 > #line 1493 "conf_parser.y" /* yacc.c:1646  */
4346      {
4347    if (conf_parser_ctx.pass == 1)
4348 <  {
4798 <    MyFree(yy_class_name);
4799 <    DupString(yy_class_name, yylval.string);
4800 <  }
4348 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4349   }
4350 + #line 4351 "conf_parser.c" /* yacc.c:1646  */
4351      break;
4352  
4353 <  case 215:
4354 <
4806 < /* Line 1806 of yacc.c  */
4807 < #line 1447 "ircd_parser.y"
4353 >  case 250:
4354 > #line 1499 "conf_parser.y" /* yacc.c:1646  */
4355      {
4356    if (conf_parser_ctx.pass == 1)
4357 <  {
4811 <    MyFree(yy_class_name);
4812 <    DupString(yy_class_name, yylval.string);
4813 <  }
4357 >    block_state.ping_freq.value = (yyvsp[-1].number);
4358   }
4359 + #line 4360 "conf_parser.c" /* yacc.c:1646  */
4360      break;
4361  
4362 <  case 216:
4363 <
4819 < /* Line 1806 of yacc.c  */
4820 < #line 1456 "ircd_parser.y"
4362 >  case 251:
4363 > #line 1505 "conf_parser.y" /* yacc.c:1646  */
4364      {
4365    if (conf_parser_ctx.pass == 1)
4366 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4366 >    block_state.max_perip.value = (yyvsp[-1].number);
4367   }
4368 + #line 4369 "conf_parser.c" /* yacc.c:1646  */
4369      break;
4370  
4371 <  case 217:
4372 <
4829 < /* Line 1806 of yacc.c  */
4830 < #line 1462 "ircd_parser.y"
4371 >  case 252:
4372 > #line 1511 "conf_parser.y" /* yacc.c:1646  */
4373      {
4374    if (conf_parser_ctx.pass == 1)
4375 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4375 >    block_state.con_freq.value = (yyvsp[-1].number);
4376   }
4377 + #line 4378 "conf_parser.c" /* yacc.c:1646  */
4378      break;
4379  
4380 <  case 218:
4381 <
4839 < /* Line 1806 of yacc.c  */
4840 < #line 1468 "ircd_parser.y"
4380 >  case 253:
4381 > #line 1517 "conf_parser.y" /* yacc.c:1646  */
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4384 >    block_state.max_channels.value = (yyvsp[-1].number);
4385   }
4386 + #line 4387 "conf_parser.c" /* yacc.c:1646  */
4387      break;
4388  
4389 <  case 219:
4390 <
4849 < /* Line 1806 of yacc.c  */
4850 < #line 1474 "ircd_parser.y"
4389 >  case 254:
4390 > #line 1523 "conf_parser.y" /* yacc.c:1646  */
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4393 >    block_state.max_total.value = (yyvsp[-1].number);
4394   }
4395 + #line 4396 "conf_parser.c" /* yacc.c:1646  */
4396      break;
4397  
4398 <  case 220:
4399 <
4859 < /* Line 1806 of yacc.c  */
4860 < #line 1480 "ircd_parser.y"
4398 >  case 255:
4399 > #line 1529 "conf_parser.y" /* yacc.c:1646  */
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4402 >    block_state.max_global.value = (yyvsp[-1].number);
4403   }
4404 + #line 4405 "conf_parser.c" /* yacc.c:1646  */
4405      break;
4406  
4407 <  case 221:
4408 <
4869 < /* Line 1806 of yacc.c  */
4870 < #line 1486 "ircd_parser.y"
4407 >  case 256:
4408 > #line 1535 "conf_parser.y" /* yacc.c:1646  */
4409      {
4410    if (conf_parser_ctx.pass == 1)
4411 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4411 >    block_state.max_local.value = (yyvsp[-1].number);
4412   }
4413 + #line 4414 "conf_parser.c" /* yacc.c:1646  */
4414      break;
4415  
4416 <  case 222:
4417 <
4879 < /* Line 1806 of yacc.c  */
4880 < #line 1492 "ircd_parser.y"
4416 >  case 257:
4417 > #line 1541 "conf_parser.y" /* yacc.c:1646  */
4418      {
4419    if (conf_parser_ctx.pass == 1)
4420 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4420 >    block_state.max_ident.value = (yyvsp[-1].number);
4421   }
4422 + #line 4423 "conf_parser.c" /* yacc.c:1646  */
4423      break;
4424  
4425 <  case 223:
4426 <
4889 < /* Line 1806 of yacc.c  */
4890 < #line 1498 "ircd_parser.y"
4425 >  case 258:
4426 > #line 1547 "conf_parser.y" /* yacc.c:1646  */
4427      {
4428    if (conf_parser_ctx.pass == 1)
4429 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4429 >    block_state.max_sendq.value = (yyvsp[-1].number);
4430   }
4431 + #line 4432 "conf_parser.c" /* yacc.c:1646  */
4432      break;
4433  
4434 <  case 224:
4435 <
4899 < /* Line 1806 of yacc.c  */
4900 < #line 1504 "ircd_parser.y"
4434 >  case 259:
4435 > #line 1553 "conf_parser.y" /* yacc.c:1646  */
4436      {
4437    if (conf_parser_ctx.pass == 1)
4438 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4438 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4439 >      block_state.max_recvq.value = (yyvsp[-1].number);
4440   }
4441 + #line 4442 "conf_parser.c" /* yacc.c:1646  */
4442      break;
4443  
4444 <  case 225:
4445 <
4909 < /* Line 1806 of yacc.c  */
4910 < #line 1510 "ircd_parser.y"
4444 >  case 260:
4445 > #line 1560 "conf_parser.y" /* yacc.c:1646  */
4446      {
4447    if (conf_parser_ctx.pass == 1)
4448 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4448 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4449   }
4450 + #line 4451 "conf_parser.c" /* yacc.c:1646  */
4451      break;
4452  
4453 <  case 226:
4454 <
4919 < /* Line 1806 of yacc.c  */
4920 < #line 1516 "ircd_parser.y"
4453 >  case 261:
4454 > #line 1566 "conf_parser.y" /* yacc.c:1646  */
4455      {
4456    if (conf_parser_ctx.pass == 1)
4457 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4457 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4458   }
4459 + #line 4460 "conf_parser.c" /* yacc.c:1646  */
4460      break;
4461  
4462 <  case 227:
4463 <
4929 < /* Line 1806 of yacc.c  */
4930 < #line 1522 "ircd_parser.y"
4462 >  case 262:
4463 > #line 1572 "conf_parser.y" /* yacc.c:1646  */
4464      {
4465    if (conf_parser_ctx.pass == 1)
4466 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4466 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4467   }
4468 + #line 4469 "conf_parser.c" /* yacc.c:1646  */
4469      break;
4470  
4471 <  case 228:
4472 <
4939 < /* Line 1806 of yacc.c  */
4940 < #line 1531 "ircd_parser.y"
4471 >  case 263:
4472 > #line 1578 "conf_parser.y" /* yacc.c:1646  */
4473      {
4474 <  if (conf_parser_ctx.pass == 2)
4943 <  {
4944 <    listener_address = NULL;
4945 <    listener_flags = 0;
4946 <  }
4947 < }
4474 >  if (conf_parser_ctx.pass != 1)
4475      break;
4476  
4477 <  case 229:
4477 >  block_state.min_idle.value = (yyvsp[-1].number);
4478 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4479 > }
4480 > #line 4481 "conf_parser.c" /* yacc.c:1646  */
4481 >    break;
4482  
4483 < /* Line 1806 of yacc.c  */
4484 < #line 1538 "ircd_parser.y"
4483 >  case 264:
4484 > #line 1587 "conf_parser.y" /* yacc.c:1646  */
4485      {
4486 <  if (conf_parser_ctx.pass == 2)
4487 <  {
4488 <    MyFree(listener_address);
4489 <    listener_address = NULL;
4490 <  }
4486 >  if (conf_parser_ctx.pass != 1)
4487 >    break;
4488 >
4489 >  block_state.max_idle.value = (yyvsp[-1].number);
4490 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4491   }
4492 + #line 4493 "conf_parser.c" /* yacc.c:1646  */
4493      break;
4494  
4495 <  case 230:
4495 >  case 265:
4496 > #line 1596 "conf_parser.y" /* yacc.c:1646  */
4497 >    {
4498 >  if (conf_parser_ctx.pass == 1)
4499 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4500 > }
4501 > #line 4502 "conf_parser.c" /* yacc.c:1646  */
4502 >    break;
4503  
4504 < /* Line 1806 of yacc.c  */
4505 < #line 1547 "ircd_parser.y"
4504 >  case 269:
4505 > #line 1603 "conf_parser.y" /* yacc.c:1646  */
4506      {
4507 <  listener_flags = 0;
4507 >  if (conf_parser_ctx.pass == 1)
4508 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4509   }
4510 + #line 4511 "conf_parser.c" /* yacc.c:1646  */
4511      break;
4512  
4513 <  case 234:
4513 >  case 270:
4514 > #line 1607 "conf_parser.y" /* yacc.c:1646  */
4515 >    {
4516 >  if (conf_parser_ctx.pass == 1)
4517 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4518 > }
4519 > #line 4520 "conf_parser.c" /* yacc.c:1646  */
4520 >    break;
4521  
4522 < /* Line 1806 of yacc.c  */
4523 < #line 1553 "ircd_parser.y"
4522 >  case 271:
4523 > #line 1617 "conf_parser.y" /* yacc.c:1646  */
4524      {
4525    if (conf_parser_ctx.pass == 2)
4526 <    listener_flags |= LISTENER_SSL;
4526 >    reset_block_state();
4527   }
4528 + #line 4529 "conf_parser.c" /* yacc.c:1646  */
4529      break;
4530  
4531 <  case 235:
4531 >  case 273:
4532 > #line 1623 "conf_parser.y" /* yacc.c:1646  */
4533 >    {
4534 >  block_state.flags.value = 0;
4535 > }
4536 > #line 4537 "conf_parser.c" /* yacc.c:1646  */
4537 >    break;
4538  
4539 < /* Line 1806 of yacc.c  */
4540 < #line 1557 "ircd_parser.y"
4539 >  case 277:
4540 > #line 1629 "conf_parser.y" /* yacc.c:1646  */
4541      {
4542    if (conf_parser_ctx.pass == 2)
4543 <    listener_flags |= LISTENER_HIDDEN;
4543 >    block_state.flags.value |= LISTENER_SSL;
4544   }
4545 + #line 4546 "conf_parser.c" /* yacc.c:1646  */
4546      break;
4547  
4548 <  case 236:
4549 <
4994 < /* Line 1806 of yacc.c  */
4995 < #line 1561 "ircd_parser.y"
4548 >  case 278:
4549 > #line 1633 "conf_parser.y" /* yacc.c:1646  */
4550      {
4551    if (conf_parser_ctx.pass == 2)
4552 <    listener_flags |= LISTENER_SERVER;
4552 >    block_state.flags.value |= LISTENER_HIDDEN;
4553   }
4554 + #line 4555 "conf_parser.c" /* yacc.c:1646  */
4555      break;
4556  
4557 <  case 244:
4558 <
4559 < /* Line 1806 of yacc.c  */
4560 < #line 1571 "ircd_parser.y"
4561 <    { listener_flags = 0; }
4557 >  case 279:
4558 > #line 1637 "conf_parser.y" /* yacc.c:1646  */
4559 >    {
4560 >  if (conf_parser_ctx.pass == 2)
4561 >   block_state.flags.value |= LISTENER_SERVER;
4562 > }
4563 > #line 4564 "conf_parser.c" /* yacc.c:1646  */
4564      break;
4565  
4566 <  case 248:
4566 >  case 287:
4567 > #line 1645 "conf_parser.y" /* yacc.c:1646  */
4568 >    { block_state.flags.value = 0; }
4569 > #line 4570 "conf_parser.c" /* yacc.c:1646  */
4570 >    break;
4571  
4572 < /* Line 1806 of yacc.c  */
4573 < #line 1576 "ircd_parser.y"
4572 >  case 291:
4573 > #line 1650 "conf_parser.y" /* yacc.c:1646  */
4574      {
4575    if (conf_parser_ctx.pass == 2)
4576    {
4577 <    if ((listener_flags & LISTENER_SSL))
4577 >    if (block_state.flags.value & LISTENER_SSL)
4578   #ifdef HAVE_LIBCRYPTO
4579        if (!ServerInfo.server_ctx)
4580   #endif
4581        {
4582 <        yyerror("SSL not available - port closed");
4583 <        break;
4582 >        conf_error_report("SSL not available - port closed");
4583 >        break;
4584        }
4585 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4585 >    add_listener((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4586    }
4587   }
4588 + #line 4589 "conf_parser.c" /* yacc.c:1646  */
4589      break;
4590  
4591 <  case 249:
4592 <
5031 < /* Line 1806 of yacc.c  */
5032 < #line 1590 "ircd_parser.y"
4591 >  case 292:
4592 > #line 1664 "conf_parser.y" /* yacc.c:1646  */
4593      {
4594    if (conf_parser_ctx.pass == 2)
4595    {
4596 <    int i;
5037 <
5038 <    if ((listener_flags & LISTENER_SSL))
4596 >    if (block_state.flags.value & LISTENER_SSL)
4597   #ifdef HAVE_LIBCRYPTO
4598        if (!ServerInfo.server_ctx)
4599   #endif
4600        {
4601 <        yyerror("SSL not available - port closed");
4602 <        break;
4601 >        conf_error_report("SSL not available - port closed");
4602 >        break;
4603        }
4604  
4605 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4606 <      add_listener(i, listener_address, listener_flags);
4605 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4606 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4607    }
4608   }
4609 + #line 4610 "conf_parser.c" /* yacc.c:1646  */
4610      break;
4611  
4612 <  case 250:
4613 <
5055 < /* Line 1806 of yacc.c  */
5056 < #line 1610 "ircd_parser.y"
4612 >  case 293:
4613 > #line 1682 "conf_parser.y" /* yacc.c:1646  */
4614      {
4615    if (conf_parser_ctx.pass == 2)
4616 <  {
5060 <    MyFree(listener_address);
5061 <    DupString(listener_address, yylval.string);
5062 <  }
4616 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4617   }
4618 + #line 4619 "conf_parser.c" /* yacc.c:1646  */
4619      break;
4620  
4621 <  case 251:
4622 <
5068 < /* Line 1806 of yacc.c  */
5069 < #line 1619 "ircd_parser.y"
4621 >  case 294:
4622 > #line 1688 "conf_parser.y" /* yacc.c:1646  */
4623      {
4624    if (conf_parser_ctx.pass == 2)
4625 <  {
5073 <    MyFree(listener_address);
5074 <    DupString(listener_address, yylval.string);
5075 <  }
4625 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4626   }
4627 + #line 4628 "conf_parser.c" /* yacc.c:1646  */
4628      break;
4629  
4630 <  case 252:
4631 <
5081 < /* Line 1806 of yacc.c  */
5082 < #line 1631 "ircd_parser.y"
4630 >  case 295:
4631 > #line 1697 "conf_parser.y" /* yacc.c:1646  */
4632      {
4633    if (conf_parser_ctx.pass == 2)
4634 <  {
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 <  }
4634 >    reset_block_state();
4635   }
4636 + #line 4637 "conf_parser.c" /* yacc.c:1646  */
4637      break;
4638  
4639 <  case 253:
4640 <
5099 < /* Line 1806 of yacc.c  */
5100 < #line 1643 "ircd_parser.y"
4639 >  case 296:
4640 > #line 1701 "conf_parser.y" /* yacc.c:1646  */
4641      {
4642 <  if (conf_parser_ctx.pass == 2)
5103 <  {
5104 <    struct CollectItem *yy_tmp = NULL;
5105 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4642 >  dlink_node *ptr = NULL;
4643  
4644 <    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)
5117 <    {
5118 <      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);
5127 <
5128 <      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 < }
4644 >  if (conf_parser_ctx.pass != 2)
4645      break;
4646  
4647 <  case 265:
5159 <
5160 < /* Line 1806 of yacc.c  */
5161 < #line 1705 "ircd_parser.y"
5162 <    {
5163 <  if (conf_parser_ctx.pass == 2)
4647 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4648    {
4649 <    struct CollectItem *yy_tmp = NULL;
4649 >    struct MaskItem *conf = NULL;
4650      struct split_nuh_item nuh;
4651  
4652 <    nuh.nuhmask  = yylval.string;
4652 >    nuh.nuhmask  = ptr->data;
4653      nuh.nickptr  = NULL;
4654 <    nuh.userptr  = userbuf;
4655 <    nuh.hostptr  = hostbuf;
5172 <
4654 >    nuh.userptr  = block_state.user.buf;
4655 >    nuh.hostptr  = block_state.host.buf;
4656      nuh.nicksize = 0;
4657 <    nuh.usersize = sizeof(userbuf);
4658 <    nuh.hostsize = sizeof(hostbuf);
5176 <
4657 >    nuh.usersize = sizeof(block_state.user.buf);
4658 >    nuh.hostsize = sizeof(block_state.host.buf);
4659      split_nuh(&nuh);
4660  
4661 <    if (yy_aconf->user == NULL)
4662 <    {
4663 <      DupString(yy_aconf->user, userbuf);
5182 <      DupString(yy_aconf->host, hostbuf);
5183 <    }
5184 <    else
5185 <    {
5186 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4661 >    conf        = conf_make(CONF_CLIENT);
4662 >    conf->user  = xstrdup(block_state.user.buf);
4663 >    conf->host  = xstrdup(block_state.host.buf);
4664  
4665 <      DupString(yy_tmp->user, userbuf);
4666 <      DupString(yy_tmp->host, hostbuf);
4665 >    if (block_state.rpass.buf[0])
4666 >      conf->passwd = xstrdup(block_state.rpass.buf);
4667 >    if (block_state.name.buf[0])
4668 >      conf->name = xstrdup(block_state.name.buf);
4669  
4670 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4671 <    }
4670 >    conf->flags = block_state.flags.value;
4671 >    conf->port  = block_state.port.value;
4672 >
4673 >    conf_add_class_to_conf(conf, block_state.class.buf);
4674 >    add_conf_by_address(CONF_CLIENT, conf);
4675    }
4676   }
4677 + #line 4678 "conf_parser.c" /* yacc.c:1646  */
4678      break;
4679  
4680 <  case 266:
4681 <
5199 < /* Line 1806 of yacc.c  */
5200 < #line 1742 "ircd_parser.y"
4680 >  case 308:
4681 > #line 1750 "conf_parser.y" /* yacc.c:1646  */
4682      {
4683    if (conf_parser_ctx.pass == 2)
4684 <  {
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 <  }
4684 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4685   }
4686 + #line 4687 "conf_parser.c" /* yacc.c:1646  */
4687      break;
4688  
4689 <  case 267:
4690 <
5216 < /* Line 1806 of yacc.c  */
5217 < #line 1755 "ircd_parser.y"
4689 >  case 309:
4690 > #line 1756 "conf_parser.y" /* yacc.c:1646  */
4691      {
4692    if (conf_parser_ctx.pass == 2)
4693 <  {
5221 <    MyFree(class_name);
5222 <    DupString(class_name, yylval.string);
5223 <  }
4693 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4694   }
4695 + #line 4696 "conf_parser.c" /* yacc.c:1646  */
4696      break;
4697  
4698 <  case 268:
4698 >  case 310:
4699 > #line 1762 "conf_parser.y" /* yacc.c:1646  */
4700 >    {
4701 >  if (conf_parser_ctx.pass == 2)
4702 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4703 > }
4704 > #line 4705 "conf_parser.c" /* yacc.c:1646  */
4705 >    break;
4706  
4707 < /* Line 1806 of yacc.c  */
4708 < #line 1764 "ircd_parser.y"
4707 >  case 311:
4708 > #line 1768 "conf_parser.y" /* yacc.c:1646  */
4709      {
4710    if (conf_parser_ctx.pass == 2)
4711    {
4712      if (yylval.number)
4713 <      SetConfEncrypted(yy_aconf);
4713 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4714      else
4715 <      ClearConfEncrypted(yy_aconf);
4715 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4716    }
4717   }
4718 + #line 4719 "conf_parser.c" /* yacc.c:1646  */
4719      break;
4720  
4721 <  case 269:
4722 <
5244 < /* Line 1806 of yacc.c  */
5245 < #line 1775 "ircd_parser.y"
4721 >  case 312:
4722 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4723      {
4724 +  if (conf_parser_ctx.pass == 2)
4725 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4726   }
4727 + #line 4728 "conf_parser.c" /* yacc.c:1646  */
4728      break;
4729  
4730 <  case 273:
4731 <
4732 < /* Line 1806 of yacc.c  */
4733 < #line 1779 "ircd_parser.y"
4734 <    { not_atom = 1; }
4735 <    break;
4736 <
5257 <  case 275:
5258 <
5259 < /* Line 1806 of yacc.c  */
5260 < #line 1780 "ircd_parser.y"
5261 <    { not_atom = 0; }
4730 >  case 316:
4731 > #line 1786 "conf_parser.y" /* yacc.c:1646  */
4732 >    {
4733 >  if (conf_parser_ctx.pass == 2)
4734 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4735 > }
4736 > #line 4737 "conf_parser.c" /* yacc.c:1646  */
4737      break;
4738  
4739 <  case 277:
4740 <
5266 < /* Line 1806 of yacc.c  */
5267 < #line 1783 "ircd_parser.y"
4739 >  case 317:
4740 > #line 1790 "conf_parser.y" /* yacc.c:1646  */
4741      {
4742    if (conf_parser_ctx.pass == 2)
4743 <  {
5271 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_SPOOF_NOTICE;
5272 <    else yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
5273 <  }
4743 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4744   }
4745 + #line 4746 "conf_parser.c" /* yacc.c:1646  */
4746      break;
4747  
4748 <  case 278:
4749 <
5279 < /* Line 1806 of yacc.c  */
5280 < #line 1790 "ircd_parser.y"
4748 >  case 318:
4749 > #line 1794 "conf_parser.y" /* yacc.c:1646  */
4750      {
4751    if (conf_parser_ctx.pass == 2)
4752 <  {
5284 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NOLIMIT;
5285 <    else yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
5286 <  }
4752 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4753   }
4754 + #line 4755 "conf_parser.c" /* yacc.c:1646  */
4755      break;
4756  
4757 <  case 279:
4758 <
5292 < /* Line 1806 of yacc.c  */
5293 < #line 1797 "ircd_parser.y"
4757 >  case 319:
4758 > #line 1798 "conf_parser.y" /* yacc.c:1646  */
4759      {
4760    if (conf_parser_ctx.pass == 2)
4761 <  {
5297 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTKLINE;
5298 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
5299 <  }
4761 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4762   }
4763 + #line 4764 "conf_parser.c" /* yacc.c:1646  */
4764      break;
4765  
4766 <  case 280:
4767 <
5305 < /* Line 1806 of yacc.c  */
5306 < #line 1804 "ircd_parser.y"
4766 >  case 320:
4767 > #line 1802 "conf_parser.y" /* yacc.c:1646  */
4768      {
4769    if (conf_parser_ctx.pass == 2)
4770 <  {
5310 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_IDENTD;
5311 <    else yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
5312 <  }
4770 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4771   }
4772 + #line 4773 "conf_parser.c" /* yacc.c:1646  */
4773      break;
4774  
4775 <  case 281:
4776 <
5318 < /* Line 1806 of yacc.c  */
5319 < #line 1811 "ircd_parser.y"
4775 >  case 321:
4776 > #line 1806 "conf_parser.y" /* yacc.c:1646  */
4777      {
4778    if (conf_parser_ctx.pass == 2)
4779 <  {
5323 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_CAN_FLOOD;
5324 <    else yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
5325 <  }
4779 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4780   }
4781 + #line 4782 "conf_parser.c" /* yacc.c:1646  */
4782      break;
4783  
4784 <  case 282:
4785 <
5331 < /* Line 1806 of yacc.c  */
5332 < #line 1818 "ircd_parser.y"
4784 >  case 322:
4785 > #line 1810 "conf_parser.y" /* yacc.c:1646  */
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788 <  {
5336 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_IDLE_LINED;
5337 <    else yy_aconf->flags |= CONF_FLAGS_IDLE_LINED;
5338 <  }
4788 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4789   }
4790 + #line 4791 "conf_parser.c" /* yacc.c:1646  */
4791      break;
4792  
4793 <  case 283:
4794 <
5344 < /* Line 1806 of yacc.c  */
5345 < #line 1825 "ircd_parser.y"
4793 >  case 323:
4794 > #line 1814 "conf_parser.y" /* yacc.c:1646  */
4795      {
4796    if (conf_parser_ctx.pass == 2)
4797 <  {
5349 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NO_TILDE;
5350 <    else yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
5351 <  }
4797 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4798   }
4799 + #line 4800 "conf_parser.c" /* yacc.c:1646  */
4800      break;
4801  
4802 <  case 284:
4803 <
5357 < /* Line 1806 of yacc.c  */
5358 < #line 1832 "ircd_parser.y"
4802 >  case 324:
4803 > #line 1818 "conf_parser.y" /* yacc.c:1646  */
4804      {
4805    if (conf_parser_ctx.pass == 2)
4806 <  {
5362 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTGLINE;
5363 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
5364 <  }
4806 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4807   }
4808 + #line 4809 "conf_parser.c" /* yacc.c:1646  */
4809      break;
4810  
4811 <  case 285:
4812 <
5370 < /* Line 1806 of yacc.c  */
5371 < #line 1839 "ircd_parser.y"
4811 >  case 325:
4812 > #line 1822 "conf_parser.y" /* yacc.c:1646  */
4813      {
4814    if (conf_parser_ctx.pass == 2)
4815 <  {
5375 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_EXEMPTRESV;
5376 <    else yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
5377 <  }
4815 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4816   }
4817 + #line 4818 "conf_parser.c" /* yacc.c:1646  */
4818      break;
4819  
4820 <  case 286:
4821 <
5383 < /* Line 1806 of yacc.c  */
5384 < #line 1846 "ircd_parser.y"
4820 >  case 326:
4821 > #line 1828 "conf_parser.y" /* yacc.c:1646  */
4822      {
4823 <  if (conf_parser_ctx.pass == 2)
4823 >  if (conf_parser_ctx.pass != 2)
4824 >    break;
4825 >
4826 >  if (valid_hostname(yylval.string))
4827    {
4828 <    if (not_atom) yy_aconf->flags &= ~CONF_FLAGS_NEED_PASSWORD;
4829 <    else yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4828 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4829 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4830    }
4831 +  else
4832 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4833   }
4834 + #line 4835 "conf_parser.c" /* yacc.c:1646  */
4835      break;
4836  
4837 <  case 287:
4838 <
5396 < /* Line 1806 of yacc.c  */
5397 < #line 1856 "ircd_parser.y"
4837 >  case 327:
4838 > #line 1842 "conf_parser.y" /* yacc.c:1646  */
4839      {
4840 <  if (conf_parser_ctx.pass == 2)
4841 <  {
5401 <    MyFree(yy_conf->name);
4840 >  if (conf_parser_ctx.pass != 2)
4841 >    break;
4842  
4843 <    if (strlen(yylval.string) < HOSTLEN)
4844 <    {    
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 <  }
4843 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4844 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4845   }
4846 + #line 4847 "conf_parser.c" /* yacc.c:1646  */
4847      break;
4848  
4849 <  case 288:
4850 <
5419 < /* Line 1806 of yacc.c  */
5420 < #line 1875 "ircd_parser.y"
4849 >  case 328:
4850 > #line 1851 "conf_parser.y" /* yacc.c:1646  */
4851      {
4852 <  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 < }
4852 >  if (conf_parser_ctx.pass != 2)
4853      break;
4854  
4855 <  case 289:
4855 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4856 >  block_state.port.value = (yyvsp[-1].number);
4857 > }
4858 > #line 4859 "conf_parser.c" /* yacc.c:1646  */
4859 >    break;
4860  
4861 < /* Line 1806 of yacc.c  */
4862 < #line 1885 "ircd_parser.y"
4861 >  case 329:
4862 > #line 1864 "conf_parser.y" /* yacc.c:1646  */
4863      {
4864 <  if (conf_parser_ctx.pass == 2)
5437 <  {
5438 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5439 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5440 <  }
5441 < }
4864 >  if (conf_parser_ctx.pass != 2)
4865      break;
4866  
4867 <  case 290:
4867 >  reset_block_state();
4868 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4869 > }
4870 > #line 4871 "conf_parser.c" /* yacc.c:1646  */
4871 >    break;
4872  
4873 < /* Line 1806 of yacc.c  */
4874 < #line 1898 "ircd_parser.y"
4873 >  case 330:
4874 > #line 1871 "conf_parser.y" /* yacc.c:1646  */
4875      {
4876 <  if (conf_parser_ctx.pass == 2)
5450 <  {
5451 <    MyFree(resv_reason);
5452 <    resv_reason = NULL;
5453 <  }
5454 < }
4876 >  if (conf_parser_ctx.pass != 2)
4877      break;
4878  
4879 <  case 291:
4879 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4880 > }
4881 > #line 4882 "conf_parser.c" /* yacc.c:1646  */
4882 >    break;
4883  
4884 < /* Line 1806 of yacc.c  */
4885 < #line 1905 "ircd_parser.y"
4884 >  case 337:
4885 > #line 1882 "conf_parser.y" /* yacc.c:1646  */
4886      {
4887    if (conf_parser_ctx.pass == 2)
4888 <  {
5464 <    MyFree(resv_reason);
5465 <    resv_reason = NULL;
5466 <  }
4888 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4889   }
4890 + #line 4891 "conf_parser.c" /* yacc.c:1646  */
4891      break;
4892  
4893 <  case 298:
4894 <
5472 < /* Line 1806 of yacc.c  */
5473 < #line 1917 "ircd_parser.y"
4893 >  case 338:
4894 > #line 1888 "conf_parser.y" /* yacc.c:1646  */
4895      {
4896    if (conf_parser_ctx.pass == 2)
4897 <  {
5477 <    MyFree(resv_reason);
5478 <    DupString(resv_reason, yylval.string);
5479 <  }
4897 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4898   }
4899 + #line 4900 "conf_parser.c" /* yacc.c:1646  */
4900      break;
4901  
4902 <  case 299:
4903 <
5485 < /* Line 1806 of yacc.c  */
5486 < #line 1926 "ircd_parser.y"
4902 >  case 339:
4903 > #line 1894 "conf_parser.y" /* yacc.c:1646  */
4904      {
4905    if (conf_parser_ctx.pass == 2)
4906 <  {
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_ */
4906 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4907   }
4908 + #line 4909 "conf_parser.c" /* yacc.c:1646  */
4909      break;
4910  
4911 <  case 300:
4912 <
5504 < /* Line 1806 of yacc.c  */
5505 < #line 1941 "ircd_parser.y"
4911 >  case 345:
4912 > #line 1909 "conf_parser.y" /* yacc.c:1646  */
4913      {
4914 <  if (conf_parser_ctx.pass == 2)
4915 <  {
5509 <    char def_reason[] = "No reason";
4914 >  if (conf_parser_ctx.pass != 2)
4915 >    break;
4916  
4917 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
4917 >  if (valid_servname(yylval.string))
4918 >  {
4919 >    struct MaskItem *conf = conf_make(CONF_SERVICE);
4920 >    conf->name = xstrdup(yylval.string);
4921    }
4922   }
4923 + #line 4924 "conf_parser.c" /* yacc.c:1646  */
4924      break;
4925  
4926 <  case 301:
4927 <
5518 < /* Line 1806 of yacc.c  */
5519 < #line 1954 "ircd_parser.y"
4926 >  case 346:
4927 > #line 1924 "conf_parser.y" /* yacc.c:1646  */
4928      {
4929 <  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 < }
4929 >  if (conf_parser_ctx.pass != 2)
4930      break;
4931  
4932 <  case 302:
4932 >  reset_block_state();
4933  
4934 < /* Line 1806 of yacc.c  */
4935 < #line 1962 "ircd_parser.y"
4936 <    {
4937 <  if (conf_parser_ctx.pass == 2)
5536 <  {
5537 <    yy_conf = NULL;
5538 <  }
4934 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4935 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4936 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4937 >  block_state.flags.value = SHARED_ALL;
4938   }
4939 + #line 4940 "conf_parser.c" /* yacc.c:1646  */
4940      break;
4941  
4942 <  case 309:
4942 >  case 347:
4943 > #line 1935 "conf_parser.y" /* yacc.c:1646  */
4944 >    {
4945 >  struct MaskItem *conf = NULL;
4946 >
4947 >  if (conf_parser_ctx.pass != 2)
4948 >    break;
4949 >
4950 >  conf = conf_make(CONF_ULINE);
4951 >  conf->flags = block_state.flags.value;
4952 >  conf->name = xstrdup(block_state.name.buf);
4953 >  conf->user = xstrdup(block_state.user.buf);
4954 >  conf->host = xstrdup(block_state.host.buf);
4955 > }
4956 > #line 4957 "conf_parser.c" /* yacc.c:1646  */
4957 >    break;
4958  
4959 < /* Line 1806 of yacc.c  */
4960 < #line 1973 "ircd_parser.y"
4959 >  case 354:
4960 > #line 1952 "conf_parser.y" /* yacc.c:1646  */
4961      {
4962    if (conf_parser_ctx.pass == 2)
4963 <  {
5549 <    MyFree(yy_conf->name);
5550 <    DupString(yy_conf->name, yylval.string);
5551 <  }
4963 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4964   }
4965 + #line 4966 "conf_parser.c" /* yacc.c:1646  */
4966      break;
4967  
4968 <  case 310:
4969 <
5557 < /* Line 1806 of yacc.c  */
5558 < #line 1982 "ircd_parser.y"
4968 >  case 355:
4969 > #line 1958 "conf_parser.y" /* yacc.c:1646  */
4970      {
4971    if (conf_parser_ctx.pass == 2)
4972    {
# Line 5563 | Line 4974 | yyreduce:
4974  
4975      nuh.nuhmask  = yylval.string;
4976      nuh.nickptr  = NULL;
4977 <    nuh.userptr  = userbuf;
4978 <    nuh.hostptr  = hostbuf;
4977 >    nuh.userptr  = block_state.user.buf;
4978 >    nuh.hostptr  = block_state.host.buf;
4979  
4980      nuh.nicksize = 0;
4981 <    nuh.usersize = sizeof(userbuf);
4982 <    nuh.hostsize = sizeof(hostbuf);
4981 >    nuh.usersize = sizeof(block_state.user.buf);
4982 >    nuh.hostsize = sizeof(block_state.host.buf);
4983  
4984      split_nuh(&nuh);
5574
5575    DupString(yy_match_item->user, userbuf);
5576    DupString(yy_match_item->host, hostbuf);
4985    }
4986   }
4987 + #line 4988 "conf_parser.c" /* yacc.c:1646  */
4988      break;
4989  
4990 <  case 311:
4991 <
5583 < /* Line 1806 of yacc.c  */
5584 < #line 2004 "ircd_parser.y"
4990 >  case 356:
4991 > #line 1977 "conf_parser.y" /* yacc.c:1646  */
4992      {
4993    if (conf_parser_ctx.pass == 2)
4994 <    yy_match_item->action = 0;
4994 >    block_state.flags.value = 0;
4995   }
4996 + #line 4997 "conf_parser.c" /* yacc.c:1646  */
4997      break;
4998  
4999 <  case 315:
5000 <
5593 < /* Line 1806 of yacc.c  */
5594 < #line 2011 "ircd_parser.y"
4999 >  case 360:
5000 > #line 1984 "conf_parser.y" /* yacc.c:1646  */
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <    yy_match_item->action |= SHARED_KLINE;
5003 >    block_state.flags.value |= SHARED_KLINE;
5004   }
5005 + #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006      break;
5007  
5008 <  case 316:
5009 <
5603 < /* Line 1806 of yacc.c  */
5604 < #line 2015 "ircd_parser.y"
5008 >  case 361:
5009 > #line 1988 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    yy_match_item->action |= SHARED_TKLINE;
5012 >    block_state.flags.value |= SHARED_UNKLINE;
5013   }
5014 + #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017 <  case 317:
5018 <
5613 < /* Line 1806 of yacc.c  */
5614 < #line 2019 "ircd_parser.y"
5017 >  case 362:
5018 > #line 1992 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021 <    yy_match_item->action |= SHARED_UNKLINE;
5021 >    block_state.flags.value |= SHARED_DLINE;
5022   }
5023 + #line 5024 "conf_parser.c" /* yacc.c:1646  */
5024      break;
5025  
5026 <  case 318:
5027 <
5623 < /* Line 1806 of yacc.c  */
5624 < #line 2023 "ircd_parser.y"
5026 >  case 363:
5027 > #line 1996 "conf_parser.y" /* yacc.c:1646  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    yy_match_item->action |= SHARED_XLINE;
5030 >    block_state.flags.value |= SHARED_UNDLINE;
5031   }
5032 + #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035 <  case 319:
5036 <
5633 < /* Line 1806 of yacc.c  */
5634 < #line 2027 "ircd_parser.y"
5035 >  case 364:
5036 > #line 2000 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    yy_match_item->action |= SHARED_TXLINE;
5039 >    block_state.flags.value |= SHARED_XLINE;
5040   }
5041 + #line 5042 "conf_parser.c" /* yacc.c:1646  */
5042      break;
5043  
5044 <  case 320:
5045 <
5643 < /* Line 1806 of yacc.c  */
5644 < #line 2031 "ircd_parser.y"
5044 >  case 365:
5045 > #line 2004 "conf_parser.y" /* yacc.c:1646  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    yy_match_item->action |= SHARED_UNXLINE;
5048 >    block_state.flags.value |= SHARED_UNXLINE;
5049   }
5050 + #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053 <  case 321:
5054 <
5653 < /* Line 1806 of yacc.c  */
5654 < #line 2035 "ircd_parser.y"
5053 >  case 366:
5054 > #line 2008 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    yy_match_item->action |= SHARED_RESV;
5057 >    block_state.flags.value |= SHARED_RESV;
5058   }
5059 + #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062 <  case 322:
5063 <
5663 < /* Line 1806 of yacc.c  */
5664 < #line 2039 "ircd_parser.y"
5062 >  case 367:
5063 > #line 2012 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    yy_match_item->action |= SHARED_TRESV;
5066 >    block_state.flags.value |= SHARED_UNRESV;
5067   }
5068 + #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071 <  case 323:
5072 <
5673 < /* Line 1806 of yacc.c  */
5674 < #line 2043 "ircd_parser.y"
5071 >  case 368:
5072 > #line 2016 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075 <    yy_match_item->action |= SHARED_UNRESV;
5075 >    block_state.flags.value |= SHARED_LOCOPS;
5076   }
5077 + #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080 <  case 324:
5081 <
5683 < /* Line 1806 of yacc.c  */
5684 < #line 2047 "ircd_parser.y"
5080 >  case 369:
5081 > #line 2020 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_match_item->action |= SHARED_LOCOPS;
5084 >    block_state.flags.value = SHARED_ALL;
5085   }
5086 + #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089 <  case 325:
5090 <
5693 < /* Line 1806 of yacc.c  */
5694 < #line 2051 "ircd_parser.y"
5089 >  case 370:
5090 > #line 2029 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092 <  if (conf_parser_ctx.pass == 2)
5697 <    yy_match_item->action = SHARED_ALL;
5698 < }
5092 >  if (conf_parser_ctx.pass != 2)
5093      break;
5094  
5095 <  case 326:
5095 >  reset_block_state();
5096  
5097 < /* Line 1806 of yacc.c  */
5098 < #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 <  }
5097 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5098 >  block_state.flags.value = SHARED_ALL;
5099   }
5100 + #line 5101 "conf_parser.c" /* yacc.c:1646  */
5101      break;
5102  
5103 <  case 327:
5104 <
5716 < /* Line 1806 of yacc.c  */
5717 < #line 2067 "ircd_parser.y"
5103 >  case 371:
5104 > #line 2038 "conf_parser.y" /* yacc.c:1646  */
5105      {
5106 <  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;
5106 >  struct MaskItem *conf = NULL;
5107  
5108 <  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 < }
5108 >  if (conf_parser_ctx.pass != 2)
5109      break;
5110  
5111 <  case 334:
5112 <
5113 < /* Line 1806 of yacc.c  */
5741 < #line 2086 "ircd_parser.y"
5742 <    {
5743 <  if (conf_parser_ctx.pass == 2)
5744 <    yy_conf->flags = 0;
5111 >  conf = conf_make(CONF_CLUSTER);
5112 >  conf->flags = block_state.flags.value;
5113 >  conf->name = xstrdup(block_state.name.buf);
5114   }
5115 + #line 5116 "conf_parser.c" /* yacc.c:1646  */
5116      break;
5117  
5118 <  case 338:
5119 <
5750 < /* Line 1806 of yacc.c  */
5751 < #line 2093 "ircd_parser.y"
5118 >  case 377:
5119 > #line 2053 "conf_parser.y" /* yacc.c:1646  */
5120      {
5121    if (conf_parser_ctx.pass == 2)
5122 <    yy_conf->flags |= SHARED_KLINE;
5122 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5123   }
5124 + #line 5125 "conf_parser.c" /* yacc.c:1646  */
5125      break;
5126  
5127 <  case 339:
5128 <
5760 < /* Line 1806 of yacc.c  */
5761 < #line 2097 "ircd_parser.y"
5127 >  case 378:
5128 > #line 2059 "conf_parser.y" /* yacc.c:1646  */
5129      {
5130    if (conf_parser_ctx.pass == 2)
5131 <    yy_conf->flags |= SHARED_TKLINE;
5131 >    block_state.flags.value = 0;
5132   }
5133 + #line 5134 "conf_parser.c" /* yacc.c:1646  */
5134      break;
5135  
5136 <  case 340:
5137 <
5770 < /* Line 1806 of yacc.c  */
5771 < #line 2101 "ircd_parser.y"
5136 >  case 382:
5137 > #line 2066 "conf_parser.y" /* yacc.c:1646  */
5138      {
5139    if (conf_parser_ctx.pass == 2)
5140 <    yy_conf->flags |= SHARED_UNKLINE;
5140 >    block_state.flags.value |= SHARED_KLINE;
5141   }
5142 + #line 5143 "conf_parser.c" /* yacc.c:1646  */
5143      break;
5144  
5145 <  case 341:
5146 <
5780 < /* Line 1806 of yacc.c  */
5781 < #line 2105 "ircd_parser.y"
5145 >  case 383:
5146 > #line 2070 "conf_parser.y" /* yacc.c:1646  */
5147      {
5148    if (conf_parser_ctx.pass == 2)
5149 <    yy_conf->flags |= SHARED_XLINE;
5149 >    block_state.flags.value |= SHARED_UNKLINE;
5150   }
5151 + #line 5152 "conf_parser.c" /* yacc.c:1646  */
5152      break;
5153  
5154 <  case 342:
5155 <
5790 < /* Line 1806 of yacc.c  */
5791 < #line 2109 "ircd_parser.y"
5154 >  case 384:
5155 > #line 2074 "conf_parser.y" /* yacc.c:1646  */
5156      {
5157    if (conf_parser_ctx.pass == 2)
5158 <    yy_conf->flags |= SHARED_TXLINE;
5158 >    block_state.flags.value |= SHARED_DLINE;
5159   }
5160 + #line 5161 "conf_parser.c" /* yacc.c:1646  */
5161      break;
5162  
5163 <  case 343:
5164 <
5800 < /* Line 1806 of yacc.c  */
5801 < #line 2113 "ircd_parser.y"
5163 >  case 385:
5164 > #line 2078 "conf_parser.y" /* yacc.c:1646  */
5165      {
5166    if (conf_parser_ctx.pass == 2)
5167 <    yy_conf->flags |= SHARED_UNXLINE;
5167 >    block_state.flags.value |= SHARED_UNDLINE;
5168   }
5169 + #line 5170 "conf_parser.c" /* yacc.c:1646  */
5170      break;
5171  
5172 <  case 344:
5173 <
5810 < /* Line 1806 of yacc.c  */
5811 < #line 2117 "ircd_parser.y"
5172 >  case 386:
5173 > #line 2082 "conf_parser.y" /* yacc.c:1646  */
5174      {
5175    if (conf_parser_ctx.pass == 2)
5176 <    yy_conf->flags |= SHARED_RESV;
5176 >    block_state.flags.value |= SHARED_XLINE;
5177   }
5178 + #line 5179 "conf_parser.c" /* yacc.c:1646  */
5179      break;
5180  
5181 <  case 345:
5182 <
5820 < /* Line 1806 of yacc.c  */
5821 < #line 2121 "ircd_parser.y"
5181 >  case 387:
5182 > #line 2086 "conf_parser.y" /* yacc.c:1646  */
5183      {
5184    if (conf_parser_ctx.pass == 2)
5185 <    yy_conf->flags |= SHARED_TRESV;
5185 >    block_state.flags.value |= SHARED_UNXLINE;
5186   }
5187 + #line 5188 "conf_parser.c" /* yacc.c:1646  */
5188      break;
5189  
5190 <  case 346:
5191 <
5830 < /* Line 1806 of yacc.c  */
5831 < #line 2125 "ircd_parser.y"
5190 >  case 388:
5191 > #line 2090 "conf_parser.y" /* yacc.c:1646  */
5192      {
5193    if (conf_parser_ctx.pass == 2)
5194 <    yy_conf->flags |= SHARED_UNRESV;
5194 >    block_state.flags.value |= SHARED_RESV;
5195   }
5196 + #line 5197 "conf_parser.c" /* yacc.c:1646  */
5197      break;
5198  
5199 <  case 347:
5200 <
5840 < /* Line 1806 of yacc.c  */
5841 < #line 2129 "ircd_parser.y"
5199 >  case 389:
5200 > #line 2094 "conf_parser.y" /* yacc.c:1646  */
5201      {
5202    if (conf_parser_ctx.pass == 2)
5203 <    yy_conf->flags |= SHARED_LOCOPS;
5203 >    block_state.flags.value |= SHARED_UNRESV;
5204   }
5205 + #line 5206 "conf_parser.c" /* yacc.c:1646  */
5206      break;
5207  
5208 <  case 348:
5209 <
5850 < /* Line 1806 of yacc.c  */
5851 < #line 2133 "ircd_parser.y"
5208 >  case 390:
5209 > #line 2098 "conf_parser.y" /* yacc.c:1646  */
5210      {
5211    if (conf_parser_ctx.pass == 2)
5212 <    yy_conf->flags = SHARED_ALL;
5212 >    block_state.flags.value |= SHARED_LOCOPS;
5213   }
5214 + #line 5215 "conf_parser.c" /* yacc.c:1646  */
5215      break;
5216  
5217 <  case 349:
5218 <
5860 < /* Line 1806 of yacc.c  */
5861 < #line 2142 "ircd_parser.y"
5217 >  case 391:
5218 > #line 2102 "conf_parser.y" /* yacc.c:1646  */
5219      {
5220    if (conf_parser_ctx.pass == 2)
5221 <  {
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 <  }
5221 >    block_state.flags.value = SHARED_ALL;
5222   }
5223 + #line 5224 "conf_parser.c" /* yacc.c:1646  */
5224      break;
5225  
5226 <  case 350:
5227 <
5884 < /* Line 1806 of yacc.c  */
5885 < #line 2160 "ircd_parser.y"
5226 >  case 392:
5227 > #line 2111 "conf_parser.y" /* yacc.c:1646  */
5228      {
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;
5229  
5230 <        yy_hconf = ptr->data;
5231 <
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;
5986 <
5987 <        yy_lconf = ptr->data;
5230 >  if (conf_parser_ctx.pass != 2)
5231 >    break;
5232  
5233 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5234 <        {
5235 <          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 <  }
5233 >  reset_block_state();
5234 >  block_state.aftype.value = AF_INET;
5235 >  block_state.port.value = PORTNUM;
5236   }
5237 + #line 5238 "conf_parser.c" /* yacc.c:1646  */
5238      break;
5239  
5240 <  case 370:
5241 <
6016 < /* Line 1806 of yacc.c  */
6017 < #line 2298 "ircd_parser.y"
5240 >  case 393:
5241 > #line 2120 "conf_parser.y" /* yacc.c:1646  */
5242      {
5243 <  if (conf_parser_ctx.pass == 2)
5244 <  {
6021 <    if (yy_conf->name != NULL)
6022 <      yyerror("Multiple connect name entry");
5243 >  struct MaskItem *conf = NULL;
5244 >  struct addrinfo hints, *res;
5245  
5246 <    MyFree(yy_conf->name);
6025 <    DupString(yy_conf->name, yylval.string);
6026 <  }
6027 < }
5246 >  if (conf_parser_ctx.pass != 2)
5247      break;
5248  
5249 <  case 371:
5249 >  if (!block_state.name.buf[0] ||
5250 >      !block_state.host.buf[0])
5251 >    break;
5252  
5253 < /* Line 1806 of yacc.c  */
5254 < #line 2310 "ircd_parser.y"
5255 <    {
6035 <  if (conf_parser_ctx.pass == 2)
6036 <  {
6037 <    if (yy_conf->name != NULL)
6038 <      yyerror("Multiple connect name entry");
5253 >  if (!block_state.rpass.buf[0] ||
5254 >      !block_state.spass.buf[0])
5255 >    break;
5256  
5257 <    MyFree(yy_conf->name);
5258 <    DupString(yy_conf->name, yylval.string);
6042 <  }
6043 < }
5257 >  if (has_wildcards(block_state.name.buf) ||
5258 >      has_wildcards(block_state.host.buf))
5259      break;
5260  
5261 <  case 372:
5261 >  conf = conf_make(CONF_SERVER);
5262 >  conf->port = block_state.port.value;
5263 >  conf->flags = block_state.flags.value;
5264 >  conf->aftype = block_state.aftype.value;
5265 >  conf->host = xstrdup(block_state.host.buf);
5266 >  conf->name = xstrdup(block_state.name.buf);
5267 >  conf->passwd = xstrdup(block_state.rpass.buf);
5268 >  conf->spasswd = xstrdup(block_state.spass.buf);
5269  
5270 < /* Line 1806 of yacc.c  */
5271 < #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;
5270 >  if (block_state.cert.buf[0])
5271 >    conf->certfp = xstrdup(block_state.cert.buf);
5272  
5273 <  case 373:
5273 >  if (block_state.ciph.buf[0])
5274 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5275  
5276 < /* Line 1806 of yacc.c  */
5277 < #line 2331 "ircd_parser.y"
6063 <    {
6064 <  if (conf_parser_ctx.pass == 2)
6065 <  {
6066 <    struct addrinfo hints, *res;
5276 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5277 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5278  
5279 +  if (block_state.bind.buf[0])
5280 +  {
5281      memset(&hints, 0, sizeof(hints));
5282  
5283      hints.ai_family   = AF_UNSPEC;
5284      hints.ai_socktype = SOCK_STREAM;
5285      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5286  
5287 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5288 <      ilog(L_ERROR, "Invalid netmask for server vhost(%s)", yylval.string);
5287 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5288 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5289      else
5290      {
5291 <      assert(res != NULL);
5291 >      assert(res);
5292  
5293 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5294 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5295 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5293 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5294 >      conf->bind.ss.ss_family = res->ai_family;
5295 >      conf->bind.ss_len = res->ai_addrlen;
5296        freeaddrinfo(res);
5297      }
5298    }
6086 }
6087    break;
6088
6089  case 374:
6090
6091 /* Line 1806 of yacc.c  */
6092 #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));
5299  
5300 <      MyFree(yy_aconf->spasswd);
5301 <      DupString(yy_aconf->spasswd, yylval.string);
6106 <    }
6107 <  }
5300 >  conf_add_class_to_conf(conf, block_state.class.buf);
5301 >  lookup_confhost(conf);
5302   }
5303 + #line 5304 "conf_parser.c" /* yacc.c:1646  */
5304      break;
5305  
5306 <  case 375:
5307 <
6113 < /* Line 1806 of yacc.c  */
6114 < #line 2375 "ircd_parser.y"
5306 >  case 411:
5307 > #line 2200 "conf_parser.y" /* yacc.c:1646  */
5308      {
5309    if (conf_parser_ctx.pass == 2)
5310 <  {
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 <  }
5310 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5311   }
5312 + #line 5313 "conf_parser.c" /* yacc.c:1646  */
5313      break;
5314  
5315 <  case 376:
5316 <
6135 < /* Line 1806 of yacc.c  */
6136 < #line 2393 "ircd_parser.y"
5315 >  case 412:
5316 > #line 2206 "conf_parser.y" /* yacc.c:1646  */
5317      {
5318    if (conf_parser_ctx.pass == 2)
5319 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5319 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5320   }
5321 + #line 5322 "conf_parser.c" /* yacc.c:1646  */
5322      break;
5323  
5324 <  case 377:
5325 <
6145 < /* Line 1806 of yacc.c  */
6146 < #line 2399 "ircd_parser.y"
5324 >  case 413:
5325 > #line 2212 "conf_parser.y" /* yacc.c:1646  */
5326      {
5327    if (conf_parser_ctx.pass == 2)
5328 <    yy_aconf->aftype = AF_INET;
5328 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5329   }
5330 + #line 5331 "conf_parser.c" /* yacc.c:1646  */
5331      break;
5332  
5333 <  case 378:
5334 <
6155 < /* Line 1806 of yacc.c  */
6156 < #line 2403 "ircd_parser.y"
5333 >  case 414:
5334 > #line 2218 "conf_parser.y" /* yacc.c:1646  */
5335      {
5336 < #ifdef IPV6
6159 <  if (conf_parser_ctx.pass == 2)
6160 <    yy_aconf->aftype = AF_INET6;
6161 < #endif
6162 < }
5336 >  if (conf_parser_ctx.pass != 2)
5337      break;
5338  
5339 <  case 379:
5340 <
5341 < /* Line 1806 of yacc.c  */
5342 < #line 2411 "ircd_parser.y"
5343 <    {
5339 >  if ((yyvsp[-1].string)[0] == ':')
5340 >    conf_error_report("Server passwords cannot begin with a colon");
5341 >  else if (strchr((yyvsp[-1].string), ' '))
5342 >    conf_error_report("Server passwords cannot contain spaces");
5343 >  else
5344 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5345   }
5346 + #line 5347 "conf_parser.c" /* yacc.c:1646  */
5347      break;
5348  
5349 <  case 383:
5350 <
5351 < /* Line 1806 of yacc.c  */
5352 < #line 2415 "ircd_parser.y"
6177 <    { not_atom = 1; }
5349 >  case 415:
5350 > #line 2231 "conf_parser.y" /* yacc.c:1646  */
5351 >    {
5352 >  if (conf_parser_ctx.pass != 2)
5353      break;
5354  
5355 <  case 385:
5356 <
5357 < /* Line 1806 of yacc.c  */
5358 < #line 2416 "ircd_parser.y"
5359 <    { not_atom = 0; }
5355 >  if ((yyvsp[-1].string)[0] == ':')
5356 >    conf_error_report("Server passwords cannot begin with a colon");
5357 >  else if (strchr((yyvsp[-1].string), ' '))
5358 >    conf_error_report("Server passwords cannot contain spaces");
5359 >  else
5360 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5361 > }
5362 > #line 5363 "conf_parser.c" /* yacc.c:1646  */
5363      break;
5364  
5365 <  case 387:
5366 <
6189 < /* Line 1806 of yacc.c  */
6190 < #line 2419 "ircd_parser.y"
5365 >  case 416:
5366 > #line 2244 "conf_parser.y" /* yacc.c:1646  */
5367      {
5368    if (conf_parser_ctx.pass == 2)
5369 < #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
5369 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5370   }
5371 + #line 5372 "conf_parser.c" /* yacc.c:1646  */
5372      break;
5373  
5374 <  case 388:
5375 <
6206 < /* Line 1806 of yacc.c  */
6207 < #line 2430 "ircd_parser.y"
5374 >  case 417:
5375 > #line 2250 "conf_parser.y" /* yacc.c:1646  */
5376      {
5377    if (conf_parser_ctx.pass == 2)
5378 <  {
6211 <    if (not_atom)ClearConfCryptLink(yy_aconf);
6212 <    else SetConfCryptLink(yy_aconf);
6213 <  }
5378 >    block_state.port.value = (yyvsp[-1].number);
5379   }
5380 + #line 5381 "conf_parser.c" /* yacc.c:1646  */
5381      break;
5382  
5383 <  case 389:
5384 <
6219 < /* Line 1806 of yacc.c  */
6220 < #line 2437 "ircd_parser.y"
5383 >  case 418:
5384 > #line 2256 "conf_parser.y" /* yacc.c:1646  */
5385      {
5386    if (conf_parser_ctx.pass == 2)
5387 <  {
6224 <    if (not_atom)ClearConfAllowAutoConn(yy_aconf);
6225 <    else SetConfAllowAutoConn(yy_aconf);
6226 <  }
5387 >    block_state.aftype.value = AF_INET;
5388   }
5389 + #line 5390 "conf_parser.c" /* yacc.c:1646  */
5390      break;
5391  
5392 <  case 390:
5393 <
6232 < /* Line 1806 of yacc.c  */
6233 < #line 2444 "ircd_parser.y"
5392 >  case 419:
5393 > #line 2260 "conf_parser.y" /* yacc.c:1646  */
5394      {
5395 + #ifdef IPV6
5396    if (conf_parser_ctx.pass == 2)
5397 <  {
5398 <    if (not_atom)ClearConfAwayBurst(yy_aconf);
6238 <    else SetConfAwayBurst(yy_aconf);
6239 <  }
5397 >    block_state.aftype.value = AF_INET6;
5398 > #endif
5399   }
5400 + #line 5401 "conf_parser.c" /* yacc.c:1646  */
5401      break;
5402  
5403 <  case 391:
5404 <
6245 < /* Line 1806 of yacc.c  */
6246 < #line 2451 "ircd_parser.y"
5403 >  case 420:
5404 > #line 2268 "conf_parser.y" /* yacc.c:1646  */
5405      {
5406 <  if (conf_parser_ctx.pass == 2)
6249 <  {
6250 <    if (not_atom)ClearConfTopicBurst(yy_aconf);
6251 <    else SetConfTopicBurst(yy_aconf);
6252 <  }
5406 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5407   }
5408 + #line 5409 "conf_parser.c" /* yacc.c:1646  */
5409      break;
5410  
5411 <  case 392:
5412 <
6258 < /* Line 1806 of yacc.c  */
6259 < #line 2461 "ircd_parser.y"
5411 >  case 424:
5412 > #line 2274 "conf_parser.y" /* yacc.c:1646  */
5413      {
6261 #ifdef HAVE_LIBCRYPTO
5414    if (conf_parser_ctx.pass == 2)
5415 <  {
5416 <    BIO *file;
5417 <
5418 <    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);
5415 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5416 > }
5417 > #line 5418 "conf_parser.c" /* yacc.c:1646  */
5418 >    break;
5419  
5420 <    if (yy_aconf->rsa_public_key == NULL)
5420 >  case 425:
5421 > #line 2278 "conf_parser.y" /* yacc.c:1646  */
5422      {
5423 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
5424 <      break;
6292 <    }
6293 <      
6294 <    BIO_set_close(file, BIO_CLOSE);
6295 <    BIO_free(file);
6296 <  }
6297 < #endif /* HAVE_LIBCRYPTO */
5423 >  if (conf_parser_ctx.pass == 2)
5424 >    block_state.flags.value |= CONF_FLAGS_SSL;
5425   }
5426 + #line 5427 "conf_parser.c" /* yacc.c:1646  */
5427      break;
5428  
5429 <  case 393:
5430 <
6303 < /* Line 1806 of yacc.c  */
6304 < #line 2502 "ircd_parser.y"
5429 >  case 426:
5430 > #line 2284 "conf_parser.y" /* yacc.c:1646  */
5431      {
5432    if (conf_parser_ctx.pass == 2)
5433    {
5434      if (yylval.number)
5435 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5435 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5436      else
5437 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5437 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5438    }
5439   }
5440 + #line 5441 "conf_parser.c" /* yacc.c:1646  */
5441      break;
5442  
5443 <  case 394:
5444 <
6318 < /* Line 1806 of yacc.c  */
6319 < #line 2513 "ircd_parser.y"
5443 >  case 427:
5444 > #line 2295 "conf_parser.y" /* yacc.c:1646  */
5445      {
5446    if (conf_parser_ctx.pass == 2)
5447 <  {
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 <  }
5447 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5448   }
5449 + #line 5450 "conf_parser.c" /* yacc.c:1646  */
5450      break;
5451  
5452 <  case 395:
5453 <
6335 < /* Line 1806 of yacc.c  */
6336 < #line 2526 "ircd_parser.y"
5452 >  case 428:
5453 > #line 2301 "conf_parser.y" /* yacc.c:1646  */
5454      {
5455    if (conf_parser_ctx.pass == 2)
5456 <  {
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 <  }
5456 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5457   }
5458 + #line 5459 "conf_parser.c" /* yacc.c:1646  */
5459      break;
5460  
5461 <  case 396:
5462 <
6352 < /* Line 1806 of yacc.c  */
6353 < #line 2539 "ircd_parser.y"
5461 >  case 429:
5462 > #line 2307 "conf_parser.y" /* yacc.c:1646  */
5463      {
5464    if (conf_parser_ctx.pass == 2)
5465 <  {
6357 <    MyFree(class_name);
6358 <    DupString(class_name, yylval.string);
6359 <  }
5465 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5466   }
5467 + #line 5468 "conf_parser.c" /* yacc.c:1646  */
5468      break;
5469  
5470 <  case 397:
5471 <
6365 < /* Line 1806 of yacc.c  */
6366 < #line 2548 "ircd_parser.y"
5470 >  case 430:
5471 > #line 2313 "conf_parser.y" /* yacc.c:1646  */
5472      {
5473   #ifdef HAVE_LIBCRYPTO
5474    if (conf_parser_ctx.pass == 2)
5475 <  {
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 <  }
5475 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5476   #else
5477    if (conf_parser_ctx.pass == 2)
5478 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5478 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5479   #endif
5480   }
5481 + #line 5482 "conf_parser.c" /* yacc.c:1646  */
5482      break;
5483  
5484 <  case 398:
5485 <
6401 < /* Line 1806 of yacc.c  */
6402 < #line 2583 "ircd_parser.y"
5484 >  case 431:
5485 > #line 2328 "conf_parser.y" /* yacc.c:1646  */
5486      {
5487    if (conf_parser_ctx.pass == 2)
5488 <  {
6406 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6407 <    regex_ban = 0;
6408 <  }
5488 >    reset_block_state();
5489   }
5490 + #line 5491 "conf_parser.c" /* yacc.c:1646  */
5491      break;
5492  
5493 <  case 399:
5494 <
6414 < /* Line 1806 of yacc.c  */
6415 < #line 2590 "ircd_parser.y"
5493 >  case 432:
5494 > #line 2332 "conf_parser.y" /* yacc.c:1646  */
5495      {
5496 <  if (conf_parser_ctx.pass == 2)
6418 <  {
6419 <    if (userbuf[0] && hostbuf[0])
6420 <    {
6421 <      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;
6439 <
6440 <        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 <    }
5496 >  struct MaskItem *conf = NULL;
5497  
5498 <    yy_aconf = NULL;
6468 <  }
6469 < }
5498 >  if (conf_parser_ctx.pass != 2)
5499      break;
5500  
5501 <  case 400:
5502 <
6474 < /* Line 1806 of yacc.c  */
6475 < #line 2646 "ircd_parser.y"
6476 <    {
6477 < }
5501 >  if (!block_state.user.buf[0] ||
5502 >      !block_state.host.buf[0])
5503      break;
5504  
5505 <  case 404:
5505 >  conf = conf_make(CONF_KLINE);
5506 >  conf->user = xstrdup(block_state.user.buf);
5507 >  conf->host = xstrdup(block_state.host.buf);
5508  
5509 < /* Line 1806 of yacc.c  */
5510 < #line 2651 "ircd_parser.y"
5511 <    {
5512 <  if (conf_parser_ctx.pass == 2)
5513 <    regex_ban = 1;
5509 >  if (block_state.rpass.buf[0])
5510 >    conf->reason = xstrdup(block_state.rpass.buf);
5511 >  else
5512 >    conf->reason = xstrdup(CONF_NOREASON);
5513 >  add_conf_by_address(CONF_KLINE, conf);
5514   }
5515 + #line 5516 "conf_parser.c" /* yacc.c:1646  */
5516      break;
5517  
5518 <  case 411:
5519 <
6492 < /* Line 1806 of yacc.c  */
6493 < #line 2660 "ircd_parser.y"
5518 >  case 438:
5519 > #line 2357 "conf_parser.y" /* yacc.c:1646  */
5520      {
5521 +
5522    if (conf_parser_ctx.pass == 2)
5523    {
5524      struct split_nuh_item nuh;
5525  
5526      nuh.nuhmask  = yylval.string;
5527      nuh.nickptr  = NULL;
5528 <    nuh.userptr  = userbuf;
5529 <    nuh.hostptr  = hostbuf;
5528 >    nuh.userptr  = block_state.user.buf;
5529 >    nuh.hostptr  = block_state.host.buf;
5530  
5531      nuh.nicksize = 0;
5532 <    nuh.usersize = sizeof(userbuf);
5533 <    nuh.hostsize = sizeof(hostbuf);
5532 >    nuh.usersize = sizeof(block_state.user.buf);
5533 >    nuh.hostsize = sizeof(block_state.host.buf);
5534  
5535      split_nuh(&nuh);
5536    }
5537   }
5538 + #line 5539 "conf_parser.c" /* yacc.c:1646  */
5539      break;
5540  
5541 <  case 412:
5542 <
6515 < /* Line 1806 of yacc.c  */
6516 < #line 2679 "ircd_parser.y"
5541 >  case 439:
5542 > #line 2377 "conf_parser.y" /* yacc.c:1646  */
5543      {
5544    if (conf_parser_ctx.pass == 2)
5545 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5545 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5546   }
5547 + #line 5548 "conf_parser.c" /* yacc.c:1646  */
5548      break;
5549  
5550 <  case 413:
5551 <
6525 < /* Line 1806 of yacc.c  */
6526 < #line 2688 "ircd_parser.y"
5550 >  case 440:
5551 > #line 2386 "conf_parser.y" /* yacc.c:1646  */
5552      {
5553    if (conf_parser_ctx.pass == 2)
5554 <    hostbuf[0] = reasonbuf[0] = '\0';
5554 >    reset_block_state();
5555   }
5556 + #line 5557 "conf_parser.c" /* yacc.c:1646  */
5557      break;
5558  
5559 <  case 414:
5560 <
6535 < /* Line 1806 of yacc.c  */
6536 < #line 2692 "ircd_parser.y"
6537 <    {
6538 <  if (conf_parser_ctx.pass == 2)
6539 <  {
6540 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5559 >  case 441:
5560 > #line 2390 "conf_parser.y" /* yacc.c:1646  */
5561      {
5562 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6543 <      DupString(yy_aconf->host, hostbuf);
5562 >  struct MaskItem *conf = NULL;
5563  
5564 <      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 < }
5564 >  if (conf_parser_ctx.pass != 2)
5565      break;
5566  
5567 <  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 < }
5567 >  if (!block_state.addr.buf[0])
5568      break;
5569  
5570 <  case 421:
5570 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5571 >  {
5572 >    conf = conf_make(CONF_DLINE);
5573 >    conf->host = xstrdup(block_state.addr.buf);
5574  
5575 < /* Line 1806 of yacc.c  */
5576 < #line 2720 "ircd_parser.y"
5577 <    {
5578 <  if (conf_parser_ctx.pass == 2)
5579 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5575 >    if (block_state.rpass.buf[0])
5576 >      conf->reason = xstrdup(block_state.rpass.buf);
5577 >    else
5578 >      conf->reason = xstrdup(CONF_NOREASON);
5579 >    add_conf_by_address(CONF_DLINE, conf);
5580 >  }
5581   }
5582 + #line 5583 "conf_parser.c" /* yacc.c:1646  */
5583      break;
5584  
5585 <  case 427:
5586 <
6578 < /* Line 1806 of yacc.c  */
6579 < #line 2734 "ircd_parser.y"
5585 >  case 447:
5586 > #line 2416 "conf_parser.y" /* yacc.c:1646  */
5587      {
5588    if (conf_parser_ctx.pass == 2)
5589 <  {
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 <  }
5589 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5590   }
5591 + #line 5592 "conf_parser.c" /* yacc.c:1646  */
5592      break;
5593  
5594 <  case 428:
5595 <
6597 < /* Line 1806 of yacc.c  */
6598 < #line 2752 "ircd_parser.y"
5594 >  case 448:
5595 > #line 2422 "conf_parser.y" /* yacc.c:1646  */
5596      {
5597    if (conf_parser_ctx.pass == 2)
5598 <  {
6602 <    regex_ban = 0;
6603 <    reasonbuf[0] = gecos_name[0] = '\0';
6604 <  }
5598 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5599   }
5600 + #line 5601 "conf_parser.c" /* yacc.c:1646  */
5601      break;
5602  
5603 <  case 429:
5604 <
6610 < /* Line 1806 of yacc.c  */
6611 < #line 2759 "ircd_parser.y"
5603 >  case 454:
5604 > #line 2436 "conf_parser.y" /* yacc.c:1646  */
5605      {
5606    if (conf_parser_ctx.pass == 2)
5607    {
5608 <    if (gecos_name[0])
5608 >    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5609      {
5610 <      if (regex_ban)
5611 <      {
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 <        }
5610 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5611 >      conf->host = xstrdup(yylval.string);
5612  
5613 <        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);
6642 <
6643 <      if (reasonbuf[0])
6644 <        DupString(yy_match_item->reason, reasonbuf);
6645 <      else
6646 <        DupString(yy_match_item->reason, "No reason");
5613 >      add_conf_by_address(CONF_EXEMPT, conf);
5614      }
5615    }
5616   }
5617 + #line 5618 "conf_parser.c" /* yacc.c:1646  */
5618      break;
5619  
5620 <  case 430:
5621 <
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"
5620 >  case 455:
5621 > #line 2453 "conf_parser.y" /* yacc.c:1646  */
5622      {
5623    if (conf_parser_ctx.pass == 2)
5624 <    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);
6714 < }
6715 <    break;
6716 <
6717 <  case 505:
6718 <
6719 < /* Line 1806 of yacc.c  */
6720 < #line 2879 "ircd_parser.y"
6721 <    {
6722 <  ConfigFileEntry.burst_away = yylval.number;
6723 < }
6724 <    break;
6725 <
6726 <  case 506:
6727 <
6728 < /* Line 1806 of yacc.c  */
6729 < #line 2884 "ircd_parser.y"
6730 <    {
6731 <  ConfigFileEntry.use_whois_actually = yylval.number;
6732 < }
6733 <    break;
6734 <
6735 <  case 507:
6736 <
6737 < /* Line 1806 of yacc.c  */
6738 < #line 2889 "ircd_parser.y"
6739 <    {
6740 <  GlobalSetOptions.rejecttime = yylval.number;
6741 < }
6742 <    break;
6743 <
6744 <  case 508:
6745 <
6746 < /* Line 1806 of yacc.c  */
6747 < #line 2894 "ircd_parser.y"
6748 <    {
6749 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
6750 < }
6751 <    break;
6752 <
6753 <  case 509:
6754 <
6755 < /* Line 1806 of yacc.c  */
6756 < #line 2899 "ircd_parser.y"
6757 <    {
6758 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5624 >    reset_block_state();
5625   }
5626 + #line 5627 "conf_parser.c" /* yacc.c:1646  */
5627      break;
5628  
5629 <  case 510:
5630 <
6764 < /* Line 1806 of yacc.c  */
6765 < #line 2904 "ircd_parser.y"
5629 >  case 456:
5630 > #line 2457 "conf_parser.y" /* yacc.c:1646  */
5631      {
5632 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
6768 < }
6769 <    break;
5632 >  struct MaskItem *conf = NULL;
5633  
5634 <  case 511:
6772 <
6773 < /* Line 1806 of yacc.c  */
6774 < #line 2909 "ircd_parser.y"
6775 <    {
6776 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
6777 < }
5634 >  if (conf_parser_ctx.pass != 2)
5635      break;
5636  
5637 <  case 512:
6781 <
6782 < /* Line 1806 of yacc.c  */
6783 < #line 2914 "ircd_parser.y"
6784 <    {
6785 <  ConfigFileEntry.disable_remote = yylval.number;
6786 < }
5637 >  if (!block_state.name.buf[0])
5638      break;
5639  
5640 <  case 513:
5640 >  conf = conf_make(CONF_XLINE);
5641 >  conf->name = xstrdup(block_state.name.buf);
5642  
5643 < /* Line 1806 of yacc.c  */
5644 < #line 2919 "ircd_parser.y"
5645 <    {
5646 <  ConfigFileEntry.failed_oper_notice = yylval.number;
6795 < }
6796 <    break;
6797 <
6798 <  case 514:
6799 <
6800 < /* Line 1806 of yacc.c  */
6801 < #line 2924 "ircd_parser.y"
6802 <    {
6803 <  ConfigFileEntry.anti_nick_flood = yylval.number;
6804 < }
6805 <    break;
6806 <
6807 <  case 515:
6808 <
6809 < /* Line 1806 of yacc.c  */
6810 < #line 2929 "ircd_parser.y"
6811 <    {
6812 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5643 >  if (block_state.rpass.buf[0])
5644 >    conf->reason = xstrdup(block_state.rpass.buf);
5645 >  else
5646 >    conf->reason = xstrdup(CONF_NOREASON);
5647   }
5648 + #line 5649 "conf_parser.c" /* yacc.c:1646  */
5649      break;
5650  
5651 <  case 516:
5652 <
6818 < /* Line 1806 of yacc.c  */
6819 < #line 2934 "ircd_parser.y"
5651 >  case 462:
5652 > #line 2479 "conf_parser.y" /* yacc.c:1646  */
5653      {
5654 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5654 >  if (conf_parser_ctx.pass == 2)
5655 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5656   }
5657 + #line 5658 "conf_parser.c" /* yacc.c:1646  */
5658      break;
5659  
5660 <  case 517:
5661 <
6827 < /* Line 1806 of yacc.c  */
6828 < #line 2939 "ircd_parser.y"
5660 >  case 463:
5661 > #line 2485 "conf_parser.y" /* yacc.c:1646  */
5662      {
5663 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5663 >  if (conf_parser_ctx.pass == 2)
5664 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5665   }
5666 + #line 5667 "conf_parser.c" /* yacc.c:1646  */
5667      break;
5668  
5669    case 518:
5670 <
6836 < /* Line 1806 of yacc.c  */
6837 < #line 2944 "ircd_parser.y"
5670 > #line 2551 "conf_parser.y" /* yacc.c:1646  */
5671      {
5672 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5672 >  ConfigFileEntry.max_watch = (yyvsp[-1].number);
5673   }
5674 + #line 5675 "conf_parser.c" /* yacc.c:1646  */
5675      break;
5676  
5677    case 519:
5678 <
6845 < /* Line 1806 of yacc.c  */
6846 < #line 2949 "ircd_parser.y"
5678 > #line 2556 "conf_parser.y" /* yacc.c:1646  */
5679      {
5680 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5680 >  if (conf_parser_ctx.pass == 2)
5681 >    ConfigFileEntry.cycle_on_host_change = yylval.number;
5682   }
5683 + #line 5684 "conf_parser.c" /* yacc.c:1646  */
5684      break;
5685  
5686    case 520:
5687 <
6854 < /* Line 1806 of yacc.c  */
6855 < #line 2954 "ircd_parser.y"
5687 > #line 2562 "conf_parser.y" /* yacc.c:1646  */
5688      {
5689    if (conf_parser_ctx.pass == 2)
5690 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5690 >    ConfigFileEntry.glines = yylval.number;
5691   }
5692 + #line 5693 "conf_parser.c" /* yacc.c:1646  */
5693      break;
5694  
5695    case 521:
5696 <
6864 < /* Line 1806 of yacc.c  */
6865 < #line 2960 "ircd_parser.y"
5696 > #line 2568 "conf_parser.y" /* yacc.c:1646  */
5697      {
5698 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5699 <  {
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 <  }
5698 >  if (conf_parser_ctx.pass == 2)
5699 >    ConfigFileEntry.gline_time = (yyvsp[-1].number);
5700   }
5701 + #line 5702 "conf_parser.c" /* yacc.c:1646  */
5702      break;
5703  
5704    case 522:
5705 <
6879 < /* Line 1806 of yacc.c  */
6880 < #line 2971 "ircd_parser.y"
5705 > #line 2574 "conf_parser.y" /* yacc.c:1646  */
5706      {
5707 <  ConfigFileEntry.kline_with_reason = yylval.number;
5707 >  if (conf_parser_ctx.pass == 2)
5708 >    ConfigFileEntry.gline_request_time = (yyvsp[-1].number);
5709   }
5710 + #line 5711 "conf_parser.c" /* yacc.c:1646  */
5711      break;
5712  
5713    case 523:
5714 <
6888 < /* Line 1806 of yacc.c  */
6889 < #line 2976 "ircd_parser.y"
5714 > #line 2580 "conf_parser.y" /* yacc.c:1646  */
5715      {
5716 <  if (conf_parser_ctx.pass == 2)
6892 <  {
6893 <    MyFree(ConfigFileEntry.kline_reason);
6894 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6895 <  }
5716 >  ConfigFileEntry.gline_min_cidr = (yyvsp[-1].number);
5717   }
5718 + #line 5719 "conf_parser.c" /* yacc.c:1646  */
5719      break;
5720  
5721    case 524:
5722 <
6901 < /* Line 1806 of yacc.c  */
6902 < #line 2985 "ircd_parser.y"
5722 > #line 2585 "conf_parser.y" /* yacc.c:1646  */
5723      {
5724 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5724 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[-1].number);
5725   }
5726 + #line 5727 "conf_parser.c" /* yacc.c:1646  */
5727      break;
5728  
5729    case 525:
5730 <
6910 < /* Line 1806 of yacc.c  */
6911 < #line 2990 "ircd_parser.y"
5730 > #line 2590 "conf_parser.y" /* yacc.c:1646  */
5731      {
5732 <  ConfigFileEntry.warn_no_nline = yylval.number;
5732 >  ConfigFileEntry.tkline_expire_notices = yylval.number;
5733   }
5734 + #line 5735 "conf_parser.c" /* yacc.c:1646  */
5735      break;
5736  
5737    case 526:
5738 <
6919 < /* Line 1806 of yacc.c  */
6920 < #line 2995 "ircd_parser.y"
5738 > #line 2595 "conf_parser.y" /* yacc.c:1646  */
5739      {
5740 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5740 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[-1].number);
5741   }
5742 + #line 5743 "conf_parser.c" /* yacc.c:1646  */
5743      break;
5744  
5745    case 527:
5746 <
6928 < /* Line 1806 of yacc.c  */
6929 < #line 3000 "ircd_parser.y"
5746 > #line 2600 "conf_parser.y" /* yacc.c:1646  */
5747      {
5748 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5748 >  ConfigFileEntry.hide_spoof_ips = yylval.number;
5749   }
5750 + #line 5751 "conf_parser.c" /* yacc.c:1646  */
5751      break;
5752  
5753    case 528:
5754 <
6937 < /* Line 1806 of yacc.c  */
6938 < #line 3005 "ircd_parser.y"
5754 > #line 2605 "conf_parser.y" /* yacc.c:1646  */
5755      {
5756 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5756 >  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5757   }
5758 + #line 5759 "conf_parser.c" /* yacc.c:1646  */
5759      break;
5760  
5761    case 529:
5762 <
6946 < /* Line 1806 of yacc.c  */
6947 < #line 3010 "ircd_parser.y"
5762 > #line 2610 "conf_parser.y" /* yacc.c:1646  */
5763      {
5764 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5764 >  ConfigFileEntry.failed_oper_notice = yylval.number;
5765   }
5766 + #line 5767 "conf_parser.c" /* yacc.c:1646  */
5767      break;
5768  
5769    case 530:
5770 <
6955 < /* Line 1806 of yacc.c  */
6956 < #line 3013 "ircd_parser.y"
5770 > #line 2615 "conf_parser.y" /* yacc.c:1646  */
5771      {
5772 <  ConfigFileEntry.stats_k_oper_only = 1;
5772 >  ConfigFileEntry.anti_nick_flood = yylval.number;
5773   }
5774 + #line 5775 "conf_parser.c" /* yacc.c:1646  */
5775      break;
5776  
5777    case 531:
5778 <
6964 < /* Line 1806 of yacc.c  */
6965 < #line 3018 "ircd_parser.y"
5778 > #line 2620 "conf_parser.y" /* yacc.c:1646  */
5779      {
5780 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5780 >  ConfigFileEntry.max_nick_time = (yyvsp[-1].number);
5781   }
5782 + #line 5783 "conf_parser.c" /* yacc.c:1646  */
5783      break;
5784  
5785    case 532:
5786 <
6973 < /* Line 1806 of yacc.c  */
6974 < #line 3021 "ircd_parser.y"
5786 > #line 2625 "conf_parser.y" /* yacc.c:1646  */
5787      {
5788 <  ConfigFileEntry.stats_i_oper_only = 1;
5788 >  ConfigFileEntry.max_nick_changes = (yyvsp[-1].number);
5789   }
5790 + #line 5791 "conf_parser.c" /* yacc.c:1646  */
5791      break;
5792  
5793    case 533:
5794 <
6982 < /* Line 1806 of yacc.c  */
6983 < #line 3026 "ircd_parser.y"
5794 > #line 2630 "conf_parser.y" /* yacc.c:1646  */
5795      {
5796 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5796 >  ConfigFileEntry.max_accept = (yyvsp[-1].number);
5797   }
5798 + #line 5799 "conf_parser.c" /* yacc.c:1646  */
5799      break;
5800  
5801    case 534:
5802 <
6991 < /* Line 1806 of yacc.c  */
6992 < #line 3031 "ircd_parser.y"
5802 > #line 2635 "conf_parser.y" /* yacc.c:1646  */
5803      {
5804 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5804 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[-1].number);
5805   }
5806 + #line 5807 "conf_parser.c" /* yacc.c:1646  */
5807      break;
5808  
5809    case 535:
5810 <
7000 < /* Line 1806 of yacc.c  */
7001 < #line 3036 "ircd_parser.y"
5810 > #line 2640 "conf_parser.y" /* yacc.c:1646  */
5811      {
5812 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5812 >  ConfigFileEntry.ts_warn_delta = (yyvsp[-1].number);
5813   }
5814 + #line 5815 "conf_parser.c" /* yacc.c:1646  */
5815      break;
5816  
5817    case 536:
5818 <
7009 < /* Line 1806 of yacc.c  */
7010 < #line 3041 "ircd_parser.y"
5818 > #line 2645 "conf_parser.y" /* yacc.c:1646  */
5819      {
5820 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5820 >  if (conf_parser_ctx.pass == 2)
5821 >    ConfigFileEntry.ts_max_delta = (yyvsp[-1].number);
5822   }
5823 + #line 5824 "conf_parser.c" /* yacc.c:1646  */
5824      break;
5825  
5826    case 537:
5827 <
7018 < /* Line 1806 of yacc.c  */
7019 < #line 3046 "ircd_parser.y"
5827 > #line 2651 "conf_parser.y" /* yacc.c:1646  */
5828      {
5829 <  ConfigFileEntry.short_motd = yylval.number;
5829 >  if (((yyvsp[-1].number) > 0) && conf_parser_ctx.pass == 1)
5830 >  {
5831 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5832 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5833 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5834 >    exit(0);
5835 >  }
5836   }
5837 + #line 5838 "conf_parser.c" /* yacc.c:1646  */
5838      break;
5839  
5840    case 538:
5841 <
7027 < /* Line 1806 of yacc.c  */
7028 < #line 3051 "ircd_parser.y"
5841 > #line 2662 "conf_parser.y" /* yacc.c:1646  */
5842      {
5843 <  ConfigFileEntry.no_oper_flood = yylval.number;
5843 >  ConfigFileEntry.invisible_on_connect = yylval.number;
5844   }
5845 + #line 5846 "conf_parser.c" /* yacc.c:1646  */
5846      break;
5847  
5848    case 539:
5849 <
7036 < /* Line 1806 of yacc.c  */
7037 < #line 3056 "ircd_parser.y"
5849 > #line 2667 "conf_parser.y" /* yacc.c:1646  */
5850      {
5851 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5851 >  ConfigFileEntry.warn_no_connect_block = yylval.number;
5852   }
5853 + #line 5854 "conf_parser.c" /* yacc.c:1646  */
5854      break;
5855  
5856    case 540:
5857 <
7045 < /* Line 1806 of yacc.c  */
7046 < #line 3061 "ircd_parser.y"
5857 > #line 2672 "conf_parser.y" /* yacc.c:1646  */
5858      {
5859 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5859 >  ConfigFileEntry.stats_e_disabled = yylval.number;
5860   }
5861 + #line 5862 "conf_parser.c" /* yacc.c:1646  */
5862      break;
5863  
5864    case 541:
5865 <
7054 < /* Line 1806 of yacc.c  */
7055 < #line 3066 "ircd_parser.y"
5865 > #line 2677 "conf_parser.y" /* yacc.c:1646  */
5866      {
5867 <  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 <  }
5867 >  ConfigFileEntry.stats_o_oper_only = yylval.number;
5868   }
5869 + #line 5870 "conf_parser.c" /* yacc.c:1646  */
5870      break;
5871  
5872    case 542:
5873 <
7069 < /* Line 1806 of yacc.c  */
7070 < #line 3077 "ircd_parser.y"
5873 > #line 2682 "conf_parser.y" /* yacc.c:1646  */
5874      {
5875 <  ConfigFileEntry.idletime = (yyvsp[(3) - (4)].number);
5875 >  ConfigFileEntry.stats_P_oper_only = yylval.number;
5876   }
5877 + #line 5878 "conf_parser.c" /* yacc.c:1646  */
5878      break;
5879  
5880    case 543:
5881 <
7078 < /* Line 1806 of yacc.c  */
7079 < #line 3082 "ircd_parser.y"
5881 > #line 2687 "conf_parser.y" /* yacc.c:1646  */
5882      {
5883 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5883 >  ConfigFileEntry.stats_u_oper_only = yylval.number;
5884   }
5885 + #line 5886 "conf_parser.c" /* yacc.c:1646  */
5886      break;
5887  
5888    case 544:
5889 <
7087 < /* Line 1806 of yacc.c  */
7088 < #line 3087 "ircd_parser.y"
5889 > #line 2692 "conf_parser.y" /* yacc.c:1646  */
5890      {
5891 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5891 >  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5892   }
5893 + #line 5894 "conf_parser.c" /* yacc.c:1646  */
5894      break;
5895  
5896    case 545:
5897 <
7096 < /* Line 1806 of yacc.c  */
7097 < #line 3092 "ircd_parser.y"
5897 > #line 2695 "conf_parser.y" /* yacc.c:1646  */
5898      {
5899 <  if (conf_parser_ctx.pass == 2)
7100 <  {
7101 <    MyFree(ConfigFileEntry.servlink_path);
7102 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
7103 <  }
5899 >  ConfigFileEntry.stats_k_oper_only = 1;
5900   }
5901 + #line 5902 "conf_parser.c" /* yacc.c:1646  */
5902      break;
5903  
5904    case 546:
5905 <
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++)
5905 > #line 2700 "conf_parser.y" /* yacc.c:1646  */
5906      {
5907 <      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
5907 >  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5908   }
5909 + #line 5910 "conf_parser.c" /* yacc.c:1646  */
5910      break;
5911  
5912    case 547:
5913 <
7145 < /* Line 1806 of yacc.c  */
7146 < #line 3133 "ircd_parser.y"
7147 <    {
7148 <  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))
5913 > #line 2703 "conf_parser.y" /* yacc.c:1646  */
5914      {
5915 <      yyerror("Ignoring invalid compression_level, using default");
7158 <      ConfigFileEntry.compression_level = 0;
7159 <    }
7160 < #endif
7161 <  }
5915 >  ConfigFileEntry.stats_i_oper_only = 1;
5916   }
5917 + #line 5918 "conf_parser.c" /* yacc.c:1646  */
5918      break;
5919  
5920    case 548:
5921 <
7167 < /* Line 1806 of yacc.c  */
7168 < #line 3151 "ircd_parser.y"
5921 > #line 2708 "conf_parser.y" /* yacc.c:1646  */
5922      {
5923 <  ConfigFileEntry.use_egd = yylval.number;
5923 >  ConfigFileEntry.pace_wait = (yyvsp[-1].number);
5924   }
5925 + #line 5926 "conf_parser.c" /* yacc.c:1646  */
5926      break;
5927  
5928    case 549:
5929 <
7176 < /* Line 1806 of yacc.c  */
7177 < #line 3156 "ircd_parser.y"
5929 > #line 2713 "conf_parser.y" /* yacc.c:1646  */
5930      {
5931 <  if (conf_parser_ctx.pass == 2)
7180 <  {
7181 <    MyFree(ConfigFileEntry.egdpool_path);
7182 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
7183 <  }
5931 >  ConfigFileEntry.caller_id_wait = (yyvsp[-1].number);
5932   }
5933 + #line 5934 "conf_parser.c" /* yacc.c:1646  */
5934      break;
5935  
5936    case 550:
5937 <
7189 < /* Line 1806 of yacc.c  */
7190 < #line 3165 "ircd_parser.y"
5937 > #line 2718 "conf_parser.y" /* yacc.c:1646  */
5938      {
5939 <  ConfigFileEntry.ping_cookie = yylval.number;
5939 >  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5940   }
5941 + #line 5942 "conf_parser.c" /* yacc.c:1646  */
5942      break;
5943  
5944    case 551:
5945 <
7198 < /* Line 1806 of yacc.c  */
7199 < #line 3170 "ircd_parser.y"
5945 > #line 2723 "conf_parser.y" /* yacc.c:1646  */
5946      {
5947 <  ConfigFileEntry.disable_auth = yylval.number;
5947 >  ConfigFileEntry.pace_wait_simple = (yyvsp[-1].number);
5948   }
5949 + #line 5950 "conf_parser.c" /* yacc.c:1646  */
5950      break;
5951  
5952    case 552:
5953 <
7207 < /* Line 1806 of yacc.c  */
7208 < #line 3175 "ircd_parser.y"
5953 > #line 2728 "conf_parser.y" /* yacc.c:1646  */
5954      {
5955 <  ConfigFileEntry.throttle_time = yylval.number;
5955 >  ConfigFileEntry.short_motd = yylval.number;
5956   }
5957 + #line 5958 "conf_parser.c" /* yacc.c:1646  */
5958      break;
5959  
5960    case 553:
5961 + #line 2733 "conf_parser.y" /* yacc.c:1646  */
5962 +    {
5963 +  ConfigFileEntry.no_oper_flood = yylval.number;
5964 + }
5965 + #line 5966 "conf_parser.c" /* yacc.c:1646  */
5966 +    break;
5967  
5968 < /* Line 1806 of yacc.c  */
5969 < #line 3180 "ircd_parser.y"
5968 >  case 554:
5969 > #line 2738 "conf_parser.y" /* yacc.c:1646  */
5970      {
5971 <  ConfigFileEntry.oper_umodes = 0;
5971 >  ConfigFileEntry.true_no_oper_flood = yylval.number;
5972   }
5973 + #line 5974 "conf_parser.c" /* yacc.c:1646  */
5974      break;
5975  
5976 <  case 557:
5976 >  case 555:
5977 > #line 2743 "conf_parser.y" /* yacc.c:1646  */
5978 >    {
5979 >  ConfigFileEntry.oper_pass_resv = yylval.number;
5980 > }
5981 > #line 5982 "conf_parser.c" /* yacc.c:1646  */
5982 >    break;
5983  
5984 < /* Line 1806 of yacc.c  */
5985 < #line 3186 "ircd_parser.y"
5984 >  case 556:
5985 > #line 2748 "conf_parser.y" /* yacc.c:1646  */
5986      {
5987 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5987 >  ConfigFileEntry.dots_in_ident = (yyvsp[-1].number);
5988   }
5989 + #line 5990 "conf_parser.c" /* yacc.c:1646  */
5990      break;
5991  
5992 <  case 558:
5992 >  case 557:
5993 > #line 2753 "conf_parser.y" /* yacc.c:1646  */
5994 >    {
5995 >  ConfigFileEntry.max_targets = (yyvsp[-1].number);
5996 > }
5997 > #line 5998 "conf_parser.c" /* yacc.c:1646  */
5998 >    break;
5999  
6000 < /* Line 1806 of yacc.c  */
6001 < #line 3189 "ircd_parser.y"
6000 >  case 558:
6001 > #line 2758 "conf_parser.y" /* yacc.c:1646  */
6002      {
6003 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6003 >  ConfigFileEntry.use_egd = yylval.number;
6004   }
6005 + #line 6006 "conf_parser.c" /* yacc.c:1646  */
6006      break;
6007  
6008    case 559:
6009 <
7243 < /* Line 1806 of yacc.c  */
7244 < #line 3192 "ircd_parser.y"
6009 > #line 2763 "conf_parser.y" /* yacc.c:1646  */
6010      {
6011 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6011 >  if (conf_parser_ctx.pass == 2)
6012 >  {
6013 >    MyFree(ConfigFileEntry.egdpool_path);
6014 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6015 >  }
6016   }
6017 + #line 6018 "conf_parser.c" /* yacc.c:1646  */
6018      break;
6019  
6020    case 560:
6021 <
7252 < /* Line 1806 of yacc.c  */
7253 < #line 3195 "ircd_parser.y"
6021 > #line 2772 "conf_parser.y" /* yacc.c:1646  */
6022      {
6023 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6023 >  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6024 >  {
6025 >    MyFree(ConfigFileEntry.service_name);
6026 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6027 >  }
6028   }
6029 + #line 6030 "conf_parser.c" /* yacc.c:1646  */
6030      break;
6031  
6032    case 561:
6033 <
7261 < /* Line 1806 of yacc.c  */
7262 < #line 3198 "ircd_parser.y"
6033 > #line 2781 "conf_parser.y" /* yacc.c:1646  */
6034      {
6035 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6035 >  ConfigFileEntry.ping_cookie = yylval.number;
6036   }
6037 + #line 6038 "conf_parser.c" /* yacc.c:1646  */
6038      break;
6039  
6040    case 562:
6041 <
7270 < /* Line 1806 of yacc.c  */
7271 < #line 3201 "ircd_parser.y"
6041 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6042      {
6043 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6043 >  ConfigFileEntry.disable_auth = yylval.number;
6044   }
6045 + #line 6046 "conf_parser.c" /* yacc.c:1646  */
6046      break;
6047  
6048    case 563:
6049 <
7279 < /* Line 1806 of yacc.c  */
7280 < #line 3204 "ircd_parser.y"
6049 > #line 2791 "conf_parser.y" /* yacc.c:1646  */
6050      {
6051 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6051 >  ConfigFileEntry.throttle_count = (yyvsp[-1].number);
6052   }
6053 + #line 6054 "conf_parser.c" /* yacc.c:1646  */
6054      break;
6055  
6056    case 564:
6057 <
7288 < /* Line 1806 of yacc.c  */
7289 < #line 3207 "ircd_parser.y"
6057 > #line 2796 "conf_parser.y" /* yacc.c:1646  */
6058      {
6059 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6059 >  ConfigFileEntry.throttle_time = (yyvsp[-1].number);
6060   }
6061 + #line 6062 "conf_parser.c" /* yacc.c:1646  */
6062      break;
6063  
6064    case 565:
6065 <
7297 < /* Line 1806 of yacc.c  */
7298 < #line 3210 "ircd_parser.y"
6065 > #line 2801 "conf_parser.y" /* yacc.c:1646  */
6066      {
6067 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6067 >  ConfigFileEntry.oper_umodes = 0;
6068   }
6069 + #line 6070 "conf_parser.c" /* yacc.c:1646  */
6070      break;
6071  
6072 <  case 566:
6073 <
7306 < /* Line 1806 of yacc.c  */
7307 < #line 3213 "ircd_parser.y"
6072 >  case 569:
6073 > #line 2807 "conf_parser.y" /* yacc.c:1646  */
6074      {
6075 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6075 >  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6076   }
6077 + #line 6078 "conf_parser.c" /* yacc.c:1646  */
6078      break;
6079  
6080 <  case 567:
6081 <
7315 < /* Line 1806 of yacc.c  */
7316 < #line 3216 "ircd_parser.y"
6080 >  case 570:
6081 > #line 2810 "conf_parser.y" /* yacc.c:1646  */
6082      {
6083 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6083 >  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6084   }
6085 + #line 6086 "conf_parser.c" /* yacc.c:1646  */
6086      break;
6087  
6088 <  case 568:
6089 <
7324 < /* Line 1806 of yacc.c  */
7325 < #line 3219 "ircd_parser.y"
6088 >  case 571:
6089 > #line 2813 "conf_parser.y" /* yacc.c:1646  */
6090      {
6091 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6091 >  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6092   }
6093 + #line 6094 "conf_parser.c" /* yacc.c:1646  */
6094      break;
6095  
6096 <  case 569:
6097 <
7333 < /* Line 1806 of yacc.c  */
7334 < #line 3222 "ircd_parser.y"
6096 >  case 572:
6097 > #line 2816 "conf_parser.y" /* yacc.c:1646  */
6098      {
6099 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6099 >  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6100   }
6101 + #line 6102 "conf_parser.c" /* yacc.c:1646  */
6102      break;
6103  
6104 <  case 570:
6105 <
7342 < /* Line 1806 of yacc.c  */
7343 < #line 3225 "ircd_parser.y"
6104 >  case 573:
6105 > #line 2819 "conf_parser.y" /* yacc.c:1646  */
6106      {
6107 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6107 >  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6108   }
6109 + #line 6110 "conf_parser.c" /* yacc.c:1646  */
6110      break;
6111  
6112 <  case 571:
6113 <
7351 < /* Line 1806 of yacc.c  */
7352 < #line 3228 "ircd_parser.y"
6112 >  case 574:
6113 > #line 2822 "conf_parser.y" /* yacc.c:1646  */
6114      {
6115 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6115 >  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6116   }
6117 + #line 6118 "conf_parser.c" /* yacc.c:1646  */
6118      break;
6119  
6120 <  case 572:
6121 <
7360 < /* Line 1806 of yacc.c  */
7361 < #line 3231 "ircd_parser.y"
6120 >  case 575:
6121 > #line 2825 "conf_parser.y" /* yacc.c:1646  */
6122      {
6123 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6123 >  ConfigFileEntry.oper_umodes |= UMODE_HIDECHANS;
6124   }
6125 + #line 6126 "conf_parser.c" /* yacc.c:1646  */
6126      break;
6127  
6128 <  case 573:
6129 <
7369 < /* Line 1806 of yacc.c  */
7370 < #line 3234 "ircd_parser.y"
6128 >  case 576:
6129 > #line 2828 "conf_parser.y" /* yacc.c:1646  */
6130      {
6131 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6131 >  ConfigFileEntry.oper_umodes |= UMODE_HIDEIDLE;
6132   }
6133 + #line 6134 "conf_parser.c" /* yacc.c:1646  */
6134      break;
6135  
6136 <  case 574:
6137 <
7378 < /* Line 1806 of yacc.c  */
7379 < #line 3237 "ircd_parser.y"
6136 >  case 577:
6137 > #line 2831 "conf_parser.y" /* yacc.c:1646  */
6138      {
6139 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6139 >  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6140   }
6141 + #line 6142 "conf_parser.c" /* yacc.c:1646  */
6142      break;
6143  
6144 <  case 575:
6145 <
7387 < /* Line 1806 of yacc.c  */
7388 < #line 3240 "ircd_parser.y"
6144 >  case 578:
6145 > #line 2834 "conf_parser.y" /* yacc.c:1646  */
6146      {
6147 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6147 >  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6148   }
6149 + #line 6150 "conf_parser.c" /* yacc.c:1646  */
6150      break;
6151  
6152 <  case 576:
6153 <
7396 < /* Line 1806 of yacc.c  */
7397 < #line 3245 "ircd_parser.y"
6152 >  case 579:
6153 > #line 2837 "conf_parser.y" /* yacc.c:1646  */
6154      {
6155 <  ConfigFileEntry.oper_only_umodes = 0;
6155 >  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6156   }
6157 + #line 6158 "conf_parser.c" /* yacc.c:1646  */
6158      break;
6159  
6160    case 580:
6161 <
7405 < /* Line 1806 of yacc.c  */
7406 < #line 3251 "ircd_parser.y"
6161 > #line 2840 "conf_parser.y" /* yacc.c:1646  */
6162      {
6163 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6163 >  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6164   }
6165 + #line 6166 "conf_parser.c" /* yacc.c:1646  */
6166      break;
6167  
6168    case 581:
6169 <
7414 < /* Line 1806 of yacc.c  */
7415 < #line 3254 "ircd_parser.y"
6169 > #line 2843 "conf_parser.y" /* yacc.c:1646  */
6170      {
6171 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6171 >  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6172   }
6173 + #line 6174 "conf_parser.c" /* yacc.c:1646  */
6174      break;
6175  
6176    case 582:
6177 <
7423 < /* Line 1806 of yacc.c  */
7424 < #line 3257 "ircd_parser.y"
6177 > #line 2846 "conf_parser.y" /* yacc.c:1646  */
6178      {
6179 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6179 >  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6180   }
6181 + #line 6182 "conf_parser.c" /* yacc.c:1646  */
6182      break;
6183  
6184    case 583:
6185 <
7432 < /* Line 1806 of yacc.c  */
7433 < #line 3260 "ircd_parser.y"
6185 > #line 2849 "conf_parser.y" /* yacc.c:1646  */
6186      {
6187 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6187 >  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6188   }
6189 + #line 6190 "conf_parser.c" /* yacc.c:1646  */
6190      break;
6191  
6192    case 584:
6193 <
7441 < /* Line 1806 of yacc.c  */
7442 < #line 3263 "ircd_parser.y"
6193 > #line 2852 "conf_parser.y" /* yacc.c:1646  */
6194      {
6195 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6195 >  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6196   }
6197 + #line 6198 "conf_parser.c" /* yacc.c:1646  */
6198      break;
6199  
6200    case 585:
6201 <
6202 < /* Line 1806 of yacc.c  */
6203 < #line 3266 "ircd_parser.y"
7452 <    {
7453 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6201 > #line 2855 "conf_parser.y" /* yacc.c:1646  */
6202 >    {
6203 >  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6204   }
6205 + #line 6206 "conf_parser.c" /* yacc.c:1646  */
6206      break;
6207  
6208    case 586:
6209 <
7459 < /* Line 1806 of yacc.c  */
7460 < #line 3269 "ircd_parser.y"
6209 > #line 2858 "conf_parser.y" /* yacc.c:1646  */
6210      {
6211 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6211 >  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6212   }
6213 + #line 6214 "conf_parser.c" /* yacc.c:1646  */
6214      break;
6215  
6216    case 587:
6217 <
7468 < /* Line 1806 of yacc.c  */
7469 < #line 3272 "ircd_parser.y"
6217 > #line 2861 "conf_parser.y" /* yacc.c:1646  */
6218      {
6219 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6219 >  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6220   }
6221 + #line 6222 "conf_parser.c" /* yacc.c:1646  */
6222      break;
6223  
6224    case 588:
6225 <
7477 < /* Line 1806 of yacc.c  */
7478 < #line 3275 "ircd_parser.y"
6225 > #line 2864 "conf_parser.y" /* yacc.c:1646  */
6226      {
6227 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6227 >  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6228   }
6229 + #line 6230 "conf_parser.c" /* yacc.c:1646  */
6230      break;
6231  
6232    case 589:
6233 <
7486 < /* Line 1806 of yacc.c  */
7487 < #line 3278 "ircd_parser.y"
6233 > #line 2867 "conf_parser.y" /* yacc.c:1646  */
6234      {
6235 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6235 >  ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6236   }
6237 + #line 6238 "conf_parser.c" /* yacc.c:1646  */
6238      break;
6239  
6240    case 590:
6241 <
7495 < /* Line 1806 of yacc.c  */
7496 < #line 3281 "ircd_parser.y"
6241 > #line 2870 "conf_parser.y" /* yacc.c:1646  */
6242      {
6243 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6243 >  ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6244   }
6245 + #line 6246 "conf_parser.c" /* yacc.c:1646  */
6246      break;
6247  
6248    case 591:
6249 <
7504 < /* Line 1806 of yacc.c  */
7505 < #line 3284 "ircd_parser.y"
7506 <    {
7507 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
7508 < }
7509 <    break;
7510 <
7511 <  case 592:
7512 <
7513 < /* Line 1806 of yacc.c  */
7514 < #line 3287 "ircd_parser.y"
7515 <    {
7516 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
7517 < }
7518 <    break;
7519 <
7520 <  case 593:
7521 <
7522 < /* Line 1806 of yacc.c  */
7523 < #line 3290 "ircd_parser.y"
7524 <    {
7525 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
7526 < }
7527 <    break;
7528 <
7529 <  case 594:
7530 <
7531 < /* Line 1806 of yacc.c  */
7532 < #line 3293 "ircd_parser.y"
6249 > #line 2875 "conf_parser.y" /* yacc.c:1646  */
6250      {
6251 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6251 >  ConfigFileEntry.oper_only_umodes = 0;
6252   }
6253 + #line 6254 "conf_parser.c" /* yacc.c:1646  */
6254      break;
6255  
6256    case 595:
6257 <
7540 < /* Line 1806 of yacc.c  */
7541 < #line 3296 "ircd_parser.y"
6257 > #line 2881 "conf_parser.y" /* yacc.c:1646  */
6258      {
6259 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6259 >  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6260   }
6261 + #line 6262 "conf_parser.c" /* yacc.c:1646  */
6262      break;
6263  
6264    case 596:
6265 <
7549 < /* Line 1806 of yacc.c  */
7550 < #line 3299 "ircd_parser.y"
6265 > #line 2884 "conf_parser.y" /* yacc.c:1646  */
6266      {
6267 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6267 >  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6268   }
6269 + #line 6270 "conf_parser.c" /* yacc.c:1646  */
6270      break;
6271  
6272    case 597:
6273 <
7558 < /* Line 1806 of yacc.c  */
7559 < #line 3302 "ircd_parser.y"
6273 > #line 2887 "conf_parser.y" /* yacc.c:1646  */
6274      {
6275 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6275 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6276   }
6277 + #line 6278 "conf_parser.c" /* yacc.c:1646  */
6278      break;
6279  
6280    case 598:
6281 <
7567 < /* Line 1806 of yacc.c  */
7568 < #line 3305 "ircd_parser.y"
6281 > #line 2890 "conf_parser.y" /* yacc.c:1646  */
6282      {
6283 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6283 >  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6284   }
6285 + #line 6286 "conf_parser.c" /* yacc.c:1646  */
6286      break;
6287  
6288    case 599:
6289 <
7576 < /* Line 1806 of yacc.c  */
7577 < #line 3310 "ircd_parser.y"
6289 > #line 2893 "conf_parser.y" /* yacc.c:1646  */
6290      {
6291 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6291 >  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6292   }
6293 + #line 6294 "conf_parser.c" /* yacc.c:1646  */
6294      break;
6295  
6296    case 600:
6297 <
7585 < /* Line 1806 of yacc.c  */
7586 < #line 3315 "ircd_parser.y"
6297 > #line 2896 "conf_parser.y" /* yacc.c:1646  */
6298      {
6299 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6299 >  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6300   }
6301 + #line 6302 "conf_parser.c" /* yacc.c:1646  */
6302      break;
6303  
6304    case 601:
6305 <
7594 < /* Line 1806 of yacc.c  */
7595 < #line 3320 "ircd_parser.y"
6305 > #line 2899 "conf_parser.y" /* yacc.c:1646  */
6306      {
6307 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6307 >  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6308   }
6309 + #line 6310 "conf_parser.c" /* yacc.c:1646  */
6310      break;
6311  
6312    case 602:
6313 <
7603 < /* Line 1806 of yacc.c  */
7604 < #line 3325 "ircd_parser.y"
6313 > #line 2902 "conf_parser.y" /* yacc.c:1646  */
6314      {
6315 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
6315 >  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6316   }
6317 + #line 6318 "conf_parser.c" /* yacc.c:1646  */
6318      break;
6319  
6320    case 603:
6321 <
7612 < /* Line 1806 of yacc.c  */
7613 < #line 3334 "ircd_parser.y"
6321 > #line 2905 "conf_parser.y" /* yacc.c:1646  */
6322      {
6323 <  if (conf_parser_ctx.pass == 2)
7616 <  {
7617 <    yy_conf = make_conf_item(GDENY_TYPE);
7618 <    yy_aconf = map_to_conf(yy_conf);
7619 <  }
6323 >  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6324   }
6325 + #line 6326 "conf_parser.c" /* yacc.c:1646  */
6326      break;
6327  
6328    case 604:
6329 <
7625 < /* Line 1806 of yacc.c  */
7626 < #line 3341 "ircd_parser.y"
6329 > #line 2908 "conf_parser.y" /* yacc.c:1646  */
6330      {
6331 <  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)
7635 <    {
7636 <      delete_conf_item(yy_conf);
7637 <      yy_conf = NULL;
7638 <      yy_aconf = NULL;
7639 <    }
7640 <  }
6331 >  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6332   }
6333 + #line 6334 "conf_parser.c" /* yacc.c:1646  */
6334      break;
6335  
6336 <  case 614:
6337 <
7646 < /* Line 1806 of yacc.c  */
7647 < #line 3367 "ircd_parser.y"
6336 >  case 605:
6337 > #line 2911 "conf_parser.y" /* yacc.c:1646  */
6338      {
6339 <  if (conf_parser_ctx.pass == 2)
7650 <    ConfigFileEntry.glines = yylval.number;
7651 < }
7652 <    break;
7653 <
7654 <  case 615:
7655 <
7656 < /* Line 1806 of yacc.c  */
7657 < #line 3373 "ircd_parser.y"
7658 <    {
7659 <  if (conf_parser_ctx.pass == 2)
7660 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6339 >  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6340   }
6341 + #line 6342 "conf_parser.c" /* yacc.c:1646  */
6342      break;
6343  
6344 <  case 616:
6345 <
7666 < /* Line 1806 of yacc.c  */
7667 < #line 3379 "ircd_parser.y"
6344 >  case 606:
6345 > #line 2914 "conf_parser.y" /* yacc.c:1646  */
6346      {
6347 <  if (conf_parser_ctx.pass == 2)
7670 <    ConfigFileEntry.gline_logging = 0;
6347 >  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6348   }
6349 + #line 6350 "conf_parser.c" /* yacc.c:1646  */
6350      break;
6351  
6352 <  case 620:
6353 <
7676 < /* Line 1806 of yacc.c  */
7677 < #line 3385 "ircd_parser.y"
6352 >  case 607:
6353 > #line 2917 "conf_parser.y" /* yacc.c:1646  */
6354      {
6355 <  if (conf_parser_ctx.pass == 2)
7680 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
6355 >  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6356   }
6357 + #line 6358 "conf_parser.c" /* yacc.c:1646  */
6358      break;
6359  
6360 <  case 621:
6361 <
7686 < /* Line 1806 of yacc.c  */
7687 < #line 3389 "ircd_parser.y"
6360 >  case 608:
6361 > #line 2920 "conf_parser.y" /* yacc.c:1646  */
6362      {
6363 <  if (conf_parser_ctx.pass == 2)
7690 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
6363 >  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6364   }
6365 + #line 6366 "conf_parser.c" /* yacc.c:1646  */
6366      break;
6367  
6368 <  case 622:
6369 <
7696 < /* Line 1806 of yacc.c  */
7697 < #line 3395 "ircd_parser.y"
6368 >  case 609:
6369 > #line 2923 "conf_parser.y" /* yacc.c:1646  */
6370      {
6371 <  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 <  }
6371 >  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6372   }
6373 + #line 6374 "conf_parser.c" /* yacc.c:1646  */
6374      break;
6375  
6376 <  case 623:
6377 <
7734 < /* Line 1806 of yacc.c  */
7735 < #line 3429 "ircd_parser.y"
6376 >  case 610:
6377 > #line 2926 "conf_parser.y" /* yacc.c:1646  */
6378      {
6379 <  if (conf_parser_ctx.pass == 2)  
7738 <  {
7739 <    MyFree(yy_conf->name);
7740 <    DupString(yy_conf->name, yylval.string);
7741 <  }
6379 >  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6380   }
6381 + #line 6382 "conf_parser.c" /* yacc.c:1646  */
6382      break;
6383  
6384 <  case 624:
6385 <
7747 < /* Line 1806 of yacc.c  */
7748 < #line 3438 "ircd_parser.y"
6384 >  case 611:
6385 > #line 2929 "conf_parser.y" /* yacc.c:1646  */
6386      {
6387 <  if (conf_parser_ctx.pass == 2)
7751 <    yy_aconf->flags = 0;
6387 >  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6388   }
6389 + #line 6390 "conf_parser.c" /* yacc.c:1646  */
6390      break;
6391  
6392 <  case 625:
6393 <
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)
6392 >  case 612:
6393 > #line 2932 "conf_parser.y" /* yacc.c:1646  */
6394      {
6395 <      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 <  }
6395 >  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6396   }
6397 + #line 6398 "conf_parser.c" /* yacc.c:1646  */
6398      break;
6399  
6400 <  case 628:
6401 <
7807 < /* Line 1806 of yacc.c  */
7808 < #line 3489 "ircd_parser.y"
6400 >  case 613:
6401 > #line 2935 "conf_parser.y" /* yacc.c:1646  */
6402      {
6403 <  if (conf_parser_ctx.pass == 2)
7811 <    yy_aconf->flags |= GDENY_REJECT;
6403 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6404   }
6405 + #line 6406 "conf_parser.c" /* yacc.c:1646  */
6406      break;
6407  
6408 <  case 629:
6409 <
7817 < /* Line 1806 of yacc.c  */
7818 < #line 3493 "ircd_parser.y"
6408 >  case 614:
6409 > #line 2938 "conf_parser.y" /* yacc.c:1646  */
6410      {
6411 <  if (conf_parser_ctx.pass == 2)
7821 <    yy_aconf->flags |= GDENY_BLOCK;
6411 >  ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6412   }
6413 + #line 6414 "conf_parser.c" /* yacc.c:1646  */
6414      break;
6415  
6416 <  case 652:
6417 <
7827 < /* Line 1806 of yacc.c  */
7828 < #line 3517 "ircd_parser.y"
6416 >  case 615:
6417 > #line 2943 "conf_parser.y" /* yacc.c:1646  */
6418      {
6419 <  ConfigChannel.disable_fake_channels = yylval.number;
6419 >  ConfigFileEntry.min_nonwildcard = (yyvsp[-1].number);
6420   }
6421 + #line 6422 "conf_parser.c" /* yacc.c:1646  */
6422      break;
6423  
6424 <  case 653:
6425 <
7836 < /* Line 1806 of yacc.c  */
7837 < #line 3522 "ircd_parser.y"
6424 >  case 616:
6425 > #line 2948 "conf_parser.y" /* yacc.c:1646  */
6426      {
6427 <  ConfigChannel.restrict_channels = yylval.number;
6427 >  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[-1].number);
6428   }
6429 + #line 6430 "conf_parser.c" /* yacc.c:1646  */
6430      break;
6431  
6432 <  case 654:
6433 <
7845 < /* Line 1806 of yacc.c  */
7846 < #line 3527 "ircd_parser.y"
6432 >  case 617:
6433 > #line 2953 "conf_parser.y" /* yacc.c:1646  */
6434      {
6435 <  ConfigChannel.disable_local_channels = yylval.number;
6435 >  ConfigFileEntry.default_floodcount = (yyvsp[-1].number);
6436   }
6437 + #line 6438 "conf_parser.c" /* yacc.c:1646  */
6438      break;
6439  
6440 <  case 655:
6441 <
7854 < /* Line 1806 of yacc.c  */
7855 < #line 3532 "ircd_parser.y"
6440 >  case 636:
6441 > #line 2982 "conf_parser.y" /* yacc.c:1646  */
6442      {
6443 <  ConfigChannel.use_except = yylval.number;
6443 >  ConfigChannel.disable_fake_channels = yylval.number;
6444   }
6445 + #line 6446 "conf_parser.c" /* yacc.c:1646  */
6446      break;
6447  
6448 <  case 656:
6449 <
7863 < /* Line 1806 of yacc.c  */
7864 < #line 3537 "ircd_parser.y"
6448 >  case 637:
6449 > #line 2987 "conf_parser.y" /* yacc.c:1646  */
6450      {
6451 <  ConfigChannel.use_invex = yylval.number;
6451 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6452   }
6453 + #line 6454 "conf_parser.c" /* yacc.c:1646  */
6454      break;
6455  
6456 <  case 657:
6457 <
7872 < /* Line 1806 of yacc.c  */
7873 < #line 3542 "ircd_parser.y"
6456 >  case 638:
6457 > #line 2992 "conf_parser.y" /* yacc.c:1646  */
6458      {
6459 <  ConfigChannel.use_knock = yylval.number;
6459 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6460   }
6461 + #line 6462 "conf_parser.c" /* yacc.c:1646  */
6462      break;
6463  
6464 <  case 658:
6465 <
7881 < /* Line 1806 of yacc.c  */
7882 < #line 3547 "ircd_parser.y"
6464 >  case 639:
6465 > #line 2997 "conf_parser.y" /* yacc.c:1646  */
6466      {
6467 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6467 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6468   }
6469 + #line 6470 "conf_parser.c" /* yacc.c:1646  */
6470      break;
6471  
6472 <  case 659:
6473 <
7890 < /* Line 1806 of yacc.c  */
7891 < #line 3552 "ircd_parser.y"
6472 >  case 640:
6473 > #line 3002 "conf_parser.y" /* yacc.c:1646  */
6474      {
6475 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6475 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6476   }
6477 + #line 6478 "conf_parser.c" /* yacc.c:1646  */
6478      break;
6479  
6480 <  case 660:
6481 <
7899 < /* Line 1806 of yacc.c  */
7900 < #line 3557 "ircd_parser.y"
6480 >  case 641:
6481 > #line 3007 "conf_parser.y" /* yacc.c:1646  */
6482      {
6483 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6483 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6484   }
6485 + #line 6486 "conf_parser.c" /* yacc.c:1646  */
6486      break;
6487  
6488 <  case 661:
6489 <
7908 < /* Line 1806 of yacc.c  */
7909 < #line 3562 "ircd_parser.y"
6488 >  case 642:
6489 > #line 3012 "conf_parser.y" /* yacc.c:1646  */
6490      {
6491 <  ConfigChannel.quiet_on_ban = yylval.number;
6491 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6492   }
6493 + #line 6494 "conf_parser.c" /* yacc.c:1646  */
6494      break;
6495  
6496 <  case 662:
6497 <
7917 < /* Line 1806 of yacc.c  */
7918 < #line 3567 "ircd_parser.y"
6496 >  case 643:
6497 > #line 3017 "conf_parser.y" /* yacc.c:1646  */
6498      {
6499 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6499 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6500   }
6501 + #line 6502 "conf_parser.c" /* yacc.c:1646  */
6502      break;
6503  
6504 <  case 663:
6505 <
7926 < /* Line 1806 of yacc.c  */
7927 < #line 3572 "ircd_parser.y"
6504 >  case 644:
6505 > #line 3022 "conf_parser.y" /* yacc.c:1646  */
6506      {
6507 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6507 >  ConfigChannel.default_split_user_count = (yyvsp[-1].number);
6508   }
6509 + #line 6510 "conf_parser.c" /* yacc.c:1646  */
6510      break;
6511  
6512 <  case 664:
6513 <
7935 < /* Line 1806 of yacc.c  */
7936 < #line 3577 "ircd_parser.y"
6512 >  case 645:
6513 > #line 3027 "conf_parser.y" /* yacc.c:1646  */
6514      {
6515 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6515 >  ConfigChannel.default_split_server_count = (yyvsp[-1].number);
6516   }
6517 + #line 6518 "conf_parser.c" /* yacc.c:1646  */
6518      break;
6519  
6520 <  case 665:
6521 <
7944 < /* Line 1806 of yacc.c  */
7945 < #line 3582 "ircd_parser.y"
6520 >  case 646:
6521 > #line 3032 "conf_parser.y" /* yacc.c:1646  */
6522      {
6523    ConfigChannel.no_create_on_split = yylval.number;
6524   }
6525 + #line 6526 "conf_parser.c" /* yacc.c:1646  */
6526      break;
6527  
6528 <  case 666:
6529 <
7953 < /* Line 1806 of yacc.c  */
7954 < #line 3587 "ircd_parser.y"
6528 >  case 647:
6529 > #line 3037 "conf_parser.y" /* yacc.c:1646  */
6530      {
6531    ConfigChannel.no_join_on_split = yylval.number;
6532   }
6533 + #line 6534 "conf_parser.c" /* yacc.c:1646  */
6534      break;
6535  
6536 <  case 667:
6537 <
7962 < /* Line 1806 of yacc.c  */
7963 < #line 3592 "ircd_parser.y"
6536 >  case 648:
6537 > #line 3042 "conf_parser.y" /* yacc.c:1646  */
6538      {
6539 <  ConfigChannel.burst_topicwho = yylval.number;
6539 >  GlobalSetOptions.joinfloodcount = yylval.number;
6540   }
6541 + #line 6542 "conf_parser.c" /* yacc.c:1646  */
6542      break;
6543  
6544 <  case 668:
6545 <
7971 < /* Line 1806 of yacc.c  */
7972 < #line 3597 "ircd_parser.y"
6544 >  case 649:
6545 > #line 3047 "conf_parser.y" /* yacc.c:1646  */
6546      {
6547 <  GlobalSetOptions.joinfloodcount = yylval.number;
6547 >  GlobalSetOptions.joinfloodtime = (yyvsp[-1].number);
6548   }
6549 + #line 6550 "conf_parser.c" /* yacc.c:1646  */
6550      break;
6551  
6552 <  case 669:
6553 <
7980 < /* Line 1806 of yacc.c  */
7981 < #line 3602 "ircd_parser.y"
6552 >  case 662:
6553 > #line 3069 "conf_parser.y" /* yacc.c:1646  */
6554      {
6555 <  GlobalSetOptions.joinfloodtime = yylval.number;
6555 >  if (conf_parser_ctx.pass == 2)
6556 >    ConfigServerHide.flatten_links = yylval.number;
6557   }
6558 + #line 6559 "conf_parser.c" /* yacc.c:1646  */
6559      break;
6560  
6561 <  case 681:
6562 <
7989 < /* Line 1806 of yacc.c  */
7990 < #line 3621 "ircd_parser.y"
6561 >  case 663:
6562 > #line 3075 "conf_parser.y" /* yacc.c:1646  */
6563      {
6564    if (conf_parser_ctx.pass == 2)
6565 <    ConfigServerHide.flatten_links = yylval.number;
6565 >    ConfigServerHide.disable_remote_commands = yylval.number;
6566   }
6567 + #line 6568 "conf_parser.c" /* yacc.c:1646  */
6568      break;
6569  
6570 <  case 682:
6571 <
7999 < /* Line 1806 of yacc.c  */
8000 < #line 3627 "ircd_parser.y"
6570 >  case 664:
6571 > #line 3081 "conf_parser.y" /* yacc.c:1646  */
6572      {
6573    if (conf_parser_ctx.pass == 2)
6574      ConfigServerHide.hide_servers = yylval.number;
6575   }
6576 + #line 6577 "conf_parser.c" /* yacc.c:1646  */
6577      break;
6578  
6579 <  case 683:
6579 >  case 665:
6580 > #line 3087 "conf_parser.y" /* yacc.c:1646  */
6581 >    {
6582 >  if (conf_parser_ctx.pass == 2)
6583 >    ConfigServerHide.hide_services = yylval.number;
6584 > }
6585 > #line 6586 "conf_parser.c" /* yacc.c:1646  */
6586 >    break;
6587  
6588 < /* Line 1806 of yacc.c  */
6589 < #line 3633 "ircd_parser.y"
6588 >  case 666:
6589 > #line 3093 "conf_parser.y" /* yacc.c:1646  */
6590      {
6591    if (conf_parser_ctx.pass == 2)
6592    {
6593      MyFree(ConfigServerHide.hidden_name);
6594 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6594 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6595    }
6596   }
6597 + #line 6598 "conf_parser.c" /* yacc.c:1646  */
6598      break;
6599  
6600 <  case 684:
6601 <
8022 < /* Line 1806 of yacc.c  */
8023 < #line 3642 "ircd_parser.y"
6600 >  case 667:
6601 > #line 3102 "conf_parser.y" /* yacc.c:1646  */
6602      {
6603    if (conf_parser_ctx.pass == 2)
6604    {
6605 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6605 >    if (((yyvsp[-1].number) > 0) && ConfigServerHide.links_disabled == 1)
6606      {
6607 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6607 >      event_write_links_file.when = (yyvsp[-1].number);
6608 >      event_addish(&event_write_links_file, NULL);
6609        ConfigServerHide.links_disabled = 0;
6610      }
6611  
6612 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6612 >    ConfigServerHide.links_delay = (yyvsp[-1].number);
6613    }
6614   }
6615 + #line 6616 "conf_parser.c" /* yacc.c:1646  */
6616      break;
6617  
6618 <  case 685:
6619 <
8040 < /* Line 1806 of yacc.c  */
8041 < #line 3656 "ircd_parser.y"
6618 >  case 668:
6619 > #line 3117 "conf_parser.y" /* yacc.c:1646  */
6620      {
6621    if (conf_parser_ctx.pass == 2)
6622      ConfigServerHide.hidden = yylval.number;
6623   }
6624 + #line 6625 "conf_parser.c" /* yacc.c:1646  */
6625      break;
6626  
6627 <  case 686:
6628 <
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"
6627 >  case 669:
6628 > #line 3123 "conf_parser.y" /* yacc.c:1646  */
6629      {
6630    if (conf_parser_ctx.pass == 2)
6631      ConfigServerHide.hide_server_ips = yylval.number;
6632   }
6633 + #line 6634 "conf_parser.c" /* yacc.c:1646  */
6634      break;
6635  
6636  
6637 <
8070 < /* Line 1806 of yacc.c  */
8071 < #line 8072 "ircd_parser.c"
6637 > #line 6638 "conf_parser.c" /* yacc.c:1646  */
6638        default: break;
6639      }
6640    /* User semantic actions sometimes alter yychar, and that requires
# Line 8090 | Line 6656 | yyreduce:
6656  
6657    *++yyvsp = yyval;
6658  
6659 <  /* Now `shift' the result of the reduction.  Determine what state
6659 >  /* Now 'shift' the result of the reduction.  Determine what state
6660       that goes to, based on the state we popped back to and the rule
6661       number reduced by.  */
6662  
# Line 8105 | Line 6671 | yyreduce:
6671    goto yynewstate;
6672  
6673  
6674 < /*------------------------------------.
6675 < | yyerrlab -- here on detecting error |
6676 < `------------------------------------*/
6674 > /*--------------------------------------.
6675 > | yyerrlab -- here on detecting error.  |
6676 > `--------------------------------------*/
6677   yyerrlab:
6678    /* Make sure we have latest lookahead translation.  See comments at
6679       user semantic actions for why this is necessary.  */
# Line 8158 | Line 6724 | yyerrlab:
6724    if (yyerrstatus == 3)
6725      {
6726        /* If just tried and failed to reuse lookahead token after an
6727 <         error, discard it.  */
6727 >         error, discard it.  */
6728  
6729        if (yychar <= YYEOF)
6730 <        {
6731 <          /* Return failure if at end of input.  */
6732 <          if (yychar == YYEOF)
6733 <            YYABORT;
6734 <        }
6730 >        {
6731 >          /* Return failure if at end of input.  */
6732 >          if (yychar == YYEOF)
6733 >            YYABORT;
6734 >        }
6735        else
6736 <        {
6737 <          yydestruct ("Error: discarding",
6738 <                      yytoken, &yylval);
6739 <          yychar = YYEMPTY;
6740 <        }
6736 >        {
6737 >          yydestruct ("Error: discarding",
6738 >                      yytoken, &yylval);
6739 >          yychar = YYEMPTY;
6740 >        }
6741      }
6742  
6743    /* Else will try to reuse lookahead token after shifting the error
# Line 8190 | Line 6756 | yyerrorlab:
6756    if (/*CONSTCOND*/ 0)
6757       goto yyerrorlab;
6758  
6759 <  /* Do not reclaim the symbols of the rule which action triggered
6759 >  /* Do not reclaim the symbols of the rule whose action triggered
6760       this YYERROR.  */
6761    YYPOPSTACK (yylen);
6762    yylen = 0;
# Line 8203 | Line 6769 | yyerrorlab:
6769   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6770   `-------------------------------------------------------------*/
6771   yyerrlab1:
6772 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6772 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6773  
6774    for (;;)
6775      {
6776        yyn = yypact[yystate];
6777        if (!yypact_value_is_default (yyn))
6778 <        {
6779 <          yyn += YYTERROR;
6780 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6781 <            {
6782 <              yyn = yytable[yyn];
6783 <              if (0 < yyn)
6784 <                break;
6785 <            }
6786 <        }
6778 >        {
6779 >          yyn += YYTERROR;
6780 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6781 >            {
6782 >              yyn = yytable[yyn];
6783 >              if (0 < yyn)
6784 >                break;
6785 >            }
6786 >        }
6787  
6788        /* Pop the current state because it cannot handle the error token.  */
6789        if (yyssp == yyss)
6790 <        YYABORT;
6790 >        YYABORT;
6791  
6792  
6793        yydestruct ("Error: popping",
6794 <                  yystos[yystate], yyvsp);
6794 >                  yystos[yystate], yyvsp);
6795        YYPOPSTACK (1);
6796        yystate = *yyssp;
6797        YY_STACK_PRINT (yyss, yyssp);
6798      }
6799  
6800 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6801    *++yyvsp = yylval;
6802 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6803  
6804  
6805    /* Shift the error token.  */
# Line 8255 | Line 6823 | yyabortlab:
6823    yyresult = 1;
6824    goto yyreturn;
6825  
6826 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6826 > #if !defined yyoverflow || YYERROR_VERBOSE
6827   /*-------------------------------------------------.
6828   | yyexhaustedlab -- memory exhaustion comes here.  |
6829   `-------------------------------------------------*/
# Line 8274 | Line 6842 | yyreturn:
6842        yydestruct ("Cleanup: discarding lookahead",
6843                    yytoken, &yylval);
6844      }
6845 <  /* Do not reclaim the symbols of the rule which action triggered
6845 >  /* Do not reclaim the symbols of the rule whose action triggered
6846       this YYABORT or YYACCEPT.  */
6847    YYPOPSTACK (yylen);
6848    YY_STACK_PRINT (yyss, yyssp);
6849    while (yyssp != yyss)
6850      {
6851        yydestruct ("Cleanup: popping",
6852 <                  yystos[*yyssp], yyvsp);
6852 >                  yystos[*yyssp], yyvsp);
6853        YYPOPSTACK (1);
6854      }
6855   #ifndef yyoverflow
# Line 8292 | Line 6860 | yyreturn:
6860    if (yymsg != yymsgbuf)
6861      YYSTACK_FREE (yymsg);
6862   #endif
6863 <  /* Make sure YYID is used.  */
8296 <  return YYID (yyresult);
6863 >  return yyresult;
6864   }
8298
8299
8300

Comparing:
ircd-hybrid-7.3/src/ircd_parser.c (property svn:keywords), Revision 1133 by michael, Fri May 27 20:11:42 2011 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 4114 by michael, Tue Jul 1 16:47:15 2014 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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