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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1366 by michael, Tue Apr 24 18:35:34 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1946 by michael, Sun May 5 10:21:40 2013 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4    
5 <      Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
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
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.5"
47 > #define YYBISON_VERSION "2.7.12-4996"
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  */
65 > /* Line 371 of yacc.c  */
66   #line 25 "conf_parser.y"
67  
68  
# Line 78 | Line 75
75   #include "ircd.h"
76   #include "list.h"
77   #include "conf.h"
78 + #include "conf_class.h"
79   #include "event.h"
80   #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
85 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85   #include "s_serv.h"
# Line 100 | Line 97
97   #include <openssl/dh.h>
98   #endif
99  
100 < int yylex(void);
100 > #include "rsa.h"
101  
102 < static char *class_name = NULL;
106 < static struct ConfItem *yy_conf = NULL;
107 < static struct AccessItem *yy_aconf = NULL;
108 < static struct MatchItem *yy_match_item = NULL;
109 < static struct ClassItem *yy_class = NULL;
110 < static char *yy_class_name = NULL;
111 <
112 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
113 < static dlink_list hub_conf_list  = { NULL, NULL, 0 };
114 < static dlink_list leaf_conf_list = { NULL, NULL, 0 };
115 < static unsigned int listener_flags = 0;
116 < static unsigned int regex_ban = 0;
117 < static char userbuf[IRCD_BUFSIZE];
118 < static char hostbuf[IRCD_BUFSIZE];
119 < static char reasonbuf[REASONLEN + 1];
120 < static char gecos_name[REALLEN * 4];
121 < static char lfile[IRCD_BUFSIZE];
122 < static unsigned int ltype = 0;
123 < static unsigned int lsize = 0;
124 < static char *resv_reason = NULL;
125 < static char *listener_address = NULL;
102 > int yylex(void);
103  
104 < struct CollectItem
104 > static struct
105   {
106 <  dlink_node node;
107 <  char *name;
108 <  char *user;
109 <  char *host;
110 <  char *passwd;
111 <  int  port;
112 <  int  flags;
113 < #ifdef HAVE_LIBCRYPTO
114 <  char *rsa_public_key_file;
115 <  RSA *rsa_public_key;
116 < #endif
117 < };
106 >  struct {
107 >    dlink_list list;
108 >  } mask,
109 >    leaf,
110 >    hub;
111 >
112 >  struct {
113 >    char buf[IRCD_BUFSIZE];
114 >  } name,
115 >    user,
116 >    host,
117 >    addr,
118 >    bind,
119 >    file,
120 >    ciph,
121 >    rpass,
122 >    spass,
123 >    class;
124 >
125 >  struct {
126 >    unsigned int value;
127 >  } flags,
128 >    modes,
129 >    size,
130 >    type,
131 >    port,
132 >    aftype,
133 >    ping_freq,
134 >    max_perip,
135 >    con_freq,
136 >    min_idle,
137 >    max_idle,
138 >    max_total,
139 >    max_global,
140 >    max_local,
141 >    max_ident,
142 >    max_sendq,
143 >    max_recvq,
144 >    cidr_bitlen_ipv4,
145 >    cidr_bitlen_ipv6,
146 >    number_per_cidr;
147 > } block_state;
148  
149   static void
150 < free_collect_item(struct CollectItem *item)
150 > reset_block_state(void)
151   {
152 <  MyFree(item->name);
146 <  MyFree(item->user);
147 <  MyFree(item->host);
148 <  MyFree(item->passwd);
149 < #ifdef HAVE_LIBCRYPTO
150 <  MyFree(item->rsa_public_key_file);
151 < #endif
152 <  MyFree(item);
153 < }
152 >  dlink_node *ptr = NULL, *ptr_next = NULL;
153  
154 < static void
155 < unhook_hub_leaf_confs(void)
156 < {
157 <  dlink_node *ptr;
158 <  dlink_node *next_ptr;
159 <  struct CollectItem *yy_hconf;
161 <  struct CollectItem *yy_lconf;
154 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
155 >  {
156 >    MyFree(ptr->data);
157 >    dlinkDelete(ptr, &block_state.mask.list);
158 >    free_dlink_node(ptr);
159 >  }
160  
161 <  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
161 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
162    {
163 <    yy_hconf = ptr->data;
164 <    dlinkDelete(&yy_hconf->node, &hub_conf_list);
165 <    free_collect_item(yy_hconf);
163 >    MyFree(ptr->data);
164 >    dlinkDelete(ptr, &block_state.leaf.list);
165 >    free_dlink_node(ptr);
166    }
167  
168 <  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
168 >  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
169    {
170 <    yy_lconf = ptr->data;
171 <    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
172 <    free_collect_item(yy_lconf);
170 >    MyFree(ptr->data);
171 >    dlinkDelete(ptr, &block_state.hub.list);
172 >    free_dlink_node(ptr);
173    }
176 }
174  
175 +  memset(&block_state, 0, sizeof(block_state));
176 + }
177  
178  
179 < /* Line 268 of yacc.c  */
180 < #line 182 "conf_parser.c"
179 > /* Line 371 of yacc.c  */
180 > #line 181 "conf_parser.c"
181  
182 < /* Enabling traces.  */
183 < #ifndef YYDEBUG
184 < # define YYDEBUG 0
185 < #endif
182 > # ifndef YY_NULL
183 > #  if defined __cplusplus && 201103L <= __cplusplus
184 > #   define YY_NULL nullptr
185 > #  else
186 > #   define YY_NULL 0
187 > #  endif
188 > # endif
189  
190   /* Enabling verbose error messages.  */
191   #ifdef YYERROR_VERBOSE
# Line 193 | Line 195 | unhook_hub_leaf_confs(void)
195   # define YYERROR_VERBOSE 0
196   #endif
197  
198 < /* Enabling the token table.  */
199 < #ifndef YYTOKEN_TABLE
200 < # define YYTOKEN_TABLE 0
198 > /* In a future release of Bison, this section will be replaced
199 >   by #include "y.tab.h".  */
200 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
201 > # define YY_YY_CONF_PARSER_H_INCLUDED
202 > /* Enabling traces.  */
203 > #ifndef YYDEBUG
204 > # define YYDEBUG 0
205 > #endif
206 > #if YYDEBUG
207 > extern int yydebug;
208   #endif
200
209  
210   /* Tokens.  */
211   #ifndef YYTOKENTYPE
# Line 206 | Line 214 | unhook_hub_leaf_confs(void)
214        know about them.  */
215     enum yytokentype {
216       ACCEPT_PASSWORD = 258,
217 <     ACTION = 259,
218 <     ADMIN = 260,
219 <     AFTYPE = 261,
220 <     T_ALLOW = 262,
221 <     ANTI_NICK_FLOOD = 263,
222 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
223 <     AUTOCONN = 265,
224 <     T_BLOCK = 266,
225 <     BURST_AWAY = 267,
226 <     BURST_TOPICWHO = 268,
227 <     BYTES = 269,
228 <     KBYTES = 270,
229 <     MBYTES = 271,
230 <     GBYTES = 272,
231 <     TBYTES = 273,
232 <     CALLER_ID_WAIT = 274,
233 <     CAN_FLOOD = 275,
234 <     CHANNEL = 276,
235 <     CIDR_BITLEN_IPV4 = 277,
236 <     CIDR_BITLEN_IPV6 = 278,
237 <     CLASS = 279,
238 <     CONNECT = 280,
239 <     CONNECTFREQ = 281,
240 <     DEFAULT_FLOODCOUNT = 282,
241 <     DEFAULT_SPLIT_SERVER_COUNT = 283,
242 <     DEFAULT_SPLIT_USER_COUNT = 284,
243 <     DENY = 285,
244 <     DESCRIPTION = 286,
245 <     DIE = 287,
246 <     DISABLE_AUTH = 288,
247 <     DISABLE_FAKE_CHANNELS = 289,
248 <     DISABLE_HIDDEN = 290,
249 <     DISABLE_LOCAL_CHANNELS = 291,
250 <     DISABLE_REMOTE_COMMANDS = 292,
251 <     DOTS_IN_IDENT = 293,
252 <     DURATION = 294,
253 <     EGDPOOL_PATH = 295,
254 <     EMAIL = 296,
255 <     ENABLE = 297,
256 <     ENCRYPTED = 298,
257 <     EXCEED_LIMIT = 299,
258 <     EXEMPT = 300,
259 <     FAILED_OPER_NOTICE = 301,
260 <     IRCD_FLAGS = 302,
261 <     FLATTEN_LINKS = 303,
262 <     GECOS = 304,
263 <     GENERAL = 305,
264 <     GLINE = 306,
265 <     GLINES = 307,
266 <     GLINE_EXEMPT = 308,
267 <     GLINE_TIME = 309,
268 <     GLINE_MIN_CIDR = 310,
269 <     GLINE_MIN_CIDR6 = 311,
270 <     GLOBAL_KILL = 312,
271 <     IRCD_AUTH = 313,
272 <     NEED_IDENT = 314,
273 <     HAVENT_READ_CONF = 315,
274 <     HIDDEN = 316,
275 <     HIDDEN_NAME = 317,
276 <     HIDE_SERVER_IPS = 318,
277 <     HIDE_SERVERS = 319,
278 <     HIDE_SPOOF_IPS = 320,
279 <     HOST = 321,
280 <     HUB = 322,
281 <     HUB_MASK = 323,
282 <     IGNORE_BOGUS_TS = 324,
283 <     INVISIBLE_ON_CONNECT = 325,
284 <     IP = 326,
285 <     KILL = 327,
286 <     KILL_CHASE_TIME_LIMIT = 328,
287 <     KLINE = 329,
288 <     KLINE_EXEMPT = 330,
289 <     KLINE_REASON = 331,
290 <     KLINE_WITH_REASON = 332,
291 <     KNOCK_DELAY = 333,
292 <     KNOCK_DELAY_CHANNEL = 334,
293 <     LEAF_MASK = 335,
294 <     LINKS_DELAY = 336,
295 <     LISTEN = 337,
296 <     T_LOG = 338,
297 <     MAX_ACCEPT = 339,
298 <     MAX_BANS = 340,
299 <     MAX_CHANS_PER_USER = 341,
300 <     MAX_GLOBAL = 342,
301 <     MAX_IDENT = 343,
302 <     MAX_LOCAL = 344,
303 <     MAX_NICK_CHANGES = 345,
304 <     MAX_NICK_TIME = 346,
305 <     MAX_NUMBER = 347,
306 <     MAX_TARGETS = 348,
307 <     MAX_WATCH = 349,
308 <     MESSAGE_LOCALE = 350,
309 <     MIN_NONWILDCARD = 351,
310 <     MIN_NONWILDCARD_SIMPLE = 352,
311 <     MODULE = 353,
312 <     MODULES = 354,
313 <     NAME = 355,
314 <     NEED_PASSWORD = 356,
315 <     NETWORK_DESC = 357,
316 <     NETWORK_NAME = 358,
317 <     NICK = 359,
318 <     NICK_CHANGES = 360,
319 <     NO_CREATE_ON_SPLIT = 361,
320 <     NO_JOIN_ON_SPLIT = 362,
321 <     NO_OPER_FLOOD = 363,
322 <     NO_TILDE = 364,
323 <     NUMBER = 365,
324 <     NUMBER_PER_IDENT = 366,
325 <     NUMBER_PER_CIDR = 367,
326 <     NUMBER_PER_IP = 368,
327 <     NUMBER_PER_IP_GLOBAL = 369,
328 <     OPERATOR = 370,
329 <     OPERS_BYPASS_CALLERID = 371,
330 <     OPER_ONLY_UMODES = 372,
331 <     OPER_PASS_RESV = 373,
332 <     OPER_SPY_T = 374,
333 <     OPER_UMODES = 375,
334 <     JOIN_FLOOD_COUNT = 376,
335 <     JOIN_FLOOD_TIME = 377,
336 <     PACE_WAIT = 378,
337 <     PACE_WAIT_SIMPLE = 379,
338 <     PASSWORD = 380,
339 <     PATH = 381,
340 <     PING_COOKIE = 382,
341 <     PING_TIME = 383,
342 <     PING_WARNING = 384,
343 <     PORT = 385,
344 <     QSTRING = 386,
345 <     QUIET_ON_BAN = 387,
346 <     REASON = 388,
347 <     REDIRPORT = 389,
348 <     REDIRSERV = 390,
349 <     REGEX_T = 391,
350 <     REHASH = 392,
351 <     TREJECT_HOLD_TIME = 393,
352 <     REMOTE = 394,
353 <     REMOTEBAN = 395,
354 <     RESTRICT_CHANNELS = 396,
355 <     RESTRICTED = 397,
356 <     RSA_PRIVATE_KEY_FILE = 398,
357 <     RSA_PUBLIC_KEY_FILE = 399,
358 <     SSL_CERTIFICATE_FILE = 400,
359 <     SSL_DH_PARAM_FILE = 401,
360 <     T_SSL_CLIENT_METHOD = 402,
361 <     T_SSL_SERVER_METHOD = 403,
362 <     T_SSLV3 = 404,
363 <     T_TLSV1 = 405,
364 <     RESV = 406,
365 <     RESV_EXEMPT = 407,
366 <     SECONDS = 408,
367 <     MINUTES = 409,
368 <     HOURS = 410,
369 <     DAYS = 411,
370 <     WEEKS = 412,
371 <     SENDQ = 413,
372 <     SEND_PASSWORD = 414,
373 <     SERVERHIDE = 415,
374 <     SERVERINFO = 416,
375 <     IRCD_SID = 417,
376 <     TKLINE_EXPIRE_NOTICES = 418,
377 <     T_SHARED = 419,
378 <     T_CLUSTER = 420,
379 <     TYPE = 421,
380 <     SHORT_MOTD = 422,
381 <     SILENT = 423,
382 <     SPOOF = 424,
383 <     SPOOF_NOTICE = 425,
384 <     STATS_E_DISABLED = 426,
385 <     STATS_I_OPER_ONLY = 427,
386 <     STATS_K_OPER_ONLY = 428,
387 <     STATS_O_OPER_ONLY = 429,
388 <     STATS_P_OPER_ONLY = 430,
389 <     TBOOL = 431,
390 <     TMASKED = 432,
391 <     T_REJECT = 433,
392 <     TS_MAX_DELTA = 434,
393 <     TS_WARN_DELTA = 435,
394 <     TWODOTS = 436,
395 <     T_ALL = 437,
396 <     T_BOTS = 438,
397 <     T_SOFTCALLERID = 439,
398 <     T_CALLERID = 440,
399 <     T_CCONN = 441,
400 <     T_CCONN_FULL = 442,
401 <     T_SSL_CIPHER_LIST = 443,
402 <     T_CLIENT_FLOOD = 444,
403 <     T_DEAF = 445,
404 <     T_DEBUG = 446,
405 <     T_DLINE = 447,
406 <     T_DRONE = 448,
407 <     T_EXTERNAL = 449,
408 <     T_FULL = 450,
409 <     T_INVISIBLE = 451,
410 <     T_IPV4 = 452,
411 <     T_IPV6 = 453,
412 <     T_LOCOPS = 454,
413 <     T_MAX_CLIENTS = 455,
414 <     T_NCHANGE = 456,
415 <     T_OPERWALL = 457,
416 <     T_REJ = 458,
417 <     T_SERVER = 459,
418 <     T_SERVNOTICE = 460,
419 <     T_SKILL = 461,
420 <     T_SPY = 462,
421 <     T_SSL = 463,
422 <     T_UMODES = 464,
423 <     T_UNAUTH = 465,
424 <     T_UNDLINE = 466,
425 <     T_UNLIMITED = 467,
426 <     T_UNRESV = 468,
427 <     T_UNXLINE = 469,
428 <     T_GLOBOPS = 470,
429 <     T_WALLOP = 471,
430 <     T_RESTART = 472,
431 <     T_SERVICE = 473,
432 <     T_SERVICES_NAME = 474,
433 <     THROTTLE_TIME = 475,
426 <     TOPICBURST = 476,
427 <     TRUE_NO_OPER_FLOOD = 477,
428 <     TKLINE = 478,
429 <     TXLINE = 479,
430 <     TRESV = 480,
431 <     UNKLINE = 481,
432 <     USER = 482,
433 <     USE_EGD = 483,
434 <     USE_EXCEPT = 484,
435 <     USE_INVEX = 485,
436 <     USE_KNOCK = 486,
437 <     USE_LOGGING = 487,
438 <     USE_WHOIS_ACTUALLY = 488,
439 <     VHOST = 489,
440 <     VHOST6 = 490,
441 <     XLINE = 491,
442 <     WARN = 492,
443 <     WARN_NO_NLINE = 493,
444 <     T_SIZE = 494,
445 <     T_FILE = 495
217 >     ADMIN = 259,
218 >     AFTYPE = 260,
219 >     ANTI_NICK_FLOOD = 261,
220 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
221 >     AUTOCONN = 263,
222 >     BYTES = 264,
223 >     KBYTES = 265,
224 >     MBYTES = 266,
225 >     CALLER_ID_WAIT = 267,
226 >     CAN_FLOOD = 268,
227 >     CHANNEL = 269,
228 >     CIDR_BITLEN_IPV4 = 270,
229 >     CIDR_BITLEN_IPV6 = 271,
230 >     CLASS = 272,
231 >     CONNECT = 273,
232 >     CONNECTFREQ = 274,
233 >     DEFAULT_FLOODCOUNT = 275,
234 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
235 >     DEFAULT_SPLIT_USER_COUNT = 277,
236 >     DENY = 278,
237 >     DESCRIPTION = 279,
238 >     DIE = 280,
239 >     DISABLE_AUTH = 281,
240 >     DISABLE_FAKE_CHANNELS = 282,
241 >     DISABLE_REMOTE_COMMANDS = 283,
242 >     DOTS_IN_IDENT = 284,
243 >     EGDPOOL_PATH = 285,
244 >     EMAIL = 286,
245 >     ENCRYPTED = 287,
246 >     EXCEED_LIMIT = 288,
247 >     EXEMPT = 289,
248 >     FAILED_OPER_NOTICE = 290,
249 >     IRCD_FLAGS = 291,
250 >     FLATTEN_LINKS = 292,
251 >     GECOS = 293,
252 >     GENERAL = 294,
253 >     GLINE = 295,
254 >     GLINE_DURATION = 296,
255 >     GLINE_ENABLE = 297,
256 >     GLINE_EXEMPT = 298,
257 >     GLINE_REQUEST_DURATION = 299,
258 >     GLINE_MIN_CIDR = 300,
259 >     GLINE_MIN_CIDR6 = 301,
260 >     GLOBAL_KILL = 302,
261 >     IRCD_AUTH = 303,
262 >     NEED_IDENT = 304,
263 >     HAVENT_READ_CONF = 305,
264 >     HIDDEN = 306,
265 >     HIDDEN_NAME = 307,
266 >     HIDE_SERVER_IPS = 308,
267 >     HIDE_SERVERS = 309,
268 >     HIDE_SERVICES = 310,
269 >     HIDE_SPOOF_IPS = 311,
270 >     HOST = 312,
271 >     HUB = 313,
272 >     HUB_MASK = 314,
273 >     IGNORE_BOGUS_TS = 315,
274 >     INVISIBLE_ON_CONNECT = 316,
275 >     IP = 317,
276 >     KILL = 318,
277 >     KILL_CHASE_TIME_LIMIT = 319,
278 >     KLINE = 320,
279 >     KLINE_EXEMPT = 321,
280 >     KNOCK_DELAY = 322,
281 >     KNOCK_DELAY_CHANNEL = 323,
282 >     LEAF_MASK = 324,
283 >     LINKS_DELAY = 325,
284 >     LISTEN = 326,
285 >     T_LOG = 327,
286 >     MASK = 328,
287 >     MAX_ACCEPT = 329,
288 >     MAX_BANS = 330,
289 >     MAX_CHANS_PER_OPER = 331,
290 >     MAX_CHANS_PER_USER = 332,
291 >     MAX_GLOBAL = 333,
292 >     MAX_IDENT = 334,
293 >     MAX_LOCAL = 335,
294 >     MAX_NICK_CHANGES = 336,
295 >     MAX_NICK_LENGTH = 337,
296 >     MAX_NICK_TIME = 338,
297 >     MAX_NUMBER = 339,
298 >     MAX_TARGETS = 340,
299 >     MAX_TOPIC_LENGTH = 341,
300 >     MAX_WATCH = 342,
301 >     MIN_NONWILDCARD = 343,
302 >     MIN_NONWILDCARD_SIMPLE = 344,
303 >     MIN_IDLE = 345,
304 >     MAX_IDLE = 346,
305 >     RANDOM_IDLE = 347,
306 >     HIDE_IDLE_FROM_OPERS = 348,
307 >     MODULE = 349,
308 >     MODULES = 350,
309 >     NAME = 351,
310 >     NEED_PASSWORD = 352,
311 >     NETWORK_DESC = 353,
312 >     NETWORK_NAME = 354,
313 >     NICK = 355,
314 >     NO_CREATE_ON_SPLIT = 356,
315 >     NO_JOIN_ON_SPLIT = 357,
316 >     NO_OPER_FLOOD = 358,
317 >     NO_TILDE = 359,
318 >     NUMBER = 360,
319 >     NUMBER_PER_CIDR = 361,
320 >     NUMBER_PER_IP = 362,
321 >     OPERATOR = 363,
322 >     OPERS_BYPASS_CALLERID = 364,
323 >     OPER_ONLY_UMODES = 365,
324 >     OPER_PASS_RESV = 366,
325 >     OPER_SPY_T = 367,
326 >     OPER_UMODES = 368,
327 >     JOIN_FLOOD_COUNT = 369,
328 >     JOIN_FLOOD_TIME = 370,
329 >     PACE_WAIT = 371,
330 >     PACE_WAIT_SIMPLE = 372,
331 >     PASSWORD = 373,
332 >     PATH = 374,
333 >     PING_COOKIE = 375,
334 >     PING_TIME = 376,
335 >     PORT = 377,
336 >     QSTRING = 378,
337 >     REASON = 379,
338 >     REDIRPORT = 380,
339 >     REDIRSERV = 381,
340 >     REHASH = 382,
341 >     REMOTE = 383,
342 >     REMOTEBAN = 384,
343 >     RSA_PRIVATE_KEY_FILE = 385,
344 >     RSA_PUBLIC_KEY_FILE = 386,
345 >     SSL_CERTIFICATE_FILE = 387,
346 >     SSL_DH_PARAM_FILE = 388,
347 >     T_SSL_CLIENT_METHOD = 389,
348 >     T_SSL_SERVER_METHOD = 390,
349 >     T_SSLV3 = 391,
350 >     T_TLSV1 = 392,
351 >     RESV = 393,
352 >     RESV_EXEMPT = 394,
353 >     SECONDS = 395,
354 >     MINUTES = 396,
355 >     HOURS = 397,
356 >     DAYS = 398,
357 >     WEEKS = 399,
358 >     MONTHS = 400,
359 >     YEARS = 401,
360 >     SENDQ = 402,
361 >     SEND_PASSWORD = 403,
362 >     SERVERHIDE = 404,
363 >     SERVERINFO = 405,
364 >     IRCD_SID = 406,
365 >     TKLINE_EXPIRE_NOTICES = 407,
366 >     T_SHARED = 408,
367 >     T_CLUSTER = 409,
368 >     TYPE = 410,
369 >     SHORT_MOTD = 411,
370 >     SPOOF = 412,
371 >     SPOOF_NOTICE = 413,
372 >     STATS_E_DISABLED = 414,
373 >     STATS_I_OPER_ONLY = 415,
374 >     STATS_K_OPER_ONLY = 416,
375 >     STATS_O_OPER_ONLY = 417,
376 >     STATS_P_OPER_ONLY = 418,
377 >     TBOOL = 419,
378 >     TMASKED = 420,
379 >     TS_MAX_DELTA = 421,
380 >     TS_WARN_DELTA = 422,
381 >     TWODOTS = 423,
382 >     T_ALL = 424,
383 >     T_BOTS = 425,
384 >     T_SOFTCALLERID = 426,
385 >     T_CALLERID = 427,
386 >     T_CCONN = 428,
387 >     T_CCONN_FULL = 429,
388 >     T_SSL_CIPHER_LIST = 430,
389 >     T_DEAF = 431,
390 >     T_DEBUG = 432,
391 >     T_DLINE = 433,
392 >     T_EXTERNAL = 434,
393 >     T_FULL = 435,
394 >     T_INVISIBLE = 436,
395 >     T_IPV4 = 437,
396 >     T_IPV6 = 438,
397 >     T_LOCOPS = 439,
398 >     T_MAX_CLIENTS = 440,
399 >     T_NCHANGE = 441,
400 >     T_NONONREG = 442,
401 >     T_OPERWALL = 443,
402 >     T_RECVQ = 444,
403 >     T_REJ = 445,
404 >     T_SERVER = 446,
405 >     T_SERVNOTICE = 447,
406 >     T_SET = 448,
407 >     T_SKILL = 449,
408 >     T_SPY = 450,
409 >     T_SSL = 451,
410 >     T_UMODES = 452,
411 >     T_UNAUTH = 453,
412 >     T_UNDLINE = 454,
413 >     T_UNLIMITED = 455,
414 >     T_UNRESV = 456,
415 >     T_UNXLINE = 457,
416 >     T_GLOBOPS = 458,
417 >     T_WALLOP = 459,
418 >     T_WEBIRC = 460,
419 >     T_RESTART = 461,
420 >     T_SERVICE = 462,
421 >     T_SERVICES_NAME = 463,
422 >     THROTTLE_TIME = 464,
423 >     TRUE_NO_OPER_FLOOD = 465,
424 >     UNKLINE = 466,
425 >     USER = 467,
426 >     USE_EGD = 468,
427 >     USE_LOGGING = 469,
428 >     VHOST = 470,
429 >     VHOST6 = 471,
430 >     XLINE = 472,
431 >     WARN_NO_NLINE = 473,
432 >     T_SIZE = 474,
433 >     T_FILE = 475
434     };
435   #endif
436   /* Tokens.  */
437   #define ACCEPT_PASSWORD 258
438 < #define ACTION 259
439 < #define ADMIN 260
440 < #define AFTYPE 261
441 < #define T_ALLOW 262
442 < #define ANTI_NICK_FLOOD 263
443 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
444 < #define AUTOCONN 265
445 < #define T_BLOCK 266
446 < #define BURST_AWAY 267
447 < #define BURST_TOPICWHO 268
448 < #define BYTES 269
449 < #define KBYTES 270
450 < #define MBYTES 271
451 < #define GBYTES 272
452 < #define TBYTES 273
453 < #define CALLER_ID_WAIT 274
454 < #define CAN_FLOOD 275
455 < #define CHANNEL 276
456 < #define CIDR_BITLEN_IPV4 277
457 < #define CIDR_BITLEN_IPV6 278
458 < #define CLASS 279
459 < #define CONNECT 280
460 < #define CONNECTFREQ 281
461 < #define DEFAULT_FLOODCOUNT 282
462 < #define DEFAULT_SPLIT_SERVER_COUNT 283
463 < #define DEFAULT_SPLIT_USER_COUNT 284
464 < #define DENY 285
465 < #define DESCRIPTION 286
466 < #define DIE 287
467 < #define DISABLE_AUTH 288
468 < #define DISABLE_FAKE_CHANNELS 289
469 < #define DISABLE_HIDDEN 290
470 < #define DISABLE_LOCAL_CHANNELS 291
471 < #define DISABLE_REMOTE_COMMANDS 292
472 < #define DOTS_IN_IDENT 293
473 < #define DURATION 294
474 < #define EGDPOOL_PATH 295
475 < #define EMAIL 296
476 < #define ENABLE 297
477 < #define ENCRYPTED 298
478 < #define EXCEED_LIMIT 299
479 < #define EXEMPT 300
480 < #define FAILED_OPER_NOTICE 301
481 < #define IRCD_FLAGS 302
482 < #define FLATTEN_LINKS 303
483 < #define GECOS 304
484 < #define GENERAL 305
485 < #define GLINE 306
486 < #define GLINES 307
487 < #define GLINE_EXEMPT 308
488 < #define GLINE_TIME 309
489 < #define GLINE_MIN_CIDR 310
490 < #define GLINE_MIN_CIDR6 311
491 < #define GLOBAL_KILL 312
492 < #define IRCD_AUTH 313
493 < #define NEED_IDENT 314
494 < #define HAVENT_READ_CONF 315
495 < #define HIDDEN 316
496 < #define HIDDEN_NAME 317
497 < #define HIDE_SERVER_IPS 318
498 < #define HIDE_SERVERS 319
499 < #define HIDE_SPOOF_IPS 320
500 < #define HOST 321
501 < #define HUB 322
502 < #define HUB_MASK 323
503 < #define IGNORE_BOGUS_TS 324
504 < #define INVISIBLE_ON_CONNECT 325
505 < #define IP 326
506 < #define KILL 327
507 < #define KILL_CHASE_TIME_LIMIT 328
508 < #define KLINE 329
509 < #define KLINE_EXEMPT 330
510 < #define KLINE_REASON 331
511 < #define KLINE_WITH_REASON 332
512 < #define KNOCK_DELAY 333
513 < #define KNOCK_DELAY_CHANNEL 334
514 < #define LEAF_MASK 335
515 < #define LINKS_DELAY 336
516 < #define LISTEN 337
517 < #define T_LOG 338
518 < #define MAX_ACCEPT 339
519 < #define MAX_BANS 340
520 < #define MAX_CHANS_PER_USER 341
521 < #define MAX_GLOBAL 342
522 < #define MAX_IDENT 343
523 < #define MAX_LOCAL 344
524 < #define MAX_NICK_CHANGES 345
525 < #define MAX_NICK_TIME 346
526 < #define MAX_NUMBER 347
527 < #define MAX_TARGETS 348
528 < #define MAX_WATCH 349
529 < #define MESSAGE_LOCALE 350
530 < #define MIN_NONWILDCARD 351
531 < #define MIN_NONWILDCARD_SIMPLE 352
532 < #define MODULE 353
533 < #define MODULES 354
534 < #define NAME 355
535 < #define NEED_PASSWORD 356
536 < #define NETWORK_DESC 357
537 < #define NETWORK_NAME 358
538 < #define NICK 359
539 < #define NICK_CHANGES 360
540 < #define NO_CREATE_ON_SPLIT 361
541 < #define NO_JOIN_ON_SPLIT 362
542 < #define NO_OPER_FLOOD 363
543 < #define NO_TILDE 364
544 < #define NUMBER 365
545 < #define NUMBER_PER_IDENT 366
546 < #define NUMBER_PER_CIDR 367
547 < #define NUMBER_PER_IP 368
548 < #define NUMBER_PER_IP_GLOBAL 369
549 < #define OPERATOR 370
550 < #define OPERS_BYPASS_CALLERID 371
551 < #define OPER_ONLY_UMODES 372
552 < #define OPER_PASS_RESV 373
553 < #define OPER_SPY_T 374
554 < #define OPER_UMODES 375
555 < #define JOIN_FLOOD_COUNT 376
556 < #define JOIN_FLOOD_TIME 377
557 < #define PACE_WAIT 378
558 < #define PACE_WAIT_SIMPLE 379
559 < #define PASSWORD 380
560 < #define PATH 381
561 < #define PING_COOKIE 382
562 < #define PING_TIME 383
563 < #define PING_WARNING 384
564 < #define PORT 385
565 < #define QSTRING 386
566 < #define QUIET_ON_BAN 387
567 < #define REASON 388
568 < #define REDIRPORT 389
569 < #define REDIRSERV 390
570 < #define REGEX_T 391
571 < #define REHASH 392
572 < #define TREJECT_HOLD_TIME 393
573 < #define REMOTE 394
574 < #define REMOTEBAN 395
575 < #define RESTRICT_CHANNELS 396
576 < #define RESTRICTED 397
577 < #define RSA_PRIVATE_KEY_FILE 398
578 < #define RSA_PUBLIC_KEY_FILE 399
579 < #define SSL_CERTIFICATE_FILE 400
580 < #define SSL_DH_PARAM_FILE 401
581 < #define T_SSL_CLIENT_METHOD 402
582 < #define T_SSL_SERVER_METHOD 403
583 < #define T_SSLV3 404
584 < #define T_TLSV1 405
585 < #define RESV 406
586 < #define RESV_EXEMPT 407
587 < #define SECONDS 408
588 < #define MINUTES 409
589 < #define HOURS 410
590 < #define DAYS 411
591 < #define WEEKS 412
592 < #define SENDQ 413
593 < #define SEND_PASSWORD 414
594 < #define SERVERHIDE 415
595 < #define SERVERINFO 416
596 < #define IRCD_SID 417
597 < #define TKLINE_EXPIRE_NOTICES 418
598 < #define T_SHARED 419
599 < #define T_CLUSTER 420
600 < #define TYPE 421
601 < #define SHORT_MOTD 422
602 < #define SILENT 423
603 < #define SPOOF 424
604 < #define SPOOF_NOTICE 425
605 < #define STATS_E_DISABLED 426
606 < #define STATS_I_OPER_ONLY 427
607 < #define STATS_K_OPER_ONLY 428
608 < #define STATS_O_OPER_ONLY 429
609 < #define STATS_P_OPER_ONLY 430
610 < #define TBOOL 431
611 < #define TMASKED 432
612 < #define T_REJECT 433
613 < #define TS_MAX_DELTA 434
614 < #define TS_WARN_DELTA 435
615 < #define TWODOTS 436
616 < #define T_ALL 437
617 < #define T_BOTS 438
618 < #define T_SOFTCALLERID 439
619 < #define T_CALLERID 440
620 < #define T_CCONN 441
621 < #define T_CCONN_FULL 442
622 < #define T_SSL_CIPHER_LIST 443
623 < #define T_CLIENT_FLOOD 444
624 < #define T_DEAF 445
625 < #define T_DEBUG 446
626 < #define T_DLINE 447
627 < #define T_DRONE 448
628 < #define T_EXTERNAL 449
629 < #define T_FULL 450
630 < #define T_INVISIBLE 451
631 < #define T_IPV4 452
632 < #define T_IPV6 453
633 < #define T_LOCOPS 454
634 < #define T_MAX_CLIENTS 455
635 < #define T_NCHANGE 456
636 < #define T_OPERWALL 457
637 < #define T_REJ 458
638 < #define T_SERVER 459
639 < #define T_SERVNOTICE 460
640 < #define T_SKILL 461
641 < #define T_SPY 462
642 < #define T_SSL 463
643 < #define T_UMODES 464
644 < #define T_UNAUTH 465
645 < #define T_UNDLINE 466
646 < #define T_UNLIMITED 467
647 < #define T_UNRESV 468
648 < #define T_UNXLINE 469
649 < #define T_GLOBOPS 470
650 < #define T_WALLOP 471
651 < #define T_RESTART 472
652 < #define T_SERVICE 473
653 < #define T_SERVICES_NAME 474
654 < #define THROTTLE_TIME 475
667 < #define TOPICBURST 476
668 < #define TRUE_NO_OPER_FLOOD 477
669 < #define TKLINE 478
670 < #define TXLINE 479
671 < #define TRESV 480
672 < #define UNKLINE 481
673 < #define USER 482
674 < #define USE_EGD 483
675 < #define USE_EXCEPT 484
676 < #define USE_INVEX 485
677 < #define USE_KNOCK 486
678 < #define USE_LOGGING 487
679 < #define USE_WHOIS_ACTUALLY 488
680 < #define VHOST 489
681 < #define VHOST6 490
682 < #define XLINE 491
683 < #define WARN 492
684 < #define WARN_NO_NLINE 493
685 < #define T_SIZE 494
686 < #define T_FILE 495
687 <
438 > #define ADMIN 259
439 > #define AFTYPE 260
440 > #define ANTI_NICK_FLOOD 261
441 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
442 > #define AUTOCONN 263
443 > #define BYTES 264
444 > #define KBYTES 265
445 > #define MBYTES 266
446 > #define CALLER_ID_WAIT 267
447 > #define CAN_FLOOD 268
448 > #define CHANNEL 269
449 > #define CIDR_BITLEN_IPV4 270
450 > #define CIDR_BITLEN_IPV6 271
451 > #define CLASS 272
452 > #define CONNECT 273
453 > #define CONNECTFREQ 274
454 > #define DEFAULT_FLOODCOUNT 275
455 > #define DEFAULT_SPLIT_SERVER_COUNT 276
456 > #define DEFAULT_SPLIT_USER_COUNT 277
457 > #define DENY 278
458 > #define DESCRIPTION 279
459 > #define DIE 280
460 > #define DISABLE_AUTH 281
461 > #define DISABLE_FAKE_CHANNELS 282
462 > #define DISABLE_REMOTE_COMMANDS 283
463 > #define DOTS_IN_IDENT 284
464 > #define EGDPOOL_PATH 285
465 > #define EMAIL 286
466 > #define ENCRYPTED 287
467 > #define EXCEED_LIMIT 288
468 > #define EXEMPT 289
469 > #define FAILED_OPER_NOTICE 290
470 > #define IRCD_FLAGS 291
471 > #define FLATTEN_LINKS 292
472 > #define GECOS 293
473 > #define GENERAL 294
474 > #define GLINE 295
475 > #define GLINE_DURATION 296
476 > #define GLINE_ENABLE 297
477 > #define GLINE_EXEMPT 298
478 > #define GLINE_REQUEST_DURATION 299
479 > #define GLINE_MIN_CIDR 300
480 > #define GLINE_MIN_CIDR6 301
481 > #define GLOBAL_KILL 302
482 > #define IRCD_AUTH 303
483 > #define NEED_IDENT 304
484 > #define HAVENT_READ_CONF 305
485 > #define HIDDEN 306
486 > #define HIDDEN_NAME 307
487 > #define HIDE_SERVER_IPS 308
488 > #define HIDE_SERVERS 309
489 > #define HIDE_SERVICES 310
490 > #define HIDE_SPOOF_IPS 311
491 > #define HOST 312
492 > #define HUB 313
493 > #define HUB_MASK 314
494 > #define IGNORE_BOGUS_TS 315
495 > #define INVISIBLE_ON_CONNECT 316
496 > #define IP 317
497 > #define KILL 318
498 > #define KILL_CHASE_TIME_LIMIT 319
499 > #define KLINE 320
500 > #define KLINE_EXEMPT 321
501 > #define KNOCK_DELAY 322
502 > #define KNOCK_DELAY_CHANNEL 323
503 > #define LEAF_MASK 324
504 > #define LINKS_DELAY 325
505 > #define LISTEN 326
506 > #define T_LOG 327
507 > #define MASK 328
508 > #define MAX_ACCEPT 329
509 > #define MAX_BANS 330
510 > #define MAX_CHANS_PER_OPER 331
511 > #define MAX_CHANS_PER_USER 332
512 > #define MAX_GLOBAL 333
513 > #define MAX_IDENT 334
514 > #define MAX_LOCAL 335
515 > #define MAX_NICK_CHANGES 336
516 > #define MAX_NICK_LENGTH 337
517 > #define MAX_NICK_TIME 338
518 > #define MAX_NUMBER 339
519 > #define MAX_TARGETS 340
520 > #define MAX_TOPIC_LENGTH 341
521 > #define MAX_WATCH 342
522 > #define MIN_NONWILDCARD 343
523 > #define MIN_NONWILDCARD_SIMPLE 344
524 > #define MIN_IDLE 345
525 > #define MAX_IDLE 346
526 > #define RANDOM_IDLE 347
527 > #define HIDE_IDLE_FROM_OPERS 348
528 > #define MODULE 349
529 > #define MODULES 350
530 > #define NAME 351
531 > #define NEED_PASSWORD 352
532 > #define NETWORK_DESC 353
533 > #define NETWORK_NAME 354
534 > #define NICK 355
535 > #define NO_CREATE_ON_SPLIT 356
536 > #define NO_JOIN_ON_SPLIT 357
537 > #define NO_OPER_FLOOD 358
538 > #define NO_TILDE 359
539 > #define NUMBER 360
540 > #define NUMBER_PER_CIDR 361
541 > #define NUMBER_PER_IP 362
542 > #define OPERATOR 363
543 > #define OPERS_BYPASS_CALLERID 364
544 > #define OPER_ONLY_UMODES 365
545 > #define OPER_PASS_RESV 366
546 > #define OPER_SPY_T 367
547 > #define OPER_UMODES 368
548 > #define JOIN_FLOOD_COUNT 369
549 > #define JOIN_FLOOD_TIME 370
550 > #define PACE_WAIT 371
551 > #define PACE_WAIT_SIMPLE 372
552 > #define PASSWORD 373
553 > #define PATH 374
554 > #define PING_COOKIE 375
555 > #define PING_TIME 376
556 > #define PORT 377
557 > #define QSTRING 378
558 > #define REASON 379
559 > #define REDIRPORT 380
560 > #define REDIRSERV 381
561 > #define REHASH 382
562 > #define REMOTE 383
563 > #define REMOTEBAN 384
564 > #define RSA_PRIVATE_KEY_FILE 385
565 > #define RSA_PUBLIC_KEY_FILE 386
566 > #define SSL_CERTIFICATE_FILE 387
567 > #define SSL_DH_PARAM_FILE 388
568 > #define T_SSL_CLIENT_METHOD 389
569 > #define T_SSL_SERVER_METHOD 390
570 > #define T_SSLV3 391
571 > #define T_TLSV1 392
572 > #define RESV 393
573 > #define RESV_EXEMPT 394
574 > #define SECONDS 395
575 > #define MINUTES 396
576 > #define HOURS 397
577 > #define DAYS 398
578 > #define WEEKS 399
579 > #define MONTHS 400
580 > #define YEARS 401
581 > #define SENDQ 402
582 > #define SEND_PASSWORD 403
583 > #define SERVERHIDE 404
584 > #define SERVERINFO 405
585 > #define IRCD_SID 406
586 > #define TKLINE_EXPIRE_NOTICES 407
587 > #define T_SHARED 408
588 > #define T_CLUSTER 409
589 > #define TYPE 410
590 > #define SHORT_MOTD 411
591 > #define SPOOF 412
592 > #define SPOOF_NOTICE 413
593 > #define STATS_E_DISABLED 414
594 > #define STATS_I_OPER_ONLY 415
595 > #define STATS_K_OPER_ONLY 416
596 > #define STATS_O_OPER_ONLY 417
597 > #define STATS_P_OPER_ONLY 418
598 > #define TBOOL 419
599 > #define TMASKED 420
600 > #define TS_MAX_DELTA 421
601 > #define TS_WARN_DELTA 422
602 > #define TWODOTS 423
603 > #define T_ALL 424
604 > #define T_BOTS 425
605 > #define T_SOFTCALLERID 426
606 > #define T_CALLERID 427
607 > #define T_CCONN 428
608 > #define T_CCONN_FULL 429
609 > #define T_SSL_CIPHER_LIST 430
610 > #define T_DEAF 431
611 > #define T_DEBUG 432
612 > #define T_DLINE 433
613 > #define T_EXTERNAL 434
614 > #define T_FULL 435
615 > #define T_INVISIBLE 436
616 > #define T_IPV4 437
617 > #define T_IPV6 438
618 > #define T_LOCOPS 439
619 > #define T_MAX_CLIENTS 440
620 > #define T_NCHANGE 441
621 > #define T_NONONREG 442
622 > #define T_OPERWALL 443
623 > #define T_RECVQ 444
624 > #define T_REJ 445
625 > #define T_SERVER 446
626 > #define T_SERVNOTICE 447
627 > #define T_SET 448
628 > #define T_SKILL 449
629 > #define T_SPY 450
630 > #define T_SSL 451
631 > #define T_UMODES 452
632 > #define T_UNAUTH 453
633 > #define T_UNDLINE 454
634 > #define T_UNLIMITED 455
635 > #define T_UNRESV 456
636 > #define T_UNXLINE 457
637 > #define T_GLOBOPS 458
638 > #define T_WALLOP 459
639 > #define T_WEBIRC 460
640 > #define T_RESTART 461
641 > #define T_SERVICE 462
642 > #define T_SERVICES_NAME 463
643 > #define THROTTLE_TIME 464
644 > #define TRUE_NO_OPER_FLOOD 465
645 > #define UNKLINE 466
646 > #define USER 467
647 > #define USE_EGD 468
648 > #define USE_LOGGING 469
649 > #define VHOST 470
650 > #define VHOST6 471
651 > #define XLINE 472
652 > #define WARN_NO_NLINE 473
653 > #define T_SIZE 474
654 > #define T_FILE 475
655  
656  
657  
658   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
659   typedef union YYSTYPE
660   {
661 <
662 < /* Line 293 of yacc.c  */
696 < #line 135 "conf_parser.y"
661 > /* Line 387 of yacc.c  */
662 > #line 138 "conf_parser.y"
663  
664    int number;
665    char *string;
666  
667  
668 <
669 < /* Line 293 of yacc.c  */
704 < #line 705 "conf_parser.c"
668 > /* Line 387 of yacc.c  */
669 > #line 670 "conf_parser.c"
670   } YYSTYPE;
671   # define YYSTYPE_IS_TRIVIAL 1
672   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
673   # define YYSTYPE_IS_DECLARED 1
674   #endif
675  
676 + extern YYSTYPE yylval;
677  
678 < /* Copy the second part of user declarations.  */
678 > #ifdef YYPARSE_PARAM
679 > #if defined __STDC__ || defined __cplusplus
680 > int yyparse (void *YYPARSE_PARAM);
681 > #else
682 > int yyparse ();
683 > #endif
684 > #else /* ! YYPARSE_PARAM */
685 > #if defined __STDC__ || defined __cplusplus
686 > int yyparse (void);
687 > #else
688 > int yyparse ();
689 > #endif
690 > #endif /* ! YYPARSE_PARAM */
691  
692 + #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
693  
694 < /* Line 343 of yacc.c  */
695 < #line 717 "conf_parser.c"
694 > /* Copy the second part of user declarations.  */
695 >
696 > /* Line 390 of yacc.c  */
697 > #line 698 "conf_parser.c"
698  
699   #ifdef short
700   # undef short
# Line 766 | Line 747 | typedef short int yytype_int16;
747   # if defined YYENABLE_NLS && YYENABLE_NLS
748   #  if ENABLE_NLS
749   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
750 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
750 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
751   #  endif
752   # endif
753   # ifndef YY_
754 < #  define YY_(msgid) msgid
754 > #  define YY_(Msgid) Msgid
755 > # endif
756 > #endif
757 >
758 > #ifndef __attribute__
759 > /* This feature is available in gcc versions 2.5 and later.  */
760 > # if (! defined __GNUC__ || __GNUC__ < 2 \
761 >      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
762 > #  define __attribute__(Spec) /* empty */
763   # endif
764   #endif
765  
766   /* Suppress unused-variable warnings by "using" E.  */
767   #if ! defined lint || defined __GNUC__
768 < # define YYUSE(e) ((void) (e))
768 > # define YYUSE(E) ((void) (E))
769   #else
770 < # define YYUSE(e) /* empty */
770 > # define YYUSE(E) /* empty */
771   #endif
772  
773 +
774   /* Identity function, used to suppress warnings about constant conditions.  */
775   #ifndef lint
776 < # define YYID(n) (n)
776 > # define YYID(N) (N)
777   #else
778   #if (defined __STDC__ || defined __C99__FUNC__ \
779       || defined __cplusplus || defined _MSC_VER)
# Line 819 | Line 809 | YYID (yyi)
809   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
810       || defined __cplusplus || defined _MSC_VER)
811   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
812 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
813   #     ifndef EXIT_SUCCESS
814   #      define EXIT_SUCCESS 0
815   #     endif
# Line 910 | Line 901 | union yyalloc
901   #endif
902  
903   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
904 < /* Copy COUNT objects from FROM to TO.  The source and destination do
904 > /* Copy COUNT objects from SRC to DST.  The source and destination do
905     not overlap.  */
906   # ifndef YYCOPY
907   #  if defined __GNUC__ && 1 < __GNUC__
908 < #   define YYCOPY(To, From, Count) \
909 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
908 > #   define YYCOPY(Dst, Src, Count) \
909 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
910   #  else
911 < #   define YYCOPY(To, From, Count)              \
912 <      do                                        \
913 <        {                                       \
914 <          YYSIZE_T yyi;                         \
915 <          for (yyi = 0; yyi < (Count); yyi++)   \
916 <            (To)[yyi] = (From)[yyi];            \
917 <        }                                       \
911 > #   define YYCOPY(Dst, Src, Count)              \
912 >      do                                        \
913 >        {                                       \
914 >          YYSIZE_T yyi;                         \
915 >          for (yyi = 0; yyi < (Count); yyi++)   \
916 >            (Dst)[yyi] = (Src)[yyi];            \
917 >        }                                       \
918        while (YYID (0))
919   #  endif
920   # endif
# Line 932 | Line 923 | union yyalloc
923   /* YYFINAL -- State number of the termination state.  */
924   #define YYFINAL  2
925   /* YYLAST -- Last index in YYTABLE.  */
926 < #define YYLAST   1267
926 > #define YYLAST   1177
927  
928   /* YYNTOKENS -- Number of terminals.  */
929 < #define YYNTOKENS  246
929 > #define YYNTOKENS  226
930   /* YYNNTS -- Number of nonterminals.  */
931 < #define YYNNTS  305
931 > #define YYNNTS  280
932   /* YYNRULES -- Number of rules.  */
933 < #define YYNRULES  668
933 > #define YYNRULES  628
934   /* YYNRULES -- Number of states.  */
935 < #define YYNSTATES  1311
935 > #define YYNSTATES  1230
936  
937   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
938   #define YYUNDEFTOK  2
939 < #define YYMAXUTOK   495
939 > #define YYMAXUTOK   475
940  
941   #define YYTRANSLATE(YYX)                                                \
942    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 957 | Line 948 | static const yytype_uint8 yytranslate[]
948         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
949         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
950         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
951 <       2,     2,     2,     2,   245,     2,     2,     2,     2,     2,
952 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   241,
953 <       2,   244,     2,     2,     2,     2,     2,     2,     2,     2,
951 >       2,     2,     2,     2,   225,     2,     2,     2,     2,     2,
952 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   221,
953 >       2,   224,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
957         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
958         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
959 <       2,     2,     2,   243,     2,   242,     2,     2,     2,     2,
959 >       2,     2,     2,   223,     2,   222,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1000 | Line 991 | static const yytype_uint8 yytranslate[]
991       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
992       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
993       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
994 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1004 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1005 <     235,   236,   237,   238,   239,   240
994 >     215,   216,   217,   218,   219,   220
995   };
996  
997   #if YYDEBUG
# Line 1012 | Line 1001 | static const yytype_uint16 yyprhs[] =
1001   {
1002         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1003        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1004 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
1005 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
1006 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
1007 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
1008 <     154,   156,   158,   160,   162,   164,   166,   168,   171,   176,
1009 <     181,   185,   187,   189,   191,   195,   197,   199,   201,   206,
1010 <     211,   216,   221,   226,   231,   236,   241,   246,   251,   256,
1011 <     261,   266,   272,   275,   277,   279,   281,   283,   286,   291,
1012 <     296,   301,   307,   310,   312,   314,   316,   319,   324,   325,
1013 <     332,   335,   337,   339,   341,   343,   346,   351,   356,   361,
1014 <     362,   368,   372,   374,   376,   378,   380,   382,   384,   386,
1015 <     388,   389,   396,   399,   401,   403,   405,   407,   409,   411,
1016 <     413,   415,   417,   420,   425,   430,   435,   440,   445,   450,
1017 <     451,   457,   461,   463,   465,   467,   469,   471,   473,   475,
1018 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
1019 <     497,   499,   501,   503,   504,   510,   514,   516,   518,   520,
1020 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
1021 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
1022 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
1023 <     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
1024 <     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
1025 <     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
1026 <     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
1027 <     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
1028 <     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
1029 <     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
1030 <     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
1031 <     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
1032 <     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
1033 <     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
1034 <     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
1035 <     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
1036 <     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
1037 <    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
1038 <    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
1039 <    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1110,
1040 <    1112,  1117,  1122,  1127,  1132,  1137,  1138,  1145,  1146,  1152,
1041 <    1156,  1158,  1160,  1163,  1165,  1167,  1169,  1171,  1173,  1178,
1042 <    1183,  1184,  1191,  1194,  1196,  1198,  1200,  1202,  1207,  1212,
1043 <    1218,  1221,  1223,  1225,  1227,  1232,  1233,  1240,  1241,  1247,
1044 <    1251,  1253,  1255,  1258,  1260,  1262,  1264,  1266,  1268,  1273,
1045 <    1278,  1284,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
1046 <    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
1047 <    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
1048 <    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
1049 <    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
1050 <    1383,  1385,  1387,  1389,  1391,  1393,  1398,  1403,  1408,  1413,
1051 <    1418,  1423,  1428,  1433,  1438,  1443,  1448,  1453,  1458,  1463,
1052 <    1468,  1473,  1478,  1483,  1488,  1493,  1498,  1503,  1508,  1513,
1053 <    1518,  1523,  1528,  1533,  1538,  1543,  1548,  1553,  1558,  1563,
1054 <    1568,  1573,  1578,  1583,  1588,  1593,  1598,  1603,  1608,  1613,
1055 <    1618,  1623,  1628,  1629,  1635,  1639,  1641,  1643,  1645,  1647,
1056 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1057 <    1669,  1671,  1673,  1675,  1677,  1679,  1681,  1682,  1688,  1692,
1058 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1059 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1730,  1732,
1060 <    1734,  1739,  1744,  1749,  1754,  1755,  1762,  1765,  1767,  1769,
1061 <    1771,  1773,  1775,  1777,  1779,  1781,  1786,  1791,  1792,  1798,
1062 <    1802,  1804,  1806,  1808,  1813,  1818,  1819,  1825,  1829,  1831,
1063 <    1833,  1835,  1841,  1844,  1846,  1848,  1850,  1852,  1854,  1856,
1064 <    1858,  1860,  1862,  1864,  1866,  1868,  1870,  1872,  1874,  1876,
1076 <    1878,  1880,  1882,  1884,  1889,  1894,  1899,  1904,  1909,  1914,
1077 <    1919,  1924,  1929,  1934,  1939,  1944,  1949,  1954,  1959,  1964,
1078 <    1969,  1974,  1980,  1983,  1985,  1987,  1989,  1991,  1993,  1995,
1079 <    1997,  1999,  2001,  2006,  2011,  2016,  2021,  2026,  2031
1004 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1005 >      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1006 >      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1007 >     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1008 >     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1009 >     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1010 >     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1011 >     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1012 >     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1013 >     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1014 >     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1015 >     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1016 >     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1017 >     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1018 >     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1019 >     507,   509,   511,   513,   515,   517,   519,   521,   523,   525,
1020 >     526,   532,   536,   538,   540,   542,   544,   546,   548,   550,
1021 >     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1022 >     572,   574,   575,   582,   585,   587,   589,   591,   593,   595,
1023 >     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1024 >     617,   619,   622,   627,   632,   637,   642,   647,   652,   657,
1025 >     662,   667,   672,   677,   682,   687,   692,   697,   698,   704,
1026 >     708,   710,   712,   714,   715,   722,   723,   729,   733,   735,
1027 >     737,   739,   741,   744,   746,   748,   750,   752,   754,   757,
1028 >     758,   764,   768,   770,   772,   776,   781,   786,   787,   794,
1029 >     797,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1030 >     818,   823,   828,   833,   838,   839,   845,   849,   851,   853,
1031 >     855,   857,   859,   861,   863,   865,   867,   869,   871,   876,
1032 >     881,   886,   887,   894,   897,   899,   901,   903,   905,   908,
1033 >     913,   918,   923,   929,   932,   934,   936,   938,   943,   944,
1034 >     951,   954,   956,   958,   960,   962,   965,   970,   975,   976,
1035 >     982,   986,   988,   990,   992,   994,   996,   998,  1000,  1002,
1036 >    1004,  1006,  1008,  1009,  1016,  1019,  1021,  1023,  1025,  1028,
1037 >    1033,  1034,  1040,  1044,  1046,  1048,  1050,  1052,  1054,  1056,
1038 >    1058,  1060,  1062,  1064,  1066,  1067,  1074,  1077,  1079,  1081,
1039 >    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1040 >    1103,  1105,  1108,  1113,  1118,  1123,  1128,  1133,  1138,  1143,
1041 >    1148,  1149,  1155,  1159,  1161,  1163,  1165,  1170,  1175,  1180,
1042 >    1185,  1190,  1191,  1198,  1201,  1203,  1205,  1207,  1209,  1214,
1043 >    1219,  1220,  1227,  1230,  1232,  1234,  1236,  1238,  1243,  1248,
1044 >    1254,  1257,  1259,  1261,  1263,  1268,  1269,  1276,  1279,  1281,
1045 >    1283,  1285,  1287,  1292,  1297,  1303,  1306,  1308,  1310,  1312,
1046 >    1314,  1316,  1318,  1320,  1322,  1324,  1326,  1328,  1330,  1332,
1047 >    1334,  1336,  1338,  1340,  1342,  1344,  1346,  1348,  1350,  1352,
1048 >    1354,  1356,  1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,
1049 >    1374,  1376,  1378,  1380,  1382,  1384,  1386,  1388,  1390,  1392,
1050 >    1394,  1396,  1398,  1400,  1402,  1404,  1406,  1411,  1416,  1421,
1051 >    1426,  1431,  1436,  1441,  1446,  1451,  1456,  1461,  1466,  1471,
1052 >    1476,  1481,  1486,  1491,  1496,  1501,  1506,  1511,  1516,  1521,
1053 >    1526,  1531,  1536,  1541,  1546,  1551,  1556,  1561,  1566,  1571,
1054 >    1576,  1581,  1586,  1591,  1596,  1601,  1606,  1611,  1616,  1621,
1055 >    1626,  1631,  1632,  1638,  1642,  1644,  1646,  1648,  1650,  1652,
1056 >    1654,  1656,  1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,
1057 >    1674,  1676,  1678,  1680,  1682,  1684,  1685,  1691,  1695,  1697,
1058 >    1699,  1701,  1703,  1705,  1707,  1709,  1711,  1713,  1715,  1717,
1059 >    1719,  1721,  1723,  1725,  1727,  1729,  1731,  1733,  1735,  1737,
1060 >    1739,  1744,  1749,  1754,  1760,  1763,  1765,  1767,  1769,  1771,
1061 >    1773,  1775,  1777,  1779,  1781,  1783,  1785,  1787,  1789,  1791,
1062 >    1796,  1801,  1806,  1811,  1816,  1821,  1826,  1831,  1836,  1841,
1063 >    1846,  1851,  1857,  1860,  1862,  1864,  1866,  1868,  1870,  1872,
1064 >    1874,  1876,  1878,  1883,  1888,  1893,  1898,  1903,  1908
1065   };
1066  
1067   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1068   static const yytype_int16 yyrhs[] =
1069   {
1070 <     247,     0,    -1,    -1,   247,   248,    -1,   280,    -1,   286,
1071 <      -1,   300,    -1,   520,    -1,   318,    -1,   335,    -1,   349,
1072 <      -1,   258,    -1,   541,    -1,   364,    -1,   371,    -1,   375,
1073 <      -1,   385,    -1,   394,    -1,   414,    -1,   424,    -1,   430,
1074 <      -1,   444,    -1,   504,    -1,   434,    -1,   253,    -1,     1,
1075 <     241,    -1,     1,   242,    -1,    -1,   250,    -1,   110,   249,
1076 <      -1,   110,   153,   249,    -1,   110,   154,   249,    -1,   110,
1077 <     155,   249,    -1,   110,   156,   249,    -1,   110,   157,   249,
1078 <      -1,    -1,   252,    -1,   110,   251,    -1,   110,    14,   251,
1079 <      -1,   110,    15,   251,    -1,   110,    16,   251,    -1,    99,
1080 <     243,   254,   242,   241,    -1,   254,   255,    -1,   255,    -1,
1081 <     256,    -1,   257,    -1,     1,   241,    -1,    98,   244,   131,
1082 <     241,    -1,   126,   244,   131,   241,    -1,   161,   243,   259,
1083 <     242,   241,    -1,   259,   260,    -1,   260,    -1,   271,    -1,
1084 <     276,    -1,   279,    -1,   273,    -1,   274,    -1,   275,    -1,
1085 <     278,    -1,   269,    -1,   268,    -1,   277,    -1,   272,    -1,
1086 <     267,    -1,   261,    -1,   262,    -1,   270,    -1,     1,   241,
1087 <      -1,   147,   244,   263,   241,    -1,   148,   244,   265,   241,
1088 <      -1,   263,   245,   264,    -1,   264,    -1,   149,    -1,   150,
1089 <      -1,   265,   245,   266,    -1,   266,    -1,   149,    -1,   150,
1090 <      -1,   145,   244,   131,   241,    -1,   143,   244,   131,   241,
1091 <      -1,   146,   244,   131,   241,    -1,   188,   244,   131,   241,
1092 <      -1,   100,   244,   131,   241,    -1,   162,   244,   131,   241,
1093 <      -1,    31,   244,   131,   241,    -1,   103,   244,   131,   241,
1094 <      -1,   102,   244,   131,   241,    -1,   234,   244,   131,   241,
1095 <      -1,   235,   244,   131,   241,    -1,   200,   244,   110,   241,
1096 <      -1,    67,   244,   176,   241,    -1,     5,   243,   281,   242,
1097 <     241,    -1,   281,   282,    -1,   282,    -1,   283,    -1,   285,
1098 <      -1,   284,    -1,     1,   241,    -1,   100,   244,   131,   241,
1099 <      -1,    41,   244,   131,   241,    -1,    31,   244,   131,   241,
1100 <      -1,    83,   243,   287,   242,   241,    -1,   287,   288,    -1,
1101 <     288,    -1,   289,    -1,   290,    -1,     1,   241,    -1,   232,
1102 <     244,   176,   241,    -1,    -1,   291,   240,   243,   292,   242,
1103 <     241,    -1,   292,   293,    -1,   293,    -1,   294,    -1,   296,
1104 <      -1,   295,    -1,     1,   241,    -1,   100,   244,   131,   241,
1105 <      -1,   239,   244,   252,   241,    -1,   239,   244,   212,   241,
1106 <      -1,    -1,   166,   297,   244,   298,   241,    -1,   298,   245,
1107 <     299,    -1,   299,    -1,   227,    -1,   115,    -1,    51,    -1,
1108 <     192,    -1,    74,    -1,    72,    -1,   191,    -1,    -1,   115,
1109 <     301,   243,   302,   242,   241,    -1,   302,   303,    -1,   303,
1110 <      -1,   304,    -1,   305,    -1,   306,    -1,   310,    -1,   309,
1111 <      -1,   307,    -1,   308,    -1,   314,    -1,     1,   241,    -1,
1112 <     100,   244,   131,   241,    -1,   227,   244,   131,   241,    -1,
1113 <     125,   244,   131,   241,    -1,    43,   244,   176,   241,    -1,
1114 <     144,   244,   131,   241,    -1,    24,   244,   131,   241,    -1,
1115 <      -1,   209,   311,   244,   312,   241,    -1,   312,   245,   313,
1116 <      -1,   313,    -1,   183,    -1,   186,    -1,   187,    -1,   190,
1117 <      -1,   191,    -1,   195,    -1,    61,    -1,   206,    -1,   201,
1118 <      -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,   202,
1119 <      -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,   185,
1120 <      -1,   199,    -1,    -1,    47,   315,   244,   316,   241,    -1,
1121 <     316,   245,   317,    -1,   317,    -1,    57,    -1,   139,    -1,
1122 <      74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,
1123 <      51,    -1,    32,    -1,   217,    -1,   137,    -1,     5,    -1,
1124 <     105,    -1,   202,    -1,   215,    -1,   119,    -1,   140,    -1,
1125 <      98,    -1,    -1,    24,   319,   243,   320,   242,   241,    -1,
1126 <     320,   321,    -1,   321,    -1,   322,    -1,   332,    -1,   333,
1127 <      -1,   323,    -1,   324,    -1,   334,    -1,   325,    -1,   326,
1128 <      -1,   327,    -1,   328,    -1,   329,    -1,   330,    -1,   331,
1129 <      -1,     1,   241,    -1,   100,   244,   131,   241,    -1,   128,
1130 <     244,   250,   241,    -1,   129,   244,   250,   241,    -1,   113,
1131 <     244,   110,   241,    -1,    26,   244,   250,   241,    -1,    92,
1132 <     244,   110,   241,    -1,    87,   244,   110,   241,    -1,    89,
1133 <     244,   110,   241,    -1,    88,   244,   110,   241,    -1,   158,
1134 <     244,   252,   241,    -1,    22,   244,   110,   241,    -1,    23,
1135 <     244,   110,   241,    -1,   112,   244,   110,   241,    -1,    -1,
1136 <      82,   336,   243,   341,   242,   241,    -1,    -1,    47,   338,
1137 <     244,   339,   241,    -1,   339,   245,   340,    -1,   340,    -1,
1138 <     208,    -1,    61,    -1,   204,    -1,   341,   342,    -1,   342,
1139 <      -1,   343,    -1,   337,    -1,   347,    -1,   348,    -1,     1,
1140 <     241,    -1,    -1,   130,   244,   345,   344,   241,    -1,   345,
1141 <     245,   346,    -1,   346,    -1,   110,    -1,   110,   181,   110,
1142 <      -1,    71,   244,   131,   241,    -1,    66,   244,   131,   241,
1143 <      -1,    -1,    58,   350,   243,   351,   242,   241,    -1,   351,
1144 <     352,    -1,   352,    -1,   353,    -1,   354,    -1,   355,    -1,
1145 <     357,    -1,   361,    -1,   362,    -1,   363,    -1,   356,    -1,
1146 <       1,   241,    -1,   227,   244,   131,   241,    -1,   125,   244,
1147 <     131,   241,    -1,    24,   244,   131,   241,    -1,    43,   244,
1148 <     176,   241,    -1,    -1,    47,   358,   244,   359,   241,    -1,
1149 <     359,   245,   360,    -1,   360,    -1,   170,    -1,    44,    -1,
1150 <      75,    -1,    59,    -1,    20,    -1,   109,    -1,    53,    -1,
1151 <     152,    -1,   101,    -1,   169,   244,   131,   241,    -1,   135,
1152 <     244,   131,   241,    -1,   134,   244,   110,   241,    -1,    -1,
1153 <     151,   365,   243,   366,   242,   241,    -1,   366,   367,    -1,
1154 <     367,    -1,   368,    -1,   369,    -1,   370,    -1,     1,   241,
1155 <      -1,   133,   244,   131,   241,    -1,    21,   244,   131,   241,
1156 <      -1,   104,   244,   131,   241,    -1,   218,   243,   372,   242,
1157 <     241,    -1,   372,   373,    -1,   373,    -1,   374,    -1,     1,
1158 <      -1,   100,   244,   131,   241,    -1,    -1,   164,   376,   243,
1159 <     377,   242,   241,    -1,   377,   378,    -1,   378,    -1,   379,
1160 <      -1,   380,    -1,   381,    -1,     1,   241,    -1,   100,   244,
1161 <     131,   241,    -1,   227,   244,   131,   241,    -1,    -1,   166,
1162 <     382,   244,   383,   241,    -1,   383,   245,   384,    -1,   384,
1163 <      -1,    74,    -1,   226,    -1,   192,    -1,   211,    -1,   236,
1164 <      -1,   214,    -1,   151,    -1,   213,    -1,   199,    -1,   182,
1165 <      -1,    -1,   165,   386,   243,   387,   242,   241,    -1,   387,
1166 <     388,    -1,   388,    -1,   389,    -1,   390,    -1,     1,   241,
1167 <      -1,   100,   244,   131,   241,    -1,    -1,   166,   391,   244,
1168 <     392,   241,    -1,   392,   245,   393,    -1,   393,    -1,    74,
1169 <      -1,   226,    -1,   192,    -1,   211,    -1,   236,    -1,   214,
1170 <      -1,   151,    -1,   213,    -1,   199,    -1,   182,    -1,    -1,
1171 <      25,   395,   243,   396,   242,   241,    -1,   396,   397,    -1,
1172 <     397,    -1,   398,    -1,   399,    -1,   400,    -1,   401,    -1,
1173 <     402,    -1,   404,    -1,   403,    -1,   413,    -1,   405,    -1,
1174 <     410,    -1,   411,    -1,   412,    -1,   409,    -1,     1,   241,
1175 <      -1,   100,   244,   131,   241,    -1,    66,   244,   131,   241,
1176 <      -1,   234,   244,   131,   241,    -1,   159,   244,   131,   241,
1177 <      -1,     3,   244,   131,   241,    -1,   130,   244,   110,   241,
1178 <      -1,     6,   244,   197,   241,    -1,     6,   244,   198,   241,
1179 <      -1,    -1,    47,   406,   244,   407,   241,    -1,   407,   245,
1180 <     408,    -1,   408,    -1,    10,    -1,    12,    -1,   221,    -1,
1181 <     208,    -1,    43,   244,   176,   241,    -1,    68,   244,   131,
1182 <     241,    -1,    80,   244,   131,   241,    -1,    24,   244,   131,
1183 <     241,    -1,   188,   244,   131,   241,    -1,    -1,    72,   415,
1184 <     243,   420,   242,   241,    -1,    -1,   166,   417,   244,   418,
1185 <     241,    -1,   418,   245,   419,    -1,   419,    -1,   136,    -1,
1186 <     420,   421,    -1,   421,    -1,   422,    -1,   423,    -1,   416,
1187 <      -1,     1,    -1,   227,   244,   131,   241,    -1,   133,   244,
1188 <     131,   241,    -1,    -1,    30,   425,   243,   426,   242,   241,
1189 <      -1,   426,   427,    -1,   427,    -1,   428,    -1,   429,    -1,
1190 <       1,    -1,    71,   244,   131,   241,    -1,   133,   244,   131,
1191 <     241,    -1,    45,   243,   431,   242,   241,    -1,   431,   432,
1192 <      -1,   432,    -1,   433,    -1,     1,    -1,    71,   244,   131,
1193 <     241,    -1,    -1,    49,   435,   243,   440,   242,   241,    -1,
1194 <      -1,   166,   437,   244,   438,   241,    -1,   438,   245,   439,
1195 <      -1,   439,    -1,   136,    -1,   440,   441,    -1,   441,    -1,
1196 <     442,    -1,   443,    -1,   436,    -1,     1,    -1,   100,   244,
1197 <     131,   241,    -1,   133,   244,   131,   241,    -1,    50,   243,
1198 <     445,   242,   241,    -1,   445,   446,    -1,   446,    -1,   454,
1199 <      -1,   455,    -1,   457,    -1,   458,    -1,   459,    -1,   460,
1200 <      -1,   461,    -1,   462,    -1,   463,    -1,   464,    -1,   453,
1201 <      -1,   466,    -1,   467,    -1,   468,    -1,   469,    -1,   484,
1202 <      -1,   471,    -1,   473,    -1,   475,    -1,   474,    -1,   478,
1203 <      -1,   472,    -1,   479,    -1,   480,    -1,   481,    -1,   482,
1204 <      -1,   483,    -1,   496,    -1,   485,    -1,   486,    -1,   487,
1205 <      -1,   492,    -1,   476,    -1,   477,    -1,   502,    -1,   500,
1206 <      -1,   501,    -1,   456,    -1,   503,    -1,   491,    -1,   465,
1207 <      -1,   489,    -1,   490,    -1,   452,    -1,   448,    -1,   449,
1208 <      -1,   450,    -1,   451,    -1,   470,    -1,   447,    -1,   488,
1209 <      -1,     1,    -1,    94,   244,   110,   241,    -1,    55,   244,
1210 <     110,   241,    -1,    56,   244,   110,   241,    -1,   233,   244,
1211 <     176,   241,    -1,   138,   244,   250,   241,    -1,   163,   244,
1212 <     176,   241,    -1,    73,   244,   250,   241,    -1,    65,   244,
1213 <     176,   241,    -1,    69,   244,   176,   241,    -1,    37,   244,
1214 <     176,   241,    -1,    46,   244,   176,   241,    -1,     8,   244,
1215 <     176,   241,    -1,    91,   244,   250,   241,    -1,    90,   244,
1216 <     110,   241,    -1,    84,   244,   110,   241,    -1,     9,   244,
1217 <     250,   241,    -1,   180,   244,   250,   241,    -1,   179,   244,
1218 <     250,   241,    -1,    60,   244,   110,   241,    -1,    77,   244,
1219 <     176,   241,    -1,    76,   244,   131,   241,    -1,    70,   244,
1220 <     176,   241,    -1,   238,   244,   176,   241,    -1,   171,   244,
1221 <     176,   241,    -1,   174,   244,   176,   241,    -1,   175,   244,
1222 <     176,   241,    -1,   173,   244,   176,   241,    -1,   173,   244,
1223 <     177,   241,    -1,   172,   244,   176,   241,    -1,   172,   244,
1224 <     177,   241,    -1,   123,   244,   250,   241,    -1,    19,   244,
1225 <     250,   241,    -1,   116,   244,   176,   241,    -1,   124,   244,
1226 <     250,   241,    -1,   167,   244,   176,   241,    -1,   108,   244,
1227 <     176,   241,    -1,   222,   244,   176,   241,    -1,   118,   244,
1228 <     176,   241,    -1,    95,   244,   131,   241,    -1,    38,   244,
1229 <     110,   241,    -1,    93,   244,   110,   241,    -1,   228,   244,
1230 <     176,   241,    -1,    40,   244,   131,   241,    -1,   219,   244,
1231 <     131,   241,    -1,   127,   244,   176,   241,    -1,    33,   244,
1232 <     176,   241,    -1,   220,   244,   250,   241,    -1,    -1,   120,
1233 <     493,   244,   494,   241,    -1,   494,   245,   495,    -1,   495,
1234 <      -1,   183,    -1,   186,    -1,   187,    -1,   190,    -1,   191,
1235 <      -1,   195,    -1,    61,    -1,   206,    -1,   201,    -1,   203,
1236 <      -1,   210,    -1,   207,    -1,   194,    -1,   202,    -1,   205,
1237 <      -1,   196,    -1,   216,    -1,   184,    -1,   185,    -1,   199,
1238 <      -1,    -1,   117,   497,   244,   498,   241,    -1,   498,   245,
1239 <     499,    -1,   499,    -1,   183,    -1,   186,    -1,   187,    -1,
1240 <     190,    -1,   191,    -1,   195,    -1,   206,    -1,    61,    -1,
1241 <     201,    -1,   203,    -1,   210,    -1,   207,    -1,   194,    -1,
1242 <     202,    -1,   205,    -1,   196,    -1,   216,    -1,   184,    -1,
1243 <     185,    -1,   199,    -1,    96,   244,   110,   241,    -1,    97,
1244 <     244,   110,   241,    -1,    27,   244,   110,   241,    -1,   189,
1245 <     244,   252,   241,    -1,    -1,    52,   505,   243,   506,   242,
1246 <     241,    -1,   506,   507,    -1,   507,    -1,   508,    -1,   509,
1247 <      -1,   510,    -1,   514,    -1,   515,    -1,   516,    -1,     1,
1248 <      -1,    42,   244,   176,   241,    -1,    39,   244,   250,   241,
1249 <      -1,    -1,    83,   511,   244,   512,   241,    -1,   512,   245,
1250 <     513,    -1,   513,    -1,   178,    -1,    11,    -1,   227,   244,
1251 <     131,   241,    -1,   100,   244,   131,   241,    -1,    -1,     4,
1252 <     517,   244,   518,   241,    -1,   518,   245,   519,    -1,   519,
1253 <      -1,   178,    -1,    11,    -1,    21,   243,   521,   242,   241,
1254 <      -1,   521,   522,    -1,   522,    -1,   525,    -1,   526,    -1,
1255 <     527,    -1,   528,    -1,   533,    -1,   529,    -1,   530,    -1,
1256 <     531,    -1,   532,    -1,   534,    -1,   535,    -1,   536,    -1,
1257 <     524,    -1,   537,    -1,   538,    -1,   539,    -1,   540,    -1,
1258 <     523,    -1,     1,    -1,    34,   244,   176,   241,    -1,   141,
1259 <     244,   176,   241,    -1,    36,   244,   176,   241,    -1,   229,
1260 <     244,   176,   241,    -1,   230,   244,   176,   241,    -1,   231,
1261 <     244,   176,   241,    -1,    78,   244,   250,   241,    -1,    79,
1277 <     244,   250,   241,    -1,    86,   244,   110,   241,    -1,   132,
1278 <     244,   176,   241,    -1,    85,   244,   110,   241,    -1,    29,
1279 <     244,   110,   241,    -1,    28,   244,   110,   241,    -1,   106,
1280 <     244,   176,   241,    -1,   107,   244,   176,   241,    -1,    13,
1281 <     244,   176,   241,    -1,   121,   244,   110,   241,    -1,   122,
1282 <     244,   250,   241,    -1,   160,   243,   542,   242,   241,    -1,
1283 <     542,   543,    -1,   543,    -1,   544,    -1,   545,    -1,   547,
1284 <      -1,   549,    -1,   548,    -1,   546,    -1,   550,    -1,     1,
1285 <      -1,    48,   244,   176,   241,    -1,    64,   244,   176,   241,
1286 <      -1,    62,   244,   131,   241,    -1,    81,   244,   250,   241,
1287 <      -1,    61,   244,   176,   241,    -1,    35,   244,   176,   241,
1288 <      -1,    63,   244,   176,   241,    -1
1070 >     227,     0,    -1,    -1,   227,   228,    -1,   262,    -1,   268,
1071 >      -1,   282,    -1,   481,    -1,   300,    -1,   323,    -1,   337,
1072 >      -1,   238,    -1,   496,    -1,   352,    -1,   359,    -1,   363,
1073 >      -1,   373,    -1,   382,    -1,   402,    -1,   408,    -1,   414,
1074 >      -1,   424,    -1,   418,    -1,   233,    -1,     1,   221,    -1,
1075 >       1,   222,    -1,    -1,   230,    -1,   105,   229,    -1,   105,
1076 >     140,   229,    -1,   105,   141,   229,    -1,   105,   142,   229,
1077 >      -1,   105,   143,   229,    -1,   105,   144,   229,    -1,   105,
1078 >     145,   229,    -1,   105,   146,   229,    -1,    -1,   232,    -1,
1079 >     105,   231,    -1,   105,     9,   231,    -1,   105,    10,   231,
1080 >      -1,   105,    11,   231,    -1,    95,   223,   234,   222,   221,
1081 >      -1,   234,   235,    -1,   235,    -1,   236,    -1,   237,    -1,
1082 >       1,   221,    -1,    94,   224,   123,   221,    -1,   119,   224,
1083 >     123,   221,    -1,   150,   223,   239,   222,   221,    -1,   239,
1084 >     240,    -1,   240,    -1,   251,    -1,   256,    -1,   261,    -1,
1085 >     253,    -1,   254,    -1,   255,    -1,   258,    -1,   259,    -1,
1086 >     260,    -1,   249,    -1,   248,    -1,   257,    -1,   252,    -1,
1087 >     247,    -1,   241,    -1,   242,    -1,   250,    -1,     1,   221,
1088 >      -1,   134,   224,   243,   221,    -1,   135,   224,   245,   221,
1089 >      -1,   243,   225,   244,    -1,   244,    -1,   136,    -1,   137,
1090 >      -1,   245,   225,   246,    -1,   246,    -1,   136,    -1,   137,
1091 >      -1,   132,   224,   123,   221,    -1,   130,   224,   123,   221,
1092 >      -1,   133,   224,   123,   221,    -1,   175,   224,   123,   221,
1093 >      -1,    96,   224,   123,   221,    -1,   151,   224,   123,   221,
1094 >      -1,    24,   224,   123,   221,    -1,    99,   224,   123,   221,
1095 >      -1,    98,   224,   123,   221,    -1,   215,   224,   123,   221,
1096 >      -1,   216,   224,   123,   221,    -1,   185,   224,   105,   221,
1097 >      -1,    82,   224,   105,   221,    -1,    86,   224,   105,   221,
1098 >      -1,    58,   224,   164,   221,    -1,     4,   223,   263,   222,
1099 >     221,    -1,   263,   264,    -1,   264,    -1,   265,    -1,   267,
1100 >      -1,   266,    -1,     1,   221,    -1,    96,   224,   123,   221,
1101 >      -1,    31,   224,   123,   221,    -1,    24,   224,   123,   221,
1102 >      -1,    72,   223,   269,   222,   221,    -1,   269,   270,    -1,
1103 >     270,    -1,   271,    -1,   272,    -1,     1,   221,    -1,   214,
1104 >     224,   164,   221,    -1,    -1,   273,   220,   223,   274,   222,
1105 >     221,    -1,   274,   275,    -1,   275,    -1,   276,    -1,   278,
1106 >      -1,   277,    -1,     1,   221,    -1,    96,   224,   123,   221,
1107 >      -1,   219,   224,   232,   221,    -1,   219,   224,   200,   221,
1108 >      -1,    -1,   155,   279,   224,   280,   221,    -1,   280,   225,
1109 >     281,    -1,   281,    -1,   212,    -1,   108,    -1,    40,    -1,
1110 >     178,    -1,    65,    -1,    63,    -1,   177,    -1,    -1,   108,
1111 >     283,   223,   284,   222,   221,    -1,   284,   285,    -1,   285,
1112 >      -1,   286,    -1,   287,    -1,   288,    -1,   292,    -1,   291,
1113 >      -1,   289,    -1,   290,    -1,   296,    -1,     1,   221,    -1,
1114 >      96,   224,   123,   221,    -1,   212,   224,   123,   221,    -1,
1115 >     118,   224,   123,   221,    -1,    32,   224,   164,   221,    -1,
1116 >     131,   224,   123,   221,    -1,    17,   224,   123,   221,    -1,
1117 >      -1,   197,   293,   224,   294,   221,    -1,   294,   225,   295,
1118 >      -1,   295,    -1,   170,    -1,   173,    -1,   174,    -1,   176,
1119 >      -1,   177,    -1,   180,    -1,    51,    -1,   194,    -1,   186,
1120 >      -1,   190,    -1,   198,    -1,   195,    -1,   179,    -1,   188,
1121 >      -1,   192,    -1,   181,    -1,   204,    -1,   171,    -1,   172,
1122 >      -1,   184,    -1,   187,    -1,    -1,    36,   297,   224,   298,
1123 >     221,    -1,   298,   225,   299,    -1,   299,    -1,    47,    -1,
1124 >     128,    -1,    65,    -1,   211,    -1,   178,    -1,   199,    -1,
1125 >     217,    -1,    40,    -1,    25,    -1,   206,    -1,   127,    -1,
1126 >       4,    -1,   188,    -1,   203,    -1,   112,    -1,   129,    -1,
1127 >     193,    -1,    94,    -1,    -1,    17,   301,   223,   302,   222,
1128 >     221,    -1,   302,   303,    -1,   303,    -1,   304,    -1,   314,
1129 >      -1,   315,    -1,   305,    -1,   316,    -1,   306,    -1,   307,
1130 >      -1,   308,    -1,   309,    -1,   310,    -1,   311,    -1,   312,
1131 >      -1,   313,    -1,   317,    -1,   318,    -1,   319,    -1,     1,
1132 >     221,    -1,    96,   224,   123,   221,    -1,   121,   224,   230,
1133 >     221,    -1,   107,   224,   105,   221,    -1,    19,   224,   230,
1134 >     221,    -1,    84,   224,   105,   221,    -1,    78,   224,   105,
1135 >     221,    -1,    80,   224,   105,   221,    -1,    79,   224,   105,
1136 >     221,    -1,   147,   224,   232,   221,    -1,   189,   224,   232,
1137 >     221,    -1,    15,   224,   105,   221,    -1,    16,   224,   105,
1138 >     221,    -1,   106,   224,   105,   221,    -1,    90,   224,   230,
1139 >     221,    -1,    91,   224,   230,   221,    -1,    -1,    36,   320,
1140 >     224,   321,   221,    -1,   321,   225,   322,    -1,   322,    -1,
1141 >      92,    -1,    93,    -1,    -1,    71,   324,   223,   329,   222,
1142 >     221,    -1,    -1,    36,   326,   224,   327,   221,    -1,   327,
1143 >     225,   328,    -1,   328,    -1,   196,    -1,    51,    -1,   191,
1144 >      -1,   329,   330,    -1,   330,    -1,   331,    -1,   325,    -1,
1145 >     335,    -1,   336,    -1,     1,   221,    -1,    -1,   122,   224,
1146 >     333,   332,   221,    -1,   333,   225,   334,    -1,   334,    -1,
1147 >     105,    -1,   105,   168,   105,    -1,    62,   224,   123,   221,
1148 >      -1,    57,   224,   123,   221,    -1,    -1,    48,   338,   223,
1149 >     339,   222,   221,    -1,   339,   340,    -1,   340,    -1,   341,
1150 >      -1,   342,    -1,   343,    -1,   345,    -1,   349,    -1,   350,
1151 >      -1,   351,    -1,   344,    -1,     1,   221,    -1,   212,   224,
1152 >     123,   221,    -1,   118,   224,   123,   221,    -1,    17,   224,
1153 >     123,   221,    -1,    32,   224,   164,   221,    -1,    -1,    36,
1154 >     346,   224,   347,   221,    -1,   347,   225,   348,    -1,   348,
1155 >      -1,   158,    -1,    33,    -1,    66,    -1,    49,    -1,    13,
1156 >      -1,   104,    -1,    43,    -1,   139,    -1,   205,    -1,    97,
1157 >      -1,   157,   224,   123,   221,    -1,   126,   224,   123,   221,
1158 >      -1,   125,   224,   105,   221,    -1,    -1,   138,   353,   223,
1159 >     354,   222,   221,    -1,   354,   355,    -1,   355,    -1,   356,
1160 >      -1,   357,    -1,   358,    -1,     1,   221,    -1,    73,   224,
1161 >     123,   221,    -1,   124,   224,   123,   221,    -1,    34,   224,
1162 >     123,   221,    -1,   207,   223,   360,   222,   221,    -1,   360,
1163 >     361,    -1,   361,    -1,   362,    -1,     1,    -1,    96,   224,
1164 >     123,   221,    -1,    -1,   153,   364,   223,   365,   222,   221,
1165 >      -1,   365,   366,    -1,   366,    -1,   367,    -1,   368,    -1,
1166 >     369,    -1,     1,   221,    -1,    96,   224,   123,   221,    -1,
1167 >     212,   224,   123,   221,    -1,    -1,   155,   370,   224,   371,
1168 >     221,    -1,   371,   225,   372,    -1,   372,    -1,    65,    -1,
1169 >     211,    -1,   178,    -1,   199,    -1,   217,    -1,   202,    -1,
1170 >     138,    -1,   201,    -1,   184,    -1,   169,    -1,    -1,   154,
1171 >     374,   223,   375,   222,   221,    -1,   375,   376,    -1,   376,
1172 >      -1,   377,    -1,   378,    -1,     1,   221,    -1,    96,   224,
1173 >     123,   221,    -1,    -1,   155,   379,   224,   380,   221,    -1,
1174 >     380,   225,   381,    -1,   381,    -1,    65,    -1,   211,    -1,
1175 >     178,    -1,   199,    -1,   217,    -1,   202,    -1,   138,    -1,
1176 >     201,    -1,   184,    -1,   169,    -1,    -1,    18,   383,   223,
1177 >     384,   222,   221,    -1,   384,   385,    -1,   385,    -1,   386,
1178 >      -1,   387,    -1,   388,    -1,   389,    -1,   390,    -1,   392,
1179 >      -1,   391,    -1,   401,    -1,   393,    -1,   398,    -1,   399,
1180 >      -1,   400,    -1,   397,    -1,     1,   221,    -1,    96,   224,
1181 >     123,   221,    -1,    57,   224,   123,   221,    -1,   215,   224,
1182 >     123,   221,    -1,   148,   224,   123,   221,    -1,     3,   224,
1183 >     123,   221,    -1,   122,   224,   105,   221,    -1,     5,   224,
1184 >     182,   221,    -1,     5,   224,   183,   221,    -1,    -1,    36,
1185 >     394,   224,   395,   221,    -1,   395,   225,   396,    -1,   396,
1186 >      -1,     8,    -1,   196,    -1,    32,   224,   164,   221,    -1,
1187 >      59,   224,   123,   221,    -1,    69,   224,   123,   221,    -1,
1188 >      17,   224,   123,   221,    -1,   175,   224,   123,   221,    -1,
1189 >      -1,    63,   403,   223,   404,   222,   221,    -1,   404,   405,
1190 >      -1,   405,    -1,   406,    -1,   407,    -1,     1,    -1,   212,
1191 >     224,   123,   221,    -1,   124,   224,   123,   221,    -1,    -1,
1192 >      23,   409,   223,   410,   222,   221,    -1,   410,   411,    -1,
1193 >     411,    -1,   412,    -1,   413,    -1,     1,    -1,    62,   224,
1194 >     123,   221,    -1,   124,   224,   123,   221,    -1,    34,   223,
1195 >     415,   222,   221,    -1,   415,   416,    -1,   416,    -1,   417,
1196 >      -1,     1,    -1,    62,   224,   123,   221,    -1,    -1,    38,
1197 >     419,   223,   420,   222,   221,    -1,   420,   421,    -1,   421,
1198 >      -1,   422,    -1,   423,    -1,     1,    -1,    96,   224,   123,
1199 >     221,    -1,   124,   224,   123,   221,    -1,    39,   223,   425,
1200 >     222,   221,    -1,   425,   426,    -1,   426,    -1,   435,    -1,
1201 >     436,    -1,   438,    -1,   439,    -1,   440,    -1,   441,    -1,
1202 >     442,    -1,   443,    -1,   444,    -1,   445,    -1,   434,    -1,
1203 >     447,    -1,   448,    -1,   462,    -1,   450,    -1,   452,    -1,
1204 >     454,    -1,   453,    -1,   457,    -1,   451,    -1,   458,    -1,
1205 >     459,    -1,   460,    -1,   461,    -1,   474,    -1,   463,    -1,
1206 >     464,    -1,   465,    -1,   470,    -1,   455,    -1,   456,    -1,
1207 >     480,    -1,   478,    -1,   479,    -1,   437,    -1,   469,    -1,
1208 >     446,    -1,   467,    -1,   468,    -1,   433,    -1,   428,    -1,
1209 >     429,    -1,   430,    -1,   431,    -1,   432,    -1,   449,    -1,
1210 >     427,    -1,   466,    -1,     1,    -1,    87,   224,   105,   221,
1211 >      -1,    42,   224,   164,   221,    -1,    41,   224,   230,   221,
1212 >      -1,    44,   224,   230,   221,    -1,    45,   224,   105,   221,
1213 >      -1,    46,   224,   105,   221,    -1,   152,   224,   164,   221,
1214 >      -1,    64,   224,   230,   221,    -1,    56,   224,   164,   221,
1215 >      -1,    60,   224,   164,   221,    -1,    28,   224,   164,   221,
1216 >      -1,    35,   224,   164,   221,    -1,     6,   224,   164,   221,
1217 >      -1,    83,   224,   230,   221,    -1,    81,   224,   105,   221,
1218 >      -1,    74,   224,   105,   221,    -1,     7,   224,   230,   221,
1219 >      -1,   167,   224,   230,   221,    -1,   166,   224,   230,   221,
1220 >      -1,    50,   224,   105,   221,    -1,    61,   224,   164,   221,
1221 >      -1,   218,   224,   164,   221,    -1,   159,   224,   164,   221,
1222 >      -1,   162,   224,   164,   221,    -1,   163,   224,   164,   221,
1223 >      -1,   161,   224,   164,   221,    -1,   161,   224,   165,   221,
1224 >      -1,   160,   224,   164,   221,    -1,   160,   224,   165,   221,
1225 >      -1,   116,   224,   230,   221,    -1,    12,   224,   230,   221,
1226 >      -1,   109,   224,   164,   221,    -1,   117,   224,   230,   221,
1227 >      -1,   156,   224,   164,   221,    -1,   103,   224,   164,   221,
1228 >      -1,   210,   224,   164,   221,    -1,   111,   224,   164,   221,
1229 >      -1,    29,   224,   105,   221,    -1,    85,   224,   105,   221,
1230 >      -1,   213,   224,   164,   221,    -1,    30,   224,   123,   221,
1231 >      -1,   208,   224,   123,   221,    -1,   120,   224,   164,   221,
1232 >      -1,    26,   224,   164,   221,    -1,   209,   224,   230,   221,
1233 >      -1,    -1,   113,   471,   224,   472,   221,    -1,   472,   225,
1234 >     473,    -1,   473,    -1,   170,    -1,   173,    -1,   174,    -1,
1235 >     176,    -1,   177,    -1,   180,    -1,    51,    -1,   194,    -1,
1236 >     186,    -1,   190,    -1,   198,    -1,   195,    -1,   179,    -1,
1237 >     188,    -1,   192,    -1,   181,    -1,   204,    -1,   171,    -1,
1238 >     172,    -1,   184,    -1,    -1,   110,   475,   224,   476,   221,
1239 >      -1,   476,   225,   477,    -1,   477,    -1,   170,    -1,   173,
1240 >      -1,   174,    -1,   176,    -1,   177,    -1,   180,    -1,   194,
1241 >      -1,    51,    -1,   186,    -1,   190,    -1,   198,    -1,   195,
1242 >      -1,   179,    -1,   188,    -1,   192,    -1,   181,    -1,   204,
1243 >      -1,   171,    -1,   172,    -1,   184,    -1,   187,    -1,    88,
1244 >     224,   105,   221,    -1,    89,   224,   105,   221,    -1,    20,
1245 >     224,   105,   221,    -1,    14,   223,   482,   222,   221,    -1,
1246 >     482,   483,    -1,   483,    -1,   489,    -1,   485,    -1,   486,
1247 >      -1,   487,    -1,   488,    -1,   490,    -1,   491,    -1,   492,
1248 >      -1,   493,    -1,   494,    -1,   495,    -1,   484,    -1,     1,
1249 >      -1,    27,   224,   164,   221,    -1,    67,   224,   230,   221,
1250 >      -1,    68,   224,   230,   221,    -1,    77,   224,   105,   221,
1251 >      -1,    76,   224,   105,   221,    -1,    75,   224,   105,   221,
1252 >      -1,    22,   224,   105,   221,    -1,    21,   224,   105,   221,
1253 >      -1,   101,   224,   164,   221,    -1,   102,   224,   164,   221,
1254 >      -1,   114,   224,   105,   221,    -1,   115,   224,   230,   221,
1255 >      -1,   149,   223,   497,   222,   221,    -1,   497,   498,    -1,
1256 >     498,    -1,   499,    -1,   500,    -1,   501,    -1,   503,    -1,
1257 >     504,    -1,   502,    -1,   505,    -1,     1,    -1,    37,   224,
1258 >     164,   221,    -1,    54,   224,   164,   221,    -1,    55,   224,
1259 >     164,   221,    -1,    52,   224,   123,   221,    -1,    70,   224,
1260 >     230,   221,    -1,    51,   224,   164,   221,    -1,    53,   224,
1261 >     164,   221,    -1
1262   };
1263  
1264   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1265   static const yytype_uint16 yyrline[] =
1266   {
1267 <       0,   379,   379,   380,   383,   384,   385,   386,   387,   388,
1268 <     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
1269 <     399,   400,   401,   402,   403,   404,   405,   409,   409,   410,
1270 <     414,   418,   422,   426,   430,   436,   436,   437,   438,   439,
1271 <     440,   447,   450,   450,   451,   451,   451,   453,   459,   466,
1272 <     468,   468,   469,   469,   470,   470,   471,   471,   472,   472,
1273 <     473,   473,   474,   474,   475,   475,   476,   477,   480,   481,
1274 <     483,   483,   484,   490,   498,   498,   499,   505,   513,   552,
1275 <     611,   639,   647,   662,   677,   686,   700,   709,   737,   767,
1276 <     790,   799,   801,   801,   802,   802,   803,   803,   805,   814,
1277 <     823,   835,   836,   836,   838,   838,   839,   841,   848,   848,
1278 <     858,   859,   861,   861,   862,   862,   864,   869,   872,   878,
1279 <     877,   883,   883,   884,   888,   892,   896,   900,   904,   908,
1280 <     919,   918,  1016,  1016,  1017,  1017,  1017,  1018,  1018,  1018,
1281 <    1019,  1019,  1019,  1021,  1033,  1070,  1082,  1093,  1135,  1145,
1282 <    1144,  1150,  1150,  1151,  1155,  1159,  1163,  1167,  1171,  1175,
1283 <    1179,  1183,  1187,  1191,  1195,  1199,  1203,  1207,  1211,  1215,
1284 <    1219,  1223,  1227,  1234,  1233,  1239,  1239,  1240,  1244,  1248,
1285 <    1252,  1256,  1260,  1264,  1268,  1272,  1276,  1280,  1284,  1288,
1286 <    1292,  1296,  1300,  1304,  1308,  1319,  1318,  1368,  1368,  1369,
1287 <    1370,  1370,  1371,  1372,  1373,  1374,  1375,  1376,  1377,  1378,
1288 <    1379,  1380,  1381,  1383,  1392,  1398,  1404,  1410,  1416,  1422,
1289 <    1428,  1434,  1440,  1446,  1452,  1458,  1468,  1467,  1484,  1483,
1290 <    1488,  1488,  1489,  1493,  1497,  1505,  1505,  1506,  1506,  1506,
1291 <    1506,  1506,  1508,  1508,  1510,  1510,  1512,  1526,  1546,  1555,
1292 <    1568,  1567,  1636,  1636,  1637,  1637,  1637,  1637,  1638,  1638,
1293 <    1638,  1639,  1639,  1641,  1678,  1691,  1700,  1712,  1711,  1715,
1294 <    1715,  1716,  1720,  1724,  1728,  1732,  1736,  1740,  1744,  1748,
1295 <    1755,  1774,  1784,  1798,  1797,  1813,  1813,  1814,  1814,  1814,
1296 <    1814,  1816,  1825,  1840,  1853,  1855,  1855,  1856,  1856,  1858,
1297 <    1874,  1873,  1889,  1889,  1890,  1890,  1890,  1890,  1892,  1901,
1298 <    1924,  1923,  1929,  1929,  1930,  1934,  1938,  1942,  1946,  1950,
1299 <    1954,  1958,  1962,  1966,  1976,  1975,  1992,  1992,  1993,  1993,
1300 <    1993,  1995,  2002,  2001,  2007,  2007,  2008,  2012,  2016,  2020,
1301 <    2024,  2028,  2032,  2036,  2040,  2044,  2054,  2053,  2182,  2182,
1302 <    2183,  2183,  2183,  2184,  2184,  2185,  2185,  2185,  2186,  2186,
1303 <    2186,  2187,  2187,  2188,  2190,  2199,  2208,  2234,  2252,  2270,
1304 <    2276,  2280,  2289,  2288,  2292,  2292,  2293,  2297,  2301,  2305,
1305 <    2311,  2322,  2335,  2348,  2357,  2376,  2375,  2439,  2438,  2442,
1306 <    2442,  2443,  2449,  2449,  2450,  2450,  2450,  2450,  2452,  2471,
1307 <    2481,  2480,  2503,  2503,  2504,  2504,  2504,  2506,  2512,  2521,
1308 <    2523,  2523,  2524,  2524,  2526,  2545,  2544,  2592,  2591,  2595,
1309 <    2595,  2596,  2602,  2602,  2603,  2603,  2603,  2603,  2605,  2611,
1310 <    2620,  2623,  2623,  2624,  2624,  2625,  2625,  2626,  2626,  2627,
1311 <    2627,  2628,  2628,  2629,  2629,  2630,  2630,  2631,  2631,  2632,
1312 <    2632,  2633,  2633,  2634,  2634,  2635,  2635,  2636,  2636,  2637,
1313 <    2638,  2638,  2639,  2639,  2640,  2640,  2641,  2641,  2642,  2642,
1314 <    2643,  2644,  2645,  2645,  2646,  2647,  2648,  2648,  2649,  2649,
1315 <    2650,  2650,  2651,  2651,  2652,  2655,  2660,  2665,  2670,  2675,
1316 <    2680,  2685,  2690,  2695,  2700,  2705,  2710,  2715,  2720,  2725,
1317 <    2730,  2735,  2740,  2746,  2757,  2762,  2771,  2776,  2781,  2786,
1318 <    2791,  2796,  2799,  2804,  2807,  2812,  2817,  2822,  2827,  2832,
1319 <    2837,  2842,  2847,  2852,  2863,  2868,  2873,  2878,  2887,  2896,
1320 <    2901,  2906,  2912,  2911,  2916,  2916,  2917,  2920,  2923,  2926,
1321 <    2929,  2932,  2935,  2938,  2941,  2944,  2947,  2950,  2953,  2956,
1322 <    2959,  2962,  2965,  2968,  2971,  2974,  2980,  2979,  2984,  2984,
1323 <    2985,  2988,  2991,  2994,  2997,  3000,  3003,  3006,  3009,  3012,
1324 <    3015,  3018,  3021,  3024,  3027,  3030,  3033,  3036,  3039,  3042,
1325 <    3047,  3052,  3057,  3062,  3072,  3071,  3095,  3095,  3096,  3097,
1326 <    3098,  3099,  3100,  3101,  3102,  3104,  3110,  3117,  3116,  3121,
1327 <    3121,  3122,  3126,  3132,  3166,  3176,  3175,  3225,  3225,  3226,
1328 <    3230,  3239,  3242,  3242,  3243,  3243,  3244,  3244,  3245,  3245,
1329 <    3246,  3246,  3247,  3247,  3248,  3249,  3249,  3250,  3250,  3251,
1357 <    3251,  3252,  3252,  3254,  3259,  3264,  3269,  3274,  3279,  3284,
1358 <    3289,  3294,  3299,  3304,  3309,  3314,  3319,  3324,  3329,  3334,
1359 <    3339,  3347,  3350,  3350,  3351,  3351,  3352,  3353,  3354,  3354,
1360 <    3355,  3356,  3358,  3364,  3370,  3379,  3393,  3399,  3405
1267 >       0,   362,   362,   363,   366,   367,   368,   369,   370,   371,
1268 >     372,   373,   374,   375,   376,   377,   378,   379,   380,   381,
1269 >     382,   383,   384,   385,   386,   387,   391,   391,   392,   396,
1270 >     400,   404,   408,   412,   416,   420,   426,   426,   427,   428,
1271 >     429,   430,   437,   440,   440,   441,   441,   441,   443,   449,
1272 >     456,   458,   458,   459,   459,   460,   460,   461,   461,   462,
1273 >     462,   463,   463,   464,   464,   465,   465,   466,   466,   467,
1274 >     468,   471,   472,   474,   474,   475,   481,   489,   489,   490,
1275 >     496,   504,   546,   605,   633,   641,   656,   671,   680,   694,
1276 >     703,   731,   761,   786,   808,   830,   839,   841,   841,   842,
1277 >     842,   843,   843,   845,   854,   863,   875,   876,   876,   878,
1278 >     878,   879,   881,   888,   888,   901,   902,   904,   904,   905,
1279 >     905,   907,   915,   918,   924,   923,   929,   929,   930,   934,
1280 >     938,   942,   946,   950,   954,   965,   964,  1041,  1041,  1042,
1281 >    1042,  1042,  1043,  1043,  1043,  1044,  1044,  1044,  1046,  1052,
1282 >    1058,  1064,  1075,  1081,  1088,  1087,  1093,  1093,  1094,  1098,
1283 >    1102,  1106,  1110,  1114,  1118,  1122,  1126,  1130,  1134,  1138,
1284 >    1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,  1174,  1181,
1285 >    1180,  1186,  1186,  1187,  1191,  1195,  1199,  1203,  1207,  1211,
1286 >    1215,  1219,  1223,  1227,  1231,  1235,  1239,  1243,  1247,  1251,
1287 >    1255,  1266,  1265,  1326,  1326,  1327,  1328,  1328,  1329,  1330,
1288 >    1331,  1332,  1333,  1334,  1335,  1336,  1337,  1337,  1338,  1339,
1289 >    1340,  1341,  1343,  1349,  1355,  1361,  1367,  1373,  1379,  1385,
1290 >    1391,  1397,  1404,  1410,  1416,  1422,  1431,  1441,  1440,  1446,
1291 >    1446,  1447,  1451,  1462,  1461,  1468,  1467,  1472,  1472,  1473,
1292 >    1477,  1481,  1487,  1487,  1488,  1488,  1488,  1488,  1488,  1490,
1293 >    1490,  1492,  1492,  1494,  1508,  1528,  1534,  1544,  1543,  1585,
1294 >    1585,  1586,  1586,  1586,  1586,  1587,  1587,  1587,  1588,  1588,
1295 >    1590,  1596,  1602,  1608,  1620,  1619,  1625,  1625,  1626,  1630,
1296 >    1634,  1638,  1642,  1646,  1650,  1654,  1658,  1662,  1668,  1682,
1297 >    1691,  1705,  1704,  1719,  1719,  1720,  1720,  1720,  1720,  1722,
1298 >    1728,  1734,  1744,  1746,  1746,  1747,  1747,  1749,  1765,  1764,
1299 >    1789,  1789,  1790,  1790,  1790,  1790,  1792,  1798,  1818,  1817,
1300 >    1823,  1823,  1824,  1828,  1832,  1836,  1840,  1844,  1848,  1852,
1301 >    1856,  1860,  1870,  1869,  1890,  1890,  1891,  1891,  1891,  1893,
1302 >    1900,  1899,  1905,  1905,  1906,  1910,  1914,  1918,  1922,  1926,
1303 >    1930,  1934,  1938,  1942,  1952,  1951,  2017,  2017,  2018,  2018,
1304 >    2018,  2019,  2019,  2020,  2020,  2020,  2021,  2021,  2021,  2022,
1305 >    2022,  2023,  2025,  2031,  2037,  2043,  2056,  2069,  2075,  2079,
1306 >    2088,  2087,  2092,  2092,  2093,  2097,  2103,  2114,  2120,  2126,
1307 >    2132,  2148,  2147,  2173,  2173,  2174,  2174,  2174,  2176,  2196,
1308 >    2206,  2205,  2232,  2232,  2233,  2233,  2233,  2235,  2241,  2250,
1309 >    2252,  2252,  2253,  2253,  2255,  2273,  2272,  2295,  2295,  2296,
1310 >    2296,  2296,  2298,  2304,  2313,  2316,  2316,  2317,  2317,  2318,
1311 >    2318,  2319,  2319,  2320,  2320,  2321,  2321,  2322,  2323,  2324,
1312 >    2324,  2325,  2325,  2326,  2326,  2327,  2327,  2328,  2328,  2329,
1313 >    2329,  2330,  2330,  2331,  2331,  2332,  2332,  2333,  2333,  2334,
1314 >    2334,  2335,  2336,  2336,  2337,  2338,  2339,  2339,  2340,  2340,
1315 >    2341,  2342,  2343,  2344,  2344,  2345,  2348,  2353,  2359,  2365,
1316 >    2371,  2376,  2381,  2386,  2391,  2396,  2401,  2406,  2411,  2416,
1317 >    2421,  2426,  2431,  2436,  2441,  2447,  2458,  2463,  2468,  2473,
1318 >    2478,  2483,  2486,  2491,  2494,  2499,  2504,  2509,  2514,  2519,
1319 >    2524,  2529,  2534,  2539,  2544,  2549,  2554,  2563,  2572,  2577,
1320 >    2582,  2588,  2587,  2592,  2592,  2593,  2596,  2599,  2602,  2605,
1321 >    2608,  2611,  2614,  2617,  2620,  2623,  2626,  2629,  2632,  2635,
1322 >    2638,  2641,  2644,  2647,  2650,  2656,  2655,  2660,  2660,  2661,
1323 >    2664,  2667,  2670,  2673,  2676,  2679,  2682,  2685,  2688,  2691,
1324 >    2694,  2697,  2700,  2703,  2706,  2709,  2712,  2715,  2718,  2721,
1325 >    2726,  2731,  2736,  2745,  2748,  2748,  2749,  2750,  2750,  2751,
1326 >    2751,  2752,  2753,  2754,  2755,  2756,  2756,  2757,  2757,  2759,
1327 >    2764,  2769,  2774,  2779,  2784,  2789,  2794,  2799,  2804,  2809,
1328 >    2814,  2822,  2825,  2825,  2826,  2826,  2827,  2828,  2829,  2829,
1329 >    2830,  2831,  2833,  2839,  2845,  2851,  2860,  2874,  2880
1330   };
1331   #endif
1332  
1333 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1333 > #if YYDEBUG || YYERROR_VERBOSE || 0
1334   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1335     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1336   static const char *const yytname[] =
1337   {
1338 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1339 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1340 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1372 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1338 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1339 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1340 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1341    "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1342    "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1343    "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1344 <  "DISABLE_FAKE_CHANNELS", "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS",
1345 <  "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH",
1378 <  "EMAIL", "ENABLE", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1344 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1345 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1346    "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1347 <  "GLINE", "GLINES", "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR",
1348 <  "GLINE_MIN_CIDR6", "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT",
1349 <  "HAVENT_READ_CONF", "HIDDEN", "HIDDEN_NAME", "HIDE_SERVER_IPS",
1350 <  "HIDE_SERVERS", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1351 <  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "KILL",
1352 <  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_REASON",
1353 <  "KLINE_WITH_REASON", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1354 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1355 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1356 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1357 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1358 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1359 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1347 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1348 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1349 >  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1350 >  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES",
1351 >  "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1352 >  "INVISIBLE_ON_CONNECT", "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1353 >  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1354 >  "LINKS_DELAY", "LISTEN", "T_LOG", "MASK", "MAX_ACCEPT", "MAX_BANS",
1355 >  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1356 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1357 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1358 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
1359 >  "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
1360 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1361    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1362 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1363 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1364 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1365 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1366 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1367 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1400 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1401 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1362 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1363 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1364 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1365 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1366 >  "PING_TIME", "PORT", "QSTRING", "REASON", "REDIRPORT", "REDIRSERV",
1367 >  "REHASH", "REMOTE", "REMOTEBAN", "RSA_PRIVATE_KEY_FILE",
1368    "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE",
1369    "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1",
1370    "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1371 <  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1372 <  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1373 <  "SILENT", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1371 >  "MONTHS", "YEARS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO",
1372 >  "IRCD_SID", "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE",
1373 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED",
1374    "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1375 <  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "T_REJECT", "TS_MAX_DELTA",
1376 <  "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID",
1377 <  "T_CALLERID", "T_CCONN", "T_CCONN_FULL", "T_SSL_CIPHER_LIST",
1412 <  "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE", "T_DRONE",
1375 >  "STATS_P_OPER_ONLY", "TBOOL", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1376 >  "TWODOTS", "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1377 >  "T_CCONN_FULL", "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE",
1378    "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS",
1379 <  "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ", "T_SERVER",
1380 <  "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES", "T_UNAUTH",
1381 <  "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_GLOBOPS",
1382 <  "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME",
1383 <  "TOPICBURST", "TRUE_NO_OPER_FLOOD", "TKLINE", "TXLINE", "TRESV",
1384 <  "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT", "USE_INVEX", "USE_KNOCK",
1420 <  "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE", "WARN",
1379 >  "T_MAX_CLIENTS", "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ",
1380 >  "T_REJ", "T_SERVER", "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY",
1381 >  "T_SSL", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV",
1382 >  "T_UNXLINE", "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART",
1383 >  "T_SERVICE", "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD",
1384 >  "UNKLINE", "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1385    "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1386    "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1387    "sizespec", "modules_entry", "modules_items", "modules_item",
# Line 1430 | Line 1394 | static const char *const yytname[] =
1394    "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1395    "serverinfo_description", "serverinfo_network_name",
1396    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1397 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1398 <  "admin_item", "admin_name", "admin_email", "admin_description",
1399 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1400 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1401 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1402 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1403 <  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1404 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1405 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1406 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1407 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1408 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1409 <  "class_connectfreq", "class_max_number", "class_max_global",
1410 <  "class_max_local", "class_max_ident", "class_sendq",
1411 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1412 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1413 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1414 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1415 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1416 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1417 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1418 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1419 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1420 <  "service_entry", "service_items", "service_item", "service_name",
1421 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1422 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1423 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1424 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1425 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1397 >  "serverinfo_max_clients", "serverinfo_max_nick_length",
1398 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1399 >  "admin_items", "admin_item", "admin_name", "admin_email",
1400 >  "admin_description", "logging_entry", "logging_items", "logging_item",
1401 >  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1402 >  "logging_file_item", "logging_file_name", "logging_file_size",
1403 >  "logging_file_type", "$@2", "logging_file_type_items",
1404 >  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1405 >  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1406 >  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1407 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1408 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1409 >  "class_items", "class_item", "class_name", "class_ping_time",
1410 >  "class_number_per_ip", "class_connectfreq", "class_max_number",
1411 >  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1412 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1413 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1414 >  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1415 >  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1416 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1417 >  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1418 >  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1419 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1420 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1421 >  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1422 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1423 >  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1424 >  "shared_items", "shared_item", "shared_name", "shared_user",
1425 >  "shared_type", "$@15", "shared_types", "shared_type_item",
1426 >  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1427 >  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1428 >  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1429    "connect_host", "connect_vhost", "connect_send_password",
1430    "connect_accept_password", "connect_port", "connect_aftype",
1431 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1431 >  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1432    "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1433 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1434 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1435 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1436 <  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1437 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1438 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1439 <  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1440 <  "general_entry", "general_items", "general_item", "general_max_watch",
1441 <  "general_gline_min_cidr", "general_gline_min_cidr6",
1442 <  "general_use_whois_actually", "general_reject_hold_time",
1443 <  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1444 <  "general_hide_spoof_ips", "general_ignore_bogus_ts",
1445 <  "general_disable_remote_commands", "general_failed_oper_notice",
1446 <  "general_anti_nick_flood", "general_max_nick_time",
1447 <  "general_max_nick_changes", "general_max_accept",
1448 <  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1449 <  "general_ts_max_delta", "general_havent_read_conf",
1450 <  "general_kline_with_reason", "general_kline_reason",
1451 <  "general_invisible_on_connect", "general_warn_no_nline",
1452 <  "general_stats_e_disabled", "general_stats_o_oper_only",
1453 <  "general_stats_P_oper_only", "general_stats_k_oper_only",
1454 <  "general_stats_i_oper_only", "general_pace_wait",
1455 <  "general_caller_id_wait", "general_opers_bypass_callerid",
1489 <  "general_pace_wait_simple", "general_short_motd",
1490 <  "general_no_oper_flood", "general_true_no_oper_flood",
1491 <  "general_oper_pass_resv", "general_message_locale",
1433 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1434 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1435 >  "$@21", "deny_items", "deny_item", "deny_ip", "deny_reason",
1436 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1437 >  "gecos_entry", "$@22", "gecos_items", "gecos_item", "gecos_name",
1438 >  "gecos_reason", "general_entry", "general_items", "general_item",
1439 >  "general_max_watch", "general_gline_enable", "general_gline_duration",
1440 >  "general_gline_request_duration", "general_gline_min_cidr",
1441 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1442 >  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1443 >  "general_ignore_bogus_ts", "general_disable_remote_commands",
1444 >  "general_failed_oper_notice", "general_anti_nick_flood",
1445 >  "general_max_nick_time", "general_max_nick_changes",
1446 >  "general_max_accept", "general_anti_spam_exit_message_time",
1447 >  "general_ts_warn_delta", "general_ts_max_delta",
1448 >  "general_havent_read_conf", "general_invisible_on_connect",
1449 >  "general_warn_no_nline", "general_stats_e_disabled",
1450 >  "general_stats_o_oper_only", "general_stats_P_oper_only",
1451 >  "general_stats_k_oper_only", "general_stats_i_oper_only",
1452 >  "general_pace_wait", "general_caller_id_wait",
1453 >  "general_opers_bypass_callerid", "general_pace_wait_simple",
1454 >  "general_short_motd", "general_no_oper_flood",
1455 >  "general_true_no_oper_flood", "general_oper_pass_resv",
1456    "general_dots_in_ident", "general_max_targets", "general_use_egd",
1457    "general_egdpool_path", "general_services_name", "general_ping_cookie",
1458    "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1459 <  "$@24", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1460 <  "$@25", "umode_items", "umode_item", "general_min_nonwildcard",
1459 >  "$@23", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1460 >  "$@24", "umode_items", "umode_item", "general_min_nonwildcard",
1461    "general_min_nonwildcard_simple", "general_default_floodcount",
1498  "general_client_flood", "gline_entry", "$@26", "gline_items",
1499  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@27",
1500  "gline_logging_types", "gline_logging_type_item", "gline_user",
1501  "gline_server", "gline_action", "$@28", "gdeny_types", "gdeny_type_item",
1462    "channel_entry", "channel_items", "channel_item",
1463 <  "channel_disable_fake_channels", "channel_restrict_channels",
1504 <  "channel_disable_local_channels", "channel_use_except",
1505 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1463 >  "channel_disable_fake_channels", "channel_knock_delay",
1464    "channel_knock_delay_channel", "channel_max_chans_per_user",
1465 <  "channel_quiet_on_ban", "channel_max_bans",
1465 >  "channel_max_chans_per_oper", "channel_max_bans",
1466    "channel_default_split_user_count", "channel_default_split_server_count",
1467    "channel_no_create_on_split", "channel_no_join_on_split",
1468 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1469 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1470 <  "serverhide_flatten_links", "serverhide_hide_servers",
1468 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1469 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1470 >  "serverhide_hide_servers", "serverhide_hide_services",
1471    "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1472 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1472 >  "serverhide_hide_server_ips", YY_NULL
1473   };
1474   #endif
1475  
# Line 1542 | Line 1500 | static const yytype_uint16 yytoknum[] =
1500       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1501       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1502       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1503 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1546 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1547 <     495,    59,   125,   123,    61,    44
1503 >     475,    59,   125,   123,    61,    44
1504   };
1505   # endif
1506  
1507   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1508   static const yytype_uint16 yyr1[] =
1509   {
1510 <       0,   246,   247,   247,   248,   248,   248,   248,   248,   248,
1511 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
1512 <     248,   248,   248,   248,   248,   248,   248,   249,   249,   250,
1513 <     250,   250,   250,   250,   250,   251,   251,   252,   252,   252,
1514 <     252,   253,   254,   254,   255,   255,   255,   256,   257,   258,
1515 <     259,   259,   260,   260,   260,   260,   260,   260,   260,   260,
1516 <     260,   260,   260,   260,   260,   260,   260,   260,   261,   262,
1517 <     263,   263,   264,   264,   265,   265,   266,   266,   267,   268,
1518 <     269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
1519 <     279,   280,   281,   281,   282,   282,   282,   282,   283,   284,
1520 <     285,   286,   287,   287,   288,   288,   288,   289,   291,   290,
1521 <     292,   292,   293,   293,   293,   293,   294,   295,   295,   297,
1510 >       0,   226,   227,   227,   228,   228,   228,   228,   228,   228,
1511 >     228,   228,   228,   228,   228,   228,   228,   228,   228,   228,
1512 >     228,   228,   228,   228,   228,   228,   229,   229,   230,   230,
1513 >     230,   230,   230,   230,   230,   230,   231,   231,   232,   232,
1514 >     232,   232,   233,   234,   234,   235,   235,   235,   236,   237,
1515 >     238,   239,   239,   240,   240,   240,   240,   240,   240,   240,
1516 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1517 >     240,   241,   242,   243,   243,   244,   244,   245,   245,   246,
1518 >     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1519 >     256,   257,   258,   259,   260,   261,   262,   263,   263,   264,
1520 >     264,   264,   264,   265,   266,   267,   268,   269,   269,   270,
1521 >     270,   270,   271,   273,   272,   274,   274,   275,   275,   275,
1522 >     275,   276,   277,   277,   279,   278,   280,   280,   281,   281,
1523 >     281,   281,   281,   281,   281,   283,   282,   284,   284,   285,
1524 >     285,   285,   285,   285,   285,   285,   285,   285,   286,   287,
1525 >     288,   289,   290,   291,   293,   292,   294,   294,   295,   295,
1526 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1527 >     295,   295,   295,   295,   295,   295,   295,   295,   295,   297,
1528       296,   298,   298,   299,   299,   299,   299,   299,   299,   299,
1529 <     301,   300,   302,   302,   303,   303,   303,   303,   303,   303,
1530 <     303,   303,   303,   304,   305,   306,   307,   308,   309,   311,
1531 <     310,   312,   312,   313,   313,   313,   313,   313,   313,   313,
1532 <     313,   313,   313,   313,   313,   313,   313,   313,   313,   313,
1533 <     313,   313,   313,   315,   314,   316,   316,   317,   317,   317,
1534 <     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
1535 <     317,   317,   317,   317,   317,   319,   318,   320,   320,   321,
1536 <     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
1537 <     321,   321,   321,   322,   323,   324,   325,   326,   327,   328,
1538 <     329,   330,   331,   332,   333,   334,   336,   335,   338,   337,
1539 <     339,   339,   340,   340,   340,   341,   341,   342,   342,   342,
1540 <     342,   342,   344,   343,   345,   345,   346,   346,   347,   348,
1541 <     350,   349,   351,   351,   352,   352,   352,   352,   352,   352,
1542 <     352,   352,   352,   353,   354,   355,   356,   358,   357,   359,
1543 <     359,   360,   360,   360,   360,   360,   360,   360,   360,   360,
1544 <     361,   362,   363,   365,   364,   366,   366,   367,   367,   367,
1545 <     367,   368,   369,   370,   371,   372,   372,   373,   373,   374,
1546 <     376,   375,   377,   377,   378,   378,   378,   378,   379,   380,
1547 <     382,   381,   383,   383,   384,   384,   384,   384,   384,   384,
1548 <     384,   384,   384,   384,   386,   385,   387,   387,   388,   388,
1549 <     388,   389,   391,   390,   392,   392,   393,   393,   393,   393,
1550 <     393,   393,   393,   393,   393,   393,   395,   394,   396,   396,
1551 <     397,   397,   397,   397,   397,   397,   397,   397,   397,   397,
1552 <     397,   397,   397,   397,   398,   399,   400,   401,   402,   403,
1553 <     404,   404,   406,   405,   407,   407,   408,   408,   408,   408,
1554 <     409,   410,   411,   412,   413,   415,   414,   417,   416,   418,
1555 <     418,   419,   420,   420,   421,   421,   421,   421,   422,   423,
1556 <     425,   424,   426,   426,   427,   427,   427,   428,   429,   430,
1557 <     431,   431,   432,   432,   433,   435,   434,   437,   436,   438,
1558 <     438,   439,   440,   440,   441,   441,   441,   441,   442,   443,
1559 <     444,   445,   445,   446,   446,   446,   446,   446,   446,   446,
1560 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1561 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1562 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1563 <     446,   446,   446,   446,   446,   446,   446,   446,   446,   446,
1564 <     446,   446,   446,   446,   446,   447,   448,   449,   450,   451,
1565 <     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
1566 <     462,   463,   464,   465,   466,   467,   468,   469,   470,   471,
1567 <     472,   473,   473,   474,   474,   475,   476,   477,   478,   479,
1568 <     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
1569 <     490,   491,   493,   492,   494,   494,   495,   495,   495,   495,
1570 <     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
1571 <     495,   495,   495,   495,   495,   495,   497,   496,   498,   498,
1572 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1611 <     499,   499,   499,   499,   499,   499,   499,   499,   499,   499,
1612 <     500,   501,   502,   503,   505,   504,   506,   506,   507,   507,
1613 <     507,   507,   507,   507,   507,   508,   509,   511,   510,   512,
1614 <     512,   513,   513,   514,   515,   517,   516,   518,   518,   519,
1615 <     519,   520,   521,   521,   522,   522,   522,   522,   522,   522,
1616 <     522,   522,   522,   522,   522,   522,   522,   522,   522,   522,
1617 <     522,   522,   522,   523,   524,   525,   526,   527,   528,   529,
1618 <     530,   531,   532,   533,   534,   535,   536,   537,   538,   539,
1619 <     540,   541,   542,   542,   543,   543,   543,   543,   543,   543,
1620 <     543,   543,   544,   545,   546,   547,   548,   549,   550
1529 >     299,   299,   299,   299,   299,   299,   299,   299,   299,   299,
1530 >     299,   301,   300,   302,   302,   303,   303,   303,   303,   303,
1531 >     303,   303,   303,   303,   303,   303,   303,   303,   303,   303,
1532 >     303,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1533 >     312,   313,   314,   315,   316,   317,   318,   320,   319,   321,
1534 >     321,   322,   322,   324,   323,   326,   325,   327,   327,   328,
1535 >     328,   328,   329,   329,   330,   330,   330,   330,   330,   332,
1536 >     331,   333,   333,   334,   334,   335,   336,   338,   337,   339,
1537 >     339,   340,   340,   340,   340,   340,   340,   340,   340,   340,
1538 >     341,   342,   343,   344,   346,   345,   347,   347,   348,   348,
1539 >     348,   348,   348,   348,   348,   348,   348,   348,   349,   350,
1540 >     351,   353,   352,   354,   354,   355,   355,   355,   355,   356,
1541 >     357,   358,   359,   360,   360,   361,   361,   362,   364,   363,
1542 >     365,   365,   366,   366,   366,   366,   367,   368,   370,   369,
1543 >     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1544 >     372,   372,   374,   373,   375,   375,   376,   376,   376,   377,
1545 >     379,   378,   380,   380,   381,   381,   381,   381,   381,   381,
1546 >     381,   381,   381,   381,   383,   382,   384,   384,   385,   385,
1547 >     385,   385,   385,   385,   385,   385,   385,   385,   385,   385,
1548 >     385,   385,   386,   387,   388,   389,   390,   391,   392,   392,
1549 >     394,   393,   395,   395,   396,   396,   397,   398,   399,   400,
1550 >     401,   403,   402,   404,   404,   405,   405,   405,   406,   407,
1551 >     409,   408,   410,   410,   411,   411,   411,   412,   413,   414,
1552 >     415,   415,   416,   416,   417,   419,   418,   420,   420,   421,
1553 >     421,   421,   422,   423,   424,   425,   425,   426,   426,   426,
1554 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1555 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1556 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1557 >     426,   426,   426,   426,   426,   426,   426,   426,   426,   426,
1558 >     426,   426,   426,   426,   426,   426,   427,   428,   429,   430,
1559 >     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
1560 >     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
1561 >     451,   452,   452,   453,   453,   454,   455,   456,   457,   458,
1562 >     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1563 >     469,   471,   470,   472,   472,   473,   473,   473,   473,   473,
1564 >     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1565 >     473,   473,   473,   473,   473,   475,   474,   476,   476,   477,
1566 >     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1567 >     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1568 >     478,   479,   480,   481,   482,   482,   483,   483,   483,   483,
1569 >     483,   483,   483,   483,   483,   483,   483,   483,   483,   484,
1570 >     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1571 >     495,   496,   497,   497,   498,   498,   498,   498,   498,   498,
1572 >     498,   498,   499,   500,   501,   502,   503,   504,   505
1573   };
1574  
1575   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1625 | Line 1577 | static const yytype_uint8 yyr2[] =
1577   {
1578         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1579         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1580 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1581 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1582 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1583 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1632 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1633 <       3,     1,     1,     1,     3,     1,     1,     1,     4,     4,
1634 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1635 <       4,     5,     2,     1,     1,     1,     1,     2,     4,     4,
1636 <       4,     5,     2,     1,     1,     1,     2,     4,     0,     6,
1637 <       2,     1,     1,     1,     1,     2,     4,     4,     4,     0,
1638 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1639 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1640 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     0,
1641 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1642 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1643 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1580 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1581 >       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1582 >       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1583 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1584         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1585 +       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1586 +       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1587 +       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1588 +       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1589 +       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1590 +       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1591         1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1592 +       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1593 +       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1594         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1595 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1596 <       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1597 <       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1598 <       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1651 <       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1652 <       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1595 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1596 >       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1597 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1598 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
1599         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1600 <       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1601 <       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1602 <       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1600 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1601 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1602 >       1,     1,     1,     0,     6,     0,     5,     3,     1,     1,
1603 >       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
1604 >       5,     3,     1,     1,     3,     4,     4,     0,     6,     2,
1605 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1606 >       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1607 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1608 >       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1609 >       4,     4,     5,     2,     1,     1,     1,     4,     0,     6,
1610 >       2,     1,     1,     1,     1,     2,     4,     4,     0,     5,
1611 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1612 >       1,     1,     0,     6,     2,     1,     1,     1,     2,     4,
1613         0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1614         1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1659       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1660       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1615         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1616 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1617 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1618 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1665 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1616 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
1617 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
1618 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
1619         0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1620 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1621 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1669 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1620 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
1621 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
1622         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1623         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1624         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1625         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1626 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1626 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1627         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1628         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1629         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1630         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1631 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1631 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1632         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1633 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1633 >       1,     1,     1,     1,     1,     0,     5,     3,     1,     1,
1634         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1635         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1636 <       4,     4,     4,     4,     0,     6,     2,     1,     1,     1,
1637 <       1,     1,     1,     1,     1,     4,     4,     0,     5,     3,
1686 <       1,     1,     1,     4,     4,     0,     5,     3,     1,     1,
1687 <       1,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1688 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1689 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1636 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1637 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1638         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1639         4,     5,     2,     1,     1,     1,     1,     1,     1,     1,
1640         1,     1,     4,     4,     4,     4,     4,     4,     4
# Line 1697 | Line 1645 | static const yytype_uint8 yyr2[] =
1645     means the default is an error.  */
1646   static const yytype_uint16 yydefact[] =
1647   {
1648 <       2,     0,     1,     0,     0,     0,   195,   346,   400,     0,
1649 <     415,     0,   584,   250,   385,   226,     0,     0,   130,   283,
1650 <       0,     0,   300,   324,     0,     3,    24,    11,     4,     5,
1651 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1652 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1705 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1706 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1707 <       0,     0,     0,     0,     0,    93,    94,    96,    95,   632,
1648 >       2,     0,     1,     0,     0,     0,   201,   364,   410,     0,
1649 >     425,     0,   267,   401,   243,     0,     0,   135,   301,     0,
1650 >       0,   318,   342,     0,     3,    23,    11,     4,     5,     6,
1651 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1652 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1653         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1709       0,     0,     0,     0,     0,     0,     0,     0,     0,   613,
1710     631,   626,   614,   615,   616,   617,   619,   620,   621,   622,
1711     618,   623,   624,   625,   627,   628,   629,   630,     0,     0,
1712       0,   413,     0,     0,   411,   412,     0,   484,     0,     0,
1654         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1655 +       0,     0,    98,    99,   101,   100,   598,     0,     0,     0,
1656         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1657 <       0,     0,     0,     0,     0,     0,   556,     0,   532,     0,
1657 >     585,   597,   587,   588,   589,   590,   586,   591,   592,   593,
1658 >     594,   595,   596,     0,     0,     0,   423,     0,     0,   421,
1659 >     422,     0,   485,     0,     0,     0,     0,     0,     0,     0,
1660         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1662 <     432,   482,   477,   478,   479,   480,   476,   443,   433,   434,
1719 <     470,   435,   436,   437,   438,   439,   440,   441,   442,   473,
1720 <     444,   445,   446,   447,   481,   449,   454,   450,   452,   451,
1721 <     465,   466,   453,   455,   456,   457,   458,   459,   448,   461,
1722 <     462,   463,   483,   474,   475,   472,   464,   460,   468,   469,
1723 <     467,   471,     0,     0,     0,     0,     0,     0,     0,   103,
1724 <     104,   105,     0,     0,     0,     0,     0,    43,    44,    45,
1725 <       0,     0,   661,     0,     0,     0,     0,     0,     0,     0,
1726 <       0,   653,   654,   655,   659,   656,   658,   657,   660,     0,
1662 >       0,   555,     0,   531,     0,     0,     0,     0,     0,     0,
1663         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1664 <       0,     0,     0,     0,     0,     0,    51,    64,    65,    63,
1665 <      60,    59,    66,    52,    62,    55,    56,    57,    53,    61,
1666 <      58,    54,     0,     0,   298,     0,     0,   296,   297,    97,
1667 <       0,     0,     0,     0,    92,     0,     0,     0,     0,     0,
1664 >       0,     0,   436,   483,   477,   478,   479,   480,   481,   476,
1665 >     447,   437,   438,   471,   439,   440,   441,   442,   443,   444,
1666 >     445,   446,   473,   448,   449,   482,   451,   456,   452,   454,
1667 >     453,   466,   467,   455,   457,   458,   459,   460,   450,   462,
1668 >     463,   464,   484,   474,   475,   472,   465,   461,   469,   470,
1669 >     468,     0,     0,     0,     0,     0,     0,   108,   109,   110,
1670 >       0,     0,     0,     0,     0,    44,    45,    46,     0,     0,
1671 >     621,     0,     0,     0,     0,     0,     0,     0,     0,   613,
1672 >     614,   615,   616,   619,   617,   618,   620,     0,     0,     0,
1673         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1674 <       0,     0,     0,     0,   612,     0,     0,     0,     0,     0,
1674 >       0,     0,     0,     0,     0,     0,    52,    67,    68,    66,
1675 >      63,    62,    69,    53,    65,    56,    57,    58,    54,    64,
1676 >      59,    60,    61,    55,     0,     0,   316,     0,     0,   314,
1677 >     315,   102,     0,     0,     0,     0,    97,     0,     0,     0,
1678         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1679 <     198,   199,   202,   203,   205,   206,   207,   208,   209,   210,
1680 <     211,   200,   201,   204,     0,     0,     0,     0,     0,   372,
1681 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   349,
1682 <     350,   351,   352,   353,   354,   356,   355,   358,   362,   359,
1683 <     360,   361,   357,   406,     0,     0,     0,   403,   404,   405,
1684 <       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1685 <     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1679 >     584,     0,     0,     0,     0,   237,     0,     0,     0,     0,
1680 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   204,
1681 >     205,   208,   210,   211,   212,   213,   214,   215,   216,   217,
1682 >     206,   207,   209,   218,   219,   220,     0,     0,     0,     0,
1683 >       0,   390,     0,     0,     0,     0,     0,     0,     0,     0,
1684 >       0,   367,   368,   369,   370,   371,   372,   374,   373,   376,
1685 >     380,   377,   378,   379,   375,   416,     0,     0,     0,   413,
1686 >     414,   415,     0,     0,   420,   431,     0,     0,     0,   428,
1687 >     429,   430,     0,     0,     0,     0,     0,     0,     0,     0,
1688         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1689         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1690         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1691         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1692 <       0,     0,     0,     0,   431,   594,   605,     0,     0,   597,
1693 <       0,     0,     0,   587,   588,   589,   590,   591,   592,   593,
1694 <       0,     0,     0,   267,     0,     0,     0,     0,     0,     0,
1695 <     253,   254,   255,   256,   261,   257,   258,   259,   260,   397,
1696 <       0,   387,     0,   396,     0,   393,   394,   395,     0,   228,
1697 <       0,     0,     0,   238,     0,   236,   237,   239,   240,   106,
1698 <       0,     0,   102,     0,    46,     0,     0,     0,    42,     0,
1699 <       0,     0,   173,     0,     0,     0,   149,     0,     0,   133,
1700 <     134,   135,   136,   139,   140,   138,   137,   141,     0,     0,
1755 <       0,     0,     0,   286,   287,   288,   289,     0,     0,     0,
1756 <       0,     0,     0,     0,     0,   652,    67,     0,     0,     0,
1692 >       0,   435,     0,     0,     0,   284,     0,     0,     0,     0,
1693 >       0,     0,   270,   271,   272,   273,   278,   274,   275,   276,
1694 >     277,   407,     0,     0,     0,   404,   405,   406,     0,   245,
1695 >       0,     0,     0,   255,     0,   253,   254,   256,   257,   111,
1696 >       0,     0,   107,     0,    47,     0,     0,     0,    43,     0,
1697 >       0,     0,   179,     0,     0,     0,   154,     0,     0,   138,
1698 >     139,   140,   141,   144,   145,   143,   142,   146,     0,     0,
1699 >       0,     0,     0,   304,   305,   306,   307,     0,     0,     0,
1700 >       0,     0,     0,     0,     0,   612,    70,     0,     0,     0,
1701         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1702 <       0,     0,     0,    50,     0,     0,   310,     0,     0,   303,
1703 <     304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1704 <       0,     0,   295,     0,     0,     0,    91,     0,     0,     0,
1705 <       0,     0,    27,     0,     0,     0,     0,     0,     0,     0,
1706 <       0,     0,     0,     0,     0,     0,   611,   212,     0,     0,
1702 >       0,     0,     0,     0,     0,    51,     0,     0,   328,     0,
1703 >       0,   321,   322,   323,   324,     0,     0,   350,     0,   345,
1704 >     346,   347,     0,     0,   313,     0,     0,     0,    96,     0,
1705 >       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1706 >       0,     0,   583,   221,     0,     0,     0,     0,     0,     0,
1707         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1708 <       0,     0,   197,   363,     0,     0,     0,     0,     0,     0,
1709 <       0,     0,     0,     0,     0,     0,     0,     0,   348,     0,
1710 <       0,     0,   402,     0,   409,     0,     0,     0,     0,   422,
1708 >       0,   203,   381,     0,     0,     0,     0,     0,     0,     0,
1709 >       0,     0,     0,     0,     0,     0,     0,   366,     0,     0,
1710 >       0,   412,     0,   419,     0,     0,     0,   427,     0,     0,
1711         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1712         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1713         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1714         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1715 <       0,     0,     0,     0,     0,     0,    35,     0,     0,     0,
1716 <       0,     0,     0,     0,   430,     0,     0,     0,     0,     0,
1717 <       0,     0,   586,   262,     0,     0,     0,     0,     0,     0,
1718 <       0,     0,     0,   252,     0,     0,     0,     0,   392,   241,
1719 <       0,     0,     0,     0,     0,   235,     0,   101,     0,     0,
1720 <       0,    41,   142,     0,     0,     0,     0,     0,     0,     0,
1721 <       0,     0,   132,   290,     0,     0,     0,     0,   285,     0,
1722 <       0,     0,     0,     0,     0,     0,   651,     0,     0,     0,
1723 <       0,     0,     0,     0,     0,    72,    73,     0,    71,    76,
1724 <      77,     0,    75,     0,     0,     0,     0,     0,    49,   307,
1725 <       0,     0,     0,     0,   302,   330,     0,     0,     0,   326,
1726 <       0,   294,   100,    99,    98,   648,   645,   644,   633,   635,
1727 <      27,    27,    27,    27,    27,    29,    28,   639,   640,   643,
1728 <     641,   646,   647,   649,   650,   642,   634,   636,   637,   638,
1729 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730 <       0,     0,     0,   196,     0,     0,     0,     0,     0,     0,
1731 <       0,     0,     0,     0,     0,     0,     0,     0,   347,     0,
1732 <       0,   401,   414,     0,     0,     0,   416,   496,   500,   516,
1733 <     582,   530,   494,   524,   527,   495,   486,   487,   503,   492,
1734 <     493,   506,   491,   505,   504,   499,   498,   497,   525,   485,
1735 <     523,   580,   581,   520,   517,   567,   560,   577,   578,   561,
1736 <     562,   563,   564,   572,   565,   575,   579,   568,   573,   569,
1737 <     574,   566,   571,   570,   576,     0,   559,   522,   542,   536,
1738 <     553,   554,   537,   538,   539,   540,   548,   541,   551,   555,
1739 <     544,   549,   545,   550,   543,   547,   546,   552,     0,   535,
1740 <     515,   518,   529,   489,   490,   519,   508,   513,   514,   511,
1741 <     512,   509,   510,   502,   501,    35,    35,    35,    37,    36,
1742 <     583,   528,   531,   521,   526,   488,   507,     0,     0,     0,
1743 <       0,     0,     0,   585,     0,     0,     0,     0,     0,     0,
1744 <       0,     0,   251,     0,     0,     0,   386,     0,     0,     0,
1745 <     246,   242,   245,   227,   107,     0,     0,   119,     0,     0,
1746 <     111,   112,   114,   113,    47,    48,     0,     0,     0,     0,
1747 <       0,     0,     0,     0,   131,     0,     0,     0,   284,   667,
1748 <     662,   666,   664,   668,   663,   665,    84,    90,    82,    86,
1749 <      85,    79,    78,    80,    68,     0,    69,     0,    83,    81,
1750 <      89,    87,    88,     0,     0,     0,   301,     0,     0,   325,
1751 <     299,    30,    31,    32,    33,    34,   223,   224,   217,   219,
1752 <     221,   220,   218,   213,   225,   216,   214,   215,   222,   368,
1753 <     370,   371,   383,   380,   376,   377,   379,   378,     0,   375,
1754 <     365,   381,   382,   364,   369,   367,   384,   366,   407,   408,
1755 <     428,   429,   421,     0,   420,   557,     0,   533,     0,    38,
1756 <      39,    40,   610,   609,     0,   608,   596,   595,   602,   601,
1757 <       0,   600,   604,   603,   265,   266,   275,   272,   277,   274,
1758 <     273,   279,   276,   278,   271,     0,   270,   264,   282,   281,
1759 <     280,   263,   399,   391,     0,   390,   398,   233,   234,   232,
1760 <       0,   231,   249,   248,     0,     0,     0,   115,     0,     0,
1761 <       0,     0,   110,   148,   146,   188,   185,   184,   177,   179,
1762 <     194,   189,   192,   187,   178,   193,   181,   190,   182,   191,
1763 <     186,   180,   183,     0,   176,   143,   145,   147,   159,   153,
1764 <     170,   171,   154,   155,   156,   157,   165,   158,   168,   172,
1765 <     161,   166,   162,   167,   160,   164,   163,   169,     0,   152,
1766 <     144,   292,   293,   291,    70,    74,   308,   314,   320,   323,
1767 <     316,   322,   317,   321,   319,   315,   318,     0,   313,   309,
1768 <     331,   336,   342,   345,   338,   344,   339,   343,   341,   337,
1769 <     340,     0,   335,   373,     0,   418,     0,   558,   534,   606,
1770 <       0,   598,     0,   268,     0,   388,     0,   229,     0,   247,
1827 <     244,   243,     0,     0,     0,     0,   109,   174,     0,   150,
1828 <       0,   311,     0,   333,     0,   374,   419,   607,   599,   269,
1829 <     389,   230,   116,   125,   128,   127,   124,   129,   126,   123,
1830 <       0,   122,   118,   117,   175,   151,   312,   334,   120,     0,
1831 <     121
1715 >       0,     0,     0,     0,     0,     0,     0,     0,   434,   279,
1716 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   269,
1717 >       0,     0,     0,   403,   258,     0,     0,     0,     0,     0,
1718 >     252,     0,   106,     0,     0,     0,    42,   147,     0,     0,
1719 >       0,     0,     0,     0,     0,     0,     0,   137,   308,     0,
1720 >       0,     0,     0,   303,     0,     0,     0,     0,     0,     0,
1721 >       0,   611,     0,     0,     0,     0,     0,     0,     0,     0,
1722 >       0,     0,    75,    76,     0,    74,    79,    80,     0,    78,
1723 >       0,     0,     0,     0,     0,    50,   325,     0,     0,     0,
1724 >       0,   320,   348,     0,     0,     0,   344,     0,   312,   105,
1725 >     104,   103,   606,   605,   599,    26,    26,    26,    26,    26,
1726 >      26,    26,    28,    27,   600,   601,   604,   603,   602,   607,
1727 >     608,   609,   610,     0,     0,     0,     0,     0,     0,     0,
1728 >       0,     0,     0,     0,     0,     0,     0,    36,     0,     0,
1729 >     202,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1730 >       0,     0,     0,     0,     0,   365,     0,     0,   411,   424,
1731 >       0,     0,   426,   498,   502,   516,   582,   529,   496,   523,
1732 >     526,   497,   488,   487,   489,   490,   491,   505,   494,   495,
1733 >     506,   493,   501,   500,   499,   524,   486,   580,   581,   520,
1734 >     517,   566,   559,   576,   577,   560,   561,   562,   563,   571,
1735 >     564,   574,   578,   567,   579,   572,   568,   573,   565,   570,
1736 >     569,   575,     0,   558,   522,   541,   535,   552,   553,   536,
1737 >     537,   538,   539,   547,   540,   550,   554,   543,   548,   544,
1738 >     549,   542,   546,   545,   551,     0,   534,   515,   518,   528,
1739 >     492,   519,   508,   513,   514,   511,   512,   509,   510,   504,
1740 >     503,   527,   530,   521,   525,   507,     0,     0,     0,     0,
1741 >       0,     0,     0,     0,   268,     0,     0,   402,     0,     0,
1742 >       0,   263,   259,   262,   244,   112,     0,     0,   124,     0,
1743 >       0,   116,   117,   119,   118,    48,    49,     0,     0,     0,
1744 >       0,     0,     0,     0,     0,   136,     0,     0,     0,   302,
1745 >     622,   627,   625,   628,   623,   624,   626,    87,    95,    93,
1746 >      94,    85,    89,    88,    82,    81,    83,    71,     0,    72,
1747 >       0,    86,    84,    92,    90,    91,     0,     0,     0,   319,
1748 >       0,     0,   343,   317,    29,    30,    31,    32,    33,    34,
1749 >      35,   232,   233,   225,   241,   242,     0,   240,   227,   229,
1750 >     228,   226,   235,   236,   222,   234,   224,   223,    36,    36,
1751 >      36,    38,    37,   230,   231,   386,   388,   389,   399,   396,
1752 >     394,   395,     0,   393,   383,   397,   398,   382,   387,   385,
1753 >     400,   384,   417,   418,   432,   433,   556,     0,   532,     0,
1754 >     282,   283,   292,   289,   294,   291,   290,   297,   293,   295,
1755 >     288,   296,     0,   287,   281,   300,   299,   298,   280,   409,
1756 >     408,   250,   251,   249,     0,   248,   266,   265,     0,     0,
1757 >       0,   120,     0,     0,     0,     0,   115,   153,   151,   194,
1758 >     191,   190,   183,   185,   200,   197,   193,   184,   198,   187,
1759 >     195,   199,   188,   196,   192,   186,   189,     0,   182,   148,
1760 >     150,   152,   164,   158,   175,   176,   159,   160,   161,   162,
1761 >     170,   163,   173,   177,   166,   178,   171,   167,   172,   165,
1762 >     169,   168,   174,     0,   157,   149,   311,   309,   310,    73,
1763 >      77,   326,   332,   338,   341,   334,   340,   335,   339,   337,
1764 >     333,   336,     0,   331,   327,   349,   354,   360,   363,   356,
1765 >     362,   357,   361,   359,   355,   358,     0,   353,   238,     0,
1766 >      39,    40,    41,   391,     0,   557,   533,   285,     0,   246,
1767 >       0,   264,   261,   260,     0,     0,     0,     0,   114,   180,
1768 >       0,   155,     0,   329,     0,   351,     0,   239,   392,   286,
1769 >     247,   121,   130,   133,   132,   129,   134,   131,   128,     0,
1770 >     127,   123,   122,   181,   156,   330,   352,   125,     0,   126
1771   };
1772  
1773   /* YYDEFGOTO[NTERM-NUM].  */
1774   static const yytype_int16 yydefgoto[] =
1775   {
1776 <      -1,     1,    25,   835,   836,   978,   979,    26,   246,   247,
1777 <     248,   249,    27,   285,   286,   287,   288,   797,   798,   801,
1778 <     802,   289,   290,   291,   292,   293,   294,   295,   296,   297,
1779 <     298,   299,   300,   301,    28,    74,    75,    76,    77,    78,
1780 <      29,   238,   239,   240,   241,   242,  1019,  1020,  1021,  1022,
1781 <    1023,  1169,  1300,  1301,    30,    63,   538,   539,   540,   541,
1782 <     542,   543,   544,   545,   546,   769,  1218,  1219,   547,   765,
1783 <    1193,  1194,    31,    51,   349,   350,   351,   352,   353,   354,
1784 <     355,   356,   357,   358,   359,   360,   361,   362,   363,    32,
1785 <      60,   513,   750,  1160,  1161,   514,   515,   516,  1166,  1011,
1786 <    1012,   517,   518,    33,    58,   489,   490,   491,   492,   493,
1787 <     494,   495,   736,  1145,  1146,   496,   497,   498,    34,    64,
1788 <     552,   553,   554,   555,   556,    35,   306,   307,   308,    36,
1789 <      67,   588,   589,   590,   591,   592,   811,  1237,  1238,    37,
1790 <      68,   596,   597,   598,   599,   817,  1251,  1252,    38,    52,
1791 <     378,   379,   380,   381,   382,   383,   384,   385,   386,   387,
1792 <     648,  1098,  1099,   388,   389,   390,   391,   392,    39,    59,
1793 <     503,   745,  1154,  1155,   504,   505,   506,   507,    40,    53,
1794 <     396,   397,   398,   399,    41,   123,   124,   125,    42,    55,
1795 <     407,   667,  1113,  1114,   408,   409,   410,   411,    43,   179,
1796 <     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1797 <     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1798 <     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1799 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1800 <     220,   221,   222,   223,   224,   225,   226,   442,   958,   959,
1801 <     227,   440,   935,   936,   228,   229,   230,   231,    44,    57,
1802 <     472,   473,   474,   475,   476,   728,  1130,  1131,   477,   478,
1803 <     479,   725,  1124,  1125,    45,    98,    99,   100,   101,   102,
1865 <     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1866 <     113,   114,   115,   116,   117,    46,   260,   261,   262,   263,
1867 <     264,   265,   266,   267,   268
1776 >      -1,     1,    24,   782,   783,  1031,  1032,    25,   224,   225,
1777 >     226,   227,    26,   265,   266,   267,   268,   744,   745,   748,
1778 >     749,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1779 >     278,   279,   280,   281,   282,   283,    27,    71,    72,    73,
1780 >      74,    75,    28,   216,   217,   218,   219,   220,   950,   951,
1781 >     952,   953,   954,  1093,  1219,  1220,    29,    60,   498,   499,
1782 >     500,   501,   502,   503,   504,   505,   506,   714,  1143,  1144,
1783 >     507,   710,  1117,  1118,    30,    49,   328,   329,   330,   331,
1784 >     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
1785 >     342,   343,   344,   345,   587,  1016,  1017,    31,    57,   473,
1786 >     695,  1084,  1085,   474,   475,   476,  1090,   942,   943,   477,
1787 >     478,    32,    55,   451,   452,   453,   454,   455,   456,   457,
1788 >     682,  1072,  1073,   458,   459,   460,    33,    61,   512,   513,
1789 >     514,   515,   516,    34,   288,   289,   290,    35,    64,   550,
1790 >     551,   552,   553,   554,   758,  1162,  1163,    36,    65,   558,
1791 >     559,   560,   561,   764,  1176,  1177,    37,    50,   360,   361,
1792 >     362,   363,   364,   365,   366,   367,   368,   369,   607,  1042,
1793 >    1043,   370,   371,   372,   373,   374,    38,    56,   464,   465,
1794 >     466,   467,    39,    51,   378,   379,   380,   381,    40,   108,
1795 >     109,   110,    41,    53,   388,   389,   390,   391,    42,   161,
1796 >     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1797 >     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1798 >     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1799 >     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1800 >     202,   203,   204,   205,   206,   422,   905,   906,   207,   420,
1801 >     882,   883,   208,   209,   210,    43,    89,    90,    91,    92,
1802 >      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1803 >      44,   238,   239,   240,   241,   242,   243,   244,   245,   246
1804   };
1805  
1806   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1807     STATE-NUM.  */
1808 < #define YYPACT_NINF -560
1808 > #define YYPACT_NINF -910
1809   static const yytype_int16 yypact[] =
1810   {
1811 <    -560,   667,  -560,  -206,  -223,  -221,  -560,  -560,  -560,  -218,
1812 <    -560,  -191,  -560,  -560,  -560,  -560,  -189,  -183,  -560,  -560,
1813 <    -154,  -136,  -560,  -560,  -133,  -560,  -560,  -560,  -560,  -560,
1814 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1815 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    42,
1816 <     544,  -115,  -109,   -80,    32,   -72,   375,   -70,   -53,   -51,
1817 <     -33,    60,    87,   -20,   -18,   324,   334,    -5,    -3,    20,
1818 <     -89,    17,    35,    51,     9,  -560,  -560,  -560,  -560,  -560,
1819 <      61,    63,    73,    79,    96,   111,   117,   125,   131,   136,
1820 <     137,   152,   154,   156,   159,   162,   170,   175,   180,  -560,
1821 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1822 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   709,   461,
1823 <      98,  -560,   195,    10,  -560,  -560,   266,  -560,   198,   199,
1824 <     202,   203,   206,   213,   214,   216,   217,   219,   229,   230,
1825 <     231,   232,   242,   243,   246,   250,   253,   256,   257,   259,
1826 <     261,   263,   265,   268,   275,   276,  -560,   277,  -560,   281,
1827 <     282,   284,   287,   291,   293,   295,   296,   299,   300,   307,
1828 <     314,   315,   316,   318,   319,   321,   322,   323,   327,   110,
1829 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1830 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1831 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1832 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1833 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1834 <    -560,  -560,     2,   509,    16,   326,    57,   330,    36,  -560,
1835 <    -560,  -560,     7,    77,   331,   332,    28,  -560,  -560,  -560,
1836 <     279,   211,  -560,   335,   338,   339,   341,   342,   343,   344,
1837 <       3,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   200,
1838 <     345,   346,   348,   349,   352,   355,   356,   357,   358,   360,
1839 <     362,   363,   365,   366,   367,    74,  -560,  -560,  -560,  -560,
1840 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1841 <    -560,  -560,   197,     6,  -560,   368,    46,  -560,  -560,  -560,
1842 <     140,   173,   392,   329,  -560,   438,   328,   505,   441,   445,
1843 <     514,   514,   515,   516,   451,   452,   521,   514,   456,   457,
1844 <     459,   460,   462,   396,  -560,   398,   397,   401,   402,   403,
1845 <     404,   408,   409,   410,   411,   412,   413,   415,   416,     4,
1846 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1847 <    -560,  -560,  -560,  -560,   399,   417,   418,   419,   420,  -560,
1848 <     425,   426,   429,   430,   431,   433,   435,   436,   290,  -560,
1849 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1850 <    -560,  -560,  -560,  -560,   439,   440,    11,  -560,  -560,  -560,
1851 <     511,   446,  -560,  -560,   442,   449,  -560,  -560,    12,  -560,
1852 <    -560,  -560,   522,   514,   514,   590,   525,   526,   593,   573,
1853 <     532,   597,   599,   601,   546,   550,   551,   514,   598,   552,
1854 <     624,   627,   514,   628,   630,   610,   636,   637,   572,   575,
1855 <     508,   577,   510,   514,   514,   579,   514,   580,   583,   584,
1856 <    -105,   -99,   585,   586,   514,   514,   653,   633,   514,   589,
1857 <     592,   594,   595,   528,  -560,  -560,  -560,   533,   534,  -560,
1858 <     535,   536,    14,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1859 <     540,   539,   541,  -560,   543,   545,   547,   548,   549,    33,
1860 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1861 <     555,  -560,   556,  -560,    22,  -560,  -560,  -560,   553,  -560,
1862 <     558,   559,   560,  -560,     8,  -560,  -560,  -560,  -560,  -560,
1863 <     596,   554,  -560,   212,  -560,   645,   657,   564,  -560,   565,
1864 <     563,   566,  -560,   567,   568,   569,  -560,   570,    15,  -560,
1865 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   574,   576,
1866 <     581,   582,    27,  -560,  -560,  -560,  -560,   608,   614,   632,
1867 <     685,   641,   643,   514,   588,  -560,  -560,   692,   648,   699,
1868 <     702,   703,   704,   705,   708,   -63,   -49,   710,   711,   730,
1869 <     712,   713,   604,  -560,   611,   607,  -560,   612,    97,  -560,
1870 <    -560,  -560,  -560,   619,   617,  -560,    30,  -560,  -560,  -560,
1871 <     724,   622,  -560,   631,   634,   635,  -560,   654,   656,   660,
1872 <     664,   665,   272,   676,   677,   681,   684,   693,   695,   696,
1873 <     698,   701,   706,   707,   714,   715,  -560,  -560,   761,   764,
1874 <     514,   767,   768,   776,   779,   763,   823,   828,   514,   514,
1875 <     653,   716,  -560,  -560,   809,   -75,   812,   770,   700,   818,
1876 <     819,   820,   821,   843,   827,   829,   830,   718,  -560,   831,
1877 <     832,   723,  -560,   726,  -560,   834,   835,   728,   727,  -560,
1878 <     729,   732,   733,   734,   735,   736,   737,   739,   740,   741,
1879 <     742,   743,   744,   745,   746,   747,   748,   749,   750,   751,
1880 <     752,   753,   754,   755,   756,   757,   758,   759,   663,   760,
1881 <     697,   762,   765,   766,   769,   771,   772,   773,   774,   775,
1882 <     777,   778,   780,   782,   783,   784,    54,   785,   786,   787,
1883 <     788,   789,   790,   791,  -560,   792,   514,   793,   794,   871,
1884 <     873,   796,  -560,  -560,   874,   833,   795,   877,   844,   880,
1885 <     886,   889,   800,  -560,   902,   798,   903,   802,  -560,  -560,
1886 <     801,   904,   913,   936,   806,  -560,   807,  -560,   194,   808,
1887 <     810,  -560,  -560,   919,   876,   811,   922,   923,   925,   813,
1888 <     927,   822,  -560,  -560,   928,   929,   930,   824,  -560,   825,
1889 <     826,   836,   837,   838,   839,   840,  -560,   841,   842,   845,
1890 <     846,   847,   848,   849,   850,  -560,  -560,  -199,  -560,  -560,
1891 <    -560,  -196,  -560,   851,   852,   853,   854,   855,  -560,  -560,
1892 <     931,   856,   933,   857,  -560,  -560,   937,   858,   860,  -560,
1893 <     862,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1894 <     514,   514,   514,   514,   514,  -560,  -560,  -560,  -560,  -560,
1895 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1896 <     863,   864,   865,   866,   867,   868,   869,   872,   875,   878,
1897 <     879,   881,   882,  -560,   883,   884,   885,   887,   888,   141,
1898 <     890,   891,   892,   893,   894,   895,   896,   897,  -560,   898,
1899 <     899,  -560,  -560,   900,   901,   934,  -560,  -560,  -560,  -560,
1900 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1901 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1902 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1903 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1904 <    -560,  -560,  -560,  -560,  -560,  -182,  -560,  -560,  -560,  -560,
1905 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1906 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   -30,  -560,
1907 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1908 <    -560,  -560,  -560,  -560,  -560,   653,   653,   653,  -560,  -560,
1909 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,    13,   905,   906,
1910 <      21,   907,   908,  -560,   909,   910,   870,   911,   912,   914,
1911 <     915,   916,  -560,   917,   935,   918,  -560,   -47,   920,   921,
1912 <     940,   924,  -560,  -560,  -560,   926,   932,  -560,   938,    89,
1913 <    -560,  -560,  -560,  -560,  -560,  -560,   939,   942,   479,   943,
1914 <     944,   945,   725,   946,  -560,   947,   948,   949,  -560,  -560,
1915 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1916 <    -560,  -560,  -560,  -560,  -560,   -63,  -560,   -49,  -560,  -560,
1917 <    -560,  -560,  -560,   950,   507,   951,  -560,   952,   531,  -560,
1918 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1919 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1920 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    -6,  -560,
1921 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1922 <    -560,  -560,  -560,    65,  -560,  -560,   663,  -560,   697,  -560,
1923 <    -560,  -560,  -560,  -560,   100,  -560,  -560,  -560,  -560,  -560,
1924 <     101,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1925 <    -560,  -560,  -560,  -560,  -560,   106,  -560,  -560,  -560,  -560,
1926 <    -560,  -560,  -560,  -560,   109,  -560,  -560,  -560,  -560,  -560,
1927 <     112,  -560,  -560,  -560,   959,   936,   953,  -560,   941,   954,
1928 <     -91,   955,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1929 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1930 <    -560,  -560,  -560,   123,  -560,  -560,  -560,  -560,  -560,  -560,
1931 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1932 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   126,  -560,
1933 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1998 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   133,  -560,  -560,
1999 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2000 <    -560,   148,  -560,  -560,   141,  -560,   934,  -560,  -560,  -560,
2001 <      13,  -560,    21,  -560,   870,  -560,   935,  -560,   -47,  -560,
2002 <    -560,  -560,   956,   262,   958,   960,  -560,  -560,   479,  -560,
2003 <     725,  -560,   507,  -560,   531,  -560,  -560,  -560,  -560,  -560,
2004 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2005 <     150,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,   262,
2006 <    -560
1811 >    -910,   603,  -910,  -199,  -218,  -216,  -910,  -910,  -910,  -192,
1812 >    -910,  -189,  -910,  -910,  -910,  -151,  -149,  -910,  -910,  -137,
1813 >    -130,  -910,  -910,  -125,  -910,  -910,  -910,  -910,  -910,  -910,
1814 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1815 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   366,   848,  -113,
1816 >     -68,   -54,    11,   -41,   331,   -33,   -22,    -9,    61,    57,
1817 >      -7,    -1,   679,   370,     1,    21,     8,   -99,    -5,    22,
1818 >      47,    18,  -910,  -910,  -910,  -910,  -910,    63,    79,    80,
1819 >      83,    90,    91,    92,    93,    94,    95,    97,    98,   191,
1820 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1821 >    -910,  -910,  -910,   629,   506,    29,  -910,    99,    35,  -910,
1822 >    -910,   107,  -910,   104,   105,   109,   112,   118,   128,   129,
1823 >     131,   134,   138,   139,   144,   146,   150,   154,   155,   156,
1824 >     158,   159,   161,   162,   164,   169,   172,   174,   176,   177,
1825 >     178,  -910,   180,  -910,   182,   183,   184,   185,   187,   193,
1826 >     197,   198,   201,   202,   203,   207,   208,   209,   213,   215,
1827 >     219,   117,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1828 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1829 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1830 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1831 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1832 >    -910,   444,    51,   288,    64,   222,    27,  -910,  -910,  -910,
1833 >     120,   194,   225,   231,    60,  -910,  -910,  -910,   498,   330,
1834 >    -910,   233,   235,   239,   240,   241,   243,   247,    14,  -910,
1835 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   217,   248,   249,
1836 >     250,   251,   253,   254,   255,   257,   258,   260,   261,   262,
1837 >     264,   271,   277,   282,   284,   214,  -910,  -910,  -910,  -910,
1838 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1839 >    -910,  -910,  -910,  -910,    17,    13,  -910,   289,    43,  -910,
1840 >    -910,  -910,   218,   347,   389,   293,  -910,   147,   411,   353,
1841 >     413,   413,   414,   415,   417,   360,   363,   423,   413,   308,
1842 >    -910,   312,   311,   313,   319,  -910,   322,   323,   324,   328,
1843 >     329,   332,   334,   335,   336,   340,   344,   349,    10,  -910,
1844 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1845 >    -910,  -910,  -910,  -910,  -910,  -910,   315,   350,   352,   354,
1846 >     356,  -910,   357,   358,   359,   364,   367,   368,   369,   371,
1847 >      75,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1848 >    -910,  -910,  -910,  -910,  -910,  -910,   372,   374,    40,  -910,
1849 >    -910,  -910,   431,   379,  -910,  -910,   382,   384,    69,  -910,
1850 >    -910,  -910,   407,   413,   413,   472,   445,   446,   513,   488,
1851 >     455,   413,   459,   413,   519,   520,   522,   467,   468,   469,
1852 >     413,   529,   530,   413,   531,   533,   534,   535,   479,   482,
1853 >     426,   483,   428,   413,   413,   489,   491,   494,   495,  -117,
1854 >    -101,   496,   497,   413,   413,   539,   413,   500,   503,   504,
1855 >     448,  -910,   449,   447,   453,  -910,   458,   461,   463,   465,
1856 >     466,    23,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1857 >    -910,  -910,   470,   473,    86,  -910,  -910,  -910,   451,  -910,
1858 >     475,   476,   477,  -910,    20,  -910,  -910,  -910,  -910,  -910,
1859 >     515,   462,  -910,   480,  -910,   569,   570,   484,  -910,   493,
1860 >     502,   505,  -910,   514,   516,   521,  -910,   524,   238,  -910,
1861 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   501,   527,
1862 >     542,   543,    26,  -910,  -910,  -910,  -910,   540,   548,   583,
1863 >     553,   554,   563,   413,   507,  -910,  -910,   614,   575,   637,
1864 >     638,   621,   623,   631,   632,   650,   657,    48,    59,   658,
1865 >     660,   653,   666,   668,   566,  -910,   573,   571,  -910,   574,
1866 >      31,  -910,  -910,  -910,  -910,   576,   577,  -910,    34,  -910,
1867 >    -910,  -910,   676,   579,  -910,   582,   592,   596,  -910,   605,
1868 >     607,   610,   619,   611,   625,   626,   634,   636,   640,   642,
1869 >     643,   644,  -910,  -910,   699,   719,   413,   618,   748,   762,
1870 >     766,   767,   413,   413,   750,   769,   771,   413,   772,   772,
1871 >     659,  -910,  -910,   755,   119,   756,   718,   670,   773,   774,
1872 >     775,   777,   787,   778,   779,   780,   674,  -910,   781,   782,
1873 >     685,  -910,   686,  -910,   785,   786,   689,  -910,   690,   691,
1874 >     692,   693,   696,   697,   698,   700,   701,   705,   706,   707,
1875 >     708,   709,   710,   711,   712,   713,   714,   715,   716,   717,
1876 >     720,   721,   722,   723,   724,   725,   598,   726,   664,   727,
1877 >     730,   731,   732,   733,   734,   735,   736,   737,   738,   739,
1878 >     740,   743,   744,   745,   746,   747,   749,   751,  -910,  -910,
1879 >     797,   776,   752,   816,   864,   850,   851,   852,   757,  -910,
1880 >     854,   856,   759,  -910,  -910,   758,   858,   860,   866,   763,
1881 >    -910,   764,  -910,   165,   765,   768,  -910,  -910,   865,   823,
1882 >     770,   867,   868,   869,   783,   870,   784,  -910,  -910,   872,
1883 >     873,   874,   788,  -910,   789,   790,   791,   792,   793,   794,
1884 >     795,  -910,   796,   798,   799,   800,   801,   802,   803,   804,
1885 >     805,   806,  -910,  -910,  -217,  -910,  -910,  -910,  -208,  -910,
1886 >     807,   808,   809,   810,   811,  -910,  -910,   875,   812,   876,
1887 >     813,  -910,  -910,   877,   814,   818,  -910,   819,  -910,  -910,
1888 >    -910,  -910,  -910,  -910,  -910,   413,   413,   413,   413,   413,
1889 >     413,   413,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1890 >    -910,  -910,  -910,   820,   821,   822,   116,   824,   825,   826,
1891 >     827,   828,   829,   830,   831,   832,   833,    28,   834,   835,
1892 >    -910,   836,   837,   838,   839,   840,    -2,   841,   842,   843,
1893 >     844,   845,   846,   847,   849,  -910,   853,   855,  -910,  -910,
1894 >     857,   859,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1895 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1896 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1897 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1898 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1899 >    -910,  -910,  -205,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1900 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1901 >    -910,  -910,  -910,  -910,  -910,  -171,  -910,  -910,  -910,  -910,
1902 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1903 >    -910,  -910,  -910,  -910,  -910,  -910,   861,   862,   518,   863,
1904 >     871,   878,   879,   880,  -910,   881,   882,  -910,    -8,   883,
1905 >     884,   901,   885,  -910,  -910,  -910,   886,   887,  -910,   888,
1906 >      32,  -910,  -910,  -910,  -910,  -910,  -910,   892,   893,   485,
1907 >     894,   895,   896,   635,   897,  -910,   898,   899,   900,  -910,
1908 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1909 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,    48,  -910,
1910 >      59,  -910,  -910,  -910,  -910,  -910,   902,   388,   903,  -910,
1911 >     904,   682,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1912 >    -910,  -910,  -910,  -910,  -910,  -910,  -168,  -910,  -910,  -910,
1913 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   772,   772,
1914 >     772,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1915 >    -910,  -910,  -150,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1916 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   598,  -910,   664,
1917 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1918 >    -910,  -910,  -142,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1919 >    -910,  -910,  -910,  -910,  -140,  -910,  -910,  -910,   913,   866,
1920 >     905,  -910,   910,   906,   -60,   907,  -910,  -910,  -910,  -910,
1921 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1922 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,   -65,  -910,  -910,
1923 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1924 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1925 >    -910,  -910,  -910,   -51,  -910,  -910,  -910,  -910,  -910,  -910,
1926 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1927 >    -910,  -910,   -14,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1928 >    -910,  -910,  -910,  -910,  -910,  -910,    -4,  -910,  -910,   116,
1929 >    -910,  -910,  -910,  -910,    -2,  -910,  -910,  -910,   518,  -910,
1930 >      -8,  -910,  -910,  -910,   908,   246,   911,   912,  -910,  -910,
1931 >     485,  -910,   635,  -910,   388,  -910,   682,  -910,  -910,  -910,
1932 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,    39,
1933 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   246,  -910
1934   };
1935  
1936   /* YYPGOTO[NTERM-NUM].  */
1937   static const yytype_int16 yypgoto[] =
1938   {
1939 <    -560,  -560,  -560,  -316,  -319,  -559,  -456,  -560,  -560,   957,
1940 <    -560,  -560,  -560,  -560,   799,  -560,  -560,  -560,    18,  -560,
1941 <      19,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1942 <    -560,  -560,  -560,  -560,  -560,  -560,  1000,  -560,  -560,  -560,
1943 <    -560,  -560,   859,  -560,  -560,  -560,  -560,    56,  -560,  -560,
1944 <    -560,  -560,  -560,  -224,  -560,  -560,  -560,   561,  -560,  -560,
1945 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -169,  -560,  -560,
1946 <    -560,  -166,  -560,  -560,  -560,   781,  -560,  -560,  -560,  -560,
1947 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1948 <    -560,  -560,  -560,  -560,  -153,  -560,   600,  -560,  -560,  -560,
1949 <     -48,  -560,  -560,  -560,  -560,  -560,   629,  -560,  -560,  -560,
1950 <    -560,  -560,  -560,  -560,  -137,  -560,  -560,  -560,  -560,  -560,
1951 <    -560,   591,  -560,  -560,  -560,  -560,  -560,   961,  -560,  -560,
1952 <    -560,  -560,   557,  -560,  -560,  -560,  -560,  -560,  -138,  -560,
1953 <    -560,  -560,   578,  -560,  -560,  -560,  -560,  -130,  -560,  -560,
1954 <    -560,   797,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1955 <    -560,  -560,   -94,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1956 <    -560,  -560,  -560,  -103,  -560,   661,  -560,  -560,  -560,  -560,
1957 <    -560,   804,  -560,  -560,  -560,  -560,  1041,  -560,  -560,  -560,
1958 <    -560,  -560,  -560,   -90,  -560,   803,  -560,  -560,  -560,  -560,
1959 <     989,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1960 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1961 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1962 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
1963 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,    52,
1964 <    -560,  -560,  -560,    55,  -560,  -560,  -560,  -560,  -560,  -560,
1965 <    -560,   738,  -560,  -560,  -560,  -560,  -560,   -85,  -560,  -560,
1966 <    -560,  -560,  -560,   -88,  -560,  -560,  1075,  -560,  -560,  -560,
2040 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,  -560,
2041 <    -560,  -560,  -560,  -560,  -560,  -560,  -560,   962,  -560,  -560,
2042 <    -560,  -560,  -560,  -560,  -560
1939 >    -910,  -910,  -910,   110,  -298,  -909,  -598,  -910,  -910,   914,
1940 >    -910,  -910,  -910,  -910,   741,  -910,  -910,  -910,    15,  -910,
1941 >      12,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1942 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   930,  -910,
1943 >    -910,  -910,  -910,  -910,   890,  -910,  -910,  -910,  -910,    54,
1944 >    -910,  -910,  -910,  -910,  -910,  -220,  -910,  -910,  -910,   537,
1945 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -165,
1946 >    -910,  -910,  -910,  -156,  -910,  -910,  -910,   753,  -910,  -910,
1947 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1948 >    -910,  -910,  -910,  -910,  -910,  -910,  -108,  -910,  -910,  -910,
1949 >    -910,  -910,  -118,  -910,   599,  -910,  -910,  -910,   -12,  -910,
1950 >    -910,  -910,  -910,  -910,   624,  -910,  -910,  -910,  -910,  -910,
1951 >    -910,  -910,  -109,  -910,  -910,  -910,  -910,  -910,  -910,   578,
1952 >    -910,  -910,  -910,  -910,  -910,   889,  -910,  -910,  -910,  -910,
1953 >     536,  -910,  -910,  -910,  -910,  -910,  -119,  -910,  -910,  -910,
1954 >     538,  -910,  -910,  -910,  -910,  -115,  -910,  -910,  -910,   728,
1955 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1956 >     -97,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,   630,
1957 >    -910,  -910,  -910,  -910,  -910,   761,  -910,  -910,  -910,  -910,
1958 >     981,  -910,  -910,  -910,  -910,   754,  -910,  -910,  -910,  -910,
1959 >     932,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1960 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1961 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1962 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1963 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,    36,  -910,  -910,
1964 >    -910,    41,  -910,  -910,  -910,  -910,  -910,  1008,  -910,  -910,
1965 >    -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,  -910,
1966 >    -910,  -910,   909,  -910,  -910,  -910,  -910,  -910,  -910,  -910
1967   };
1968  
1969   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1970     positive, shift that token.  If negative, reduce the rule which
1971     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1972 < #define YYTABLE_NINF -109
1972 > #define YYTABLE_NINF -114
1973   static const yytype_int16 yytable[] =
1974   {
1975 <     717,   613,   614,   465,   252,   335,   466,   593,   620,   508,
1976 <      70,   121,   393,   403,  1157,   465,   529,   499,   466,   716,
1977 <      49,   304,    50,   499,  1122,    54,   336,   337,   548,   243,
1978 <     338,   593,  1128,   121,   480,    47,    48,   236,   253,   530,
1979 <      71,   467,  1054,    70,   468,  1056,  1055,   304,   549,  1057,
1980 <      72,   254,    56,   467,    61,   509,   468,   481,   531,  1115,
1981 <      62,   236,   532,  1116,   255,   256,   257,   258,   975,   976,
1982 <     977,   708,   709,    71,   510,   269,   482,   710,   711,   511,
1983 <     483,   122,   394,    72,   259,   469,   795,   796,   243,    65,
1984 <    1015,   339,   340,   341,   671,   672,   342,   469,   584,   393,
1985 <     799,   800,   470,   122,   343,   270,   594,    66,   685,    73,
1986 <      69,   127,   404,   690,   470,   533,   344,   345,   128,   129,
1987 <     305,  1274,   865,   866,   701,   702,   244,   704,   118,   130,
1988 <     594,   550,   346,   347,   119,   714,   715,   131,   512,   719,
1989 <     534,   271,    73,   132,   395,   405,   305,   133,   134,   500,
1990 <     135,  1094,   309,  1095,   245,   500,   136,  1158,   484,   535,
1991 <     551,  1159,   348,   120,   716,   137,   138,   485,   486,   394,
1992 <     139,   126,   595,   232,   272,   140,   273,   274,   406,   141,
1993 <     142,    79,   501,   143,   862,   244,   144,   145,   501,  1016,
1994 <     233,  1123,   234,    80,   146,  1015,   595,   585,   584,  1129,
1995 <     147,   148,   487,   149,   150,   151,   152,   153,    81,    82,
1996 <     235,  1117,   548,   245,    83,  1118,    84,   275,   154,   276,
1997 <     277,   278,   279,   250,   536,   251,   155,   156,   157,   471,
1998 <     158,   395,   549,   159,   160,  1253,   280,   161,   302,  1254,
1999 <     303,   471,   537,   502,   785,   564,   641,   523,   162,   502,
2000 <     754,   313,   401,   661,   668,  1017,   731,   771,    85,    86,
2001 <     488,   310,   281,   586,   747,    87,    88,   403,   237,   777,
2002 <     527,   603,   818,   163,   282,   742,  -108,   164,   521,   311,
2003 <     529,   165,   166,   167,   168,   169,    89,    90,   601,   170,
2004 <     171,   364,   237,   365,  1016,   312,   366,   585,   519,   172,
2005 <    -108,    91,    92,   530,   604,   315,  1255,   316,   283,   284,
2006 <    1256,   852,    93,  1293,   367,   550,   582,   317,   524,   860,
2007 <     861,    94,   531,   318,   587,   252,   532,   508,  1018,   173,
2008 <     174,  1171,   175,   368,  1294,   269,  1295,   369,   176,   813,
2009 <     319,  1259,  1261,   177,   551,  1260,  1262,  1263,   178,  1096,
2010 <    1265,  1264,   463,  1267,  1266,   320,   370,  1268,   371,   253,
2011 <    1017,   321,  1097,   586,  1277,   270,   404,  1279,  1278,   322,
2012 <     372,  1280,   254,   509,  1281,   323,   127,  1296,  1282,   533,
2013 <     324,   325,   612,   128,   129,   255,   256,   257,   258,  1283,
2014 <     373,  1308,   510,  1284,   130,  1309,   326,   511,   327,   405,
2015 <     328,   271,   131,   329,   534,   259,   330,   988,   132,    95,
2016 <      96,    97,   133,   134,   331,   135,  1119,  1120,  1121,   332,
2017 <     374,   136,   333,   535,   587,   830,   831,   832,   833,   834,
2018 <     137,   138,   406,  1018,   272,   139,   273,   274,   608,   400,
2019 <     140,   566,   412,   413,   141,   142,   414,   415,   143,   375,
2020 <     416,   144,   145,  1297,  1298,   758,   512,   417,   418,   146,
2021 <     419,   420,   364,   421,   365,   147,   148,   366,   149,   150,
2022 <     151,   152,   153,   422,   423,   424,   425,   275,   376,   276,
2023 <     277,   278,   279,   154,  1175,   367,   426,   427,   536,  1299,
2024 <     428,   155,   156,   157,   429,   158,   280,   430,   159,   160,
2025 <     431,   432,   161,   433,   368,   434,   537,   435,   369,   436,
2026 <     480,  1176,   437,   162,  1071,  1072,  1073,  1074,  1075,   438,
2027 <     439,   441,   281,   605,   377,   443,   444,   370,   445,   371,
2028 <    1177,   446,   657,   481,   282,   447,  1178,   448,   163,   449,
2029 <     450,   372,   164,   451,   452,    79,   165,   166,   167,   168,
2030 <     169,   453,   482,  1179,   170,   171,   483,    80,   454,   455,
2031 <     456,   373,   457,   458,   172,   459,   460,   461,   283,   284,
2032 <     606,   462,    81,    82,   520,   525,   526,  1180,    83,   557,
2033 <      84,  1227,   558,   559,  1181,   560,   561,   562,   563,   567,
2034 <     568,   374,   569,   570,   173,   174,   571,   175,  1182,   572,
2035 <     573,   574,   575,   176,   576,  1241,   577,   578,   177,   579,
2036 <     580,   581,   600,   178,   607,   609,  1183,   610,  1184,  1185,
2037 <     375,   611,    85,    86,   612,   615,   616,   617,   618,    87,
2038 <      88,   619,   621,   622,   484,   623,   624,   626,   625,   627,
2039 <     643,   628,   663,   485,   486,   629,   630,   631,   632,   376,
2040 <      89,    90,   633,   634,   635,   636,   637,   638,  1228,   639,
2041 <     640,   644,   645,   646,   647,    91,    92,     2,     3,   649,
2042 <     650,  1186,     4,   651,   652,   653,    93,   654,   487,   655,
2043 <     656,  1187,  1242,   659,   660,    94,   665,   664,     5,  1229,
2044 <    1188,     6,     7,   666,  1189,   377,  1190,     8,   670,  1230,
2045 <     673,   674,   675,   676,   677,  1191,  1231,   679,   678,   680,
2046 <     335,   681,     9,  1243,  1275,  1192,    10,    11,  1232,    12,
2047 <    1233,  1234,   682,  1244,   915,    13,   683,   684,   687,   686,
2048 <    1245,   336,   337,  1235,   688,   338,   488,   689,   691,    14,
2049 <     692,   693,  1246,  1236,  1247,  1248,   694,   695,   696,    15,
2050 <      16,   697,   698,   699,   700,   703,   705,  1249,   938,   706,
2051 <     707,   712,   713,   716,   718,   720,    17,  1250,   721,   724,
2052 <     722,   723,   756,    95,    96,    97,   759,   726,   727,   729,
2053 <     730,   733,    18,   734,   779,   735,  1198,   737,   760,   738,
2054 <     780,   739,   740,   741,   749,   757,   339,   340,   341,   744,
2055 <     746,   342,   751,   752,   753,   761,   762,   763,   781,   343,
2056 <     764,   766,   767,   768,   770,   773,   782,   783,    19,   784,
2057 <     774,   344,   345,   787,   788,   775,   776,    20,    21,   786,
2058 <     789,    22,    23,   790,   791,   792,   793,   346,   347,   794,
2059 <     805,   803,   804,   806,   807,   808,   916,   917,   918,   919,
2060 <     920,   810,   809,   921,   922,   820,   812,   923,   924,   925,
2061 <     815,   816,   926,   821,   927,   928,   929,   348,   930,   931,
2062 <     932,   850,   822,   933,   851,   823,   824,   853,   854,   934,
2063 <     939,   940,   941,   942,   943,    24,   855,   944,   945,   856,
2064 <    1136,   946,   947,   948,   857,   825,   949,   826,   950,   951,
2065 <     952,   827,   953,   954,   955,   828,   829,   956,  1199,  1200,
2066 <    1201,  1202,  1203,   957,  1137,  1204,  1205,   837,   838,  1206,
2067 <    1207,  1208,   839,  1138,  1209,   840,  1210,  1211,  1212,  1139,
2068 <    1213,  1214,  1215,   858,   841,  1216,   842,   843,   859,   844,
2069 <     864,  1217,   845,   867,   869,  1140,   868,   846,   847,   870,
2070 <     871,   872,   873,   874,   998,   848,   849,   863,   875,   878,
2071 <     876,   877,   879,   880,   881,   883,   884,   882,   886,   989,
2072 <     887,  1141,   885,   888,   889,   890,   891,   892,   893,  1142,
2073 <     894,   895,   896,   897,   898,   899,   900,   901,   902,   903,
2074 <     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
2075 <     914,   937,   991,   960,   992,   994,   961,   962,   997,   995,
2076 <     963,   999,   964,   965,   966,   967,   968,  1000,   969,   970,
2077 <    1001,   971,  1143,   972,   973,   974,   980,   981,   982,   983,
2078 <     984,   985,   986,  1003,  1005,  1008,   987,   993,   990,   996,
2079 <    1144,  1002,  1004,  1006,  1009,  1007,  1010,  1013,  1014,  1024,
2080 <    1026,  1025,  1027,  1029,  1030,  1028,  1031,  1032,  1033,  1035,
2081 <    1036,  1037,  1063,  1034,  1065,  1038,  1039,  1040,  1067,  1269,
2082 <    1112,  1153,  1272,  1224,   314,  1172,  1225,  1041,  1042,  1043,
2083 <    1044,  1045,  1046,  1047,   583,  1310,  1048,  1049,  1050,  1051,
2084 <    1052,  1053,  1058,  1059,  1060,  1061,  1062,   522,  1066,   772,
2085 <    1064,  1069,  1068,  1070,  1076,  1077,  1078,  1079,  1080,  1081,
2086 <    1082,  1305,  1304,  1083,   755,  1291,  1084,  1270,   743,  1085,
2087 <    1086,  1164,  1087,  1088,  1089,  1090,  1091,  1289,  1092,  1093,
2088 <     642,  1100,  1101,  1102,  1103,  1104,  1105,  1106,  1107,  1108,
2089 <    1109,  1110,  1111,   778,  1306,   814,  1126,  1127,  1132,  1133,
2166 <    1134,  1135,  1147,  1148,  1307,  1149,  1150,  1151,  1152,  1156,
2167 <    1285,  1162,  1163,  1290,   402,   748,  1286,  1167,   464,  1165,
2168 <    1258,  1257,  1287,   334,   819,   658,  1168,  1288,     0,     0,
2169 <    1173,     0,  1170,  1174,  1195,  1196,  1197,  1220,  1221,  1222,
2170 <    1223,  1226,  1239,  1240,  1271,     0,  1276,  1292,  1273,  1302,
2171 <     662,  1303,     0,   528,     0,     0,     0,     0,     0,     0,
2172 <     732,   669,     0,     0,     0,     0,     0,     0,     0,     0,
2173 <       0,     0,   565,     0,     0,     0,     0,     0,     0,     0,
2174 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1975 >     808,   809,   573,   574,   987,    47,  1040,    48,   988,   286,
1976 >     581,   311,   106,   989,   555,   230,  1056,   990,   546,    67,
1977 >    1057,   468,    45,    46,   442,   312,   313,   508,   214,   314,
1978 >     375,    52,   546,   946,    54,   555,   106,  1028,  1029,  1030,
1979 >     443,   375,    68,  1081,   286,   807,   315,   665,   666,    69,
1980 >    1058,   231,   461,  1178,  1059,   444,   469,  1179,   221,   445,
1981 >     509,   221,   214,   667,   668,   232,   233,   234,   235,   236,
1982 >     385,  1183,    58,   107,    59,  1184,   346,   470,   347,  1187,
1983 >     348,  1189,   471,  1188,   237,  1190,    62,   461,   316,   317,
1984 >     318,   376,   349,    63,   319,   629,   630,   107,    66,   510,
1985 >     320,   321,   376,   637,   287,   639,   322,   350,   385,   556,
1986 >     103,   351,   646,   547,    70,   649,   323,   324,   112,  1180,
1987 >    1181,  1182,   291,   113,   114,   659,   660,   547,   947,   115,
1988 >     556,   325,   352,   807,   353,   671,   672,   116,   674,   287,
1989 >    1196,   446,   472,   117,   354,   118,   119,   120,   447,   448,
1990 >     511,   222,   121,   377,   222,   104,  1199,   326,   122,   123,
1991 >    1200,   124,   125,   126,   377,   386,   946,   127,   557,   105,
1992 >    1201,   355,   548,   128,  1202,   462,   223,   129,   130,   223,
1993 >     449,   131,   111,  1082,   742,   743,   548,   948,  1083,   557,
1994 >     211,   132,    76,   387,  1041,   746,   747,   356,   133,   327,
1995 >     134,   212,   135,   386,   136,   137,   138,  1203,  1014,  1015,
1996 >     462,  1204,    77,    78,   213,   247,   228,  1205,    79,   292,
1997 >     139,  1206,   229,   357,   284,   730,   140,   141,   142,   549,
1998 >     143,   387,   600,   144,   145,   450,   524,   146,   248,   489,
1999 >     295,   215,   699,   549,   285,   688,   293,  -113,   722,   481,
2000 >     358,   949,   569,   760,  1095,   490,   765,   383,    80,    81,
2001 >    1227,   947,   620,   463,  1228,   563,    82,    83,    84,   147,
2002 >     491,   294,   249,   148,   492,   215,   149,   150,   151,   152,
2003 >     153,  -113,   487,   154,   155,   479,  1212,   297,   795,   468,
2004 >     359,   626,    85,    86,   801,   802,   250,   616,   463,   806,
2005 >     251,   812,   813,   298,   299,    87,    88,   300,   692,  1213,
2006 >     252,  1214,   253,   254,   301,   302,   303,   304,   305,   306,
2007 >     948,   307,   308,   382,   469,   156,   157,   158,   392,   393,
2008 >     159,   508,   112,   394,   493,   160,   395,   113,   114,   440,
2009 >     483,   565,   396,   115,   255,   470,   256,   257,   258,   259,
2010 >     471,   116,   397,   398,  1215,   399,   494,   117,   400,   118,
2011 >     119,   120,   401,   402,   509,   260,   121,    67,   403,   495,
2012 >     404,   247,   122,   123,   405,   124,   125,   126,   406,   407,
2013 >     408,   127,   409,   410,   949,   411,   412,   128,   413,   261,
2014 >      68,   129,   130,   414,   248,   131,   415,    69,   416,   262,
2015 >     417,   418,   419,   510,   421,   132,   423,   424,   425,   426,
2016 >     472,   427,   133,   309,   134,   484,   135,   428,   136,   137,
2017 >     138,   429,   430,  1216,  1217,   431,   432,   433,   249,   263,
2018 >     264,   434,   435,   436,   139,   496,   544,   437,   526,   438,
2019 >     140,   141,   142,   439,   143,   442,   480,   144,   145,   485,
2020 >     497,   146,   250,  1152,   511,   486,   251,   517,  1218,   518,
2021 >     716,   443,    70,   519,   520,   521,   252,   522,   253,   254,
2022 >     566,   523,   527,   528,   529,   530,   444,   531,   532,   533,
2023 >     445,   534,   535,   147,   536,   537,   538,   148,   539,  1099,
2024 >     149,   150,   151,   152,   153,   540,  1197,   154,   155,   489,
2025 >     255,   541,   256,   257,   258,   259,   542,   346,   543,   347,
2026 >    1100,   348,   567,   562,   568,   490,   570,   571,   572,   575,
2027 >     576,   260,   577,   349,   578,  1101,  1153,   579,   580,   582,
2028 >     491,  1062,  1102,   583,   492,   584,   602,   585,   350,   156,
2029 >     157,   158,   351,   586,   159,   261,   588,   589,   590,   160,
2030 >    1103,  1063,   591,   592,   622,   262,   593,  1154,   594,   595,
2031 >     596,  1064,   446,   352,   597,   353,  1155,  1065,   598,   447,
2032 >     448,   628,  1156,   599,   603,   354,   604,   631,   605,  1104,
2033 >     606,   608,   609,   610,  1066,   263,   264,  1157,   611,  1158,
2034 >    1159,   612,   613,   614,   493,   615,   618,  1105,   619,  1160,
2035 >     623,   449,   355,     2,     3,  1161,   624,     4,   625,   632,
2036 >     633,   635,  1106,  1107,  1108,  1067,   494,     5,   634,   636,
2037 >       6,     7,  1068,   638,   640,   641,     8,   642,   356,   495,
2038 >     311,   643,   644,   645,   647,   648,   650,     9,   651,   652,
2039 >     653,    10,    11,   654,   312,   313,   655,   657,   314,   861,
2040 >     656,    12,   658,   661,   357,   662,   450,  1069,   663,   664,
2041 >     669,   670,   673,  1109,   675,   315,    13,   676,   677,   678,
2042 >     679,   680,   694,  1110,    14,    15,  1070,   681,  1111,   701,
2043 >     230,   358,   683,   702,  1112,   684,  1122,   685,  1113,   686,
2044 >     687,  1114,   704,   705,   690,   496,  1115,   691,    16,   696,
2045 >     697,   698,  1116,   703,   724,   706,   726,   316,   317,   318,
2046 >     497,    17,   725,   319,   707,   885,   231,   727,   728,   320,
2047 >     321,   359,   718,  1071,   572,   322,   708,   729,   731,   709,
2048 >     232,   233,   234,   235,   236,   323,   324,   732,   711,   733,
2049 >     712,    18,   734,   735,   736,   713,   737,  1166,   715,   237,
2050 >     325,   719,    19,    20,   738,   739,    21,    22,   752,   775,
2051 >     776,   777,   778,   779,   780,   781,   720,   721,   862,   863,
2052 >     864,   865,   866,   740,   867,   868,   326,   869,   870,   871,
2053 >     741,   750,   872,   751,   873,   874,   875,   755,   876,   753,
2054 >     877,   754,   878,   879,   756,   757,   880,   762,   759,   767,
2055 >     768,   763,   881,   769,   793,  1123,  1124,  1125,  1126,  1127,
2056 >      23,  1128,  1129,   770,  1130,  1131,  1132,   771,   327,  1133,
2057 >    1167,  1134,  1135,  1136,   794,  1137,   772,  1138,   773,  1139,
2058 >    1140,   774,   784,  1141,   886,   887,   888,   889,   890,  1142,
2059 >     891,   892,   796,   893,   894,   895,   785,   786,   896,    76,
2060 >     897,  1168,   898,   797,   899,   787,   900,   788,   901,   902,
2061 >    1169,   789,   903,   790,   791,   792,  1170,   798,   904,    77,
2062 >      78,   799,   800,   803,   804,    79,   805,   807,   811,   814,
2063 >     810,  1171,   815,  1172,  1173,  1004,  1005,  1006,  1007,  1008,
2064 >    1009,  1010,   821,  1174,   816,   825,   817,   818,   819,  1175,
2065 >     820,   822,   823,   824,   826,   827,   828,   829,   830,   831,
2066 >     832,   833,   834,   835,   836,    80,    81,   837,   838,   839,
2067 >     926,   840,   841,    82,    83,    84,   842,   843,   844,   845,
2068 >     846,   847,   848,   849,   850,   851,   852,   853,   854,   929,
2069 >     927,   855,   856,   857,   858,   859,   860,   884,   907,    85,
2070 >      86,   908,   909,   910,   911,   912,   913,   914,   915,   916,
2071 >     917,   918,    87,    88,   919,   920,   921,   922,   923,   930,
2072 >     924,   941,   925,   931,   932,   933,   928,   935,   934,   936,
2073 >     937,   939,   938,   940,   944,   945,   955,   958,   957,   956,
2074 >     960,   961,   962,   964,   959,   966,   967,   968,   996,   998,
2075 >    1000,   296,  1150,  1149,  1096,   965,   545,   963,  1229,   969,
2076 >     970,   971,   972,   973,   974,   975,   976,   977,  1191,   978,
2077 >     979,   980,   981,   982,   983,   984,   985,   986,   991,   992,
2078 >     993,   994,   995,  1194,   999,   717,   997,  1224,  1001,  1002,
2079 >    1003,  1011,  1012,  1013,  1223,  1018,  1019,  1020,  1021,  1022,
2080 >    1023,  1024,  1025,  1026,  1027,  1033,  1034,  1035,  1036,  1037,
2081 >    1038,  1039,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1088,
2082 >    1051,  1207,  1210,   700,  1052,   689,  1053,  1192,  1054,  1209,
2083 >    1055,   601,  1060,  1061,  1074,  1225,   761,  1208,   617,   384,
2084 >     723,  1226,  1075,   441,   693,  1186,   766,   310,  1185,  1076,
2085 >    1077,  1078,  1079,  1080,  1086,  1087,   482,  1091,     0,     0,
2086 >    1089,  1092,  1094,  1097,  1098,  1119,  1120,  1121,  1145,  1146,
2087 >    1147,  1148,     0,  1151,  1164,  1165,  1193,     0,  1198,  1211,
2088 >    1195,     0,  1221,  1222,     0,     0,     0,     0,   488,   621,
2089 >       0,     0,   627,     0,     0,     0,     0,   525,     0,     0,
2090         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2091         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2092 <       0,     0,     0,     0,     0,     0,     0,   602
2092 >       0,     0,     0,     0,     0,     0,     0,   564
2093   };
2094  
2095 < #define yypact_value_is_default(yystate) \
2096 <  ((yystate) == (-560))
2095 > #define yypact_value_is_default(Yystate) \
2096 >  (!!((Yystate) == (-910)))
2097  
2098 < #define yytable_value_is_error(yytable_value) \
2098 > #define yytable_value_is_error(Yytable_value) \
2099    YYID (0)
2100  
2101   static const yytype_int16 yycheck[] =
2102   {
2103 <     456,   320,   321,     1,     1,     1,     4,     1,   327,     1,
2104 <       1,     1,     1,     1,    61,     1,     1,     1,     4,   110,
2105 <     243,     1,   243,     1,    11,   243,    22,    23,     1,     1,
2106 <      26,     1,    11,     1,     1,   241,   242,     1,    35,    24,
2107 <      31,    39,   241,     1,    42,   241,   245,     1,    21,   245,
2108 <      41,    48,   243,    39,   243,    47,    42,    24,    43,   241,
2109 <     243,     1,    47,   245,    61,    62,    63,    64,    14,    15,
2110 <      16,   176,   177,    31,    66,     1,    43,   176,   177,    71,
2111 <      47,    71,    71,    41,    81,    83,   149,   150,     1,   243,
2112 <       1,    87,    88,    89,   413,   414,    92,    83,     1,     1,
2113 <     149,   150,   100,    71,   100,    31,   100,   243,   427,   100,
2114 <     243,     1,   100,   432,   100,   100,   112,   113,     8,     9,
2115 <     100,   212,   197,   198,   443,   444,    98,   446,   243,    19,
2116 <     100,   104,   128,   129,   243,   454,   455,    27,   130,   458,
2117 <     125,    67,   100,    33,   133,   133,   100,    37,    38,   133,
2118 <      40,    10,   241,    12,   126,   133,    46,   204,   125,   144,
2119 <     133,   208,   158,   243,   110,    55,    56,   134,   135,    71,
2120 <      60,   243,   166,   243,   100,    65,   102,   103,   166,    69,
2121 <      70,     1,   166,    73,   640,    98,    76,    77,   166,   100,
2122 <     243,   178,   243,    13,    84,     1,   166,   100,     1,   178,
2123 <      90,    91,   169,    93,    94,    95,    96,    97,    28,    29,
2124 <     243,   241,     1,   126,    34,   245,    36,   143,   108,   145,
2125 <     146,   147,   148,   243,   209,   243,   116,   117,   118,   227,
2126 <     120,   133,    21,   123,   124,   241,   162,   127,   243,   245,
2127 <     243,   227,   227,   227,   563,   242,   242,   240,   138,   227,
2128 <     242,   242,   242,   242,   242,   166,   242,   242,    78,    79,
2129 <     227,   244,   188,   166,   242,    85,    86,     1,   232,   242,
2130 <     242,   131,   242,   163,   200,   242,   240,   167,   242,   244,
2131 <       1,   171,   172,   173,   174,   175,   106,   107,   242,   179,
2132 <     180,     1,   232,     3,   100,   244,     6,   100,   241,   189,
2133 <     240,   121,   122,    24,   131,   244,   241,   244,   234,   235,
2134 <     245,   630,   132,    51,    24,   104,   242,   244,   241,   638,
2135 <     639,   141,    43,   244,   227,     1,    47,     1,   239,   219,
2136 <     220,   242,   222,    43,    72,     1,    74,    47,   228,   242,
2137 <     244,   241,   241,   233,   133,   245,   245,   241,   238,   208,
2138 <     241,   245,   242,   241,   245,   244,    66,   245,    68,    35,
2139 <     166,   244,   221,   166,   241,    31,   100,   241,   245,   244,
2140 <      80,   245,    48,    47,   241,   244,     1,   115,   245,   100,
2141 <     244,   244,   110,     8,     9,    61,    62,    63,    64,   241,
2142 <     100,   241,    66,   245,    19,   245,   244,    71,   244,   133,
2143 <     244,    67,    27,   244,   125,    81,   244,   726,    33,   229,
2144 <     230,   231,    37,    38,   244,    40,   975,   976,   977,   244,
2145 <     130,    46,   242,   144,   227,   153,   154,   155,   156,   157,
2146 <      55,    56,   166,   239,   100,    60,   102,   103,   110,   244,
2147 <      65,   241,   244,   244,    69,    70,   244,   244,    73,   159,
2148 <     244,    76,    77,   191,   192,   243,   130,   244,   244,    84,
2149 <     244,   244,     1,   244,     3,    90,    91,     6,    93,    94,
2150 <      95,    96,    97,   244,   244,   244,   244,   143,   188,   145,
2151 <     146,   147,   148,   108,     5,    24,   244,   244,   209,   227,
2152 <     244,   116,   117,   118,   244,   120,   162,   244,   123,   124,
2153 <     244,   244,   127,   244,    43,   244,   227,   244,    47,   244,
2154 <       1,    32,   244,   138,   830,   831,   832,   833,   834,   244,
2155 <     244,   244,   188,   131,   234,   244,   244,    66,   244,    68,
2156 <      51,   244,   242,    24,   200,   244,    57,   244,   163,   244,
2157 <     244,    80,   167,   244,   244,     1,   171,   172,   173,   174,
2158 <     175,   244,    43,    74,   179,   180,    47,    13,   244,   244,
2159 <     244,   100,   244,   244,   189,   244,   244,   244,   234,   235,
2160 <     241,   244,    28,    29,   244,   244,   244,    98,    34,   244,
2161 <      36,    74,   244,   244,   105,   244,   244,   244,   244,   244,
2162 <     244,   130,   244,   244,   219,   220,   244,   222,   119,   244,
2163 <     244,   244,   244,   228,   244,    74,   244,   244,   233,   244,
2164 <     244,   244,   244,   238,   176,   110,   137,   176,   139,   140,
2165 <     159,   176,    78,    79,   110,   110,   110,   176,   176,    85,
2166 <      86,   110,   176,   176,   125,   176,   176,   241,   176,   241,
2167 <     241,   244,   131,   134,   135,   244,   244,   244,   244,   188,
2168 <     106,   107,   244,   244,   244,   244,   244,   244,   151,   244,
2169 <     244,   244,   244,   244,   244,   121,   122,     0,     1,   244,
2170 <     244,   192,     5,   244,   244,   244,   132,   244,   169,   244,
2171 <     244,   202,   151,   244,   244,   141,   244,   241,    21,   182,
2172 <     211,    24,    25,   244,   215,   234,   217,    30,   176,   192,
2173 <     110,   176,   176,   110,   131,   226,   199,   110,   176,   110,
2174 <       1,   110,    45,   182,  1170,   236,    49,    50,   211,    52,
2175 <     213,   214,   176,   192,    61,    58,   176,   176,   176,   131,
2176 <     199,    22,    23,   226,   110,    26,   227,   110,   110,    72,
2177 <     110,   131,   211,   236,   213,   214,   110,   110,   176,    82,
2178 <      83,   176,   244,   176,   244,   176,   176,   226,    61,   176,
2179 <     176,   176,   176,   110,   131,   176,    99,   236,   176,   241,
2180 <     176,   176,   176,   229,   230,   231,   131,   244,   244,   244,
2181 <     244,   241,   115,   244,   176,   244,    61,   244,   131,   244,
2182 <     176,   244,   244,   244,   241,   241,    87,    88,    89,   244,
2183 <     244,    92,   244,   244,   244,   241,   241,   244,   176,   100,
2184 <     244,   244,   244,   244,   244,   241,   131,   176,   151,   176,
2185 <     244,   112,   113,   131,   176,   244,   244,   160,   161,   241,
2186 <     131,   164,   165,   131,   131,   131,   131,   128,   129,   131,
2187 <     110,   131,   131,   131,   131,   241,   183,   184,   185,   186,
2188 <     187,   244,   241,   190,   191,   131,   244,   194,   195,   196,
2189 <     241,   244,   199,   241,   201,   202,   203,   158,   205,   206,
2190 <     207,   110,   241,   210,   110,   241,   241,   110,   110,   216,
2191 <     183,   184,   185,   186,   187,   218,   110,   190,   191,   110,
2192 <      20,   194,   195,   196,   131,   241,   199,   241,   201,   202,
2193 <     203,   241,   205,   206,   207,   241,   241,   210,   183,   184,
2194 <     185,   186,   187,   216,    44,   190,   191,   241,   241,   194,
2195 <     195,   196,   241,    53,   199,   241,   201,   202,   203,    59,
2196 <     205,   206,   207,   110,   241,   210,   241,   241,   110,   241,
2197 <     131,   216,   241,   131,   244,    75,   176,   241,   241,   131,
2198 <     131,   131,   131,   110,   110,   241,   241,   241,   131,   241,
2199 <     131,   131,   131,   131,   241,   131,   131,   241,   241,   176,
2200 <     241,   101,   244,   241,   241,   241,   241,   241,   241,   109,
2201 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2202 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2203 <     241,   241,   131,   241,   131,   131,   241,   241,   131,   176,
2204 <     241,   131,   241,   241,   241,   241,   241,   131,   241,   241,
2205 <     131,   241,   152,   241,   241,   241,   241,   241,   241,   241,
2206 <     241,   241,   241,   131,   131,   131,   244,   241,   244,   244,
2207 <     170,   241,   244,   241,   131,   244,   110,   241,   241,   241,
2208 <     131,   241,   176,   131,   131,   244,   131,   244,   131,   131,
2209 <     131,   131,   131,   241,   131,   241,   241,   241,   131,   110,
2210 <     136,   136,   131,  1055,    74,  1019,  1057,   241,   241,   241,
2211 <     241,   241,   241,   241,   285,  1309,   241,   241,   241,   241,
2212 <     241,   241,   241,   241,   241,   241,   241,   238,   241,   538,
2213 <     244,   241,   244,   241,   241,   241,   241,   241,   241,   241,
2214 <     241,  1280,  1278,   241,   514,  1268,   241,  1165,   489,   241,
2215 <     241,   181,   241,   241,   241,   241,   241,  1264,   241,   241,
2216 <     349,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2217 <     241,   241,   241,   552,  1282,   588,   241,   241,   241,   241,
2303 <     241,   241,   241,   241,  1284,   241,   241,   241,   241,   241,
2304 <    1254,   241,   241,  1266,   123,   504,  1256,   241,   179,   245,
2305 <    1118,  1116,  1260,    98,   596,   378,   244,  1262,    -1,    -1,
2306 <     241,    -1,   244,   241,   241,   241,   241,   241,   241,   241,
2307 <     241,   241,   241,   241,   241,    -1,   241,   241,   244,   241,
2308 <     396,   241,    -1,   246,    -1,    -1,    -1,    -1,    -1,    -1,
2309 <     472,   408,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2310 <      -1,    -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2311 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2103 >     598,   599,   300,   301,   221,   223,     8,   223,   225,     1,
2104 >     308,     1,     1,   221,     1,     1,   221,   225,     1,     1,
2105 >     225,     1,   221,   222,     1,    15,    16,     1,     1,    19,
2106 >       1,   223,     1,     1,   223,     1,     1,     9,    10,    11,
2107 >      17,     1,    24,    51,     1,   105,    36,   164,   165,    31,
2108 >     221,    37,     1,   221,   225,    32,    36,   225,     1,    36,
2109 >      34,     1,     1,   164,   165,    51,    52,    53,    54,    55,
2110 >       1,   221,   223,    62,   223,   225,     1,    57,     3,   221,
2111 >       5,   221,    62,   225,    70,   225,   223,     1,    78,    79,
2112 >      80,    62,    17,   223,    84,   393,   394,    62,   223,    73,
2113 >      90,    91,    62,   401,    96,   403,    96,    32,     1,    96,
2114 >     223,    36,   410,    96,    96,   413,   106,   107,     1,  1028,
2115 >    1029,  1030,   221,     6,     7,   423,   424,    96,    96,    12,
2116 >      96,   121,    57,   105,    59,   433,   434,    20,   436,    96,
2117 >     200,   118,   122,    26,    69,    28,    29,    30,   125,   126,
2118 >     124,    94,    35,   124,    94,   223,   221,   147,    41,    42,
2119 >     225,    44,    45,    46,   124,    96,     1,    50,   155,   223,
2120 >     221,    96,   155,    56,   225,   124,   119,    60,    61,   119,
2121 >     157,    64,   223,   191,   136,   137,   155,   155,   196,   155,
2122 >     223,    74,     1,   124,   196,   136,   137,   122,    81,   189,
2123 >      83,   223,    85,    96,    87,    88,    89,   221,    92,    93,
2124 >     124,   225,    21,    22,   223,     1,   223,   221,    27,   224,
2125 >     103,   225,   223,   148,   223,   523,   109,   110,   111,   212,
2126 >     113,   124,   222,   116,   117,   212,   222,   120,    24,     1,
2127 >     222,   214,   222,   212,   223,   222,   224,   220,   222,   222,
2128 >     175,   219,   105,   222,   222,    17,   222,   222,    67,    68,
2129 >     221,    96,   222,   212,   225,   222,    75,    76,    77,   152,
2130 >      32,   224,    58,   156,    36,   214,   159,   160,   161,   162,
2131 >     163,   220,   222,   166,   167,   221,    40,   224,   586,     1,
2132 >     215,   222,   101,   102,   592,   593,    82,   222,   212,   597,
2133 >      86,   182,   183,   224,   224,   114,   115,   224,   222,    63,
2134 >      96,    65,    98,    99,   224,   224,   224,   224,   224,   224,
2135 >     155,   224,   224,   224,    36,   208,   209,   210,   224,   224,
2136 >     213,     1,     1,   224,    96,   218,   224,     6,     7,   222,
2137 >     220,   123,   224,    12,   130,    57,   132,   133,   134,   135,
2138 >      62,    20,   224,   224,   108,   224,   118,    26,   224,    28,
2139 >      29,    30,   224,   224,    34,   151,    35,     1,   224,   131,
2140 >     224,     1,    41,    42,   224,    44,    45,    46,   224,   224,
2141 >     224,    50,   224,   224,   219,   224,   224,    56,   224,   175,
2142 >      24,    60,    61,   224,    24,    64,   224,    31,   224,   185,
2143 >     224,   224,   224,    73,   224,    74,   224,   224,   224,   224,
2144 >     122,   224,    81,   222,    83,   221,    85,   224,    87,    88,
2145 >      89,   224,   224,   177,   178,   224,   224,   224,    58,   215,
2146 >     216,   224,   224,   224,   103,   197,   222,   224,   221,   224,
2147 >     109,   110,   111,   224,   113,     1,   224,   116,   117,   224,
2148 >     212,   120,    82,    65,   124,   224,    86,   224,   212,   224,
2149 >     222,    17,    96,   224,   224,   224,    96,   224,    98,    99,
2150 >     123,   224,   224,   224,   224,   224,    32,   224,   224,   224,
2151 >      36,   224,   224,   152,   224,   224,   224,   156,   224,     4,
2152 >     159,   160,   161,   162,   163,   224,  1094,   166,   167,     1,
2153 >     130,   224,   132,   133,   134,   135,   224,     1,   224,     3,
2154 >      25,     5,   123,   224,   221,    17,   105,   164,   105,   105,
2155 >     105,   151,   105,    17,   164,    40,   138,   164,   105,   221,
2156 >      32,    13,    47,   221,    36,   224,   221,   224,    32,   208,
2157 >     209,   210,    36,   224,   213,   175,   224,   224,   224,   218,
2158 >      65,    33,   224,   224,   123,   185,   224,   169,   224,   224,
2159 >     224,    43,   118,    57,   224,    59,   178,    49,   224,   125,
2160 >     126,   164,   184,   224,   224,    69,   224,   105,   224,    94,
2161 >     224,   224,   224,   224,    66,   215,   216,   199,   224,   201,
2162 >     202,   224,   224,   224,    96,   224,   224,   112,   224,   211,
2163 >     221,   157,    96,     0,     1,   217,   224,     4,   224,   164,
2164 >     164,   123,   127,   128,   129,    97,   118,    14,   105,   164,
2165 >      17,    18,   104,   164,   105,   105,    23,   105,   122,   131,
2166 >       1,   164,   164,   164,   105,   105,   105,    34,   105,   105,
2167 >     105,    38,    39,   164,    15,    16,   164,   164,    19,    51,
2168 >     224,    48,   224,   164,   148,   164,   212,   139,   164,   164,
2169 >     164,   164,   123,   178,   164,    36,    63,   164,   164,   221,
2170 >     221,   224,   221,   188,    71,    72,   158,   224,   193,   164,
2171 >       1,   175,   224,   221,   199,   224,    51,   224,   203,   224,
2172 >     224,   206,   123,   123,   224,   197,   211,   224,    95,   224,
2173 >     224,   224,   217,   223,   164,   221,   123,    78,    79,    80,
2174 >     212,   108,   164,    84,   221,    51,    37,   164,   164,    90,
2175 >      91,   215,   221,   205,   105,    96,   224,   164,   221,   224,
2176 >      51,    52,    53,    54,    55,   106,   107,   123,   224,   164,
2177 >     224,   138,   105,   105,   123,   224,   123,    65,   224,    70,
2178 >     121,   224,   149,   150,   123,   123,   153,   154,   105,   140,
2179 >     141,   142,   143,   144,   145,   146,   224,   224,   170,   171,
2180 >     172,   173,   174,   123,   176,   177,   147,   179,   180,   181,
2181 >     123,   123,   184,   123,   186,   187,   188,   221,   190,   123,
2182 >     192,   123,   194,   195,   221,   224,   198,   221,   224,   123,
2183 >     221,   224,   204,   221,   105,   170,   171,   172,   173,   174,
2184 >     207,   176,   177,   221,   179,   180,   181,   221,   189,   184,
2185 >     138,   186,   187,   188,   105,   190,   221,   192,   221,   194,
2186 >     195,   221,   221,   198,   170,   171,   172,   173,   174,   204,
2187 >     176,   177,   224,   179,   180,   181,   221,   221,   184,     1,
2188 >     186,   169,   188,   105,   190,   221,   192,   221,   194,   195,
2189 >     178,   221,   198,   221,   221,   221,   184,   105,   204,    21,
2190 >      22,   105,   105,   123,   105,    27,   105,   105,   123,   123,
2191 >     221,   199,   164,   201,   202,   775,   776,   777,   778,   779,
2192 >     780,   781,   105,   211,   224,   221,   123,   123,   123,   217,
2193 >     123,   123,   123,   123,   123,   123,   221,   221,   123,   123,
2194 >     221,   221,   221,   221,   221,    67,    68,   221,   221,   221,
2195 >     123,   221,   221,    75,    76,    77,   221,   221,   221,   221,
2196 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   123,
2197 >     164,   221,   221,   221,   221,   221,   221,   221,   221,   101,
2198 >     102,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2199 >     221,   221,   114,   115,   221,   221,   221,   221,   221,   105,
2200 >     221,   105,   221,   123,   123,   123,   224,   123,   221,   123,
2201 >     221,   123,   224,   123,   221,   221,   221,   164,   123,   221,
2202 >     123,   123,   123,   123,   224,   123,   123,   123,   123,   123,
2203 >     123,    71,   990,   988,   950,   221,   265,   224,  1228,   221,
2204 >     221,   221,   221,   221,   221,   221,   221,   221,   105,   221,
2205 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2206 >     221,   221,   221,   123,   221,   498,   224,  1202,   224,   221,
2207 >     221,   221,   221,   221,  1200,   221,   221,   221,   221,   221,
2208 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2209 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   168,
2210 >     221,  1179,  1190,   474,   221,   451,   221,  1089,   221,  1188,
2211 >     221,   328,   221,   221,   221,  1204,   550,  1184,   360,   108,
2212 >     512,  1206,   221,   161,   464,  1059,   558,    89,  1057,   221,
2213 >     221,   221,   221,   221,   221,   221,   216,   221,    -1,    -1,
2214 >     225,   224,   224,   221,   221,   221,   221,   221,   221,   221,
2215 >     221,   221,    -1,   221,   221,   221,   221,    -1,   221,   221,
2216 >     224,    -1,   221,   221,    -1,    -1,    -1,    -1,   224,   378,
2217 >      -1,    -1,   388,    -1,    -1,    -1,    -1,   238,    -1,    -1,
2218        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2219        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2220 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   306
2220 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   288
2221   };
2222  
2223   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2224     symbol of state STATE-NUM.  */
2225   static const yytype_uint16 yystos[] =
2226   {
2227 <       0,   247,     0,     1,     5,    21,    24,    25,    30,    45,
2228 <      49,    50,    52,    58,    72,    82,    83,    99,   115,   151,
2229 <     160,   161,   164,   165,   218,   248,   253,   258,   280,   286,
2230 <     300,   318,   335,   349,   364,   371,   375,   385,   394,   414,
2231 <     424,   430,   434,   444,   504,   520,   541,   241,   242,   243,
2232 <     243,   319,   395,   425,   243,   435,   243,   505,   350,   415,
2233 <     336,   243,   243,   301,   365,   243,   243,   376,   386,   243,
2234 <       1,    31,    41,   100,   281,   282,   283,   284,   285,     1,
2235 <      13,    28,    29,    34,    36,    78,    79,    85,    86,   106,
2236 <     107,   121,   122,   132,   141,   229,   230,   231,   521,   522,
2237 <     523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
2238 <     533,   534,   535,   536,   537,   538,   539,   540,   243,   243,
2239 <     243,     1,    71,   431,   432,   433,   243,     1,     8,     9,
2240 <      19,    27,    33,    37,    38,    40,    46,    55,    56,    60,
2241 <      65,    69,    70,    73,    76,    77,    84,    90,    91,    93,
2242 <      94,    95,    96,    97,   108,   116,   117,   118,   120,   123,
2243 <     124,   127,   138,   163,   167,   171,   172,   173,   174,   175,
2244 <     179,   180,   189,   219,   220,   222,   228,   233,   238,   445,
2245 <     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
2246 <     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
2247 <     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
2248 <     476,   477,   478,   479,   480,   481,   482,   483,   484,   485,
2249 <     486,   487,   488,   489,   490,   491,   492,   496,   500,   501,
2250 <     502,   503,   243,   243,   243,   243,     1,   232,   287,   288,
2251 <     289,   290,   291,     1,    98,   126,   254,   255,   256,   257,
2252 <     243,   243,     1,    35,    48,    61,    62,    63,    64,    81,
2253 <     542,   543,   544,   545,   546,   547,   548,   549,   550,     1,
2254 <      31,    67,   100,   102,   103,   143,   145,   146,   147,   148,
2255 <     162,   188,   200,   234,   235,   259,   260,   261,   262,   267,
2256 <     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2257 <     278,   279,   243,   243,     1,   100,   372,   373,   374,   241,
2258 <     244,   244,   244,   242,   282,   244,   244,   244,   244,   244,
2259 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2260 <     244,   244,   244,   242,   522,     1,    22,    23,    26,    87,
2261 <      88,    89,    92,   100,   112,   113,   128,   129,   158,   320,
2262 <     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
2263 <     331,   332,   333,   334,     1,     3,     6,    24,    43,    47,
2264 <      66,    68,    80,   100,   130,   159,   188,   234,   396,   397,
2265 <     398,   399,   400,   401,   402,   403,   404,   405,   409,   410,
2266 <     411,   412,   413,     1,    71,   133,   426,   427,   428,   429,
2267 <     244,   242,   432,     1,   100,   133,   166,   436,   440,   441,
2268 <     442,   443,   244,   244,   244,   244,   244,   244,   244,   244,
2269 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2270 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2271 <     497,   244,   493,   244,   244,   244,   244,   244,   244,   244,
2272 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2273 <     244,   244,   244,   242,   446,     1,     4,    39,    42,    83,
2274 <     100,   227,   506,   507,   508,   509,   510,   514,   515,   516,
2275 <       1,    24,    43,    47,   125,   134,   135,   169,   227,   351,
2276 <     352,   353,   354,   355,   356,   357,   361,   362,   363,     1,
2277 <     133,   166,   227,   416,   420,   421,   422,   423,     1,    47,
2278 <      66,    71,   130,   337,   341,   342,   343,   347,   348,   241,
2279 <     244,   242,   288,   240,   241,   244,   244,   242,   255,     1,
2280 <      24,    43,    47,   100,   125,   144,   209,   227,   302,   303,
2281 <     304,   305,   306,   307,   308,   309,   310,   314,     1,    21,
2282 <     104,   133,   366,   367,   368,   369,   370,   244,   244,   244,
2283 <     244,   244,   244,   244,   242,   543,   241,   244,   244,   244,
2284 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2285 <     244,   244,   242,   260,     1,   100,   166,   227,   377,   378,
2286 <     379,   380,   381,     1,   100,   166,   387,   388,   389,   390,
2287 <     244,   242,   373,   131,   131,   131,   241,   176,   110,   110,
2288 <     176,   176,   110,   250,   250,   110,   110,   176,   176,   110,
2289 <     250,   176,   176,   176,   176,   176,   241,   241,   244,   244,
2290 <     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
2291 <     244,   242,   321,   241,   244,   244,   244,   244,   406,   244,
2292 <     244,   244,   244,   244,   244,   244,   244,   242,   397,   244,
2293 <     244,   242,   427,   131,   241,   244,   244,   437,   242,   441,
2294 <     176,   250,   250,   110,   176,   176,   110,   131,   176,   110,
2295 <     110,   110,   176,   176,   176,   250,   131,   176,   110,   110,
2296 <     250,   110,   110,   131,   110,   110,   176,   176,   244,   176,
2297 <     244,   250,   250,   176,   250,   176,   176,   176,   176,   177,
2298 <     176,   177,   176,   176,   250,   250,   110,   252,   131,   250,
2299 <     176,   176,   176,   176,   241,   517,   244,   244,   511,   244,
2300 <     244,   242,   507,   241,   244,   244,   358,   244,   244,   244,
2301 <     244,   244,   242,   352,   244,   417,   244,   242,   421,   241,
2302 <     338,   244,   244,   244,   242,   342,   176,   241,   243,   131,
2303 <     131,   241,   241,   244,   244,   315,   244,   244,   244,   311,
2304 <     244,   242,   303,   241,   244,   244,   244,   242,   367,   176,
2305 <     176,   176,   131,   176,   176,   250,   241,   131,   176,   131,
2306 <     131,   131,   131,   131,   131,   149,   150,   263,   264,   149,
2307 <     150,   265,   266,   131,   131,   110,   131,   131,   241,   241,
2308 <     244,   382,   244,   242,   378,   241,   244,   391,   242,   388,
2309 <     131,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2310 <     153,   154,   155,   156,   157,   249,   250,   241,   241,   241,
2311 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2312 <     110,   110,   250,   110,   110,   110,   110,   131,   110,   110,
2313 <     250,   250,   252,   241,   131,   197,   198,   131,   176,   244,
2314 <     131,   131,   131,   131,   110,   131,   131,   131,   241,   131,
2315 <     131,   241,   241,   131,   131,   244,   241,   241,   241,   241,
2316 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2317 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2318 <     241,   241,   241,   241,   241,    61,   183,   184,   185,   186,
2319 <     187,   190,   191,   194,   195,   196,   199,   201,   202,   203,
2320 <     205,   206,   207,   210,   216,   498,   499,   241,    61,   183,
2321 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2322 <     201,   202,   203,   205,   206,   207,   210,   216,   494,   495,
2323 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2324 <     241,   241,   241,   241,   241,    14,    15,    16,   251,   252,
2325 <     241,   241,   241,   241,   241,   241,   241,   244,   250,   176,
2326 <     244,   131,   131,   241,   131,   176,   244,   131,   110,   131,
2327 <     131,   131,   241,   131,   244,   131,   241,   244,   131,   131,
2328 <     110,   345,   346,   241,   241,     1,   100,   166,   239,   292,
2329 <     293,   294,   295,   296,   241,   241,   131,   176,   244,   131,
2330 <     131,   131,   244,   131,   241,   131,   131,   131,   241,   241,
2331 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2332 <     241,   241,   241,   241,   241,   245,   241,   245,   241,   241,
2333 <     241,   241,   241,   131,   244,   131,   241,   131,   244,   241,
2334 <     241,   249,   249,   249,   249,   249,   241,   241,   241,   241,
2335 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2336 <     241,   241,   241,   241,    10,    12,   208,   221,   407,   408,
2337 <     241,   241,   241,   241,   241,   241,   241,   241,   241,   241,
2338 <     241,   241,   136,   438,   439,   241,   245,   241,   245,   251,
2339 <     251,   251,    11,   178,   518,   519,   241,   241,    11,   178,
2340 <     512,   513,   241,   241,   241,   241,    20,    44,    53,    59,
2341 <      75,   101,   109,   152,   170,   359,   360,   241,   241,   241,
2342 <     241,   241,   241,   136,   418,   419,   241,    61,   204,   208,
2343 <     339,   340,   241,   241,   181,   245,   344,   241,   244,   297,
2344 <     244,   242,   293,   241,   241,     5,    32,    51,    57,    74,
2345 <      98,   105,   119,   137,   139,   140,   192,   202,   211,   215,
2346 <     217,   226,   236,   316,   317,   241,   241,   241,    61,   183,
2347 <     184,   185,   186,   187,   190,   191,   194,   195,   196,   199,
2348 <     201,   202,   203,   205,   206,   207,   210,   216,   312,   313,
2349 <     241,   241,   241,   241,   264,   266,   241,    74,   151,   182,
2444 <     192,   199,   211,   213,   214,   226,   236,   383,   384,   241,
2445 <     241,    74,   151,   182,   192,   199,   211,   213,   214,   226,
2446 <     236,   392,   393,   241,   245,   241,   245,   499,   495,   241,
2447 <     245,   241,   245,   241,   245,   241,   245,   241,   245,   110,
2448 <     346,   241,   131,   244,   212,   252,   241,   241,   245,   241,
2449 <     245,   241,   245,   241,   245,   408,   439,   519,   513,   360,
2450 <     419,   340,   241,    51,    72,    74,   115,   191,   192,   227,
2451 <     298,   299,   241,   241,   317,   313,   384,   393,   241,   245,
2452 <     299
2227 >       0,   227,     0,     1,     4,    14,    17,    18,    23,    34,
2228 >      38,    39,    48,    63,    71,    72,    95,   108,   138,   149,
2229 >     150,   153,   154,   207,   228,   233,   238,   262,   268,   282,
2230 >     300,   323,   337,   352,   359,   363,   373,   382,   402,   408,
2231 >     414,   418,   424,   481,   496,   221,   222,   223,   223,   301,
2232 >     383,   409,   223,   419,   223,   338,   403,   324,   223,   223,
2233 >     283,   353,   223,   223,   364,   374,   223,     1,    24,    31,
2234 >      96,   263,   264,   265,   266,   267,     1,    21,    22,    27,
2235 >      67,    68,    75,    76,    77,   101,   102,   114,   115,   482,
2236 >     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
2237 >     493,   494,   495,   223,   223,   223,     1,    62,   415,   416,
2238 >     417,   223,     1,     6,     7,    12,    20,    26,    28,    29,
2239 >      30,    35,    41,    42,    44,    45,    46,    50,    56,    60,
2240 >      61,    64,    74,    81,    83,    85,    87,    88,    89,   103,
2241 >     109,   110,   111,   113,   116,   117,   120,   152,   156,   159,
2242 >     160,   161,   162,   163,   166,   167,   208,   209,   210,   213,
2243 >     218,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2244 >     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2245 >     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2246 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2247 >     464,   465,   466,   467,   468,   469,   470,   474,   478,   479,
2248 >     480,   223,   223,   223,     1,   214,   269,   270,   271,   272,
2249 >     273,     1,    94,   119,   234,   235,   236,   237,   223,   223,
2250 >       1,    37,    51,    52,    53,    54,    55,    70,   497,   498,
2251 >     499,   500,   501,   502,   503,   504,   505,     1,    24,    58,
2252 >      82,    86,    96,    98,    99,   130,   132,   133,   134,   135,
2253 >     151,   175,   185,   215,   216,   239,   240,   241,   242,   247,
2254 >     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
2255 >     258,   259,   260,   261,   223,   223,     1,    96,   360,   361,
2256 >     362,   221,   224,   224,   224,   222,   264,   224,   224,   224,
2257 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   222,
2258 >     483,     1,    15,    16,    19,    36,    78,    79,    80,    84,
2259 >      90,    91,    96,   106,   107,   121,   147,   189,   302,   303,
2260 >     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2261 >     314,   315,   316,   317,   318,   319,     1,     3,     5,    17,
2262 >      32,    36,    57,    59,    69,    96,   122,   148,   175,   215,
2263 >     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
2264 >     397,   398,   399,   400,   401,     1,    62,   124,   410,   411,
2265 >     412,   413,   224,   222,   416,     1,    96,   124,   420,   421,
2266 >     422,   423,   224,   224,   224,   224,   224,   224,   224,   224,
2267 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2268 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2269 >     475,   224,   471,   224,   224,   224,   224,   224,   224,   224,
2270 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2271 >     222,   426,     1,    17,    32,    36,   118,   125,   126,   157,
2272 >     212,   339,   340,   341,   342,   343,   344,   345,   349,   350,
2273 >     351,     1,   124,   212,   404,   405,   406,   407,     1,    36,
2274 >      57,    62,   122,   325,   329,   330,   331,   335,   336,   221,
2275 >     224,   222,   270,   220,   221,   224,   224,   222,   235,     1,
2276 >      17,    32,    36,    96,   118,   131,   197,   212,   284,   285,
2277 >     286,   287,   288,   289,   290,   291,   292,   296,     1,    34,
2278 >      73,   124,   354,   355,   356,   357,   358,   224,   224,   224,
2279 >     224,   224,   224,   224,   222,   498,   221,   224,   224,   224,
2280 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2281 >     224,   224,   224,   224,   222,   240,     1,    96,   155,   212,
2282 >     365,   366,   367,   368,   369,     1,    96,   155,   375,   376,
2283 >     377,   378,   224,   222,   361,   123,   123,   123,   221,   105,
2284 >     105,   164,   105,   230,   230,   105,   105,   105,   164,   164,
2285 >     105,   230,   221,   221,   224,   224,   224,   320,   224,   224,
2286 >     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
2287 >     222,   303,   221,   224,   224,   224,   224,   394,   224,   224,
2288 >     224,   224,   224,   224,   224,   224,   222,   385,   224,   224,
2289 >     222,   411,   123,   221,   224,   224,   222,   421,   164,   230,
2290 >     230,   105,   164,   164,   105,   123,   164,   230,   164,   230,
2291 >     105,   105,   105,   164,   164,   164,   230,   105,   105,   230,
2292 >     105,   105,   105,   105,   164,   164,   224,   164,   224,   230,
2293 >     230,   164,   164,   164,   164,   164,   165,   164,   165,   164,
2294 >     164,   230,   230,   123,   230,   164,   164,   164,   221,   221,
2295 >     224,   224,   346,   224,   224,   224,   224,   224,   222,   340,
2296 >     224,   224,   222,   405,   221,   326,   224,   224,   224,   222,
2297 >     330,   164,   221,   223,   123,   123,   221,   221,   224,   224,
2298 >     297,   224,   224,   224,   293,   224,   222,   285,   221,   224,
2299 >     224,   224,   222,   355,   164,   164,   123,   164,   164,   164,
2300 >     230,   221,   123,   164,   105,   105,   123,   123,   123,   123,
2301 >     123,   123,   136,   137,   243,   244,   136,   137,   245,   246,
2302 >     123,   123,   105,   123,   123,   221,   221,   224,   370,   224,
2303 >     222,   366,   221,   224,   379,   222,   376,   123,   221,   221,
2304 >     221,   221,   221,   221,   221,   140,   141,   142,   143,   144,
2305 >     145,   146,   229,   230,   221,   221,   221,   221,   221,   221,
2306 >     221,   221,   221,   105,   105,   230,   224,   105,   105,   105,
2307 >     105,   230,   230,   123,   105,   105,   230,   105,   232,   232,
2308 >     221,   123,   182,   183,   123,   164,   224,   123,   123,   123,
2309 >     123,   105,   123,   123,   123,   221,   123,   123,   221,   221,
2310 >     123,   123,   221,   221,   221,   221,   221,   221,   221,   221,
2311 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2312 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2313 >     221,    51,   170,   171,   172,   173,   174,   176,   177,   179,
2314 >     180,   181,   184,   186,   187,   188,   190,   192,   194,   195,
2315 >     198,   204,   476,   477,   221,    51,   170,   171,   172,   173,
2316 >     174,   176,   177,   179,   180,   181,   184,   186,   188,   190,
2317 >     192,   194,   195,   198,   204,   472,   473,   221,   221,   221,
2318 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2319 >     221,   221,   221,   221,   221,   221,   123,   164,   224,   123,
2320 >     105,   123,   123,   123,   221,   123,   123,   221,   224,   123,
2321 >     123,   105,   333,   334,   221,   221,     1,    96,   155,   219,
2322 >     274,   275,   276,   277,   278,   221,   221,   123,   164,   224,
2323 >     123,   123,   123,   224,   123,   221,   123,   123,   123,   221,
2324 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
2325 >     221,   221,   221,   221,   221,   221,   221,   221,   225,   221,
2326 >     225,   221,   221,   221,   221,   221,   123,   224,   123,   221,
2327 >     123,   224,   221,   221,   229,   229,   229,   229,   229,   229,
2328 >     229,   221,   221,   221,    92,    93,   321,   322,   221,   221,
2329 >     221,   221,   221,   221,   221,   221,   221,   221,     9,    10,
2330 >      11,   231,   232,   221,   221,   221,   221,   221,   221,   221,
2331 >       8,   196,   395,   396,   221,   221,   221,   221,   221,   221,
2332 >     221,   221,   221,   221,   221,   221,   221,   225,   221,   225,
2333 >     221,   221,    13,    33,    43,    49,    66,    97,   104,   139,
2334 >     158,   205,   347,   348,   221,   221,   221,   221,   221,   221,
2335 >     221,    51,   191,   196,   327,   328,   221,   221,   168,   225,
2336 >     332,   221,   224,   279,   224,   222,   275,   221,   221,     4,
2337 >      25,    40,    47,    65,    94,   112,   127,   128,   129,   178,
2338 >     188,   193,   199,   203,   206,   211,   217,   298,   299,   221,
2339 >     221,   221,    51,   170,   171,   172,   173,   174,   176,   177,
2340 >     179,   180,   181,   184,   186,   187,   188,   190,   192,   194,
2341 >     195,   198,   204,   294,   295,   221,   221,   221,   221,   244,
2342 >     246,   221,    65,   138,   169,   178,   184,   199,   201,   202,
2343 >     211,   217,   371,   372,   221,   221,    65,   138,   169,   178,
2344 >     184,   199,   201,   202,   211,   217,   380,   381,   221,   225,
2345 >     231,   231,   231,   221,   225,   477,   473,   221,   225,   221,
2346 >     225,   105,   334,   221,   123,   224,   200,   232,   221,   221,
2347 >     225,   221,   225,   221,   225,   221,   225,   322,   396,   348,
2348 >     328,   221,    40,    63,    65,   108,   177,   178,   212,   280,
2349 >     281,   221,   221,   299,   295,   372,   381,   221,   225,   281
2350   };
2351  
2352   #define yyerrok         (yyerrstatus = 0)
# Line 2479 | Line 2376 | static const yytype_uint16 yystos[] =
2376  
2377   #define YYRECOVERING()  (!!yyerrstatus)
2378  
2379 < #define YYBACKUP(Token, Value)                                  \
2380 < do                                                              \
2381 <  if (yychar == YYEMPTY && yylen == 1)                          \
2382 <    {                                                           \
2383 <      yychar = (Token);                                         \
2384 <      yylval = (Value);                                         \
2385 <      YYPOPSTACK (1);                                           \
2386 <      goto yybackup;                                            \
2387 <    }                                                           \
2388 <  else                                                          \
2389 <    {                                                           \
2379 > #define YYBACKUP(Token, Value)                                  \
2380 > do                                                              \
2381 >  if (yychar == YYEMPTY)                                        \
2382 >    {                                                           \
2383 >      yychar = (Token);                                         \
2384 >      yylval = (Value);                                         \
2385 >      YYPOPSTACK (yylen);                                       \
2386 >      yystate = *yyssp;                                         \
2387 >      goto yybackup;                                            \
2388 >    }                                                           \
2389 >  else                                                          \
2390 >    {                                                           \
2391        yyerror (YY_("syntax error: cannot back up")); \
2392        YYERROR;                                                  \
2393      }                                                           \
2394   while (YYID (0))
2395  
2396 <
2396 > /* Error token number */
2397   #define YYTERROR        1
2398   #define YYERRCODE       256
2399  
2400  
2503 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2504   If N is 0, then set CURRENT to the empty location which ends
2505   the previous symbol: RHS[0] (always defined).  */
2506
2507 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2508 #ifndef YYLLOC_DEFAULT
2509 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2510    do                                                                  \
2511      if (YYID (N))                                                    \
2512        {                                                               \
2513          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2514          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2515          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2516          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2517        }                                                               \
2518      else                                                              \
2519        {                                                               \
2520          (Current).first_line   = (Current).last_line   =              \
2521            YYRHSLOC (Rhs, 0).last_line;                                \
2522          (Current).first_column = (Current).last_column =              \
2523            YYRHSLOC (Rhs, 0).last_column;                              \
2524        }                                                               \
2525    while (YYID (0))
2526 #endif
2527
2528
2401   /* This macro is provided for backward compatibility. */
2530
2402   #ifndef YY_LOCATION_PRINT
2403   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2404   #endif
2405  
2406  
2407   /* YYLEX -- calling `yylex' with the right arguments.  */
2537
2408   #ifdef YYLEX_PARAM
2409   # define YYLEX yylex (YYLEX_PARAM)
2410   #else
# Line 2584 | Line 2454 | yy_symbol_value_print (yyoutput, yytype,
2454      YYSTYPE const * const yyvaluep;
2455   #endif
2456   {
2457 +  FILE *yyo = yyoutput;
2458 +  YYUSE (yyo);
2459    if (!yyvaluep)
2460      return;
2461   # ifdef YYPRINT
# Line 2592 | Line 2464 | yy_symbol_value_print (yyoutput, yytype,
2464   # else
2465    YYUSE (yyoutput);
2466   # endif
2467 <  switch (yytype)
2596 <    {
2597 <      default:
2598 <        break;
2599 <    }
2467 >  YYUSE (yytype);
2468   }
2469  
2470  
# Line 2835 | Line 2703 | static int
2703   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2704                  yytype_int16 *yyssp, int yytoken)
2705   {
2706 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2706 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2707    YYSIZE_T yysize = yysize0;
2840  YYSIZE_T yysize1;
2708    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2709    /* Internationalized format string. */
2710 <  const char *yyformat = 0;
2710 >  const char *yyformat = YY_NULL;
2711    /* Arguments of yyformat. */
2712    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2713    /* Number of reported tokens (one for the "unexpected", one per
# Line 2900 | Line 2767 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2767                      break;
2768                    }
2769                  yyarg[yycount++] = yytname[yyx];
2770 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2771 <                if (! (yysize <= yysize1
2772 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2773 <                  return 2;
2774 <                yysize = yysize1;
2770 >                {
2771 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2772 >                  if (! (yysize <= yysize1
2773 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2774 >                    return 2;
2775 >                  yysize = yysize1;
2776 >                }
2777                }
2778          }
2779      }
# Line 2924 | Line 2793 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2793   # undef YYCASE_
2794      }
2795  
2796 <  yysize1 = yysize + yystrlen (yyformat);
2797 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2798 <    return 2;
2799 <  yysize = yysize1;
2796 >  {
2797 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2798 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2799 >      return 2;
2800 >    yysize = yysize1;
2801 >  }
2802  
2803    if (*yymsg_alloc < yysize)
2804      {
# Line 2983 | Line 2854 | yydestruct (yymsg, yytype, yyvaluep)
2854      yymsg = "Deleting";
2855    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2856  
2857 <  switch (yytype)
2987 <    {
2988 <
2989 <      default:
2990 <        break;
2991 <    }
2857 >  YYUSE (yytype);
2858   }
2859  
2860  
2995 /* Prevent warnings from -Wmissing-prototypes.  */
2996 #ifdef YYPARSE_PARAM
2997 #if defined __STDC__ || defined __cplusplus
2998 int yyparse (void *YYPARSE_PARAM);
2999 #else
3000 int yyparse ();
3001 #endif
3002 #else /* ! YYPARSE_PARAM */
3003 #if defined __STDC__ || defined __cplusplus
3004 int yyparse (void);
3005 #else
3006 int yyparse ();
3007 #endif
3008 #endif /* ! YYPARSE_PARAM */
2861  
2862  
2863   /* The lookahead symbol.  */
2864   int yychar;
2865  
2866 +
2867 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2868 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2869 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2870 + #endif
2871 + #ifndef YY_INITIAL_VALUE
2872 + # define YY_INITIAL_VALUE(Value) /* Nothing. */
2873 + #endif
2874 +
2875   /* The semantic value of the lookahead symbol.  */
2876 < YYSTYPE yylval;
2876 > YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2877  
2878   /* Number of syntax errors so far.  */
2879   int yynerrs;
# Line 3052 | Line 2913 | yyparse ()
2913         `yyss': related to states.
2914         `yyvs': related to semantic values.
2915  
2916 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2916 >       Refer to the stacks through separate pointers, to allow yyoverflow
2917         to reallocate them elsewhere.  */
2918  
2919      /* The state stack.  */
# Line 3070 | Line 2931 | yyparse ()
2931    int yyn;
2932    int yyresult;
2933    /* Lookahead token as an internal (translated) token number.  */
2934 <  int yytoken;
2934 >  int yytoken = 0;
2935    /* The variables used to return semantic value and location from the
2936       action routines.  */
2937    YYSTYPE yyval;
# Line 3088 | Line 2949 | yyparse ()
2949       Keep to zero when no symbol should be popped.  */
2950    int yylen = 0;
2951  
2952 <  yytoken = 0;
2953 <  yyss = yyssa;
3093 <  yyvs = yyvsa;
2952 >  yyssp = yyss = yyssa;
2953 >  yyvsp = yyvs = yyvsa;
2954    yystacksize = YYINITDEPTH;
2955  
2956    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 3099 | Line 2959 | yyparse ()
2959    yyerrstatus = 0;
2960    yynerrs = 0;
2961    yychar = YYEMPTY; /* Cause a token to be read.  */
3102
3103  /* Initialize stack pointers.
3104     Waste one element of value and location stack
3105     so that they stay on the same level as the state stack.
3106     The wasted elements are never initialized.  */
3107  yyssp = yyss;
3108  yyvsp = yyvs;
3109
2962    goto yysetstate;
2963  
2964   /*------------------------------------------------------------.
# Line 3247 | Line 3099 | yybackup:
3099    yychar = YYEMPTY;
3100  
3101    yystate = yyn;
3102 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3103    *++yyvsp = yylval;
3104 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3105  
3106    goto yynewstate;
3107  
# Line 3283 | Line 3137 | yyreduce:
3137    YY_REDUCE_PRINT (yyn);
3138    switch (yyn)
3139      {
3140 <        case 27:
3141 <
3142 < /* Line 1806 of yacc.c  */
3289 < #line 409 "conf_parser.y"
3140 >        case 26:
3141 > /* Line 1787 of yacc.c  */
3142 > #line 391 "conf_parser.y"
3143      { (yyval.number) = 0; }
3144      break;
3145  
3146 <  case 29:
3147 <
3148 < /* Line 1806 of yacc.c  */
3296 < #line 411 "conf_parser.y"
3146 >  case 28:
3147 > /* Line 1787 of yacc.c  */
3148 > #line 393 "conf_parser.y"
3149      {
3150                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3151                  }
3152      break;
3153  
3154 <  case 30:
3155 <
3156 < /* Line 1806 of yacc.c  */
3305 < #line 415 "conf_parser.y"
3154 >  case 29:
3155 > /* Line 1787 of yacc.c  */
3156 > #line 397 "conf_parser.y"
3157      {
3158                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3159                  }
3160      break;
3161  
3162 <  case 31:
3163 <
3164 < /* Line 1806 of yacc.c  */
3314 < #line 419 "conf_parser.y"
3162 >  case 30:
3163 > /* Line 1787 of yacc.c  */
3164 > #line 401 "conf_parser.y"
3165      {
3166                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3167                  }
3168      break;
3169  
3170 <  case 32:
3171 <
3172 < /* Line 1806 of yacc.c  */
3323 < #line 423 "conf_parser.y"
3170 >  case 31:
3171 > /* Line 1787 of yacc.c  */
3172 > #line 405 "conf_parser.y"
3173      {
3174                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3175                  }
3176      break;
3177  
3178 <  case 33:
3179 <
3180 < /* Line 1806 of yacc.c  */
3332 < #line 427 "conf_parser.y"
3178 >  case 32:
3179 > /* Line 1787 of yacc.c  */
3180 > #line 409 "conf_parser.y"
3181      {
3182                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3183                  }
3184      break;
3185  
3186 <  case 34:
3187 <
3188 < /* Line 1806 of yacc.c  */
3341 < #line 431 "conf_parser.y"
3186 >  case 33:
3187 > /* Line 1787 of yacc.c  */
3188 > #line 413 "conf_parser.y"
3189      {
3190                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3191                  }
3192      break;
3193  
3194 +  case 34:
3195 + /* Line 1787 of yacc.c  */
3196 + #line 417 "conf_parser.y"
3197 +    {
3198 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3199 +                }
3200 +    break;
3201 +
3202    case 35:
3203 + /* Line 1787 of yacc.c  */
3204 + #line 421 "conf_parser.y"
3205 +    {
3206 +                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3207 +                }
3208 +    break;
3209  
3210 < /* Line 1806 of yacc.c  */
3211 < #line 436 "conf_parser.y"
3210 >  case 36:
3211 > /* Line 1787 of yacc.c  */
3212 > #line 426 "conf_parser.y"
3213      { (yyval.number) = 0; }
3214      break;
3215  
3216 <  case 37:
3217 <
3218 < /* Line 1806 of yacc.c  */
3357 < #line 437 "conf_parser.y"
3216 >  case 38:
3217 > /* Line 1787 of yacc.c  */
3218 > #line 427 "conf_parser.y"
3219      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3220      break;
3221  
3222 <  case 38:
3223 <
3224 < /* Line 1806 of yacc.c  */
3364 < #line 438 "conf_parser.y"
3222 >  case 39:
3223 > /* Line 1787 of yacc.c  */
3224 > #line 428 "conf_parser.y"
3225      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3226      break;
3227  
3228 <  case 39:
3229 <
3230 < /* Line 1806 of yacc.c  */
3371 < #line 439 "conf_parser.y"
3228 >  case 40:
3229 > /* Line 1787 of yacc.c  */
3230 > #line 429 "conf_parser.y"
3231      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3232      break;
3233  
3234 <  case 40:
3235 <
3236 < /* Line 1806 of yacc.c  */
3378 < #line 440 "conf_parser.y"
3234 >  case 41:
3235 > /* Line 1787 of yacc.c  */
3236 > #line 430 "conf_parser.y"
3237      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3238      break;
3239  
3240 <  case 47:
3241 <
3242 < /* Line 1806 of yacc.c  */
3385 < #line 454 "conf_parser.y"
3240 >  case 48:
3241 > /* Line 1787 of yacc.c  */
3242 > #line 444 "conf_parser.y"
3243      {
3244    if (conf_parser_ctx.pass == 2)
3245      add_conf_module(libio_basename(yylval.string));
3246   }
3247      break;
3248  
3249 <  case 48:
3250 <
3251 < /* Line 1806 of yacc.c  */
3395 < #line 460 "conf_parser.y"
3249 >  case 49:
3250 > /* Line 1787 of yacc.c  */
3251 > #line 450 "conf_parser.y"
3252      {
3253    if (conf_parser_ctx.pass == 2)
3254      mod_add_path(yylval.string);
3255   }
3256      break;
3257  
3258 <  case 72:
3259 <
3260 < /* Line 1806 of yacc.c  */
3405 < #line 485 "conf_parser.y"
3258 >  case 75:
3259 > /* Line 1787 of yacc.c  */
3260 > #line 476 "conf_parser.y"
3261      {
3262   #ifdef HAVE_LIBCRYPTO
3263    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3411 | Line 3266 | yyreduce:
3266   }
3267      break;
3268  
3269 <  case 73:
3270 <
3271 < /* Line 1806 of yacc.c  */
3417 < #line 491 "conf_parser.y"
3269 >  case 76:
3270 > /* Line 1787 of yacc.c  */
3271 > #line 482 "conf_parser.y"
3272      {
3273   #ifdef HAVE_LIBCRYPTO
3274    if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
# Line 3423 | Line 3277 | yyreduce:
3277   }
3278      break;
3279  
3280 <  case 76:
3281 <
3282 < /* Line 1806 of yacc.c  */
3429 < #line 500 "conf_parser.y"
3280 >  case 79:
3281 > /* Line 1787 of yacc.c  */
3282 > #line 491 "conf_parser.y"
3283      {
3284   #ifdef HAVE_LIBCRYPTO
3285    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3435 | Line 3288 | yyreduce:
3288   }
3289      break;
3290  
3291 <  case 77:
3292 <
3293 < /* Line 1806 of yacc.c  */
3441 < #line 506 "conf_parser.y"
3291 >  case 80:
3292 > /* Line 1787 of yacc.c  */
3293 > #line 497 "conf_parser.y"
3294      {
3295   #ifdef HAVE_LIBCRYPTO
3296    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3447 | Line 3299 | yyreduce:
3299   }
3300      break;
3301  
3302 <  case 78:
3303 <
3304 < /* Line 1806 of yacc.c  */
3453 < #line 514 "conf_parser.y"
3302 >  case 81:
3303 > /* Line 1787 of yacc.c  */
3304 > #line 505 "conf_parser.y"
3305      {
3306   #ifdef HAVE_LIBCRYPTO
3307    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3308    {
3309      if (!ServerInfo.rsa_private_key_file)
3310      {
3311 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3311 >      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3312        break;
3313      }
3314  
# Line 3466 | Line 3317 | yyreduce:
3317          SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3318                                       SSL_FILETYPE_PEM) <= 0)
3319      {
3320 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3320 >      report_crypto_errors();
3321 >      conf_error_report("Could not open/read certificate file");
3322        break;
3323      }
3324  
# Line 3475 | Line 3327 | yyreduce:
3327          SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3328                                      SSL_FILETYPE_PEM) <= 0)
3329      {
3330 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3330 >      report_crypto_errors();
3331 >      conf_error_report("Could not read RSA private key");
3332        break;
3333      }
3334  
3335      if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3336          !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3337      {
3338 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3338 >      report_crypto_errors();
3339 >      conf_error_report("Could not read RSA private key");
3340        break;
3341      }
3342    }
# Line 3490 | Line 3344 | yyreduce:
3344   }
3345      break;
3346  
3347 <  case 79:
3348 <
3349 < /* Line 1806 of yacc.c  */
3496 < #line 553 "conf_parser.y"
3347 >  case 82:
3348 > /* Line 1787 of yacc.c  */
3349 > #line 547 "conf_parser.y"
3350      {
3351   #ifdef HAVE_LIBCRYPTO
3352    if (conf_parser_ctx.pass == 1)
# Line 3512 | Line 3365 | yyreduce:
3365        ServerInfo.rsa_private_key_file = NULL;
3366      }
3367  
3368 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3368 >    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3369  
3370      if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3371      {
3372 <      yyerror("File open failed, ignoring");
3372 >      conf_error_report("File open failed, ignoring");
3373        break;
3374      }
3375  
# Line 3527 | Line 3380 | yyreduce:
3380  
3381      if (ServerInfo.rsa_private_key == NULL)
3382      {
3383 <      yyerror("Couldn't extract key, ignoring");
3383 >      conf_error_report("Couldn't extract key, ignoring");
3384        break;
3385      }
3386  
# Line 3536 | Line 3389 | yyreduce:
3389        RSA_free(ServerInfo.rsa_private_key);
3390        ServerInfo.rsa_private_key = NULL;
3391  
3392 <      yyerror("Invalid key, ignoring");
3392 >      conf_error_report("Invalid key, ignoring");
3393        break;
3394      }
3395  
# Line 3546 | Line 3399 | yyreduce:
3399        RSA_free(ServerInfo.rsa_private_key);
3400        ServerInfo.rsa_private_key = NULL;
3401  
3402 <      yyerror("Not a 2048 bit key, ignoring");
3402 >      conf_error_report("Not a 2048 bit key, ignoring");
3403      }
3404    }
3405   #endif
3406   }
3407      break;
3408  
3409 <  case 80:
3410 <
3411 < /* Line 1806 of yacc.c  */
3559 < #line 612 "conf_parser.y"
3409 >  case 83:
3410 > /* Line 1787 of yacc.c  */
3411 > #line 606 "conf_parser.y"
3412      {
3413   /* TBD - XXX: error reporting */
3414   #ifdef HAVE_LIBCRYPTO
# Line 3573 | Line 3425 | yyreduce:
3425        if (dh)
3426        {
3427          if (DH_size(dh) < 128)
3428 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3428 >          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3429          else
3430            SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3431  
# Line 3585 | Line 3437 | yyreduce:
3437   }
3438      break;
3439  
3440 <  case 81:
3441 <
3442 < /* Line 1806 of yacc.c  */
3591 < #line 640 "conf_parser.y"
3440 >  case 84:
3441 > /* Line 1787 of yacc.c  */
3442 > #line 634 "conf_parser.y"
3443      {
3444   #ifdef HAVE_LIBCRYPTO
3445    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3597 | Line 3448 | yyreduce:
3448   }
3449      break;
3450  
3451 <  case 82:
3452 <
3453 < /* Line 1806 of yacc.c  */
3603 < #line 648 "conf_parser.y"
3451 >  case 85:
3452 > /* Line 1787 of yacc.c  */
3453 > #line 642 "conf_parser.y"
3454      {
3455    /* this isn't rehashable */
3456    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3457    {
3458      if (valid_servname(yylval.string))
3459 <      DupString(ServerInfo.name, yylval.string);
3459 >      ServerInfo.name = xstrdup(yylval.string);
3460      else
3461      {
3462 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3462 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3463        exit(0);
3464      }
3465    }
3466   }
3467      break;
3468  
3469 <  case 83:
3470 <
3471 < /* Line 1806 of yacc.c  */
3622 < #line 663 "conf_parser.y"
3469 >  case 86:
3470 > /* Line 1787 of yacc.c  */
3471 > #line 657 "conf_parser.y"
3472      {
3473    /* this isn't rehashable */
3474    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3475    {
3476      if (valid_sid(yylval.string))
3477 <      DupString(ServerInfo.sid, yylval.string);
3477 >      ServerInfo.sid = xstrdup(yylval.string);
3478      else
3479      {
3480 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3480 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3481        exit(0);
3482      }
3483    }
3484   }
3485      break;
3486  
3487 <  case 84:
3488 <
3489 < /* Line 1806 of yacc.c  */
3641 < #line 678 "conf_parser.y"
3487 >  case 87:
3488 > /* Line 1787 of yacc.c  */
3489 > #line 672 "conf_parser.y"
3490      {
3491    if (conf_parser_ctx.pass == 2)
3492    {
3493      MyFree(ServerInfo.description);
3494 <    DupString(ServerInfo.description,yylval.string);
3494 >    ServerInfo.description = xstrdup(yylval.string);
3495    }
3496   }
3497      break;
3498  
3499 <  case 85:
3500 <
3501 < /* Line 1806 of yacc.c  */
3654 < #line 687 "conf_parser.y"
3499 >  case 88:
3500 > /* Line 1787 of yacc.c  */
3501 > #line 681 "conf_parser.y"
3502      {
3503    if (conf_parser_ctx.pass == 2)
3504    {
# Line 3661 | Line 3508 | yyreduce:
3508        p = '\0';
3509  
3510      MyFree(ServerInfo.network_name);
3511 <    DupString(ServerInfo.network_name, yylval.string);
3511 >    ServerInfo.network_name = xstrdup(yylval.string);
3512    }
3513   }
3514      break;
3515  
3516 <  case 86:
3517 <
3518 < /* Line 1806 of yacc.c  */
3672 < #line 701 "conf_parser.y"
3516 >  case 89:
3517 > /* Line 1787 of yacc.c  */
3518 > #line 695 "conf_parser.y"
3519      {
3520    if (conf_parser_ctx.pass == 2)
3521    {
3522      MyFree(ServerInfo.network_desc);
3523 <    DupString(ServerInfo.network_desc, yylval.string);
3523 >    ServerInfo.network_desc = xstrdup(yylval.string);
3524    }
3525   }
3526      break;
3527  
3528 <  case 87:
3529 <
3530 < /* Line 1806 of yacc.c  */
3685 < #line 710 "conf_parser.y"
3528 >  case 90:
3529 > /* Line 1787 of yacc.c  */
3530 > #line 704 "conf_parser.y"
3531      {
3532    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3533    {
# Line 3711 | Line 3556 | yyreduce:
3556   }
3557      break;
3558  
3559 <  case 88:
3560 <
3561 < /* Line 1806 of yacc.c  */
3717 < #line 738 "conf_parser.y"
3559 >  case 91:
3560 > /* Line 1787 of yacc.c  */
3561 > #line 732 "conf_parser.y"
3562      {
3563   #ifdef IPV6
3564    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3745 | Line 3589 | yyreduce:
3589   }
3590      break;
3591  
3592 <  case 89:
3593 <
3594 < /* Line 1806 of yacc.c  */
3751 < #line 768 "conf_parser.y"
3592 >  case 92:
3593 > /* Line 1787 of yacc.c  */
3594 > #line 762 "conf_parser.y"
3595      {
3596 <  if (conf_parser_ctx.pass == 2)
3596 >  if (conf_parser_ctx.pass != 2)
3597 >    break;
3598 >
3599 >  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3600    {
3601 <    recalc_fdlimit(NULL);
3601 >    char buf[IRCD_BUFSIZE];
3602  
3603 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3604 <    {
3605 <      char buf[IRCD_BUFSIZE];
3606 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3607 <      yyerror(buf);
3608 <    }
3609 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3603 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3604 >    conf_error_report(buf);
3605 >    ServerInfo.max_clients = MAXCLIENTS_MIN;
3606 >  }
3607 >  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3608 >  {
3609 >    char buf[IRCD_BUFSIZE];
3610 >
3611 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3612 >    conf_error_report(buf);
3613 >    ServerInfo.max_clients = MAXCLIENTS_MAX;
3614 >  }
3615 >  else
3616 >    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3617 > }
3618 >    break;
3619 >
3620 >  case 93:
3621 > /* Line 1787 of yacc.c  */
3622 > #line 787 "conf_parser.y"
3623      {
3624 <      char buf[IRCD_BUFSIZE];
3625 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3626 <      yyerror(buf);
3627 <    }
3628 <    else
3629 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3624 >  if (conf_parser_ctx.pass != 2)
3625 >    break;
3626 >
3627 >  if ((yyvsp[(3) - (4)].number) < 9)
3628 >  {
3629 >    conf_error_report("max_nick_length too low, setting to 9");
3630 >    ServerInfo.max_nick_length = 9;
3631    }
3632 +  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3633 +  {
3634 +    char buf[IRCD_BUFSIZE];
3635 +
3636 +    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3637 +    conf_error_report(buf);
3638 +    ServerInfo.max_nick_length = NICKLEN;
3639 +  }
3640 +  else
3641 +    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3642   }
3643      break;
3644  
3645 <  case 90:
3645 >  case 94:
3646 > /* Line 1787 of yacc.c  */
3647 > #line 809 "conf_parser.y"
3648 >    {
3649 >  if (conf_parser_ctx.pass != 2)
3650 >    break;
3651 >
3652 >  if ((yyvsp[(3) - (4)].number) < 80)
3653 >  {
3654 >    conf_error_report("max_topic_length too low, setting to 80");
3655 >    ServerInfo.max_topic_length = 80;
3656 >  }
3657 >  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3658 >  {
3659 >    char buf[IRCD_BUFSIZE];
3660 >
3661 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3662 >    conf_error_report(buf);
3663 >    ServerInfo.max_topic_length = TOPICLEN;
3664 >  }
3665 >  else
3666 >    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3667 > }
3668 >    break;
3669  
3670 < /* Line 1806 of yacc.c  */
3671 < #line 791 "conf_parser.y"
3670 >  case 95:
3671 > /* Line 1787 of yacc.c  */
3672 > #line 831 "conf_parser.y"
3673      {
3674    if (conf_parser_ctx.pass == 2)
3675      ServerInfo.hub = yylval.number;
3676   }
3677      break;
3678  
3679 <  case 98:
3680 <
3681 < /* Line 1806 of yacc.c  */
3788 < #line 806 "conf_parser.y"
3679 >  case 103:
3680 > /* Line 1787 of yacc.c  */
3681 > #line 846 "conf_parser.y"
3682      {
3683    if (conf_parser_ctx.pass == 2)
3684    {
3685      MyFree(AdminInfo.name);
3686 <    DupString(AdminInfo.name, yylval.string);
3686 >    AdminInfo.name = xstrdup(yylval.string);
3687    }
3688   }
3689      break;
3690  
3691 <  case 99:
3692 <
3693 < /* Line 1806 of yacc.c  */
3801 < #line 815 "conf_parser.y"
3691 >  case 104:
3692 > /* Line 1787 of yacc.c  */
3693 > #line 855 "conf_parser.y"
3694      {
3695    if (conf_parser_ctx.pass == 2)
3696    {
3697      MyFree(AdminInfo.email);
3698 <    DupString(AdminInfo.email, yylval.string);
3698 >    AdminInfo.email = xstrdup(yylval.string);
3699    }
3700   }
3701      break;
3702  
3703 <  case 100:
3704 <
3705 < /* Line 1806 of yacc.c  */
3814 < #line 824 "conf_parser.y"
3703 >  case 105:
3704 > /* Line 1787 of yacc.c  */
3705 > #line 864 "conf_parser.y"
3706      {
3707    if (conf_parser_ctx.pass == 2)
3708    {
3709      MyFree(AdminInfo.description);
3710 <    DupString(AdminInfo.description, yylval.string);
3710 >    AdminInfo.description = xstrdup(yylval.string);
3711    }
3712   }
3713      break;
3714  
3715 <  case 107:
3716 <
3717 < /* Line 1806 of yacc.c  */
3827 < #line 842 "conf_parser.y"
3715 >  case 112:
3716 > /* Line 1787 of yacc.c  */
3717 > #line 882 "conf_parser.y"
3718      {
3719    if (conf_parser_ctx.pass == 2)
3720      ConfigLoggingEntry.use_logging = yylval.number;
3721   }
3722      break;
3723  
3724 <  case 108:
3725 <
3726 < /* Line 1806 of yacc.c  */
3837 < #line 848 "conf_parser.y"
3724 >  case 113:
3725 > /* Line 1787 of yacc.c  */
3726 > #line 888 "conf_parser.y"
3727      {
3728 <  lfile[0] = '\0';
3729 <  ltype = 0;
3841 <  lsize = 0;
3728 >  if (conf_parser_ctx.pass == 2)
3729 >    reset_block_state();
3730   }
3731      break;
3732  
3733 <  case 109:
3734 <
3735 < /* Line 1806 of yacc.c  */
3848 < #line 853 "conf_parser.y"
3733 >  case 114:
3734 > /* Line 1787 of yacc.c  */
3735 > #line 892 "conf_parser.y"
3736      {
3737 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3851 <    log_add_file(ltype, lsize, lfile);
3852 < }
3737 >  if (conf_parser_ctx.pass != 2)
3738      break;
3739  
3740 <  case 116:
3741 <
3742 < /* Line 1806 of yacc.c  */
3858 < #line 865 "conf_parser.y"
3859 <    {
3860 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3740 >  if (block_state.type.value && block_state.file.buf[0])
3741 >    log_set_file(block_state.type.value, block_state.size.value,
3742 >                 block_state.file.buf);
3743   }
3744      break;
3745  
3746 <  case 117:
3747 <
3748 < /* Line 1806 of yacc.c  */
3867 < #line 870 "conf_parser.y"
3746 >  case 121:
3747 > /* Line 1787 of yacc.c  */
3748 > #line 908 "conf_parser.y"
3749      {
3750 <  lsize = (yyvsp[(3) - (4)].number);
3870 < }
3750 >  if (conf_parser_ctx.pass != 2)
3751      break;
3752  
3753 <  case 118:
3874 <
3875 < /* Line 1806 of yacc.c  */
3876 < #line 873 "conf_parser.y"
3877 <    {
3878 <  lsize = 0;
3753 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3754   }
3755      break;
3756  
3757 <  case 119:
3758 <
3759 < /* Line 1806 of yacc.c  */
3885 < #line 878 "conf_parser.y"
3757 >  case 122:
3758 > /* Line 1787 of yacc.c  */
3759 > #line 916 "conf_parser.y"
3760      {
3761 <  if (conf_parser_ctx.pass == 2)
3888 <    ltype = 0;
3761 >  block_state.size.value = (yyvsp[(3) - (4)].number);
3762   }
3763      break;
3764  
3765    case 123:
3766 <
3767 < /* Line 1806 of yacc.c  */
3895 < #line 885 "conf_parser.y"
3766 > /* Line 1787 of yacc.c  */
3767 > #line 919 "conf_parser.y"
3768      {
3769 <  if (conf_parser_ctx.pass == 2)
3898 <    ltype = LOG_TYPE_USER;
3769 >  block_state.size.value = 0;
3770   }
3771      break;
3772  
3773    case 124:
3774 <
3775 < /* Line 1806 of yacc.c  */
3905 < #line 889 "conf_parser.y"
3774 > /* Line 1787 of yacc.c  */
3775 > #line 924 "conf_parser.y"
3776      {
3777    if (conf_parser_ctx.pass == 2)
3778 <    ltype = LOG_TYPE_OPER;
3778 >    block_state.type.value = 0;
3779   }
3780      break;
3781  
3782 <  case 125:
3783 <
3784 < /* Line 1806 of yacc.c  */
3915 < #line 893 "conf_parser.y"
3782 >  case 128:
3783 > /* Line 1787 of yacc.c  */
3784 > #line 931 "conf_parser.y"
3785      {
3786    if (conf_parser_ctx.pass == 2)
3787 <    ltype = LOG_TYPE_GLINE;
3787 >    block_state.type.value = LOG_TYPE_USER;
3788   }
3789      break;
3790  
3791 <  case 126:
3792 <
3793 < /* Line 1806 of yacc.c  */
3925 < #line 897 "conf_parser.y"
3791 >  case 129:
3792 > /* Line 1787 of yacc.c  */
3793 > #line 935 "conf_parser.y"
3794      {
3795    if (conf_parser_ctx.pass == 2)
3796 <    ltype = LOG_TYPE_DLINE;
3796 >    block_state.type.value = LOG_TYPE_OPER;
3797   }
3798      break;
3799  
3800 <  case 127:
3801 <
3802 < /* Line 1806 of yacc.c  */
3935 < #line 901 "conf_parser.y"
3800 >  case 130:
3801 > /* Line 1787 of yacc.c  */
3802 > #line 939 "conf_parser.y"
3803      {
3804    if (conf_parser_ctx.pass == 2)
3805 <    ltype = LOG_TYPE_KLINE;
3805 >    block_state.type.value = LOG_TYPE_GLINE;
3806   }
3807      break;
3808  
3809 <  case 128:
3810 <
3811 < /* Line 1806 of yacc.c  */
3945 < #line 905 "conf_parser.y"
3809 >  case 131:
3810 > /* Line 1787 of yacc.c  */
3811 > #line 943 "conf_parser.y"
3812      {
3813    if (conf_parser_ctx.pass == 2)
3814 <    ltype = LOG_TYPE_KILL;
3814 >    block_state.type.value = LOG_TYPE_DLINE;
3815   }
3816      break;
3817  
3818 <  case 129:
3819 <
3820 < /* Line 1806 of yacc.c  */
3955 < #line 909 "conf_parser.y"
3818 >  case 132:
3819 > /* Line 1787 of yacc.c  */
3820 > #line 947 "conf_parser.y"
3821      {
3822    if (conf_parser_ctx.pass == 2)
3823 <    ltype = LOG_TYPE_DEBUG;
3823 >    block_state.type.value = LOG_TYPE_KLINE;
3824   }
3825      break;
3826  
3827 <  case 130:
3828 <
3829 < /* Line 1806 of yacc.c  */
3965 < #line 919 "conf_parser.y"
3827 >  case 133:
3828 > /* Line 1787 of yacc.c  */
3829 > #line 951 "conf_parser.y"
3830      {
3831    if (conf_parser_ctx.pass == 2)
3832 <  {
3969 <    yy_conf = make_conf_item(OPER_TYPE);
3970 <    yy_aconf = map_to_conf(yy_conf);
3971 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3972 <  }
3973 <  else
3974 <  {
3975 <    MyFree(class_name);
3976 <    class_name = NULL;
3977 <  }
3832 >    block_state.type.value = LOG_TYPE_KILL;
3833   }
3834      break;
3835  
3836 <  case 131:
3837 <
3838 < /* Line 1806 of yacc.c  */
3984 < #line 932 "conf_parser.y"
3836 >  case 134:
3837 > /* Line 1787 of yacc.c  */
3838 > #line 955 "conf_parser.y"
3839      {
3840    if (conf_parser_ctx.pass == 2)
3841 <  {
3842 <    struct CollectItem *yy_tmp;
3843 <    dlink_node *ptr;
3990 <    dlink_node *next_ptr;
3991 <
3992 <    conf_add_class_to_conf(yy_conf, class_name);
3993 <
3994 <    /* Now, make sure there is a copy of the "base" given oper
3995 <     * block in each of the collected copies
3996 <     */
3841 >    block_state.type.value = LOG_TYPE_DEBUG;
3842 > }
3843 >    break;
3844  
3845 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3845 >  case 135:
3846 > /* Line 1787 of yacc.c  */
3847 > #line 965 "conf_parser.y"
3848      {
3849 <      struct AccessItem *new_aconf;
3850 <      struct ConfItem *new_conf;
4002 <      yy_tmp = ptr->data;
4003 <
4004 <      new_conf = make_conf_item(OPER_TYPE);
4005 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4006 <
4007 <      new_aconf->flags = yy_aconf->flags;
4008 <
4009 <      if (yy_conf->name != NULL)
4010 <        DupString(new_conf->name, yy_conf->name);
4011 <      if (yy_tmp->user != NULL)
4012 <        DupString(new_aconf->user, yy_tmp->user);
4013 <      else
4014 <        DupString(new_aconf->user, "*");
4015 <      if (yy_tmp->host != NULL)
4016 <        DupString(new_aconf->host, yy_tmp->host);
4017 <      else
4018 <        DupString(new_aconf->host, "*");
4019 <
4020 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
4021 <                                     &new_aconf->bits);
4022 <
4023 <      conf_add_class_to_conf(new_conf, class_name);
4024 <      if (yy_aconf->passwd != NULL)
4025 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4026 <
4027 <      new_aconf->port = yy_aconf->port;
4028 < #ifdef HAVE_LIBCRYPTO
4029 <      if (yy_aconf->rsa_public_key_file != NULL)
4030 <      {
4031 <        BIO *file;
4032 <
4033 <        DupString(new_aconf->rsa_public_key_file,
4034 <                  yy_aconf->rsa_public_key_file);
4035 <
4036 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
4037 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
4038 <                                                           NULL, 0, NULL);
4039 <        BIO_set_close(file, BIO_CLOSE);
4040 <        BIO_free(file);
4041 <      }
4042 < #endif
4043 <
4044 < #ifdef HAVE_LIBCRYPTO
4045 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
4046 <          && yy_tmp->host)
4047 < #else
4048 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
4049 < #endif
4050 <      {
4051 <        conf_add_class_to_conf(new_conf, class_name);
4052 <        if (yy_tmp->name != NULL)
4053 <          DupString(new_conf->name, yy_tmp->name);
4054 <      }
4055 <
4056 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4057 <      free_collect_item(yy_tmp);
4058 <    }
4059 <
4060 <    yy_conf = NULL;
4061 <    yy_aconf = NULL;
4062 <
3849 >  if (conf_parser_ctx.pass != 2)
3850 >    break;
3851  
3852 <    MyFree(class_name);
3853 <    class_name = NULL;
4066 <  }
3852 >  reset_block_state();
3853 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3854   }
3855      break;
3856  
3857 <  case 143:
3858 <
3859 < /* Line 1806 of yacc.c  */
4073 < #line 1022 "conf_parser.y"
3857 >  case 136:
3858 > /* Line 1787 of yacc.c  */
3859 > #line 972 "conf_parser.y"
3860      {
3861 <  if (conf_parser_ctx.pass == 2)
4076 <  {
4077 <    if (strlen(yylval.string) > OPERNICKLEN)
4078 <      yylval.string[OPERNICKLEN] = '\0';
3861 >  dlink_node *ptr = NULL;
3862  
3863 <    MyFree(yy_conf->name);
4081 <    DupString(yy_conf->name, yylval.string);
4082 <  }
4083 < }
3863 >  if (conf_parser_ctx.pass != 2)
3864      break;
3865  
3866 <  case 144:
3866 >  if (!block_state.name.buf[0])
3867 >    break;
3868 > #ifdef HAVE_LIBCRYPTO
3869 >  if (!(block_state.file.buf[0] ||
3870 >        block_state.rpass.buf[0]))
3871 >    break;
3872 > #else
3873 >  if (!block_state.rpass.buf[0])
3874 >    break;
3875 > #endif
3876  
3877 < /* Line 1806 of yacc.c  */
4089 < #line 1034 "conf_parser.y"
4090 <    {
4091 <  if (conf_parser_ctx.pass == 2)
3877 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
3878    {
3879 +    struct MaskItem *conf = NULL;
3880      struct split_nuh_item nuh;
3881  
3882 <    nuh.nuhmask  = yylval.string;
3882 >    nuh.nuhmask  = ptr->data;
3883      nuh.nickptr  = NULL;
3884 <    nuh.userptr  = userbuf;
3885 <    nuh.hostptr  = hostbuf;
4099 <
3884 >    nuh.userptr  = block_state.user.buf;
3885 >    nuh.hostptr  = block_state.host.buf;
3886      nuh.nicksize = 0;
3887 <    nuh.usersize = sizeof(userbuf);
3888 <    nuh.hostsize = sizeof(hostbuf);
4103 <
3887 >    nuh.usersize = sizeof(block_state.user.buf);
3888 >    nuh.hostsize = sizeof(block_state.host.buf);
3889      split_nuh(&nuh);
3890  
3891 <    if (yy_aconf->user == NULL)
3892 <    {
3893 <      DupString(yy_aconf->user, userbuf);
3894 <      DupString(yy_aconf->host, hostbuf);
3895 <
3896 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
3897 <                                    &yy_aconf->bits);
3898 <    }
3899 <    else
3900 <    {
3901 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3902 <
4118 <      DupString(yy_tmp->user, userbuf);
4119 <      DupString(yy_tmp->host, hostbuf);
4120 <
4121 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4122 <    }
4123 <  }
4124 < }
4125 <    break;
4126 <
4127 <  case 145:
4128 <
4129 < /* Line 1806 of yacc.c  */
4130 < #line 1071 "conf_parser.y"
4131 <    {
4132 <  if (conf_parser_ctx.pass == 2)
4133 <  {
4134 <    if (yy_aconf->passwd != NULL)
4135 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4136 <
4137 <    MyFree(yy_aconf->passwd);
4138 <    DupString(yy_aconf->passwd, yylval.string);
4139 <  }
4140 < }
4141 <    break;
3891 >    conf        = conf_make(CONF_OPER);
3892 >    conf->name  = xstrdup(block_state.name.buf);
3893 >    conf->user  = xstrdup(block_state.user.buf);
3894 >    conf->host  = xstrdup(block_state.host.buf);
3895 >
3896 >    if (block_state.rpass.buf[0])
3897 >      conf->passwd = xstrdup(block_state.rpass.buf);
3898 >
3899 >    conf->flags = block_state.flags.value;
3900 >    conf->modes = block_state.modes.value;
3901 >    conf->port  = block_state.port.value;
3902 >    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3903  
3904 <  case 146:
3904 >    conf_add_class_to_conf(conf, block_state.class.buf);
3905  
4145 /* Line 1806 of yacc.c  */
4146 #line 1083 "conf_parser.y"
4147    {
4148  if (conf_parser_ctx.pass == 2)
4149  {
4150    if (yylval.number)
4151      SetConfEncrypted(yy_aconf);
4152    else
4153      ClearConfEncrypted(yy_aconf);
4154  }
4155 }
4156    break;
4157
4158  case 147:
4159
4160 /* Line 1806 of yacc.c  */
4161 #line 1094 "conf_parser.y"
4162    {
3906   #ifdef HAVE_LIBCRYPTO
3907 <  if (conf_parser_ctx.pass == 2)
4165 <  {
4166 <    BIO *file;
4167 <
4168 <    if (yy_aconf->rsa_public_key != NULL)
4169 <    {
4170 <      RSA_free(yy_aconf->rsa_public_key);
4171 <      yy_aconf->rsa_public_key = NULL;
4172 <    }
4173 <
4174 <    if (yy_aconf->rsa_public_key_file != NULL)
3907 >    if (block_state.file.buf[0])
3908      {
3909 <      MyFree(yy_aconf->rsa_public_key_file);
3910 <      yy_aconf->rsa_public_key_file = NULL;
4178 <    }
3909 >      BIO *file = NULL;
3910 >      RSA *pkey = NULL;
3911  
3912 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3913 <    file = BIO_new_file(yylval.string, "r");
3914 <
3915 <    if (file == NULL)
3916 <    {
4185 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
4186 <      break;
4187 <    }
3912 >      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3913 >      {
3914 >        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3915 >        break;
3916 >      }
3917  
3918 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3918 >      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3919 >        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3920  
3921 <    if (yy_aconf->rsa_public_key == NULL)
3922 <    {
3923 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4194 <      break;
3921 >      conf->rsa_public_key = pkey;
3922 >      BIO_set_close(file, BIO_CLOSE);
3923 >      BIO_free(file);
3924      }
4196
4197    BIO_set_close(file, BIO_CLOSE);
4198    BIO_free(file);
4199  }
3925   #endif /* HAVE_LIBCRYPTO */
3926 +  }
3927   }
3928      break;
3929  
3930    case 148:
3931 <
3932 < /* Line 1806 of yacc.c  */
4207 < #line 1136 "conf_parser.y"
3931 > /* Line 1787 of yacc.c  */
3932 > #line 1047 "conf_parser.y"
3933      {
3934    if (conf_parser_ctx.pass == 2)
3935 <  {
4211 <    MyFree(class_name);
4212 <    DupString(class_name, yylval.string);
4213 <  }
3935 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3936   }
3937      break;
3938  
3939    case 149:
3940 <
3941 < /* Line 1806 of yacc.c  */
4220 < #line 1145 "conf_parser.y"
3940 > /* Line 1787 of yacc.c  */
3941 > #line 1053 "conf_parser.y"
3942      {
3943    if (conf_parser_ctx.pass == 2)
3944 <    yy_aconf->modes = 0;
3944 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3945   }
3946      break;
3947  
3948 <  case 153:
3949 <
3950 < /* Line 1806 of yacc.c  */
4230 < #line 1152 "conf_parser.y"
3948 >  case 150:
3949 > /* Line 1787 of yacc.c  */
3950 > #line 1059 "conf_parser.y"
3951      {
3952    if (conf_parser_ctx.pass == 2)
3953 <    yy_aconf->modes |= UMODE_BOTS;
3953 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3954   }
3955      break;
3956  
3957 <  case 154:
3958 <
3959 < /* Line 1806 of yacc.c  */
4240 < #line 1156 "conf_parser.y"
3957 >  case 151:
3958 > /* Line 1787 of yacc.c  */
3959 > #line 1065 "conf_parser.y"
3960      {
3961    if (conf_parser_ctx.pass == 2)
3962 <    yy_aconf->modes |= UMODE_CCONN;
3962 >  {
3963 >    if (yylval.number)
3964 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3965 >    else
3966 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3967 >  }
3968   }
3969      break;
3970  
3971 <  case 155:
3972 <
3973 < /* Line 1806 of yacc.c  */
4250 < #line 1160 "conf_parser.y"
3971 >  case 152:
3972 > /* Line 1787 of yacc.c  */
3973 > #line 1076 "conf_parser.y"
3974      {
3975    if (conf_parser_ctx.pass == 2)
3976 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3976 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3977   }
3978      break;
3979  
3980 <  case 156:
3981 <
3982 < /* Line 1806 of yacc.c  */
4260 < #line 1164 "conf_parser.y"
3980 >  case 153:
3981 > /* Line 1787 of yacc.c  */
3982 > #line 1082 "conf_parser.y"
3983      {
3984    if (conf_parser_ctx.pass == 2)
3985 <    yy_aconf->modes |= UMODE_DEAF;
3985 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3986   }
3987      break;
3988  
3989 <  case 157:
3990 <
3991 < /* Line 1806 of yacc.c  */
4270 < #line 1168 "conf_parser.y"
3989 >  case 154:
3990 > /* Line 1787 of yacc.c  */
3991 > #line 1088 "conf_parser.y"
3992      {
3993    if (conf_parser_ctx.pass == 2)
3994 <    yy_aconf->modes |= UMODE_DEBUG;
3994 >    block_state.modes.value = 0;
3995   }
3996      break;
3997  
3998    case 158:
3999 <
4000 < /* Line 1806 of yacc.c  */
4280 < #line 1172 "conf_parser.y"
3999 > /* Line 1787 of yacc.c  */
4000 > #line 1095 "conf_parser.y"
4001      {
4002    if (conf_parser_ctx.pass == 2)
4003 <    yy_aconf->modes |= UMODE_FULL;
4003 >    block_state.modes.value |= UMODE_BOTS;
4004   }
4005      break;
4006  
4007    case 159:
4008 <
4009 < /* Line 1806 of yacc.c  */
4290 < #line 1176 "conf_parser.y"
4008 > /* Line 1787 of yacc.c  */
4009 > #line 1099 "conf_parser.y"
4010      {
4011    if (conf_parser_ctx.pass == 2)
4012 <    yy_aconf->modes |= UMODE_HIDDEN;
4012 >    block_state.modes.value |= UMODE_CCONN;
4013   }
4014      break;
4015  
4016    case 160:
4017 <
4018 < /* Line 1806 of yacc.c  */
4300 < #line 1180 "conf_parser.y"
4017 > /* Line 1787 of yacc.c  */
4018 > #line 1103 "conf_parser.y"
4019      {
4020    if (conf_parser_ctx.pass == 2)
4021 <    yy_aconf->modes |= UMODE_SKILL;
4021 >    block_state.modes.value |= UMODE_CCONN_FULL;
4022   }
4023      break;
4024  
4025    case 161:
4026 <
4027 < /* Line 1806 of yacc.c  */
4310 < #line 1184 "conf_parser.y"
4026 > /* Line 1787 of yacc.c  */
4027 > #line 1107 "conf_parser.y"
4028      {
4029    if (conf_parser_ctx.pass == 2)
4030 <    yy_aconf->modes |= UMODE_NCHANGE;
4030 >    block_state.modes.value |= UMODE_DEAF;
4031   }
4032      break;
4033  
4034    case 162:
4035 <
4036 < /* Line 1806 of yacc.c  */
4320 < #line 1188 "conf_parser.y"
4035 > /* Line 1787 of yacc.c  */
4036 > #line 1111 "conf_parser.y"
4037      {
4038    if (conf_parser_ctx.pass == 2)
4039 <    yy_aconf->modes |= UMODE_REJ;
4039 >    block_state.modes.value |= UMODE_DEBUG;
4040   }
4041      break;
4042  
4043    case 163:
4044 <
4045 < /* Line 1806 of yacc.c  */
4330 < #line 1192 "conf_parser.y"
4044 > /* Line 1787 of yacc.c  */
4045 > #line 1115 "conf_parser.y"
4046      {
4047    if (conf_parser_ctx.pass == 2)
4048 <    yy_aconf->modes |= UMODE_UNAUTH;
4048 >    block_state.modes.value |= UMODE_FULL;
4049   }
4050      break;
4051  
4052    case 164:
4053 <
4054 < /* Line 1806 of yacc.c  */
4340 < #line 1196 "conf_parser.y"
4053 > /* Line 1787 of yacc.c  */
4054 > #line 1119 "conf_parser.y"
4055      {
4056    if (conf_parser_ctx.pass == 2)
4057 <    yy_aconf->modes |= UMODE_SPY;
4057 >    block_state.modes.value |= UMODE_HIDDEN;
4058   }
4059      break;
4060  
4061    case 165:
4062 <
4063 < /* Line 1806 of yacc.c  */
4350 < #line 1200 "conf_parser.y"
4062 > /* Line 1787 of yacc.c  */
4063 > #line 1123 "conf_parser.y"
4064      {
4065    if (conf_parser_ctx.pass == 2)
4066 <    yy_aconf->modes |= UMODE_EXTERNAL;
4066 >    block_state.modes.value |= UMODE_SKILL;
4067   }
4068      break;
4069  
4070    case 166:
4071 <
4072 < /* Line 1806 of yacc.c  */
4360 < #line 1204 "conf_parser.y"
4071 > /* Line 1787 of yacc.c  */
4072 > #line 1127 "conf_parser.y"
4073      {
4074    if (conf_parser_ctx.pass == 2)
4075 <    yy_aconf->modes |= UMODE_OPERWALL;
4075 >    block_state.modes.value |= UMODE_NCHANGE;
4076   }
4077      break;
4078  
4079    case 167:
4080 <
4081 < /* Line 1806 of yacc.c  */
4370 < #line 1208 "conf_parser.y"
4080 > /* Line 1787 of yacc.c  */
4081 > #line 1131 "conf_parser.y"
4082      {
4083    if (conf_parser_ctx.pass == 2)
4084 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4084 >    block_state.modes.value |= UMODE_REJ;
4085   }
4086      break;
4087  
4088    case 168:
4089 <
4090 < /* Line 1806 of yacc.c  */
4380 < #line 1212 "conf_parser.y"
4089 > /* Line 1787 of yacc.c  */
4090 > #line 1135 "conf_parser.y"
4091      {
4092    if (conf_parser_ctx.pass == 2)
4093 <    yy_aconf->modes |= UMODE_INVISIBLE;
4093 >    block_state.modes.value |= UMODE_UNAUTH;
4094   }
4095      break;
4096  
4097    case 169:
4098 <
4099 < /* Line 1806 of yacc.c  */
4390 < #line 1216 "conf_parser.y"
4098 > /* Line 1787 of yacc.c  */
4099 > #line 1139 "conf_parser.y"
4100      {
4101    if (conf_parser_ctx.pass == 2)
4102 <    yy_aconf->modes |= UMODE_WALLOP;
4102 >    block_state.modes.value |= UMODE_SPY;
4103   }
4104      break;
4105  
4106    case 170:
4107 <
4108 < /* Line 1806 of yacc.c  */
4400 < #line 1220 "conf_parser.y"
4107 > /* Line 1787 of yacc.c  */
4108 > #line 1143 "conf_parser.y"
4109      {
4110    if (conf_parser_ctx.pass == 2)
4111 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4111 >    block_state.modes.value |= UMODE_EXTERNAL;
4112   }
4113      break;
4114  
4115    case 171:
4116 <
4117 < /* Line 1806 of yacc.c  */
4410 < #line 1224 "conf_parser.y"
4116 > /* Line 1787 of yacc.c  */
4117 > #line 1147 "conf_parser.y"
4118      {
4119    if (conf_parser_ctx.pass == 2)
4120 <    yy_aconf->modes |= UMODE_CALLERID;
4120 >    block_state.modes.value |= UMODE_OPERWALL;
4121   }
4122      break;
4123  
4124    case 172:
4125 <
4126 < /* Line 1806 of yacc.c  */
4420 < #line 1228 "conf_parser.y"
4125 > /* Line 1787 of yacc.c  */
4126 > #line 1151 "conf_parser.y"
4127      {
4128    if (conf_parser_ctx.pass == 2)
4129 <    yy_aconf->modes |= UMODE_LOCOPS;
4129 >    block_state.modes.value |= UMODE_SERVNOTICE;
4130   }
4131      break;
4132  
4133    case 173:
4134 <
4135 < /* Line 1806 of yacc.c  */
4430 < #line 1234 "conf_parser.y"
4134 > /* Line 1787 of yacc.c  */
4135 > #line 1155 "conf_parser.y"
4136      {
4137    if (conf_parser_ctx.pass == 2)
4138 <    yy_aconf->port = 0;
4138 >    block_state.modes.value |= UMODE_INVISIBLE;
4139   }
4140      break;
4141  
4142 <  case 177:
4143 <
4144 < /* Line 1806 of yacc.c  */
4440 < #line 1241 "conf_parser.y"
4142 >  case 174:
4143 > /* Line 1787 of yacc.c  */
4144 > #line 1159 "conf_parser.y"
4145      {
4146    if (conf_parser_ctx.pass == 2)
4147 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4147 >    block_state.modes.value |= UMODE_WALLOP;
4148   }
4149      break;
4150  
4151 <  case 178:
4152 <
4153 < /* Line 1806 of yacc.c  */
4450 < #line 1245 "conf_parser.y"
4151 >  case 175:
4152 > /* Line 1787 of yacc.c  */
4153 > #line 1163 "conf_parser.y"
4154      {
4155    if (conf_parser_ctx.pass == 2)
4156 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4156 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4157   }
4158      break;
4159  
4160 <  case 179:
4161 <
4162 < /* Line 1806 of yacc.c  */
4460 < #line 1249 "conf_parser.y"
4160 >  case 176:
4161 > /* Line 1787 of yacc.c  */
4162 > #line 1167 "conf_parser.y"
4163      {
4164    if (conf_parser_ctx.pass == 2)
4165 <    yy_aconf->port |= OPER_FLAG_K;
4165 >    block_state.modes.value |= UMODE_CALLERID;
4166   }
4167      break;
4168  
4169 <  case 180:
4170 <
4171 < /* Line 1806 of yacc.c  */
4470 < #line 1253 "conf_parser.y"
4169 >  case 177:
4170 > /* Line 1787 of yacc.c  */
4171 > #line 1171 "conf_parser.y"
4172      {
4173    if (conf_parser_ctx.pass == 2)
4174 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4174 >    block_state.modes.value |= UMODE_LOCOPS;
4175   }
4176      break;
4177  
4178 <  case 181:
4179 <
4180 < /* Line 1806 of yacc.c  */
4480 < #line 1257 "conf_parser.y"
4178 >  case 178:
4179 > /* Line 1787 of yacc.c  */
4180 > #line 1175 "conf_parser.y"
4181      {
4182    if (conf_parser_ctx.pass == 2)
4183 <    yy_aconf->port |= OPER_FLAG_DLINE;
4183 >    block_state.modes.value |= UMODE_REGONLY;
4184   }
4185      break;
4186  
4187 <  case 182:
4188 <
4189 < /* Line 1806 of yacc.c  */
4490 < #line 1261 "conf_parser.y"
4187 >  case 179:
4188 > /* Line 1787 of yacc.c  */
4189 > #line 1181 "conf_parser.y"
4190      {
4191    if (conf_parser_ctx.pass == 2)
4192 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4192 >    block_state.port.value = 0;
4193   }
4194      break;
4195  
4196    case 183:
4197 <
4198 < /* Line 1806 of yacc.c  */
4500 < #line 1265 "conf_parser.y"
4197 > /* Line 1787 of yacc.c  */
4198 > #line 1188 "conf_parser.y"
4199      {
4200    if (conf_parser_ctx.pass == 2)
4201 <    yy_aconf->port |= OPER_FLAG_X;
4201 >    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
4202   }
4203      break;
4204  
4205    case 184:
4206 <
4207 < /* Line 1806 of yacc.c  */
4510 < #line 1269 "conf_parser.y"
4206 > /* Line 1787 of yacc.c  */
4207 > #line 1192 "conf_parser.y"
4208      {
4209    if (conf_parser_ctx.pass == 2)
4210 <    yy_aconf->port |= OPER_FLAG_GLINE;
4210 >    block_state.port.value |= OPER_FLAG_REMOTE;
4211   }
4212      break;
4213  
4214    case 185:
4215 <
4216 < /* Line 1806 of yacc.c  */
4520 < #line 1273 "conf_parser.y"
4215 > /* Line 1787 of yacc.c  */
4216 > #line 1196 "conf_parser.y"
4217      {
4218    if (conf_parser_ctx.pass == 2)
4219 <    yy_aconf->port |= OPER_FLAG_DIE;
4219 >    block_state.port.value |= OPER_FLAG_K;
4220   }
4221      break;
4222  
4223    case 186:
4224 <
4225 < /* Line 1806 of yacc.c  */
4530 < #line 1277 "conf_parser.y"
4224 > /* Line 1787 of yacc.c  */
4225 > #line 1200 "conf_parser.y"
4226      {
4227    if (conf_parser_ctx.pass == 2)
4228 <    yy_aconf->port |= OPER_FLAG_RESTART;
4228 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4229   }
4230      break;
4231  
4232    case 187:
4233 <
4234 < /* Line 1806 of yacc.c  */
4540 < #line 1281 "conf_parser.y"
4233 > /* Line 1787 of yacc.c  */
4234 > #line 1204 "conf_parser.y"
4235      {
4236    if (conf_parser_ctx.pass == 2)
4237 <    yy_aconf->port |= OPER_FLAG_REHASH;
4237 >    block_state.port.value |= OPER_FLAG_DLINE;
4238   }
4239      break;
4240  
4241    case 188:
4242 <
4243 < /* Line 1806 of yacc.c  */
4550 < #line 1285 "conf_parser.y"
4242 > /* Line 1787 of yacc.c  */
4243 > #line 1208 "conf_parser.y"
4244      {
4245    if (conf_parser_ctx.pass == 2)
4246 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4246 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4247   }
4248      break;
4249  
4250    case 189:
4251 <
4252 < /* Line 1806 of yacc.c  */
4560 < #line 1289 "conf_parser.y"
4251 > /* Line 1787 of yacc.c  */
4252 > #line 1212 "conf_parser.y"
4253      {
4254    if (conf_parser_ctx.pass == 2)
4255 <    yy_aconf->port |= OPER_FLAG_N;
4255 >    block_state.port.value |= OPER_FLAG_X;
4256   }
4257      break;
4258  
4259    case 190:
4260 <
4261 < /* Line 1806 of yacc.c  */
4570 < #line 1293 "conf_parser.y"
4260 > /* Line 1787 of yacc.c  */
4261 > #line 1216 "conf_parser.y"
4262      {
4263    if (conf_parser_ctx.pass == 2)
4264 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4264 >    block_state.port.value |= OPER_FLAG_GLINE;
4265   }
4266      break;
4267  
4268    case 191:
4269 <
4270 < /* Line 1806 of yacc.c  */
4580 < #line 1297 "conf_parser.y"
4269 > /* Line 1787 of yacc.c  */
4270 > #line 1220 "conf_parser.y"
4271      {
4272    if (conf_parser_ctx.pass == 2)
4273 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4273 >    block_state.port.value |= OPER_FLAG_DIE;
4274   }
4275      break;
4276  
4277    case 192:
4278 <
4279 < /* Line 1806 of yacc.c  */
4590 < #line 1301 "conf_parser.y"
4278 > /* Line 1787 of yacc.c  */
4279 > #line 1224 "conf_parser.y"
4280      {
4281    if (conf_parser_ctx.pass == 2)
4282 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4282 >    block_state.port.value |= OPER_FLAG_RESTART;
4283   }
4284      break;
4285  
4286    case 193:
4287 <
4288 < /* Line 1806 of yacc.c  */
4600 < #line 1305 "conf_parser.y"
4287 > /* Line 1787 of yacc.c  */
4288 > #line 1228 "conf_parser.y"
4289      {
4290    if (conf_parser_ctx.pass == 2)
4291 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4291 >    block_state.port.value |= OPER_FLAG_REHASH;
4292   }
4293      break;
4294  
4295    case 194:
4296 <
4297 < /* Line 1806 of yacc.c  */
4610 < #line 1309 "conf_parser.y"
4296 > /* Line 1787 of yacc.c  */
4297 > #line 1232 "conf_parser.y"
4298      {
4299    if (conf_parser_ctx.pass == 2)
4300 <    yy_aconf->port |= OPER_FLAG_MODULE;
4300 >    block_state.port.value |= OPER_FLAG_ADMIN;
4301   }
4302      break;
4303  
4304    case 195:
4305 <
4306 < /* Line 1806 of yacc.c  */
4620 < #line 1319 "conf_parser.y"
4305 > /* Line 1787 of yacc.c  */
4306 > #line 1236 "conf_parser.y"
4307      {
4308 <  if (conf_parser_ctx.pass == 1)
4309 <  {
4624 <    yy_conf = make_conf_item(CLASS_TYPE);
4625 <    yy_class = map_to_conf(yy_conf);
4626 <  }
4308 >  if (conf_parser_ctx.pass == 2)
4309 >    block_state.port.value |= OPER_FLAG_OPERWALL;
4310   }
4311      break;
4312  
4313    case 196:
4314 + /* Line 1787 of yacc.c  */
4315 + #line 1240 "conf_parser.y"
4316 +    {
4317 +  if (conf_parser_ctx.pass == 2)
4318 +    block_state.port.value |= OPER_FLAG_GLOBOPS;
4319 + }
4320 +    break;
4321  
4322 < /* Line 1806 of yacc.c  */
4323 < #line 1326 "conf_parser.y"
4322 >  case 197:
4323 > /* Line 1787 of yacc.c  */
4324 > #line 1244 "conf_parser.y"
4325      {
4326 <  if (conf_parser_ctx.pass == 1)
4327 <  {
4328 <    struct ConfItem *cconf = NULL;
4329 <    struct ClassItem *class = NULL;
4326 >  if (conf_parser_ctx.pass == 2)
4327 >    block_state.port.value |= OPER_FLAG_OPER_SPY;
4328 > }
4329 >    break;
4330  
4331 <    if (yy_class_name == NULL)
4332 <      delete_conf_item(yy_conf);
4333 <    else
4331 >  case 198:
4332 > /* Line 1787 of yacc.c  */
4333 > #line 1248 "conf_parser.y"
4334      {
4335 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4335 >  if (conf_parser_ctx.pass == 2)
4336 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4337 > }
4338 >    break;
4339  
4340 <      if (cconf != NULL)                /* The class existed already */
4341 <      {
4342 <        int user_count = 0;
4340 >  case 199:
4341 > /* Line 1787 of yacc.c  */
4342 > #line 1252 "conf_parser.y"
4343 >    {
4344 >  if (conf_parser_ctx.pass == 2)
4345 >    block_state.port.value |= OPER_FLAG_SET;
4346 > }
4347 >    break;
4348  
4349 <        rebuild_cidr_class(cconf, yy_class);
4349 >  case 200:
4350 > /* Line 1787 of yacc.c  */
4351 > #line 1256 "conf_parser.y"
4352 >    {
4353 >  if (conf_parser_ctx.pass == 2)
4354 >    block_state.port.value |= OPER_FLAG_MODULE;
4355 > }
4356 >    break;
4357  
4358 <        class = map_to_conf(cconf);
4358 >  case 201:
4359 > /* Line 1787 of yacc.c  */
4360 > #line 1266 "conf_parser.y"
4361 >    {
4362 >  if (conf_parser_ctx.pass != 1)
4363 >    break;
4364  
4365 <        user_count = class->curr_user_count;
4655 <        memcpy(class, yy_class, sizeof(*class));
4656 <        class->curr_user_count = user_count;
4657 <        class->active = 1;
4365 >  reset_block_state();
4366  
4367 <        delete_conf_item(yy_conf);
4367 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4368 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4369 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4370 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4371 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4372 > }
4373 >    break;
4374  
4375 <        MyFree(cconf->name);            /* Allows case change of class name */
4376 <        cconf->name = yy_class_name;
4377 <      }
4378 <      else      /* Brand new class */
4379 <      {
4666 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4667 <        yy_conf->name = yy_class_name;
4668 <        yy_class->active = 1;
4669 <      }
4670 <    }
4375 >  case 202:
4376 > /* Line 1787 of yacc.c  */
4377 > #line 1278 "conf_parser.y"
4378 >    {
4379 >  struct ClassItem *class = NULL;
4380  
4381 <    yy_class_name = NULL;
4673 <  }
4674 < }
4381 >  if (conf_parser_ctx.pass != 1)
4382      break;
4383  
4384 <  case 213:
4384 >  if (!block_state.class.buf[0])
4385 >    break;
4386  
4387 < /* Line 1806 of yacc.c  */
4388 < #line 1384 "conf_parser.y"
4389 <    {
4390 <  if (conf_parser_ctx.pass == 1)
4387 >  if (!(class = class_find(block_state.class.buf, 0)))
4388 >    class = class_make();
4389 >
4390 >  class->active = 1;
4391 >  MyFree(class->name);
4392 >  class->name = xstrdup(block_state.class.buf);
4393 >  class->ping_freq = block_state.ping_freq.value;
4394 >  class->max_perip = block_state.max_perip.value;
4395 >  class->con_freq = block_state.con_freq.value;
4396 >  class->max_total = block_state.max_total.value;
4397 >  class->max_global = block_state.max_global.value;
4398 >  class->max_local = block_state.max_local.value;
4399 >  class->max_ident = block_state.max_ident.value;
4400 >  class->max_sendq = block_state.max_sendq.value;
4401 >  class->max_recvq = block_state.max_recvq.value;
4402 >
4403 >  if (block_state.min_idle.value > block_state.max_idle.value)
4404    {
4405 <    MyFree(yy_class_name);
4406 <    DupString(yy_class_name, yylval.string);
4405 >    block_state.min_idle.value = 0;
4406 >    block_state.max_idle.value = 0;
4407 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4408    }
4409 +
4410 +  class->flags = block_state.flags.value;
4411 +  class->min_idle = block_state.min_idle.value;
4412 +  class->max_idle = block_state.max_idle.value;
4413 +
4414 +  if (class->number_per_cidr && block_state.number_per_cidr.value)
4415 +    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4416 +        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4417 +      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4418 +          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4419 +        rebuild_cidr_list(class);
4420 +
4421 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4422 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4423 +  class->number_per_cidr = block_state.number_per_cidr.value;
4424   }
4425      break;
4426  
4427 <  case 214:
4428 <
4429 < /* Line 1806 of yacc.c  */
4693 < #line 1393 "conf_parser.y"
4427 >  case 222:
4428 > /* Line 1787 of yacc.c  */
4429 > #line 1344 "conf_parser.y"
4430      {
4431    if (conf_parser_ctx.pass == 1)
4432 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4432 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4433   }
4434      break;
4435  
4436 <  case 215:
4437 <
4438 < /* Line 1806 of yacc.c  */
4703 < #line 1399 "conf_parser.y"
4436 >  case 223:
4437 > /* Line 1787 of yacc.c  */
4438 > #line 1350 "conf_parser.y"
4439      {
4440    if (conf_parser_ctx.pass == 1)
4441 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4441 >    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4442   }
4443      break;
4444  
4445 <  case 216:
4446 <
4447 < /* Line 1806 of yacc.c  */
4713 < #line 1405 "conf_parser.y"
4445 >  case 224:
4446 > /* Line 1787 of yacc.c  */
4447 > #line 1356 "conf_parser.y"
4448      {
4449    if (conf_parser_ctx.pass == 1)
4450 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4450 >    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4451   }
4452      break;
4453  
4454 <  case 217:
4455 <
4456 < /* Line 1806 of yacc.c  */
4723 < #line 1411 "conf_parser.y"
4454 >  case 225:
4455 > /* Line 1787 of yacc.c  */
4456 > #line 1362 "conf_parser.y"
4457      {
4458    if (conf_parser_ctx.pass == 1)
4459 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4459 >    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4460   }
4461      break;
4462  
4463 <  case 218:
4464 <
4465 < /* Line 1806 of yacc.c  */
4733 < #line 1417 "conf_parser.y"
4463 >  case 226:
4464 > /* Line 1787 of yacc.c  */
4465 > #line 1368 "conf_parser.y"
4466      {
4467    if (conf_parser_ctx.pass == 1)
4468 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4468 >    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4469   }
4470      break;
4471  
4472 <  case 219:
4473 <
4474 < /* Line 1806 of yacc.c  */
4743 < #line 1423 "conf_parser.y"
4472 >  case 227:
4473 > /* Line 1787 of yacc.c  */
4474 > #line 1374 "conf_parser.y"
4475      {
4476    if (conf_parser_ctx.pass == 1)
4477 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4477 >    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4478   }
4479      break;
4480  
4481 <  case 220:
4482 <
4483 < /* Line 1806 of yacc.c  */
4753 < #line 1429 "conf_parser.y"
4481 >  case 228:
4482 > /* Line 1787 of yacc.c  */
4483 > #line 1380 "conf_parser.y"
4484      {
4485    if (conf_parser_ctx.pass == 1)
4486 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4486 >    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4487   }
4488      break;
4489  
4490 <  case 221:
4491 <
4492 < /* Line 1806 of yacc.c  */
4763 < #line 1435 "conf_parser.y"
4490 >  case 229:
4491 > /* Line 1787 of yacc.c  */
4492 > #line 1386 "conf_parser.y"
4493      {
4494    if (conf_parser_ctx.pass == 1)
4495 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4495 >    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4496   }
4497      break;
4498  
4499 <  case 222:
4500 <
4501 < /* Line 1806 of yacc.c  */
4773 < #line 1441 "conf_parser.y"
4499 >  case 230:
4500 > /* Line 1787 of yacc.c  */
4501 > #line 1392 "conf_parser.y"
4502      {
4503    if (conf_parser_ctx.pass == 1)
4504 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4504 >    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4505   }
4506      break;
4507  
4508 <  case 223:
4509 <
4510 < /* Line 1806 of yacc.c  */
4783 < #line 1447 "conf_parser.y"
4508 >  case 231:
4509 > /* Line 1787 of yacc.c  */
4510 > #line 1398 "conf_parser.y"
4511      {
4512    if (conf_parser_ctx.pass == 1)
4513 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4513 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4514 >      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4515   }
4516      break;
4517  
4518 <  case 224:
4519 <
4520 < /* Line 1806 of yacc.c  */
4793 < #line 1453 "conf_parser.y"
4518 >  case 232:
4519 > /* Line 1787 of yacc.c  */
4520 > #line 1405 "conf_parser.y"
4521      {
4522    if (conf_parser_ctx.pass == 1)
4523 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4523 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4524   }
4525      break;
4526  
4527 <  case 225:
4528 <
4529 < /* Line 1806 of yacc.c  */
4803 < #line 1459 "conf_parser.y"
4527 >  case 233:
4528 > /* Line 1787 of yacc.c  */
4529 > #line 1411 "conf_parser.y"
4530      {
4531    if (conf_parser_ctx.pass == 1)
4532 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4532 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4533   }
4534      break;
4535  
4536 <  case 226:
4537 <
4538 < /* Line 1806 of yacc.c  */
4813 < #line 1468 "conf_parser.y"
4536 >  case 234:
4537 > /* Line 1787 of yacc.c  */
4538 > #line 1417 "conf_parser.y"
4539      {
4540 <  if (conf_parser_ctx.pass == 2)
4541 <  {
4817 <    listener_address = NULL;
4818 <    listener_flags = 0;
4819 <  }
4540 >  if (conf_parser_ctx.pass == 1)
4541 >    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4542   }
4543      break;
4544  
4545 <  case 227:
4545 >  case 235:
4546 > /* Line 1787 of yacc.c  */
4547 > #line 1423 "conf_parser.y"
4548 >    {
4549 >  if (conf_parser_ctx.pass != 1)
4550 >    break;
4551  
4552 < /* Line 1806 of yacc.c  */
4553 < #line 1475 "conf_parser.y"
4552 >  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4553 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4554 > }
4555 >    break;
4556 >
4557 >  case 236:
4558 > /* Line 1787 of yacc.c  */
4559 > #line 1432 "conf_parser.y"
4560      {
4561 <  if (conf_parser_ctx.pass == 2)
4562 <  {
4563 <    MyFree(listener_address);
4564 <    listener_address = NULL;
4565 <  }
4561 >  if (conf_parser_ctx.pass != 1)
4562 >    break;
4563 >
4564 >  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4565 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4566   }
4567      break;
4568  
4569 <  case 228:
4569 >  case 237:
4570 > /* Line 1787 of yacc.c  */
4571 > #line 1441 "conf_parser.y"
4572 >    {
4573 >  if (conf_parser_ctx.pass == 1)
4574 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4575 > }
4576 >    break;
4577  
4578 < /* Line 1806 of yacc.c  */
4579 < #line 1484 "conf_parser.y"
4578 >  case 241:
4579 > /* Line 1787 of yacc.c  */
4580 > #line 1448 "conf_parser.y"
4581      {
4582 <  listener_flags = 0;
4582 >  if (conf_parser_ctx.pass == 1)
4583 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4584   }
4585      break;
4586  
4587 <  case 232:
4587 >  case 242:
4588 > /* Line 1787 of yacc.c  */
4589 > #line 1452 "conf_parser.y"
4590 >    {
4591 >  if (conf_parser_ctx.pass == 1)
4592 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4593 > }
4594 >    break;
4595  
4596 < /* Line 1806 of yacc.c  */
4597 < #line 1490 "conf_parser.y"
4596 >  case 243:
4597 > /* Line 1787 of yacc.c  */
4598 > #line 1462 "conf_parser.y"
4599      {
4600    if (conf_parser_ctx.pass == 2)
4601 <    listener_flags |= LISTENER_SSL;
4601 >    reset_block_state();
4602   }
4603      break;
4604  
4605 <  case 233:
4605 >  case 245:
4606 > /* Line 1787 of yacc.c  */
4607 > #line 1468 "conf_parser.y"
4608 >    {
4609 >  block_state.flags.value = 0;
4610 > }
4611 >    break;
4612  
4613 < /* Line 1806 of yacc.c  */
4614 < #line 1494 "conf_parser.y"
4613 >  case 249:
4614 > /* Line 1787 of yacc.c  */
4615 > #line 1474 "conf_parser.y"
4616      {
4617    if (conf_parser_ctx.pass == 2)
4618 <    listener_flags |= LISTENER_HIDDEN;
4618 >    block_state.flags.value |= LISTENER_SSL;
4619   }
4620      break;
4621  
4622 <  case 234:
4623 <
4624 < /* Line 1806 of yacc.c  */
4868 < #line 1498 "conf_parser.y"
4622 >  case 250:
4623 > /* Line 1787 of yacc.c  */
4624 > #line 1478 "conf_parser.y"
4625      {
4626    if (conf_parser_ctx.pass == 2)
4627 <    listener_flags |= LISTENER_SERVER;
4627 >    block_state.flags.value |= LISTENER_HIDDEN;
4628   }
4629      break;
4630  
4631 <  case 242:
4632 <
4633 < /* Line 1806 of yacc.c  */
4634 < #line 1508 "conf_parser.y"
4635 <    { listener_flags = 0; }
4631 >  case 251:
4632 > /* Line 1787 of yacc.c  */
4633 > #line 1482 "conf_parser.y"
4634 >    {
4635 >  if (conf_parser_ctx.pass == 2)
4636 >   block_state.flags.value |= LISTENER_SERVER;
4637 > }
4638      break;
4639  
4640 <  case 246:
4640 >  case 259:
4641 > /* Line 1787 of yacc.c  */
4642 > #line 1490 "conf_parser.y"
4643 >    { block_state.flags.value = 0; }
4644 >    break;
4645  
4646 < /* Line 1806 of yacc.c  */
4647 < #line 1513 "conf_parser.y"
4646 >  case 263:
4647 > /* Line 1787 of yacc.c  */
4648 > #line 1495 "conf_parser.y"
4649      {
4650    if (conf_parser_ctx.pass == 2)
4651    {
4652 <    if ((listener_flags & LISTENER_SSL))
4652 >    if (block_state.flags.value & LISTENER_SSL)
4653   #ifdef HAVE_LIBCRYPTO
4654        if (!ServerInfo.server_ctx)
4655   #endif
4656        {
4657 <        yyerror("SSL not available - port closed");
4657 >        conf_error_report("SSL not available - port closed");
4658          break;
4659        }
4660 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4660 >    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4661    }
4662   }
4663      break;
4664  
4665 <  case 247:
4666 <
4667 < /* Line 1806 of yacc.c  */
4905 < #line 1527 "conf_parser.y"
4665 >  case 264:
4666 > /* Line 1787 of yacc.c  */
4667 > #line 1509 "conf_parser.y"
4668      {
4669    if (conf_parser_ctx.pass == 2)
4670    {
4671      int i;
4672  
4673 <    if ((listener_flags & LISTENER_SSL))
4673 >    if (block_state.flags.value & LISTENER_SSL)
4674   #ifdef HAVE_LIBCRYPTO
4675        if (!ServerInfo.server_ctx)
4676   #endif
4677        {
4678 <        yyerror("SSL not available - port closed");
4678 >        conf_error_report("SSL not available - port closed");
4679          break;
4680        }
4681  
4682      for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4683 <      add_listener(i, listener_address, listener_flags);
4683 >      add_listener(i, block_state.addr.buf, block_state.flags.value);
4684    }
4685   }
4686      break;
4687  
4688 <  case 248:
4689 <
4690 < /* Line 1806 of yacc.c  */
4929 < #line 1547 "conf_parser.y"
4688 >  case 265:
4689 > /* Line 1787 of yacc.c  */
4690 > #line 1529 "conf_parser.y"
4691      {
4692    if (conf_parser_ctx.pass == 2)
4693 <  {
4933 <    MyFree(listener_address);
4934 <    DupString(listener_address, yylval.string);
4935 <  }
4693 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4694   }
4695      break;
4696  
4697 <  case 249:
4698 <
4699 < /* Line 1806 of yacc.c  */
4942 < #line 1556 "conf_parser.y"
4697 >  case 266:
4698 > /* Line 1787 of yacc.c  */
4699 > #line 1535 "conf_parser.y"
4700      {
4701    if (conf_parser_ctx.pass == 2)
4702 <  {
4946 <    MyFree(listener_address);
4947 <    DupString(listener_address, yylval.string);
4948 <  }
4702 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4703   }
4704      break;
4705  
4706 <  case 250:
4707 <
4708 < /* Line 1806 of yacc.c  */
4955 < #line 1568 "conf_parser.y"
4706 >  case 267:
4707 > /* Line 1787 of yacc.c  */
4708 > #line 1544 "conf_parser.y"
4709      {
4710    if (conf_parser_ctx.pass == 2)
4711 <  {
4959 <    yy_conf = make_conf_item(CLIENT_TYPE);
4960 <    yy_aconf = map_to_conf(yy_conf);
4961 <  }
4962 <  else
4963 <  {
4964 <    MyFree(class_name);
4965 <    class_name = NULL;
4966 <  }
4711 >    reset_block_state();
4712   }
4713      break;
4714  
4715 <  case 251:
4716 <
4717 < /* Line 1806 of yacc.c  */
4973 < #line 1580 "conf_parser.y"
4974 <    {
4975 <  if (conf_parser_ctx.pass == 2)
4976 <  {
4977 <    struct CollectItem *yy_tmp = NULL;
4978 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4979 <
4980 <    if (yy_aconf->user && yy_aconf->host)
4715 >  case 268:
4716 > /* Line 1787 of yacc.c  */
4717 > #line 1548 "conf_parser.y"
4718      {
4719 <      conf_add_class_to_conf(yy_conf, class_name);
4983 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4984 <    }
4985 <    else
4986 <      delete_conf_item(yy_conf);
4987 <
4988 <    /* copy over settings from first struct */
4989 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4990 <    {
4991 <      struct AccessItem *new_aconf;
4992 <      struct ConfItem *new_conf;
4993 <
4994 <      new_conf = make_conf_item(CLIENT_TYPE);
4995 <      new_aconf = map_to_conf(new_conf);
4996 <
4997 <      yy_tmp = ptr->data;
4719 >  dlink_node *ptr = NULL;
4720  
4721 <      assert(yy_tmp->user && yy_tmp->host);
5000 <
5001 <      if (yy_aconf->passwd != NULL)
5002 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5003 <      if (yy_conf->name != NULL)
5004 <        DupString(new_conf->name, yy_conf->name);
5005 <      if (yy_aconf->passwd != NULL)
5006 <        DupString(new_aconf->passwd, yy_aconf->passwd);
5007 <
5008 <      new_aconf->flags = yy_aconf->flags;
5009 <      new_aconf->port  = yy_aconf->port;
5010 <
5011 <      DupString(new_aconf->user, yy_tmp->user);
5012 <      collapse(new_aconf->user);
5013 <
5014 <      DupString(new_aconf->host, yy_tmp->host);
5015 <      collapse(new_aconf->host);
5016 <
5017 <      conf_add_class_to_conf(new_conf, class_name);
5018 <      add_conf_by_address(CONF_CLIENT, new_aconf);
5019 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
5020 <      free_collect_item(yy_tmp);
5021 <    }
5022 <
5023 <    MyFree(class_name);
5024 <    class_name = NULL;
5025 <    yy_conf = NULL;
5026 <    yy_aconf = NULL;
5027 <  }
5028 < }
4721 >  if (conf_parser_ctx.pass != 2)
4722      break;
4723  
4724 <  case 263:
5032 <
5033 < /* Line 1806 of yacc.c  */
5034 < #line 1642 "conf_parser.y"
5035 <    {
5036 <  if (conf_parser_ctx.pass == 2)
4724 >  DLINK_FOREACH(ptr, block_state.mask.list.head)
4725    {
4726 <    struct CollectItem *yy_tmp = NULL;
4726 >    struct MaskItem *conf = NULL;
4727      struct split_nuh_item nuh;
4728  
4729 <    nuh.nuhmask  = yylval.string;
4729 >    nuh.nuhmask  = ptr->data;
4730      nuh.nickptr  = NULL;
4731 <    nuh.userptr  = userbuf;
4732 <    nuh.hostptr  = hostbuf;
5045 <
4731 >    nuh.userptr  = block_state.user.buf;
4732 >    nuh.hostptr  = block_state.host.buf;
4733      nuh.nicksize = 0;
4734 <    nuh.usersize = sizeof(userbuf);
4735 <    nuh.hostsize = sizeof(hostbuf);
5049 <
4734 >    nuh.usersize = sizeof(block_state.user.buf);
4735 >    nuh.hostsize = sizeof(block_state.host.buf);
4736      split_nuh(&nuh);
4737  
4738 <    if (yy_aconf->user == NULL)
4739 <    {
4740 <      DupString(yy_aconf->user, userbuf);
4741 <      DupString(yy_aconf->host, hostbuf);
4742 <    }
4743 <    else
4744 <    {
4745 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4738 >    conf        = conf_make(CONF_CLIENT);
4739 >    conf->user  = xstrdup(collapse(block_state.user.buf));
4740 >    conf->host  = xstrdup(collapse(block_state.host.buf));
4741 >
4742 >    if (block_state.rpass.buf[0])
4743 >      conf->passwd = xstrdup(block_state.rpass.buf);
4744 >    if (block_state.name.buf[0])
4745 >      conf->name = xstrdup(block_state.name.buf);
4746  
4747 <      DupString(yy_tmp->user, userbuf);
4748 <      DupString(yy_tmp->host, hostbuf);
4747 >    conf->flags = block_state.flags.value;
4748 >    conf->port  = block_state.port.value;
4749  
4750 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4751 <    }
4750 >    conf_add_class_to_conf(conf, block_state.class.buf);
4751 >    add_conf_by_address(CONF_CLIENT, conf);
4752    }
4753   }
4754      break;
4755  
4756 <  case 264:
4757 <
4758 < /* Line 1806 of yacc.c  */
5073 < #line 1679 "conf_parser.y"
4756 >  case 280:
4757 > /* Line 1787 of yacc.c  */
4758 > #line 1591 "conf_parser.y"
4759      {
4760    if (conf_parser_ctx.pass == 2)
4761 <  {
5077 <    /* be paranoid */
5078 <    if (yy_aconf->passwd != NULL)
5079 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5080 <
5081 <    MyFree(yy_aconf->passwd);
5082 <    DupString(yy_aconf->passwd, yylval.string);
5083 <  }
4761 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4762   }
4763      break;
4764  
4765 <  case 265:
4766 <
4767 < /* Line 1806 of yacc.c  */
5090 < #line 1692 "conf_parser.y"
4765 >  case 281:
4766 > /* Line 1787 of yacc.c  */
4767 > #line 1597 "conf_parser.y"
4768      {
4769    if (conf_parser_ctx.pass == 2)
4770 <  {
5094 <    MyFree(class_name);
5095 <    DupString(class_name, yylval.string);
5096 <  }
4770 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4771   }
4772      break;
4773  
4774 <  case 266:
4774 >  case 282:
4775 > /* Line 1787 of yacc.c  */
4776 > #line 1603 "conf_parser.y"
4777 >    {
4778 >  if (conf_parser_ctx.pass == 2)
4779 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4780 > }
4781 >    break;
4782  
4783 < /* Line 1806 of yacc.c  */
4784 < #line 1701 "conf_parser.y"
4783 >  case 283:
4784 > /* Line 1787 of yacc.c  */
4785 > #line 1609 "conf_parser.y"
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788    {
4789      if (yylval.number)
4790 <      SetConfEncrypted(yy_aconf);
4790 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4791      else
4792 <      ClearConfEncrypted(yy_aconf);
4792 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4793    }
4794   }
4795      break;
4796  
4797 <  case 267:
4798 <
4799 < /* Line 1806 of yacc.c  */
5118 < #line 1712 "conf_parser.y"
4797 >  case 284:
4798 > /* Line 1787 of yacc.c  */
4799 > #line 1620 "conf_parser.y"
4800      {
4801 +  if (conf_parser_ctx.pass == 2)
4802 +    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4803   }
4804      break;
4805  
4806 <  case 271:
4807 <
4808 < /* Line 1806 of yacc.c  */
5126 < #line 1717 "conf_parser.y"
4806 >  case 288:
4807 > /* Line 1787 of yacc.c  */
4808 > #line 1627 "conf_parser.y"
4809      {
4810    if (conf_parser_ctx.pass == 2)
4811 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4811 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4812   }
4813      break;
4814  
4815 <  case 272:
4816 <
4817 < /* Line 1806 of yacc.c  */
5136 < #line 1721 "conf_parser.y"
4815 >  case 289:
4816 > /* Line 1787 of yacc.c  */
4817 > #line 1631 "conf_parser.y"
4818      {
4819    if (conf_parser_ctx.pass == 2)
4820 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4820 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4821   }
4822      break;
4823  
4824 <  case 273:
4825 <
4826 < /* Line 1806 of yacc.c  */
5146 < #line 1725 "conf_parser.y"
4824 >  case 290:
4825 > /* Line 1787 of yacc.c  */
4826 > #line 1635 "conf_parser.y"
4827      {
4828    if (conf_parser_ctx.pass == 2)
4829 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4829 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4830   }
4831      break;
4832  
4833 <  case 274:
4834 <
4835 < /* Line 1806 of yacc.c  */
5156 < #line 1729 "conf_parser.y"
4833 >  case 291:
4834 > /* Line 1787 of yacc.c  */
4835 > #line 1639 "conf_parser.y"
4836      {
4837    if (conf_parser_ctx.pass == 2)
4838 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4838 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4839   }
4840      break;
4841  
4842 <  case 275:
4843 <
4844 < /* Line 1806 of yacc.c  */
5166 < #line 1733 "conf_parser.y"
4842 >  case 292:
4843 > /* Line 1787 of yacc.c  */
4844 > #line 1643 "conf_parser.y"
4845      {
4846    if (conf_parser_ctx.pass == 2)
4847 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4847 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4848   }
4849      break;
4850  
4851 <  case 276:
4852 <
4853 < /* Line 1806 of yacc.c  */
5176 < #line 1737 "conf_parser.y"
4851 >  case 293:
4852 > /* Line 1787 of yacc.c  */
4853 > #line 1647 "conf_parser.y"
4854      {
4855    if (conf_parser_ctx.pass == 2)
4856 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4856 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4857   }
4858      break;
4859  
4860 <  case 277:
4861 <
4862 < /* Line 1806 of yacc.c  */
5186 < #line 1741 "conf_parser.y"
4860 >  case 294:
4861 > /* Line 1787 of yacc.c  */
4862 > #line 1651 "conf_parser.y"
4863      {
4864    if (conf_parser_ctx.pass == 2)
4865 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4865 >    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4866   }
4867      break;
4868  
4869 <  case 278:
4870 <
4871 < /* Line 1806 of yacc.c  */
5196 < #line 1745 "conf_parser.y"
4869 >  case 295:
4870 > /* Line 1787 of yacc.c  */
4871 > #line 1655 "conf_parser.y"
4872      {
4873    if (conf_parser_ctx.pass == 2)
4874 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4874 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4875   }
4876      break;
4877  
4878 <  case 279:
4879 <
4880 < /* Line 1806 of yacc.c  */
5206 < #line 1749 "conf_parser.y"
4878 >  case 296:
4879 > /* Line 1787 of yacc.c  */
4880 > #line 1659 "conf_parser.y"
4881      {
4882    if (conf_parser_ctx.pass == 2)
4883 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4883 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4884   }
4885      break;
4886  
4887 <  case 280:
4888 <
4889 < /* Line 1806 of yacc.c  */
5216 < #line 1756 "conf_parser.y"
4887 >  case 297:
4888 > /* Line 1787 of yacc.c  */
4889 > #line 1663 "conf_parser.y"
4890      {
4891    if (conf_parser_ctx.pass == 2)
4892 <  {
5220 <    MyFree(yy_conf->name);
5221 <
5222 <    if (strlen(yylval.string) < HOSTLEN)
5223 <    {    
5224 <      DupString(yy_conf->name, yylval.string);
5225 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
5226 <    }
5227 <    else
5228 <    {
5229 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
5230 <      yy_conf->name = NULL;
5231 <    }
5232 <  }
4892 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4893   }
4894      break;
4895  
4896 <  case 281:
4897 <
4898 < /* Line 1806 of yacc.c  */
5239 < #line 1775 "conf_parser.y"
4896 >  case 298:
4897 > /* Line 1787 of yacc.c  */
4898 > #line 1669 "conf_parser.y"
4899      {
4900 <  if (conf_parser_ctx.pass == 2)
4900 >  if (conf_parser_ctx.pass != 2)
4901 >    break;
4902 >
4903 >  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4904    {
4905 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4906 <    MyFree(yy_conf->name);
5245 <    DupString(yy_conf->name, yylval.string);
4905 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4906 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4907    }
4908 +  else
4909 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4910   }
4911      break;
4912  
4913 <  case 282:
4914 <
4915 < /* Line 1806 of yacc.c  */
5253 < #line 1785 "conf_parser.y"
4913 >  case 299:
4914 > /* Line 1787 of yacc.c  */
4915 > #line 1683 "conf_parser.y"
4916      {
4917 <  if (conf_parser_ctx.pass == 2)
5256 <  {
5257 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
5258 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5259 <  }
5260 < }
4917 >  if (conf_parser_ctx.pass != 2)
4918      break;
4919  
4920 <  case 283:
4920 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4921 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4922 > }
4923 >    break;
4924  
4925 < /* Line 1806 of yacc.c  */
4926 < #line 1798 "conf_parser.y"
4925 >  case 300:
4926 > /* Line 1787 of yacc.c  */
4927 > #line 1692 "conf_parser.y"
4928      {
4929 <  if (conf_parser_ctx.pass == 2)
5269 <  {
5270 <    MyFree(resv_reason);
5271 <    resv_reason = NULL;
5272 <  }
5273 < }
4929 >  if (conf_parser_ctx.pass != 2)
4930      break;
4931  
4932 <  case 284:
4932 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4933 >  block_state.port.value = (yyvsp[(3) - (4)].number);
4934 > }
4935 >    break;
4936  
4937 < /* Line 1806 of yacc.c  */
4938 < #line 1805 "conf_parser.y"
4937 >  case 301:
4938 > /* Line 1787 of yacc.c  */
4939 > #line 1705 "conf_parser.y"
4940      {
4941 <  if (conf_parser_ctx.pass == 2)
4942 <  {
4943 <    MyFree(resv_reason);
4944 <    resv_reason = NULL;
4945 <  }
4941 >  if (conf_parser_ctx.pass != 2)
4942 >    break;
4943 >
4944 >  reset_block_state();
4945 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4946   }
4947      break;
4948  
4949 <  case 291:
4949 >  case 302:
4950 > /* Line 1787 of yacc.c  */
4951 > #line 1712 "conf_parser.y"
4952 >    {
4953 >  if (conf_parser_ctx.pass != 2)
4954 >    break;
4955 >
4956 >  create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4957 > }
4958 >    break;
4959  
4960 < /* Line 1806 of yacc.c  */
4961 < #line 1817 "conf_parser.y"
4960 >  case 309:
4961 > /* Line 1787 of yacc.c  */
4962 > #line 1723 "conf_parser.y"
4963      {
4964    if (conf_parser_ctx.pass == 2)
4965 <  {
5296 <    MyFree(resv_reason);
5297 <    DupString(resv_reason, yylval.string);
5298 <  }
4965 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4966   }
4967      break;
4968  
4969 <  case 292:
4970 <
4971 < /* Line 1806 of yacc.c  */
5305 < #line 1826 "conf_parser.y"
4969 >  case 310:
4970 > /* Line 1787 of yacc.c  */
4971 > #line 1729 "conf_parser.y"
4972      {
4973    if (conf_parser_ctx.pass == 2)
4974 <  {
5309 <    if (IsChanPrefix(*yylval.string))
5310 <    {
5311 <      char def_reason[] = "No reason";
5312 <
5313 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5314 <    }
5315 <  }
5316 <  /* ignore it for now.. but we really should make a warning if
5317 <   * its an erroneous name --fl_ */
4974 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4975   }
4976      break;
4977  
4978 <  case 293:
4979 <
4980 < /* Line 1806 of yacc.c  */
5324 < #line 1841 "conf_parser.y"
4978 >  case 311:
4979 > /* Line 1787 of yacc.c  */
4980 > #line 1735 "conf_parser.y"
4981      {
4982    if (conf_parser_ctx.pass == 2)
4983 <  {
5328 <    char def_reason[] = "No reason";
5329 <
5330 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5331 <  }
4983 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4984   }
4985      break;
4986  
4987 <  case 299:
4988 <
4989 < /* Line 1806 of yacc.c  */
5338 < #line 1859 "conf_parser.y"
4987 >  case 317:
4988 > /* Line 1787 of yacc.c  */
4989 > #line 1750 "conf_parser.y"
4990      {
4991    if (conf_parser_ctx.pass == 2)
4992    {
4993      if (valid_servname(yylval.string))
4994      {
4995 <      yy_conf = make_conf_item(SERVICE_TYPE);
4996 <      DupString(yy_conf->name, yylval.string);
4995 >      struct MaskItem *conf = conf_make(CONF_SERVICE);
4996 >      conf->name = xstrdup(yylval.string);
4997      }
4998    }
4999   }
5000      break;
5001  
5002 <  case 300:
5003 <
5004 < /* Line 1806 of yacc.c  */
5354 < #line 1874 "conf_parser.y"
5002 >  case 318:
5003 > /* Line 1787 of yacc.c  */
5004 > #line 1765 "conf_parser.y"
5005      {
5006 <  if (conf_parser_ctx.pass == 2)
5357 <  {
5358 <    yy_conf = make_conf_item(ULINE_TYPE);
5359 <    yy_match_item = map_to_conf(yy_conf);
5360 <    yy_match_item->action = SHARED_ALL;
5361 <  }
5362 < }
5006 >  if (conf_parser_ctx.pass != 2)
5007      break;
5008  
5009 <  case 301:
5009 >  reset_block_state();
5010  
5011 < /* Line 1806 of yacc.c  */
5012 < #line 1882 "conf_parser.y"
5013 <    {
5014 <  if (conf_parser_ctx.pass == 2)
5371 <  {
5372 <    yy_conf = NULL;
5373 <  }
5011 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5012 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5013 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5014 >  block_state.flags.value = SHARED_ALL;
5015   }
5016      break;
5017  
5018 <  case 308:
5018 >  case 319:
5019 > /* Line 1787 of yacc.c  */
5020 > #line 1776 "conf_parser.y"
5021 >    {
5022 >  struct MaskItem *conf = NULL;
5023 >
5024 >  if (conf_parser_ctx.pass != 2)
5025 >    break;
5026  
5027 < /* Line 1806 of yacc.c  */
5028 < #line 1893 "conf_parser.y"
5027 >  conf = conf_make(CONF_ULINE);
5028 >  conf->flags = block_state.flags.value;
5029 >  conf->name = xstrdup(block_state.name.buf);
5030 >  conf->user = xstrdup(block_state.user.buf);
5031 >  conf->host = xstrdup(block_state.host.buf);
5032 > }
5033 >    break;
5034 >
5035 >  case 326:
5036 > /* Line 1787 of yacc.c  */
5037 > #line 1793 "conf_parser.y"
5038      {
5039    if (conf_parser_ctx.pass == 2)
5040 <  {
5384 <    MyFree(yy_conf->name);
5385 <    DupString(yy_conf->name, yylval.string);
5386 <  }
5040 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5041   }
5042      break;
5043  
5044 <  case 309:
5045 <
5046 < /* Line 1806 of yacc.c  */
5393 < #line 1902 "conf_parser.y"
5044 >  case 327:
5045 > /* Line 1787 of yacc.c  */
5046 > #line 1799 "conf_parser.y"
5047      {
5048    if (conf_parser_ctx.pass == 2)
5049    {
# Line 5398 | Line 5051 | yyreduce:
5051  
5052      nuh.nuhmask  = yylval.string;
5053      nuh.nickptr  = NULL;
5054 <    nuh.userptr  = userbuf;
5055 <    nuh.hostptr  = hostbuf;
5054 >    nuh.userptr  = block_state.user.buf;
5055 >    nuh.hostptr  = block_state.host.buf;
5056  
5057      nuh.nicksize = 0;
5058 <    nuh.usersize = sizeof(userbuf);
5059 <    nuh.hostsize = sizeof(hostbuf);
5058 >    nuh.usersize = sizeof(block_state.user.buf);
5059 >    nuh.hostsize = sizeof(block_state.host.buf);
5060  
5061      split_nuh(&nuh);
5409
5410    DupString(yy_match_item->user, userbuf);
5411    DupString(yy_match_item->host, hostbuf);
5062    }
5063   }
5064      break;
5065  
5066 <  case 310:
5067 <
5068 < /* Line 1806 of yacc.c  */
5419 < #line 1924 "conf_parser.y"
5066 >  case 328:
5067 > /* Line 1787 of yacc.c  */
5068 > #line 1818 "conf_parser.y"
5069      {
5070    if (conf_parser_ctx.pass == 2)
5071 <    yy_match_item->action = 0;
5071 >    block_state.flags.value = 0;
5072   }
5073      break;
5074  
5075 <  case 314:
5076 <
5077 < /* Line 1806 of yacc.c  */
5429 < #line 1931 "conf_parser.y"
5075 >  case 332:
5076 > /* Line 1787 of yacc.c  */
5077 > #line 1825 "conf_parser.y"
5078      {
5079    if (conf_parser_ctx.pass == 2)
5080 <    yy_match_item->action |= SHARED_KLINE;
5080 >    block_state.flags.value |= SHARED_KLINE;
5081   }
5082      break;
5083  
5084 <  case 315:
5085 <
5086 < /* Line 1806 of yacc.c  */
5439 < #line 1935 "conf_parser.y"
5084 >  case 333:
5085 > /* Line 1787 of yacc.c  */
5086 > #line 1829 "conf_parser.y"
5087      {
5088    if (conf_parser_ctx.pass == 2)
5089 <    yy_match_item->action |= SHARED_UNKLINE;
5089 >    block_state.flags.value |= SHARED_UNKLINE;
5090   }
5091      break;
5092  
5093 <  case 316:
5094 <
5095 < /* Line 1806 of yacc.c  */
5449 < #line 1939 "conf_parser.y"
5093 >  case 334:
5094 > /* Line 1787 of yacc.c  */
5095 > #line 1833 "conf_parser.y"
5096      {
5097    if (conf_parser_ctx.pass == 2)
5098 <    yy_match_item->action |= SHARED_DLINE;
5098 >    block_state.flags.value |= SHARED_DLINE;
5099   }
5100      break;
5101  
5102 <  case 317:
5103 <
5104 < /* Line 1806 of yacc.c  */
5459 < #line 1943 "conf_parser.y"
5102 >  case 335:
5103 > /* Line 1787 of yacc.c  */
5104 > #line 1837 "conf_parser.y"
5105      {
5106    if (conf_parser_ctx.pass == 2)
5107 <    yy_match_item->action |= SHARED_UNDLINE;
5107 >    block_state.flags.value |= SHARED_UNDLINE;
5108   }
5109      break;
5110  
5111 <  case 318:
5112 <
5113 < /* Line 1806 of yacc.c  */
5469 < #line 1947 "conf_parser.y"
5111 >  case 336:
5112 > /* Line 1787 of yacc.c  */
5113 > #line 1841 "conf_parser.y"
5114      {
5115    if (conf_parser_ctx.pass == 2)
5116 <    yy_match_item->action |= SHARED_XLINE;
5116 >    block_state.flags.value |= SHARED_XLINE;
5117   }
5118      break;
5119  
5120 <  case 319:
5121 <
5122 < /* Line 1806 of yacc.c  */
5479 < #line 1951 "conf_parser.y"
5120 >  case 337:
5121 > /* Line 1787 of yacc.c  */
5122 > #line 1845 "conf_parser.y"
5123      {
5124    if (conf_parser_ctx.pass == 2)
5125 <    yy_match_item->action |= SHARED_UNXLINE;
5125 >    block_state.flags.value |= SHARED_UNXLINE;
5126   }
5127      break;
5128  
5129 <  case 320:
5130 <
5131 < /* Line 1806 of yacc.c  */
5489 < #line 1955 "conf_parser.y"
5129 >  case 338:
5130 > /* Line 1787 of yacc.c  */
5131 > #line 1849 "conf_parser.y"
5132      {
5133    if (conf_parser_ctx.pass == 2)
5134 <    yy_match_item->action |= SHARED_RESV;
5134 >    block_state.flags.value |= SHARED_RESV;
5135   }
5136      break;
5137  
5138 <  case 321:
5139 <
5140 < /* Line 1806 of yacc.c  */
5499 < #line 1959 "conf_parser.y"
5138 >  case 339:
5139 > /* Line 1787 of yacc.c  */
5140 > #line 1853 "conf_parser.y"
5141      {
5142    if (conf_parser_ctx.pass == 2)
5143 <    yy_match_item->action |= SHARED_UNRESV;
5143 >    block_state.flags.value |= SHARED_UNRESV;
5144   }
5145      break;
5146  
5147 <  case 322:
5148 <
5149 < /* Line 1806 of yacc.c  */
5509 < #line 1963 "conf_parser.y"
5147 >  case 340:
5148 > /* Line 1787 of yacc.c  */
5149 > #line 1857 "conf_parser.y"
5150      {
5151    if (conf_parser_ctx.pass == 2)
5152 <    yy_match_item->action |= SHARED_LOCOPS;
5152 >    block_state.flags.value |= SHARED_LOCOPS;
5153   }
5154      break;
5155  
5156 <  case 323:
5157 <
5158 < /* Line 1806 of yacc.c  */
5519 < #line 1967 "conf_parser.y"
5156 >  case 341:
5157 > /* Line 1787 of yacc.c  */
5158 > #line 1861 "conf_parser.y"
5159      {
5160    if (conf_parser_ctx.pass == 2)
5161 <    yy_match_item->action = SHARED_ALL;
5161 >    block_state.flags.value = SHARED_ALL;
5162   }
5163      break;
5164  
5165 <  case 324:
5166 <
5167 < /* Line 1806 of yacc.c  */
5529 < #line 1976 "conf_parser.y"
5165 >  case 342:
5166 > /* Line 1787 of yacc.c  */
5167 > #line 1870 "conf_parser.y"
5168      {
5169 <  if (conf_parser_ctx.pass == 2)
5532 <  {
5533 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5534 <    yy_conf->flags = SHARED_ALL;
5535 <  }
5536 < }
5169 >  if (conf_parser_ctx.pass != 2)
5170      break;
5171  
5172 <  case 325:
5172 >  reset_block_state();
5173  
5174 < /* Line 1806 of yacc.c  */
5175 < #line 1983 "conf_parser.y"
5543 <    {
5544 <  if (conf_parser_ctx.pass == 2)
5545 <  {
5546 <    if (yy_conf->name == NULL)
5547 <      DupString(yy_conf->name, "*");
5548 <    yy_conf = NULL;
5549 <  }
5174 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5175 >  block_state.flags.value = SHARED_ALL;
5176   }
5177      break;
5178  
5179 <  case 331:
5180 <
5181 < /* Line 1806 of yacc.c  */
5556 < #line 1996 "conf_parser.y"
5179 >  case 343:
5180 > /* Line 1787 of yacc.c  */
5181 > #line 1879 "conf_parser.y"
5182      {
5183 <  if (conf_parser_ctx.pass == 2)
5559 <    DupString(yy_conf->name, yylval.string);
5560 < }
5561 <    break;
5183 >  struct MaskItem *conf = NULL;
5184  
5185 <  case 332:
5185 >  if (conf_parser_ctx.pass != 2)
5186 >    break;
5187  
5188 < /* Line 1806 of yacc.c  */
5189 < #line 2002 "conf_parser.y"
5190 <    {
5568 <  if (conf_parser_ctx.pass == 2)
5569 <    yy_conf->flags = 0;
5188 >  conf = conf_make(CONF_CLUSTER);
5189 >  conf->flags = block_state.flags.value;
5190 >  conf->name = xstrdup(block_state.name.buf);
5191   }
5192      break;
5193  
5194 <  case 336:
5195 <
5196 < /* Line 1806 of yacc.c  */
5576 < #line 2009 "conf_parser.y"
5194 >  case 349:
5195 > /* Line 1787 of yacc.c  */
5196 > #line 1894 "conf_parser.y"
5197      {
5198    if (conf_parser_ctx.pass == 2)
5199 <    yy_conf->flags |= SHARED_KLINE;
5199 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5200   }
5201      break;
5202  
5203 <  case 337:
5204 <
5205 < /* Line 1806 of yacc.c  */
5586 < #line 2013 "conf_parser.y"
5203 >  case 350:
5204 > /* Line 1787 of yacc.c  */
5205 > #line 1900 "conf_parser.y"
5206      {
5207    if (conf_parser_ctx.pass == 2)
5208 <    yy_conf->flags |= SHARED_UNKLINE;
5208 >    block_state.flags.value = 0;
5209   }
5210      break;
5211  
5212 <  case 338:
5213 <
5214 < /* Line 1806 of yacc.c  */
5596 < #line 2017 "conf_parser.y"
5212 >  case 354:
5213 > /* Line 1787 of yacc.c  */
5214 > #line 1907 "conf_parser.y"
5215      {
5216    if (conf_parser_ctx.pass == 2)
5217 <    yy_conf->flags |= SHARED_DLINE;
5217 >    block_state.flags.value |= SHARED_KLINE;
5218   }
5219      break;
5220  
5221 <  case 339:
5222 <
5223 < /* Line 1806 of yacc.c  */
5606 < #line 2021 "conf_parser.y"
5221 >  case 355:
5222 > /* Line 1787 of yacc.c  */
5223 > #line 1911 "conf_parser.y"
5224      {
5225    if (conf_parser_ctx.pass == 2)
5226 <    yy_conf->flags |= SHARED_UNDLINE;
5226 >    block_state.flags.value |= SHARED_UNKLINE;
5227   }
5228      break;
5229  
5230 <  case 340:
5231 <
5232 < /* Line 1806 of yacc.c  */
5616 < #line 2025 "conf_parser.y"
5230 >  case 356:
5231 > /* Line 1787 of yacc.c  */
5232 > #line 1915 "conf_parser.y"
5233      {
5234    if (conf_parser_ctx.pass == 2)
5235 <    yy_conf->flags |= SHARED_XLINE;
5235 >    block_state.flags.value |= SHARED_DLINE;
5236   }
5237      break;
5238  
5239 <  case 341:
5240 <
5241 < /* Line 1806 of yacc.c  */
5626 < #line 2029 "conf_parser.y"
5239 >  case 357:
5240 > /* Line 1787 of yacc.c  */
5241 > #line 1919 "conf_parser.y"
5242      {
5243    if (conf_parser_ctx.pass == 2)
5244 <    yy_conf->flags |= SHARED_UNXLINE;
5244 >    block_state.flags.value |= SHARED_UNDLINE;
5245   }
5246      break;
5247  
5248 <  case 342:
5249 <
5250 < /* Line 1806 of yacc.c  */
5636 < #line 2033 "conf_parser.y"
5248 >  case 358:
5249 > /* Line 1787 of yacc.c  */
5250 > #line 1923 "conf_parser.y"
5251      {
5252    if (conf_parser_ctx.pass == 2)
5253 <    yy_conf->flags |= SHARED_RESV;
5253 >    block_state.flags.value |= SHARED_XLINE;
5254   }
5255      break;
5256  
5257 <  case 343:
5258 <
5259 < /* Line 1806 of yacc.c  */
5646 < #line 2037 "conf_parser.y"
5257 >  case 359:
5258 > /* Line 1787 of yacc.c  */
5259 > #line 1927 "conf_parser.y"
5260      {
5261    if (conf_parser_ctx.pass == 2)
5262 <    yy_conf->flags |= SHARED_UNRESV;
5262 >    block_state.flags.value |= SHARED_UNXLINE;
5263   }
5264      break;
5265  
5266 <  case 344:
5267 <
5268 < /* Line 1806 of yacc.c  */
5656 < #line 2041 "conf_parser.y"
5266 >  case 360:
5267 > /* Line 1787 of yacc.c  */
5268 > #line 1931 "conf_parser.y"
5269      {
5270    if (conf_parser_ctx.pass == 2)
5271 <    yy_conf->flags |= SHARED_LOCOPS;
5271 >    block_state.flags.value |= SHARED_RESV;
5272   }
5273      break;
5274  
5275 <  case 345:
5276 <
5277 < /* Line 1806 of yacc.c  */
5666 < #line 2045 "conf_parser.y"
5275 >  case 361:
5276 > /* Line 1787 of yacc.c  */
5277 > #line 1935 "conf_parser.y"
5278      {
5279    if (conf_parser_ctx.pass == 2)
5280 <    yy_conf->flags = SHARED_ALL;
5280 >    block_state.flags.value |= SHARED_UNRESV;
5281   }
5282      break;
5283  
5284 <  case 346:
5285 <
5286 < /* Line 1806 of yacc.c  */
5676 < #line 2054 "conf_parser.y"
5284 >  case 362:
5285 > /* Line 1787 of yacc.c  */
5286 > #line 1939 "conf_parser.y"
5287      {
5288    if (conf_parser_ctx.pass == 2)
5289 <  {
5680 <    yy_conf = make_conf_item(SERVER_TYPE);
5681 <    yy_aconf = map_to_conf(yy_conf);
5682 <
5683 <    /* defaults */
5684 <    yy_aconf->port = PORTNUM;
5685 <  }
5686 <  else
5687 <  {
5688 <    MyFree(class_name);
5689 <    class_name = NULL;
5690 <  }
5289 >    block_state.flags.value |= SHARED_LOCOPS;
5290   }
5291      break;
5292  
5293 <  case 347:
5294 <
5295 < /* Line 1806 of yacc.c  */
5697 < #line 2069 "conf_parser.y"
5293 >  case 363:
5294 > /* Line 1787 of yacc.c  */
5295 > #line 1943 "conf_parser.y"
5296      {
5297    if (conf_parser_ctx.pass == 2)
5298 <  {
5299 <    struct CollectItem *yy_hconf=NULL;
5300 <    struct CollectItem *yy_lconf=NULL;
5703 <    dlink_node *ptr = NULL, *next_ptr = NULL;
5298 >    block_state.flags.value = SHARED_ALL;
5299 > }
5300 >    break;
5301  
5302 <    if (yy_aconf->host &&
5303 <        yy_aconf->passwd && yy_aconf->spasswd)
5304 <    {
5708 <      if (conf_add_server(yy_conf, class_name) == -1)
5709 <      {
5710 <        delete_conf_item(yy_conf);
5711 <        yy_conf = NULL;
5712 <        yy_aconf = NULL;
5713 <      }
5714 <    }
5715 <    else
5302 >  case 364:
5303 > /* Line 1787 of yacc.c  */
5304 > #line 1952 "conf_parser.y"
5305      {
5717      /* Even if yy_conf ->name is NULL
5718       * should still unhook any hub/leaf confs still pending
5719       */
5720      unhook_hub_leaf_confs();
5721
5722      if (yy_conf->name != NULL)
5723      {
5724        if (yy_aconf->host == NULL)
5725          yyerror("Ignoring connect block -- missing host");
5726        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5727          yyerror("Ignoring connect block -- missing password");
5728      }
5729
5730
5731      /* XXX
5732       * This fixes a try_connections() core (caused by invalid class_ptr
5733       * pointers) reported by metalrock. That's an ugly fix, but there
5734       * is currently no better way. The entire config subsystem needs an
5735       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5736       * a doubly linked list immediately without any sanity checks!  -Michael
5737       */
5738      delete_conf_item(yy_conf);
5739
5740      yy_aconf = NULL;
5741      yy_conf = NULL;
5742    }
5743
5744      /*
5745       * yy_conf is still pointing at the server that is having
5746       * a connect block built for it. This means, y_aconf->name
5747       * points to the actual irc name this server will be known as.
5748       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5749       * given in the link list at yy_hconf. Fill in the HUB confs
5750       * from this link list now.
5751       */        
5752      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5753      {
5754        struct ConfItem *new_hub_conf;
5755        struct MatchItem *match_item;
5756
5757        yy_hconf = ptr->data;
5758
5759        /* yy_conf == NULL is a fatal error for this connect block! */
5760        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5761        {
5762          new_hub_conf = make_conf_item(HUB_TYPE);
5763          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5764          DupString(new_hub_conf->name, yy_conf->name);
5765          if (yy_hconf->user != NULL)
5766            DupString(match_item->user, yy_hconf->user);
5767          else
5768            DupString(match_item->user, "*");
5769          if (yy_hconf->host != NULL)
5770            DupString(match_item->host, yy_hconf->host);
5771          else
5772            DupString(match_item->host, "*");
5773        }
5774        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5775        free_collect_item(yy_hconf);
5776      }
5777
5778      /* Ditto for the LEAF confs */
5306  
5307 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5308 <      {
5782 <        struct ConfItem *new_leaf_conf;
5783 <        struct MatchItem *match_item;
5784 <
5785 <        yy_lconf = ptr->data;
5307 >  if (conf_parser_ctx.pass != 2)
5308 >    break;
5309  
5310 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5311 <        {
5789 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5790 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5791 <          DupString(new_leaf_conf->name, yy_conf->name);
5792 <          if (yy_lconf->user != NULL)
5793 <            DupString(match_item->user, yy_lconf->user);
5794 <          else
5795 <            DupString(match_item->user, "*");
5796 <          if (yy_lconf->host != NULL)
5797 <            DupString(match_item->host, yy_lconf->host);
5798 <          else
5799 <            DupString(match_item->host, "*");
5800 <        }
5801 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5802 <        free_collect_item(yy_lconf);
5803 <      }
5804 <      MyFree(class_name);
5805 <      class_name = NULL;
5806 <      yy_conf = NULL;
5807 <      yy_aconf = NULL;
5808 <  }
5310 >  reset_block_state();
5311 >  block_state.port.value = PORTNUM;
5312   }
5313      break;
5314  
5315 <  case 364:
5316 <
5317 < /* Line 1806 of yacc.c  */
5815 < #line 2191 "conf_parser.y"
5315 >  case 365:
5316 > /* Line 1787 of yacc.c  */
5317 > #line 1960 "conf_parser.y"
5318      {
5319 <  if (conf_parser_ctx.pass == 2)
5320 <  {
5321 <    MyFree(yy_conf->name);
5322 <    DupString(yy_conf->name, yylval.string);
5821 <  }
5822 < }
5319 >  struct MaskItem *conf = NULL;
5320 >  struct addrinfo hints, *res;
5321 >
5322 >  if (conf_parser_ctx.pass != 2)
5323      break;
5324  
5325 <  case 365:
5325 >  if (!block_state.name.buf[0] ||
5326 >      !block_state.host.buf[0])
5327 >    break;
5328  
5329 < /* Line 1806 of yacc.c  */
5330 < #line 2200 "conf_parser.y"
5829 <    {
5830 <  if (conf_parser_ctx.pass == 2)
5831 <  {
5832 <    MyFree(yy_aconf->host);
5833 <    DupString(yy_aconf->host, yylval.string);
5834 <  }
5835 < }
5329 >  if (!(block_state.rpass.buf[0] ||
5330 >        block_state.spass.buf[0]))
5331      break;
5332  
5333 <  case 366:
5333 >  if (has_wildcards(block_state.name.buf) ||
5334 >      has_wildcards(block_state.host.buf))
5335 >    break;
5336  
5337 < /* Line 1806 of yacc.c  */
5338 < #line 2209 "conf_parser.y"
5339 <    {
5340 <  if (conf_parser_ctx.pass == 2)
5341 <  {
5342 <    struct addrinfo hints, *res;
5337 >  conf = conf_make(CONF_SERVER);
5338 >  conf->port = block_state.port.value;
5339 >  conf->flags = block_state.flags.value;
5340 >  conf->aftype = block_state.aftype.value;
5341 >  conf->host = xstrdup(block_state.host.buf);
5342 >  conf->name = xstrdup(block_state.name.buf);
5343 >  conf->passwd = xstrdup(block_state.rpass.buf);
5344 >  conf->spasswd = xstrdup(block_state.spass.buf);
5345 >  conf->cipher_list = xstrdup(block_state.ciph.buf);
5346  
5347 +  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5348 +  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5349 +
5350 +  if (block_state.bind.buf[0])
5351 +  {
5352      memset(&hints, 0, sizeof(hints));
5353  
5354      hints.ai_family   = AF_UNSPEC;
5355      hints.ai_socktype = SOCK_STREAM;
5356      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5357  
5358 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5359 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5358 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5359 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5360      else
5361      {
5362        assert(res != NULL);
5363  
5364 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5365 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5366 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5364 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5365 >      conf->bind.ss.ss_family = res->ai_family;
5366 >      conf->bind.ss_len = res->ai_addrlen;
5367        freeaddrinfo(res);
5368      }
5369    }
5370 +
5371 +  conf_add_class_to_conf(conf, block_state.class.buf);
5372 +  lookup_confhost(conf);
5373   }
5374      break;
5375  
5376 <  case 367:
5377 <
5378 < /* Line 1806 of yacc.c  */
5871 < #line 2235 "conf_parser.y"
5376 >  case 382:
5377 > /* Line 1787 of yacc.c  */
5378 > #line 2026 "conf_parser.y"
5379      {
5380    if (conf_parser_ctx.pass == 2)
5381 <  {
5875 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5876 <      yyerror("Server passwords cannot begin with a colon");
5877 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5878 <      yyerror("Server passwords cannot contain spaces");
5879 <    else {
5880 <      if (yy_aconf->spasswd != NULL)
5881 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5882 <
5883 <      MyFree(yy_aconf->spasswd);
5884 <      DupString(yy_aconf->spasswd, yylval.string);
5885 <    }
5886 <  }
5381 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5382   }
5383      break;
5384  
5385 <  case 368:
5386 <
5387 < /* Line 1806 of yacc.c  */
5893 < #line 2253 "conf_parser.y"
5385 >  case 383:
5386 > /* Line 1787 of yacc.c  */
5387 > #line 2032 "conf_parser.y"
5388      {
5389    if (conf_parser_ctx.pass == 2)
5390 <  {
5897 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5898 <      yyerror("Server passwords cannot begin with a colon");
5899 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5900 <      yyerror("Server passwords cannot contain spaces");
5901 <    else {
5902 <      if (yy_aconf->passwd != NULL)
5903 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5904 <
5905 <      MyFree(yy_aconf->passwd);
5906 <      DupString(yy_aconf->passwd, yylval.string);
5907 <    }
5908 <  }
5390 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5391   }
5392      break;
5393  
5394 <  case 369:
5395 <
5396 < /* Line 1806 of yacc.c  */
5915 < #line 2271 "conf_parser.y"
5394 >  case 384:
5395 > /* Line 1787 of yacc.c  */
5396 > #line 2038 "conf_parser.y"
5397      {
5398    if (conf_parser_ctx.pass == 2)
5399 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5399 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5400   }
5401      break;
5402  
5403 <  case 370:
5404 <
5405 < /* Line 1806 of yacc.c  */
5925 < #line 2277 "conf_parser.y"
5403 >  case 385:
5404 > /* Line 1787 of yacc.c  */
5405 > #line 2044 "conf_parser.y"
5406      {
5407 <  if (conf_parser_ctx.pass == 2)
5928 <    yy_aconf->aftype = AF_INET;
5929 < }
5407 >  if (conf_parser_ctx.pass != 2)
5408      break;
5409  
5410 <  case 371:
5410 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5411 >    conf_error_report("Server passwords cannot begin with a colon");
5412 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5413 >    conf_error_report("Server passwords cannot contain spaces");
5414 >  else
5415 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5416 > }
5417 >    break;
5418  
5419 < /* Line 1806 of yacc.c  */
5420 < #line 2281 "conf_parser.y"
5419 >  case 386:
5420 > /* Line 1787 of yacc.c  */
5421 > #line 2057 "conf_parser.y"
5422      {
5423 < #ifdef IPV6
5938 <  if (conf_parser_ctx.pass == 2)
5939 <    yy_aconf->aftype = AF_INET6;
5940 < #endif
5941 < }
5423 >  if (conf_parser_ctx.pass != 2)
5424      break;
5425  
5426 <  case 372:
5426 >  if ((yyvsp[(3) - (4)].string)[0] == ':')
5427 >    conf_error_report("Server passwords cannot begin with a colon");
5428 >  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5429 >    conf_error_report("Server passwords cannot contain spaces");
5430 >  else
5431 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5432 > }
5433 >    break;
5434  
5435 < /* Line 1806 of yacc.c  */
5436 < #line 2289 "conf_parser.y"
5435 >  case 387:
5436 > /* Line 1787 of yacc.c  */
5437 > #line 2070 "conf_parser.y"
5438      {
5439 +  if (conf_parser_ctx.pass == 2)
5440 +    block_state.port.value = (yyvsp[(3) - (4)].number);
5441   }
5442      break;
5443  
5444 <  case 376:
5445 <
5446 < /* Line 1806 of yacc.c  */
5955 < #line 2294 "conf_parser.y"
5444 >  case 388:
5445 > /* Line 1787 of yacc.c  */
5446 > #line 2076 "conf_parser.y"
5447      {
5448    if (conf_parser_ctx.pass == 2)
5449 <    SetConfAllowAutoConn(yy_aconf);
5449 >    block_state.aftype.value = AF_INET;
5450   }
5451      break;
5452  
5453 <  case 377:
5454 <
5455 < /* Line 1806 of yacc.c  */
5965 < #line 2298 "conf_parser.y"
5453 >  case 389:
5454 > /* Line 1787 of yacc.c  */
5455 > #line 2080 "conf_parser.y"
5456      {
5457 + #ifdef IPV6
5458    if (conf_parser_ctx.pass == 2)
5459 <    SetConfAwayBurst(yy_aconf);
5459 >    block_state.aftype.value = AF_INET6;
5460 > #endif
5461   }
5462      break;
5463  
5464 <  case 378:
5464 >  case 390:
5465 > /* Line 1787 of yacc.c  */
5466 > #line 2088 "conf_parser.y"
5467 >    {
5468 >  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5469 > }
5470 >    break;
5471  
5472 < /* Line 1806 of yacc.c  */
5473 < #line 2302 "conf_parser.y"
5472 >  case 394:
5473 > /* Line 1787 of yacc.c  */
5474 > #line 2094 "conf_parser.y"
5475      {
5476    if (conf_parser_ctx.pass == 2)
5477 <    SetConfTopicBurst(yy_aconf);
5477 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5478   }
5479      break;
5480  
5481 <  case 379:
5482 <
5483 < /* Line 1806 of yacc.c  */
5985 < #line 2306 "conf_parser.y"
5481 >  case 395:
5482 > /* Line 1787 of yacc.c  */
5483 > #line 2098 "conf_parser.y"
5484      {
5485    if (conf_parser_ctx.pass == 2)
5486 <    SetConfSSL(yy_aconf);
5486 >    block_state.flags.value |= CONF_FLAGS_SSL;
5487   }
5488      break;
5489  
5490 <  case 380:
5491 <
5492 < /* Line 1806 of yacc.c  */
5995 < #line 2312 "conf_parser.y"
5490 >  case 396:
5491 > /* Line 1787 of yacc.c  */
5492 > #line 2104 "conf_parser.y"
5493      {
5494    if (conf_parser_ctx.pass == 2)
5495    {
5496      if (yylval.number)
5497 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5497 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5498      else
5499 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5499 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5500    }
5501   }
5502      break;
5503  
5504 <  case 381:
5505 <
5506 < /* Line 1806 of yacc.c  */
6010 < #line 2323 "conf_parser.y"
5504 >  case 397:
5505 > /* Line 1787 of yacc.c  */
5506 > #line 2115 "conf_parser.y"
5507      {
5508    if (conf_parser_ctx.pass == 2)
5509 <  {
6014 <    struct CollectItem *yy_tmp;
6015 <
6016 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6017 <    DupString(yy_tmp->host, yylval.string);
6018 <    DupString(yy_tmp->user, "*");
6019 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
6020 <  }
5509 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5510   }
5511      break;
5512  
5513 <  case 382:
5514 <
5515 < /* Line 1806 of yacc.c  */
6027 < #line 2336 "conf_parser.y"
5513 >  case 398:
5514 > /* Line 1787 of yacc.c  */
5515 > #line 2121 "conf_parser.y"
5516      {
5517    if (conf_parser_ctx.pass == 2)
5518 <  {
6031 <    struct CollectItem *yy_tmp;
6032 <
6033 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
6034 <    DupString(yy_tmp->host, yylval.string);
6035 <    DupString(yy_tmp->user, "*");
6036 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
6037 <  }
5518 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5519   }
5520      break;
5521  
5522 <  case 383:
5523 <
5524 < /* Line 1806 of yacc.c  */
6044 < #line 2349 "conf_parser.y"
5522 >  case 399:
5523 > /* Line 1787 of yacc.c  */
5524 > #line 2127 "conf_parser.y"
5525      {
5526    if (conf_parser_ctx.pass == 2)
5527 <  {
6048 <    MyFree(class_name);
6049 <    DupString(class_name, yylval.string);
6050 <  }
5527 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5528   }
5529      break;
5530  
5531 <  case 384:
5532 <
5533 < /* Line 1806 of yacc.c  */
6057 < #line 2358 "conf_parser.y"
5531 >  case 400:
5532 > /* Line 1787 of yacc.c  */
5533 > #line 2133 "conf_parser.y"
5534      {
5535   #ifdef HAVE_LIBCRYPTO
5536    if (conf_parser_ctx.pass == 2)
5537 <  {
6062 <    MyFree(yy_aconf->cipher_list);
6063 <    DupString(yy_aconf->cipher_list, yylval.string);
6064 <  }
5537 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5538   #else
5539    if (conf_parser_ctx.pass == 2)
5540 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5540 >    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5541   #endif
5542   }
5543      break;
5544  
5545 <  case 385:
5546 <
5547 < /* Line 1806 of yacc.c  */
6075 < #line 2376 "conf_parser.y"
5545 >  case 401:
5546 > /* Line 1787 of yacc.c  */
5547 > #line 2148 "conf_parser.y"
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550 <  {
6079 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
6080 <    regex_ban = 0;
6081 <  }
5550 >    reset_block_state();
5551   }
5552      break;
5553  
5554 <  case 386:
5555 <
5556 < /* Line 1806 of yacc.c  */
6088 < #line 2383 "conf_parser.y"
5554 >  case 402:
5555 > /* Line 1787 of yacc.c  */
5556 > #line 2152 "conf_parser.y"
5557      {
5558 <  if (conf_parser_ctx.pass == 2)
6091 <  {
6092 <    if (userbuf[0] && hostbuf[0])
6093 <    {
6094 <      if (regex_ban)
6095 <      {
6096 < #ifdef HAVE_LIBPCRE
6097 <        void *exp_user = NULL;
6098 <        void *exp_host = NULL;
6099 <        const char *errptr = NULL;
6100 <
6101 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
6102 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
6103 <        {
6104 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
6105 <               errptr);
6106 <          break;
6107 <        }
6108 <
6109 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
6110 <        yy_aconf->regexuser = exp_user;
6111 <        yy_aconf->regexhost = exp_host;
6112 <
6113 <        DupString(yy_aconf->user, userbuf);
6114 <        DupString(yy_aconf->host, hostbuf);
6115 <
6116 <        if (reasonbuf[0])
6117 <          DupString(yy_aconf->reason, reasonbuf);
6118 <        else
6119 <          DupString(yy_aconf->reason, "No reason");
6120 < #else
6121 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
6122 <        break;
6123 < #endif
6124 <      }
6125 <      else
6126 <      {
6127 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
6128 <
6129 <        DupString(yy_aconf->user, userbuf);
6130 <        DupString(yy_aconf->host, hostbuf);
5558 >  struct MaskItem *conf = NULL;
5559  
5560 <        if (reasonbuf[0])
6133 <          DupString(yy_aconf->reason, reasonbuf);
6134 <        else
6135 <          DupString(yy_aconf->reason, "No reason");
6136 <        add_conf_by_address(CONF_KILL, yy_aconf);
6137 <      }
6138 <    }
6139 <
6140 <    yy_aconf = NULL;
6141 <  }
6142 < }
5560 >  if (conf_parser_ctx.pass != 2)
5561      break;
5562  
5563 <  case 387:
5564 <
6147 < /* Line 1806 of yacc.c  */
6148 < #line 2439 "conf_parser.y"
6149 <    {
6150 < }
5563 >  if (!block_state.user.buf[0] ||
5564 >      !block_state.host.buf[0])
5565      break;
5566  
5567 <  case 391:
5567 >  conf = conf_make(CONF_KLINE);
5568 >  conf->user = xstrdup(block_state.user.buf);
5569 >  conf->host = xstrdup(block_state.host.buf);
5570  
5571 < /* Line 1806 of yacc.c  */
5572 < #line 2444 "conf_parser.y"
5573 <    {
5574 <  if (conf_parser_ctx.pass == 2)
5575 <    regex_ban = 1;
5571 >  if (block_state.rpass.buf[0])
5572 >    conf->reason = xstrdup(block_state.rpass.buf);
5573 >  else
5574 >    conf->reason = xstrdup(CONF_NOREASON);
5575 >  add_conf_by_address(CONF_KLINE, conf);
5576   }
5577      break;
5578  
5579 <  case 398:
5580 <
5581 < /* Line 1806 of yacc.c  */
6166 < #line 2453 "conf_parser.y"
5579 >  case 408:
5580 > /* Line 1787 of yacc.c  */
5581 > #line 2177 "conf_parser.y"
5582      {
5583 +
5584    if (conf_parser_ctx.pass == 2)
5585    {
5586      struct split_nuh_item nuh;
5587  
5588      nuh.nuhmask  = yylval.string;
5589      nuh.nickptr  = NULL;
5590 <    nuh.userptr  = userbuf;
5591 <    nuh.hostptr  = hostbuf;
5590 >    nuh.userptr  = block_state.user.buf;
5591 >    nuh.hostptr  = block_state.host.buf;
5592  
5593      nuh.nicksize = 0;
5594 <    nuh.usersize = sizeof(userbuf);
5595 <    nuh.hostsize = sizeof(hostbuf);
5594 >    nuh.usersize = sizeof(block_state.user.buf);
5595 >    nuh.hostsize = sizeof(block_state.host.buf);
5596  
5597      split_nuh(&nuh);
5598    }
5599   }
5600      break;
5601  
5602 <  case 399:
5603 <
5604 < /* Line 1806 of yacc.c  */
6189 < #line 2472 "conf_parser.y"
5602 >  case 409:
5603 > /* Line 1787 of yacc.c  */
5604 > #line 2197 "conf_parser.y"
5605      {
5606    if (conf_parser_ctx.pass == 2)
5607 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5607 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5608   }
5609      break;
5610  
5611 <  case 400:
5612 <
5613 < /* Line 1806 of yacc.c  */
6199 < #line 2481 "conf_parser.y"
5611 >  case 410:
5612 > /* Line 1787 of yacc.c  */
5613 > #line 2206 "conf_parser.y"
5614      {
5615    if (conf_parser_ctx.pass == 2)
5616 <    hostbuf[0] = reasonbuf[0] = '\0';
5616 >    reset_block_state();
5617   }
5618      break;
5619  
5620 <  case 401:
5621 <
5622 < /* Line 1806 of yacc.c  */
6209 < #line 2485 "conf_parser.y"
5620 >  case 411:
5621 > /* Line 1787 of yacc.c  */
5622 > #line 2210 "conf_parser.y"
5623      {
5624 <  if (conf_parser_ctx.pass == 2)
5624 >  struct MaskItem *conf = NULL;
5625 >
5626 >  if (conf_parser_ctx.pass != 2)
5627 >    break;
5628 >
5629 >  if (!block_state.addr.buf[0])
5630 >    break;
5631 >
5632 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5633    {
5634 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5635 <    {
6215 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
6216 <      DupString(yy_aconf->host, hostbuf);
5634 >    conf = conf_make(CONF_DLINE);
5635 >    conf->host = xstrdup(block_state.addr.buf);
5636  
5637 <      if (reasonbuf[0])
5638 <        DupString(yy_aconf->reason, reasonbuf);
5639 <      else
5640 <        DupString(yy_aconf->reason, "No reason");
5641 <      add_conf_by_address(CONF_DLINE, yy_aconf);
6223 <      yy_aconf = NULL;
6224 <    }
5637 >    if (block_state.rpass.buf[0])
5638 >      conf->reason = xstrdup(block_state.rpass.buf);
5639 >    else
5640 >      conf->reason = xstrdup(CONF_NOREASON);
5641 >    add_conf_by_address(CONF_DLINE, conf);
5642    }
5643   }
5644      break;
5645  
5646 <  case 407:
5647 <
5648 < /* Line 1806 of yacc.c  */
6232 < #line 2507 "conf_parser.y"
5646 >  case 417:
5647 > /* Line 1787 of yacc.c  */
5648 > #line 2236 "conf_parser.y"
5649      {
5650    if (conf_parser_ctx.pass == 2)
5651 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5651 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5652   }
5653      break;
5654  
5655 <  case 408:
5656 <
5657 < /* Line 1806 of yacc.c  */
6242 < #line 2513 "conf_parser.y"
5655 >  case 418:
5656 > /* Line 1787 of yacc.c  */
5657 > #line 2242 "conf_parser.y"
5658      {
5659    if (conf_parser_ctx.pass == 2)
5660 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5660 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5661   }
5662      break;
5663  
5664 <  case 414:
5665 <
5666 < /* Line 1806 of yacc.c  */
6252 < #line 2527 "conf_parser.y"
5664 >  case 424:
5665 > /* Line 1787 of yacc.c  */
5666 > #line 2256 "conf_parser.y"
5667      {
5668    if (conf_parser_ctx.pass == 2)
5669    {
5670      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5671      {
5672 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5673 <      DupString(yy_aconf->host, yylval.string);
5672 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5673 >      conf->host = xstrdup(yylval.string);
5674  
5675 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
6262 <      yy_aconf = NULL;
5675 >      add_conf_by_address(CONF_EXEMPT, conf);
5676      }
5677    }
5678   }
5679      break;
5680  
5681 <  case 415:
5682 <
5683 < /* Line 1806 of yacc.c  */
6271 < #line 2545 "conf_parser.y"
5681 >  case 425:
5682 > /* Line 1787 of yacc.c  */
5683 > #line 2273 "conf_parser.y"
5684      {
5685    if (conf_parser_ctx.pass == 2)
5686 <  {
6275 <    regex_ban = 0;
6276 <    reasonbuf[0] = gecos_name[0] = '\0';
6277 <  }
5686 >    reset_block_state();
5687   }
5688      break;
5689  
5690 <  case 416:
5691 <
5692 < /* Line 1806 of yacc.c  */
6284 < #line 2552 "conf_parser.y"
6285 <    {
6286 <  if (conf_parser_ctx.pass == 2)
6287 <  {
6288 <    if (gecos_name[0])
5690 >  case 426:
5691 > /* Line 1787 of yacc.c  */
5692 > #line 2277 "conf_parser.y"
5693      {
5694 <      if (regex_ban)
6291 <      {
6292 < #ifdef HAVE_LIBPCRE
6293 <        void *exp_p = NULL;
6294 <        const char *errptr = NULL;
5694 >  struct MaskItem *conf = NULL;
5695  
5696 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
6297 <        {
6298 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
6299 <               errptr);
6300 <          break;
6301 <        }
6302 <
6303 <        yy_conf = make_conf_item(RXLINE_TYPE);
6304 <        yy_conf->regexpname = exp_p;
6305 < #else
6306 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
6307 <        break;
6308 < #endif
6309 <      }
6310 <      else
6311 <        yy_conf = make_conf_item(XLINE_TYPE);
6312 <
6313 <      yy_match_item = map_to_conf(yy_conf);
6314 <      DupString(yy_conf->name, gecos_name);
6315 <
6316 <      if (reasonbuf[0])
6317 <        DupString(yy_match_item->reason, reasonbuf);
6318 <      else
6319 <        DupString(yy_match_item->reason, "No reason");
6320 <    }
6321 <  }
6322 < }
5696 >  if (conf_parser_ctx.pass != 2)
5697      break;
5698  
5699 <  case 417:
6326 <
6327 < /* Line 1806 of yacc.c  */
6328 < #line 2592 "conf_parser.y"
6329 <    {
6330 < }
5699 >  if (!block_state.name.buf[0])
5700      break;
5701  
5702 <  case 421:
5702 >  conf = conf_make(CONF_XLINE);
5703 >  conf->name = xstrdup(block_state.name.buf);
5704  
5705 < /* Line 1806 of yacc.c  */
5706 < #line 2597 "conf_parser.y"
5707 <    {
5708 <  if (conf_parser_ctx.pass == 2)
6339 <    regex_ban = 1;
5705 >  if (block_state.rpass.buf[0])
5706 >    conf->reason = xstrdup(block_state.rpass.buf);
5707 >  else
5708 >    conf->reason = xstrdup(CONF_NOREASON);
5709   }
5710      break;
5711  
5712 <  case 428:
5713 <
5714 < /* Line 1806 of yacc.c  */
6346 < #line 2606 "conf_parser.y"
5712 >  case 432:
5713 > /* Line 1787 of yacc.c  */
5714 > #line 2299 "conf_parser.y"
5715      {
5716    if (conf_parser_ctx.pass == 2)
5717 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5717 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5718   }
5719      break;
5720  
5721 <  case 429:
5722 <
5723 < /* Line 1806 of yacc.c  */
6356 < #line 2612 "conf_parser.y"
5721 >  case 433:
5722 > /* Line 1787 of yacc.c  */
5723 > #line 2305 "conf_parser.y"
5724      {
5725    if (conf_parser_ctx.pass == 2)
5726 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
6360 < }
6361 <    break;
6362 <
6363 <  case 485:
6364 <
6365 < /* Line 1806 of yacc.c  */
6366 < #line 2656 "conf_parser.y"
6367 <    {
6368 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5726 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5727   }
5728      break;
5729  
5730    case 486:
5731 <
5732 < /* Line 1806 of yacc.c  */
6375 < #line 2661 "conf_parser.y"
5731 > /* Line 1787 of yacc.c  */
5732 > #line 2349 "conf_parser.y"
5733      {
5734 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5734 >  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5735   }
5736      break;
5737  
5738    case 487:
5739 <
5740 < /* Line 1806 of yacc.c  */
6384 < #line 2666 "conf_parser.y"
5739 > /* Line 1787 of yacc.c  */
5740 > #line 2354 "conf_parser.y"
5741      {
5742 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5742 >  if (conf_parser_ctx.pass == 2)
5743 >    ConfigFileEntry.glines = yylval.number;
5744   }
5745      break;
5746  
5747    case 488:
5748 <
5749 < /* Line 1806 of yacc.c  */
6393 < #line 2671 "conf_parser.y"
5748 > /* Line 1787 of yacc.c  */
5749 > #line 2360 "conf_parser.y"
5750      {
5751 <  ConfigFileEntry.use_whois_actually = yylval.number;
5751 >  if (conf_parser_ctx.pass == 2)
5752 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5753   }
5754      break;
5755  
5756    case 489:
5757 <
5758 < /* Line 1806 of yacc.c  */
6402 < #line 2676 "conf_parser.y"
5757 > /* Line 1787 of yacc.c  */
5758 > #line 2366 "conf_parser.y"
5759      {
5760 <  GlobalSetOptions.rejecttime = yylval.number;
5760 >  if (conf_parser_ctx.pass == 2)
5761 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5762   }
5763      break;
5764  
5765    case 490:
5766 <
5767 < /* Line 1806 of yacc.c  */
6411 < #line 2681 "conf_parser.y"
5766 > /* Line 1787 of yacc.c  */
5767 > #line 2372 "conf_parser.y"
5768      {
5769 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5769 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5770   }
5771      break;
5772  
5773    case 491:
5774 <
5775 < /* Line 1806 of yacc.c  */
6420 < #line 2686 "conf_parser.y"
5774 > /* Line 1787 of yacc.c  */
5775 > #line 2377 "conf_parser.y"
5776      {
5777 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5777 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5778   }
5779      break;
5780  
5781    case 492:
5782 <
5783 < /* Line 1806 of yacc.c  */
6429 < #line 2691 "conf_parser.y"
5782 > /* Line 1787 of yacc.c  */
5783 > #line 2382 "conf_parser.y"
5784      {
5785 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5785 >  ConfigFileEntry.tkline_expire_notices = yylval.number;
5786   }
5787      break;
5788  
5789    case 493:
5790 <
5791 < /* Line 1806 of yacc.c  */
6438 < #line 2696 "conf_parser.y"
5790 > /* Line 1787 of yacc.c  */
5791 > #line 2387 "conf_parser.y"
5792      {
5793 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5793 >  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5794   }
5795      break;
5796  
5797    case 494:
5798 <
5799 < /* Line 1806 of yacc.c  */
6447 < #line 2701 "conf_parser.y"
5798 > /* Line 1787 of yacc.c  */
5799 > #line 2392 "conf_parser.y"
5800      {
5801 <  ConfigFileEntry.disable_remote = yylval.number;
5801 >  ConfigFileEntry.hide_spoof_ips = yylval.number;
5802   }
5803      break;
5804  
5805    case 495:
5806 <
5807 < /* Line 1806 of yacc.c  */
6456 < #line 2706 "conf_parser.y"
5806 > /* Line 1787 of yacc.c  */
5807 > #line 2397 "conf_parser.y"
5808      {
5809 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5809 >  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5810   }
5811      break;
5812  
5813    case 496:
5814 <
5815 < /* Line 1806 of yacc.c  */
6465 < #line 2711 "conf_parser.y"
5814 > /* Line 1787 of yacc.c  */
5815 > #line 2402 "conf_parser.y"
5816      {
5817 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5817 >  ConfigFileEntry.disable_remote = yylval.number;
5818   }
5819      break;
5820  
5821    case 497:
5822 <
5823 < /* Line 1806 of yacc.c  */
6474 < #line 2716 "conf_parser.y"
5822 > /* Line 1787 of yacc.c  */
5823 > #line 2407 "conf_parser.y"
5824      {
5825 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5825 >  ConfigFileEntry.failed_oper_notice = yylval.number;
5826   }
5827      break;
5828  
5829    case 498:
5830 <
5831 < /* Line 1806 of yacc.c  */
6483 < #line 2721 "conf_parser.y"
5830 > /* Line 1787 of yacc.c  */
5831 > #line 2412 "conf_parser.y"
5832      {
5833 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5833 >  ConfigFileEntry.anti_nick_flood = yylval.number;
5834   }
5835      break;
5836  
5837    case 499:
5838 <
5839 < /* Line 1806 of yacc.c  */
6492 < #line 2726 "conf_parser.y"
5838 > /* Line 1787 of yacc.c  */
5839 > #line 2417 "conf_parser.y"
5840      {
5841 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5841 >  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5842   }
5843      break;
5844  
5845    case 500:
5846 <
5847 < /* Line 1806 of yacc.c  */
6501 < #line 2731 "conf_parser.y"
5846 > /* Line 1787 of yacc.c  */
5847 > #line 2422 "conf_parser.y"
5848      {
5849 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5849 >  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5850   }
5851      break;
5852  
5853    case 501:
5854 <
5855 < /* Line 1806 of yacc.c  */
6510 < #line 2736 "conf_parser.y"
5854 > /* Line 1787 of yacc.c  */
5855 > #line 2427 "conf_parser.y"
5856      {
5857 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5857 >  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5858   }
5859      break;
5860  
5861    case 502:
5862 <
5863 < /* Line 1806 of yacc.c  */
6519 < #line 2741 "conf_parser.y"
5862 > /* Line 1787 of yacc.c  */
5863 > #line 2432 "conf_parser.y"
5864      {
5865 <  if (conf_parser_ctx.pass == 2)
6522 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5865 >  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5866   }
5867      break;
5868  
5869    case 503:
5870 <
5871 < /* Line 1806 of yacc.c  */
6529 < #line 2747 "conf_parser.y"
5870 > /* Line 1787 of yacc.c  */
5871 > #line 2437 "conf_parser.y"
5872      {
5873 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6532 <  {
6533 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6534 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6535 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6536 <    exit(0);
6537 <  }
5873 >  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5874   }
5875      break;
5876  
5877    case 504:
5878 <
5879 < /* Line 1806 of yacc.c  */
6544 < #line 2758 "conf_parser.y"
5878 > /* Line 1787 of yacc.c  */
5879 > #line 2442 "conf_parser.y"
5880      {
5881 <  ConfigFileEntry.kline_with_reason = yylval.number;
5881 >  if (conf_parser_ctx.pass == 2)
5882 >    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5883   }
5884      break;
5885  
5886    case 505:
5887 <
5888 < /* Line 1806 of yacc.c  */
6553 < #line 2763 "conf_parser.y"
5887 > /* Line 1787 of yacc.c  */
5888 > #line 2448 "conf_parser.y"
5889      {
5890 <  if (conf_parser_ctx.pass == 2)
5890 >  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
5891    {
5892 <    MyFree(ConfigFileEntry.kline_reason);
5893 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
5892 >    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
5893 >    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
5894 >    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
5895 >    exit(0);
5896    }
5897   }
5898      break;
5899  
5900    case 506:
5901 <
5902 < /* Line 1806 of yacc.c  */
6566 < #line 2772 "conf_parser.y"
5901 > /* Line 1787 of yacc.c  */
5902 > #line 2459 "conf_parser.y"
5903      {
5904    ConfigFileEntry.invisible_on_connect = yylval.number;
5905   }
5906      break;
5907  
5908    case 507:
5909 <
5910 < /* Line 1806 of yacc.c  */
6575 < #line 2777 "conf_parser.y"
5909 > /* Line 1787 of yacc.c  */
5910 > #line 2464 "conf_parser.y"
5911      {
5912    ConfigFileEntry.warn_no_nline = yylval.number;
5913   }
5914      break;
5915  
5916    case 508:
5917 <
5918 < /* Line 1806 of yacc.c  */
6584 < #line 2782 "conf_parser.y"
5917 > /* Line 1787 of yacc.c  */
5918 > #line 2469 "conf_parser.y"
5919      {
5920    ConfigFileEntry.stats_e_disabled = yylval.number;
5921   }
5922      break;
5923  
5924    case 509:
5925 <
5926 < /* Line 1806 of yacc.c  */
6593 < #line 2787 "conf_parser.y"
5925 > /* Line 1787 of yacc.c  */
5926 > #line 2474 "conf_parser.y"
5927      {
5928    ConfigFileEntry.stats_o_oper_only = yylval.number;
5929   }
5930      break;
5931  
5932    case 510:
5933 <
5934 < /* Line 1806 of yacc.c  */
6602 < #line 2792 "conf_parser.y"
5933 > /* Line 1787 of yacc.c  */
5934 > #line 2479 "conf_parser.y"
5935      {
5936    ConfigFileEntry.stats_P_oper_only = yylval.number;
5937   }
5938      break;
5939  
5940    case 511:
5941 <
5942 < /* Line 1806 of yacc.c  */
6611 < #line 2797 "conf_parser.y"
5941 > /* Line 1787 of yacc.c  */
5942 > #line 2484 "conf_parser.y"
5943      {
5944    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5945   }
5946      break;
5947  
5948    case 512:
5949 <
5950 < /* Line 1806 of yacc.c  */
6620 < #line 2800 "conf_parser.y"
5949 > /* Line 1787 of yacc.c  */
5950 > #line 2487 "conf_parser.y"
5951      {
5952    ConfigFileEntry.stats_k_oper_only = 1;
5953   }
5954      break;
5955  
5956    case 513:
5957 <
5958 < /* Line 1806 of yacc.c  */
6629 < #line 2805 "conf_parser.y"
5957 > /* Line 1787 of yacc.c  */
5958 > #line 2492 "conf_parser.y"
5959      {
5960    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5961   }
5962      break;
5963  
5964    case 514:
5965 <
5966 < /* Line 1806 of yacc.c  */
6638 < #line 2808 "conf_parser.y"
5965 > /* Line 1787 of yacc.c  */
5966 > #line 2495 "conf_parser.y"
5967      {
5968    ConfigFileEntry.stats_i_oper_only = 1;
5969   }
5970      break;
5971  
5972    case 515:
5973 <
5974 < /* Line 1806 of yacc.c  */
6647 < #line 2813 "conf_parser.y"
5973 > /* Line 1787 of yacc.c  */
5974 > #line 2500 "conf_parser.y"
5975      {
5976    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5977   }
5978      break;
5979  
5980    case 516:
5981 <
5982 < /* Line 1806 of yacc.c  */
6656 < #line 2818 "conf_parser.y"
5981 > /* Line 1787 of yacc.c  */
5982 > #line 2505 "conf_parser.y"
5983      {
5984    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5985   }
5986      break;
5987  
5988    case 517:
5989 <
5990 < /* Line 1806 of yacc.c  */
6665 < #line 2823 "conf_parser.y"
5989 > /* Line 1787 of yacc.c  */
5990 > #line 2510 "conf_parser.y"
5991      {
5992    ConfigFileEntry.opers_bypass_callerid = yylval.number;
5993   }
5994      break;
5995  
5996    case 518:
5997 <
5998 < /* Line 1806 of yacc.c  */
6674 < #line 2828 "conf_parser.y"
5997 > /* Line 1787 of yacc.c  */
5998 > #line 2515 "conf_parser.y"
5999      {
6000    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6001   }
6002      break;
6003  
6004    case 519:
6005 <
6006 < /* Line 1806 of yacc.c  */
6683 < #line 2833 "conf_parser.y"
6005 > /* Line 1787 of yacc.c  */
6006 > #line 2520 "conf_parser.y"
6007      {
6008    ConfigFileEntry.short_motd = yylval.number;
6009   }
6010      break;
6011  
6012    case 520:
6013 <
6014 < /* Line 1806 of yacc.c  */
6692 < #line 2838 "conf_parser.y"
6013 > /* Line 1787 of yacc.c  */
6014 > #line 2525 "conf_parser.y"
6015      {
6016    ConfigFileEntry.no_oper_flood = yylval.number;
6017   }
6018      break;
6019  
6020    case 521:
6021 <
6022 < /* Line 1806 of yacc.c  */
6701 < #line 2843 "conf_parser.y"
6021 > /* Line 1787 of yacc.c  */
6022 > #line 2530 "conf_parser.y"
6023      {
6024    ConfigFileEntry.true_no_oper_flood = yylval.number;
6025   }
6026      break;
6027  
6028    case 522:
6029 <
6030 < /* Line 1806 of yacc.c  */
6710 < #line 2848 "conf_parser.y"
6029 > /* Line 1787 of yacc.c  */
6030 > #line 2535 "conf_parser.y"
6031      {
6032    ConfigFileEntry.oper_pass_resv = yylval.number;
6033   }
6034      break;
6035  
6036    case 523:
6037 <
6038 < /* Line 1806 of yacc.c  */
6719 < #line 2853 "conf_parser.y"
6720 <    {
6721 <  if (conf_parser_ctx.pass == 2)
6722 <  {
6723 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6724 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6725 <
6726 <    set_locale(yylval.string);
6727 <  }
6728 < }
6729 <    break;
6730 <
6731 <  case 524:
6732 <
6733 < /* Line 1806 of yacc.c  */
6734 < #line 2864 "conf_parser.y"
6037 > /* Line 1787 of yacc.c  */
6038 > #line 2540 "conf_parser.y"
6039      {
6040    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6041   }
6042      break;
6043  
6044 <  case 525:
6045 <
6046 < /* Line 1806 of yacc.c  */
6743 < #line 2869 "conf_parser.y"
6044 >  case 524:
6045 > /* Line 1787 of yacc.c  */
6046 > #line 2545 "conf_parser.y"
6047      {
6048    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6049   }
6050      break;
6051  
6052 <  case 526:
6053 <
6054 < /* Line 1806 of yacc.c  */
6752 < #line 2874 "conf_parser.y"
6052 >  case 525:
6053 > /* Line 1787 of yacc.c  */
6054 > #line 2550 "conf_parser.y"
6055      {
6056    ConfigFileEntry.use_egd = yylval.number;
6057   }
6058      break;
6059  
6060 <  case 527:
6061 <
6062 < /* Line 1806 of yacc.c  */
6761 < #line 2879 "conf_parser.y"
6060 >  case 526:
6061 > /* Line 1787 of yacc.c  */
6062 > #line 2555 "conf_parser.y"
6063      {
6064    if (conf_parser_ctx.pass == 2)
6065    {
6066      MyFree(ConfigFileEntry.egdpool_path);
6067 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6067 >    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6068    }
6069   }
6070      break;
6071  
6072 <  case 528:
6073 <
6074 < /* Line 1806 of yacc.c  */
6774 < #line 2888 "conf_parser.y"
6072 >  case 527:
6073 > /* Line 1787 of yacc.c  */
6074 > #line 2564 "conf_parser.y"
6075      {
6076    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6077    {
6078      MyFree(ConfigFileEntry.service_name);
6079 <    DupString(ConfigFileEntry.service_name, yylval.string);
6079 >    ConfigFileEntry.service_name = xstrdup(yylval.string);
6080    }
6081   }
6082      break;
6083  
6084 <  case 529:
6085 <
6086 < /* Line 1806 of yacc.c  */
6787 < #line 2897 "conf_parser.y"
6084 >  case 528:
6085 > /* Line 1787 of yacc.c  */
6086 > #line 2573 "conf_parser.y"
6087      {
6088    ConfigFileEntry.ping_cookie = yylval.number;
6089   }
6090      break;
6091  
6092 <  case 530:
6093 <
6094 < /* Line 1806 of yacc.c  */
6796 < #line 2902 "conf_parser.y"
6092 >  case 529:
6093 > /* Line 1787 of yacc.c  */
6094 > #line 2578 "conf_parser.y"
6095      {
6096    ConfigFileEntry.disable_auth = yylval.number;
6097   }
6098      break;
6099  
6100 <  case 531:
6101 <
6102 < /* Line 1806 of yacc.c  */
6805 < #line 2907 "conf_parser.y"
6100 >  case 530:
6101 > /* Line 1787 of yacc.c  */
6102 > #line 2583 "conf_parser.y"
6103      {
6104    ConfigFileEntry.throttle_time = yylval.number;
6105   }
6106      break;
6107  
6108 <  case 532:
6109 <
6110 < /* Line 1806 of yacc.c  */
6814 < #line 2912 "conf_parser.y"
6108 >  case 531:
6109 > /* Line 1787 of yacc.c  */
6110 > #line 2588 "conf_parser.y"
6111      {
6112    ConfigFileEntry.oper_umodes = 0;
6113   }
6114      break;
6115  
6116 <  case 536:
6117 <
6118 < /* Line 1806 of yacc.c  */
6823 < #line 2918 "conf_parser.y"
6116 >  case 535:
6117 > /* Line 1787 of yacc.c  */
6118 > #line 2594 "conf_parser.y"
6119      {
6120    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6121   }
6122      break;
6123  
6124 <  case 537:
6125 <
6126 < /* Line 1806 of yacc.c  */
6832 < #line 2921 "conf_parser.y"
6124 >  case 536:
6125 > /* Line 1787 of yacc.c  */
6126 > #line 2597 "conf_parser.y"
6127      {
6128    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6129   }
6130      break;
6131  
6132 <  case 538:
6133 <
6134 < /* Line 1806 of yacc.c  */
6841 < #line 2924 "conf_parser.y"
6132 >  case 537:
6133 > /* Line 1787 of yacc.c  */
6134 > #line 2600 "conf_parser.y"
6135      {
6136    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6137   }
6138      break;
6139  
6140 <  case 539:
6141 <
6142 < /* Line 1806 of yacc.c  */
6850 < #line 2927 "conf_parser.y"
6140 >  case 538:
6141 > /* Line 1787 of yacc.c  */
6142 > #line 2603 "conf_parser.y"
6143      {
6144    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6145   }
6146      break;
6147  
6148 <  case 540:
6149 <
6150 < /* Line 1806 of yacc.c  */
6859 < #line 2930 "conf_parser.y"
6148 >  case 539:
6149 > /* Line 1787 of yacc.c  */
6150 > #line 2606 "conf_parser.y"
6151      {
6152    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6153   }
6154      break;
6155  
6156 <  case 541:
6157 <
6158 < /* Line 1806 of yacc.c  */
6868 < #line 2933 "conf_parser.y"
6156 >  case 540:
6157 > /* Line 1787 of yacc.c  */
6158 > #line 2609 "conf_parser.y"
6159      {
6160    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6161   }
6162      break;
6163  
6164 <  case 542:
6165 <
6166 < /* Line 1806 of yacc.c  */
6877 < #line 2936 "conf_parser.y"
6164 >  case 541:
6165 > /* Line 1787 of yacc.c  */
6166 > #line 2612 "conf_parser.y"
6167      {
6168    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6169   }
6170      break;
6171  
6172 <  case 543:
6173 <
6174 < /* Line 1806 of yacc.c  */
6886 < #line 2939 "conf_parser.y"
6172 >  case 542:
6173 > /* Line 1787 of yacc.c  */
6174 > #line 2615 "conf_parser.y"
6175      {
6176    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6177   }
6178      break;
6179  
6180 <  case 544:
6181 <
6182 < /* Line 1806 of yacc.c  */
6895 < #line 2942 "conf_parser.y"
6180 >  case 543:
6181 > /* Line 1787 of yacc.c  */
6182 > #line 2618 "conf_parser.y"
6183      {
6184    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6185   }
6186      break;
6187  
6188 <  case 545:
6189 <
6190 < /* Line 1806 of yacc.c  */
6904 < #line 2945 "conf_parser.y"
6188 >  case 544:
6189 > /* Line 1787 of yacc.c  */
6190 > #line 2621 "conf_parser.y"
6191      {
6192    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6193   }
6194      break;
6195  
6196 <  case 546:
6197 <
6198 < /* Line 1806 of yacc.c  */
6913 < #line 2948 "conf_parser.y"
6196 >  case 545:
6197 > /* Line 1787 of yacc.c  */
6198 > #line 2624 "conf_parser.y"
6199      {
6200    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6201   }
6202      break;
6203  
6204 <  case 547:
6205 <
6206 < /* Line 1806 of yacc.c  */
6922 < #line 2951 "conf_parser.y"
6204 >  case 546:
6205 > /* Line 1787 of yacc.c  */
6206 > #line 2627 "conf_parser.y"
6207      {
6208    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6209   }
6210      break;
6211  
6212 <  case 548:
6213 <
6214 < /* Line 1806 of yacc.c  */
6931 < #line 2954 "conf_parser.y"
6212 >  case 547:
6213 > /* Line 1787 of yacc.c  */
6214 > #line 2630 "conf_parser.y"
6215      {
6216    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6217   }
6218      break;
6219  
6220 <  case 549:
6221 <
6222 < /* Line 1806 of yacc.c  */
6940 < #line 2957 "conf_parser.y"
6220 >  case 548:
6221 > /* Line 1787 of yacc.c  */
6222 > #line 2633 "conf_parser.y"
6223      {
6224    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6225   }
6226      break;
6227  
6228 <  case 550:
6229 <
6230 < /* Line 1806 of yacc.c  */
6949 < #line 2960 "conf_parser.y"
6228 >  case 549:
6229 > /* Line 1787 of yacc.c  */
6230 > #line 2636 "conf_parser.y"
6231      {
6232    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6233   }
6234      break;
6235  
6236 <  case 551:
6237 <
6238 < /* Line 1806 of yacc.c  */
6958 < #line 2963 "conf_parser.y"
6236 >  case 550:
6237 > /* Line 1787 of yacc.c  */
6238 > #line 2639 "conf_parser.y"
6239      {
6240    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6241   }
6242      break;
6243  
6244 <  case 552:
6245 <
6246 < /* Line 1806 of yacc.c  */
6967 < #line 2966 "conf_parser.y"
6244 >  case 551:
6245 > /* Line 1787 of yacc.c  */
6246 > #line 2642 "conf_parser.y"
6247      {
6248    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6249   }
6250      break;
6251  
6252 <  case 553:
6253 <
6254 < /* Line 1806 of yacc.c  */
6976 < #line 2969 "conf_parser.y"
6252 >  case 552:
6253 > /* Line 1787 of yacc.c  */
6254 > #line 2645 "conf_parser.y"
6255      {
6256    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6257   }
6258      break;
6259  
6260 <  case 554:
6261 <
6262 < /* Line 1806 of yacc.c  */
6985 < #line 2972 "conf_parser.y"
6260 >  case 553:
6261 > /* Line 1787 of yacc.c  */
6262 > #line 2648 "conf_parser.y"
6263      {
6264    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6265   }
6266      break;
6267  
6268 <  case 555:
6269 <
6270 < /* Line 1806 of yacc.c  */
6994 < #line 2975 "conf_parser.y"
6268 >  case 554:
6269 > /* Line 1787 of yacc.c  */
6270 > #line 2651 "conf_parser.y"
6271      {
6272    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6273   }
6274      break;
6275  
6276 <  case 556:
6277 <
6278 < /* Line 1806 of yacc.c  */
7003 < #line 2980 "conf_parser.y"
6276 >  case 555:
6277 > /* Line 1787 of yacc.c  */
6278 > #line 2656 "conf_parser.y"
6279      {
6280    ConfigFileEntry.oper_only_umodes = 0;
6281   }
6282      break;
6283  
6284 <  case 560:
6285 <
6286 < /* Line 1806 of yacc.c  */
7012 < #line 2986 "conf_parser.y"
6284 >  case 559:
6285 > /* Line 1787 of yacc.c  */
6286 > #line 2662 "conf_parser.y"
6287      {
6288    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6289   }
6290      break;
6291  
6292 <  case 561:
6293 <
6294 < /* Line 1806 of yacc.c  */
7021 < #line 2989 "conf_parser.y"
6292 >  case 560:
6293 > /* Line 1787 of yacc.c  */
6294 > #line 2665 "conf_parser.y"
6295      {
6296    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6297   }
6298      break;
6299  
6300 <  case 562:
6301 <
6302 < /* Line 1806 of yacc.c  */
7030 < #line 2992 "conf_parser.y"
6300 >  case 561:
6301 > /* Line 1787 of yacc.c  */
6302 > #line 2668 "conf_parser.y"
6303      {
6304    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6305   }
6306      break;
6307  
6308 <  case 563:
6309 <
6310 < /* Line 1806 of yacc.c  */
7039 < #line 2995 "conf_parser.y"
6308 >  case 562:
6309 > /* Line 1787 of yacc.c  */
6310 > #line 2671 "conf_parser.y"
6311      {
6312    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6313   }
6314      break;
6315  
6316 <  case 564:
6317 <
6318 < /* Line 1806 of yacc.c  */
7048 < #line 2998 "conf_parser.y"
6316 >  case 563:
6317 > /* Line 1787 of yacc.c  */
6318 > #line 2674 "conf_parser.y"
6319      {
6320    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6321   }
6322      break;
6323  
6324 <  case 565:
6325 <
6326 < /* Line 1806 of yacc.c  */
7057 < #line 3001 "conf_parser.y"
6324 >  case 564:
6325 > /* Line 1787 of yacc.c  */
6326 > #line 2677 "conf_parser.y"
6327      {
6328    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6329   }
6330      break;
6331  
6332 <  case 566:
6333 <
6334 < /* Line 1806 of yacc.c  */
7066 < #line 3004 "conf_parser.y"
6332 >  case 565:
6333 > /* Line 1787 of yacc.c  */
6334 > #line 2680 "conf_parser.y"
6335      {
6336    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6337   }
6338      break;
6339  
6340 <  case 567:
6341 <
6342 < /* Line 1806 of yacc.c  */
7075 < #line 3007 "conf_parser.y"
6340 >  case 566:
6341 > /* Line 1787 of yacc.c  */
6342 > #line 2683 "conf_parser.y"
6343      {
6344    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6345   }
6346      break;
6347  
6348 <  case 568:
6349 <
6350 < /* Line 1806 of yacc.c  */
7084 < #line 3010 "conf_parser.y"
6348 >  case 567:
6349 > /* Line 1787 of yacc.c  */
6350 > #line 2686 "conf_parser.y"
6351      {
6352    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6353   }
6354      break;
6355  
6356 <  case 569:
6357 <
6358 < /* Line 1806 of yacc.c  */
7093 < #line 3013 "conf_parser.y"
6356 >  case 568:
6357 > /* Line 1787 of yacc.c  */
6358 > #line 2689 "conf_parser.y"
6359      {
6360    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6361   }
6362      break;
6363  
6364 <  case 570:
6365 <
6366 < /* Line 1806 of yacc.c  */
7102 < #line 3016 "conf_parser.y"
6364 >  case 569:
6365 > /* Line 1787 of yacc.c  */
6366 > #line 2692 "conf_parser.y"
6367      {
6368    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6369   }
6370      break;
6371  
6372 <  case 571:
6373 <
6374 < /* Line 1806 of yacc.c  */
7111 < #line 3019 "conf_parser.y"
6372 >  case 570:
6373 > /* Line 1787 of yacc.c  */
6374 > #line 2695 "conf_parser.y"
6375      {
6376    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6377   }
6378      break;
6379  
6380 <  case 572:
6381 <
6382 < /* Line 1806 of yacc.c  */
7120 < #line 3022 "conf_parser.y"
6380 >  case 571:
6381 > /* Line 1787 of yacc.c  */
6382 > #line 2698 "conf_parser.y"
6383      {
6384    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6385   }
6386      break;
6387  
6388 <  case 573:
6389 <
6390 < /* Line 1806 of yacc.c  */
7129 < #line 3025 "conf_parser.y"
6388 >  case 572:
6389 > /* Line 1787 of yacc.c  */
6390 > #line 2701 "conf_parser.y"
6391      {
6392    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6393   }
6394      break;
6395  
6396 <  case 574:
6397 <
6398 < /* Line 1806 of yacc.c  */
7138 < #line 3028 "conf_parser.y"
6396 >  case 573:
6397 > /* Line 1787 of yacc.c  */
6398 > #line 2704 "conf_parser.y"
6399      {
6400    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6401   }
6402      break;
6403  
6404 <  case 575:
6405 <
6406 < /* Line 1806 of yacc.c  */
7147 < #line 3031 "conf_parser.y"
6404 >  case 574:
6405 > /* Line 1787 of yacc.c  */
6406 > #line 2707 "conf_parser.y"
6407      {
6408    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6409   }
6410      break;
6411  
6412 <  case 576:
6413 <
6414 < /* Line 1806 of yacc.c  */
7156 < #line 3034 "conf_parser.y"
6412 >  case 575:
6413 > /* Line 1787 of yacc.c  */
6414 > #line 2710 "conf_parser.y"
6415      {
6416    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6417   }
6418      break;
6419  
6420 <  case 577:
6421 <
6422 < /* Line 1806 of yacc.c  */
7165 < #line 3037 "conf_parser.y"
6420 >  case 576:
6421 > /* Line 1787 of yacc.c  */
6422 > #line 2713 "conf_parser.y"
6423      {
6424    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6425   }
6426      break;
6427  
6428 <  case 578:
6429 <
6430 < /* Line 1806 of yacc.c  */
7174 < #line 3040 "conf_parser.y"
6428 >  case 577:
6429 > /* Line 1787 of yacc.c  */
6430 > #line 2716 "conf_parser.y"
6431      {
6432    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6433   }
6434      break;
6435  
6436 <  case 579:
6437 <
6438 < /* Line 1806 of yacc.c  */
7183 < #line 3043 "conf_parser.y"
6436 >  case 578:
6437 > /* Line 1787 of yacc.c  */
6438 > #line 2719 "conf_parser.y"
6439      {
6440    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6441   }
6442      break;
6443  
6444 <  case 580:
6444 >  case 579:
6445 > /* Line 1787 of yacc.c  */
6446 > #line 2722 "conf_parser.y"
6447 >    {
6448 >  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6449 > }
6450 >    break;
6451  
6452 < /* Line 1806 of yacc.c  */
6453 < #line 3048 "conf_parser.y"
6452 >  case 580:
6453 > /* Line 1787 of yacc.c  */
6454 > #line 2727 "conf_parser.y"
6455      {
6456    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6457   }
6458      break;
6459  
6460    case 581:
6461 <
6462 < /* Line 1806 of yacc.c  */
7201 < #line 3053 "conf_parser.y"
6461 > /* Line 1787 of yacc.c  */
6462 > #line 2732 "conf_parser.y"
6463      {
6464    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6465   }
6466      break;
6467  
6468    case 582:
6469 <
6470 < /* Line 1806 of yacc.c  */
7210 < #line 3058 "conf_parser.y"
6469 > /* Line 1787 of yacc.c  */
6470 > #line 2737 "conf_parser.y"
6471      {
6472    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6473   }
6474      break;
6475  
6476 <  case 583:
6477 <
6478 < /* Line 1806 of yacc.c  */
7219 < #line 3063 "conf_parser.y"
7220 <    {
7221 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7222 < }
7223 <    break;
7224 <
7225 <  case 584:
7226 <
7227 < /* Line 1806 of yacc.c  */
7228 < #line 3072 "conf_parser.y"
7229 <    {
7230 <  if (conf_parser_ctx.pass == 2)
7231 <  {
7232 <    yy_conf = make_conf_item(GDENY_TYPE);
7233 <    yy_aconf = map_to_conf(yy_conf);
7234 <  }
7235 < }
7236 <    break;
7237 <
7238 <  case 585:
7239 <
7240 < /* Line 1806 of yacc.c  */
7241 < #line 3079 "conf_parser.y"
7242 <    {
7243 <  if (conf_parser_ctx.pass == 2)
7244 <  {
7245 <    /*
7246 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7247 <     * end we will have one extra, so we should free it.
7248 <     */
7249 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7250 <    {
7251 <      delete_conf_item(yy_conf);
7252 <      yy_conf = NULL;
7253 <      yy_aconf = NULL;
7254 <    }
7255 <  }
7256 < }
7257 <    break;
7258 <
7259 <  case 595:
7260 <
7261 < /* Line 1806 of yacc.c  */
7262 < #line 3105 "conf_parser.y"
7263 <    {
7264 <  if (conf_parser_ctx.pass == 2)
7265 <    ConfigFileEntry.glines = yylval.number;
7266 < }
7267 <    break;
7268 <
7269 <  case 596:
7270 <
7271 < /* Line 1806 of yacc.c  */
7272 < #line 3111 "conf_parser.y"
7273 <    {
7274 <  if (conf_parser_ctx.pass == 2)
7275 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
7276 < }
7277 <    break;
7278 <
7279 <  case 597:
7280 <
7281 < /* Line 1806 of yacc.c  */
7282 < #line 3117 "conf_parser.y"
7283 <    {
7284 <  if (conf_parser_ctx.pass == 2)
7285 <    ConfigFileEntry.gline_logging = 0;
7286 < }
7287 <    break;
7288 <
7289 <  case 601:
7290 <
7291 < /* Line 1806 of yacc.c  */
7292 < #line 3123 "conf_parser.y"
7293 <    {
7294 <  if (conf_parser_ctx.pass == 2)
7295 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
7296 < }
7297 <    break;
7298 <
7299 <  case 602:
7300 <
7301 < /* Line 1806 of yacc.c  */
7302 < #line 3127 "conf_parser.y"
7303 <    {
7304 <  if (conf_parser_ctx.pass == 2)
7305 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7306 < }
7307 <    break;
7308 <
7309 <  case 603:
7310 <
7311 < /* Line 1806 of yacc.c  */
7312 < #line 3133 "conf_parser.y"
7313 <    {
7314 <  if (conf_parser_ctx.pass == 2)
7315 <  {
7316 <    struct split_nuh_item nuh;
7317 <
7318 <    nuh.nuhmask  = yylval.string;
7319 <    nuh.nickptr  = NULL;
7320 <    nuh.userptr  = userbuf;
7321 <    nuh.hostptr  = hostbuf;
7322 <
7323 <    nuh.nicksize = 0;
7324 <    nuh.usersize = sizeof(userbuf);
7325 <    nuh.hostsize = sizeof(hostbuf);
7326 <
7327 <    split_nuh(&nuh);
7328 <
7329 <    if (yy_aconf->user == NULL)
7330 <    {
7331 <      DupString(yy_aconf->user, userbuf);
7332 <      DupString(yy_aconf->host, hostbuf);
7333 <    }
7334 <    else
7335 <    {
7336 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7337 <
7338 <      DupString(yy_tmp->user, userbuf);
7339 <      DupString(yy_tmp->host, hostbuf);
7340 <
7341 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7342 <    }
7343 <  }
7344 < }
7345 <    break;
7346 <
7347 <  case 604:
7348 <
7349 < /* Line 1806 of yacc.c  */
7350 < #line 3167 "conf_parser.y"
7351 <    {
7352 <  if (conf_parser_ctx.pass == 2)  
7353 <  {
7354 <    MyFree(yy_conf->name);
7355 <    DupString(yy_conf->name, yylval.string);
7356 <  }
7357 < }
7358 <    break;
7359 <
7360 <  case 605:
7361 <
7362 < /* Line 1806 of yacc.c  */
7363 < #line 3176 "conf_parser.y"
7364 <    {
7365 <  if (conf_parser_ctx.pass == 2)
7366 <    yy_aconf->flags = 0;
7367 < }
7368 <    break;
7369 <
7370 <  case 606:
7371 <
7372 < /* Line 1806 of yacc.c  */
7373 < #line 3180 "conf_parser.y"
7374 <    {
7375 <  if (conf_parser_ctx.pass == 2)
7376 <  {
7377 <    struct CollectItem *yy_tmp = NULL;
7378 <    dlink_node *ptr, *next_ptr;
7379 <
7380 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7381 <    {
7382 <      struct AccessItem *new_aconf;
7383 <      struct ConfItem *new_conf;
7384 <
7385 <      yy_tmp = ptr->data;
7386 <      new_conf = make_conf_item(GDENY_TYPE);
7387 <      new_aconf = map_to_conf(new_conf);
7388 <
7389 <      new_aconf->flags = yy_aconf->flags;
7390 <
7391 <      if (yy_conf->name != NULL)
7392 <        DupString(new_conf->name, yy_conf->name);
7393 <      else
7394 <        DupString(new_conf->name, "*");
7395 <      if (yy_aconf->user != NULL)
7396 <         DupString(new_aconf->user, yy_tmp->user);
7397 <      else  
7398 <        DupString(new_aconf->user, "*");
7399 <      if (yy_aconf->host != NULL)
7400 <        DupString(new_aconf->host, yy_tmp->host);
7401 <      else
7402 <        DupString(new_aconf->host, "*");
7403 <
7404 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7405 <    }
7406 <
7407 <    /*
7408 <     * In case someone has fed us with more than one action= after user/name
7409 <     * which would leak memory  -Michael
7410 <     */
7411 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7412 <      delete_conf_item(yy_conf);
7413 <
7414 <    yy_conf = make_conf_item(GDENY_TYPE);
7415 <    yy_aconf = map_to_conf(yy_conf);
7416 <  }
7417 < }
7418 <    break;
7419 <
7420 <  case 609:
7421 <
7422 < /* Line 1806 of yacc.c  */
7423 < #line 3227 "conf_parser.y"
7424 <    {
7425 <  if (conf_parser_ctx.pass == 2)
7426 <    yy_aconf->flags |= GDENY_REJECT;
7427 < }
7428 <    break;
7429 <
7430 <  case 610:
7431 <
7432 < /* Line 1806 of yacc.c  */
7433 < #line 3231 "conf_parser.y"
7434 <    {
7435 <  if (conf_parser_ctx.pass == 2)
7436 <    yy_aconf->flags |= GDENY_BLOCK;
7437 < }
7438 <    break;
7439 <
7440 <  case 633:
7441 <
7442 < /* Line 1806 of yacc.c  */
7443 < #line 3255 "conf_parser.y"
6476 >  case 599:
6477 > /* Line 1787 of yacc.c  */
6478 > #line 2760 "conf_parser.y"
6479      {
6480    ConfigChannel.disable_fake_channels = yylval.number;
6481   }
6482      break;
6483  
6484 <  case 634:
6485 <
6486 < /* Line 1806 of yacc.c  */
7452 < #line 3260 "conf_parser.y"
7453 <    {
7454 <  ConfigChannel.restrict_channels = yylval.number;
7455 < }
7456 <    break;
7457 <
7458 <  case 635:
7459 <
7460 < /* Line 1806 of yacc.c  */
7461 < #line 3265 "conf_parser.y"
7462 <    {
7463 <  ConfigChannel.disable_local_channels = yylval.number;
7464 < }
7465 <    break;
7466 <
7467 <  case 636:
7468 <
7469 < /* Line 1806 of yacc.c  */
7470 < #line 3270 "conf_parser.y"
7471 <    {
7472 <  ConfigChannel.use_except = yylval.number;
7473 < }
7474 <    break;
7475 <
7476 <  case 637:
7477 <
7478 < /* Line 1806 of yacc.c  */
7479 < #line 3275 "conf_parser.y"
7480 <    {
7481 <  ConfigChannel.use_invex = yylval.number;
7482 < }
7483 <    break;
7484 <
7485 <  case 638:
7486 <
7487 < /* Line 1806 of yacc.c  */
7488 < #line 3280 "conf_parser.y"
7489 <    {
7490 <  ConfigChannel.use_knock = yylval.number;
7491 < }
7492 <    break;
7493 <
7494 <  case 639:
7495 <
7496 < /* Line 1806 of yacc.c  */
7497 < #line 3285 "conf_parser.y"
6484 >  case 600:
6485 > /* Line 1787 of yacc.c  */
6486 > #line 2765 "conf_parser.y"
6487      {
6488    ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6489   }
6490      break;
6491  
6492 <  case 640:
6493 <
6494 < /* Line 1806 of yacc.c  */
7506 < #line 3290 "conf_parser.y"
6492 >  case 601:
6493 > /* Line 1787 of yacc.c  */
6494 > #line 2770 "conf_parser.y"
6495      {
6496    ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6497   }
6498      break;
6499  
6500 <  case 641:
6501 <
6502 < /* Line 1806 of yacc.c  */
7515 < #line 3295 "conf_parser.y"
6500 >  case 602:
6501 > /* Line 1787 of yacc.c  */
6502 > #line 2775 "conf_parser.y"
6503      {
6504    ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6505   }
6506      break;
6507  
6508 <  case 642:
6509 <
6510 < /* Line 1806 of yacc.c  */
7524 < #line 3300 "conf_parser.y"
6508 >  case 603:
6509 > /* Line 1787 of yacc.c  */
6510 > #line 2780 "conf_parser.y"
6511      {
6512 <  ConfigChannel.quiet_on_ban = yylval.number;
6512 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6513   }
6514      break;
6515  
6516 <  case 643:
6517 <
6518 < /* Line 1806 of yacc.c  */
7533 < #line 3305 "conf_parser.y"
6516 >  case 604:
6517 > /* Line 1787 of yacc.c  */
6518 > #line 2785 "conf_parser.y"
6519      {
6520    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6521   }
6522      break;
6523  
6524 <  case 644:
6525 <
6526 < /* Line 1806 of yacc.c  */
7542 < #line 3310 "conf_parser.y"
6524 >  case 605:
6525 > /* Line 1787 of yacc.c  */
6526 > #line 2790 "conf_parser.y"
6527      {
6528    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6529   }
6530      break;
6531  
6532 <  case 645:
6533 <
6534 < /* Line 1806 of yacc.c  */
7551 < #line 3315 "conf_parser.y"
6532 >  case 606:
6533 > /* Line 1787 of yacc.c  */
6534 > #line 2795 "conf_parser.y"
6535      {
6536    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6537   }
6538      break;
6539  
6540 <  case 646:
6541 <
6542 < /* Line 1806 of yacc.c  */
7560 < #line 3320 "conf_parser.y"
6540 >  case 607:
6541 > /* Line 1787 of yacc.c  */
6542 > #line 2800 "conf_parser.y"
6543      {
6544    ConfigChannel.no_create_on_split = yylval.number;
6545   }
6546      break;
6547  
6548 <  case 647:
6549 <
6550 < /* Line 1806 of yacc.c  */
7569 < #line 3325 "conf_parser.y"
6548 >  case 608:
6549 > /* Line 1787 of yacc.c  */
6550 > #line 2805 "conf_parser.y"
6551      {
6552    ConfigChannel.no_join_on_split = yylval.number;
6553   }
6554      break;
6555  
6556 <  case 648:
6557 <
6558 < /* Line 1806 of yacc.c  */
7578 < #line 3330 "conf_parser.y"
7579 <    {
7580 <  ConfigChannel.burst_topicwho = yylval.number;
7581 < }
7582 <    break;
7583 <
7584 <  case 649:
7585 <
7586 < /* Line 1806 of yacc.c  */
7587 < #line 3335 "conf_parser.y"
6556 >  case 609:
6557 > /* Line 1787 of yacc.c  */
6558 > #line 2810 "conf_parser.y"
6559      {
6560    GlobalSetOptions.joinfloodcount = yylval.number;
6561   }
6562      break;
6563  
6564 <  case 650:
6565 <
6566 < /* Line 1806 of yacc.c  */
7596 < #line 3340 "conf_parser.y"
6564 >  case 610:
6565 > /* Line 1787 of yacc.c  */
6566 > #line 2815 "conf_parser.y"
6567      {
6568    GlobalSetOptions.joinfloodtime = yylval.number;
6569   }
6570      break;
6571  
6572 <  case 662:
6573 <
6574 < /* Line 1806 of yacc.c  */
7605 < #line 3359 "conf_parser.y"
6572 >  case 622:
6573 > /* Line 1787 of yacc.c  */
6574 > #line 2834 "conf_parser.y"
6575      {
6576    if (conf_parser_ctx.pass == 2)
6577      ConfigServerHide.flatten_links = yylval.number;
6578   }
6579      break;
6580  
6581 <  case 663:
6582 <
6583 < /* Line 1806 of yacc.c  */
7615 < #line 3365 "conf_parser.y"
6581 >  case 623:
6582 > /* Line 1787 of yacc.c  */
6583 > #line 2840 "conf_parser.y"
6584      {
6585    if (conf_parser_ctx.pass == 2)
6586      ConfigServerHide.hide_servers = yylval.number;
6587   }
6588      break;
6589  
6590 <  case 664:
6590 >  case 624:
6591 > /* Line 1787 of yacc.c  */
6592 > #line 2846 "conf_parser.y"
6593 >    {
6594 >  if (conf_parser_ctx.pass == 2)
6595 >    ConfigServerHide.hide_services = yylval.number;
6596 > }
6597 >    break;
6598  
6599 < /* Line 1806 of yacc.c  */
6600 < #line 3371 "conf_parser.y"
6599 >  case 625:
6600 > /* Line 1787 of yacc.c  */
6601 > #line 2852 "conf_parser.y"
6602      {
6603    if (conf_parser_ctx.pass == 2)
6604    {
6605      MyFree(ConfigServerHide.hidden_name);
6606 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6606 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6607    }
6608   }
6609      break;
6610  
6611 <  case 665:
6612 <
6613 < /* Line 1806 of yacc.c  */
7638 < #line 3380 "conf_parser.y"
6611 >  case 626:
6612 > /* Line 1787 of yacc.c  */
6613 > #line 2861 "conf_parser.y"
6614      {
6615    if (conf_parser_ctx.pass == 2)
6616    {
# Line 7650 | Line 6625 | yyreduce:
6625   }
6626      break;
6627  
6628 <  case 666:
6629 <
6630 < /* Line 1806 of yacc.c  */
7656 < #line 3394 "conf_parser.y"
6628 >  case 627:
6629 > /* Line 1787 of yacc.c  */
6630 > #line 2875 "conf_parser.y"
6631      {
6632    if (conf_parser_ctx.pass == 2)
6633      ConfigServerHide.hidden = yylval.number;
6634   }
6635      break;
6636  
6637 <  case 667:
6638 <
6639 < /* Line 1806 of yacc.c  */
7666 < #line 3400 "conf_parser.y"
7667 <    {
7668 <  if (conf_parser_ctx.pass == 2)
7669 <    ConfigServerHide.disable_hidden = yylval.number;
7670 < }
7671 <    break;
7672 <
7673 <  case 668:
7674 <
7675 < /* Line 1806 of yacc.c  */
7676 < #line 3406 "conf_parser.y"
6637 >  case 628:
6638 > /* Line 1787 of yacc.c  */
6639 > #line 2881 "conf_parser.y"
6640      {
6641    if (conf_parser_ctx.pass == 2)
6642      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7681 | Line 6644 | yyreduce:
6644      break;
6645  
6646  
6647 <
6648 < /* Line 1806 of yacc.c  */
7686 < #line 7687 "conf_parser.c"
6647 > /* Line 1787 of yacc.c  */
6648 > #line 6649 "conf_parser.c"
6649        default: break;
6650      }
6651    /* User semantic actions sometimes alter yychar, and that requires
# Line 7846 | Line 6808 | yyerrlab1:
6808        YY_STACK_PRINT (yyss, yyssp);
6809      }
6810  
6811 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6812    *++yyvsp = yylval;
6813 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6814  
6815  
6816    /* Shift the error token.  */
# Line 7870 | Line 6834 | yyabortlab:
6834    yyresult = 1;
6835    goto yyreturn;
6836  
6837 < #if !defined(yyoverflow) || YYERROR_VERBOSE
6837 > #if !defined yyoverflow || YYERROR_VERBOSE
6838   /*-------------------------------------------------.
6839   | yyexhaustedlab -- memory exhaustion comes here.  |
6840   `-------------------------------------------------*/
# Line 7912 | Line 6876 | yyreturn:
6876   }
6877  
6878  
7915

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1366 by michael, Tue Apr 24 18:35:34 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords), Revision 1946 by michael, Sun May 5 10:21:40 2013 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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