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

Comparing:
ircd-hybrid-8/src/ircd_parser.c (file contents), Revision 1301 by michael, Sat Mar 10 21:47:17 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 1644 by michael, Tue Nov 6 22:20:16 2012 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.5.  */
1 > /* A Bison parser, made by GNU Bison 2.6.2.33-cc5a9.  */
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-2012 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.6.2.33-cc5a9"
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 <
66 < /* Line 268 of yacc.c  */
69 < #line 25 "ircd_parser.y"
65 > /* Line 358 of yacc.c  */
66 > #line 25 "conf_parser.y"
67  
68  
69   #define YY_NO_UNPUT
# Line 77 | Line 74
74   #include "stdinc.h"
75   #include "ircd.h"
76   #include "list.h"
77 < #include "s_conf.h"
77 > #include "conf.h"
78 > #include "conf_class.h"
79   #include "event.h"
80 < #include "s_log.h"
80 > #include "log.h"
81   #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
83   #include "sprintf_irc.h"
# Line 97 | Line 95
95   #include <openssl/rsa.h>
96   #include <openssl/bio.h>
97   #include <openssl/pem.h>
98 + #include <openssl/dh.h>
99   #endif
100  
101 + int yylex(void);
102 +
103   static char *class_name = NULL;
104 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
104 > static struct MaskItem *yy_conf = NULL;
105   static struct ClassItem *yy_class = NULL;
106   static char *yy_class_name = NULL;
107  
108   static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 static dlink_list hub_conf_list  = { NULL, NULL, 0 };
111 static dlink_list leaf_conf_list = { NULL, NULL, 0 };
109   static unsigned int listener_flags = 0;
110   static unsigned int regex_ban = 0;
111   static char userbuf[IRCD_BUFSIZE];
# Line 149 | Line 146 | free_collect_item(struct CollectItem *it
146    MyFree(item);
147   }
148  
152 static void
153 unhook_hub_leaf_confs(void)
154 {
155  dlink_node *ptr;
156  dlink_node *next_ptr;
157  struct CollectItem *yy_hconf;
158  struct CollectItem *yy_lconf;
159
160  DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
161  {
162    yy_hconf = ptr->data;
163    dlinkDelete(&yy_hconf->node, &hub_conf_list);
164    free_collect_item(yy_hconf);
165  }
166
167  DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
168  {
169    yy_lconf = ptr->data;
170    dlinkDelete(&yy_lconf->node, &leaf_conf_list);
171    free_collect_item(yy_lconf);
172  }
173 }
174
175
149  
150 < /* Line 268 of yacc.c  */
151 < #line 179 "ircd_parser.c"
150 > /* Line 358 of yacc.c  */
151 > #line 152 "conf_parser.c"
152  
153 < /* Enabling traces.  */
154 < #ifndef YYDEBUG
155 < # define YYDEBUG 0
156 < #endif
153 > # ifndef YY_NULL
154 > #  if defined __cplusplus && 201103L <= __cplusplus
155 > #   define YY_NULL nullptr
156 > #  else
157 > #   define YY_NULL 0
158 > #  endif
159 > # endif
160  
161   /* Enabling verbose error messages.  */
162   #ifdef YYERROR_VERBOSE
# Line 190 | Line 166 | unhook_hub_leaf_confs(void)
166   # define YYERROR_VERBOSE 0
167   #endif
168  
169 < /* Enabling the token table.  */
170 < #ifndef YYTOKEN_TABLE
171 < # define YYTOKEN_TABLE 0
169 > /* In a future release of Bison, this section will be replaced
170 >   by #include "y.tab.h".  */
171 > #ifndef YY_YY_Y_TAB_H_INCLUDED
172 > # define YY_YY_Y_TAB_H_INCLUDED
173 > /* Enabling traces.  */
174 > #ifndef YYDEBUG
175 > # define YYDEBUG 0
176 > #endif
177 > #if YYDEBUG
178 > extern int yydebug;
179   #endif
197
180  
181   /* Tokens.  */
182   #ifndef YYTOKENTYPE
# Line 203 | Line 185 | unhook_hub_leaf_confs(void)
185        know about them.  */
186     enum yytokentype {
187       ACCEPT_PASSWORD = 258,
188 <     ACTION = 259,
189 <     ADMIN = 260,
190 <     AFTYPE = 261,
191 <     T_ALLOW = 262,
192 <     ANTI_NICK_FLOOD = 263,
193 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 264,
194 <     AUTOCONN = 265,
195 <     T_BLOCK = 266,
196 <     BURST_AWAY = 267,
197 <     BURST_TOPICWHO = 268,
198 <     BYTES = 269,
199 <     KBYTES = 270,
200 <     MBYTES = 271,
201 <     GBYTES = 272,
202 <     TBYTES = 273,
203 <     CALLER_ID_WAIT = 274,
204 <     CAN_FLOOD = 275,
205 <     CHANNEL = 276,
206 <     CIDR_BITLEN_IPV4 = 277,
207 <     CIDR_BITLEN_IPV6 = 278,
208 <     CIPHER_PREFERENCE = 279,
209 <     CLASS = 280,
210 <     COMPRESSED = 281,
211 <     COMPRESSION_LEVEL = 282,
212 <     CONNECT = 283,
213 <     CONNECTFREQ = 284,
214 <     CRYPTLINK = 285,
215 <     DEFAULT_CIPHER_PREFERENCE = 286,
216 <     DEFAULT_FLOODCOUNT = 287,
217 <     DEFAULT_SPLIT_SERVER_COUNT = 288,
218 <     DEFAULT_SPLIT_USER_COUNT = 289,
219 <     DENY = 290,
220 <     DESCRIPTION = 291,
221 <     DIE = 292,
222 <     DISABLE_AUTH = 293,
223 <     DISABLE_FAKE_CHANNELS = 294,
224 <     DISABLE_HIDDEN = 295,
225 <     DISABLE_LOCAL_CHANNELS = 296,
226 <     DISABLE_REMOTE_COMMANDS = 297,
227 <     DOTS_IN_IDENT = 298,
228 <     DURATION = 299,
229 <     EGDPOOL_PATH = 300,
230 <     EMAIL = 301,
231 <     ENABLE = 302,
232 <     ENCRYPTED = 303,
233 <     EXCEED_LIMIT = 304,
234 <     EXEMPT = 305,
235 <     FAILED_OPER_NOTICE = 306,
236 <     IRCD_FLAGS = 307,
237 <     FLATTEN_LINKS = 308,
238 <     GECOS = 309,
239 <     GENERAL = 310,
240 <     GLINE = 311,
241 <     GLINES = 312,
242 <     GLINE_EXEMPT = 313,
243 <     GLINE_TIME = 314,
244 <     GLINE_MIN_CIDR = 315,
245 <     GLINE_MIN_CIDR6 = 316,
246 <     GLOBAL_KILL = 317,
247 <     IRCD_AUTH = 318,
248 <     NEED_IDENT = 319,
249 <     HAVENT_READ_CONF = 320,
250 <     HIDDEN = 321,
251 <     HIDDEN_NAME = 322,
252 <     HIDE_SERVER_IPS = 323,
253 <     HIDE_SERVERS = 324,
254 <     HIDE_SPOOF_IPS = 325,
255 <     HOST = 326,
256 <     HUB = 327,
257 <     HUB_MASK = 328,
258 <     IGNORE_BOGUS_TS = 329,
259 <     INVISIBLE_ON_CONNECT = 330,
260 <     IP = 331,
261 <     KILL = 332,
262 <     KILL_CHASE_TIME_LIMIT = 333,
263 <     KLINE = 334,
264 <     KLINE_EXEMPT = 335,
265 <     KLINE_REASON = 336,
266 <     KLINE_WITH_REASON = 337,
267 <     KNOCK_DELAY = 338,
268 <     KNOCK_DELAY_CHANNEL = 339,
269 <     LEAF_MASK = 340,
270 <     LINKS_DELAY = 341,
271 <     LISTEN = 342,
272 <     T_LOG = 343,
273 <     MAX_ACCEPT = 344,
274 <     MAX_BANS = 345,
275 <     MAX_CHANS_PER_USER = 346,
276 <     MAX_GLOBAL = 347,
277 <     MAX_IDENT = 348,
278 <     MAX_LOCAL = 349,
279 <     MAX_NICK_CHANGES = 350,
280 <     MAX_NICK_TIME = 351,
281 <     MAX_NUMBER = 352,
282 <     MAX_TARGETS = 353,
283 <     MAX_WATCH = 354,
284 <     MESSAGE_LOCALE = 355,
285 <     MIN_NONWILDCARD = 356,
286 <     MIN_NONWILDCARD_SIMPLE = 357,
287 <     MODULE = 358,
288 <     MODULES = 359,
289 <     NAME = 360,
290 <     NEED_PASSWORD = 361,
291 <     NETWORK_DESC = 362,
292 <     NETWORK_NAME = 363,
293 <     NICK = 364,
294 <     NICK_CHANGES = 365,
295 <     NO_CREATE_ON_SPLIT = 366,
296 <     NO_JOIN_ON_SPLIT = 367,
297 <     NO_OPER_FLOOD = 368,
298 <     NO_TILDE = 369,
299 <     NUMBER = 370,
300 <     NUMBER_PER_IDENT = 371,
301 <     NUMBER_PER_CIDR = 372,
302 <     NUMBER_PER_IP = 373,
303 <     NUMBER_PER_IP_GLOBAL = 374,
304 <     OPERATOR = 375,
305 <     OPERS_BYPASS_CALLERID = 376,
306 <     OPER_ONLY_UMODES = 377,
307 <     OPER_PASS_RESV = 378,
308 <     OPER_SPY_T = 379,
309 <     OPER_UMODES = 380,
310 <     JOIN_FLOOD_COUNT = 381,
311 <     JOIN_FLOOD_TIME = 382,
312 <     PACE_WAIT = 383,
313 <     PACE_WAIT_SIMPLE = 384,
314 <     PASSWORD = 385,
315 <     PATH = 386,
316 <     PING_COOKIE = 387,
317 <     PING_TIME = 388,
318 <     PING_WARNING = 389,
319 <     PORT = 390,
320 <     QSTRING = 391,
321 <     QUIET_ON_BAN = 392,
322 <     REASON = 393,
323 <     REDIRPORT = 394,
324 <     REDIRSERV = 395,
325 <     REGEX_T = 396,
326 <     REHASH = 397,
327 <     TREJECT_HOLD_TIME = 398,
328 <     REMOTE = 399,
329 <     REMOTEBAN = 400,
330 <     RESTRICT_CHANNELS = 401,
331 <     RESTRICTED = 402,
332 <     RSA_PRIVATE_KEY_FILE = 403,
333 <     RSA_PUBLIC_KEY_FILE = 404,
334 <     SSL_CERTIFICATE_FILE = 405,
335 <     T_SSL_CONNECTION_METHOD = 406,
336 <     T_SSLV3 = 407,
337 <     T_TLSV1 = 408,
338 <     RESV = 409,
339 <     RESV_EXEMPT = 410,
340 <     SECONDS = 411,
341 <     MINUTES = 412,
342 <     HOURS = 413,
343 <     DAYS = 414,
344 <     WEEKS = 415,
345 <     SENDQ = 416,
346 <     SEND_PASSWORD = 417,
347 <     SERVERHIDE = 418,
348 <     SERVERINFO = 419,
349 <     SERVLINK_PATH = 420,
350 <     IRCD_SID = 421,
351 <     TKLINE_EXPIRE_NOTICES = 422,
352 <     T_SHARED = 423,
353 <     T_CLUSTER = 424,
354 <     TYPE = 425,
355 <     SHORT_MOTD = 426,
356 <     SILENT = 427,
357 <     SPOOF = 428,
358 <     SPOOF_NOTICE = 429,
359 <     STATS_E_DISABLED = 430,
360 <     STATS_I_OPER_ONLY = 431,
361 <     STATS_K_OPER_ONLY = 432,
362 <     STATS_O_OPER_ONLY = 433,
363 <     STATS_P_OPER_ONLY = 434,
364 <     TBOOL = 435,
365 <     TMASKED = 436,
366 <     T_REJECT = 437,
367 <     TS_MAX_DELTA = 438,
368 <     TS_WARN_DELTA = 439,
369 <     TWODOTS = 440,
370 <     T_ALL = 441,
371 <     T_BOTS = 442,
372 <     T_SOFTCALLERID = 443,
373 <     T_CALLERID = 444,
374 <     T_CCONN = 445,
375 <     T_CCONN_FULL = 446,
376 <     T_CLIENT_FLOOD = 447,
377 <     T_DEAF = 448,
378 <     T_DEBUG = 449,
379 <     T_DLINE = 450,
380 <     T_DRONE = 451,
381 <     T_EXTERNAL = 452,
382 <     T_FULL = 453,
383 <     T_INVISIBLE = 454,
384 <     T_IPV4 = 455,
385 <     T_IPV6 = 456,
386 <     T_LOCOPS = 457,
387 <     T_MAX_CLIENTS = 458,
388 <     T_NCHANGE = 459,
389 <     T_OPERWALL = 460,
390 <     T_REJ = 461,
391 <     T_SERVER = 462,
392 <     T_SERVNOTICE = 463,
393 <     T_SKILL = 464,
394 <     T_SPY = 465,
395 <     T_SSL = 466,
396 <     T_UMODES = 467,
397 <     T_UNAUTH = 468,
416 <     T_UNDLINE = 469,
417 <     T_UNLIMITED = 470,
418 <     T_UNRESV = 471,
419 <     T_UNXLINE = 472,
420 <     T_GLOBOPS = 473,
421 <     T_WALLOP = 474,
422 <     T_RESTART = 475,
423 <     T_SERVICE = 476,
424 <     T_SERVICES_NAME = 477,
425 <     T_TIMESTAMP = 478,
426 <     THROTTLE_TIME = 479,
427 <     TOPICBURST = 480,
428 <     TRUE_NO_OPER_FLOOD = 481,
429 <     TKLINE = 482,
430 <     TXLINE = 483,
431 <     TRESV = 484,
432 <     UNKLINE = 485,
433 <     USER = 486,
434 <     USE_EGD = 487,
435 <     USE_EXCEPT = 488,
436 <     USE_INVEX = 489,
437 <     USE_KNOCK = 490,
438 <     USE_LOGGING = 491,
439 <     USE_WHOIS_ACTUALLY = 492,
440 <     VHOST = 493,
441 <     VHOST6 = 494,
442 <     XLINE = 495,
443 <     WARN = 496,
444 <     WARN_NO_NLINE = 497,
445 <     T_SIZE = 498,
446 <     T_FILE = 499
188 >     ADMIN = 259,
189 >     AFTYPE = 260,
190 >     ANTI_NICK_FLOOD = 261,
191 >     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
192 >     AUTOCONN = 263,
193 >     BYTES = 264,
194 >     KBYTES = 265,
195 >     MBYTES = 266,
196 >     CALLER_ID_WAIT = 267,
197 >     CAN_FLOOD = 268,
198 >     CHANNEL = 269,
199 >     CIDR_BITLEN_IPV4 = 270,
200 >     CIDR_BITLEN_IPV6 = 271,
201 >     CLASS = 272,
202 >     CONNECT = 273,
203 >     CONNECTFREQ = 274,
204 >     DEFAULT_FLOODCOUNT = 275,
205 >     DEFAULT_SPLIT_SERVER_COUNT = 276,
206 >     DEFAULT_SPLIT_USER_COUNT = 277,
207 >     DENY = 278,
208 >     DESCRIPTION = 279,
209 >     DIE = 280,
210 >     DISABLE_AUTH = 281,
211 >     DISABLE_FAKE_CHANNELS = 282,
212 >     DISABLE_REMOTE_COMMANDS = 283,
213 >     DOTS_IN_IDENT = 284,
214 >     EGDPOOL_PATH = 285,
215 >     EMAIL = 286,
216 >     ENCRYPTED = 287,
217 >     EXCEED_LIMIT = 288,
218 >     EXEMPT = 289,
219 >     FAILED_OPER_NOTICE = 290,
220 >     IRCD_FLAGS = 291,
221 >     FLATTEN_LINKS = 292,
222 >     GECOS = 293,
223 >     GENERAL = 294,
224 >     GLINE = 295,
225 >     GLINE_DURATION = 296,
226 >     GLINE_ENABLE = 297,
227 >     GLINE_EXEMPT = 298,
228 >     GLINE_REQUEST_DURATION = 299,
229 >     GLINE_MIN_CIDR = 300,
230 >     GLINE_MIN_CIDR6 = 301,
231 >     GLOBAL_KILL = 302,
232 >     IRCD_AUTH = 303,
233 >     NEED_IDENT = 304,
234 >     HAVENT_READ_CONF = 305,
235 >     HIDDEN = 306,
236 >     HIDDEN_NAME = 307,
237 >     HIDE_SERVER_IPS = 308,
238 >     HIDE_SERVERS = 309,
239 >     HIDE_SPOOF_IPS = 310,
240 >     HOST = 311,
241 >     HUB = 312,
242 >     HUB_MASK = 313,
243 >     IGNORE_BOGUS_TS = 314,
244 >     INVISIBLE_ON_CONNECT = 315,
245 >     IP = 316,
246 >     KILL = 317,
247 >     KILL_CHASE_TIME_LIMIT = 318,
248 >     KLINE = 319,
249 >     KLINE_EXEMPT = 320,
250 >     KNOCK_DELAY = 321,
251 >     KNOCK_DELAY_CHANNEL = 322,
252 >     LEAF_MASK = 323,
253 >     LINKS_DELAY = 324,
254 >     LISTEN = 325,
255 >     T_LOG = 326,
256 >     MAX_ACCEPT = 327,
257 >     MAX_BANS = 328,
258 >     MAX_CHANS_PER_OPER = 329,
259 >     MAX_CHANS_PER_USER = 330,
260 >     MAX_GLOBAL = 331,
261 >     MAX_IDENT = 332,
262 >     MAX_LOCAL = 333,
263 >     MAX_NICK_CHANGES = 334,
264 >     MAX_NICK_TIME = 335,
265 >     MAX_NUMBER = 336,
266 >     MAX_TARGETS = 337,
267 >     MAX_WATCH = 338,
268 >     MESSAGE_LOCALE = 339,
269 >     MIN_NONWILDCARD = 340,
270 >     MIN_NONWILDCARD_SIMPLE = 341,
271 >     MODULE = 342,
272 >     MODULES = 343,
273 >     NAME = 344,
274 >     NEED_PASSWORD = 345,
275 >     NETWORK_DESC = 346,
276 >     NETWORK_NAME = 347,
277 >     NICK = 348,
278 >     NICK_CHANGES = 349,
279 >     NO_CREATE_ON_SPLIT = 350,
280 >     NO_JOIN_ON_SPLIT = 351,
281 >     NO_OPER_FLOOD = 352,
282 >     NO_TILDE = 353,
283 >     NUMBER = 354,
284 >     NUMBER_PER_CIDR = 355,
285 >     NUMBER_PER_IP = 356,
286 >     OPERATOR = 357,
287 >     OPERS_BYPASS_CALLERID = 358,
288 >     OPER_ONLY_UMODES = 359,
289 >     OPER_PASS_RESV = 360,
290 >     OPER_SPY_T = 361,
291 >     OPER_UMODES = 362,
292 >     JOIN_FLOOD_COUNT = 363,
293 >     JOIN_FLOOD_TIME = 364,
294 >     PACE_WAIT = 365,
295 >     PACE_WAIT_SIMPLE = 366,
296 >     PASSWORD = 367,
297 >     PATH = 368,
298 >     PING_COOKIE = 369,
299 >     PING_TIME = 370,
300 >     PORT = 371,
301 >     QSTRING = 372,
302 >     QUIET_ON_BAN = 373,
303 >     REASON = 374,
304 >     REDIRPORT = 375,
305 >     REDIRSERV = 376,
306 >     REGEX_T = 377,
307 >     REHASH = 378,
308 >     REMOTE = 379,
309 >     REMOTEBAN = 380,
310 >     RESTRICT_CHANNELS = 381,
311 >     RSA_PRIVATE_KEY_FILE = 382,
312 >     RSA_PUBLIC_KEY_FILE = 383,
313 >     SSL_CERTIFICATE_FILE = 384,
314 >     SSL_DH_PARAM_FILE = 385,
315 >     T_SSL_CLIENT_METHOD = 386,
316 >     T_SSL_SERVER_METHOD = 387,
317 >     T_SSLV3 = 388,
318 >     T_TLSV1 = 389,
319 >     RESV = 390,
320 >     RESV_EXEMPT = 391,
321 >     SECONDS = 392,
322 >     MINUTES = 393,
323 >     HOURS = 394,
324 >     DAYS = 395,
325 >     WEEKS = 396,
326 >     SENDQ = 397,
327 >     SEND_PASSWORD = 398,
328 >     SERVERHIDE = 399,
329 >     SERVERINFO = 400,
330 >     IRCD_SID = 401,
331 >     TKLINE_EXPIRE_NOTICES = 402,
332 >     T_SHARED = 403,
333 >     T_CLUSTER = 404,
334 >     TYPE = 405,
335 >     SHORT_MOTD = 406,
336 >     SPOOF = 407,
337 >     SPOOF_NOTICE = 408,
338 >     STATS_E_DISABLED = 409,
339 >     STATS_I_OPER_ONLY = 410,
340 >     STATS_K_OPER_ONLY = 411,
341 >     STATS_O_OPER_ONLY = 412,
342 >     STATS_P_OPER_ONLY = 413,
343 >     TBOOL = 414,
344 >     TMASKED = 415,
345 >     TS_MAX_DELTA = 416,
346 >     TS_WARN_DELTA = 417,
347 >     TWODOTS = 418,
348 >     T_ALL = 419,
349 >     T_BOTS = 420,
350 >     T_SOFTCALLERID = 421,
351 >     T_CALLERID = 422,
352 >     T_CCONN = 423,
353 >     T_CCONN_FULL = 424,
354 >     T_SSL_CIPHER_LIST = 425,
355 >     T_DEAF = 426,
356 >     T_DEBUG = 427,
357 >     T_DLINE = 428,
358 >     T_EXTERNAL = 429,
359 >     T_FULL = 430,
360 >     T_INVISIBLE = 431,
361 >     T_IPV4 = 432,
362 >     T_IPV6 = 433,
363 >     T_LOCOPS = 434,
364 >     T_MAX_CLIENTS = 435,
365 >     T_NCHANGE = 436,
366 >     T_OPERWALL = 437,
367 >     T_RECVQ = 438,
368 >     T_REJ = 439,
369 >     T_SERVER = 440,
370 >     T_SERVNOTICE = 441,
371 >     T_SET = 442,
372 >     T_SKILL = 443,
373 >     T_SPY = 444,
374 >     T_SSL = 445,
375 >     T_UMODES = 446,
376 >     T_UNAUTH = 447,
377 >     T_UNDLINE = 448,
378 >     T_UNLIMITED = 449,
379 >     T_UNRESV = 450,
380 >     T_UNXLINE = 451,
381 >     T_GLOBOPS = 452,
382 >     T_WALLOP = 453,
383 >     T_RESTART = 454,
384 >     T_SERVICE = 455,
385 >     T_SERVICES_NAME = 456,
386 >     THROTTLE_TIME = 457,
387 >     TRUE_NO_OPER_FLOOD = 458,
388 >     UNKLINE = 459,
389 >     USER = 460,
390 >     USE_EGD = 461,
391 >     USE_LOGGING = 462,
392 >     VHOST = 463,
393 >     VHOST6 = 464,
394 >     XLINE = 465,
395 >     WARN_NO_NLINE = 466,
396 >     T_SIZE = 467,
397 >     T_FILE = 468
398     };
399   #endif
400   /* Tokens.  */
401   #define ACCEPT_PASSWORD 258
402 < #define ACTION 259
403 < #define ADMIN 260
404 < #define AFTYPE 261
405 < #define T_ALLOW 262
406 < #define ANTI_NICK_FLOOD 263
407 < #define ANTI_SPAM_EXIT_MESSAGE_TIME 264
408 < #define AUTOCONN 265
409 < #define T_BLOCK 266
410 < #define BURST_AWAY 267
411 < #define BURST_TOPICWHO 268
412 < #define BYTES 269
413 < #define KBYTES 270
414 < #define MBYTES 271
415 < #define GBYTES 272
416 < #define TBYTES 273
417 < #define CALLER_ID_WAIT 274
418 < #define CAN_FLOOD 275
419 < #define CHANNEL 276
420 < #define CIDR_BITLEN_IPV4 277
421 < #define CIDR_BITLEN_IPV6 278
422 < #define CIPHER_PREFERENCE 279
423 < #define CLASS 280
424 < #define COMPRESSED 281
425 < #define COMPRESSION_LEVEL 282
426 < #define CONNECT 283
427 < #define CONNECTFREQ 284
428 < #define CRYPTLINK 285
429 < #define DEFAULT_CIPHER_PREFERENCE 286
430 < #define DEFAULT_FLOODCOUNT 287
431 < #define DEFAULT_SPLIT_SERVER_COUNT 288
432 < #define DEFAULT_SPLIT_USER_COUNT 289
433 < #define DENY 290
434 < #define DESCRIPTION 291
435 < #define DIE 292
436 < #define DISABLE_AUTH 293
437 < #define DISABLE_FAKE_CHANNELS 294
438 < #define DISABLE_HIDDEN 295
439 < #define DISABLE_LOCAL_CHANNELS 296
440 < #define DISABLE_REMOTE_COMMANDS 297
441 < #define DOTS_IN_IDENT 298
442 < #define DURATION 299
443 < #define EGDPOOL_PATH 300
444 < #define EMAIL 301
445 < #define ENABLE 302
446 < #define ENCRYPTED 303
447 < #define EXCEED_LIMIT 304
448 < #define EXEMPT 305
449 < #define FAILED_OPER_NOTICE 306
450 < #define IRCD_FLAGS 307
451 < #define FLATTEN_LINKS 308
452 < #define GECOS 309
453 < #define GENERAL 310
454 < #define GLINE 311
455 < #define GLINES 312
456 < #define GLINE_EXEMPT 313
457 < #define GLINE_TIME 314
458 < #define GLINE_MIN_CIDR 315
459 < #define GLINE_MIN_CIDR6 316
460 < #define GLOBAL_KILL 317
461 < #define IRCD_AUTH 318
462 < #define NEED_IDENT 319
463 < #define HAVENT_READ_CONF 320
464 < #define HIDDEN 321
465 < #define HIDDEN_NAME 322
466 < #define HIDE_SERVER_IPS 323
467 < #define HIDE_SERVERS 324
468 < #define HIDE_SPOOF_IPS 325
469 < #define HOST 326
470 < #define HUB 327
471 < #define HUB_MASK 328
472 < #define IGNORE_BOGUS_TS 329
473 < #define INVISIBLE_ON_CONNECT 330
474 < #define IP 331
475 < #define KILL 332
476 < #define KILL_CHASE_TIME_LIMIT 333
477 < #define KLINE 334
478 < #define KLINE_EXEMPT 335
479 < #define KLINE_REASON 336
480 < #define KLINE_WITH_REASON 337
481 < #define KNOCK_DELAY 338
482 < #define KNOCK_DELAY_CHANNEL 339
483 < #define LEAF_MASK 340
484 < #define LINKS_DELAY 341
485 < #define LISTEN 342
486 < #define T_LOG 343
487 < #define MAX_ACCEPT 344
488 < #define MAX_BANS 345
489 < #define MAX_CHANS_PER_USER 346
490 < #define MAX_GLOBAL 347
491 < #define MAX_IDENT 348
492 < #define MAX_LOCAL 349
493 < #define MAX_NICK_CHANGES 350
494 < #define MAX_NICK_TIME 351
495 < #define MAX_NUMBER 352
496 < #define MAX_TARGETS 353
497 < #define MAX_WATCH 354
498 < #define MESSAGE_LOCALE 355
499 < #define MIN_NONWILDCARD 356
500 < #define MIN_NONWILDCARD_SIMPLE 357
501 < #define MODULE 358
502 < #define MODULES 359
503 < #define NAME 360
504 < #define NEED_PASSWORD 361
505 < #define NETWORK_DESC 362
506 < #define NETWORK_NAME 363
507 < #define NICK 364
508 < #define NICK_CHANGES 365
509 < #define NO_CREATE_ON_SPLIT 366
510 < #define NO_JOIN_ON_SPLIT 367
511 < #define NO_OPER_FLOOD 368
512 < #define NO_TILDE 369
513 < #define NUMBER 370
514 < #define NUMBER_PER_IDENT 371
515 < #define NUMBER_PER_CIDR 372
516 < #define NUMBER_PER_IP 373
517 < #define NUMBER_PER_IP_GLOBAL 374
518 < #define OPERATOR 375
519 < #define OPERS_BYPASS_CALLERID 376
520 < #define OPER_ONLY_UMODES 377
521 < #define OPER_PASS_RESV 378
522 < #define OPER_SPY_T 379
523 < #define OPER_UMODES 380
524 < #define JOIN_FLOOD_COUNT 381
525 < #define JOIN_FLOOD_TIME 382
526 < #define PACE_WAIT 383
527 < #define PACE_WAIT_SIMPLE 384
528 < #define PASSWORD 385
529 < #define PATH 386
530 < #define PING_COOKIE 387
531 < #define PING_TIME 388
532 < #define PING_WARNING 389
533 < #define PORT 390
534 < #define QSTRING 391
535 < #define QUIET_ON_BAN 392
536 < #define REASON 393
537 < #define REDIRPORT 394
538 < #define REDIRSERV 395
539 < #define REGEX_T 396
540 < #define REHASH 397
541 < #define TREJECT_HOLD_TIME 398
542 < #define REMOTE 399
543 < #define REMOTEBAN 400
544 < #define RESTRICT_CHANNELS 401
545 < #define RESTRICTED 402
546 < #define RSA_PRIVATE_KEY_FILE 403
547 < #define RSA_PUBLIC_KEY_FILE 404
548 < #define SSL_CERTIFICATE_FILE 405
549 < #define T_SSL_CONNECTION_METHOD 406
550 < #define T_SSLV3 407
551 < #define T_TLSV1 408
552 < #define RESV 409
553 < #define RESV_EXEMPT 410
554 < #define SECONDS 411
555 < #define MINUTES 412
556 < #define HOURS 413
557 < #define DAYS 414
558 < #define WEEKS 415
559 < #define SENDQ 416
560 < #define SEND_PASSWORD 417
561 < #define SERVERHIDE 418
562 < #define SERVERINFO 419
563 < #define SERVLINK_PATH 420
564 < #define IRCD_SID 421
565 < #define TKLINE_EXPIRE_NOTICES 422
566 < #define T_SHARED 423
567 < #define T_CLUSTER 424
568 < #define TYPE 425
569 < #define SHORT_MOTD 426
570 < #define SILENT 427
571 < #define SPOOF 428
572 < #define SPOOF_NOTICE 429
573 < #define STATS_E_DISABLED 430
574 < #define STATS_I_OPER_ONLY 431
575 < #define STATS_K_OPER_ONLY 432
576 < #define STATS_O_OPER_ONLY 433
577 < #define STATS_P_OPER_ONLY 434
578 < #define TBOOL 435
579 < #define TMASKED 436
580 < #define T_REJECT 437
581 < #define TS_MAX_DELTA 438
582 < #define TS_WARN_DELTA 439
583 < #define TWODOTS 440
584 < #define T_ALL 441
585 < #define T_BOTS 442
586 < #define T_SOFTCALLERID 443
587 < #define T_CALLERID 444
588 < #define T_CCONN 445
589 < #define T_CCONN_FULL 446
590 < #define T_CLIENT_FLOOD 447
591 < #define T_DEAF 448
592 < #define T_DEBUG 449
593 < #define T_DLINE 450
594 < #define T_DRONE 451
595 < #define T_EXTERNAL 452
596 < #define T_FULL 453
597 < #define T_INVISIBLE 454
598 < #define T_IPV4 455
599 < #define T_IPV6 456
600 < #define T_LOCOPS 457
601 < #define T_MAX_CLIENTS 458
602 < #define T_NCHANGE 459
603 < #define T_OPERWALL 460
604 < #define T_REJ 461
605 < #define T_SERVER 462
606 < #define T_SERVNOTICE 463
607 < #define T_SKILL 464
608 < #define T_SPY 465
609 < #define T_SSL 466
610 < #define T_UMODES 467
611 < #define T_UNAUTH 468
661 < #define T_UNDLINE 469
662 < #define T_UNLIMITED 470
663 < #define T_UNRESV 471
664 < #define T_UNXLINE 472
665 < #define T_GLOBOPS 473
666 < #define T_WALLOP 474
667 < #define T_RESTART 475
668 < #define T_SERVICE 476
669 < #define T_SERVICES_NAME 477
670 < #define T_TIMESTAMP 478
671 < #define THROTTLE_TIME 479
672 < #define TOPICBURST 480
673 < #define TRUE_NO_OPER_FLOOD 481
674 < #define TKLINE 482
675 < #define TXLINE 483
676 < #define TRESV 484
677 < #define UNKLINE 485
678 < #define USER 486
679 < #define USE_EGD 487
680 < #define USE_EXCEPT 488
681 < #define USE_INVEX 489
682 < #define USE_KNOCK 490
683 < #define USE_LOGGING 491
684 < #define USE_WHOIS_ACTUALLY 492
685 < #define VHOST 493
686 < #define VHOST6 494
687 < #define XLINE 495
688 < #define WARN 496
689 < #define WARN_NO_NLINE 497
690 < #define T_SIZE 498
691 < #define T_FILE 499
692 <
402 > #define ADMIN 259
403 > #define AFTYPE 260
404 > #define ANTI_NICK_FLOOD 261
405 > #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
406 > #define AUTOCONN 263
407 > #define BYTES 264
408 > #define KBYTES 265
409 > #define MBYTES 266
410 > #define CALLER_ID_WAIT 267
411 > #define CAN_FLOOD 268
412 > #define CHANNEL 269
413 > #define CIDR_BITLEN_IPV4 270
414 > #define CIDR_BITLEN_IPV6 271
415 > #define CLASS 272
416 > #define CONNECT 273
417 > #define CONNECTFREQ 274
418 > #define DEFAULT_FLOODCOUNT 275
419 > #define DEFAULT_SPLIT_SERVER_COUNT 276
420 > #define DEFAULT_SPLIT_USER_COUNT 277
421 > #define DENY 278
422 > #define DESCRIPTION 279
423 > #define DIE 280
424 > #define DISABLE_AUTH 281
425 > #define DISABLE_FAKE_CHANNELS 282
426 > #define DISABLE_REMOTE_COMMANDS 283
427 > #define DOTS_IN_IDENT 284
428 > #define EGDPOOL_PATH 285
429 > #define EMAIL 286
430 > #define ENCRYPTED 287
431 > #define EXCEED_LIMIT 288
432 > #define EXEMPT 289
433 > #define FAILED_OPER_NOTICE 290
434 > #define IRCD_FLAGS 291
435 > #define FLATTEN_LINKS 292
436 > #define GECOS 293
437 > #define GENERAL 294
438 > #define GLINE 295
439 > #define GLINE_DURATION 296
440 > #define GLINE_ENABLE 297
441 > #define GLINE_EXEMPT 298
442 > #define GLINE_REQUEST_DURATION 299
443 > #define GLINE_MIN_CIDR 300
444 > #define GLINE_MIN_CIDR6 301
445 > #define GLOBAL_KILL 302
446 > #define IRCD_AUTH 303
447 > #define NEED_IDENT 304
448 > #define HAVENT_READ_CONF 305
449 > #define HIDDEN 306
450 > #define HIDDEN_NAME 307
451 > #define HIDE_SERVER_IPS 308
452 > #define HIDE_SERVERS 309
453 > #define HIDE_SPOOF_IPS 310
454 > #define HOST 311
455 > #define HUB 312
456 > #define HUB_MASK 313
457 > #define IGNORE_BOGUS_TS 314
458 > #define INVISIBLE_ON_CONNECT 315
459 > #define IP 316
460 > #define KILL 317
461 > #define KILL_CHASE_TIME_LIMIT 318
462 > #define KLINE 319
463 > #define KLINE_EXEMPT 320
464 > #define KNOCK_DELAY 321
465 > #define KNOCK_DELAY_CHANNEL 322
466 > #define LEAF_MASK 323
467 > #define LINKS_DELAY 324
468 > #define LISTEN 325
469 > #define T_LOG 326
470 > #define MAX_ACCEPT 327
471 > #define MAX_BANS 328
472 > #define MAX_CHANS_PER_OPER 329
473 > #define MAX_CHANS_PER_USER 330
474 > #define MAX_GLOBAL 331
475 > #define MAX_IDENT 332
476 > #define MAX_LOCAL 333
477 > #define MAX_NICK_CHANGES 334
478 > #define MAX_NICK_TIME 335
479 > #define MAX_NUMBER 336
480 > #define MAX_TARGETS 337
481 > #define MAX_WATCH 338
482 > #define MESSAGE_LOCALE 339
483 > #define MIN_NONWILDCARD 340
484 > #define MIN_NONWILDCARD_SIMPLE 341
485 > #define MODULE 342
486 > #define MODULES 343
487 > #define NAME 344
488 > #define NEED_PASSWORD 345
489 > #define NETWORK_DESC 346
490 > #define NETWORK_NAME 347
491 > #define NICK 348
492 > #define NICK_CHANGES 349
493 > #define NO_CREATE_ON_SPLIT 350
494 > #define NO_JOIN_ON_SPLIT 351
495 > #define NO_OPER_FLOOD 352
496 > #define NO_TILDE 353
497 > #define NUMBER 354
498 > #define NUMBER_PER_CIDR 355
499 > #define NUMBER_PER_IP 356
500 > #define OPERATOR 357
501 > #define OPERS_BYPASS_CALLERID 358
502 > #define OPER_ONLY_UMODES 359
503 > #define OPER_PASS_RESV 360
504 > #define OPER_SPY_T 361
505 > #define OPER_UMODES 362
506 > #define JOIN_FLOOD_COUNT 363
507 > #define JOIN_FLOOD_TIME 364
508 > #define PACE_WAIT 365
509 > #define PACE_WAIT_SIMPLE 366
510 > #define PASSWORD 367
511 > #define PATH 368
512 > #define PING_COOKIE 369
513 > #define PING_TIME 370
514 > #define PORT 371
515 > #define QSTRING 372
516 > #define QUIET_ON_BAN 373
517 > #define REASON 374
518 > #define REDIRPORT 375
519 > #define REDIRSERV 376
520 > #define REGEX_T 377
521 > #define REHASH 378
522 > #define REMOTE 379
523 > #define REMOTEBAN 380
524 > #define RESTRICT_CHANNELS 381
525 > #define RSA_PRIVATE_KEY_FILE 382
526 > #define RSA_PUBLIC_KEY_FILE 383
527 > #define SSL_CERTIFICATE_FILE 384
528 > #define SSL_DH_PARAM_FILE 385
529 > #define T_SSL_CLIENT_METHOD 386
530 > #define T_SSL_SERVER_METHOD 387
531 > #define T_SSLV3 388
532 > #define T_TLSV1 389
533 > #define RESV 390
534 > #define RESV_EXEMPT 391
535 > #define SECONDS 392
536 > #define MINUTES 393
537 > #define HOURS 394
538 > #define DAYS 395
539 > #define WEEKS 396
540 > #define SENDQ 397
541 > #define SEND_PASSWORD 398
542 > #define SERVERHIDE 399
543 > #define SERVERINFO 400
544 > #define IRCD_SID 401
545 > #define TKLINE_EXPIRE_NOTICES 402
546 > #define T_SHARED 403
547 > #define T_CLUSTER 404
548 > #define TYPE 405
549 > #define SHORT_MOTD 406
550 > #define SPOOF 407
551 > #define SPOOF_NOTICE 408
552 > #define STATS_E_DISABLED 409
553 > #define STATS_I_OPER_ONLY 410
554 > #define STATS_K_OPER_ONLY 411
555 > #define STATS_O_OPER_ONLY 412
556 > #define STATS_P_OPER_ONLY 413
557 > #define TBOOL 414
558 > #define TMASKED 415
559 > #define TS_MAX_DELTA 416
560 > #define TS_WARN_DELTA 417
561 > #define TWODOTS 418
562 > #define T_ALL 419
563 > #define T_BOTS 420
564 > #define T_SOFTCALLERID 421
565 > #define T_CALLERID 422
566 > #define T_CCONN 423
567 > #define T_CCONN_FULL 424
568 > #define T_SSL_CIPHER_LIST 425
569 > #define T_DEAF 426
570 > #define T_DEBUG 427
571 > #define T_DLINE 428
572 > #define T_EXTERNAL 429
573 > #define T_FULL 430
574 > #define T_INVISIBLE 431
575 > #define T_IPV4 432
576 > #define T_IPV6 433
577 > #define T_LOCOPS 434
578 > #define T_MAX_CLIENTS 435
579 > #define T_NCHANGE 436
580 > #define T_OPERWALL 437
581 > #define T_RECVQ 438
582 > #define T_REJ 439
583 > #define T_SERVER 440
584 > #define T_SERVNOTICE 441
585 > #define T_SET 442
586 > #define T_SKILL 443
587 > #define T_SPY 444
588 > #define T_SSL 445
589 > #define T_UMODES 446
590 > #define T_UNAUTH 447
591 > #define T_UNDLINE 448
592 > #define T_UNLIMITED 449
593 > #define T_UNRESV 450
594 > #define T_UNXLINE 451
595 > #define T_GLOBOPS 452
596 > #define T_WALLOP 453
597 > #define T_RESTART 454
598 > #define T_SERVICE 455
599 > #define T_SERVICES_NAME 456
600 > #define THROTTLE_TIME 457
601 > #define TRUE_NO_OPER_FLOOD 458
602 > #define UNKLINE 459
603 > #define USER 460
604 > #define USE_EGD 461
605 > #define USE_LOGGING 462
606 > #define VHOST 463
607 > #define VHOST6 464
608 > #define XLINE 465
609 > #define WARN_NO_NLINE 466
610 > #define T_SIZE 467
611 > #define T_FILE 468
612  
613  
614  
615   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
616   typedef union YYSTYPE
617   {
618 <
619 < /* Line 293 of yacc.c  */
701 < #line 132 "ircd_parser.y"
618 > /* Line 374 of yacc.c  */
619 > #line 109 "conf_parser.y"
620  
621    int number;
622    char *string;
623  
624  
625 <
626 < /* Line 293 of yacc.c  */
709 < #line 710 "ircd_parser.c"
625 > /* Line 374 of yacc.c  */
626 > #line 627 "conf_parser.c"
627   } YYSTYPE;
628   # define YYSTYPE_IS_TRIVIAL 1
629   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
630   # define YYSTYPE_IS_DECLARED 1
631   #endif
632  
633 + extern YYSTYPE yylval;
634  
635 < /* Copy the second part of user declarations.  */
635 > #ifdef YYPARSE_PARAM
636 > #if defined __STDC__ || defined __cplusplus
637 > int yyparse (void *YYPARSE_PARAM);
638 > #else
639 > int yyparse ();
640 > #endif
641 > #else /* ! YYPARSE_PARAM */
642 > #if defined __STDC__ || defined __cplusplus
643 > int yyparse (void);
644 > #else
645 > int yyparse ();
646 > #endif
647 > #endif /* ! YYPARSE_PARAM */
648  
649 + #endif /* !YY_YY_Y_TAB_H_INCLUDED  */
650 +
651 + /* Copy the second part of user declarations.  */
652  
653 < /* Line 343 of yacc.c  */
654 < #line 722 "ircd_parser.c"
653 > /* Line 377 of yacc.c  */
654 > #line 655 "conf_parser.c"
655  
656   #ifdef short
657   # undef short
# Line 771 | Line 704 | typedef short int yytype_int16;
704   # if defined YYENABLE_NLS && YYENABLE_NLS
705   #  if ENABLE_NLS
706   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
707 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
707 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
708   #  endif
709   # endif
710   # ifndef YY_
711 < #  define YY_(msgid) msgid
711 > #  define YY_(Msgid) Msgid
712   # endif
713   #endif
714  
715   /* Suppress unused-variable warnings by "using" E.  */
716   #if ! defined lint || defined __GNUC__
717 < # define YYUSE(e) ((void) (e))
717 > # define YYUSE(E) ((void) (E))
718   #else
719 < # define YYUSE(e) /* empty */
719 > # define YYUSE(E) /* empty */
720   #endif
721  
722   /* Identity function, used to suppress warnings about constant conditions.  */
723   #ifndef lint
724 < # define YYID(n) (n)
724 > # define YYID(N) (N)
725   #else
726   #if (defined __STDC__ || defined __C99__FUNC__ \
727       || defined __cplusplus || defined _MSC_VER)
# Line 824 | Line 757 | YYID (yyi)
757   #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
758       || defined __cplusplus || defined _MSC_VER)
759   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
760 +      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
761   #     ifndef EXIT_SUCCESS
762   #      define EXIT_SUCCESS 0
763   #     endif
# Line 915 | Line 849 | union yyalloc
849   #endif
850  
851   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
852 < /* Copy COUNT objects from FROM to TO.  The source and destination do
852 > /* Copy COUNT objects from SRC to DST.  The source and destination do
853     not overlap.  */
854   # ifndef YYCOPY
855   #  if defined __GNUC__ && 1 < __GNUC__
856 < #   define YYCOPY(To, From, Count) \
857 <      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
856 > #   define YYCOPY(Dst, Src, Count) \
857 >      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
858   #  else
859 < #   define YYCOPY(To, From, Count)              \
860 <      do                                        \
861 <        {                                       \
862 <          YYSIZE_T yyi;                         \
863 <          for (yyi = 0; yyi < (Count); yyi++)   \
864 <            (To)[yyi] = (From)[yyi];            \
865 <        }                                       \
859 > #   define YYCOPY(Dst, Src, Count)              \
860 >      do                                        \
861 >        {                                       \
862 >          YYSIZE_T yyi;                         \
863 >          for (yyi = 0; yyi < (Count); yyi++)   \
864 >            (Dst)[yyi] = (Src)[yyi];            \
865 >        }                                       \
866        while (YYID (0))
867   #  endif
868   # endif
# Line 937 | Line 871 | union yyalloc
871   /* YYFINAL -- State number of the termination state.  */
872   #define YYFINAL  2
873   /* YYLAST -- Last index in YYTABLE.  */
874 < #define YYLAST   1372
874 > #define YYLAST   1180
875  
876   /* YYNTOKENS -- Number of terminals.  */
877 < #define YYNTOKENS  250
877 > #define YYNTOKENS  219
878   /* YYNNTS -- Number of nonterminals.  */
879 < #define YYNNTS  306
879 > #define YYNNTS  282
880   /* YYNRULES -- Number of rules.  */
881 < #define YYNRULES  670
881 > #define YYNRULES  625
882   /* YYNRULES -- Number of states.  */
883 < #define YYNSTATES  1318
883 > #define YYNSTATES  1223
884  
885   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
886   #define YYUNDEFTOK  2
887 < #define YYMAXUTOK   499
887 > #define YYMAXUTOK   468
888  
889   #define YYTRANSLATE(YYX)                                                \
890    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 962 | Line 896 | static const yytype_uint8 yytranslate[]
896         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
897         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
898         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
899 <       2,     2,     2,     2,   249,     2,     2,     2,     2,     2,
900 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   245,
901 <       2,   248,     2,     2,     2,     2,     2,     2,     2,     2,
899 >       2,     2,     2,     2,   218,     2,     2,     2,     2,     2,
900 >       2,     2,     2,     2,     2,     2,     2,     2,     2,   214,
901 >       2,   217,     2,     2,     2,     2,     2,     2,     2,     2,
902         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
903         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
904         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
905         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
906         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
907 <       2,     2,     2,   247,     2,   246,     2,     2,     2,     2,
907 >       2,     2,     2,   216,     2,   215,     2,     2,     2,     2,
908         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
909         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
910         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 1004 | Line 938 | static const yytype_uint8 yytranslate[]
938       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
939       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
940       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
941 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1008 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1009 <     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1010 <     235,   236,   237,   238,   239,   240,   241,   242,   243,   244
941 >     205,   206,   207,   208,   209,   210,   211,   212,   213
942   };
943  
944   #if YYDEBUG
# Line 1017 | Line 948 | static const yytype_uint16 yyprhs[] =
948   {
949         0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
950        19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
951 <      39,    41,    43,    45,    47,    49,    52,    55,    56,    58,
952 <      61,    65,    69,    73,    77,    81,    82,    84,    87,    91,
953 <      95,    99,   105,   108,   110,   112,   114,   117,   122,   127,
954 <     133,   136,   138,   140,   142,   144,   146,   148,   150,   152,
955 <     154,   156,   158,   160,   162,   165,   166,   172,   176,   178,
956 <     180,   182,   187,   192,   197,   202,   207,   212,   217,   222,
957 <     227,   232,   237,   243,   246,   248,   250,   252,   254,   257,
958 <     262,   267,   272,   278,   281,   283,   285,   287,   289,   292,
959 <     297,   302,   303,   310,   313,   315,   317,   319,   321,   324,
960 <     329,   334,   339,   340,   346,   350,   352,   354,   356,   358,
961 <     360,   362,   364,   366,   367,   374,   377,   379,   381,   383,
962 <     385,   387,   389,   391,   393,   395,   398,   403,   408,   413,
963 <     418,   423,   428,   429,   435,   439,   441,   443,   445,   447,
964 <     449,   451,   453,   455,   457,   459,   461,   463,   465,   467,
965 <     469,   471,   473,   475,   477,   479,   481,   482,   488,   492,
966 <     494,   496,   498,   500,   502,   504,   506,   508,   510,   512,
967 <     514,   516,   518,   520,   522,   524,   526,   528,   530,   531,
968 <     538,   541,   543,   545,   547,   549,   551,   553,   555,   557,
969 <     559,   561,   563,   565,   567,   569,   572,   577,   582,   587,
970 <     592,   597,   602,   607,   612,   617,   622,   627,   632,   637,
971 <     638,   645,   646,   652,   656,   658,   660,   662,   664,   667,
972 <     669,   671,   673,   675,   677,   680,   681,   687,   691,   693,
973 <     695,   699,   704,   709,   710,   717,   720,   722,   724,   726,
974 <     728,   730,   732,   734,   736,   738,   741,   746,   751,   756,
975 <     761,   762,   768,   772,   774,   776,   778,   780,   782,   784,
976 <     786,   788,   790,   792,   797,   802,   807,   808,   815,   818,
977 <     820,   822,   824,   826,   829,   834,   839,   844,   850,   853,
978 <     855,   857,   859,   864,   865,   872,   875,   877,   879,   881,
979 <     883,   886,   891,   896,   897,   903,   907,   909,   911,   913,
980 <     915,   917,   919,   921,   923,   925,   927,   929,   930,   937,
981 <     940,   942,   944,   946,   949,   954,   955,   961,   965,   967,
982 <     969,   971,   973,   975,   977,   979,   981,   983,   985,   987,
983 <     988,   995,   998,  1000,  1002,  1004,  1006,  1008,  1010,  1012,
984 <    1014,  1016,  1018,  1020,  1022,  1024,  1026,  1028,  1031,  1036,
985 <    1041,  1046,  1051,  1056,  1061,  1066,  1071,  1072,  1078,  1082,
986 <    1084,  1086,  1088,  1090,  1092,  1094,  1099,  1104,  1109,  1114,
987 <    1119,  1124,  1125,  1132,  1133,  1139,  1143,  1145,  1147,  1150,
988 <    1152,  1154,  1156,  1158,  1160,  1165,  1170,  1171,  1178,  1181,
989 <    1183,  1185,  1187,  1189,  1194,  1199,  1205,  1208,  1210,  1212,
990 <    1214,  1219,  1220,  1227,  1228,  1234,  1238,  1240,  1242,  1245,
991 <    1247,  1249,  1251,  1253,  1255,  1260,  1265,  1271,  1274,  1276,
992 <    1278,  1280,  1282,  1284,  1286,  1288,  1290,  1292,  1294,  1296,
993 <    1298,  1300,  1302,  1304,  1306,  1308,  1310,  1312,  1314,  1316,
994 <    1318,  1320,  1322,  1324,  1326,  1328,  1330,  1332,  1334,  1336,
995 <    1338,  1340,  1342,  1344,  1346,  1348,  1350,  1352,  1354,  1356,
996 <    1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,  1374,  1376,
997 <    1378,  1380,  1382,  1384,  1386,  1391,  1396,  1401,  1406,  1411,
998 <    1416,  1421,  1426,  1431,  1436,  1441,  1446,  1451,  1456,  1461,
999 <    1466,  1471,  1476,  1481,  1486,  1491,  1496,  1501,  1506,  1511,
1000 <    1516,  1521,  1526,  1531,  1536,  1541,  1546,  1551,  1556,  1561,
1001 <    1566,  1571,  1576,  1581,  1586,  1591,  1596,  1601,  1606,  1611,
1002 <    1616,  1621,  1626,  1631,  1636,  1637,  1643,  1647,  1649,  1651,
1003 <    1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,  1669,  1671,
1004 <    1673,  1675,  1677,  1679,  1681,  1683,  1685,  1687,  1689,  1690,
1005 <    1696,  1700,  1702,  1704,  1706,  1708,  1710,  1712,  1714,  1716,
1006 <    1718,  1720,  1722,  1724,  1726,  1728,  1730,  1732,  1734,  1736,
1007 <    1738,  1740,  1742,  1747,  1752,  1757,  1762,  1763,  1770,  1773,
1008 <    1775,  1777,  1779,  1781,  1783,  1785,  1787,  1789,  1794,  1799,
1009 <    1800,  1806,  1810,  1812,  1814,  1816,  1821,  1826,  1827,  1833,
1010 <    1837,  1839,  1841,  1843,  1849,  1852,  1854,  1856,  1858,  1860,
1011 <    1862,  1864,  1866,  1868,  1870,  1872,  1874,  1876,  1878,  1880,
1081 <    1882,  1884,  1886,  1888,  1890,  1892,  1897,  1902,  1907,  1912,
1082 <    1917,  1922,  1927,  1932,  1937,  1942,  1947,  1952,  1957,  1962,
1083 <    1967,  1972,  1977,  1982,  1988,  1991,  1993,  1995,  1997,  1999,
1084 <    2001,  2003,  2005,  2007,  2009,  2014,  2019,  2024,  2029,  2034,
1085 <    2039
951 >      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
952 >      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
953 >      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
954 >     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
955 >     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
956 >     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
957 >     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
958 >     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
959 >     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
960 >     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
961 >     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
962 >     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
963 >     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
964 >     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
965 >     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
966 >     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
967 >     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
968 >     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
969 >     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
970 >     587,   589,   591,   594,   599,   604,   609,   614,   619,   624,
971 >     629,   634,   639,   644,   649,   654,   659,   660,   667,   668,
972 >     674,   678,   680,   682,   684,   686,   689,   691,   693,   695,
973 >     697,   699,   702,   703,   709,   713,   715,   717,   721,   726,
974 >     731,   732,   739,   742,   744,   746,   748,   750,   752,   754,
975 >     756,   758,   760,   763,   768,   773,   778,   783,   784,   790,
976 >     794,   796,   798,   800,   802,   804,   806,   808,   810,   812,
977 >     814,   819,   824,   829,   830,   837,   840,   842,   844,   846,
978 >     848,   851,   856,   861,   866,   872,   875,   877,   879,   881,
979 >     886,   887,   894,   897,   899,   901,   903,   905,   908,   913,
980 >     918,   919,   925,   929,   931,   933,   935,   937,   939,   941,
981 >     943,   945,   947,   949,   951,   952,   959,   962,   964,   966,
982 >     968,   971,   976,   977,   983,   987,   989,   991,   993,   995,
983 >     997,   999,  1001,  1003,  1005,  1007,  1009,  1010,  1017,  1020,
984 >    1022,  1024,  1026,  1028,  1030,  1032,  1034,  1036,  1038,  1040,
985 >    1042,  1044,  1046,  1048,  1051,  1056,  1061,  1066,  1071,  1076,
986 >    1081,  1086,  1091,  1092,  1098,  1102,  1104,  1106,  1108,  1113,
987 >    1118,  1123,  1128,  1133,  1134,  1141,  1142,  1148,  1152,  1154,
988 >    1156,  1159,  1161,  1163,  1165,  1167,  1169,  1174,  1179,  1180,
989 >    1187,  1190,  1192,  1194,  1196,  1198,  1203,  1208,  1214,  1217,
990 >    1219,  1221,  1223,  1228,  1229,  1236,  1237,  1243,  1247,  1249,
991 >    1251,  1254,  1256,  1258,  1260,  1262,  1264,  1269,  1274,  1280,
992 >    1283,  1285,  1287,  1289,  1291,  1293,  1295,  1297,  1299,  1301,
993 >    1303,  1305,  1307,  1309,  1311,  1313,  1315,  1317,  1319,  1321,
994 >    1323,  1325,  1327,  1329,  1331,  1333,  1335,  1337,  1339,  1341,
995 >    1343,  1345,  1347,  1349,  1351,  1353,  1355,  1357,  1359,  1361,
996 >    1363,  1365,  1367,  1369,  1371,  1373,  1375,  1377,  1379,  1381,
997 >    1383,  1385,  1390,  1395,  1400,  1405,  1410,  1415,  1420,  1425,
998 >    1430,  1435,  1440,  1445,  1450,  1455,  1460,  1465,  1470,  1475,
999 >    1480,  1485,  1490,  1495,  1500,  1505,  1510,  1515,  1520,  1525,
1000 >    1530,  1535,  1540,  1545,  1550,  1555,  1560,  1565,  1570,  1575,
1001 >    1580,  1585,  1590,  1595,  1600,  1605,  1610,  1615,  1616,  1622,
1002 >    1626,  1628,  1630,  1632,  1634,  1636,  1638,  1640,  1642,  1644,
1003 >    1646,  1648,  1650,  1652,  1654,  1656,  1658,  1660,  1662,  1664,
1004 >    1666,  1668,  1669,  1675,  1679,  1681,  1683,  1685,  1687,  1689,
1005 >    1691,  1693,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
1006 >    1711,  1713,  1715,  1717,  1719,  1721,  1726,  1731,  1736,  1742,
1007 >    1745,  1747,  1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,
1008 >    1765,  1767,  1769,  1771,  1773,  1775,  1777,  1782,  1787,  1792,
1009 >    1797,  1802,  1807,  1812,  1817,  1822,  1827,  1832,  1837,  1842,
1010 >    1847,  1853,  1856,  1858,  1860,  1862,  1864,  1866,  1868,  1870,
1011 >    1872,  1877,  1882,  1887,  1892,  1897
1012   };
1013  
1014   /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1015   static const yytype_int16 yyrhs[] =
1016   {
1017 <     251,     0,    -1,    -1,   251,   252,    -1,   280,    -1,   286,
1018 <      -1,   301,    -1,   525,    -1,   319,    -1,   336,    -1,   350,
1019 <      -1,   262,    -1,   546,    -1,   365,    -1,   372,    -1,   376,
1020 <      -1,   386,    -1,   395,    -1,   416,    -1,   426,    -1,   432,
1021 <      -1,   446,    -1,   509,    -1,   436,    -1,   257,    -1,     1,
1022 <     245,    -1,     1,   246,    -1,    -1,   254,    -1,   115,   253,
1023 <      -1,   115,   156,   253,    -1,   115,   157,   253,    -1,   115,
1024 <     158,   253,    -1,   115,   159,   253,    -1,   115,   160,   253,
1025 <      -1,    -1,   256,    -1,   115,   255,    -1,   115,    14,   255,
1026 <      -1,   115,    15,   255,    -1,   115,    16,   255,    -1,   104,
1027 <     247,   258,   246,   245,    -1,   258,   259,    -1,   259,    -1,
1028 <     260,    -1,   261,    -1,     1,   245,    -1,   103,   248,   136,
1029 <     245,    -1,   131,   248,   136,   245,    -1,   164,   247,   263,
1030 <     246,   245,    -1,   263,   264,    -1,   264,    -1,   271,    -1,
1031 <     276,    -1,   279,    -1,   273,    -1,   274,    -1,   275,    -1,
1032 <     278,    -1,   270,    -1,   277,    -1,   272,    -1,   269,    -1,
1033 <     265,    -1,     1,   245,    -1,    -1,   151,   266,   248,   267,
1034 <     245,    -1,   267,   249,   268,    -1,   268,    -1,   152,    -1,
1035 <     153,    -1,   150,   248,   136,   245,    -1,   148,   248,   136,
1036 <     245,    -1,   105,   248,   136,   245,    -1,   166,   248,   136,
1037 <     245,    -1,    36,   248,   136,   245,    -1,   108,   248,   136,
1038 <     245,    -1,   107,   248,   136,   245,    -1,   238,   248,   136,
1039 <     245,    -1,   239,   248,   136,   245,    -1,   203,   248,   115,
1040 <     245,    -1,    72,   248,   180,   245,    -1,     5,   247,   281,
1041 <     246,   245,    -1,   281,   282,    -1,   282,    -1,   283,    -1,
1042 <     285,    -1,   284,    -1,     1,   245,    -1,   105,   248,   136,
1043 <     245,    -1,    46,   248,   136,   245,    -1,    36,   248,   136,
1044 <     245,    -1,    88,   247,   287,   246,   245,    -1,   287,   288,
1045 <      -1,   288,    -1,   289,    -1,   290,    -1,   291,    -1,     1,
1046 <     245,    -1,   236,   248,   180,   245,    -1,   223,   248,   180,
1047 <     245,    -1,    -1,   292,   244,   247,   293,   246,   245,    -1,
1048 <     293,   294,    -1,   294,    -1,   295,    -1,   297,    -1,   296,
1049 <      -1,     1,   245,    -1,   105,   248,   136,   245,    -1,   243,
1050 <     248,   256,   245,    -1,   243,   248,   215,   245,    -1,    -1,
1051 <     170,   298,   248,   299,   245,    -1,   299,   249,   300,    -1,
1052 <     300,    -1,   231,    -1,   120,    -1,    56,    -1,   195,    -1,
1053 <      79,    -1,    77,    -1,   194,    -1,    -1,   120,   302,   247,
1054 <     303,   246,   245,    -1,   303,   304,    -1,   304,    -1,   305,
1055 <      -1,   306,    -1,   307,    -1,   311,    -1,   310,    -1,   308,
1056 <      -1,   309,    -1,   315,    -1,     1,   245,    -1,   105,   248,
1057 <     136,   245,    -1,   231,   248,   136,   245,    -1,   130,   248,
1058 <     136,   245,    -1,    48,   248,   180,   245,    -1,   149,   248,
1059 <     136,   245,    -1,    25,   248,   136,   245,    -1,    -1,   212,
1060 <     312,   248,   313,   245,    -1,   313,   249,   314,    -1,   314,
1061 <      -1,   187,    -1,   190,    -1,   191,    -1,   193,    -1,   194,
1062 <      -1,   198,    -1,    66,    -1,   209,    -1,   204,    -1,   206,
1063 <      -1,   213,    -1,   210,    -1,   197,    -1,   205,    -1,   208,
1064 <      -1,   199,    -1,   219,    -1,   188,    -1,   189,    -1,   202,
1065 <      -1,    -1,    52,   316,   248,   317,   245,    -1,   317,   249,
1066 <     318,    -1,   318,    -1,    62,    -1,   144,    -1,    79,    -1,
1067 <     230,    -1,   195,    -1,   214,    -1,   240,    -1,    56,    -1,
1068 <      37,    -1,   220,    -1,   142,    -1,     5,    -1,   110,    -1,
1069 <     205,    -1,   218,    -1,   124,    -1,   145,    -1,   103,    -1,
1070 <      -1,    25,   320,   247,   321,   246,   245,    -1,   321,   322,
1071 <      -1,   322,    -1,   323,    -1,   333,    -1,   334,    -1,   324,
1072 <      -1,   325,    -1,   335,    -1,   326,    -1,   327,    -1,   328,
1073 <      -1,   329,    -1,   330,    -1,   331,    -1,   332,    -1,     1,
1074 <     245,    -1,   105,   248,   136,   245,    -1,   133,   248,   254,
1075 <     245,    -1,   134,   248,   254,   245,    -1,   118,   248,   115,
1076 <     245,    -1,    29,   248,   254,   245,    -1,    97,   248,   115,
1077 <     245,    -1,    92,   248,   115,   245,    -1,    94,   248,   115,
1078 <     245,    -1,    93,   248,   115,   245,    -1,   161,   248,   256,
1079 <     245,    -1,    22,   248,   115,   245,    -1,    23,   248,   115,
1080 <     245,    -1,   117,   248,   115,   245,    -1,    -1,    87,   337,
1081 <     247,   342,   246,   245,    -1,    -1,    52,   339,   248,   340,
1082 <     245,    -1,   340,   249,   341,    -1,   341,    -1,   211,    -1,
1083 <      66,    -1,   207,    -1,   342,   343,    -1,   343,    -1,   344,
1084 <      -1,   338,    -1,   348,    -1,   349,    -1,     1,   245,    -1,
1085 <      -1,   135,   248,   346,   345,   245,    -1,   346,   249,   347,
1086 <      -1,   347,    -1,   115,    -1,   115,   185,   115,    -1,    76,
1087 <     248,   136,   245,    -1,    71,   248,   136,   245,    -1,    -1,
1088 <      63,   351,   247,   352,   246,   245,    -1,   352,   353,    -1,
1089 <     353,    -1,   354,    -1,   355,    -1,   356,    -1,   358,    -1,
1090 <     362,    -1,   363,    -1,   364,    -1,   357,    -1,     1,   245,
1091 <      -1,   231,   248,   136,   245,    -1,   130,   248,   136,   245,
1092 <      -1,    25,   248,   136,   245,    -1,    48,   248,   180,   245,
1093 <      -1,    -1,    52,   359,   248,   360,   245,    -1,   360,   249,
1094 <     361,    -1,   361,    -1,   174,    -1,    49,    -1,    80,    -1,
1095 <      64,    -1,    20,    -1,   114,    -1,    58,    -1,   155,    -1,
1096 <     106,    -1,   173,   248,   136,   245,    -1,   140,   248,   136,
1097 <     245,    -1,   139,   248,   115,   245,    -1,    -1,   154,   366,
1098 <     247,   367,   246,   245,    -1,   367,   368,    -1,   368,    -1,
1099 <     369,    -1,   370,    -1,   371,    -1,     1,   245,    -1,   138,
1100 <     248,   136,   245,    -1,    21,   248,   136,   245,    -1,   109,
1101 <     248,   136,   245,    -1,   221,   247,   373,   246,   245,    -1,
1102 <     373,   374,    -1,   374,    -1,   375,    -1,     1,    -1,   105,
1103 <     248,   136,   245,    -1,    -1,   168,   377,   247,   378,   246,
1104 <     245,    -1,   378,   379,    -1,   379,    -1,   380,    -1,   381,
1105 <      -1,   382,    -1,     1,   245,    -1,   105,   248,   136,   245,
1106 <      -1,   231,   248,   136,   245,    -1,    -1,   170,   383,   248,
1107 <     384,   245,    -1,   384,   249,   385,    -1,   385,    -1,    79,
1108 <      -1,   230,    -1,   195,    -1,   214,    -1,   240,    -1,   217,
1109 <      -1,   154,    -1,   216,    -1,   202,    -1,   186,    -1,    -1,
1110 <     169,   387,   247,   388,   246,   245,    -1,   388,   389,    -1,
1111 <     389,    -1,   390,    -1,   391,    -1,     1,   245,    -1,   105,
1112 <     248,   136,   245,    -1,    -1,   170,   392,   248,   393,   245,
1113 <      -1,   393,   249,   394,    -1,   394,    -1,    79,    -1,   230,
1114 <      -1,   195,    -1,   214,    -1,   240,    -1,   217,    -1,   154,
1115 <      -1,   216,    -1,   202,    -1,   186,    -1,    -1,    28,   396,
1116 <     247,   397,   246,   245,    -1,   397,   398,    -1,   398,    -1,
1117 <     399,    -1,   400,    -1,   401,    -1,   402,    -1,   403,    -1,
1118 <     405,    -1,   404,    -1,   406,    -1,   412,    -1,   413,    -1,
1119 <     414,    -1,   411,    -1,   410,    -1,   415,    -1,     1,   245,
1120 <      -1,   105,   248,   136,   245,    -1,    71,   248,   136,   245,
1121 <      -1,   238,   248,   136,   245,    -1,   162,   248,   136,   245,
1122 <      -1,     3,   248,   136,   245,    -1,   135,   248,   115,   245,
1123 <      -1,     6,   248,   200,   245,    -1,     6,   248,   201,   245,
1124 <      -1,    -1,    52,   407,   248,   408,   245,    -1,   408,   249,
1125 <     409,    -1,   409,    -1,    26,    -1,    30,    -1,    10,    -1,
1126 <      12,    -1,   225,    -1,   149,   248,   136,   245,    -1,    48,
1127 <     248,   180,   245,    -1,    73,   248,   136,   245,    -1,    85,
1128 <     248,   136,   245,    -1,    25,   248,   136,   245,    -1,    24,
1129 <     248,   136,   245,    -1,    -1,    77,   417,   247,   422,   246,
1130 <     245,    -1,    -1,   170,   419,   248,   420,   245,    -1,   420,
1131 <     249,   421,    -1,   421,    -1,   141,    -1,   422,   423,    -1,
1132 <     423,    -1,   424,    -1,   425,    -1,   418,    -1,     1,    -1,
1133 <     231,   248,   136,   245,    -1,   138,   248,   136,   245,    -1,
1134 <      -1,    35,   427,   247,   428,   246,   245,    -1,   428,   429,
1135 <      -1,   429,    -1,   430,    -1,   431,    -1,     1,    -1,    76,
1136 <     248,   136,   245,    -1,   138,   248,   136,   245,    -1,    50,
1137 <     247,   433,   246,   245,    -1,   433,   434,    -1,   434,    -1,
1138 <     435,    -1,     1,    -1,    76,   248,   136,   245,    -1,    -1,
1139 <      54,   437,   247,   442,   246,   245,    -1,    -1,   170,   439,
1140 <     248,   440,   245,    -1,   440,   249,   441,    -1,   441,    -1,
1141 <     141,    -1,   442,   443,    -1,   443,    -1,   444,    -1,   445,
1142 <      -1,   438,    -1,     1,    -1,   105,   248,   136,   245,    -1,
1143 <     138,   248,   136,   245,    -1,    55,   247,   447,   246,   245,
1144 <      -1,   447,   448,    -1,   448,    -1,   456,    -1,   457,    -1,
1145 <     459,    -1,   460,    -1,   461,    -1,   462,    -1,   463,    -1,
1146 <     464,    -1,   465,    -1,   466,    -1,   455,    -1,   468,    -1,
1147 <     469,    -1,   470,    -1,   471,    -1,   486,    -1,   473,    -1,
1148 <     475,    -1,   477,    -1,   476,    -1,   480,    -1,   474,    -1,
1149 <     481,    -1,   482,    -1,   483,    -1,   484,    -1,   485,    -1,
1150 <     501,    -1,   487,    -1,   491,    -1,   492,    -1,   497,    -1,
1151 <     478,    -1,   479,    -1,   507,    -1,   505,    -1,   506,    -1,
1152 <     488,    -1,   458,    -1,   489,    -1,   490,    -1,   508,    -1,
1153 <     496,    -1,   467,    -1,   494,    -1,   495,    -1,   454,    -1,
1154 <     450,    -1,   451,    -1,   452,    -1,   453,    -1,   472,    -1,
1155 <     449,    -1,   493,    -1,     1,    -1,    99,   248,   115,   245,
1156 <      -1,    60,   248,   115,   245,    -1,    61,   248,   115,   245,
1157 <      -1,   237,   248,   180,   245,    -1,   143,   248,   254,   245,
1158 <      -1,   167,   248,   180,   245,    -1,    78,   248,   254,   245,
1159 <      -1,    70,   248,   180,   245,    -1,    74,   248,   180,   245,
1160 <      -1,    42,   248,   180,   245,    -1,    51,   248,   180,   245,
1161 <      -1,     8,   248,   180,   245,    -1,    96,   248,   254,   245,
1162 <      -1,    95,   248,   115,   245,    -1,    89,   248,   115,   245,
1163 <      -1,     9,   248,   254,   245,    -1,   184,   248,   254,   245,
1164 <      -1,   183,   248,   254,   245,    -1,    65,   248,   115,   245,
1165 <      -1,    82,   248,   180,   245,    -1,    81,   248,   136,   245,
1166 <      -1,    75,   248,   180,   245,    -1,   242,   248,   180,   245,
1167 <      -1,   175,   248,   180,   245,    -1,   178,   248,   180,   245,
1168 <      -1,   179,   248,   180,   245,    -1,   177,   248,   180,   245,
1169 <      -1,   177,   248,   181,   245,    -1,   176,   248,   180,   245,
1170 <      -1,   176,   248,   181,   245,    -1,   128,   248,   254,   245,
1171 <      -1,    19,   248,   254,   245,    -1,   121,   248,   180,   245,
1172 <      -1,   129,   248,   254,   245,    -1,   171,   248,   180,   245,
1173 <      -1,   113,   248,   180,   245,    -1,   226,   248,   180,   245,
1174 <      -1,   123,   248,   180,   245,    -1,   100,   248,   136,   245,
1175 <      -1,    43,   248,   115,   245,    -1,    98,   248,   115,   245,
1176 <      -1,   165,   248,   136,   245,    -1,    31,   248,   136,   245,
1177 <      -1,    27,   248,   115,   245,    -1,   232,   248,   180,   245,
1178 <      -1,    45,   248,   136,   245,    -1,   222,   248,   136,   245,
1179 <      -1,   132,   248,   180,   245,    -1,    38,   248,   180,   245,
1180 <      -1,   224,   248,   254,   245,    -1,    -1,   125,   498,   248,
1181 <     499,   245,    -1,   499,   249,   500,    -1,   500,    -1,   187,
1182 <      -1,   190,    -1,   191,    -1,   193,    -1,   194,    -1,   198,
1183 <      -1,    66,    -1,   209,    -1,   204,    -1,   206,    -1,   213,
1184 <      -1,   210,    -1,   197,    -1,   205,    -1,   208,    -1,   199,
1185 <      -1,   219,    -1,   188,    -1,   189,    -1,   202,    -1,    -1,
1186 <     122,   502,   248,   503,   245,    -1,   503,   249,   504,    -1,
1187 <     504,    -1,   187,    -1,   190,    -1,   191,    -1,   193,    -1,
1188 <     194,    -1,   198,    -1,   209,    -1,    66,    -1,   204,    -1,
1189 <     206,    -1,   213,    -1,   210,    -1,   197,    -1,   205,    -1,
1190 <     208,    -1,   199,    -1,   219,    -1,   188,    -1,   189,    -1,
1191 <     202,    -1,   101,   248,   115,   245,    -1,   102,   248,   115,
1192 <     245,    -1,    32,   248,   115,   245,    -1,   192,   248,   256,
1193 <     245,    -1,    -1,    57,   510,   247,   511,   246,   245,    -1,
1194 <     511,   512,    -1,   512,    -1,   513,    -1,   514,    -1,   515,
1195 <      -1,   519,    -1,   520,    -1,   521,    -1,     1,    -1,    47,
1196 <     248,   180,   245,    -1,    44,   248,   254,   245,    -1,    -1,
1197 <      88,   516,   248,   517,   245,    -1,   517,   249,   518,    -1,
1198 <     518,    -1,   182,    -1,    11,    -1,   231,   248,   136,   245,
1199 <      -1,   105,   248,   136,   245,    -1,    -1,     4,   522,   248,
1200 <     523,   245,    -1,   523,   249,   524,    -1,   524,    -1,   182,
1201 <      -1,    11,    -1,    21,   247,   526,   246,   245,    -1,   526,
1202 <     527,    -1,   527,    -1,   530,    -1,   531,    -1,   532,    -1,
1203 <     533,    -1,   538,    -1,   534,    -1,   535,    -1,   536,    -1,
1204 <     537,    -1,   539,    -1,   540,    -1,   541,    -1,   529,    -1,
1205 <     542,    -1,   543,    -1,   544,    -1,   545,    -1,   528,    -1,
1206 <       1,    -1,    39,   248,   180,   245,    -1,   146,   248,   180,
1207 <     245,    -1,    41,   248,   180,   245,    -1,   233,   248,   180,
1282 <     245,    -1,   234,   248,   180,   245,    -1,   235,   248,   180,
1283 <     245,    -1,    83,   248,   254,   245,    -1,    84,   248,   254,
1284 <     245,    -1,    91,   248,   115,   245,    -1,   137,   248,   180,
1285 <     245,    -1,    90,   248,   115,   245,    -1,    34,   248,   115,
1286 <     245,    -1,    33,   248,   115,   245,    -1,   111,   248,   180,
1287 <     245,    -1,   112,   248,   180,   245,    -1,    13,   248,   180,
1288 <     245,    -1,   126,   248,   115,   245,    -1,   127,   248,   254,
1289 <     245,    -1,   163,   247,   547,   246,   245,    -1,   547,   548,
1290 <      -1,   548,    -1,   549,    -1,   550,    -1,   552,    -1,   554,
1291 <      -1,   553,    -1,   551,    -1,   555,    -1,     1,    -1,    53,
1292 <     248,   180,   245,    -1,    69,   248,   180,   245,    -1,    67,
1293 <     248,   136,   245,    -1,    86,   248,   254,   245,    -1,    66,
1294 <     248,   180,   245,    -1,    40,   248,   180,   245,    -1,    68,
1295 <     248,   180,   245,    -1
1017 >     220,     0,    -1,    -1,   220,   221,    -1,   253,    -1,   259,
1018 >      -1,   273,    -1,   475,    -1,   291,    -1,   308,    -1,   322,
1019 >      -1,   231,    -1,   492,    -1,   337,    -1,   344,    -1,   348,
1020 >      -1,   358,    -1,   367,    -1,   387,    -1,   397,    -1,   403,
1021 >      -1,   417,    -1,   407,    -1,   226,    -1,     1,   214,    -1,
1022 >       1,   215,    -1,    -1,   223,    -1,    99,   222,    -1,    99,
1023 >     137,   222,    -1,    99,   138,   222,    -1,    99,   139,   222,
1024 >      -1,    99,   140,   222,    -1,    99,   141,   222,    -1,    -1,
1025 >     225,    -1,    99,   224,    -1,    99,     9,   224,    -1,    99,
1026 >      10,   224,    -1,    99,    11,   224,    -1,    88,   216,   227,
1027 >     215,   214,    -1,   227,   228,    -1,   228,    -1,   229,    -1,
1028 >     230,    -1,     1,   214,    -1,    87,   217,   117,   214,    -1,
1029 >     113,   217,   117,   214,    -1,   145,   216,   232,   215,   214,
1030 >      -1,   232,   233,    -1,   233,    -1,   244,    -1,   249,    -1,
1031 >     252,    -1,   246,    -1,   247,    -1,   248,    -1,   251,    -1,
1032 >     242,    -1,   241,    -1,   250,    -1,   245,    -1,   240,    -1,
1033 >     234,    -1,   235,    -1,   243,    -1,     1,   214,    -1,   131,
1034 >     217,   236,   214,    -1,   132,   217,   238,   214,    -1,   236,
1035 >     218,   237,    -1,   237,    -1,   133,    -1,   134,    -1,   238,
1036 >     218,   239,    -1,   239,    -1,   133,    -1,   134,    -1,   129,
1037 >     217,   117,   214,    -1,   127,   217,   117,   214,    -1,   130,
1038 >     217,   117,   214,    -1,   170,   217,   117,   214,    -1,    89,
1039 >     217,   117,   214,    -1,   146,   217,   117,   214,    -1,    24,
1040 >     217,   117,   214,    -1,    92,   217,   117,   214,    -1,    91,
1041 >     217,   117,   214,    -1,   208,   217,   117,   214,    -1,   209,
1042 >     217,   117,   214,    -1,   180,   217,    99,   214,    -1,    57,
1043 >     217,   159,   214,    -1,     4,   216,   254,   215,   214,    -1,
1044 >     254,   255,    -1,   255,    -1,   256,    -1,   258,    -1,   257,
1045 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,    31,
1046 >     217,   117,   214,    -1,    24,   217,   117,   214,    -1,    71,
1047 >     216,   260,   215,   214,    -1,   260,   261,    -1,   261,    -1,
1048 >     262,    -1,   263,    -1,     1,   214,    -1,   207,   217,   159,
1049 >     214,    -1,    -1,   264,   213,   216,   265,   215,   214,    -1,
1050 >     265,   266,    -1,   266,    -1,   267,    -1,   269,    -1,   268,
1051 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   212,
1052 >     217,   225,   214,    -1,   212,   217,   194,   214,    -1,    -1,
1053 >     150,   270,   217,   271,   214,    -1,   271,   218,   272,    -1,
1054 >     272,    -1,   205,    -1,   102,    -1,    40,    -1,   173,    -1,
1055 >      64,    -1,    62,    -1,   172,    -1,    -1,   102,   274,   216,
1056 >     275,   215,   214,    -1,   275,   276,    -1,   276,    -1,   277,
1057 >      -1,   278,    -1,   279,    -1,   283,    -1,   282,    -1,   280,
1058 >      -1,   281,    -1,   287,    -1,     1,   214,    -1,    89,   217,
1059 >     117,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1060 >     117,   214,    -1,    32,   217,   159,   214,    -1,   128,   217,
1061 >     117,   214,    -1,    17,   217,   117,   214,    -1,    -1,   191,
1062 >     284,   217,   285,   214,    -1,   285,   218,   286,    -1,   286,
1063 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1064 >      -1,   175,    -1,    51,    -1,   188,    -1,   181,    -1,   184,
1065 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1066 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1067 >      -1,    -1,    36,   288,   217,   289,   214,    -1,   289,   218,
1068 >     290,    -1,   290,    -1,    47,    -1,   124,    -1,    64,    -1,
1069 >     204,    -1,   173,    -1,   193,    -1,   210,    -1,    40,    -1,
1070 >      25,    -1,   199,    -1,   123,    -1,     4,    -1,    94,    -1,
1071 >     182,    -1,   197,    -1,   106,    -1,   125,    -1,   187,    -1,
1072 >      87,    -1,    -1,    17,   292,   216,   293,   215,   214,    -1,
1073 >     293,   294,    -1,   294,    -1,   295,    -1,   305,    -1,   306,
1074 >      -1,   296,    -1,   307,    -1,   297,    -1,   298,    -1,   299,
1075 >      -1,   300,    -1,   301,    -1,   302,    -1,   303,    -1,   304,
1076 >      -1,     1,   214,    -1,    89,   217,   117,   214,    -1,   115,
1077 >     217,   223,   214,    -1,   101,   217,    99,   214,    -1,    19,
1078 >     217,   223,   214,    -1,    81,   217,    99,   214,    -1,    76,
1079 >     217,    99,   214,    -1,    78,   217,    99,   214,    -1,    77,
1080 >     217,    99,   214,    -1,   142,   217,   225,   214,    -1,   183,
1081 >     217,   225,   214,    -1,    15,   217,    99,   214,    -1,    16,
1082 >     217,    99,   214,    -1,   100,   217,    99,   214,    -1,    -1,
1083 >      70,   309,   216,   314,   215,   214,    -1,    -1,    36,   311,
1084 >     217,   312,   214,    -1,   312,   218,   313,    -1,   313,    -1,
1085 >     190,    -1,    51,    -1,   185,    -1,   314,   315,    -1,   315,
1086 >      -1,   316,    -1,   310,    -1,   320,    -1,   321,    -1,     1,
1087 >     214,    -1,    -1,   116,   217,   318,   317,   214,    -1,   318,
1088 >     218,   319,    -1,   319,    -1,    99,    -1,    99,   163,    99,
1089 >      -1,    61,   217,   117,   214,    -1,    56,   217,   117,   214,
1090 >      -1,    -1,    48,   323,   216,   324,   215,   214,    -1,   324,
1091 >     325,    -1,   325,    -1,   326,    -1,   327,    -1,   328,    -1,
1092 >     330,    -1,   334,    -1,   335,    -1,   336,    -1,   329,    -1,
1093 >       1,   214,    -1,   205,   217,   117,   214,    -1,   112,   217,
1094 >     117,   214,    -1,    17,   217,   117,   214,    -1,    32,   217,
1095 >     159,   214,    -1,    -1,    36,   331,   217,   332,   214,    -1,
1096 >     332,   218,   333,    -1,   333,    -1,   153,    -1,    33,    -1,
1097 >      65,    -1,    49,    -1,    13,    -1,    98,    -1,    43,    -1,
1098 >     136,    -1,    90,    -1,   152,   217,   117,   214,    -1,   121,
1099 >     217,   117,   214,    -1,   120,   217,    99,   214,    -1,    -1,
1100 >     135,   338,   216,   339,   215,   214,    -1,   339,   340,    -1,
1101 >     340,    -1,   341,    -1,   342,    -1,   343,    -1,     1,   214,
1102 >      -1,   119,   217,   117,   214,    -1,    14,   217,   117,   214,
1103 >      -1,    93,   217,   117,   214,    -1,   200,   216,   345,   215,
1104 >     214,    -1,   345,   346,    -1,   346,    -1,   347,    -1,     1,
1105 >      -1,    89,   217,   117,   214,    -1,    -1,   148,   349,   216,
1106 >     350,   215,   214,    -1,   350,   351,    -1,   351,    -1,   352,
1107 >      -1,   353,    -1,   354,    -1,     1,   214,    -1,    89,   217,
1108 >     117,   214,    -1,   205,   217,   117,   214,    -1,    -1,   150,
1109 >     355,   217,   356,   214,    -1,   356,   218,   357,    -1,   357,
1110 >      -1,    64,    -1,   204,    -1,   173,    -1,   193,    -1,   210,
1111 >      -1,   196,    -1,   135,    -1,   195,    -1,   179,    -1,   164,
1112 >      -1,    -1,   149,   359,   216,   360,   215,   214,    -1,   360,
1113 >     361,    -1,   361,    -1,   362,    -1,   363,    -1,     1,   214,
1114 >      -1,    89,   217,   117,   214,    -1,    -1,   150,   364,   217,
1115 >     365,   214,    -1,   365,   218,   366,    -1,   366,    -1,    64,
1116 >      -1,   204,    -1,   173,    -1,   193,    -1,   210,    -1,   196,
1117 >      -1,   135,    -1,   195,    -1,   179,    -1,   164,    -1,    -1,
1118 >      18,   368,   216,   369,   215,   214,    -1,   369,   370,    -1,
1119 >     370,    -1,   371,    -1,   372,    -1,   373,    -1,   374,    -1,
1120 >     375,    -1,   377,    -1,   376,    -1,   386,    -1,   378,    -1,
1121 >     383,    -1,   384,    -1,   385,    -1,   382,    -1,     1,   214,
1122 >      -1,    89,   217,   117,   214,    -1,    56,   217,   117,   214,
1123 >      -1,   208,   217,   117,   214,    -1,   143,   217,   117,   214,
1124 >      -1,     3,   217,   117,   214,    -1,   116,   217,    99,   214,
1125 >      -1,     5,   217,   177,   214,    -1,     5,   217,   178,   214,
1126 >      -1,    -1,    36,   379,   217,   380,   214,    -1,   380,   218,
1127 >     381,    -1,   381,    -1,     8,    -1,   190,    -1,    32,   217,
1128 >     159,   214,    -1,    58,   217,   117,   214,    -1,    68,   217,
1129 >     117,   214,    -1,    17,   217,   117,   214,    -1,   170,   217,
1130 >     117,   214,    -1,    -1,    62,   388,   216,   393,   215,   214,
1131 >      -1,    -1,   150,   390,   217,   391,   214,    -1,   391,   218,
1132 >     392,    -1,   392,    -1,   122,    -1,   393,   394,    -1,   394,
1133 >      -1,   395,    -1,   396,    -1,   389,    -1,     1,    -1,   205,
1134 >     217,   117,   214,    -1,   119,   217,   117,   214,    -1,    -1,
1135 >      23,   398,   216,   399,   215,   214,    -1,   399,   400,    -1,
1136 >     400,    -1,   401,    -1,   402,    -1,     1,    -1,    61,   217,
1137 >     117,   214,    -1,   119,   217,   117,   214,    -1,    34,   216,
1138 >     404,   215,   214,    -1,   404,   405,    -1,   405,    -1,   406,
1139 >      -1,     1,    -1,    61,   217,   117,   214,    -1,    -1,    38,
1140 >     408,   216,   413,   215,   214,    -1,    -1,   150,   410,   217,
1141 >     411,   214,    -1,   411,   218,   412,    -1,   412,    -1,   122,
1142 >      -1,   413,   414,    -1,   414,    -1,   415,    -1,   416,    -1,
1143 >     409,    -1,     1,    -1,    89,   217,   117,   214,    -1,   119,
1144 >     217,   117,   214,    -1,    39,   216,   418,   215,   214,    -1,
1145 >     418,   419,    -1,   419,    -1,   428,    -1,   429,    -1,   431,
1146 >      -1,   432,    -1,   433,    -1,   434,    -1,   435,    -1,   436,
1147 >      -1,   437,    -1,   438,    -1,   427,    -1,   440,    -1,   441,
1148 >      -1,   456,    -1,   443,    -1,   445,    -1,   447,    -1,   446,
1149 >      -1,   450,    -1,   444,    -1,   451,    -1,   452,    -1,   453,
1150 >      -1,   454,    -1,   455,    -1,   468,    -1,   457,    -1,   458,
1151 >      -1,   459,    -1,   464,    -1,   448,    -1,   449,    -1,   474,
1152 >      -1,   472,    -1,   473,    -1,   430,    -1,   463,    -1,   439,
1153 >      -1,   461,    -1,   462,    -1,   426,    -1,   421,    -1,   422,
1154 >      -1,   423,    -1,   424,    -1,   425,    -1,   442,    -1,   420,
1155 >      -1,   460,    -1,     1,    -1,    83,   217,    99,   214,    -1,
1156 >      42,   217,   159,   214,    -1,    41,   217,   223,   214,    -1,
1157 >      44,   217,   223,   214,    -1,    45,   217,    99,   214,    -1,
1158 >      46,   217,    99,   214,    -1,   147,   217,   159,   214,    -1,
1159 >      63,   217,   223,   214,    -1,    55,   217,   159,   214,    -1,
1160 >      59,   217,   159,   214,    -1,    28,   217,   159,   214,    -1,
1161 >      35,   217,   159,   214,    -1,     6,   217,   159,   214,    -1,
1162 >      80,   217,   223,   214,    -1,    79,   217,    99,   214,    -1,
1163 >      72,   217,    99,   214,    -1,     7,   217,   223,   214,    -1,
1164 >     162,   217,   223,   214,    -1,   161,   217,   223,   214,    -1,
1165 >      50,   217,    99,   214,    -1,    60,   217,   159,   214,    -1,
1166 >     211,   217,   159,   214,    -1,   154,   217,   159,   214,    -1,
1167 >     157,   217,   159,   214,    -1,   158,   217,   159,   214,    -1,
1168 >     156,   217,   159,   214,    -1,   156,   217,   160,   214,    -1,
1169 >     155,   217,   159,   214,    -1,   155,   217,   160,   214,    -1,
1170 >     110,   217,   223,   214,    -1,    12,   217,   223,   214,    -1,
1171 >     103,   217,   159,   214,    -1,   111,   217,   223,   214,    -1,
1172 >     151,   217,   159,   214,    -1,    97,   217,   159,   214,    -1,
1173 >     203,   217,   159,   214,    -1,   105,   217,   159,   214,    -1,
1174 >      84,   217,   117,   214,    -1,    29,   217,    99,   214,    -1,
1175 >      82,   217,    99,   214,    -1,   206,   217,   159,   214,    -1,
1176 >      30,   217,   117,   214,    -1,   201,   217,   117,   214,    -1,
1177 >     114,   217,   159,   214,    -1,    26,   217,   159,   214,    -1,
1178 >     202,   217,   223,   214,    -1,    -1,   107,   465,   217,   466,
1179 >     214,    -1,   466,   218,   467,    -1,   467,    -1,   165,    -1,
1180 >     168,    -1,   169,    -1,   171,    -1,   172,    -1,   175,    -1,
1181 >      51,    -1,   188,    -1,   181,    -1,   184,    -1,   192,    -1,
1182 >     189,    -1,   174,    -1,   182,    -1,   186,    -1,   176,    -1,
1183 >     198,    -1,   166,    -1,   167,    -1,   179,    -1,    -1,   104,
1184 >     469,   217,   470,   214,    -1,   470,   218,   471,    -1,   471,
1185 >      -1,   165,    -1,   168,    -1,   169,    -1,   171,    -1,   172,
1186 >      -1,   175,    -1,   188,    -1,    51,    -1,   181,    -1,   184,
1187 >      -1,   192,    -1,   189,    -1,   174,    -1,   182,    -1,   186,
1188 >      -1,   176,    -1,   198,    -1,   166,    -1,   167,    -1,   179,
1189 >      -1,    85,   217,    99,   214,    -1,    86,   217,    99,   214,
1190 >      -1,    20,   217,    99,   214,    -1,    14,   216,   476,   215,
1191 >     214,    -1,   476,   477,    -1,   477,    -1,   485,    -1,   480,
1192 >      -1,   481,    -1,   482,    -1,   483,    -1,   484,    -1,   486,
1193 >      -1,   487,    -1,   488,    -1,   479,    -1,   489,    -1,   490,
1194 >      -1,   491,    -1,   478,    -1,     1,    -1,    27,   217,   159,
1195 >     214,    -1,   126,   217,   159,   214,    -1,    66,   217,   223,
1196 >     214,    -1,    67,   217,   223,   214,    -1,    75,   217,    99,
1197 >     214,    -1,    74,   217,    99,   214,    -1,   118,   217,   159,
1198 >     214,    -1,    73,   217,    99,   214,    -1,    22,   217,    99,
1199 >     214,    -1,    21,   217,    99,   214,    -1,    95,   217,   159,
1200 >     214,    -1,    96,   217,   159,   214,    -1,   108,   217,    99,
1201 >     214,    -1,   109,   217,   223,   214,    -1,   144,   216,   493,
1202 >     215,   214,    -1,   493,   494,    -1,   494,    -1,   495,    -1,
1203 >     496,    -1,   498,    -1,   499,    -1,   497,    -1,   500,    -1,
1204 >       1,    -1,    37,   217,   159,   214,    -1,    54,   217,   159,
1205 >     214,    -1,    52,   217,   117,   214,    -1,    69,   217,   223,
1206 >     214,    -1,    51,   217,   159,   214,    -1,    53,   217,   159,
1207 >     214,    -1
1208   };
1209  
1210   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1211   static const yytype_uint16 yyrline[] =
1212   {
1213 <       0,   380,   380,   381,   384,   385,   386,   387,   388,   389,
1214 <     390,   391,   392,   393,   394,   395,   396,   397,   398,   399,
1215 <     400,   401,   402,   403,   404,   405,   406,   410,   410,   411,
1216 <     415,   419,   423,   427,   431,   437,   437,   438,   439,   440,
1217 <     441,   448,   451,   451,   452,   452,   452,   454,   460,   467,
1218 <     469,   469,   470,   470,   471,   471,   472,   472,   473,   474,
1219 <     474,   475,   475,   476,   477,   481,   480,   499,   499,   500,
1220 <     506,   514,   548,   608,   623,   638,   647,   661,   670,   698,
1221 <     728,   751,   760,   762,   762,   763,   763,   764,   764,   766,
1222 <     775,   784,   796,   797,   797,   799,   799,   799,   800,   802,
1223 <     808,   815,   815,   825,   826,   828,   828,   829,   829,   831,
1224 <     836,   839,   845,   844,   850,   850,   851,   855,   859,   863,
1225 <     867,   871,   875,   886,   885,   983,   983,   984,   984,   984,
1226 <     985,   985,   985,   986,   986,   986,   988,  1000,  1037,  1049,
1227 <    1060,  1102,  1112,  1111,  1117,  1117,  1118,  1122,  1126,  1130,
1228 <    1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,
1229 <    1174,  1178,  1182,  1186,  1190,  1194,  1201,  1200,  1206,  1206,
1230 <    1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,  1243,
1231 <    1247,  1251,  1255,  1259,  1263,  1267,  1271,  1275,  1286,  1285,
1232 <    1335,  1335,  1336,  1337,  1337,  1338,  1339,  1340,  1341,  1342,
1233 <    1343,  1344,  1345,  1346,  1347,  1348,  1350,  1359,  1365,  1371,
1234 <    1377,  1383,  1389,  1395,  1401,  1407,  1413,  1419,  1425,  1435,
1235 <    1434,  1451,  1450,  1455,  1455,  1456,  1460,  1464,  1472,  1472,
1236 <    1473,  1473,  1473,  1473,  1473,  1475,  1475,  1477,  1477,  1479,
1237 <    1493,  1513,  1522,  1535,  1534,  1603,  1603,  1604,  1604,  1604,
1238 <    1604,  1605,  1605,  1605,  1606,  1606,  1608,  1645,  1658,  1667,
1239 <    1679,  1678,  1682,  1682,  1683,  1687,  1691,  1695,  1699,  1703,
1240 <    1707,  1711,  1715,  1722,  1741,  1751,  1765,  1764,  1780,  1780,
1241 <    1781,  1781,  1781,  1781,  1783,  1792,  1807,  1820,  1822,  1822,
1242 <    1823,  1823,  1825,  1841,  1840,  1856,  1856,  1857,  1857,  1857,
1243 <    1857,  1859,  1868,  1891,  1890,  1896,  1896,  1897,  1901,  1905,
1244 <    1909,  1913,  1917,  1921,  1925,  1929,  1933,  1943,  1942,  1959,
1245 <    1959,  1960,  1960,  1960,  1962,  1969,  1968,  1974,  1974,  1975,
1246 <    1979,  1983,  1987,  1991,  1995,  1999,  2003,  2007,  2011,  2021,
1247 <    2020,  2163,  2163,  2164,  2164,  2164,  2165,  2165,  2166,  2166,
1248 <    2167,  2167,  2167,  2168,  2168,  2169,  2169,  2170,  2172,  2184,
1249 <    2193,  2219,  2237,  2255,  2261,  2265,  2274,  2273,  2277,  2277,
1250 <    2278,  2288,  2292,  2296,  2300,  2306,  2347,  2358,  2371,  2384,
1251 <    2393,  2429,  2428,  2492,  2491,  2495,  2495,  2496,  2502,  2502,
1252 <    2503,  2503,  2503,  2503,  2505,  2524,  2534,  2533,  2556,  2556,
1253 <    2557,  2557,  2557,  2559,  2565,  2574,  2576,  2576,  2577,  2577,
1254 <    2579,  2598,  2597,  2645,  2644,  2648,  2648,  2649,  2655,  2655,
1255 <    2656,  2656,  2656,  2656,  2658,  2664,  2673,  2676,  2676,  2677,
1256 <    2677,  2678,  2678,  2679,  2679,  2680,  2680,  2681,  2681,  2682,
1257 <    2682,  2683,  2683,  2684,  2684,  2685,  2685,  2686,  2686,  2687,
1258 <    2687,  2688,  2688,  2689,  2689,  2690,  2691,  2691,  2692,  2692,
1259 <    2693,  2693,  2694,  2694,  2695,  2695,  2696,  2696,  2697,  2698,
1260 <    2698,  2699,  2699,  2700,  2701,  2702,  2702,  2703,  2703,  2704,
1261 <    2704,  2705,  2705,  2706,  2709,  2714,  2719,  2724,  2729,  2734,
1262 <    2739,  2744,  2749,  2754,  2759,  2764,  2769,  2774,  2779,  2784,
1263 <    2789,  2794,  2800,  2811,  2816,  2825,  2830,  2835,  2840,  2845,
1264 <    2850,  2853,  2858,  2861,  2866,  2871,  2876,  2881,  2886,  2891,
1265 <    2896,  2901,  2906,  2917,  2922,  2927,  2936,  2968,  2986,  2991,
1266 <    3000,  3009,  3014,  3019,  3025,  3024,  3029,  3029,  3030,  3033,
1267 <    3036,  3039,  3042,  3045,  3048,  3051,  3054,  3057,  3060,  3063,
1268 <    3066,  3069,  3072,  3075,  3078,  3081,  3084,  3087,  3093,  3092,
1269 <    3097,  3097,  3098,  3101,  3104,  3107,  3110,  3113,  3116,  3119,
1270 <    3122,  3125,  3128,  3131,  3134,  3137,  3140,  3143,  3146,  3149,
1271 <    3152,  3155,  3160,  3165,  3170,  3175,  3185,  3184,  3208,  3208,
1272 <    3209,  3210,  3211,  3212,  3213,  3214,  3215,  3217,  3223,  3230,
1273 <    3229,  3234,  3234,  3235,  3239,  3245,  3279,  3289,  3288,  3338,
1274 <    3338,  3339,  3343,  3352,  3355,  3355,  3356,  3356,  3357,  3357,
1275 <    3358,  3358,  3359,  3359,  3360,  3360,  3361,  3362,  3362,  3363,
1364 <    3363,  3364,  3364,  3365,  3365,  3367,  3372,  3377,  3382,  3387,
1365 <    3392,  3397,  3402,  3407,  3412,  3417,  3422,  3427,  3432,  3437,
1366 <    3442,  3447,  3452,  3460,  3463,  3463,  3464,  3464,  3465,  3466,
1367 <    3467,  3467,  3468,  3469,  3471,  3477,  3483,  3492,  3506,  3512,
1368 <    3518
1213 >       0,   328,   328,   329,   332,   333,   334,   335,   336,   337,
1214 >     338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
1215 >     348,   349,   350,   351,   352,   353,   357,   357,   358,   362,
1216 >     366,   370,   374,   378,   384,   384,   385,   386,   387,   388,
1217 >     395,   398,   398,   399,   399,   399,   401,   407,   414,   416,
1218 >     416,   417,   417,   418,   418,   419,   419,   420,   420,   421,
1219 >     421,   422,   422,   423,   423,   424,   425,   428,   429,   431,
1220 >     431,   432,   438,   446,   446,   447,   453,   461,   500,   559,
1221 >     587,   595,   610,   625,   634,   648,   657,   685,   715,   738,
1222 >     747,   749,   749,   750,   750,   751,   751,   753,   762,   771,
1223 >     783,   784,   784,   786,   786,   787,   789,   796,   796,   806,
1224 >     807,   809,   809,   810,   810,   812,   817,   820,   826,   825,
1225 >     831,   831,   832,   836,   840,   844,   848,   852,   856,   867,
1226 >     866,   958,   958,   959,   959,   959,   960,   960,   960,   961,
1227 >     961,   961,   963,   972,  1009,  1021,  1032,  1074,  1084,  1083,
1228 >    1089,  1089,  1090,  1094,  1098,  1102,  1106,  1110,  1114,  1118,
1229 >    1122,  1126,  1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,
1230 >    1162,  1166,  1173,  1172,  1178,  1178,  1179,  1183,  1187,  1191,
1231 >    1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,
1232 >    1235,  1239,  1243,  1247,  1251,  1262,  1261,  1307,  1307,  1308,
1233 >    1309,  1309,  1310,  1311,  1312,  1313,  1314,  1315,  1316,  1317,
1234 >    1318,  1318,  1319,  1321,  1330,  1336,  1342,  1348,  1354,  1360,
1235 >    1366,  1372,  1378,  1385,  1391,  1397,  1407,  1406,  1423,  1422,
1236 >    1427,  1427,  1428,  1432,  1436,  1444,  1444,  1445,  1445,  1445,
1237 >    1445,  1445,  1447,  1447,  1449,  1449,  1451,  1465,  1485,  1494,
1238 >    1507,  1506,  1569,  1569,  1570,  1570,  1570,  1570,  1571,  1571,
1239 >    1571,  1572,  1572,  1574,  1609,  1622,  1631,  1643,  1642,  1646,
1240 >    1646,  1647,  1651,  1655,  1659,  1663,  1667,  1671,  1675,  1679,
1241 >    1685,  1704,  1714,  1728,  1727,  1743,  1743,  1744,  1744,  1744,
1242 >    1744,  1746,  1755,  1770,  1783,  1785,  1785,  1786,  1786,  1788,
1243 >    1804,  1803,  1818,  1818,  1819,  1819,  1819,  1819,  1821,  1830,
1244 >    1853,  1852,  1858,  1858,  1859,  1863,  1867,  1871,  1875,  1879,
1245 >    1883,  1887,  1891,  1895,  1905,  1904,  1920,  1920,  1921,  1921,
1246 >    1921,  1923,  1930,  1929,  1935,  1935,  1936,  1940,  1944,  1948,
1247 >    1952,  1956,  1960,  1964,  1968,  1972,  1982,  1981,  2030,  2030,
1248 >    2031,  2031,  2031,  2032,  2032,  2033,  2033,  2033,  2034,  2034,
1249 >    2034,  2035,  2035,  2036,  2038,  2047,  2056,  2082,  2100,  2118,
1250 >    2124,  2128,  2137,  2136,  2140,  2140,  2141,  2145,  2151,  2162,
1251 >    2173,  2184,  2193,  2212,  2211,  2275,  2274,  2278,  2278,  2279,
1252 >    2285,  2285,  2286,  2286,  2286,  2286,  2288,  2307,  2317,  2316,
1253 >    2339,  2339,  2340,  2340,  2340,  2342,  2348,  2357,  2359,  2359,
1254 >    2360,  2360,  2362,  2381,  2380,  2427,  2426,  2430,  2430,  2431,
1255 >    2437,  2437,  2438,  2438,  2438,  2438,  2440,  2446,  2455,  2458,
1256 >    2458,  2459,  2459,  2460,  2460,  2461,  2461,  2462,  2462,  2463,
1257 >    2463,  2464,  2465,  2466,  2466,  2467,  2467,  2468,  2468,  2469,
1258 >    2469,  2470,  2470,  2471,  2471,  2472,  2473,  2473,  2474,  2474,
1259 >    2475,  2475,  2476,  2476,  2477,  2477,  2478,  2479,  2479,  2480,
1260 >    2481,  2482,  2482,  2483,  2483,  2484,  2485,  2486,  2487,  2487,
1261 >    2488,  2491,  2496,  2502,  2508,  2514,  2519,  2524,  2529,  2534,
1262 >    2539,  2544,  2549,  2554,  2559,  2564,  2569,  2574,  2579,  2584,
1263 >    2590,  2601,  2606,  2611,  2616,  2621,  2626,  2629,  2634,  2637,
1264 >    2642,  2647,  2652,  2657,  2662,  2667,  2672,  2677,  2682,  2693,
1265 >    2698,  2703,  2708,  2717,  2726,  2731,  2736,  2742,  2741,  2746,
1266 >    2746,  2747,  2750,  2753,  2756,  2759,  2762,  2765,  2768,  2771,
1267 >    2774,  2777,  2780,  2783,  2786,  2789,  2792,  2795,  2798,  2801,
1268 >    2804,  2810,  2809,  2814,  2814,  2815,  2818,  2821,  2824,  2827,
1269 >    2830,  2833,  2836,  2839,  2842,  2845,  2848,  2851,  2854,  2857,
1270 >    2860,  2863,  2866,  2869,  2872,  2877,  2882,  2887,  2896,  2899,
1271 >    2899,  2900,  2901,  2901,  2902,  2902,  2903,  2903,  2904,  2905,
1272 >    2905,  2906,  2907,  2907,  2908,  2908,  2910,  2915,  2920,  2925,
1273 >    2930,  2935,  2940,  2945,  2950,  2955,  2960,  2965,  2970,  2975,
1274 >    2983,  2986,  2986,  2987,  2987,  2988,  2989,  2989,  2990,  2991,
1275 >    2993,  2999,  3005,  3014,  3028,  3034
1276   };
1277   #endif
1278  
1279 < #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1279 > #if YYDEBUG || YYERROR_VERBOSE || 0
1280   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1281     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1282   static const char *const yytname[] =
1283   {
1284 <  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ACTION", "ADMIN",
1285 <  "AFTYPE", "T_ALLOW", "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME",
1286 <  "AUTOCONN", "T_BLOCK", "BURST_AWAY", "BURST_TOPICWHO", "BYTES", "KBYTES",
1287 <  "MBYTES", "GBYTES", "TBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1288 <  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CIPHER_PREFERENCE", "CLASS",
1289 <  "COMPRESSED", "COMPRESSION_LEVEL", "CONNECT", "CONNECTFREQ", "CRYPTLINK",
1290 <  "DEFAULT_CIPHER_PREFERENCE", "DEFAULT_FLOODCOUNT",
1291 <  "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1292 <  "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1293 <  "DISABLE_HIDDEN", "DISABLE_LOCAL_CHANNELS", "DISABLE_REMOTE_COMMANDS",
1294 <  "DOTS_IN_IDENT", "DURATION", "EGDPOOL_PATH", "EMAIL", "ENABLE",
1388 <  "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1389 <  "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINES",
1390 <  "GLINE_EXEMPT", "GLINE_TIME", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1284 >  "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1285 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1286 >  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1287 >  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1288 >  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1289 >  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1290 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1291 >  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1292 >  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1293 >  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1294 >  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1295    "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1296    "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1297    "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1298    "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1299 <  "KLINE_REASON", "KLINE_WITH_REASON", "KNOCK_DELAY",
1300 <  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "T_LOG",
1301 <  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_USER", "MAX_GLOBAL",
1302 <  "MAX_IDENT", "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_TIME",
1303 <  "MAX_NUMBER", "MAX_TARGETS", "MAX_WATCH", "MESSAGE_LOCALE",
1304 <  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME",
1305 <  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1299 >  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1300 >  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1301 >  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1302 >  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1303 >  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1304 >  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1305 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1306    "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1307 <  "NUMBER", "NUMBER_PER_IDENT", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1308 <  "NUMBER_PER_IP_GLOBAL", "OPERATOR", "OPERS_BYPASS_CALLERID",
1309 <  "OPER_ONLY_UMODES", "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES",
1310 <  "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1311 <  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT",
1312 <  "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T",
1313 <  "REHASH", "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN",
1314 <  "RESTRICT_CHANNELS", "RESTRICTED", "RSA_PRIVATE_KEY_FILE",
1315 <  "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE", "T_SSL_CONNECTION_METHOD",
1316 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1317 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1318 <  "SERVERINFO", "SERVLINK_PATH", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1319 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SILENT", "SPOOF",
1320 <  "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1321 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1322 <  "TMASKED", "T_REJECT", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS",
1323 <  "T_ALL", "T_BOTS", "T_SOFTCALLERID", "T_CALLERID", "T_CCONN",
1324 <  "T_CCONN_FULL", "T_CLIENT_FLOOD", "T_DEAF", "T_DEBUG", "T_DLINE",
1325 <  "T_DRONE", "T_EXTERNAL", "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6",
1326 <  "T_LOCOPS", "T_MAX_CLIENTS", "T_NCHANGE", "T_OPERWALL", "T_REJ",
1423 <  "T_SERVER", "T_SERVNOTICE", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1307 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1308 >  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1309 >  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1310 >  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1311 >  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1312 >  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1313 >  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1314 >  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1315 >  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1316 >  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1317 >  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1318 >  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1319 >  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1320 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1321 >  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1322 >  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1323 >  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1324 >  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1325 >  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1326 >  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1327    "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1328    "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1329 <  "T_TIMESTAMP", "THROTTLE_TIME", "TOPICBURST", "TRUE_NO_OPER_FLOOD",
1330 <  "TKLINE", "TXLINE", "TRESV", "UNKLINE", "USER", "USE_EGD", "USE_EXCEPT",
1331 <  "USE_INVEX", "USE_KNOCK", "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST",
1332 <  "VHOST6", "XLINE", "WARN", "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'",
1333 <  "'}'", "'{'", "'='", "','", "$accept", "conf", "conf_item", "timespec_",
1334 <  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1335 <  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1336 <  "serverinfo_items", "serverinfo_item",
1337 <  "serverinfo_ssl_connection_method", "$@1", "method_types",
1338 <  "method_type_item", "serverinfo_ssl_certificate_file",
1339 <  "serverinfo_rsa_private_key_file", "serverinfo_name", "serverinfo_sid",
1329 >  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1330 >  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1331 >  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1332 >  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1333 >  "modules_entry", "modules_items", "modules_item", "modules_module",
1334 >  "modules_path", "serverinfo_entry", "serverinfo_items",
1335 >  "serverinfo_item", "serverinfo_ssl_client_method",
1336 >  "serverinfo_ssl_server_method", "client_method_types",
1337 >  "client_method_type_item", "server_method_types",
1338 >  "server_method_type_item", "serverinfo_ssl_certificate_file",
1339 >  "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1340 >  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1341    "serverinfo_description", "serverinfo_network_name",
1342    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1343    "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1344    "admin_item", "admin_name", "admin_email", "admin_description",
1345    "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1346 <  "logging_timestamp", "logging_file_entry", "$@2", "logging_file_items",
1347 <  "logging_file_item", "logging_file_name", "logging_file_size",
1348 <  "logging_file_type", "$@3", "logging_file_type_items",
1349 <  "logging_file_type_item", "oper_entry", "$@4", "oper_items", "oper_item",
1350 <  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1351 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@5",
1352 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@6",
1353 <  "oper_flags_items", "oper_flags_item", "class_entry", "$@7",
1354 <  "class_items", "class_item", "class_name", "class_ping_time",
1451 <  "class_ping_warning", "class_number_per_ip", "class_connectfreq",
1346 >  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1347 >  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1348 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1349 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1350 >  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1351 >  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1352 >  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1353 >  "class_entry", "$@6", "class_items", "class_item", "class_name",
1354 >  "class_ping_time", "class_number_per_ip", "class_connectfreq",
1355    "class_max_number", "class_max_global", "class_max_local",
1356 <  "class_max_ident", "class_sendq", "class_cidr_bitlen_ipv4",
1357 <  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "listen_entry", "$@8",
1358 <  "listen_flags", "$@9", "listen_flags_items", "listen_flags_item",
1359 <  "listen_items", "listen_item", "listen_port", "$@10", "port_items",
1360 <  "port_item", "listen_address", "listen_host", "auth_entry", "$@11",
1361 <  "auth_items", "auth_item", "auth_user", "auth_passwd", "auth_class",
1362 <  "auth_encrypted", "auth_flags", "$@12", "auth_flags_items",
1363 <  "auth_flags_item", "auth_spoof", "auth_redir_serv", "auth_redir_port",
1364 <  "resv_entry", "$@13", "resv_items", "resv_item", "resv_creason",
1365 <  "resv_channel", "resv_nick", "service_entry", "service_items",
1366 <  "service_item", "service_name", "shared_entry", "$@14", "shared_items",
1367 <  "shared_item", "shared_name", "shared_user", "shared_type", "$@15",
1368 <  "shared_types", "shared_type_item", "cluster_entry", "$@16",
1369 <  "cluster_items", "cluster_item", "cluster_name", "cluster_type", "$@17",
1370 <  "cluster_types", "cluster_type_item", "connect_entry", "$@18",
1371 <  "connect_items", "connect_item", "connect_name", "connect_host",
1372 <  "connect_vhost", "connect_send_password", "connect_accept_password",
1373 <  "connect_port", "connect_aftype", "connect_flags", "$@19",
1374 <  "connect_flags_items", "connect_flags_item",
1375 <  "connect_rsa_public_key_file", "connect_encrypted", "connect_hub_mask",
1376 <  "connect_leaf_mask", "connect_class", "connect_cipher_preference",
1377 <  "kill_entry", "$@20", "kill_type", "$@21", "kill_type_items",
1378 <  "kill_type_item", "kill_items", "kill_item", "kill_user", "kill_reason",
1379 <  "deny_entry", "$@22", "deny_items", "deny_item", "deny_ip",
1380 <  "deny_reason", "exempt_entry", "exempt_items", "exempt_item",
1381 <  "exempt_ip", "gecos_entry", "$@23", "gecos_flags", "$@24",
1382 <  "gecos_flags_items", "gecos_flags_item", "gecos_items", "gecos_item",
1383 <  "gecos_name", "gecos_reason", "general_entry", "general_items",
1384 <  "general_item", "general_max_watch", "general_gline_min_cidr",
1385 <  "general_gline_min_cidr6", "general_use_whois_actually",
1386 <  "general_reject_hold_time", "general_tkline_expire_notices",
1356 >  "class_max_ident", "class_sendq", "class_recvq",
1357 >  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1358 >  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1359 >  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1360 >  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1361 >  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1362 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1363 >  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1364 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1365 >  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1366 >  "service_entry", "service_items", "service_item", "service_name",
1367 >  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1368 >  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1369 >  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1370 >  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1371 >  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1372 >  "connect_host", "connect_vhost", "connect_send_password",
1373 >  "connect_accept_password", "connect_port", "connect_aftype",
1374 >  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1375 >  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1376 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1377 >  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1378 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1379 >  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1380 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1381 >  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1382 >  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1383 >  "general_entry", "general_items", "general_item", "general_max_watch",
1384 >  "general_gline_enable", "general_gline_duration",
1385 >  "general_gline_request_duration", "general_gline_min_cidr",
1386 >  "general_gline_min_cidr6", "general_tkline_expire_notices",
1387    "general_kill_chase_time_limit", "general_hide_spoof_ips",
1388    "general_ignore_bogus_ts", "general_disable_remote_commands",
1389    "general_failed_oper_notice", "general_anti_nick_flood",
1390    "general_max_nick_time", "general_max_nick_changes",
1391    "general_max_accept", "general_anti_spam_exit_message_time",
1392    "general_ts_warn_delta", "general_ts_max_delta",
1393 <  "general_havent_read_conf", "general_kline_with_reason",
1491 <  "general_kline_reason", "general_invisible_on_connect",
1393 >  "general_havent_read_conf", "general_invisible_on_connect",
1394    "general_warn_no_nline", "general_stats_e_disabled",
1395    "general_stats_o_oper_only", "general_stats_P_oper_only",
1396    "general_stats_k_oper_only", "general_stats_i_oper_only",
# Line 1497 | Line 1399 | static const char *const yytname[] =
1399    "general_short_motd", "general_no_oper_flood",
1400    "general_true_no_oper_flood", "general_oper_pass_resv",
1401    "general_message_locale", "general_dots_in_ident", "general_max_targets",
1402 <  "general_servlink_path", "general_default_cipher_preference",
1403 <  "general_compression_level", "general_use_egd", "general_egdpool_path",
1404 <  "general_services_name", "general_ping_cookie", "general_disable_auth",
1405 <  "general_throttle_time", "general_oper_umodes", "$@25", "umode_oitems",
1406 <  "umode_oitem", "general_oper_only_umodes", "$@26", "umode_items",
1407 <  "umode_item", "general_min_nonwildcard",
1408 <  "general_min_nonwildcard_simple", "general_default_floodcount",
1409 <  "general_client_flood", "gline_entry", "$@27", "gline_items",
1508 <  "gline_item", "gline_enable", "gline_duration", "gline_logging", "$@28",
1509 <  "gline_logging_types", "gline_logging_type_item", "gline_user",
1510 <  "gline_server", "gline_action", "$@29", "gdeny_types", "gdeny_type_item",
1511 <  "channel_entry", "channel_items", "channel_item",
1512 <  "channel_disable_fake_channels", "channel_restrict_channels",
1513 <  "channel_disable_local_channels", "channel_use_except",
1514 <  "channel_use_invex", "channel_use_knock", "channel_knock_delay",
1402 >  "general_use_egd", "general_egdpool_path", "general_services_name",
1403 >  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1404 >  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1405 >  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1406 >  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1407 >  "general_default_floodcount", "channel_entry", "channel_items",
1408 >  "channel_item", "channel_disable_fake_channels",
1409 >  "channel_restrict_channels", "channel_knock_delay",
1410    "channel_knock_delay_channel", "channel_max_chans_per_user",
1411 <  "channel_quiet_on_ban", "channel_max_bans",
1411 >  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1412    "channel_default_split_user_count", "channel_default_split_server_count",
1413    "channel_no_create_on_split", "channel_no_join_on_split",
1414 <  "channel_burst_topicwho", "channel_jflood_count", "channel_jflood_time",
1415 <  "serverhide_entry", "serverhide_items", "serverhide_item",
1416 <  "serverhide_flatten_links", "serverhide_hide_servers",
1417 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1418 <  "serverhide_disable_hidden", "serverhide_hide_server_ips", 0
1414 >  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1415 >  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1416 >  "serverhide_hide_servers", "serverhide_hidden_name",
1417 >  "serverhide_links_delay", "serverhide_hidden",
1418 >  "serverhide_hide_server_ips", YY_NULL
1419   };
1420   #endif
1421  
# Line 1550 | Line 1445 | static const yytype_uint16 yytoknum[] =
1445       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1446       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1447       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1448 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1554 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1555 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1556 <     495,   496,   497,   498,   499,    59,   125,   123,    61,    44
1448 >     465,   466,   467,   468,    59,   125,   123,    61,    44
1449   };
1450   # endif
1451  
1452   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1453   static const yytype_uint16 yyr1[] =
1454   {
1455 <       0,   250,   251,   251,   252,   252,   252,   252,   252,   252,
1456 <     252,   252,   252,   252,   252,   252,   252,   252,   252,   252,
1457 <     252,   252,   252,   252,   252,   252,   252,   253,   253,   254,
1458 <     254,   254,   254,   254,   254,   255,   255,   256,   256,   256,
1459 <     256,   257,   258,   258,   259,   259,   259,   260,   261,   262,
1460 <     263,   263,   264,   264,   264,   264,   264,   264,   264,   264,
1461 <     264,   264,   264,   264,   264,   266,   265,   267,   267,   268,
1462 <     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
1463 <     278,   279,   280,   281,   281,   282,   282,   282,   282,   283,
1464 <     284,   285,   286,   287,   287,   288,   288,   288,   288,   289,
1465 <     290,   292,   291,   293,   293,   294,   294,   294,   294,   295,
1466 <     296,   296,   298,   297,   299,   299,   300,   300,   300,   300,
1467 <     300,   300,   300,   302,   301,   303,   303,   304,   304,   304,
1468 <     304,   304,   304,   304,   304,   304,   305,   306,   307,   308,
1469 <     309,   310,   312,   311,   313,   313,   314,   314,   314,   314,
1470 <     314,   314,   314,   314,   314,   314,   314,   314,   314,   314,
1471 <     314,   314,   314,   314,   314,   314,   316,   315,   317,   317,
1472 <     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
1473 <     318,   318,   318,   318,   318,   318,   318,   318,   320,   319,
1474 <     321,   321,   322,   322,   322,   322,   322,   322,   322,   322,
1475 <     322,   322,   322,   322,   322,   322,   323,   324,   325,   326,
1476 <     327,   328,   329,   330,   331,   332,   333,   334,   335,   337,
1477 <     336,   339,   338,   340,   340,   341,   341,   341,   342,   342,
1478 <     343,   343,   343,   343,   343,   345,   344,   346,   346,   347,
1479 <     347,   348,   349,   351,   350,   352,   352,   353,   353,   353,
1480 <     353,   353,   353,   353,   353,   353,   354,   355,   356,   357,
1481 <     359,   358,   360,   360,   361,   361,   361,   361,   361,   361,
1482 <     361,   361,   361,   362,   363,   364,   366,   365,   367,   367,
1483 <     368,   368,   368,   368,   369,   370,   371,   372,   373,   373,
1484 <     374,   374,   375,   377,   376,   378,   378,   379,   379,   379,
1485 <     379,   380,   381,   383,   382,   384,   384,   385,   385,   385,
1486 <     385,   385,   385,   385,   385,   385,   385,   387,   386,   388,
1487 <     388,   389,   389,   389,   390,   392,   391,   393,   393,   394,
1488 <     394,   394,   394,   394,   394,   394,   394,   394,   394,   396,
1489 <     395,   397,   397,   398,   398,   398,   398,   398,   398,   398,
1490 <     398,   398,   398,   398,   398,   398,   398,   398,   399,   400,
1491 <     401,   402,   403,   404,   405,   405,   407,   406,   408,   408,
1492 <     409,   409,   409,   409,   409,   410,   411,   412,   413,   414,
1493 <     415,   417,   416,   419,   418,   420,   420,   421,   422,   422,
1494 <     423,   423,   423,   423,   424,   425,   427,   426,   428,   428,
1495 <     429,   429,   429,   430,   431,   432,   433,   433,   434,   434,
1496 <     435,   437,   436,   439,   438,   440,   440,   441,   442,   442,
1497 <     443,   443,   443,   443,   444,   445,   446,   447,   447,   448,
1498 <     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
1499 <     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
1500 <     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
1501 <     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
1502 <     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
1503 <     448,   448,   448,   448,   449,   450,   451,   452,   453,   454,
1504 <     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1505 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1506 <     475,   475,   476,   476,   477,   478,   479,   480,   481,   482,
1507 <     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
1508 <     493,   494,   495,   496,   498,   497,   499,   499,   500,   500,
1509 <     500,   500,   500,   500,   500,   500,   500,   500,   500,   500,
1510 <     500,   500,   500,   500,   500,   500,   500,   500,   502,   501,
1511 <     503,   503,   504,   504,   504,   504,   504,   504,   504,   504,
1512 <     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
1513 <     504,   504,   505,   506,   507,   508,   510,   509,   511,   511,
1514 <     512,   512,   512,   512,   512,   512,   512,   513,   514,   516,
1515 <     515,   517,   517,   518,   518,   519,   520,   522,   521,   523,
1516 <     523,   524,   524,   525,   526,   526,   527,   527,   527,   527,
1517 <     527,   527,   527,   527,   527,   527,   527,   527,   527,   527,
1626 <     527,   527,   527,   527,   527,   528,   529,   530,   531,   532,
1627 <     533,   534,   535,   536,   537,   538,   539,   540,   541,   542,
1628 <     543,   544,   545,   546,   547,   547,   548,   548,   548,   548,
1629 <     548,   548,   548,   548,   549,   550,   551,   552,   553,   554,
1630 <     555
1455 >       0,   219,   220,   220,   221,   221,   221,   221,   221,   221,
1456 >     221,   221,   221,   221,   221,   221,   221,   221,   221,   221,
1457 >     221,   221,   221,   221,   221,   221,   222,   222,   223,   223,
1458 >     223,   223,   223,   223,   224,   224,   225,   225,   225,   225,
1459 >     226,   227,   227,   228,   228,   228,   229,   230,   231,   232,
1460 >     232,   233,   233,   233,   233,   233,   233,   233,   233,   233,
1461 >     233,   233,   233,   233,   233,   233,   233,   234,   235,   236,
1462 >     236,   237,   237,   238,   238,   239,   239,   240,   241,   242,
1463 >     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1464 >     253,   254,   254,   255,   255,   255,   255,   256,   257,   258,
1465 >     259,   260,   260,   261,   261,   261,   262,   264,   263,   265,
1466 >     265,   266,   266,   266,   266,   267,   268,   268,   270,   269,
1467 >     271,   271,   272,   272,   272,   272,   272,   272,   272,   274,
1468 >     273,   275,   275,   276,   276,   276,   276,   276,   276,   276,
1469 >     276,   276,   277,   278,   279,   280,   281,   282,   284,   283,
1470 >     285,   285,   286,   286,   286,   286,   286,   286,   286,   286,
1471 >     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
1472 >     286,   286,   288,   287,   289,   289,   290,   290,   290,   290,
1473 >     290,   290,   290,   290,   290,   290,   290,   290,   290,   290,
1474 >     290,   290,   290,   290,   290,   292,   291,   293,   293,   294,
1475 >     294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
1476 >     294,   294,   294,   295,   296,   297,   298,   299,   300,   301,
1477 >     302,   303,   304,   305,   306,   307,   309,   308,   311,   310,
1478 >     312,   312,   313,   313,   313,   314,   314,   315,   315,   315,
1479 >     315,   315,   317,   316,   318,   318,   319,   319,   320,   321,
1480 >     323,   322,   324,   324,   325,   325,   325,   325,   325,   325,
1481 >     325,   325,   325,   326,   327,   328,   329,   331,   330,   332,
1482 >     332,   333,   333,   333,   333,   333,   333,   333,   333,   333,
1483 >     334,   335,   336,   338,   337,   339,   339,   340,   340,   340,
1484 >     340,   341,   342,   343,   344,   345,   345,   346,   346,   347,
1485 >     349,   348,   350,   350,   351,   351,   351,   351,   352,   353,
1486 >     355,   354,   356,   356,   357,   357,   357,   357,   357,   357,
1487 >     357,   357,   357,   357,   359,   358,   360,   360,   361,   361,
1488 >     361,   362,   364,   363,   365,   365,   366,   366,   366,   366,
1489 >     366,   366,   366,   366,   366,   366,   368,   367,   369,   369,
1490 >     370,   370,   370,   370,   370,   370,   370,   370,   370,   370,
1491 >     370,   370,   370,   370,   371,   372,   373,   374,   375,   376,
1492 >     377,   377,   379,   378,   380,   380,   381,   381,   382,   383,
1493 >     384,   385,   386,   388,   387,   390,   389,   391,   391,   392,
1494 >     393,   393,   394,   394,   394,   394,   395,   396,   398,   397,
1495 >     399,   399,   400,   400,   400,   401,   402,   403,   404,   404,
1496 >     405,   405,   406,   408,   407,   410,   409,   411,   411,   412,
1497 >     413,   413,   414,   414,   414,   414,   415,   416,   417,   418,
1498 >     418,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1499 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1500 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1501 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1502 >     419,   419,   419,   419,   419,   419,   419,   419,   419,   419,
1503 >     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1504 >     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1505 >     439,   440,   441,   442,   443,   444,   445,   445,   446,   446,
1506 >     447,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1507 >     457,   458,   459,   460,   461,   462,   463,   465,   464,   466,
1508 >     466,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1509 >     467,   467,   467,   467,   467,   467,   467,   467,   467,   467,
1510 >     467,   469,   468,   470,   470,   471,   471,   471,   471,   471,
1511 >     471,   471,   471,   471,   471,   471,   471,   471,   471,   471,
1512 >     471,   471,   471,   471,   471,   472,   473,   474,   475,   476,
1513 >     476,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1514 >     477,   477,   477,   477,   477,   477,   478,   479,   480,   481,
1515 >     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1516 >     492,   493,   493,   494,   494,   494,   494,   494,   494,   494,
1517 >     495,   496,   497,   498,   499,   500
1518   };
1519  
1520   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 1635 | Line 1522 | static const yytype_uint8 yyr2[] =
1522   {
1523         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1524         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1525 <       1,     1,     1,     1,     1,     2,     2,     0,     1,     2,
1526 <       3,     3,     3,     3,     3,     0,     1,     2,     3,     3,
1527 <       3,     5,     2,     1,     1,     1,     2,     4,     4,     5,
1528 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1529 <       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
1530 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1531 <       4,     4,     5,     2,     1,     1,     1,     1,     2,     4,
1532 <       4,     4,     5,     2,     1,     1,     1,     1,     2,     4,
1533 <       4,     0,     6,     2,     1,     1,     1,     1,     2,     4,
1534 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1535 <       1,     1,     1,     0,     6,     2,     1,     1,     1,     1,
1536 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1537 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1525 >       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1526 >       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1527 >       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1528 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1529 >       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1530 >       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1531 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1532 >       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1533 >       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1534 >       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1535 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1536 >       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1537 >       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1538 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1539 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1540 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1541 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1542 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1543         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1544 <       1,     1,     1,     1,     1,     1,     0,     5,     3,     1,
1544 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1545 >       4,     4,     4,     4,     4,     4,     0,     6,     0,     5,
1546 >       3,     1,     1,     1,     1,     2,     1,     1,     1,     1,
1547 >       1,     2,     0,     5,     3,     1,     1,     3,     4,     4,
1548 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
1549 >       1,     1,     2,     4,     4,     4,     4,     0,     5,     3,
1550         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1551 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1552 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1553 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1657 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1658 <       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
1659 <       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
1660 <       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1661 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1551 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
1552 >       2,     4,     4,     4,     5,     2,     1,     1,     1,     4,
1553 >       0,     6,     2,     1,     1,     1,     1,     2,     4,     4,
1554         0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
1555 <       1,     1,     1,     4,     4,     4,     0,     6,     2,     1,
1556 <       1,     1,     1,     2,     4,     4,     4,     5,     2,     1,
1557 <       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
1666 <       2,     4,     4,     0,     5,     3,     1,     1,     1,     1,
1667 <       1,     1,     1,     1,     1,     1,     1,     0,     6,     2,
1668 <       1,     1,     1,     2,     4,     0,     5,     3,     1,     1,
1669 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1670 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1671 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1672 <       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
1673 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1674 <       4,     0,     6,     0,     5,     3,     1,     1,     2,     1,
1675 <       1,     1,     1,     1,     4,     4,     0,     6,     2,     1,
1676 <       1,     1,     1,     4,     4,     5,     2,     1,     1,     1,
1677 <       4,     0,     6,     0,     5,     3,     1,     1,     2,     1,
1678 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1555 >       1,     1,     1,     1,     0,     6,     2,     1,     1,     1,
1556 >       2,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1557 >       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1558         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1559 +       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1560 +       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
1561 +       4,     4,     4,     0,     6,     0,     5,     3,     1,     1,
1562 +       2,     1,     1,     1,     1,     1,     4,     4,     0,     6,
1563 +       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1564 +       1,     1,     4,     0,     6,     0,     5,     3,     1,     1,
1565 +       2,     1,     1,     1,     1,     1,     4,     4,     5,     2,
1566         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1567         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1568         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1569         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1570 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1571 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1570 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1571 >       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1572         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1573         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1574         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1575 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1575 >       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1576         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1691       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
1692       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1577         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1578 <       1,     1,     4,     4,     4,     4,     0,     6,     2,     1,
1695 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     0,
1696 <       5,     3,     1,     1,     1,     4,     4,     0,     5,     3,
1697 <       1,     1,     1,     5,     2,     1,     1,     1,     1,     1,
1578 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1579         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1580 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
1580 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
1581 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1582 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1583         4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1584 <       4,     4,     4,     5,     2,     1,     1,     1,     1,     1,
1585 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1703 <       4
1584 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1585 >       4,     4,     4,     4,     4,     4
1586   };
1587  
1588   /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
# Line 1708 | Line 1590 | static const yytype_uint8 yyr2[] =
1590     means the default is an error.  */
1591   static const yytype_uint16 yydefact[] =
1592   {
1593 <       2,     0,     1,     0,     0,     0,   188,   339,   396,     0,
1594 <     411,     0,   586,   243,   381,   219,     0,     0,   123,   276,
1595 <       0,     0,   293,   317,     0,     3,    24,    11,     4,     5,
1596 <       6,     8,     9,    10,    13,    14,    15,    16,    17,    18,
1597 <      19,    20,    23,    21,    22,     7,    12,    25,    26,     0,
1593 >       2,     0,     1,     0,     0,     0,   195,   346,   398,     0,
1594 >     413,     0,   250,   383,   226,     0,     0,   129,   283,     0,
1595 >       0,   300,   324,     0,     3,    23,    11,     4,     5,     6,
1596 >       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1597 >      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1598         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1599         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1600 <       0,     0,     0,     0,     0,    84,    85,    87,    86,   634,
1600 >       0,     0,    92,    93,    95,    94,   595,     0,     0,     0,
1601         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1602 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   615,
1603 <     633,   628,   616,   617,   618,   619,   621,   622,   623,   624,
1604 <     620,   625,   626,   627,   629,   630,   631,   632,     0,     0,
1723 <       0,   409,     0,     0,   407,   408,     0,   483,     0,     0,
1602 >       0,     0,   580,   594,   590,   582,   583,   584,   585,   586,
1603 >     581,   587,   588,   589,   591,   592,   593,     0,     0,     0,
1604 >     411,     0,     0,   409,   410,     0,   480,     0,     0,     0,
1605         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1606         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1607 <       0,     0,     0,     0,     0,     0,     0,     0,   558,     0,
1727 <     534,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1607 >       0,     0,     0,     0,     0,     0,   551,     0,   527,     0,
1608         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1609 <       0,     0,     0,   428,   481,   476,   477,   478,   479,   475,
1610 <     439,   429,   430,   467,   431,   432,   433,   434,   435,   436,
1611 <     437,   438,   472,   440,   441,   442,   443,   480,   445,   450,
1612 <     446,   448,   447,   461,   462,   449,   451,   452,   453,   454,
1613 <     455,   444,   457,   466,   468,   469,   458,   459,   482,   473,
1614 <     474,   471,   460,   456,   464,   465,   463,   470,     0,     0,
1615 <       0,     0,     0,     0,     0,     0,    94,    95,    96,    97,
1616 <       0,     0,     0,     0,     0,    43,    44,    45,     0,     0,
1617 <     663,     0,     0,     0,     0,     0,     0,     0,     0,   655,
1618 <     656,   657,   661,   658,   660,   659,   662,     0,     0,     0,
1619 <       0,     0,     0,     0,     0,    65,     0,     0,     0,     0,
1620 <       0,    51,    63,    62,    59,    52,    61,    55,    56,    57,
1621 <      53,    60,    58,    54,     0,     0,   291,     0,     0,   289,
1622 <     290,    88,     0,     0,     0,     0,    83,     0,     0,     0,
1609 >       0,     0,     0,     0,     0,     0,     0,   430,   478,   472,
1610 >     473,   474,   475,   476,   471,   441,   431,   432,   466,   433,
1611 >     434,   435,   436,   437,   438,   439,   440,   468,   442,   443,
1612 >     477,   445,   450,   446,   448,   447,   461,   462,   449,   451,
1613 >     452,   453,   454,   455,   444,   457,   458,   459,   479,   469,
1614 >     470,   467,   460,   456,   464,   465,   463,     0,     0,     0,
1615 >       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1616 >       0,    42,    43,    44,     0,     0,   619,     0,     0,     0,
1617 >       0,     0,     0,     0,   612,   613,   614,   617,   615,   616,
1618 >     618,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1619 >       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1620 >      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1621 >      52,    60,    57,    53,     0,     0,   298,     0,     0,   296,
1622 >     297,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1623         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1624 <       0,     0,     0,     0,     0,     0,   614,     0,     0,     0,
1624 >       0,     0,   579,     0,     0,     0,     0,     0,     0,     0,
1625 >       0,     0,     0,     0,     0,     0,     0,     0,   198,   199,
1626 >     202,   204,   205,   206,   207,   208,   209,   210,   211,   200,
1627 >     201,   203,     0,     0,     0,     0,     0,   372,     0,     0,
1628 >       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
1629 >     352,   353,   354,   356,   355,   358,   362,   359,   360,   361,
1630 >     357,   404,     0,     0,     0,   401,   402,   403,     0,     0,
1631 >     408,   425,     0,     0,   415,   424,     0,   421,   422,   423,
1632         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1746       0,     0,   191,   192,   195,   196,   198,   199,   200,   201,
1747     202,   203,   204,   193,   194,   197,     0,     0,     0,     0,
1748       0,     0,   366,     0,     0,     0,     0,     0,     0,     0,
1749       0,     0,   342,   343,   344,   345,   346,   347,   349,   348,
1750     350,   355,   354,   351,   352,   353,   356,   402,     0,     0,
1751       0,   399,   400,   401,     0,     0,   406,   423,     0,     0,
1752     413,   422,     0,   419,   420,   421,     0,     0,     0,     0,
1633         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1634         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1635         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1636         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1637 +     429,     0,     0,     0,   267,     0,     0,     0,     0,     0,
1638 +       0,   253,   254,   255,   256,   261,   257,   258,   259,   260,
1639 +     395,     0,   385,     0,   394,     0,   391,   392,   393,     0,
1640 +     228,     0,     0,     0,   238,     0,   236,   237,   239,   240,
1641 +     105,     0,     0,   101,     0,    45,     0,     0,     0,    41,
1642 +       0,     0,     0,   172,     0,     0,     0,   148,     0,     0,
1643 +     132,   133,   134,   135,   138,   139,   137,   136,   140,     0,
1644 +       0,     0,     0,     0,   286,   287,   288,   289,     0,     0,
1645 +       0,     0,     0,     0,     0,   611,    66,     0,     0,     0,
1646         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1647 <       0,   427,   596,   607,     0,     0,   599,     0,     0,     0,
1648 <     589,   590,   591,   592,   593,   594,   595,     0,     0,     0,
1649 <     260,     0,     0,     0,     0,     0,     0,   246,   247,   248,
1650 <     249,   254,   250,   251,   252,   253,   393,     0,   383,     0,
1651 <     392,     0,   389,   390,   391,     0,   221,     0,     0,     0,
1652 <     231,     0,   229,   230,   232,   233,    98,     0,     0,     0,
1764 <      93,     0,    46,     0,     0,     0,    42,     0,     0,     0,
1765 <     166,     0,     0,     0,   142,     0,     0,   126,   127,   128,
1766 <     129,   132,   133,   131,   130,   134,     0,     0,     0,     0,
1767 <       0,   279,   280,   281,   282,     0,     0,     0,     0,     0,
1768 <       0,     0,     0,   654,    64,     0,     0,     0,     0,     0,
1769 <       0,     0,     0,     0,     0,     0,     0,     0,    50,     0,
1770 <       0,   303,     0,     0,   296,   297,   298,   299,     0,     0,
1771 <     325,     0,   320,   321,   322,     0,     0,   288,     0,     0,
1772 <       0,    82,     0,     0,     0,     0,     0,    27,     0,     0,
1647 >       0,     0,     0,    49,     0,     0,   310,     0,     0,   303,
1648 >     304,   305,   306,     0,     0,   332,     0,   327,   328,   329,
1649 >       0,     0,   295,     0,     0,     0,    90,     0,     0,     0,
1650 >      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1651 >       0,     0,   578,   212,     0,     0,     0,     0,     0,     0,
1652 >       0,     0,     0,     0,     0,     0,     0,     0,   197,   363,
1653         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1654 <       0,   613,   205,     0,     0,     0,     0,     0,     0,     0,
1655 <       0,     0,     0,     0,     0,     0,     0,   190,   357,     0,
1654 >       0,     0,     0,     0,   348,     0,     0,     0,   400,     0,
1655 >     407,     0,     0,     0,     0,   420,     0,     0,     0,     0,
1656         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1777       0,     0,     0,     0,   341,     0,     0,     0,   398,     0,
1778     405,     0,     0,     0,     0,   418,     0,     0,     0,     0,
1657         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1658         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1659         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1660 +       0,     0,     0,     0,     0,     0,     0,   428,   262,     0,
1661 +       0,     0,     0,     0,     0,     0,     0,     0,   252,     0,
1662 +       0,     0,     0,   390,   241,     0,     0,     0,     0,     0,
1663 +     235,     0,   100,     0,     0,     0,    40,   141,     0,     0,
1664 +       0,     0,     0,     0,     0,     0,     0,   131,   290,     0,
1665 +       0,     0,     0,   285,     0,     0,     0,     0,     0,     0,
1666 +     610,     0,     0,     0,     0,     0,     0,     0,     0,    71,
1667 +      72,     0,    70,    75,    76,     0,    74,     0,     0,     0,
1668 +       0,     0,    48,   307,     0,     0,     0,     0,   302,   330,
1669 +       0,     0,     0,   326,     0,   294,    99,    98,    97,   605,
1670 +     604,   596,    26,    26,    26,    26,    26,    28,    27,   598,
1671 +     599,   603,   601,   600,   606,   607,   608,   609,   602,   597,
1672         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1673 <       0,     0,     0,     0,     0,    35,     0,     0,     0,     0,
1674 <       0,     0,     0,   426,     0,     0,     0,     0,     0,     0,
1675 <       0,   588,   255,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,   245,     0,     0,     0,     0,   388,   234,     0,
1677 <       0,     0,     0,     0,   228,     0,     0,    92,     0,     0,
1678 <       0,    41,   135,     0,     0,     0,     0,     0,     0,     0,
1679 <       0,     0,   125,   283,     0,     0,     0,     0,   278,     0,
1680 <       0,     0,     0,     0,     0,     0,   653,     0,     0,     0,
1681 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    49,
1682 <     300,     0,     0,     0,     0,   295,   323,     0,     0,     0,
1683 <     319,     0,   287,    91,    90,    89,   650,   647,   646,   635,
1684 <     637,    27,    27,    27,    27,    27,    29,    28,   641,   642,
1685 <     645,   643,   648,   649,   651,   652,   644,   636,   638,   639,
1686 <     640,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1687 <       0,     0,     0,     0,   189,     0,     0,     0,     0,     0,
1688 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1689 <     340,     0,     0,   397,   410,     0,     0,     0,   412,   495,
1690 <     499,   515,   527,   526,   584,   532,   493,   523,   529,   494,
1691 <     485,   486,   502,   491,   492,   505,   490,   504,   503,   498,
1692 <     497,   496,   524,   484,   522,   582,   583,   519,   516,   569,
1693 <     562,   579,   580,   563,   564,   565,   566,   574,   567,   577,
1694 <     581,   570,   575,   571,   576,   568,   573,   572,   578,     0,
1695 <     561,   521,   544,   538,   555,   556,   539,   540,   541,   542,
1696 <     550,   543,   553,   557,   546,   551,   547,   552,   545,   549,
1697 <     548,   554,     0,   537,   514,   517,   531,   488,   525,   489,
1698 <     518,   507,   512,   513,   510,   511,   508,   509,   501,   500,
1699 <      35,    35,    35,    37,    36,   585,   530,   533,   520,   528,
1700 <     487,   506,     0,     0,     0,     0,     0,     0,   587,     0,
1701 <       0,     0,     0,     0,     0,     0,     0,   244,     0,     0,
1702 <       0,   382,     0,     0,     0,   239,   235,   238,   220,   100,
1703 <      99,     0,     0,   112,     0,     0,   104,   105,   107,   106,
1704 <      47,    48,     0,     0,     0,     0,     0,     0,     0,     0,
1705 <     124,     0,     0,     0,   277,   669,   664,   668,   666,   670,
1706 <     665,   667,    75,    81,    73,    77,    76,    72,    71,    69,
1707 <      70,     0,    68,    74,    80,    78,    79,     0,     0,     0,
1708 <     294,     0,     0,   318,   292,    30,    31,    32,    33,    34,
1709 <     216,   217,   210,   212,   214,   213,   211,   206,   218,   209,
1710 <     207,   208,   215,   362,   364,   365,   380,   379,   376,   372,
1711 <     373,   370,   371,   374,     0,   369,   359,   377,   378,   358,
1712 <     363,   375,   361,   360,   403,   404,   424,   425,   417,     0,
1713 <     416,   559,     0,   535,     0,    38,    39,    40,   612,   611,
1714 <       0,   610,   598,   597,   604,   603,     0,   602,   606,   605,
1715 <     258,   259,   268,   265,   270,   267,   266,   272,   269,   271,
1826 <     264,     0,   263,   257,   275,   274,   273,   256,   395,   387,
1827 <       0,   386,   394,   226,   227,   225,     0,   224,   242,   241,
1828 <       0,     0,     0,   108,     0,     0,     0,     0,   103,   141,
1829 <     139,   181,   178,   177,   170,   172,   187,   182,   185,   180,
1830 <     171,   186,   174,   183,   175,   184,   179,   173,   176,     0,
1831 <     169,   136,   138,   140,   152,   146,   163,   164,   147,   148,
1832 <     149,   150,   158,   151,   161,   165,   154,   159,   155,   160,
1833 <     153,   157,   156,   162,     0,   145,   137,   285,   286,   284,
1834 <      66,     0,   301,   307,   313,   316,   309,   315,   310,   314,
1835 <     312,   308,   311,     0,   306,   302,   324,   329,   335,   338,
1836 <     331,   337,   332,   336,   334,   330,   333,     0,   328,   367,
1837 <       0,   414,     0,   560,   536,   608,     0,   600,     0,   261,
1838 <       0,   384,     0,   222,     0,   240,   237,   236,     0,     0,
1839 <       0,     0,   102,   167,     0,   143,     0,    67,   304,     0,
1840 <     326,     0,   368,   415,   609,   601,   262,   385,   223,   109,
1841 <     118,   121,   120,   117,   122,   119,   116,     0,   115,   111,
1842 <     110,   168,   144,   305,   327,   113,     0,   114
1673 >       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1674 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   347,
1675 >       0,     0,   399,   412,     0,     0,     0,   414,   493,   497,
1676 >     511,   577,   525,   491,   519,   522,   492,   483,   482,   484,
1677 >     485,   486,   500,   489,   490,   501,   488,   496,   495,   494,
1678 >     520,   481,   518,   575,   576,   515,   512,   562,   555,   572,
1679 >     573,   556,   557,   558,   559,   567,   560,   570,   574,   563,
1680 >     568,   564,   569,   561,   566,   565,   571,     0,   554,   517,
1681 >     537,   531,   548,   549,   532,   533,   534,   535,   543,   536,
1682 >     546,   550,   539,   544,   540,   545,   538,   542,   541,   547,
1683 >       0,   530,   510,   513,   524,   487,   514,   503,   508,   509,
1684 >     506,   507,   504,   505,   499,   498,   523,   526,   516,   521,
1685 >     502,     0,     0,     0,     0,     0,     0,     0,     0,   251,
1686 >       0,     0,     0,   384,     0,     0,     0,   246,   242,   245,
1687 >     227,   106,     0,     0,   118,     0,     0,   110,   111,   113,
1688 >     112,    46,    47,     0,     0,     0,     0,     0,     0,     0,
1689 >       0,   130,     0,     0,     0,   284,   620,   624,   622,   625,
1690 >     621,   623,    83,    89,    81,    85,    84,    78,    77,    79,
1691 >      67,     0,    68,     0,    82,    80,    88,    86,    87,     0,
1692 >       0,     0,   301,     0,     0,   325,   299,    29,    30,    31,
1693 >      32,    33,   223,   224,   216,   218,   220,   219,   217,   213,
1694 >     225,   215,   214,    34,    34,    34,    36,    35,   221,   222,
1695 >     368,   370,   371,   381,   378,   376,   377,     0,   375,   365,
1696 >     379,   380,   364,   369,   367,   382,   366,   405,   406,   426,
1697 >     427,   419,     0,   418,   552,     0,   528,     0,   265,   266,
1698 >     275,   272,   277,   274,   273,   279,   276,   278,   271,     0,
1699 >     270,   264,   282,   281,   280,   263,   397,   389,     0,   388,
1700 >     396,   233,   234,   232,     0,   231,   249,   248,     0,     0,
1701 >       0,   114,     0,     0,     0,     0,   109,   147,   145,   187,
1702 >     184,   183,   176,   178,   194,   188,   191,   186,   177,   192,
1703 >     180,   189,   193,   181,   190,   185,   179,   182,     0,   175,
1704 >     142,   144,   146,   158,   152,   169,   170,   153,   154,   155,
1705 >     156,   164,   157,   167,   171,   160,   165,   161,   166,   159,
1706 >     163,   162,   168,     0,   151,   143,   292,   293,   291,    69,
1707 >      73,   308,   314,   320,   323,   316,   322,   317,   321,   319,
1708 >     315,   318,     0,   313,   309,   331,   336,   342,   345,   338,
1709 >     344,   339,   343,   341,   337,   340,     0,   335,    37,    38,
1710 >      39,   373,     0,   416,     0,   553,   529,   268,     0,   386,
1711 >       0,   229,     0,   247,   244,   243,     0,     0,     0,     0,
1712 >     108,   173,     0,   149,     0,   311,     0,   333,     0,   374,
1713 >     417,   269,   387,   230,   115,   124,   127,   126,   123,   128,
1714 >     125,   122,     0,   121,   117,   116,   174,   150,   312,   334,
1715 >     119,     0,   120
1716   };
1717  
1718   /* YYDEFGOTO[NTERM-NUM].  */
1719   static const yytype_int16 yydefgoto[] =
1720   {
1721 <      -1,     1,    25,   836,   837,   983,   984,    26,   254,   255,
1722 <     256,   257,    27,   290,   291,   292,   582,  1061,  1062,   293,
1723 <     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
1724 <      28,    74,    75,    76,    77,    78,    29,   245,   246,   247,
1725 <     248,   249,   250,  1025,  1026,  1027,  1028,  1029,  1175,  1307,
1726 <    1308,    30,    63,   546,   547,   548,   549,   550,   551,   552,
1727 <     553,   554,   779,  1224,  1225,   555,   775,  1199,  1200,    31,
1728 <      51,   351,   352,   353,   354,   355,   356,   357,   358,   359,
1729 <     360,   361,   362,   363,   364,   365,    32,    60,   520,   759,
1730 <    1166,  1167,   521,   522,   523,  1172,  1016,  1017,   524,   525,
1731 <      33,    58,   496,   497,   498,   499,   500,   501,   502,   745,
1732 <    1151,  1152,   503,   504,   505,    34,    64,   560,   561,   562,
1733 <     563,   564,    35,   308,   309,   310,    36,    67,   593,   594,
1734 <     595,   596,   597,   812,  1243,  1244,    37,    68,   601,   602,
1735 <     603,   604,   818,  1257,  1258,    38,    52,   381,   382,   383,
1736 <     384,   385,   386,   387,   388,   389,   390,   654,  1104,  1105,
1737 <     391,   392,   393,   394,   395,   396,    39,    59,   510,   754,
1738 <    1160,  1161,   511,   512,   513,   514,    40,    53,   400,   401,
1739 <     402,   403,    41,   123,   124,   125,    42,    55,   411,   673,
1740 <    1119,  1120,   412,   413,   414,   415,    43,   182,   183,   184,
1741 <     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1742 <     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1743 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1744 <     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1745 <     225,   226,   227,   228,   229,   230,   231,   232,   448,   962,
1746 <     963,   233,   446,   939,   940,   234,   235,   236,   237,    44,
1747 <      57,   479,   480,   481,   482,   483,   737,  1136,  1137,   484,
1748 <     485,   486,   734,  1130,  1131,    45,    98,    99,   100,   101,
1749 <     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1877 <     112,   113,   114,   115,   116,   117,    46,   268,   269,   270,
1878 <     271,   272,   273,   274,   275,   276
1721 >      -1,     1,    24,   777,   778,  1016,  1017,    25,   230,   231,
1722 >     232,   233,    26,   267,   268,   269,   270,   741,   742,   745,
1723 >     746,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1724 >     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1725 >      28,   222,   223,   224,   225,   226,   946,   947,   948,   949,
1726 >     950,  1083,  1212,  1213,    29,    60,   499,   500,   501,   502,
1727 >     503,   504,   505,   506,   507,   714,  1133,  1134,   508,   710,
1728 >    1108,  1109,    30,    49,   327,   328,   329,   330,   331,   332,
1729 >     333,   334,   335,   336,   337,   338,   339,   340,   341,    31,
1730 >      57,   474,   695,  1074,  1075,   475,   476,   477,  1080,   938,
1731 >     939,   478,   479,    32,    55,   450,   451,   452,   453,   454,
1732 >     455,   456,   681,  1059,  1060,   457,   458,   459,    33,    61,
1733 >     513,   514,   515,   516,   517,    34,   288,   289,   290,    35,
1734 >      64,   548,   549,   550,   551,   552,   755,  1152,  1153,    36,
1735 >      65,   556,   557,   558,   559,   761,  1166,  1167,    37,    50,
1736 >     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1737 >     604,  1027,  1028,   366,   367,   368,   369,   370,    38,    56,
1738 >     464,   690,  1068,  1069,   465,   466,   467,   468,    39,    51,
1739 >     374,   375,   376,   377,    40,   112,   113,   114,    41,    53,
1740 >     385,   623,  1042,  1043,   386,   387,   388,   389,    42,   166,
1741 >     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1742 >     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1743 >     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1744 >     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1745 >     207,   208,   209,   210,   211,   212,   421,   900,   901,   213,
1746 >     419,   877,   878,   214,   215,   216,    43,    91,    92,    93,
1747 >      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1748 >     104,   105,   106,    44,   243,   244,   245,   246,   247,   248,
1749 >     249,   250
1750   };
1751  
1752   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1753     STATE-NUM.  */
1754 < #define YYPACT_NINF -805
1754 > #define YYPACT_NINF -745
1755   static const yytype_int16 yypact[] =
1756   {
1757 <    -805,   700,  -805,  -174,  -240,  -237,  -805,  -805,  -805,  -225,
1758 <    -805,  -205,  -805,  -805,  -805,  -805,  -202,  -197,  -805,  -805,
1759 <    -173,  -168,  -805,  -805,  -160,  -805,  -805,  -805,  -805,  -805,
1760 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1761 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,   311,
1762 <     577,  -155,  -143,  -134,    12,  -131,   380,  -125,  -117,   -83,
1763 <     -80,    74,   178,   -78,   -73,   626,   420,   -63,   -34,    13,
1764 <     -15,   -13,    38,    39,    47,  -805,  -805,  -805,  -805,  -805,
1765 <      41,    54,    60,    63,    87,    92,    95,   103,   110,   120,
1766 <     123,   128,   135,   136,   138,   139,   143,   144,   132,  -805,
1767 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1768 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,   647,   494,
1769 <      22,  -805,   146,    15,  -805,  -805,   231,  -805,   147,   149,
1770 <     152,   154,   156,   157,   158,   162,   165,   167,   169,   171,
1771 <     172,   176,   180,   181,   182,   184,   185,   188,   189,   190,
1772 <     191,   199,   200,   203,   204,   209,   211,   212,  -805,   215,
1773 <    -805,   216,   217,   219,   220,   223,   225,   229,   240,   241,
1774 <     242,   243,   246,   250,   251,   256,   258,   259,   262,   263,
1775 <     266,   267,    25,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1776 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1777 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1778 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1779 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1780 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,   338,   525,
1781 <      76,   273,   -12,   269,   272,    52,  -805,  -805,  -805,  -805,
1782 <      80,   153,   274,   276,     8,  -805,  -805,  -805,   304,    34,
1783 <    -805,   281,   282,   283,   284,   285,   288,   289,   109,  -805,
1784 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,   201,   290,   291,
1785 <     292,   293,   295,   296,   300,  -805,   301,   305,   306,   313,
1786 <     134,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1787 <    -805,  -805,  -805,  -805,   265,    10,  -805,   314,    31,  -805,
1788 <    -805,  -805,   385,   416,   424,   329,  -805,   168,   460,   461,
1789 <     400,   401,   467,   467,   468,   469,   409,   412,   478,   467,
1790 <     414,   415,   417,   418,   421,   351,  -805,   355,   357,   359,
1791 <     361,   365,   366,   367,   371,   372,   373,   377,   378,   382,
1792 <     383,   198,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1793 <    -805,  -805,  -805,  -805,  -805,  -805,   358,   386,   388,   389,
1794 <     390,   392,  -805,   394,   396,   397,   398,   399,   402,   403,
1795 <     404,   228,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1796 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,   406,   427,
1797 <      18,  -805,  -805,  -805,   492,   432,  -805,  -805,   433,   434,
1798 <    -805,  -805,   100,  -805,  -805,  -805,   453,   467,   467,   526,
1799 <     513,   542,   482,   483,   557,   544,   503,   569,   570,   571,
1800 <     507,   510,   511,   467,   560,   517,   584,   587,   467,   591,
1801 <     592,   572,   594,   596,   535,   536,   470,   537,   471,   467,
1802 <     467,   540,   467,   586,   546,   547,   549,   -99,    30,   550,
1803 <     551,   467,   467,   618,   600,   467,   565,   566,   568,   580,
1804 <     516,  -805,  -805,  -805,   489,   518,  -805,   520,   523,    14,
1805 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,   530,   531,   541,
1806 <    -805,   543,   545,   552,   554,   555,   133,  -805,  -805,  -805,
1807 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,   558,  -805,   559,
1808 <    -805,    48,  -805,  -805,  -805,   533,  -805,   561,   573,   575,
1809 <    -805,     2,  -805,  -805,  -805,  -805,  -805,   603,   604,   574,
1810 <    -805,   527,  -805,   654,   656,   581,  -805,   582,   583,   585,
1811 <    -805,   588,   589,   590,  -805,   593,   107,  -805,  -805,  -805,
1812 <    -805,  -805,  -805,  -805,  -805,  -805,   595,   597,   598,   601,
1813 <      88,  -805,  -805,  -805,  -805,   617,   619,   625,   678,   637,
1814 <     638,   467,   602,  -805,  -805,   689,   648,   694,   698,   699,
1815 <     706,   707,   605,   708,   733,   714,   715,   607,  -805,   610,
1816 <     608,  -805,   609,    37,  -805,  -805,  -805,  -805,   613,   611,
1817 <    -805,    58,  -805,  -805,  -805,   724,   616,  -805,   620,   621,
1818 <     622,  -805,   627,   629,   630,   631,   632,   327,   633,   634,
1819 <     635,   636,   643,   646,   651,   652,   658,   662,   663,   665,
1820 <     666,  -805,  -805,   747,   755,   467,   767,   784,   797,   798,
1821 <     735,   799,   809,   467,   467,   618,   680,  -805,  -805,   793,
1822 <      24,   794,   796,   760,   688,   805,   815,   816,   820,   842,
1823 <     823,   827,   831,   723,  -805,   834,   835,   727,  -805,   728,
1824 <    -805,   838,   840,   730,   732,  -805,   734,   736,   737,   738,
1825 <     739,   740,   741,   742,   743,   744,   745,   746,   748,   749,
1826 <     750,   751,   752,   753,   754,   757,   758,   759,   761,   762,
1827 <     763,   764,   765,   766,   768,   769,   696,   770,   729,   771,
1828 <     772,   773,   774,   775,   776,   777,   778,   779,   780,   781,
1829 <     782,   783,   785,   786,   787,   312,   788,   789,   790,   791,
1830 <     792,   795,   800,  -805,   801,   467,   812,   802,   844,   864,
1831 <     803,  -805,  -805,   865,   825,   804,   876,   914,   902,   903,
1832 <     905,   806,  -805,   906,   807,   907,   808,  -805,  -805,   810,
1833 <     908,   910,   932,   811,  -805,   814,   817,  -805,   160,   818,
1834 <     819,  -805,  -805,   918,   877,   813,   924,   929,   930,   821,
1835 <     931,   826,  -805,  -805,   934,   936,   937,   829,  -805,   830,
1836 <     832,   833,   836,   837,   839,   841,  -805,   843,   845,   846,
1837 <     847,   848,   849,   850,   222,   851,   852,   853,   854,  -805,
1838 <    -805,   940,   855,   943,   856,  -805,  -805,   944,   857,   859,
1839 <    -805,   861,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1840 <    -805,   467,   467,   467,   467,   467,  -805,  -805,  -805,  -805,
1841 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1842 <    -805,   862,   863,   866,   867,   868,   869,   870,   871,   872,
1843 <     873,   874,   875,   878,  -805,   879,   880,   881,   882,   883,
1844 <     884,    -6,   885,   886,   887,   888,   889,   890,   891,   892,
1845 <    -805,   893,   894,  -805,  -805,   895,   896,   927,  -805,  -805,
1846 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1847 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1848 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1849 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1850 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -224,
1851 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1852 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1853 <    -805,  -805,  -209,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1854 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1855 <     618,   618,   618,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1856 <    -805,  -805,     1,   897,   898,     6,   899,   900,  -805,   901,
1857 <     904,   718,   909,   911,   912,   913,   915,  -805,   916,   942,
1858 <     917,  -805,   -20,   919,   920,   925,   860,  -805,  -805,  -805,
1859 <    -805,   921,   922,  -805,   923,   150,  -805,  -805,  -805,  -805,
1860 <    -805,  -805,   928,   933,   529,   935,   938,   939,   756,   941,
1861 <    -805,   945,   946,   947,  -805,  -805,  -805,  -805,  -805,  -805,
1862 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1863 <    -805,  -208,  -805,  -805,  -805,  -805,  -805,   948,   556,   949,
1864 <    -805,   950,   599,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1865 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1866 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1867 <    -805,  -805,  -805,  -805,  -206,  -805,  -805,  -805,  -805,  -805,
1868 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -198,
1869 <    -805,  -805,   696,  -805,   729,  -805,  -805,  -805,  -805,  -805,
1870 <    -185,  -805,  -805,  -805,  -805,  -805,  -183,  -805,  -805,  -805,
1871 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1872 <    -805,  -180,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1873 <    -165,  -805,  -805,  -805,  -805,  -805,   -56,  -805,  -805,  -805,
1874 <     970,   932,   951,  -805,   953,   926,  -110,   952,  -805,  -805,
1875 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1876 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,   -51,
1877 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1878 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1879 <    -805,  -805,  -805,  -805,    -9,  -805,  -805,  -805,  -805,  -805,
2009 <    -805,   222,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
2010 <    -805,  -805,  -805,    72,  -805,  -805,  -805,  -805,  -805,  -805,
2011 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,    96,  -805,  -805,
2012 <      -6,  -805,   927,  -805,  -805,  -805,     1,  -805,     6,  -805,
2013 <     718,  -805,   942,  -805,   -20,  -805,  -805,  -805,   954,   393,
2014 <     955,   956,  -805,  -805,   529,  -805,   756,  -805,  -805,   556,
2015 <    -805,   599,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
2016 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,   105,  -805,  -805,
2017 <    -805,  -805,  -805,  -805,  -805,  -805,   393,  -805
1757 >    -745,   615,  -745,  -209,  -208,  -192,  -745,  -745,  -745,  -190,
1758 >    -745,  -183,  -745,  -745,  -745,  -169,  -167,  -745,  -745,  -144,
1759 >    -137,  -745,  -745,  -132,  -745,  -745,  -745,  -745,  -745,  -745,
1760 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1761 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   292,   784,  -111,
1762 >    -102,   -93,    22,   -90,   389,   -80,   -74,   -72,    50,    15,
1763 >     -65,   -60,   299,   388,   -54,   -34,    18,  -176,   -58,   -32,
1764 >     -22,     3,  -745,  -745,  -745,  -745,  -745,   -15,    -9,    26,
1765 >      38,    67,    69,    75,    80,    82,    88,    90,    93,   100,
1766 >     107,   195,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1767 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   569,   505,    13,
1768 >    -745,   115,    12,  -745,  -745,   258,  -745,   117,   122,   129,
1769 >     131,   140,   141,   144,   145,   146,   154,   155,   156,   159,
1770 >     161,   165,   166,   168,   170,   174,   175,   176,   177,   180,
1771 >     190,   194,   197,   199,   203,   204,  -745,   205,  -745,   206,
1772 >     209,   211,   212,   215,   219,   221,   224,   225,   229,   230,
1773 >     233,   234,   236,   237,   239,   240,    36,  -745,  -745,  -745,
1774 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1775 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1776 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1777 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1778 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,   343,    60,   284,
1779 >    -157,   241,    43,  -745,  -745,  -745,    66,   113,   242,   245,
1780 >      99,  -745,  -745,  -745,   348,    62,  -745,   249,   253,   264,
1781 >     266,   267,   271,    16,  -745,  -745,  -745,  -745,  -745,  -745,
1782 >    -745,   268,   273,   274,   280,   281,   285,   287,   290,   294,
1783 >     295,   296,   297,   306,   307,   308,   309,    74,  -745,  -745,
1784 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1785 >    -745,  -745,  -745,  -745,   220,   277,  -745,   310,    20,  -745,
1786 >    -745,  -745,   252,   370,   384,   302,  -745,   410,   430,   371,
1787 >     432,   432,   433,   434,   436,   379,   390,   453,   432,   395,
1788 >     396,   342,  -745,   345,   349,   350,   352,   354,   355,   357,
1789 >     360,   361,   362,   363,   365,   366,   369,   152,  -745,  -745,
1790 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1791 >    -745,  -745,   346,   372,   381,   385,   386,  -745,   392,   393,
1792 >     397,   400,   401,   405,   407,   408,   270,  -745,  -745,  -745,
1793 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1794 >    -745,  -745,   409,   413,    51,  -745,  -745,  -745,   445,   351,
1795 >    -745,  -745,   414,   417,  -745,  -745,     8,  -745,  -745,  -745,
1796 >     428,   432,   432,   502,   446,   447,   508,   495,   454,   432,
1797 >     461,   432,   528,   536,   537,   480,   485,   493,   432,   556,
1798 >     557,   432,   562,   563,   548,   567,   568,   512,   513,   456,
1799 >     519,   459,   432,   432,   521,   522,   523,   524,    14,    54,
1800 >     530,   532,   432,   432,   570,   432,   533,   535,   538,   474,
1801 >    -745,   481,   479,   483,  -745,   484,   488,   492,   498,   501,
1802 >     128,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1803 >    -745,   503,  -745,   506,  -745,    19,  -745,  -745,  -745,   514,
1804 >    -745,   515,   518,   520,  -745,   116,  -745,  -745,  -745,  -745,
1805 >    -745,   539,   516,  -745,   496,  -745,   602,   612,   526,  -745,
1806 >     527,   531,   534,  -745,   540,   544,   545,  -745,   553,   183,
1807 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   541,
1808 >     560,   561,   573,    11,  -745,  -745,  -745,  -745,   572,   575,
1809 >     621,   584,   585,   432,   542,  -745,  -745,   629,   586,   630,
1810 >     632,   636,   637,   663,   670,   112,   196,   684,   691,   674,
1811 >     696,   701,   605,  -745,   619,   617,  -745,   622,    59,  -745,
1812 >    -745,  -745,  -745,   627,   626,  -745,   110,  -745,  -745,  -745,
1813 >     719,   633,  -745,   635,   638,   639,  -745,   641,   642,   646,
1814 >     265,   647,   648,   649,   650,   651,   652,   653,   654,   655,
1815 >     657,   658,  -745,  -745,   771,   774,   432,   775,   776,   777,
1816 >     778,   761,   782,   783,   432,   785,   785,   669,  -745,  -745,
1817 >     768,   164,   769,   728,   671,   772,   773,   779,   780,   792,
1818 >     781,   786,   787,   680,  -745,   788,   789,   681,  -745,   685,
1819 >    -745,   790,   791,   683,   687,  -745,   695,   697,   698,   699,
1820 >     700,   702,   703,   704,   705,   706,   707,   708,   709,   710,
1821 >     711,   712,   713,   714,   715,   716,   717,   718,   720,   721,
1822 >     722,   723,   724,   725,   726,   600,   727,   628,   729,   730,
1823 >     731,   732,   733,   734,   735,   736,   737,   738,   739,   740,
1824 >     741,   742,   743,   744,   745,   746,   747,  -745,  -745,   798,
1825 >     803,   748,   816,   843,   846,   847,   849,   753,  -745,   851,
1826 >     752,   853,   757,  -745,  -745,   755,   856,   857,   876,   762,
1827 >    -745,   763,  -745,   187,   764,   765,  -745,  -745,   863,   822,
1828 >     766,   865,   867,   868,   770,   869,   793,  -745,  -745,   871,
1829 >     872,   873,   794,  -745,   795,   796,   797,   799,   800,   801,
1830 >    -745,   802,   804,   805,   806,   807,   808,   809,   810,  -745,
1831 >    -745,  -196,  -745,  -745,  -745,  -179,  -745,   811,   812,   813,
1832 >     814,   815,  -745,  -745,   874,   817,   875,   818,  -745,  -745,
1833 >     877,   819,   821,  -745,   823,  -745,  -745,  -745,  -745,  -745,
1834 >    -745,  -745,   432,   432,   432,   432,   432,  -745,  -745,  -745,
1835 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1836 >     824,   825,   826,   827,   828,   829,   830,   831,   832,   833,
1837 >     834,    79,   835,   836,  -745,   837,   838,   839,   840,   841,
1838 >      -1,   842,   844,   845,   848,   850,   852,   854,   855,  -745,
1839 >     858,   859,  -745,  -745,   860,   861,   878,  -745,  -745,  -745,
1840 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1841 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1842 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1843 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1844 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -178,  -745,  -745,
1845 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1846 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1847 >    -173,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1848 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1849 >    -745,   862,   864,   693,   866,   870,   879,   880,   881,  -745,
1850 >     882,   883,   884,  -745,   -36,   885,   886,   894,   887,  -745,
1851 >    -745,  -745,   888,   889,  -745,   890,    86,  -745,  -745,  -745,
1852 >    -745,  -745,  -745,   895,   896,   517,   897,   898,   899,   656,
1853 >     900,  -745,   901,   902,   903,  -745,  -745,  -745,  -745,  -745,
1854 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1855 >    -745,   112,  -745,   196,  -745,  -745,  -745,  -745,  -745,   904,
1856 >     464,   905,  -745,   906,   529,  -745,  -745,  -745,  -745,  -745,
1857 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1858 >    -745,  -745,  -745,   785,   785,   785,  -745,  -745,  -745,  -745,
1859 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -168,  -745,  -745,
1860 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1861 >    -745,  -745,  -160,  -745,  -745,   600,  -745,   628,  -745,  -745,
1862 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -159,
1863 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -57,  -745,
1864 >    -745,  -745,  -745,  -745,   -38,  -745,  -745,  -745,   907,   876,
1865 >     908,  -745,   913,   891,   -88,   909,  -745,  -745,  -745,  -745,
1866 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1867 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    -7,  -745,
1868 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1869 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1870 >    -745,  -745,  -745,    63,  -745,  -745,  -745,  -745,  -745,  -745,
1871 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1872 >    -745,  -745,    94,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1873 >    -745,  -745,  -745,  -745,  -745,  -745,   101,  -745,  -745,  -745,
1874 >    -745,  -745,    -1,  -745,   878,  -745,  -745,  -745,   693,  -745,
1875 >     883,  -745,   -36,  -745,  -745,  -745,   910,   403,   911,   912,
1876 >    -745,  -745,   517,  -745,   656,  -745,   464,  -745,   529,  -745,
1877 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1878 >    -745,  -745,   104,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1879 >    -745,   403,  -745
1880   };
1881  
1882   /* YYPGOTO[NTERM-NUM].  */
1883   static const yytype_int16 yypgoto[] =
1884   {
1885 <    -805,  -805,  -805,  -804,  -321,  -620,  -463,  -805,  -805,   957,
1886 <    -805,  -805,  -805,  -805,   858,  -805,  -805,  -805,  -144,  -805,
1887 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1888 <    -805,  -805,  1026,  -805,  -805,  -805,  -805,  -805,   958,  -805,
1889 <    -805,  -805,  -805,  -805,    77,  -805,  -805,  -805,  -805,  -805,
1890 <    -195,  -805,  -805,  -805,   576,  -805,  -805,  -805,  -805,  -805,
1891 <    -805,  -805,  -805,  -805,  -139,  -805,  -805,  -805,  -133,  -805,
1892 <    -805,  -805,   824,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1893 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1894 <    -805,  -124,  -805,   642,  -805,  -805,  -805,   -19,  -805,  -805,
1895 <    -805,  -805,  -805,   657,  -805,  -805,  -805,  -805,  -805,  -805,
1896 <    -805,  -115,  -805,  -805,  -805,  -805,  -805,  -805,   612,  -805,
1897 <    -805,  -805,  -805,  -805,   959,  -805,  -805,  -805,  -805,   614,
1898 <    -805,  -805,  -805,  -805,  -805,  -130,  -805,  -805,  -805,   567,
1899 <    -805,  -805,  -805,  -805,  -122,  -805,  -805,  -805,   828,  -805,
1900 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,   -93,
1901 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1902 <    -805,   -96,  -805,   668,  -805,  -805,  -805,  -805,  -805,   822,
1903 <    -805,  -805,  -805,  -805,  1054,  -805,  -805,  -805,  -805,  -805,
1904 <    -805,   -81,  -805,   960,  -805,  -805,  -805,  -805,  1000,  -805,
1905 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1906 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1907 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1908 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1909 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
1910 <      61,  -805,  -805,  -805,    65,  -805,  -805,  -805,  -805,  -805,
1911 <    -805,  -805,   709,  -805,  -805,  -805,  -805,  -805,   -79,  -805,
1912 <    -805,  -805,  -805,  -805,   -68,  -805,  -805,  1104,  -805,  -805,
1913 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,
2052 <    -805,  -805,  -805,  -805,  -805,  -805,  -805,  -805,   961,  -805,
2053 <    -805,  -805,  -805,  -805,  -805,  -805
1885 >    -745,  -745,  -745,  -744,  -298,  -659,  -595,  -745,  -745,   767,
1886 >    -745,  -745,  -745,  -745,   750,  -745,  -745,  -745,    17,  -745,
1887 >      10,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1888 >    -745,  -745,  -745,  -745,  -745,  -745,   924,  -745,  -745,  -745,
1889 >    -745,  -745,   914,  -745,  -745,  -745,  -745,    53,  -745,  -745,
1890 >    -745,  -745,  -745,  -225,  -745,  -745,  -745,   504,  -745,  -745,
1891 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -193,  -745,  -745,
1892 >    -745,  -188,  -745,  -745,  -745,   675,  -745,  -745,  -745,  -745,
1893 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1894 >    -745,  -745,  -745,  -745,  -170,  -745,   558,  -745,  -745,  -745,
1895 >     -48,  -745,  -745,  -745,  -745,  -745,   610,  -745,  -745,  -745,
1896 >    -745,  -745,  -745,  -745,  -117,  -745,  -745,  -745,  -745,  -745,
1897 >    -745,   550,  -745,  -745,  -745,  -745,  -745,   892,  -745,  -745,
1898 >    -745,  -745,   543,  -745,  -745,  -745,  -745,  -745,  -131,  -745,
1899 >    -745,  -745,   511,  -745,  -745,  -745,  -745,  -128,  -745,  -745,
1900 >    -745,   820,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1901 >    -745,  -745,  -101,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1902 >    -745,  -745,  -745,  -103,  -745,   614,  -745,  -745,  -745,  -745,
1903 >    -745,   754,  -745,  -745,  -745,  -745,   969,  -745,  -745,  -745,
1904 >    -745,  -745,  -745,   -92,  -745,   749,  -745,  -745,  -745,  -745,
1905 >     917,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1906 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1907 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1908 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1909 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    39,  -745,
1910 >    -745,  -745,    40,  -745,  -745,  -745,  -745,  -745,   996,  -745,
1911 >    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
1912 >    -745,  -745,  -745,  -745,  -745,   915,  -745,  -745,  -745,  -745,
1913 >    -745,  -745
1914   };
1915  
1916   /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1917     positive, shift that token.  If negative, reduce the rule which
1918     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1919 < #define YYTABLE_NINF -102
1919 > #define YYTABLE_NINF -108
1920   static const yytype_int16 yytable[] =
1921   {
1922 <     726,   618,   619,   515,  1099,   725,  1100,    49,   625,   251,
1923 <      50,   598,  1128,   121,   306,   472,   121,  1134,   473,   397,
1924 <    1101,  1121,    54,   397,  1102,  1122,   127,  1075,  1076,  1077,
1925 <    1078,  1079,   306,   128,   129,   556,  1123,  1230,   589,  1259,
1926 <    1124,  1231,    56,  1260,   130,    61,  1163,  1261,    70,   506,
1927 <      62,  1262,   131,   242,   516,   557,   132,   133,   474,   598,
1928 <    1265,   475,  1267,   134,  1266,  1269,  1268,   135,   136,  1270,
1929 <     137,    47,    48,   517,    65,   242,   138,   506,   518,    66,
1930 <    1271,   717,   718,    71,  1272,   139,   140,    69,   122,   556,
1931 <     141,   122,   118,    72,   398,   142,   677,   678,   398,   143,
1932 <     144,   407,   476,   145,   119,  1280,   146,   147,   537,   557,
1933 <     260,   252,   693,   120,   148,   599,   126,   698,   307,   477,
1934 <     149,   150,   238,   151,   152,   153,   154,   155,   709,   710,
1935 <     239,   712,   538,    79,   487,   277,   307,   519,   156,   253,
1936 <     723,   724,   590,   558,   728,    80,   157,   158,   159,   261,
1937 <     160,  1021,    73,   161,   162,   539,   399,   163,   488,   540,
1938 <     399,  1021,   262,   599,   240,    81,    82,   241,   164,   258,
1939 <     278,    83,   559,    84,   259,   263,   264,   265,   266,   251,
1940 <     600,   489,   863,  1129,   304,   490,   507,  1164,  1135,  1273,
1941 <     165,  1165,   166,  1274,  1283,   267,   167,   558,  1284,   337,
1942 <     168,   169,   170,   171,   172,   408,   279,   591,   173,   174,
1943 <     719,   720,   541,   305,   507,    85,    86,   175,   508,  1103,
1944 <     338,   339,    87,    88,   866,   867,   559,   340,   600,   366,
1945 <     311,   367,   407,   526,   368,   312,  1285,   542,   409,   280,
1946 <    1286,   281,   282,    89,    90,   478,   508,   176,   763,   177,
1947 <     795,   178,   369,   370,   535,  1022,   543,   179,    91,    92,
1948 <     740,   405,   180,   491,   667,  1022,   589,   181,   592,    93,
1949 <     410,   470,   492,   493,   515,   243,   371,   606,    94,   509,
1950 <     372,   252,   283,   814,   284,   285,   313,   314,   244,   317,
1951 <     341,   342,   343,   315,   756,   344,  -101,   243,   529,   373,
1952 <     286,   374,   318,   345,   819,   537,   494,   509,   319,   253,
1953 <     244,   320,    70,   375,   853,   346,   347,  1288,  -101,   544,
1954 <    1023,  1289,   861,   862,   531,   516,   980,   981,   982,   538,
1955 <    1023,   348,   349,   376,   787,   321,   408,   287,   545,   472,
1956 <     322,  1290,   473,   323,   517,  1291,   674,    71,   612,   518,
1957 <    1315,   324,   539,   781,  1316,   572,   540,    72,   325,   350,
1958 <    1125,  1126,  1127,   377,   495,    95,    96,    97,   326,   409,
1959 <     590,   327,   288,   289,  1059,  1060,   328,   378,   335,   751,
1960 <     587,   127,   474,   329,   330,   475,   331,   332,   128,   129,
1961 <     379,   333,   334,  1024,   404,   416,  1177,   417,   532,   130,
1962 <     418,   410,   419,  1024,   420,   421,   422,   131,   519,   541,
1963 <     423,   132,   133,   424,   993,   425,    73,   426,   134,   427,
1964 <     428,   277,   135,   136,   429,   137,   476,   725,   430,   431,
1965 <     432,   138,   433,   434,   542,   591,   435,   436,   437,   438,
1966 <     139,   140,   617,   477,   646,   141,   574,   439,   440,  1300,
1967 <     142,   441,   442,   543,   143,   144,   278,   443,   145,   444,
1968 <     445,   146,   147,   447,   449,   450,   380,   451,   452,   148,
1969 <    1301,   453,  1302,   454,   663,   149,   150,   455,   151,   152,
1970 <     153,   154,   155,   831,   832,   833,   834,   835,   456,   457,
1971 <     458,   459,   279,   156,   460,   366,   592,   367,   461,   462,
1972 <     368,   157,   158,   159,   463,   160,   464,   465,   161,   162,
1973 <     466,   467,   163,  1303,   468,   469,   544,   527,   369,   370,
1974 <     528,   608,   533,   164,   534,   280,   487,   281,   282,   565,
1975 <     566,   567,   568,   569,  1181,   545,   570,   571,   575,   576,
1976 <     577,   578,   371,   579,   580,   165,   372,   166,   581,   583,
1977 <     488,   167,   609,   584,   585,   168,   169,   170,   171,   172,
1978 <     610,   586,   605,   173,   174,   373,  1182,   374,   283,   478,
1979 <     284,   285,   175,   489,   611,   613,   614,   490,    79,   375,
1980 <     615,   616,   617,   620,   621,  1183,   286,  1304,  1305,   622,
1981 <      80,  1184,   623,   624,   626,   627,   631,   628,   629,   376,
1982 <     632,   630,   176,   648,   177,   633,   178,   634,  1185,   635,
1983 <      81,    82,   179,   636,   637,   638,    83,   180,    84,   639,
1984 <     640,   641,   181,   287,  1306,   642,   643,   260,   669,   377,
1985 <     644,   645,  1186,   676,   649,  1233,   650,   651,   652,  1187,
1986 <     653,   679,   655,   378,   656,   657,   658,   659,   337,   680,
1987 <     660,   661,   662,  1188,   665,   491,   379,   681,   288,   289,
1988 <      85,    86,   682,   683,   492,   493,   261,    87,    88,   338,
1989 <     339,  1189,   684,  1190,  1191,   666,   340,   670,  1247,   262,
1990 <     685,   671,   672,   686,   687,   688,   689,   690,    89,    90,
1991 <     691,   692,   263,   264,   265,   266,   694,   695,   494,   696,
1992 <       2,     3,   697,    91,    92,     4,   699,   700,   701,   702,
1993 <    1234,   703,   267,  1281,    93,   704,   705,   707,   706,   708,
1994 <     711,     5,   713,    94,  1192,     6,   714,   715,     7,   716,
1995 <     721,   722,   380,   725,  1193,     8,   727,   735,  1142,   341,
1996 <     342,   343,  1235,  1194,   344,   729,   730,  1195,   731,  1196,
1997 <       9,  1236,   345,  1248,    10,    11,   495,    12,  1237,  1197,
1998 <     732,   733,   919,    13,   346,   347,   736,  1143,   738,  1198,
1999 <    1238,   739,  1239,  1240,   768,   742,  1144,    14,   758,   743,
2000 <     348,   349,  1145,   765,   766,  1249,  1241,    15,    16,   744,
2001 <     769,   746,   770,   747,  1250,   942,  1242,   789,  1146,   790,
2002 <     748,  1251,   749,   750,    17,   791,   753,   755,   350,   760,
2003 <      95,    96,    97,  1252,   792,  1253,  1254,   793,   794,   767,
2004 <      18,   761,  1204,   762,  1147,   797,   771,   772,   798,  1255,
2005 <     799,   773,  1148,   774,   800,   801,   776,   777,   778,  1256,
2006 <     783,   780,   802,   803,   805,   784,   785,   796,   806,   786,
2007 <     807,   808,   809,   804,    19,   810,   811,   813,   816,   817,
2008 <     821,   822,   851,    20,    21,   823,   824,   825,    22,    23,
2009 <     852,   858,   826,  1149,   827,   828,   829,   830,   838,   839,
2010 <     840,   841,   854,   920,   921,   922,   923,   924,   842,   925,
2011 <     926,   843,  1150,   927,   928,   929,   844,   845,   930,   855,
2012 <     931,   932,   933,   846,   934,   935,   936,   847,   848,   937,
2013 <     849,   850,   856,   857,   859,   938,   943,   944,   945,   946,
2014 <     947,    24,   948,   949,   860,   864,   950,   951,   952,   865,
2015 <     868,   953,   869,   954,   955,   956,   871,   957,   958,   959,
2016 <     870,   872,   960,  1205,  1206,  1207,  1208,  1209,   961,  1210,
2017 <    1211,   873,   874,  1212,  1213,  1214,   875,   876,  1215,   877,
2018 <    1216,  1217,  1218,   878,  1219,  1220,  1221,   879,   880,  1222,
2019 <     881,   882,   883,   884,   885,  1223,   886,   888,   887,   889,
2020 <     996,   890,   891,   892,   893,   894,   895,   896,   897,   898,
2021 <     899,   900,   994,   901,   902,   903,   904,   905,   906,   907,
2022 <     997,   999,   908,   909,   910,  1000,   911,   912,   913,   914,
2023 <     915,   916,  1002,   917,   918,   941,   964,   965,   966,   967,
2024 <     968,   969,   970,   971,   972,   973,   974,   975,   976,  1003,
2025 <     977,   978,   979,   985,   986,   987,   988,   989,  1004,  1005,
2026 <     990,  1006,  1008,  1010,  1013,   991,  1014,  1015,   998,   992,
2027 <     995,  1007,  1001,  1011,  1032,  1009,  1018,  1033,  1012,  1019,
2028 <    1035,  1034,  1020,  1030,  1031,  1036,  1037,  1039,  1118,  1038,
2029 <    1041,  1040,  1042,  1043,  1044,  1045,  1067,  1046,  1047,  1069,
2030 <    1071,  1048,  1049,  1159,  1050,  1275,  1051,  1287,  1052,  1278,
2031 <    1053,  1054,  1055,  1056,  1057,  1058,  1063,  1064,  1065,  1066,
2032 <     316,  1070,  1178,  1068,  1073,  1072,  1074,  1080,  1081,  1171,
2033 <    1170,  1082,  1083,  1084,  1085,  1086,  1087,  1088,  1089,  1090,
2034 <    1091,  1317,   782,  1092,  1093,  1094,  1095,  1096,  1097,  1098,
2035 <    1106,  1107,  1108,  1109,  1110,  1111,  1112,  1113,  1114,  1115,
2176 <    1116,  1117,  1132,  1133,  1138,  1139,  1140,  1312,   588,  1141,
2177 <    1298,  1311,  1276,   752,  1153,  1296,  1154,  1155,  1156,  1313,
2178 <    1157,  1158,  1162,   764,  1168,  1169,  1173,  1292,   820,  1314,
2179 <    1174,  1176,   788,  1179,  1279,   647,  1297,   406,  1180,   757,
2180 <    1201,  1293,   471,  1202,  1203,  1264,  1226,  1263,   741,  1295,
2181 <    1227,  1228,  1229,  1232,  1245,  1246,  1277,  1282,  1294,  1299,
2182 <    1309,  1310,   336,   530,     0,     0,     0,   815,     0,   664,
2183 <       0,   536,     0,     0,     0,     0,     0,     0,     0,     0,
2184 <       0,     0,   668,     0,     0,     0,     0,     0,     0,   573,
2185 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2186 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2187 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2188 <       0,     0,     0,     0,     0,     0,     0,   607,     0,     0,
2189 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2190 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2191 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2192 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1922 >     802,   803,   571,   572,    67,    45,    46,  1025,    47,   381,
1923 >     579,   801,   509,   110,   371,  1071,   227,   236,   980,   286,
1924 >     460,   286,   981,   110,    48,   510,    52,    68,   997,   998,
1925 >     999,  1000,  1001,    54,    69,   982,  1044,   116,   291,   983,
1926 >    1045,  1046,   117,   118,   220,  1047,  1171,    58,   119,    59,
1927 >    1172,   220,   371,   237,  1173,  1177,   120,   480,  1174,  1178,
1928 >     544,   460,   121,   509,   122,   123,   124,   238,   239,   240,
1929 >     241,   125,    62,   111,   372,   251,   510,   126,   127,    63,
1930 >     128,   129,   130,   111,    66,   242,   131,   942,  1013,  1014,
1931 >    1015,   132,    70,   627,   628,   133,   134,   382,   252,   135,
1932 >     227,   635,   228,   637,   511,   107,  1188,   287,   136,   287,
1933 >     644,   553,   372,   647,   108,   137,   138,   469,   139,   140,
1934 >     141,   142,   143,   109,   658,   659,   115,   383,   229,   441,
1935 >     512,   253,   373,   144,   670,   671,   217,   673,   461,   145,
1936 >     146,   147,   218,   148,   219,   442,   149,   150,   545,  1072,
1937 >     151,   234,   470,   313,  1073,   511,   235,  1179,   384,   292,
1938 >     443,  1180,   284,   254,   444,   255,   256,   314,   315,   462,
1939 >     373,   316,   471,   664,   665,   943,  1181,   472,   801,   461,
1940 >    1182,   512,   285,   152,   490,   293,   228,   153,   942,  1026,
1941 >     154,   155,   156,   157,   158,   294,    76,   159,   160,   554,
1942 >     491,   257,   297,   258,   259,   260,   261,  1191,   298,   546,
1943 >     462,  1192,   229,   666,   667,   492,    77,    78,   295,   493,
1944 >     262,   544,    79,   624,   463,   729,   722,   379,   317,   318,
1945 >     319,   524,   473,   320,   692,   561,   944,   161,   162,   163,
1946 >     445,   321,   164,   299,   263,   739,   740,   165,   446,   447,
1947 >     221,   439,   322,   323,   264,   300,  -107,   221,   482,   381,
1948 >     555,    80,    81,  -107,   547,   463,   617,   324,    82,    83,
1949 >      84,   342,   494,   343,   757,   344,   943,  1193,   553,   484,
1950 >     448,  1194,   265,   266,   301,   469,   302,   345,   792,   542,
1951 >      85,    86,   303,    67,   325,   495,   800,   304,   945,   305,
1952 >     236,  1085,   346,    87,    88,   306,   347,   307,  1195,   545,
1953 >     308,   496,  1196,    89,   488,  1197,    68,   309,  1220,  1198,
1954 >     470,    90,  1221,    69,   310,   762,   348,   485,   349,   743,
1955 >     744,   699,   378,   449,   390,   326,   237,   944,   350,   391,
1956 >     471,   806,   807,   687,   441,   472,   392,   382,   393,   490,
1957 >     238,   239,   240,   241,  1168,  1169,  1170,   394,   395,   351,
1958 >     442,   396,   397,   398,   570,   491,   554,   597,   242,   563,
1959 >     546,   399,   400,   401,   497,   443,   402,   383,   403,   444,
1960 >     492,    70,   404,   405,   493,   406,   352,   407,   498,   251,
1961 >     116,   408,   409,   410,   411,   117,   118,   412,   716,   945,
1962 >     473,   119,   772,   773,   774,   775,   776,   413,   384,   120,
1963 >     311,   414,   252,   353,   415,   121,   416,   122,   123,   124,
1964 >     417,   418,   420,   422,   125,   547,   423,   555,   424,   425,
1965 >     126,   127,   426,   128,   129,   130,   427,   494,   428,   131,
1966 >     354,   429,   430,  1205,   132,   253,   431,   432,   133,   134,
1967 >     433,   434,   135,   435,   436,   445,   437,   438,   481,   486,
1968 >     495,   136,   487,   446,   447,  1206,   518,  1207,   137,   138,
1969 >     519,   139,   140,   141,   142,   143,   496,   254,   355,   255,
1970 >     256,   520,   526,   521,   522,   613,   144,   564,   523,  1189,
1971 >     527,   528,   145,   146,   147,   448,   148,   529,   530,   149,
1972 >     150,   565,   531,   151,   532,  1208,   342,   533,   343,   567,
1973 >     344,   534,   535,   536,   537,   257,   566,   258,   259,   260,
1974 >     261,  1089,   345,   538,   539,   540,   541,   560,  1142,   568,
1975 >     569,   570,   573,   574,   262,   575,   152,   346,   576,   497,
1976 >     153,   347,  1090,   154,   155,   156,   157,   158,   449,   577,
1977 >     159,   160,   578,   498,   580,   581,   582,  1091,   263,   583,
1978 >     599,   348,   619,   349,  1092,   620,   584,   585,   264,   586,
1979 >     313,   587,   588,   350,   589,  1209,  1210,   590,   591,   592,
1980 >     593,  1093,   594,   595,   314,   315,   596,   626,   316,   600,
1981 >     161,   162,   163,  1156,   351,   164,   265,   266,   601,  1143,
1982 >     165,   629,   602,   603,  1094,   630,   631,   632,  1211,   605,
1983 >     606,  1095,   633,   634,   607,     2,     3,   608,   609,     4,
1984 >     636,   352,   610,  1096,   611,   612,   615,   638,  1144,     5,
1985 >     616,   621,     6,     7,   622,   639,   640,  1145,     8,   641,
1986 >    1097,  1098,  1099,  1146,   642,   317,   318,   319,   353,     9,
1987 >     320,   857,   643,    10,    11,   645,   646,  1147,   321,  1148,
1988 >    1149,   648,   649,    12,  1157,   650,   651,   652,  1150,   322,
1989 >     323,   653,   654,   655,  1151,   354,   657,    13,   656,   880,
1990 >     660,   661,   662,   663,   324,    14,    15,   672,   677,   668,
1991 >    1100,   669,   674,  1158,   675,   678,   679,   676,   701,  1101,
1992 >     680,   682,  1159,    16,  1102,   683,  1050,  1113,  1160,   684,
1993 >    1103,   325,   703,   355,  1104,   685,  1105,    17,   686,   704,
1994 >     689,  1106,  1161,   691,  1162,  1163,  1051,  1107,   694,   705,
1995 >     702,   724,   696,  1164,   725,   697,  1052,   698,   726,  1165,
1996 >     706,   707,  1053,   727,   728,   732,   731,   733,   708,   734,
1997 >      18,   709,   326,   735,   736,   718,   730,   711,  1054,    19,
1998 >      20,   712,   713,    21,    22,   858,   859,   860,   861,   862,
1999 >     715,   863,   864,   749,   865,   866,   867,   719,   720,   868,
2000 >     737,   869,   870,  1055,   871,    76,   872,   738,   873,   874,
2001 >     721,  1056,   875,   881,   882,   883,   884,   885,   876,   886,
2002 >     887,   747,   888,   889,   890,    77,    78,   891,   748,   892,
2003 >     893,    79,   894,   750,   895,    23,   896,   897,   751,   752,
2004 >     898,  1114,  1115,  1116,  1117,  1118,   899,  1119,  1120,  1057,
2005 >    1121,  1122,  1123,   753,   754,  1124,   764,  1125,  1126,   756,
2006 >    1127,   759,  1128,   760,  1129,  1130,  1058,   765,  1131,   766,
2007 >      80,    81,   767,   768,  1132,   769,   770,    82,    83,    84,
2008 >     771,   779,   780,   781,   782,   783,   784,   785,   786,   787,
2009 >     790,   788,   789,   791,   793,   794,   795,   796,   797,    85,
2010 >      86,   798,   799,   804,   801,   805,   808,   809,   810,   811,
2011 >     812,   815,    87,    88,   819,   822,   813,   814,   816,   823,
2012 >     826,   827,    89,   817,   818,   820,   821,   824,   825,   828,
2013 >      90,   829,   830,   831,   832,   921,   833,   834,   835,   836,
2014 >     837,   838,   839,   840,   841,   842,   843,   844,   845,   846,
2015 >     847,   848,   849,   924,   850,   851,   852,   853,   854,   855,
2016 >     856,   879,   925,   902,   903,   904,   905,   906,   907,   908,
2017 >     909,   910,   911,   912,   913,   914,   915,   916,   917,   918,
2018 >     919,   920,   922,   926,   927,   923,   928,   929,   930,   931,
2019 >     932,   933,   934,   935,   936,   937,   940,   941,   951,   952,
2020 >     953,   954,   956,   955,   957,   958,   960,   959,   962,   963,
2021 >     964,   989,   991,  1140,   993,   296,  1222,   489,  1139,  1086,
2022 >    1041,  1217,   598,   717,  1216,  1067,  1183,   961,   965,   966,
2023 >     967,   968,  1203,   969,   970,   971,   972,   543,   973,   974,
2024 >     975,   976,   977,   978,   979,   984,   985,   986,   987,   988,
2025 >    1186,  1184,   992,   700,   990,   995,   994,   996,  1002,  1003,
2026 >    1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1018,
2027 >    1019,  1020,  1021,  1022,  1023,  1024,  1029,  1078,  1030,  1031,
2028 >     688,  1201,  1032,   723,  1033,  1218,  1034,   763,  1035,  1036,
2029 >    1219,  1199,  1037,  1038,  1039,  1040,  1048,  1202,  1049,   693,
2030 >    1061,   380,  1200,   440,  1062,  1175,  1176,   312,     0,     0,
2031 >       0,   758,     0,  1063,  1064,  1065,  1066,     0,  1070,  1076,
2032 >    1077,     0,  1081,     0,     0,  1079,  1082,  1084,  1187,  1087,
2033 >    1088,  1110,  1111,  1112,  1135,  1136,  1137,  1138,  1141,  1154,
2034 >    1155,     0,  1185,  1190,  1204,  1214,  1215,     0,   618,     0,
2035 >       0,     0,     0,     0,     0,   625,   483,     0,     0,     0,
2036         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2037 +       0,     0,     0,     0,     0,     0,     0,     0,   525,     0,
2038         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2039 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2040 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2197 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2198 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2199 <       0,     0,   675
2039 >       0,     0,     0,     0,     0,     0,   614,     0,     0,     0,
2040 >     562
2041   };
2042  
2043 < #define yypact_value_is_default(yystate) \
2044 <  ((yystate) == (-805))
2043 > #define yypact_value_is_default(Yystate) \
2044 >  (!!((Yystate) == (-745)))
2045  
2046 < #define yytable_value_is_error(yytable_value) \
2046 > #define yytable_value_is_error(Yytable_value) \
2047    YYID (0)
2048  
2049   static const yytype_int16 yycheck[] =
2050   {
2051 <     463,   322,   323,     1,    10,   115,    12,   247,   329,     1,
2052 <     247,     1,    11,     1,     1,     1,     1,    11,     4,     1,
2053 <      26,   245,   247,     1,    30,   249,     1,   831,   832,   833,
2054 <     834,   835,     1,     8,     9,     1,   245,   245,     1,   245,
2055 <     249,   249,   247,   249,    19,   247,    66,   245,     1,     1,
2056 <     247,   249,    27,     1,    52,    21,    31,    32,    44,     1,
2057 <     245,    47,   245,    38,   249,   245,   249,    42,    43,   249,
2058 <      45,   245,   246,    71,   247,     1,    51,     1,    76,   247,
2059 <     245,   180,   181,    36,   249,    60,    61,   247,    76,     1,
2060 <      65,    76,   247,    46,    76,    70,   417,   418,    76,    74,
2061 <      75,     1,    88,    78,   247,   215,    81,    82,     1,    21,
2062 <       1,   103,   433,   247,    89,   105,   247,   438,   105,   105,
2063 <      95,    96,   247,    98,    99,   100,   101,   102,   449,   450,
2064 <     247,   452,    25,     1,     1,     1,   105,   135,   113,   131,
2065 <     461,   462,   105,   109,   465,    13,   121,   122,   123,    40,
2066 <     125,     1,   105,   128,   129,    48,   138,   132,    25,    52,
2067 <     138,     1,    53,   105,   247,    33,    34,   247,   143,   247,
2068 <      36,    39,   138,    41,   247,    66,    67,    68,    69,     1,
2069 <     170,    48,   645,   182,   247,    52,   138,   207,   182,   245,
2070 <     165,   211,   167,   249,   245,    86,   171,   109,   249,     1,
2071 <     175,   176,   177,   178,   179,   105,    72,   170,   183,   184,
2072 <     180,   181,   105,   247,   138,    83,    84,   192,   170,   225,
2073 <      22,    23,    90,    91,   200,   201,   138,    29,   170,     1,
2074 <     245,     3,     1,   245,     6,   248,   245,   130,   138,   105,
2075 <     249,   107,   108,   111,   112,   231,   170,   222,   246,   224,
2076 <     571,   226,    24,    25,   246,   105,   149,   232,   126,   127,
2077 <     246,   246,   237,   130,   246,   105,     1,   242,   231,   137,
2078 <     170,   246,   139,   140,     1,   223,    48,   246,   146,   231,
2079 <      52,   103,   148,   246,   150,   151,   248,   248,   236,   248,
2080 <      92,    93,    94,   246,   246,    97,   244,   223,   246,    71,
2081 <     166,    73,   248,   105,   246,     1,   173,   231,   248,   131,
2082 <     236,   248,     1,    85,   635,   117,   118,   245,   244,   212,
2083 <     170,   249,   643,   644,   244,    52,    14,    15,    16,    25,
2084 <     170,   133,   134,   105,   246,   248,   105,   203,   231,     1,
2085 <     248,   245,     4,   248,    71,   249,   246,    36,   180,    76,
2086 <     245,   248,    48,   246,   249,   246,    52,    46,   248,   161,
2087 <     980,   981,   982,   135,   231,   233,   234,   235,   248,   138,
2088 <     105,   248,   238,   239,   152,   153,   248,   149,   246,   246,
2089 <     246,     1,    44,   248,   248,    47,   248,   248,     8,     9,
2090 <     162,   248,   248,   243,   248,   248,   246,   248,   245,    19,
2091 <     248,   170,   248,   243,   248,   248,   248,    27,   135,   105,
2092 <     248,    31,    32,   248,   735,   248,   105,   248,    38,   248,
2093 <     248,     1,    42,    43,   248,    45,    88,   115,   248,   248,
2094 <     248,    51,   248,   248,   130,   170,   248,   248,   248,   248,
2095 <      60,    61,   115,   105,   246,    65,   245,   248,   248,    56,
2096 <      70,   248,   248,   149,    74,    75,    36,   248,    78,   248,
2097 <     248,    81,    82,   248,   248,   248,   238,   248,   248,    89,
2098 <      77,   248,    79,   248,   246,    95,    96,   248,    98,    99,
2099 <     100,   101,   102,   156,   157,   158,   159,   160,   248,   248,
2100 <     248,   248,    72,   113,   248,     1,   231,     3,   248,   248,
2101 <       6,   121,   122,   123,   248,   125,   248,   248,   128,   129,
2102 <     248,   248,   132,   120,   248,   248,   212,   248,    24,    25,
2103 <     248,   136,   248,   143,   248,   105,     1,   107,   108,   248,
2104 <     248,   248,   248,   248,     5,   231,   248,   248,   248,   248,
2105 <     248,   248,    48,   248,   248,   165,    52,   167,   248,   248,
2106 <      25,   171,   136,   248,   248,   175,   176,   177,   178,   179,
2107 <     136,   248,   248,   183,   184,    71,    37,    73,   148,   231,
2108 <     150,   151,   192,    48,   245,   115,   115,    52,     1,    85,
2109 <     180,   180,   115,   115,   115,    56,   166,   194,   195,   180,
2110 <      13,    62,   180,   115,   180,   180,   245,   180,   180,   105,
2111 <     245,   180,   222,   245,   224,   248,   226,   248,    79,   248,
2112 <      33,    34,   232,   248,   248,   248,    39,   237,    41,   248,
2113 <     248,   248,   242,   203,   231,   248,   248,     1,   136,   135,
2114 <     248,   248,   103,   180,   248,    79,   248,   248,   248,   110,
2115 <     248,   115,   248,   149,   248,   248,   248,   248,     1,   136,
2116 <     248,   248,   248,   124,   248,   130,   162,   115,   238,   239,
2117 <      83,    84,   180,   180,   139,   140,    40,    90,    91,    22,
2118 <      23,   142,   115,   144,   145,   248,    29,   245,    79,    53,
2119 <     136,   248,   248,   180,   115,   115,   115,   180,   111,   112,
2120 <     180,   180,    66,    67,    68,    69,   136,   180,   173,   115,
2121 <       0,     1,   115,   126,   127,     5,   115,   115,   136,   115,
2122 <     154,   115,    86,  1176,   137,   180,   180,   180,   248,   248,
2123 <     180,    21,   136,   146,   195,    25,   180,   180,    28,   180,
2124 <     180,   180,   238,   115,   205,    35,   136,   248,    20,    92,
2125 <      93,    94,   186,   214,    97,   180,   180,   218,   180,   220,
2126 <      50,   195,   105,   154,    54,    55,   231,    57,   202,   230,
2127 <     180,   245,    66,    63,   117,   118,   248,    49,   248,   240,
2128 <     214,   248,   216,   217,   247,   245,    58,    77,   245,   248,
2129 <     133,   134,    64,   180,   180,   186,   230,    87,    88,   248,
2130 <     136,   248,   136,   248,   195,    66,   240,   180,    80,   180,
2131 <     248,   202,   248,   248,   104,   180,   248,   248,   161,   248,
2132 <     233,   234,   235,   214,   136,   216,   217,   180,   180,   245,
2133 <     120,   248,    66,   248,   106,   136,   245,   245,   180,   230,
2134 <     136,   248,   114,   248,   136,   136,   248,   248,   248,   240,
2135 <     245,   248,   136,   136,   136,   248,   248,   245,   115,   248,
2136 <     136,   136,   245,   248,   154,   245,   248,   248,   245,   248,
2137 <     136,   245,   115,   163,   164,   245,   245,   245,   168,   169,
2138 <     115,   136,   245,   155,   245,   245,   245,   245,   245,   245,
2139 <     245,   245,   115,   187,   188,   189,   190,   191,   245,   193,
2140 <     194,   245,   174,   197,   198,   199,   245,   245,   202,   115,
2141 <     204,   205,   206,   245,   208,   209,   210,   245,   245,   213,
2142 <     245,   245,   115,   115,   115,   219,   187,   188,   189,   190,
2143 <     191,   221,   193,   194,   115,   245,   197,   198,   199,   136,
2144 <     136,   202,   136,   204,   205,   206,   248,   208,   209,   210,
2145 <     180,   136,   213,   187,   188,   189,   190,   191,   219,   193,
2146 <     194,   136,   136,   197,   198,   199,   136,   115,   202,   136,
2147 <     204,   205,   206,   136,   208,   209,   210,   136,   245,   213,
2148 <     136,   136,   245,   245,   136,   219,   136,   245,   248,   245,
2149 <     136,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2150 <     245,   245,   180,   245,   245,   245,   245,   245,   245,   245,
2151 <     136,   136,   245,   245,   245,   180,   245,   245,   245,   245,
2152 <     245,   245,   136,   245,   245,   245,   245,   245,   245,   245,
2153 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   115,
2154 <     245,   245,   245,   245,   245,   245,   245,   245,   136,   136,
2155 <     245,   136,   136,   136,   136,   245,   136,   115,   245,   248,
2156 <     248,   245,   248,   245,   136,   248,   245,   180,   248,   245,
2157 <     136,   248,   245,   245,   245,   136,   136,   136,   141,   248,
2158 <     136,   245,   136,   136,   245,   245,   136,   245,   245,   136,
2159 <     136,   245,   245,   141,   245,   115,   245,  1231,   245,   136,
2160 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2161 <      74,   245,  1025,   248,   245,   248,   245,   245,   245,   249,
2162 <     185,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2163 <     245,  1316,   546,   245,   245,   245,   245,   245,   245,   245,
2164 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2324 <     245,   245,   245,   245,   245,   245,   245,  1286,   290,   245,
2325 <    1274,  1284,  1171,   496,   245,  1270,   245,   245,   245,  1289,
2326 <     245,   245,   245,   521,   245,   245,   245,  1260,   601,  1291,
2327 <     248,   248,   560,   245,   248,   351,  1272,   123,   245,   511,
2328 <     245,  1262,   182,   245,   245,  1124,   245,  1122,   479,  1268,
2329 <     245,   245,   245,   245,   245,   245,   245,   245,  1266,   245,
2330 <     245,   245,    98,   245,    -1,    -1,    -1,   593,    -1,   381,
2331 <      -1,   254,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2332 <      -1,    -1,   400,    -1,    -1,    -1,    -1,    -1,    -1,   268,
2333 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2334 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2335 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2336 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,   308,    -1,    -1,
2337 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2051 >     595,   596,   300,   301,     1,   214,   215,     8,   216,     1,
2052 >     308,    99,     1,     1,     1,    51,     1,     1,   214,     1,
2053 >       1,     1,   218,     1,   216,    14,   216,    24,   772,   773,
2054 >     774,   775,   776,   216,    31,   214,   214,     1,   214,   218,
2055 >     218,   214,     6,     7,     1,   218,   214,   216,    12,   216,
2056 >     218,     1,     1,    37,   214,   214,    20,   214,   218,   218,
2057 >       1,     1,    26,     1,    28,    29,    30,    51,    52,    53,
2058 >      54,    35,   216,    61,    61,     1,    14,    41,    42,   216,
2059 >      44,    45,    46,    61,   216,    69,    50,     1,     9,    10,
2060 >      11,    55,    89,   391,   392,    59,    60,    89,    24,    63,
2061 >       1,   399,    87,   401,    93,   216,   194,    89,    72,    89,
2062 >     408,     1,    61,   411,   216,    79,    80,     1,    82,    83,
2063 >      84,    85,    86,   216,   422,   423,   216,   119,   113,     1,
2064 >     119,    57,   119,    97,   432,   433,   216,   435,   119,   103,
2065 >     104,   105,   216,   107,   216,    17,   110,   111,    89,   185,
2066 >     114,   216,    36,     1,   190,    93,   216,   214,   150,   217,
2067 >      32,   218,   216,    89,    36,    91,    92,    15,    16,   150,
2068 >     119,    19,    56,   159,   160,    89,   214,    61,    99,   119,
2069 >     218,   119,   216,   147,     1,   217,    87,   151,     1,   190,
2070 >     154,   155,   156,   157,   158,   217,     1,   161,   162,    89,
2071 >      17,   127,   217,   129,   130,   131,   132,   214,   217,   150,
2072 >     150,   218,   113,   159,   160,    32,    21,    22,   215,    36,
2073 >     146,     1,    27,   215,   205,   523,   215,   215,    76,    77,
2074 >      78,   215,   116,    81,   215,   215,   150,   201,   202,   203,
2075 >     112,    89,   206,   217,   170,   133,   134,   211,   120,   121,
2076 >     207,   215,   100,   101,   180,   217,   213,   207,   215,     1,
2077 >     150,    66,    67,   213,   205,   205,   215,   115,    73,    74,
2078 >      75,     1,    89,     3,   215,     5,    89,   214,     1,   213,
2079 >     152,   218,   208,   209,   217,     1,   217,    17,   586,   215,
2080 >      95,    96,   217,     1,   142,   112,   594,   217,   212,   217,
2081 >       1,   215,    32,   108,   109,   217,    36,   217,   214,    89,
2082 >     217,   128,   218,   118,   215,   214,    24,   217,   214,   218,
2083 >      36,   126,   218,    31,   217,   215,    56,   214,    58,   133,
2084 >     134,   215,   217,   205,   217,   183,    37,   150,    68,   217,
2085 >      56,   177,   178,   215,     1,    61,   217,    89,   217,     1,
2086 >      51,    52,    53,    54,  1013,  1014,  1015,   217,   217,    89,
2087 >      17,   217,   217,   217,    99,    17,    89,   215,    69,   117,
2088 >     150,   217,   217,   217,   191,    32,   217,   119,   217,    36,
2089 >      32,    89,   217,   217,    36,   217,   116,   217,   205,     1,
2090 >       1,   217,   217,   217,   217,     6,     7,   217,   215,   212,
2091 >     116,    12,   137,   138,   139,   140,   141,   217,   150,    20,
2092 >     215,   217,    24,   143,   217,    26,   217,    28,    29,    30,
2093 >     217,   217,   217,   217,    35,   205,   217,   150,   217,   217,
2094 >      41,    42,   217,    44,    45,    46,   217,    89,   217,    50,
2095 >     170,   217,   217,    40,    55,    57,   217,   217,    59,    60,
2096 >     217,   217,    63,   217,   217,   112,   217,   217,   217,   217,
2097 >     112,    72,   217,   120,   121,    62,   217,    64,    79,    80,
2098 >     217,    82,    83,    84,    85,    86,   128,    89,   208,    91,
2099 >      92,   217,   214,   217,   217,   215,    97,   117,   217,  1084,
2100 >     217,   217,   103,   104,   105,   152,   107,   217,   217,   110,
2101 >     111,   117,   217,   114,   217,   102,     1,   217,     3,    99,
2102 >       5,   217,   217,   217,   217,   127,   214,   129,   130,   131,
2103 >     132,     4,    17,   217,   217,   217,   217,   217,    64,    99,
2104 >     159,    99,    99,    99,   146,    99,   147,    32,   159,   191,
2105 >     151,    36,    25,   154,   155,   156,   157,   158,   205,   159,
2106 >     161,   162,    99,   205,   159,   159,   214,    40,   170,   214,
2107 >     214,    56,   117,    58,    47,   214,   217,   217,   180,   217,
2108 >       1,   217,   217,    68,   217,   172,   173,   217,   217,   217,
2109 >     217,    64,   217,   217,    15,    16,   217,   159,    19,   217,
2110 >     201,   202,   203,    64,    89,   206,   208,   209,   217,   135,
2111 >     211,    99,   217,   217,    87,   159,   159,    99,   205,   217,
2112 >     217,    94,   117,   159,   217,     0,     1,   217,   217,     4,
2113 >     159,   116,   217,   106,   217,   217,   217,    99,   164,    14,
2114 >     217,   217,    17,    18,   217,    99,    99,   173,    23,   159,
2115 >     123,   124,   125,   179,   159,    76,    77,    78,   143,    34,
2116 >      81,    51,   159,    38,    39,    99,    99,   193,    89,   195,
2117 >     196,    99,    99,    48,   135,   117,    99,    99,   204,   100,
2118 >     101,   159,   159,   217,   210,   170,   217,    62,   159,    51,
2119 >     159,   159,   159,   159,   115,    70,    71,   117,   214,   159,
2120 >     173,   159,   159,   164,   159,   214,   217,   159,   159,   182,
2121 >     217,   217,   173,    88,   187,   217,    13,    51,   179,   217,
2122 >     193,   142,   216,   208,   197,   217,   199,   102,   217,   117,
2123 >     217,   204,   193,   217,   195,   196,    33,   210,   214,   117,
2124 >     214,   159,   217,   204,   159,   217,    43,   217,   117,   210,
2125 >     214,   214,    49,   159,   159,   159,   117,   117,   217,   117,
2126 >     135,   217,   183,   117,   117,   214,   214,   217,    65,   144,
2127 >     145,   217,   217,   148,   149,   165,   166,   167,   168,   169,
2128 >     217,   171,   172,    99,   174,   175,   176,   217,   217,   179,
2129 >     117,   181,   182,    90,   184,     1,   186,   117,   188,   189,
2130 >     217,    98,   192,   165,   166,   167,   168,   169,   198,   171,
2131 >     172,   117,   174,   175,   176,    21,    22,   179,   117,   181,
2132 >     182,    27,   184,   117,   186,   200,   188,   189,   117,   214,
2133 >     192,   165,   166,   167,   168,   169,   198,   171,   172,   136,
2134 >     174,   175,   176,   214,   217,   179,   117,   181,   182,   217,
2135 >     184,   214,   186,   217,   188,   189,   153,   214,   192,   214,
2136 >      66,    67,   214,   214,   198,   214,   214,    73,    74,    75,
2137 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2138 >      99,   214,   214,    99,    99,    99,    99,    99,   117,    95,
2139 >      96,    99,    99,   214,    99,   117,   117,   159,   217,   117,
2140 >     117,    99,   108,   109,   214,   214,   117,   117,   117,   214,
2141 >     217,   214,   118,   117,   117,   117,   117,   117,   117,   214,
2142 >     126,   214,   214,   214,   214,   117,   214,   214,   214,   214,
2143 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2144 >     214,   214,   214,   117,   214,   214,   214,   214,   214,   214,
2145 >     214,   214,    99,   214,   214,   214,   214,   214,   214,   214,
2146 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2147 >     214,   214,   159,   117,   117,   217,   117,   214,   117,   217,
2148 >     117,   214,   217,   117,   117,    99,   214,   214,   214,   214,
2149 >     117,   159,   117,   217,   117,   117,   117,   217,   117,   117,
2150 >     117,   117,   117,   983,   117,    71,  1221,   230,   981,   946,
2151 >     122,  1194,   327,   499,  1192,   122,    99,   214,   214,   214,
2152 >     214,   214,  1182,   214,   214,   214,   214,   267,   214,   214,
2153 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2154 >     117,  1079,   214,   475,   217,   214,   217,   214,   214,   214,
2155 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2156 >     214,   214,   214,   214,   214,   214,   214,   163,   214,   214,
2157 >     450,  1178,   214,   513,   214,  1196,   214,   556,   214,   214,
2158 >    1198,  1172,   214,   214,   214,   214,   214,  1180,   214,   465,
2159 >     214,   112,  1174,   166,   214,  1045,  1047,    91,    -1,    -1,
2160 >      -1,   548,    -1,   214,   214,   214,   214,    -1,   214,   214,
2161 >     214,    -1,   214,    -1,    -1,   218,   217,   217,   217,   214,
2162 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2163 >     214,    -1,   214,   214,   214,   214,   214,    -1,   374,    -1,
2164 >      -1,    -1,    -1,    -1,    -1,   386,   222,    -1,    -1,    -1,
2165        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2166 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   243,    -1,
2167        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2168 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2169 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2342 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2343 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2344 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2345 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2346 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2347 <      -1,    -1,   412
2168 >      -1,    -1,    -1,    -1,    -1,    -1,   356,    -1,    -1,    -1,
2169 >     288
2170   };
2171  
2172   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2173     symbol of state STATE-NUM.  */
2174   static const yytype_uint16 yystos[] =
2175   {
2176 <       0,   251,     0,     1,     5,    21,    25,    28,    35,    50,
2177 <      54,    55,    57,    63,    77,    87,    88,   104,   120,   154,
2178 <     163,   164,   168,   169,   221,   252,   257,   262,   280,   286,
2179 <     301,   319,   336,   350,   365,   372,   376,   386,   395,   416,
2180 <     426,   432,   436,   446,   509,   525,   546,   245,   246,   247,
2181 <     247,   320,   396,   427,   247,   437,   247,   510,   351,   417,
2182 <     337,   247,   247,   302,   366,   247,   247,   377,   387,   247,
2183 <       1,    36,    46,   105,   281,   282,   283,   284,   285,     1,
2184 <      13,    33,    34,    39,    41,    83,    84,    90,    91,   111,
2185 <     112,   126,   127,   137,   146,   233,   234,   235,   526,   527,
2186 <     528,   529,   530,   531,   532,   533,   534,   535,   536,   537,
2187 <     538,   539,   540,   541,   542,   543,   544,   545,   247,   247,
2188 <     247,     1,    76,   433,   434,   435,   247,     1,     8,     9,
2189 <      19,    27,    31,    32,    38,    42,    43,    45,    51,    60,
2190 <      61,    65,    70,    74,    75,    78,    81,    82,    89,    95,
2191 <      96,    98,    99,   100,   101,   102,   113,   121,   122,   123,
2192 <     125,   128,   129,   132,   143,   165,   167,   171,   175,   176,
2193 <     177,   178,   179,   183,   184,   192,   222,   224,   226,   232,
2194 <     237,   242,   447,   448,   449,   450,   451,   452,   453,   454,
2195 <     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
2196 <     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
2197 <     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2198 <     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
2199 <     495,   496,   497,   501,   505,   506,   507,   508,   247,   247,
2200 <     247,   247,     1,   223,   236,   287,   288,   289,   290,   291,
2201 <     292,     1,   103,   131,   258,   259,   260,   261,   247,   247,
2202 <       1,    40,    53,    66,    67,    68,    69,    86,   547,   548,
2203 <     549,   550,   551,   552,   553,   554,   555,     1,    36,    72,
2204 <     105,   107,   108,   148,   150,   151,   166,   203,   238,   239,
2205 <     263,   264,   265,   269,   270,   271,   272,   273,   274,   275,
2206 <     276,   277,   278,   279,   247,   247,     1,   105,   373,   374,
2207 <     375,   245,   248,   248,   248,   246,   282,   248,   248,   248,
2208 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
2209 <     248,   248,   248,   248,   248,   246,   527,     1,    22,    23,
2210 <      29,    92,    93,    94,    97,   105,   117,   118,   133,   134,
2211 <     161,   321,   322,   323,   324,   325,   326,   327,   328,   329,
2212 <     330,   331,   332,   333,   334,   335,     1,     3,     6,    24,
2213 <      25,    48,    52,    71,    73,    85,   105,   135,   149,   162,
2214 <     238,   397,   398,   399,   400,   401,   402,   403,   404,   405,
2215 <     406,   410,   411,   412,   413,   414,   415,     1,    76,   138,
2216 <     428,   429,   430,   431,   248,   246,   434,     1,   105,   138,
2217 <     170,   438,   442,   443,   444,   445,   248,   248,   248,   248,
2218 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
2219 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
2220 <     248,   248,   248,   248,   248,   248,   502,   248,   498,   248,
2221 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
2222 <     248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
2223 <     246,   448,     1,     4,    44,    47,    88,   105,   231,   511,
2224 <     512,   513,   514,   515,   519,   520,   521,     1,    25,    48,
2225 <      52,   130,   139,   140,   173,   231,   352,   353,   354,   355,
2226 <     356,   357,   358,   362,   363,   364,     1,   138,   170,   231,
2227 <     418,   422,   423,   424,   425,     1,    52,    71,    76,   135,
2228 <     338,   342,   343,   344,   348,   349,   245,   248,   248,   246,
2229 <     288,   244,   245,   248,   248,   246,   259,     1,    25,    48,
2230 <      52,   105,   130,   149,   212,   231,   303,   304,   305,   306,
2231 <     307,   308,   309,   310,   311,   315,     1,    21,   109,   138,
2232 <     367,   368,   369,   370,   371,   248,   248,   248,   248,   248,
2233 <     248,   248,   246,   548,   245,   248,   248,   248,   248,   248,
2234 <     248,   248,   266,   248,   248,   248,   248,   246,   264,     1,
2235 <     105,   170,   231,   378,   379,   380,   381,   382,     1,   105,
2236 <     170,   388,   389,   390,   391,   248,   246,   374,   136,   136,
2237 <     136,   245,   180,   115,   115,   180,   180,   115,   254,   254,
2238 <     115,   115,   180,   180,   115,   254,   180,   180,   180,   180,
2239 <     180,   245,   245,   248,   248,   248,   248,   248,   248,   248,
2240 <     248,   248,   248,   248,   248,   248,   246,   322,   245,   248,
2241 <     248,   248,   248,   248,   407,   248,   248,   248,   248,   248,
2242 <     248,   248,   248,   246,   398,   248,   248,   246,   429,   136,
2243 <     245,   248,   248,   439,   246,   443,   180,   254,   254,   115,
2244 <     136,   115,   180,   180,   115,   136,   180,   115,   115,   115,
2245 <     180,   180,   180,   254,   136,   180,   115,   115,   254,   115,
2246 <     115,   136,   115,   115,   180,   180,   248,   180,   248,   254,
2247 <     254,   180,   254,   136,   180,   180,   180,   180,   181,   180,
2248 <     181,   180,   180,   254,   254,   115,   256,   136,   254,   180,
2249 <     180,   180,   180,   245,   522,   248,   248,   516,   248,   248,
2250 <     246,   512,   245,   248,   248,   359,   248,   248,   248,   248,
2251 <     248,   246,   353,   248,   419,   248,   246,   423,   245,   339,
2252 <     248,   248,   248,   246,   343,   180,   180,   245,   247,   136,
2253 <     136,   245,   245,   248,   248,   316,   248,   248,   248,   312,
2254 <     248,   246,   304,   245,   248,   248,   248,   246,   368,   180,
2255 <     180,   180,   136,   180,   180,   254,   245,   136,   180,   136,
2256 <     136,   136,   136,   136,   248,   136,   115,   136,   136,   245,
2257 <     245,   248,   383,   248,   246,   379,   245,   248,   392,   246,
2258 <     389,   136,   245,   245,   245,   245,   245,   245,   245,   245,
2259 <     245,   156,   157,   158,   159,   160,   253,   254,   245,   245,
2260 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2261 <     245,   115,   115,   254,   115,   115,   115,   115,   136,   115,
2262 <     115,   254,   254,   256,   245,   136,   200,   201,   136,   136,
2263 <     180,   248,   136,   136,   136,   136,   115,   136,   136,   136,
2264 <     245,   136,   136,   245,   245,   136,   136,   248,   245,   245,
2265 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2266 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2267 <     245,   245,   245,   245,   245,   245,   245,   245,   245,    66,
2268 <     187,   188,   189,   190,   191,   193,   194,   197,   198,   199,
2269 <     202,   204,   205,   206,   208,   209,   210,   213,   219,   503,
2270 <     504,   245,    66,   187,   188,   189,   190,   191,   193,   194,
2271 <     197,   198,   199,   202,   204,   205,   206,   208,   209,   210,
2272 <     213,   219,   499,   500,   245,   245,   245,   245,   245,   245,
2273 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2274 <      14,    15,    16,   255,   256,   245,   245,   245,   245,   245,
2275 <     245,   245,   248,   254,   180,   248,   136,   136,   245,   136,
2276 <     180,   248,   136,   115,   136,   136,   136,   245,   136,   248,
2277 <     136,   245,   248,   136,   136,   115,   346,   347,   245,   245,
2278 <     245,     1,   105,   170,   243,   293,   294,   295,   296,   297,
2279 <     245,   245,   136,   180,   248,   136,   136,   136,   248,   136,
2280 <     245,   136,   136,   136,   245,   245,   245,   245,   245,   245,
2281 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   152,
2282 <     153,   267,   268,   245,   245,   245,   245,   136,   248,   136,
2283 <     245,   136,   248,   245,   245,   253,   253,   253,   253,   253,
2284 <     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2285 <     245,   245,   245,   245,   245,   245,   245,   245,   245,    10,
2286 <      12,    26,    30,   225,   408,   409,   245,   245,   245,   245,
2287 <     245,   245,   245,   245,   245,   245,   245,   245,   141,   440,
2288 <     441,   245,   249,   245,   249,   255,   255,   255,    11,   182,
2289 <     523,   524,   245,   245,    11,   182,   517,   518,   245,   245,
2290 <     245,   245,    20,    49,    58,    64,    80,   106,   114,   155,
2291 <     174,   360,   361,   245,   245,   245,   245,   245,   245,   141,
2292 <     420,   421,   245,    66,   207,   211,   340,   341,   245,   245,
2293 <     185,   249,   345,   245,   248,   298,   248,   246,   294,   245,
2294 <     245,     5,    37,    56,    62,    79,   103,   110,   124,   142,
2295 <     144,   145,   195,   205,   214,   218,   220,   230,   240,   317,
2296 <     318,   245,   245,   245,    66,   187,   188,   189,   190,   191,
2297 <     193,   194,   197,   198,   199,   202,   204,   205,   206,   208,
2298 <     209,   210,   213,   219,   313,   314,   245,   245,   245,   245,
2477 <     245,   249,   245,    79,   154,   186,   195,   202,   214,   216,
2478 <     217,   230,   240,   384,   385,   245,   245,    79,   154,   186,
2479 <     195,   202,   214,   216,   217,   230,   240,   393,   394,   245,
2480 <     249,   245,   249,   504,   500,   245,   249,   245,   249,   245,
2481 <     249,   245,   249,   245,   249,   115,   347,   245,   136,   248,
2482 <     215,   256,   245,   245,   249,   245,   249,   268,   245,   249,
2483 <     245,   249,   409,   441,   524,   518,   361,   421,   341,   245,
2484 <      56,    77,    79,   120,   194,   195,   231,   299,   300,   245,
2485 <     245,   318,   314,   385,   394,   245,   249,   300
2176 >       0,   220,     0,     1,     4,    14,    17,    18,    23,    34,
2177 >      38,    39,    48,    62,    70,    71,    88,   102,   135,   144,
2178 >     145,   148,   149,   200,   221,   226,   231,   253,   259,   273,
2179 >     291,   308,   322,   337,   344,   348,   358,   367,   387,   397,
2180 >     403,   407,   417,   475,   492,   214,   215,   216,   216,   292,
2181 >     368,   398,   216,   408,   216,   323,   388,   309,   216,   216,
2182 >     274,   338,   216,   216,   349,   359,   216,     1,    24,    31,
2183 >      89,   254,   255,   256,   257,   258,     1,    21,    22,    27,
2184 >      66,    67,    73,    74,    75,    95,    96,   108,   109,   118,
2185 >     126,   476,   477,   478,   479,   480,   481,   482,   483,   484,
2186 >     485,   486,   487,   488,   489,   490,   491,   216,   216,   216,
2187 >       1,    61,   404,   405,   406,   216,     1,     6,     7,    12,
2188 >      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
2189 >      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
2190 >      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
2191 >     111,   114,   147,   151,   154,   155,   156,   157,   158,   161,
2192 >     162,   201,   202,   203,   206,   211,   418,   419,   420,   421,
2193 >     422,   423,   424,   425,   426,   427,   428,   429,   430,   431,
2194 >     432,   433,   434,   435,   436,   437,   438,   439,   440,   441,
2195 >     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
2196 >     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
2197 >     462,   463,   464,   468,   472,   473,   474,   216,   216,   216,
2198 >       1,   207,   260,   261,   262,   263,   264,     1,    87,   113,
2199 >     227,   228,   229,   230,   216,   216,     1,    37,    51,    52,
2200 >      53,    54,    69,   493,   494,   495,   496,   497,   498,   499,
2201 >     500,     1,    24,    57,    89,    91,    92,   127,   129,   130,
2202 >     131,   132,   146,   170,   180,   208,   209,   232,   233,   234,
2203 >     235,   240,   241,   242,   243,   244,   245,   246,   247,   248,
2204 >     249,   250,   251,   252,   216,   216,     1,    89,   345,   346,
2205 >     347,   214,   217,   217,   217,   215,   255,   217,   217,   217,
2206 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2207 >     217,   215,   477,     1,    15,    16,    19,    76,    77,    78,
2208 >      81,    89,   100,   101,   115,   142,   183,   293,   294,   295,
2209 >     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
2210 >     306,   307,     1,     3,     5,    17,    32,    36,    56,    58,
2211 >      68,    89,   116,   143,   170,   208,   369,   370,   371,   372,
2212 >     373,   374,   375,   376,   377,   378,   382,   383,   384,   385,
2213 >     386,     1,    61,   119,   399,   400,   401,   402,   217,   215,
2214 >     405,     1,    89,   119,   150,   409,   413,   414,   415,   416,
2215 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2216 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2217 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   469,
2218 >     217,   465,   217,   217,   217,   217,   217,   217,   217,   217,
2219 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   215,
2220 >     419,     1,    17,    32,    36,   112,   120,   121,   152,   205,
2221 >     324,   325,   326,   327,   328,   329,   330,   334,   335,   336,
2222 >       1,   119,   150,   205,   389,   393,   394,   395,   396,     1,
2223 >      36,    56,    61,   116,   310,   314,   315,   316,   320,   321,
2224 >     214,   217,   215,   261,   213,   214,   217,   217,   215,   228,
2225 >       1,    17,    32,    36,    89,   112,   128,   191,   205,   275,
2226 >     276,   277,   278,   279,   280,   281,   282,   283,   287,     1,
2227 >      14,    93,   119,   339,   340,   341,   342,   343,   217,   217,
2228 >     217,   217,   217,   217,   215,   494,   214,   217,   217,   217,
2229 >     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
2230 >     217,   217,   215,   233,     1,    89,   150,   205,   350,   351,
2231 >     352,   353,   354,     1,    89,   150,   360,   361,   362,   363,
2232 >     217,   215,   346,   117,   117,   117,   214,    99,    99,   159,
2233 >      99,   223,   223,    99,    99,    99,   159,   159,    99,   223,
2234 >     159,   159,   214,   214,   217,   217,   217,   217,   217,   217,
2235 >     217,   217,   217,   217,   217,   217,   217,   215,   294,   214,
2236 >     217,   217,   217,   217,   379,   217,   217,   217,   217,   217,
2237 >     217,   217,   217,   215,   370,   217,   217,   215,   400,   117,
2238 >     214,   217,   217,   410,   215,   414,   159,   223,   223,    99,
2239 >     159,   159,    99,   117,   159,   223,   159,   223,    99,    99,
2240 >      99,   159,   159,   159,   223,    99,    99,   223,    99,    99,
2241 >     117,    99,    99,   159,   159,   217,   159,   217,   223,   223,
2242 >     159,   159,   159,   159,   159,   160,   159,   160,   159,   159,
2243 >     223,   223,   117,   223,   159,   159,   159,   214,   214,   217,
2244 >     217,   331,   217,   217,   217,   217,   217,   215,   325,   217,
2245 >     390,   217,   215,   394,   214,   311,   217,   217,   217,   215,
2246 >     315,   159,   214,   216,   117,   117,   214,   214,   217,   217,
2247 >     288,   217,   217,   217,   284,   217,   215,   276,   214,   217,
2248 >     217,   217,   215,   340,   159,   159,   117,   159,   159,   223,
2249 >     214,   117,   159,   117,   117,   117,   117,   117,   117,   133,
2250 >     134,   236,   237,   133,   134,   238,   239,   117,   117,    99,
2251 >     117,   117,   214,   214,   217,   355,   217,   215,   351,   214,
2252 >     217,   364,   215,   361,   117,   214,   214,   214,   214,   214,
2253 >     214,   214,   137,   138,   139,   140,   141,   222,   223,   214,
2254 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2255 >      99,    99,   223,    99,    99,    99,    99,   117,    99,    99,
2256 >     223,    99,   225,   225,   214,   117,   177,   178,   117,   159,
2257 >     217,   117,   117,   117,   117,    99,   117,   117,   117,   214,
2258 >     117,   117,   214,   214,   117,   117,   217,   214,   214,   214,
2259 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2260 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2261 >     214,   214,   214,   214,   214,   214,   214,    51,   165,   166,
2262 >     167,   168,   169,   171,   172,   174,   175,   176,   179,   181,
2263 >     182,   184,   186,   188,   189,   192,   198,   470,   471,   214,
2264 >      51,   165,   166,   167,   168,   169,   171,   172,   174,   175,
2265 >     176,   179,   181,   182,   184,   186,   188,   189,   192,   198,
2266 >     466,   467,   214,   214,   214,   214,   214,   214,   214,   214,
2267 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2268 >     214,   117,   159,   217,   117,    99,   117,   117,   117,   214,
2269 >     117,   217,   117,   214,   217,   117,   117,    99,   318,   319,
2270 >     214,   214,     1,    89,   150,   212,   265,   266,   267,   268,
2271 >     269,   214,   214,   117,   159,   217,   117,   117,   117,   217,
2272 >     117,   214,   117,   117,   117,   214,   214,   214,   214,   214,
2273 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2274 >     214,   218,   214,   218,   214,   214,   214,   214,   214,   117,
2275 >     217,   117,   214,   117,   217,   214,   214,   222,   222,   222,
2276 >     222,   222,   214,   214,   214,   214,   214,   214,   214,   214,
2277 >     214,   214,   214,     9,    10,    11,   224,   225,   214,   214,
2278 >     214,   214,   214,   214,   214,     8,   190,   380,   381,   214,
2279 >     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
2280 >     214,   122,   411,   412,   214,   218,   214,   218,   214,   214,
2281 >      13,    33,    43,    49,    65,    90,    98,   136,   153,   332,
2282 >     333,   214,   214,   214,   214,   214,   214,   122,   391,   392,
2283 >     214,    51,   185,   190,   312,   313,   214,   214,   163,   218,
2284 >     317,   214,   217,   270,   217,   215,   266,   214,   214,     4,
2285 >      25,    40,    47,    64,    87,    94,   106,   123,   124,   125,
2286 >     173,   182,   187,   193,   197,   199,   204,   210,   289,   290,
2287 >     214,   214,   214,    51,   165,   166,   167,   168,   169,   171,
2288 >     172,   174,   175,   176,   179,   181,   182,   184,   186,   188,
2289 >     189,   192,   198,   285,   286,   214,   214,   214,   214,   237,
2290 >     239,   214,    64,   135,   164,   173,   179,   193,   195,   196,
2291 >     204,   210,   356,   357,   214,   214,    64,   135,   164,   173,
2292 >     179,   193,   195,   196,   204,   210,   365,   366,   224,   224,
2293 >     224,   214,   218,   214,   218,   471,   467,   214,   218,   214,
2294 >     218,   214,   218,    99,   319,   214,   117,   217,   194,   225,
2295 >     214,   214,   218,   214,   218,   214,   218,   214,   218,   381,
2296 >     412,   333,   392,   313,   214,    40,    62,    64,   102,   172,
2297 >     173,   205,   271,   272,   214,   214,   290,   286,   357,   366,
2298 >     214,   218,   272
2299   };
2300  
2301   #define yyerrok         (yyerrstatus = 0)
# Line 2512 | Line 2325 | static const yytype_uint16 yystos[] =
2325  
2326   #define YYRECOVERING()  (!!yyerrstatus)
2327  
2328 < #define YYBACKUP(Token, Value)                                  \
2329 < do                                                              \
2330 <  if (yychar == YYEMPTY && yylen == 1)                          \
2331 <    {                                                           \
2332 <      yychar = (Token);                                         \
2333 <      yylval = (Value);                                         \
2334 <      YYPOPSTACK (1);                                           \
2335 <      goto yybackup;                                            \
2336 <    }                                                           \
2337 <  else                                                          \
2338 <    {                                                           \
2328 > #define YYBACKUP(Token, Value)                                  \
2329 > do                                                              \
2330 >  if (yychar == YYEMPTY)                                        \
2331 >    {                                                           \
2332 >      yychar = (Token);                                         \
2333 >      yylval = (Value);                                         \
2334 >      YYPOPSTACK (yylen);                                       \
2335 >      yystate = *yyssp;                                         \
2336 >      goto yybackup;                                            \
2337 >    }                                                           \
2338 >  else                                                          \
2339 >    {                                                           \
2340        yyerror (YY_("syntax error: cannot back up")); \
2341        YYERROR;                                                  \
2342      }                                                           \
# Line 2532 | Line 2346 | while (YYID (0))
2346   #define YYTERROR        1
2347   #define YYERRCODE       256
2348  
2535
2349   /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2350     If N is 0, then set CURRENT to the empty location which ends
2351     the previous symbol: RHS[0] (always defined).  */
2352  
2540 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2353   #ifndef YYLLOC_DEFAULT
2354 < # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2355 <    do                                                                  \
2356 <      if (YYID (N))                                                    \
2357 <        {                                                               \
2358 <          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2359 <          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2360 <          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2361 <          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2362 <        }                                                               \
2363 <      else                                                              \
2364 <        {                                                               \
2365 <          (Current).first_line   = (Current).last_line   =              \
2366 <            YYRHSLOC (Rhs, 0).last_line;                                \
2367 <          (Current).first_column = (Current).last_column =              \
2368 <            YYRHSLOC (Rhs, 0).last_column;                              \
2369 <        }                                                               \
2354 > # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2355 >    do                                                                  \
2356 >      if (YYID (N))                                                     \
2357 >        {                                                               \
2358 >          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2359 >          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2360 >          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2361 >          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2362 >        }                                                               \
2363 >      else                                                              \
2364 >        {                                                               \
2365 >          (Current).first_line   = (Current).last_line   =              \
2366 >            YYRHSLOC (Rhs, 0).last_line;                                \
2367 >          (Current).first_column = (Current).last_column =              \
2368 >            YYRHSLOC (Rhs, 0).last_column;                              \
2369 >        }                                                               \
2370      while (YYID (0))
2371   #endif
2372  
2373 + #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2374 +
2375 +
2376  
2377   /* This macro is provided for backward compatibility. */
2378  
# Line 2617 | Line 2432 | yy_symbol_value_print (yyoutput, yytype,
2432      YYSTYPE const * const yyvaluep;
2433   #endif
2434   {
2435 +  FILE *yyo = yyoutput;
2436 +  YYUSE (yyo);
2437    if (!yyvaluep)
2438      return;
2439   # ifdef YYPRINT
# Line 2868 | Line 2685 | static int
2685   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2686                  yytype_int16 *yyssp, int yytoken)
2687   {
2688 <  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
2688 >  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2689    YYSIZE_T yysize = yysize0;
2690    YYSIZE_T yysize1;
2691    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2692    /* Internationalized format string. */
2693 <  const char *yyformat = 0;
2693 >  const char *yyformat = YY_NULL;
2694    /* Arguments of yyformat. */
2695    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2696    /* Number of reported tokens (one for the "unexpected", one per
# Line 2933 | Line 2750 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2750                      break;
2751                    }
2752                  yyarg[yycount++] = yytname[yyx];
2753 <                yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2753 >                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2754                  if (! (yysize <= yysize1
2755                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2756                    return 2;
# Line 3025 | Line 2842 | yydestruct (yymsg, yytype, yyvaluep)
2842   }
2843  
2844  
3028 /* Prevent warnings from -Wmissing-prototypes.  */
3029 #ifdef YYPARSE_PARAM
3030 #if defined __STDC__ || defined __cplusplus
3031 int yyparse (void *YYPARSE_PARAM);
3032 #else
3033 int yyparse ();
3034 #endif
3035 #else /* ! YYPARSE_PARAM */
3036 #if defined __STDC__ || defined __cplusplus
3037 int yyparse (void);
3038 #else
3039 int yyparse ();
3040 #endif
3041 #endif /* ! YYPARSE_PARAM */
2845  
2846  
2847   /* The lookahead symbol.  */
2848   int yychar;
2849  
2850 +
2851 + #ifndef YYLVAL_INITIALIZE
2852 + # define YYLVAL_INITIALIZE()
2853 + #endif
2854 + #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2855 + # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2856 + # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2857 + #endif
2858 +
2859   /* The semantic value of the lookahead symbol.  */
2860   YYSTYPE yylval;
2861  
# Line 3085 | Line 2897 | yyparse ()
2897         `yyss': related to states.
2898         `yyvs': related to semantic values.
2899  
2900 <       Refer to the stacks thru separate pointers, to allow yyoverflow
2900 >       Refer to the stacks through separate pointers, to allow yyoverflow
2901         to reallocate them elsewhere.  */
2902  
2903      /* The state stack.  */
# Line 3103 | Line 2915 | yyparse ()
2915    int yyn;
2916    int yyresult;
2917    /* Lookahead token as an internal (translated) token number.  */
2918 <  int yytoken;
2918 >  int yytoken = 0;
2919    /* The variables used to return semantic value and location from the
2920       action routines.  */
2921    YYSTYPE yyval;
# Line 3121 | Line 2933 | yyparse ()
2933       Keep to zero when no symbol should be popped.  */
2934    int yylen = 0;
2935  
3124  yytoken = 0;
2936    yyss = yyssa;
2937    yyvs = yyvsa;
2938    yystacksize = YYINITDEPTH;
# Line 3140 | Line 2951 | yyparse ()
2951    yyssp = yyss;
2952    yyvsp = yyvs;
2953  
2954 +  YYLVAL_INITIALIZE ();
2955    goto yysetstate;
2956  
2957   /*------------------------------------------------------------.
# Line 3280 | Line 3092 | yybackup:
3092    yychar = YYEMPTY;
3093  
3094    yystate = yyn;
3095 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3096    *++yyvsp = yylval;
3097 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
3098  
3099    goto yynewstate;
3100  
# Line 3316 | Line 3130 | yyreduce:
3130    YY_REDUCE_PRINT (yyn);
3131    switch (yyn)
3132      {
3133 <        case 27:
3134 <
3135 < /* Line 1806 of yacc.c  */
3322 < #line 410 "ircd_parser.y"
3133 >        case 26:
3134 > /* Line 1813 of yacc.c  */
3135 > #line 357 "conf_parser.y"
3136      { (yyval.number) = 0; }
3137      break;
3138  
3139 <  case 29:
3140 <
3141 < /* Line 1806 of yacc.c  */
3329 < #line 412 "ircd_parser.y"
3139 >  case 28:
3140 > /* Line 1813 of yacc.c  */
3141 > #line 359 "conf_parser.y"
3142      {
3143                          (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3144                  }
3145      break;
3146  
3147 <  case 30:
3148 <
3149 < /* Line 1806 of yacc.c  */
3338 < #line 416 "ircd_parser.y"
3147 >  case 29:
3148 > /* Line 1813 of yacc.c  */
3149 > #line 363 "conf_parser.y"
3150      {
3151                          (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3152                  }
3153      break;
3154  
3155 <  case 31:
3156 <
3157 < /* Line 1806 of yacc.c  */
3347 < #line 420 "ircd_parser.y"
3155 >  case 30:
3156 > /* Line 1813 of yacc.c  */
3157 > #line 367 "conf_parser.y"
3158      {
3159                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3160                  }
3161      break;
3162  
3163 <  case 32:
3164 <
3165 < /* Line 1806 of yacc.c  */
3356 < #line 424 "ircd_parser.y"
3163 >  case 31:
3164 > /* Line 1813 of yacc.c  */
3165 > #line 371 "conf_parser.y"
3166      {
3167                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3168                  }
3169      break;
3170  
3171 <  case 33:
3172 <
3173 < /* Line 1806 of yacc.c  */
3365 < #line 428 "ircd_parser.y"
3171 >  case 32:
3172 > /* Line 1813 of yacc.c  */
3173 > #line 375 "conf_parser.y"
3174      {
3175                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3176                  }
3177      break;
3178  
3179 <  case 34:
3180 <
3181 < /* Line 1806 of yacc.c  */
3374 < #line 432 "ircd_parser.y"
3179 >  case 33:
3180 > /* Line 1813 of yacc.c  */
3181 > #line 379 "conf_parser.y"
3182      {
3183                          (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3184                  }
3185      break;
3186  
3187 <  case 35:
3188 <
3189 < /* Line 1806 of yacc.c  */
3383 < #line 437 "ircd_parser.y"
3187 >  case 34:
3188 > /* Line 1813 of yacc.c  */
3189 > #line 384 "conf_parser.y"
3190      { (yyval.number) = 0; }
3191      break;
3192  
3193 <  case 37:
3194 <
3195 < /* Line 1806 of yacc.c  */
3390 < #line 438 "ircd_parser.y"
3193 >  case 36:
3194 > /* Line 1813 of yacc.c  */
3195 > #line 385 "conf_parser.y"
3196      { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3197      break;
3198  
3199 <  case 38:
3200 <
3201 < /* Line 1806 of yacc.c  */
3397 < #line 439 "ircd_parser.y"
3199 >  case 37:
3200 > /* Line 1813 of yacc.c  */
3201 > #line 386 "conf_parser.y"
3202      { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3203      break;
3204  
3205 <  case 39:
3206 <
3207 < /* Line 1806 of yacc.c  */
3404 < #line 440 "ircd_parser.y"
3205 >  case 38:
3206 > /* Line 1813 of yacc.c  */
3207 > #line 387 "conf_parser.y"
3208      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3209      break;
3210  
3211 <  case 40:
3212 <
3213 < /* Line 1806 of yacc.c  */
3411 < #line 441 "ircd_parser.y"
3211 >  case 39:
3212 > /* Line 1813 of yacc.c  */
3213 > #line 388 "conf_parser.y"
3214      { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3215      break;
3216  
3217 <  case 47:
3218 <
3219 < /* Line 1806 of yacc.c  */
3418 < #line 455 "ircd_parser.y"
3217 >  case 46:
3218 > /* Line 1813 of yacc.c  */
3219 > #line 402 "conf_parser.y"
3220      {
3221    if (conf_parser_ctx.pass == 2)
3222      add_conf_module(libio_basename(yylval.string));
3223   }
3224      break;
3225  
3226 <  case 48:
3227 <
3228 < /* Line 1806 of yacc.c  */
3428 < #line 461 "ircd_parser.y"
3226 >  case 47:
3227 > /* Line 1813 of yacc.c  */
3228 > #line 408 "conf_parser.y"
3229      {
3230    if (conf_parser_ctx.pass == 2)
3231      mod_add_path(yylval.string);
3232   }
3233      break;
3234  
3235 <  case 65:
3236 <
3237 < /* Line 1806 of yacc.c  */
3438 < #line 481 "ircd_parser.y"
3235 >  case 71:
3236 > /* Line 1813 of yacc.c  */
3237 > #line 433 "conf_parser.y"
3238      {
3239   #ifdef HAVE_LIBCRYPTO
3240 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3241 <    ServerInfo.tls_version = 0;
3240 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3241 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3242   #endif
3243   }
3244      break;
3245  
3246 <  case 66:
3247 <
3248 < /* Line 1806 of yacc.c  */
3450 < #line 487 "ircd_parser.y"
3246 >  case 72:
3247 > /* Line 1813 of yacc.c  */
3248 > #line 439 "conf_parser.y"
3249      {
3250   #ifdef HAVE_LIBCRYPTO
3251 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3252 <  {
3455 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_SSLV3))
3456 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3457 <    if (!(ServerInfo.tls_version & CONF_SERVER_INFO_TLS_VERSION_TLSV1))
3458 <      SSL_CTX_set_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3459 <  }
3251 >  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3252 >    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3253   #endif
3254   }
3255      break;
3256  
3257 <  case 69:
3258 <
3259 < /* Line 1806 of yacc.c  */
3467 < #line 501 "ircd_parser.y"
3257 >  case 75:
3258 > /* Line 1813 of yacc.c  */
3259 > #line 448 "conf_parser.y"
3260      {
3261   #ifdef HAVE_LIBCRYPTO
3262 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3263 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_SSLV3;
3262 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3263 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3264   #endif
3265   }
3266      break;
3267  
3268 <  case 70:
3269 <
3270 < /* Line 1806 of yacc.c  */
3479 < #line 507 "ircd_parser.y"
3268 >  case 76:
3269 > /* Line 1813 of yacc.c  */
3270 > #line 454 "conf_parser.y"
3271      {
3272   #ifdef HAVE_LIBCRYPTO
3273 <  if (conf_parser_ctx.boot && conf_parser_ctx.pass == 2)
3274 <    ServerInfo.tls_version |= CONF_SERVER_INFO_TLS_VERSION_TLSV1;
3273 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3274 >    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3275   #endif
3276   }
3277      break;
3278  
3279 <  case 71:
3280 <
3281 < /* Line 1806 of yacc.c  */
3491 < #line 515 "ircd_parser.y"
3279 >  case 77:
3280 > /* Line 1813 of yacc.c  */
3281 > #line 462 "conf_parser.y"
3282      {
3283   #ifdef HAVE_LIBCRYPTO
3284    if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
# Line 3500 | Line 3290 | yyreduce:
3290      }
3291  
3292      if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3293 +                                     SSL_FILETYPE_PEM) <= 0 ||
3294 +        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3295                                       SSL_FILETYPE_PEM) <= 0)
3296      {
3297        yyerror(ERR_lib_error_string(ERR_get_error()));
# Line 3507 | Line 3299 | yyreduce:
3299      }
3300  
3301      if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3302 +                                    SSL_FILETYPE_PEM) <= 0 ||
3303 +        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3304                                      SSL_FILETYPE_PEM) <= 0)
3305      {
3306        yyerror(ERR_lib_error_string(ERR_get_error()));
3307        break;
3308      }
3309  
3310 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx))
3310 >    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3311 >        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3312      {
3313        yyerror(ERR_lib_error_string(ERR_get_error()));
3314        break;
# Line 3523 | Line 3318 | yyreduce:
3318   }
3319      break;
3320  
3321 <  case 72:
3322 <
3323 < /* Line 1806 of yacc.c  */
3529 < #line 549 "ircd_parser.y"
3321 >  case 78:
3322 > /* Line 1813 of yacc.c  */
3323 > #line 501 "conf_parser.y"
3324      {
3325   #ifdef HAVE_LIBCRYPTO
3326    if (conf_parser_ctx.pass == 1)
# Line 3553 | Line 3347 | yyreduce:
3347        break;
3348      }
3349  
3350 <    ServerInfo.rsa_private_key = (RSA *)PEM_read_bio_RSAPrivateKey(file, NULL,
3557 <      0, NULL);
3350 >    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3351  
3352      BIO_set_close(file, BIO_CLOSE);
3353      BIO_free(file);
# Line 3587 | Line 3380 | yyreduce:
3380   }
3381      break;
3382  
3383 <  case 73:
3383 >  case 79:
3384 > /* Line 1813 of yacc.c  */
3385 > #line 560 "conf_parser.y"
3386 >    {
3387 > /* TBD - XXX: error reporting */
3388 > #ifdef HAVE_LIBCRYPTO
3389 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3390 >  {
3391 >    BIO *file = BIO_new_file(yylval.string, "r");
3392 >
3393 >    if (file)
3394 >    {
3395 >      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3396 >
3397 >      BIO_free(file);
3398 >
3399 >      if (dh)
3400 >      {
3401 >        if (DH_size(dh) < 128)
3402 >          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3403 >        else
3404 >          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3405 >
3406 >        DH_free(dh);
3407 >      }
3408 >    }
3409 >  }
3410 > #endif
3411 > }
3412 >    break;
3413 >
3414 >  case 80:
3415 > /* Line 1813 of yacc.c  */
3416 > #line 588 "conf_parser.y"
3417 >    {
3418 > #ifdef HAVE_LIBCRYPTO
3419 >  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3420 >    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3421 > #endif
3422 > }
3423 >    break;
3424  
3425 < /* Line 1806 of yacc.c  */
3426 < #line 609 "ircd_parser.y"
3425 >  case 81:
3426 > /* Line 1813 of yacc.c  */
3427 > #line 596 "conf_parser.y"
3428      {
3429    /* this isn't rehashable */
3430    if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
# Line 3606 | Line 3440 | yyreduce:
3440   }
3441      break;
3442  
3443 <  case 74:
3444 <
3445 < /* Line 1806 of yacc.c  */
3612 < #line 624 "ircd_parser.y"
3443 >  case 82:
3444 > /* Line 1813 of yacc.c  */
3445 > #line 611 "conf_parser.y"
3446      {
3447    /* this isn't rehashable */
3448    if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
# Line 3625 | Line 3458 | yyreduce:
3458   }
3459      break;
3460  
3461 <  case 75:
3462 <
3463 < /* Line 1806 of yacc.c  */
3631 < #line 639 "ircd_parser.y"
3461 >  case 83:
3462 > /* Line 1813 of yacc.c  */
3463 > #line 626 "conf_parser.y"
3464      {
3465    if (conf_parser_ctx.pass == 2)
3466    {
# Line 3638 | Line 3470 | yyreduce:
3470   }
3471      break;
3472  
3473 <  case 76:
3474 <
3475 < /* Line 1806 of yacc.c  */
3644 < #line 648 "ircd_parser.y"
3473 >  case 84:
3474 > /* Line 1813 of yacc.c  */
3475 > #line 635 "conf_parser.y"
3476      {
3477    if (conf_parser_ctx.pass == 2)
3478    {
# Line 3656 | Line 3487 | yyreduce:
3487   }
3488      break;
3489  
3490 <  case 77:
3491 <
3492 < /* Line 1806 of yacc.c  */
3662 < #line 662 "ircd_parser.y"
3490 >  case 85:
3491 > /* Line 1813 of yacc.c  */
3492 > #line 649 "conf_parser.y"
3493      {
3494    if (conf_parser_ctx.pass == 2)
3495    {
# Line 3669 | Line 3499 | yyreduce:
3499   }
3500      break;
3501  
3502 <  case 78:
3503 <
3504 < /* Line 1806 of yacc.c  */
3675 < #line 671 "ircd_parser.y"
3502 >  case 86:
3503 > /* Line 1813 of yacc.c  */
3504 > #line 658 "conf_parser.y"
3505      {
3506    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3507    {
# Line 3701 | Line 3530 | yyreduce:
3530   }
3531      break;
3532  
3533 <  case 79:
3534 <
3535 < /* Line 1806 of yacc.c  */
3707 < #line 699 "ircd_parser.y"
3533 >  case 87:
3534 > /* Line 1813 of yacc.c  */
3535 > #line 686 "conf_parser.y"
3536      {
3537   #ifdef IPV6
3538    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
# Line 3735 | Line 3563 | yyreduce:
3563   }
3564      break;
3565  
3566 <  case 80:
3567 <
3568 < /* Line 1806 of yacc.c  */
3741 < #line 729 "ircd_parser.y"
3566 >  case 88:
3567 > /* Line 1813 of yacc.c  */
3568 > #line 716 "conf_parser.y"
3569      {
3570    if (conf_parser_ctx.pass == 2)
3571    {
# Line 3762 | Line 3589 | yyreduce:
3589   }
3590      break;
3591  
3592 <  case 81:
3593 <
3594 < /* Line 1806 of yacc.c  */
3768 < #line 752 "ircd_parser.y"
3592 >  case 89:
3593 > /* Line 1813 of yacc.c  */
3594 > #line 739 "conf_parser.y"
3595      {
3596    if (conf_parser_ctx.pass == 2)
3597      ServerInfo.hub = yylval.number;
3598   }
3599      break;
3600  
3601 <  case 89:
3602 <
3603 < /* Line 1806 of yacc.c  */
3778 < #line 767 "ircd_parser.y"
3601 >  case 97:
3602 > /* Line 1813 of yacc.c  */
3603 > #line 754 "conf_parser.y"
3604      {
3605    if (conf_parser_ctx.pass == 2)
3606    {
# Line 3785 | Line 3610 | yyreduce:
3610   }
3611      break;
3612  
3613 <  case 90:
3614 <
3615 < /* Line 1806 of yacc.c  */
3791 < #line 776 "ircd_parser.y"
3613 >  case 98:
3614 > /* Line 1813 of yacc.c  */
3615 > #line 763 "conf_parser.y"
3616      {
3617    if (conf_parser_ctx.pass == 2)
3618    {
# Line 3798 | Line 3622 | yyreduce:
3622   }
3623      break;
3624  
3625 <  case 91:
3626 <
3627 < /* Line 1806 of yacc.c  */
3804 < #line 785 "ircd_parser.y"
3625 >  case 99:
3626 > /* Line 1813 of yacc.c  */
3627 > #line 772 "conf_parser.y"
3628      {
3629    if (conf_parser_ctx.pass == 2)
3630    {
# Line 3811 | Line 3634 | yyreduce:
3634   }
3635      break;
3636  
3637 <  case 99:
3638 <
3639 < /* Line 1806 of yacc.c  */
3817 < #line 803 "ircd_parser.y"
3637 >  case 106:
3638 > /* Line 1813 of yacc.c  */
3639 > #line 790 "conf_parser.y"
3640      {
3641    if (conf_parser_ctx.pass == 2)
3642      ConfigLoggingEntry.use_logging = yylval.number;
3643   }
3644      break;
3645  
3646 <  case 100:
3647 <
3648 < /* Line 1806 of yacc.c  */
3827 < #line 809 "ircd_parser.y"
3828 <    {
3829 <  if (conf_parser_ctx.pass == 2)
3830 <    ConfigLoggingEntry.timestamp = yylval.number;
3831 < }
3832 <    break;
3833 <
3834 <  case 101:
3835 <
3836 < /* Line 1806 of yacc.c  */
3837 < #line 815 "ircd_parser.y"
3646 >  case 107:
3647 > /* Line 1813 of yacc.c  */
3648 > #line 796 "conf_parser.y"
3649      {
3650    lfile[0] = '\0';
3651    ltype = 0;
# Line 3842 | Line 3653 | yyreduce:
3653   }
3654      break;
3655  
3656 <  case 102:
3657 <
3658 < /* Line 1806 of yacc.c  */
3848 < #line 820 "ircd_parser.y"
3656 >  case 108:
3657 > /* Line 1813 of yacc.c  */
3658 > #line 801 "conf_parser.y"
3659      {
3660    if (conf_parser_ctx.pass == 2 && ltype > 0)
3661      log_add_file(ltype, lsize, lfile);
3662   }
3663      break;
3664  
3665 <  case 109:
3666 <
3667 < /* Line 1806 of yacc.c  */
3858 < #line 832 "ircd_parser.y"
3665 >  case 115:
3666 > /* Line 1813 of yacc.c  */
3667 > #line 813 "conf_parser.y"
3668      {
3669    strlcpy(lfile, yylval.string, sizeof(lfile));
3670   }
3671      break;
3672  
3673 <  case 110:
3674 <
3675 < /* Line 1806 of yacc.c  */
3867 < #line 837 "ircd_parser.y"
3673 >  case 116:
3674 > /* Line 1813 of yacc.c  */
3675 > #line 818 "conf_parser.y"
3676      {
3677    lsize = (yyvsp[(3) - (4)].number);
3678   }
3679      break;
3680  
3681 <  case 111:
3682 <
3683 < /* Line 1806 of yacc.c  */
3876 < #line 840 "ircd_parser.y"
3681 >  case 117:
3682 > /* Line 1813 of yacc.c  */
3683 > #line 821 "conf_parser.y"
3684      {
3685    lsize = 0;
3686   }
3687      break;
3688  
3689 <  case 112:
3690 <
3691 < /* Line 1806 of yacc.c  */
3885 < #line 845 "ircd_parser.y"
3689 >  case 118:
3690 > /* Line 1813 of yacc.c  */
3691 > #line 826 "conf_parser.y"
3692      {
3693    if (conf_parser_ctx.pass == 2)
3694      ltype = 0;
3695   }
3696      break;
3697  
3698 <  case 116:
3699 <
3700 < /* Line 1806 of yacc.c  */
3895 < #line 852 "ircd_parser.y"
3698 >  case 122:
3699 > /* Line 1813 of yacc.c  */
3700 > #line 833 "conf_parser.y"
3701      {
3702    if (conf_parser_ctx.pass == 2)
3703      ltype = LOG_TYPE_USER;
3704   }
3705      break;
3706  
3707 <  case 117:
3708 <
3709 < /* Line 1806 of yacc.c  */
3905 < #line 856 "ircd_parser.y"
3707 >  case 123:
3708 > /* Line 1813 of yacc.c  */
3709 > #line 837 "conf_parser.y"
3710      {
3711    if (conf_parser_ctx.pass == 2)
3712      ltype = LOG_TYPE_OPER;
3713   }
3714      break;
3715  
3716 <  case 118:
3717 <
3718 < /* Line 1806 of yacc.c  */
3915 < #line 860 "ircd_parser.y"
3716 >  case 124:
3717 > /* Line 1813 of yacc.c  */
3718 > #line 841 "conf_parser.y"
3719      {
3720    if (conf_parser_ctx.pass == 2)
3721      ltype = LOG_TYPE_GLINE;
3722   }
3723      break;
3724  
3725 <  case 119:
3726 <
3727 < /* Line 1806 of yacc.c  */
3925 < #line 864 "ircd_parser.y"
3725 >  case 125:
3726 > /* Line 1813 of yacc.c  */
3727 > #line 845 "conf_parser.y"
3728      {
3729    if (conf_parser_ctx.pass == 2)
3730      ltype = LOG_TYPE_DLINE;
3731   }
3732      break;
3733  
3734 <  case 120:
3735 <
3736 < /* Line 1806 of yacc.c  */
3935 < #line 868 "ircd_parser.y"
3734 >  case 126:
3735 > /* Line 1813 of yacc.c  */
3736 > #line 849 "conf_parser.y"
3737      {
3738    if (conf_parser_ctx.pass == 2)
3739      ltype = LOG_TYPE_KLINE;
3740   }
3741      break;
3742  
3743 <  case 121:
3744 <
3745 < /* Line 1806 of yacc.c  */
3945 < #line 872 "ircd_parser.y"
3743 >  case 127:
3744 > /* Line 1813 of yacc.c  */
3745 > #line 853 "conf_parser.y"
3746      {
3747    if (conf_parser_ctx.pass == 2)
3748      ltype = LOG_TYPE_KILL;
3749   }
3750      break;
3751  
3752 <  case 122:
3753 <
3754 < /* Line 1806 of yacc.c  */
3955 < #line 876 "ircd_parser.y"
3752 >  case 128:
3753 > /* Line 1813 of yacc.c  */
3754 > #line 857 "conf_parser.y"
3755      {
3756    if (conf_parser_ctx.pass == 2)
3757      ltype = LOG_TYPE_DEBUG;
3758   }
3759      break;
3760  
3761 <  case 123:
3762 <
3763 < /* Line 1806 of yacc.c  */
3965 < #line 886 "ircd_parser.y"
3761 >  case 129:
3762 > /* Line 1813 of yacc.c  */
3763 > #line 867 "conf_parser.y"
3764      {
3765    if (conf_parser_ctx.pass == 2)
3766    {
3767 <    yy_conf = make_conf_item(OPER_TYPE);
3768 <    yy_aconf = map_to_conf(yy_conf);
3971 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3767 >    yy_conf = conf_make(CONF_OPER);
3768 >    SetConfEncrypted(yy_conf); /* Yes, the default is encrypted */
3769    }
3770    else
3771    {
# Line 3978 | Line 3775 | yyreduce:
3775   }
3776      break;
3777  
3778 <  case 124:
3779 <
3780 < /* Line 1806 of yacc.c  */
3984 < #line 899 "ircd_parser.y"
3778 >  case 130:
3779 > /* Line 1813 of yacc.c  */
3780 > #line 879 "conf_parser.y"
3781      {
3782    if (conf_parser_ctx.pass == 2)
3783    {
# Line 3997 | Line 3793 | yyreduce:
3793  
3794      DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3795      {
3796 <      struct AccessItem *new_aconf;
4001 <      struct ConfItem *new_conf;
3796 >      struct MaskItem *new_conf;
3797        yy_tmp = ptr->data;
3798  
3799 <      new_conf = make_conf_item(OPER_TYPE);
3800 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
4006 <
4007 <      new_aconf->flags = yy_aconf->flags;
3799 >      new_conf = conf_make(CONF_OPER);
3800 >      new_conf->flags = yy_conf->flags;
3801  
3802        if (yy_conf->name != NULL)
3803          DupString(new_conf->name, yy_conf->name);
3804        if (yy_tmp->user != NULL)
3805 <        DupString(new_aconf->user, yy_tmp->user);
3805 >        DupString(new_conf->user, yy_tmp->user);
3806        else
3807 <        DupString(new_aconf->user, "*");
3807 >        DupString(new_conf->user, "*");
3808        if (yy_tmp->host != NULL)
3809 <        DupString(new_aconf->host, yy_tmp->host);
3809 >        DupString(new_conf->host, yy_tmp->host);
3810        else
3811 <        DupString(new_aconf->host, "*");
3811 >        DupString(new_conf->host, "*");
3812  
3813 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->ipnum,
3814 <                                     &new_aconf->bits);
3813 >      new_conf->htype = parse_netmask(new_conf->host, &new_conf->addr,
3814 >                                     &new_conf->bits);
3815  
3816        conf_add_class_to_conf(new_conf, class_name);
3817 <      if (yy_aconf->passwd != NULL)
3818 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3817 >      if (yy_conf->passwd != NULL)
3818 >        DupString(new_conf->passwd, yy_conf->passwd);
3819  
3820 <      new_aconf->port = yy_aconf->port;
3820 >      new_conf->port = yy_conf->port;
3821   #ifdef HAVE_LIBCRYPTO
3822 <      if (yy_aconf->rsa_public_key_file != NULL)
3822 >      if (yy_conf->rsa_public_key_file != NULL)
3823        {
3824          BIO *file;
3825  
3826 <        DupString(new_aconf->rsa_public_key_file,
3827 <                  yy_aconf->rsa_public_key_file);
3826 >        DupString(new_conf->rsa_public_key_file,
3827 >                  yy_conf->rsa_public_key_file);
3828  
3829 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3830 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
3829 >        file = BIO_new_file(yy_conf->rsa_public_key_file, "r");
3830 >        new_conf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3831                                                             NULL, 0, NULL);
3832          BIO_set_close(file, BIO_CLOSE);
3833          BIO_free(file);
# Line 4042 | Line 3835 | yyreduce:
3835   #endif
3836  
3837   #ifdef HAVE_LIBCRYPTO
3838 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3838 >      if (yy_tmp->name && (yy_tmp->passwd || yy_conf->rsa_public_key)
3839            && yy_tmp->host)
3840   #else
3841        if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
# Line 4058 | Line 3851 | yyreduce:
3851      }
3852  
3853      yy_conf = NULL;
4061    yy_aconf = NULL;
4062
3854  
3855      MyFree(class_name);
3856      class_name = NULL;
# Line 4067 | Line 3858 | yyreduce:
3858   }
3859      break;
3860  
3861 <  case 136:
3862 <
3863 < /* Line 1806 of yacc.c  */
4073 < #line 989 "ircd_parser.y"
3861 >  case 142:
3862 > /* Line 1813 of yacc.c  */
3863 > #line 964 "conf_parser.y"
3864      {
3865    if (conf_parser_ctx.pass == 2)
3866    {
4077    if (strlen(yylval.string) > OPERNICKLEN)
4078      yylval.string[OPERNICKLEN] = '\0';
4079
3867      MyFree(yy_conf->name);
3868      DupString(yy_conf->name, yylval.string);
3869    }
3870   }
3871      break;
3872  
3873 <  case 137:
3874 <
3875 < /* Line 1806 of yacc.c  */
4089 < #line 1001 "ircd_parser.y"
3873 >  case 143:
3874 > /* Line 1813 of yacc.c  */
3875 > #line 973 "conf_parser.y"
3876      {
3877    if (conf_parser_ctx.pass == 2)
3878    {
# Line 4103 | Line 3889 | yyreduce:
3889  
3890      split_nuh(&nuh);
3891  
3892 <    if (yy_aconf->user == NULL)
3892 >    if (yy_conf->user == NULL)
3893      {
3894 <      DupString(yy_aconf->user, userbuf);
3895 <      DupString(yy_aconf->host, hostbuf);
3894 >      DupString(yy_conf->user, userbuf);
3895 >      DupString(yy_conf->host, hostbuf);
3896  
3897 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->ipnum,
3898 <                                    &yy_aconf->bits);
3897 >      yy_conf->htype = parse_netmask(yy_conf->host, &yy_conf->addr,
3898 >                                    &yy_conf->bits);
3899      }
3900      else
3901      {
# Line 4124 | Line 3910 | yyreduce:
3910   }
3911      break;
3912  
3913 <  case 138:
3914 <
3915 < /* Line 1806 of yacc.c  */
4130 < #line 1038 "ircd_parser.y"
3913 >  case 144:
3914 > /* Line 1813 of yacc.c  */
3915 > #line 1010 "conf_parser.y"
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918    {
3919 <    if (yy_aconf->passwd != NULL)
3920 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3919 >    if (yy_conf->passwd != NULL)
3920 >      memset(yy_conf->passwd, 0, strlen(yy_conf->passwd));
3921  
3922 <    MyFree(yy_aconf->passwd);
3923 <    DupString(yy_aconf->passwd, yylval.string);
3922 >    MyFree(yy_conf->passwd);
3923 >    DupString(yy_conf->passwd, yylval.string);
3924    }
3925   }
3926      break;
3927  
3928 <  case 139:
3929 <
3930 < /* Line 1806 of yacc.c  */
4146 < #line 1050 "ircd_parser.y"
3928 >  case 145:
3929 > /* Line 1813 of yacc.c  */
3930 > #line 1022 "conf_parser.y"
3931      {
3932    if (conf_parser_ctx.pass == 2)
3933    {
3934      if (yylval.number)
3935 <      SetConfEncrypted(yy_aconf);
3935 >      SetConfEncrypted(yy_conf);
3936      else
3937 <      ClearConfEncrypted(yy_aconf);
3937 >      ClearConfEncrypted(yy_conf);
3938    }
3939   }
3940      break;
3941  
3942 <  case 140:
3943 <
3944 < /* Line 1806 of yacc.c  */
4161 < #line 1061 "ircd_parser.y"
3942 >  case 146:
3943 > /* Line 1813 of yacc.c  */
3944 > #line 1033 "conf_parser.y"
3945      {
3946   #ifdef HAVE_LIBCRYPTO
3947    if (conf_parser_ctx.pass == 2)
3948    {
3949      BIO *file;
3950  
3951 <    if (yy_aconf->rsa_public_key != NULL)
3951 >    if (yy_conf->rsa_public_key != NULL)
3952      {
3953 <      RSA_free(yy_aconf->rsa_public_key);
3954 <      yy_aconf->rsa_public_key = NULL;
3953 >      RSA_free(yy_conf->rsa_public_key);
3954 >      yy_conf->rsa_public_key = NULL;
3955      }
3956  
3957 <    if (yy_aconf->rsa_public_key_file != NULL)
3957 >    if (yy_conf->rsa_public_key_file != NULL)
3958      {
3959 <      MyFree(yy_aconf->rsa_public_key_file);
3960 <      yy_aconf->rsa_public_key_file = NULL;
3959 >      MyFree(yy_conf->rsa_public_key_file);
3960 >      yy_conf->rsa_public_key_file = NULL;
3961      }
3962  
3963 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3963 >    DupString(yy_conf->rsa_public_key_file, yylval.string);
3964      file = BIO_new_file(yylval.string, "r");
3965  
3966      if (file == NULL)
# Line 4186 | Line 3969 | yyreduce:
3969        break;
3970      }
3971  
3972 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3972 >    yy_conf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3973  
3974 <    if (yy_aconf->rsa_public_key == NULL)
3974 >    if (yy_conf->rsa_public_key == NULL)
3975      {
3976        yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3977        break;
# Line 4201 | Line 3984 | yyreduce:
3984   }
3985      break;
3986  
3987 <  case 141:
3988 <
3989 < /* Line 1806 of yacc.c  */
4207 < #line 1103 "ircd_parser.y"
3987 >  case 147:
3988 > /* Line 1813 of yacc.c  */
3989 > #line 1075 "conf_parser.y"
3990      {
3991    if (conf_parser_ctx.pass == 2)
3992    {
# Line 4214 | Line 3996 | yyreduce:
3996   }
3997      break;
3998  
3999 <  case 142:
4000 <
4001 < /* Line 1806 of yacc.c  */
4220 < #line 1112 "ircd_parser.y"
3999 >  case 148:
4000 > /* Line 1813 of yacc.c  */
4001 > #line 1084 "conf_parser.y"
4002      {
4003    if (conf_parser_ctx.pass == 2)
4004 <    yy_aconf->modes = 0;
4004 >    yy_conf->modes = 0;
4005   }
4006      break;
4007  
4008 <  case 146:
4009 <
4010 < /* Line 1806 of yacc.c  */
4230 < #line 1119 "ircd_parser.y"
4008 >  case 152:
4009 > /* Line 1813 of yacc.c  */
4010 > #line 1091 "conf_parser.y"
4011      {
4012    if (conf_parser_ctx.pass == 2)
4013 <    yy_aconf->modes |= UMODE_BOTS;
4013 >    yy_conf->modes |= UMODE_BOTS;
4014   }
4015      break;
4016  
4017 <  case 147:
4018 <
4019 < /* Line 1806 of yacc.c  */
4240 < #line 1123 "ircd_parser.y"
4017 >  case 153:
4018 > /* Line 1813 of yacc.c  */
4019 > #line 1095 "conf_parser.y"
4020      {
4021    if (conf_parser_ctx.pass == 2)
4022 <    yy_aconf->modes |= UMODE_CCONN;
4022 >    yy_conf->modes |= UMODE_CCONN;
4023   }
4024      break;
4025  
4026 <  case 148:
4027 <
4028 < /* Line 1806 of yacc.c  */
4250 < #line 1127 "ircd_parser.y"
4026 >  case 154:
4027 > /* Line 1813 of yacc.c  */
4028 > #line 1099 "conf_parser.y"
4029      {
4030    if (conf_parser_ctx.pass == 2)
4031 <    yy_aconf->modes |= UMODE_CCONN_FULL;
4031 >    yy_conf->modes |= UMODE_CCONN_FULL;
4032   }
4033      break;
4034  
4035 <  case 149:
4036 <
4037 < /* Line 1806 of yacc.c  */
4260 < #line 1131 "ircd_parser.y"
4035 >  case 155:
4036 > /* Line 1813 of yacc.c  */
4037 > #line 1103 "conf_parser.y"
4038      {
4039    if (conf_parser_ctx.pass == 2)
4040 <    yy_aconf->modes |= UMODE_DEAF;
4040 >    yy_conf->modes |= UMODE_DEAF;
4041   }
4042      break;
4043  
4044 <  case 150:
4045 <
4046 < /* Line 1806 of yacc.c  */
4270 < #line 1135 "ircd_parser.y"
4044 >  case 156:
4045 > /* Line 1813 of yacc.c  */
4046 > #line 1107 "conf_parser.y"
4047      {
4048    if (conf_parser_ctx.pass == 2)
4049 <    yy_aconf->modes |= UMODE_DEBUG;
4049 >    yy_conf->modes |= UMODE_DEBUG;
4050   }
4051      break;
4052  
4053 <  case 151:
4054 <
4055 < /* Line 1806 of yacc.c  */
4280 < #line 1139 "ircd_parser.y"
4053 >  case 157:
4054 > /* Line 1813 of yacc.c  */
4055 > #line 1111 "conf_parser.y"
4056      {
4057    if (conf_parser_ctx.pass == 2)
4058 <    yy_aconf->modes |= UMODE_FULL;
4058 >    yy_conf->modes |= UMODE_FULL;
4059   }
4060      break;
4061  
4062 <  case 152:
4063 <
4064 < /* Line 1806 of yacc.c  */
4290 < #line 1143 "ircd_parser.y"
4062 >  case 158:
4063 > /* Line 1813 of yacc.c  */
4064 > #line 1115 "conf_parser.y"
4065      {
4066    if (conf_parser_ctx.pass == 2)
4067 <    yy_aconf->modes |= UMODE_HIDDEN;
4067 >    yy_conf->modes |= UMODE_HIDDEN;
4068   }
4069      break;
4070  
4071 <  case 153:
4072 <
4073 < /* Line 1806 of yacc.c  */
4300 < #line 1147 "ircd_parser.y"
4071 >  case 159:
4072 > /* Line 1813 of yacc.c  */
4073 > #line 1119 "conf_parser.y"
4074      {
4075    if (conf_parser_ctx.pass == 2)
4076 <    yy_aconf->modes |= UMODE_SKILL;
4076 >    yy_conf->modes |= UMODE_SKILL;
4077   }
4078      break;
4079  
4080 <  case 154:
4081 <
4082 < /* Line 1806 of yacc.c  */
4310 < #line 1151 "ircd_parser.y"
4080 >  case 160:
4081 > /* Line 1813 of yacc.c  */
4082 > #line 1123 "conf_parser.y"
4083      {
4084    if (conf_parser_ctx.pass == 2)
4085 <    yy_aconf->modes |= UMODE_NCHANGE;
4085 >    yy_conf->modes |= UMODE_NCHANGE;
4086   }
4087      break;
4088  
4089 <  case 155:
4090 <
4091 < /* Line 1806 of yacc.c  */
4320 < #line 1155 "ircd_parser.y"
4089 >  case 161:
4090 > /* Line 1813 of yacc.c  */
4091 > #line 1127 "conf_parser.y"
4092      {
4093    if (conf_parser_ctx.pass == 2)
4094 <    yy_aconf->modes |= UMODE_REJ;
4094 >    yy_conf->modes |= UMODE_REJ;
4095   }
4096      break;
4097  
4098 <  case 156:
4099 <
4100 < /* Line 1806 of yacc.c  */
4330 < #line 1159 "ircd_parser.y"
4098 >  case 162:
4099 > /* Line 1813 of yacc.c  */
4100 > #line 1131 "conf_parser.y"
4101      {
4102    if (conf_parser_ctx.pass == 2)
4103 <    yy_aconf->modes |= UMODE_UNAUTH;
4103 >    yy_conf->modes |= UMODE_UNAUTH;
4104   }
4105      break;
4106  
4107 <  case 157:
4108 <
4109 < /* Line 1806 of yacc.c  */
4340 < #line 1163 "ircd_parser.y"
4107 >  case 163:
4108 > /* Line 1813 of yacc.c  */
4109 > #line 1135 "conf_parser.y"
4110      {
4111    if (conf_parser_ctx.pass == 2)
4112 <    yy_aconf->modes |= UMODE_SPY;
4112 >    yy_conf->modes |= UMODE_SPY;
4113   }
4114      break;
4115  
4116 <  case 158:
4117 <
4118 < /* Line 1806 of yacc.c  */
4350 < #line 1167 "ircd_parser.y"
4116 >  case 164:
4117 > /* Line 1813 of yacc.c  */
4118 > #line 1139 "conf_parser.y"
4119      {
4120    if (conf_parser_ctx.pass == 2)
4121 <    yy_aconf->modes |= UMODE_EXTERNAL;
4121 >    yy_conf->modes |= UMODE_EXTERNAL;
4122   }
4123      break;
4124  
4125 <  case 159:
4126 <
4127 < /* Line 1806 of yacc.c  */
4360 < #line 1171 "ircd_parser.y"
4125 >  case 165:
4126 > /* Line 1813 of yacc.c  */
4127 > #line 1143 "conf_parser.y"
4128      {
4129    if (conf_parser_ctx.pass == 2)
4130 <    yy_aconf->modes |= UMODE_OPERWALL;
4130 >    yy_conf->modes |= UMODE_OPERWALL;
4131   }
4132      break;
4133  
4134 <  case 160:
4135 <
4136 < /* Line 1806 of yacc.c  */
4370 < #line 1175 "ircd_parser.y"
4134 >  case 166:
4135 > /* Line 1813 of yacc.c  */
4136 > #line 1147 "conf_parser.y"
4137      {
4138    if (conf_parser_ctx.pass == 2)
4139 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4139 >    yy_conf->modes |= UMODE_SERVNOTICE;
4140   }
4141      break;
4142  
4143 <  case 161:
4144 <
4145 < /* Line 1806 of yacc.c  */
4380 < #line 1179 "ircd_parser.y"
4143 >  case 167:
4144 > /* Line 1813 of yacc.c  */
4145 > #line 1151 "conf_parser.y"
4146      {
4147    if (conf_parser_ctx.pass == 2)
4148 <    yy_aconf->modes |= UMODE_INVISIBLE;
4148 >    yy_conf->modes |= UMODE_INVISIBLE;
4149   }
4150      break;
4151  
4152 <  case 162:
4153 <
4154 < /* Line 1806 of yacc.c  */
4390 < #line 1183 "ircd_parser.y"
4152 >  case 168:
4153 > /* Line 1813 of yacc.c  */
4154 > #line 1155 "conf_parser.y"
4155      {
4156    if (conf_parser_ctx.pass == 2)
4157 <    yy_aconf->modes |= UMODE_WALLOP;
4157 >    yy_conf->modes |= UMODE_WALLOP;
4158   }
4159      break;
4160  
4161 <  case 163:
4162 <
4163 < /* Line 1806 of yacc.c  */
4400 < #line 1187 "ircd_parser.y"
4161 >  case 169:
4162 > /* Line 1813 of yacc.c  */
4163 > #line 1159 "conf_parser.y"
4164      {
4165    if (conf_parser_ctx.pass == 2)
4166 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4166 >    yy_conf->modes |= UMODE_SOFTCALLERID;
4167   }
4168      break;
4169  
4170 <  case 164:
4171 <
4172 < /* Line 1806 of yacc.c  */
4410 < #line 1191 "ircd_parser.y"
4170 >  case 170:
4171 > /* Line 1813 of yacc.c  */
4172 > #line 1163 "conf_parser.y"
4173      {
4174    if (conf_parser_ctx.pass == 2)
4175 <    yy_aconf->modes |= UMODE_CALLERID;
4175 >    yy_conf->modes |= UMODE_CALLERID;
4176   }
4177      break;
4178  
4179 <  case 165:
4180 <
4181 < /* Line 1806 of yacc.c  */
4420 < #line 1195 "ircd_parser.y"
4179 >  case 171:
4180 > /* Line 1813 of yacc.c  */
4181 > #line 1167 "conf_parser.y"
4182      {
4183    if (conf_parser_ctx.pass == 2)
4184 <    yy_aconf->modes |= UMODE_LOCOPS;
4184 >    yy_conf->modes |= UMODE_LOCOPS;
4185   }
4186      break;
4187  
4188 <  case 166:
4189 <
4190 < /* Line 1806 of yacc.c  */
4430 < #line 1201 "ircd_parser.y"
4188 >  case 172:
4189 > /* Line 1813 of yacc.c  */
4190 > #line 1173 "conf_parser.y"
4191      {
4192    if (conf_parser_ctx.pass == 2)
4193 <    yy_aconf->port = 0;
4193 >    yy_conf->port = 0;
4194   }
4195      break;
4196  
4197 <  case 170:
4198 <
4199 < /* Line 1806 of yacc.c  */
4440 < #line 1208 "ircd_parser.y"
4197 >  case 176:
4198 > /* Line 1813 of yacc.c  */
4199 > #line 1180 "conf_parser.y"
4200      {
4201    if (conf_parser_ctx.pass == 2)
4202 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4202 >    yy_conf->port |= OPER_FLAG_GLOBAL_KILL;
4203   }
4204      break;
4205  
4206 <  case 171:
4207 <
4208 < /* Line 1806 of yacc.c  */
4450 < #line 1212 "ircd_parser.y"
4206 >  case 177:
4207 > /* Line 1813 of yacc.c  */
4208 > #line 1184 "conf_parser.y"
4209      {
4210    if (conf_parser_ctx.pass == 2)
4211 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4211 >    yy_conf->port |= OPER_FLAG_REMOTE;
4212   }
4213      break;
4214  
4215 <  case 172:
4216 <
4217 < /* Line 1806 of yacc.c  */
4460 < #line 1216 "ircd_parser.y"
4215 >  case 178:
4216 > /* Line 1813 of yacc.c  */
4217 > #line 1188 "conf_parser.y"
4218      {
4219    if (conf_parser_ctx.pass == 2)
4220 <    yy_aconf->port |= OPER_FLAG_K;
4220 >    yy_conf->port |= OPER_FLAG_K;
4221   }
4222      break;
4223  
4224 <  case 173:
4225 <
4226 < /* Line 1806 of yacc.c  */
4470 < #line 1220 "ircd_parser.y"
4224 >  case 179:
4225 > /* Line 1813 of yacc.c  */
4226 > #line 1192 "conf_parser.y"
4227      {
4228    if (conf_parser_ctx.pass == 2)
4229 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4229 >    yy_conf->port |= OPER_FLAG_UNKLINE;
4230   }
4231      break;
4232  
4233 <  case 174:
4234 <
4235 < /* Line 1806 of yacc.c  */
4480 < #line 1224 "ircd_parser.y"
4233 >  case 180:
4234 > /* Line 1813 of yacc.c  */
4235 > #line 1196 "conf_parser.y"
4236      {
4237    if (conf_parser_ctx.pass == 2)
4238 <    yy_aconf->port |= OPER_FLAG_DLINE;
4238 >    yy_conf->port |= OPER_FLAG_DLINE;
4239   }
4240      break;
4241  
4242 <  case 175:
4243 <
4244 < /* Line 1806 of yacc.c  */
4490 < #line 1228 "ircd_parser.y"
4242 >  case 181:
4243 > /* Line 1813 of yacc.c  */
4244 > #line 1200 "conf_parser.y"
4245      {
4246    if (conf_parser_ctx.pass == 2)
4247 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4247 >    yy_conf->port |= OPER_FLAG_UNDLINE;
4248   }
4249      break;
4250  
4251 <  case 176:
4252 <
4253 < /* Line 1806 of yacc.c  */
4500 < #line 1232 "ircd_parser.y"
4251 >  case 182:
4252 > /* Line 1813 of yacc.c  */
4253 > #line 1204 "conf_parser.y"
4254      {
4255    if (conf_parser_ctx.pass == 2)
4256 <    yy_aconf->port |= OPER_FLAG_X;
4256 >    yy_conf->port |= OPER_FLAG_X;
4257   }
4258      break;
4259  
4260 <  case 177:
4261 <
4262 < /* Line 1806 of yacc.c  */
4510 < #line 1236 "ircd_parser.y"
4260 >  case 183:
4261 > /* Line 1813 of yacc.c  */
4262 > #line 1208 "conf_parser.y"
4263      {
4264    if (conf_parser_ctx.pass == 2)
4265 <    yy_aconf->port |= OPER_FLAG_GLINE;
4265 >    yy_conf->port |= OPER_FLAG_GLINE;
4266   }
4267      break;
4268  
4269 <  case 178:
4270 <
4271 < /* Line 1806 of yacc.c  */
4520 < #line 1240 "ircd_parser.y"
4269 >  case 184:
4270 > /* Line 1813 of yacc.c  */
4271 > #line 1212 "conf_parser.y"
4272      {
4273    if (conf_parser_ctx.pass == 2)
4274 <    yy_aconf->port |= OPER_FLAG_DIE;
4274 >    yy_conf->port |= OPER_FLAG_DIE;
4275   }
4276      break;
4277  
4278 <  case 179:
4279 <
4280 < /* Line 1806 of yacc.c  */
4530 < #line 1244 "ircd_parser.y"
4278 >  case 185:
4279 > /* Line 1813 of yacc.c  */
4280 > #line 1216 "conf_parser.y"
4281      {
4282    if (conf_parser_ctx.pass == 2)
4283 <    yy_aconf->port |= OPER_FLAG_RESTART;
4283 >    yy_conf->port |= OPER_FLAG_RESTART;
4284   }
4285      break;
4286  
4287 <  case 180:
4288 <
4289 < /* Line 1806 of yacc.c  */
4540 < #line 1248 "ircd_parser.y"
4287 >  case 186:
4288 > /* Line 1813 of yacc.c  */
4289 > #line 1220 "conf_parser.y"
4290      {
4291    if (conf_parser_ctx.pass == 2)
4292 <    yy_aconf->port |= OPER_FLAG_REHASH;
4292 >    yy_conf->port |= OPER_FLAG_REHASH;
4293   }
4294      break;
4295  
4296 <  case 181:
4297 <
4298 < /* Line 1806 of yacc.c  */
4550 < #line 1252 "ircd_parser.y"
4296 >  case 187:
4297 > /* Line 1813 of yacc.c  */
4298 > #line 1224 "conf_parser.y"
4299      {
4300    if (conf_parser_ctx.pass == 2)
4301 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4301 >    yy_conf->port |= OPER_FLAG_ADMIN;
4302   }
4303      break;
4304  
4305 <  case 182:
4306 <
4307 < /* Line 1806 of yacc.c  */
4560 < #line 1256 "ircd_parser.y"
4305 >  case 188:
4306 > /* Line 1813 of yacc.c  */
4307 > #line 1228 "conf_parser.y"
4308      {
4309    if (conf_parser_ctx.pass == 2)
4310 <    yy_aconf->port |= OPER_FLAG_N;
4310 >    yy_conf->port |= OPER_FLAG_N;
4311   }
4312      break;
4313  
4314 <  case 183:
4315 <
4316 < /* Line 1806 of yacc.c  */
4570 < #line 1260 "ircd_parser.y"
4314 >  case 189:
4315 > /* Line 1813 of yacc.c  */
4316 > #line 1232 "conf_parser.y"
4317      {
4318    if (conf_parser_ctx.pass == 2)
4319 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4319 >    yy_conf->port |= OPER_FLAG_OPERWALL;
4320   }
4321      break;
4322  
4323 <  case 184:
4324 <
4325 < /* Line 1806 of yacc.c  */
4580 < #line 1264 "ircd_parser.y"
4323 >  case 190:
4324 > /* Line 1813 of yacc.c  */
4325 > #line 1236 "conf_parser.y"
4326      {
4327    if (conf_parser_ctx.pass == 2)
4328 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4328 >    yy_conf->port |= OPER_FLAG_GLOBOPS;
4329   }
4330      break;
4331  
4332 <  case 185:
4333 <
4334 < /* Line 1806 of yacc.c  */
4590 < #line 1268 "ircd_parser.y"
4332 >  case 191:
4333 > /* Line 1813 of yacc.c  */
4334 > #line 1240 "conf_parser.y"
4335      {
4336    if (conf_parser_ctx.pass == 2)
4337 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4337 >    yy_conf->port |= OPER_FLAG_OPER_SPY;
4338   }
4339      break;
4340  
4341 <  case 186:
4342 <
4343 < /* Line 1806 of yacc.c  */
4600 < #line 1272 "ircd_parser.y"
4341 >  case 192:
4342 > /* Line 1813 of yacc.c  */
4343 > #line 1244 "conf_parser.y"
4344      {
4345    if (conf_parser_ctx.pass == 2)
4346 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4346 >    yy_conf->port |= OPER_FLAG_REMOTEBAN;
4347   }
4348      break;
4349  
4350 <  case 187:
4351 <
4352 < /* Line 1806 of yacc.c  */
4610 < #line 1276 "ircd_parser.y"
4350 >  case 193:
4351 > /* Line 1813 of yacc.c  */
4352 > #line 1248 "conf_parser.y"
4353      {
4354    if (conf_parser_ctx.pass == 2)
4355 <    yy_aconf->port |= OPER_FLAG_MODULE;
4355 >    yy_conf->port |= OPER_FLAG_SET;
4356   }
4357      break;
4358  
4359 <  case 188:
4359 >  case 194:
4360 > /* Line 1813 of yacc.c  */
4361 > #line 1252 "conf_parser.y"
4362 >    {
4363 >  if (conf_parser_ctx.pass == 2)
4364 >    yy_conf->port |= OPER_FLAG_MODULE;
4365 > }
4366 >    break;
4367  
4368 < /* Line 1806 of yacc.c  */
4369 < #line 1286 "ircd_parser.y"
4368 >  case 195:
4369 > /* Line 1813 of yacc.c  */
4370 > #line 1262 "conf_parser.y"
4371      {
4372    if (conf_parser_ctx.pass == 1)
4373    {
4374 <    yy_conf = make_conf_item(CLASS_TYPE);
4625 <    yy_class = map_to_conf(yy_conf);
4374 >    yy_class = class_make();
4375    }
4376   }
4377      break;
4378  
4379 <  case 189:
4380 <
4381 < /* Line 1806 of yacc.c  */
4633 < #line 1293 "ircd_parser.y"
4379 >  case 196:
4380 > /* Line 1813 of yacc.c  */
4381 > #line 1268 "conf_parser.y"
4382      {
4383    if (conf_parser_ctx.pass == 1)
4384    {
4637    struct ConfItem *cconf = NULL;
4385      struct ClassItem *class = NULL;
4386  
4387      if (yy_class_name == NULL)
4388 <      delete_conf_item(yy_conf);
4388 >      class_free(yy_class);
4389      else
4390      {
4391 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4391 >      class = class_find(yy_class_name, 0);
4392  
4393 <      if (cconf != NULL)                /* The class existed already */
4393 >      if (class != NULL)                /* The class existed already */
4394        {
4395          int user_count = 0;
4396  
4397 <        rebuild_cidr_class(cconf, yy_class);
4651 <
4652 <        class = map_to_conf(cconf);
4397 >        rebuild_cidr_class(class, yy_class);
4398  
4399 <        user_count = class->curr_user_count;
4399 >        user_count = class->ref_count;
4400          memcpy(class, yy_class, sizeof(*class));
4401 <        class->curr_user_count = user_count;
4401 >        class->ref_count = user_count;
4402          class->active = 1;
4403  
4404 <        delete_conf_item(yy_conf);
4404 >        class_free(yy_class);
4405  
4406 <        MyFree(cconf->name);            /* Allows case change of class name */
4407 <        cconf->name = yy_class_name;
4406 >        MyFree(class->name);            /* Allows case change of class name */
4407 >        class->name = yy_class_name;
4408        }
4409        else      /* Brand new class */
4410        {
4411 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4412 <        yy_conf->name = yy_class_name;
4411 >        MyFree(yy_class->name);          /* just in case it was allocated */
4412 >        yy_class->name = yy_class_name;
4413          yy_class->active = 1;
4414        }
4415      }
# Line 4674 | Line 4419 | yyreduce:
4419   }
4420      break;
4421  
4422 <  case 206:
4423 <
4424 < /* Line 1806 of yacc.c  */
4680 < #line 1351 "ircd_parser.y"
4422 >  case 213:
4423 > /* Line 1813 of yacc.c  */
4424 > #line 1322 "conf_parser.y"
4425      {
4426    if (conf_parser_ctx.pass == 1)
4427    {
# Line 4687 | Line 4431 | yyreduce:
4431   }
4432      break;
4433  
4434 <  case 207:
4435 <
4436 < /* Line 1806 of yacc.c  */
4693 < #line 1360 "ircd_parser.y"
4434 >  case 214:
4435 > /* Line 1813 of yacc.c  */
4436 > #line 1331 "conf_parser.y"
4437      {
4438    if (conf_parser_ctx.pass == 1)
4439 <    PingFreq(yy_class) = (yyvsp[(3) - (4)].number);
4439 >    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4440   }
4441      break;
4442  
4443 <  case 208:
4444 <
4445 < /* Line 1806 of yacc.c  */
4703 < #line 1366 "ircd_parser.y"
4443 >  case 215:
4444 > /* Line 1813 of yacc.c  */
4445 > #line 1337 "conf_parser.y"
4446      {
4447    if (conf_parser_ctx.pass == 1)
4448 <    PingWarning(yy_class) = (yyvsp[(3) - (4)].number);
4448 >    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4449   }
4450      break;
4451  
4452 <  case 209:
4453 <
4454 < /* Line 1806 of yacc.c  */
4713 < #line 1372 "ircd_parser.y"
4452 >  case 216:
4453 > /* Line 1813 of yacc.c  */
4454 > #line 1343 "conf_parser.y"
4455      {
4456    if (conf_parser_ctx.pass == 1)
4457 <    MaxPerIp(yy_class) = (yyvsp[(3) - (4)].number);
4457 >    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4458   }
4459      break;
4460  
4461 <  case 210:
4462 <
4463 < /* Line 1806 of yacc.c  */
4723 < #line 1378 "ircd_parser.y"
4461 >  case 217:
4462 > /* Line 1813 of yacc.c  */
4463 > #line 1349 "conf_parser.y"
4464      {
4465    if (conf_parser_ctx.pass == 1)
4466 <    ConFreq(yy_class) = (yyvsp[(3) - (4)].number);
4466 >    yy_class->max_total = (yyvsp[(3) - (4)].number);
4467   }
4468      break;
4469  
4470 <  case 211:
4471 <
4472 < /* Line 1806 of yacc.c  */
4733 < #line 1384 "ircd_parser.y"
4470 >  case 218:
4471 > /* Line 1813 of yacc.c  */
4472 > #line 1355 "conf_parser.y"
4473      {
4474    if (conf_parser_ctx.pass == 1)
4475 <    MaxTotal(yy_class) = (yyvsp[(3) - (4)].number);
4475 >    yy_class->max_global = (yyvsp[(3) - (4)].number);
4476   }
4477      break;
4478  
4479 <  case 212:
4480 <
4481 < /* Line 1806 of yacc.c  */
4743 < #line 1390 "ircd_parser.y"
4479 >  case 219:
4480 > /* Line 1813 of yacc.c  */
4481 > #line 1361 "conf_parser.y"
4482      {
4483    if (conf_parser_ctx.pass == 1)
4484 <    MaxGlobal(yy_class) = (yyvsp[(3) - (4)].number);
4484 >    yy_class->max_local = (yyvsp[(3) - (4)].number);
4485   }
4486      break;
4487  
4488 <  case 213:
4489 <
4490 < /* Line 1806 of yacc.c  */
4753 < #line 1396 "ircd_parser.y"
4488 >  case 220:
4489 > /* Line 1813 of yacc.c  */
4490 > #line 1367 "conf_parser.y"
4491      {
4492    if (conf_parser_ctx.pass == 1)
4493 <    MaxLocal(yy_class) = (yyvsp[(3) - (4)].number);
4493 >    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4494   }
4495      break;
4496  
4497 <  case 214:
4498 <
4499 < /* Line 1806 of yacc.c  */
4763 < #line 1402 "ircd_parser.y"
4497 >  case 221:
4498 > /* Line 1813 of yacc.c  */
4499 > #line 1373 "conf_parser.y"
4500      {
4501    if (conf_parser_ctx.pass == 1)
4502 <    MaxIdent(yy_class) = (yyvsp[(3) - (4)].number);
4502 >    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4503   }
4504      break;
4505  
4506 <  case 215:
4507 <
4508 < /* Line 1806 of yacc.c  */
4773 < #line 1408 "ircd_parser.y"
4506 >  case 222:
4507 > /* Line 1813 of yacc.c  */
4508 > #line 1379 "conf_parser.y"
4509      {
4510    if (conf_parser_ctx.pass == 1)
4511 <    MaxSendq(yy_class) = (yyvsp[(3) - (4)].number);
4511 >    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4512 >      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4513   }
4514      break;
4515  
4516 <  case 216:
4517 <
4518 < /* Line 1806 of yacc.c  */
4783 < #line 1414 "ircd_parser.y"
4516 >  case 223:
4517 > /* Line 1813 of yacc.c  */
4518 > #line 1386 "conf_parser.y"
4519      {
4520    if (conf_parser_ctx.pass == 1)
4521 <    CidrBitlenIPV4(yy_class) = (yyvsp[(3) - (4)].number);
4521 >    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4522   }
4523      break;
4524  
4525 <  case 217:
4526 <
4527 < /* Line 1806 of yacc.c  */
4793 < #line 1420 "ircd_parser.y"
4525 >  case 224:
4526 > /* Line 1813 of yacc.c  */
4527 > #line 1392 "conf_parser.y"
4528      {
4529    if (conf_parser_ctx.pass == 1)
4530 <    CidrBitlenIPV6(yy_class) = (yyvsp[(3) - (4)].number);
4530 >    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4531   }
4532      break;
4533  
4534 <  case 218:
4535 <
4536 < /* Line 1806 of yacc.c  */
4803 < #line 1426 "ircd_parser.y"
4534 >  case 225:
4535 > /* Line 1813 of yacc.c  */
4536 > #line 1398 "conf_parser.y"
4537      {
4538    if (conf_parser_ctx.pass == 1)
4539 <    NumberPerCidr(yy_class) = (yyvsp[(3) - (4)].number);
4539 >    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4540   }
4541      break;
4542  
4543 <  case 219:
4544 <
4545 < /* Line 1806 of yacc.c  */
4813 < #line 1435 "ircd_parser.y"
4543 >  case 226:
4544 > /* Line 1813 of yacc.c  */
4545 > #line 1407 "conf_parser.y"
4546      {
4547    if (conf_parser_ctx.pass == 2)
4548    {
# Line 4820 | Line 4552 | yyreduce:
4552   }
4553      break;
4554  
4555 <  case 220:
4556 <
4557 < /* Line 1806 of yacc.c  */
4826 < #line 1442 "ircd_parser.y"
4555 >  case 227:
4556 > /* Line 1813 of yacc.c  */
4557 > #line 1414 "conf_parser.y"
4558      {
4559    if (conf_parser_ctx.pass == 2)
4560    {
# Line 4833 | Line 4564 | yyreduce:
4564   }
4565      break;
4566  
4567 <  case 221:
4568 <
4569 < /* Line 1806 of yacc.c  */
4839 < #line 1451 "ircd_parser.y"
4567 >  case 228:
4568 > /* Line 1813 of yacc.c  */
4569 > #line 1423 "conf_parser.y"
4570      {
4571    listener_flags = 0;
4572   }
4573      break;
4574  
4575 <  case 225:
4576 <
4577 < /* Line 1806 of yacc.c  */
4848 < #line 1457 "ircd_parser.y"
4575 >  case 232:
4576 > /* Line 1813 of yacc.c  */
4577 > #line 1429 "conf_parser.y"
4578      {
4579    if (conf_parser_ctx.pass == 2)
4580      listener_flags |= LISTENER_SSL;
4581   }
4582      break;
4583  
4584 <  case 226:
4585 <
4586 < /* Line 1806 of yacc.c  */
4858 < #line 1461 "ircd_parser.y"
4584 >  case 233:
4585 > /* Line 1813 of yacc.c  */
4586 > #line 1433 "conf_parser.y"
4587      {
4588    if (conf_parser_ctx.pass == 2)
4589      listener_flags |= LISTENER_HIDDEN;
4590   }
4591      break;
4592  
4593 <  case 227:
4594 <
4595 < /* Line 1806 of yacc.c  */
4868 < #line 1465 "ircd_parser.y"
4593 >  case 234:
4594 > /* Line 1813 of yacc.c  */
4595 > #line 1437 "conf_parser.y"
4596      {
4597    if (conf_parser_ctx.pass == 2)
4598      listener_flags |= LISTENER_SERVER;
4599   }
4600      break;
4601  
4602 <  case 235:
4603 <
4604 < /* Line 1806 of yacc.c  */
4878 < #line 1475 "ircd_parser.y"
4602 >  case 242:
4603 > /* Line 1813 of yacc.c  */
4604 > #line 1447 "conf_parser.y"
4605      { listener_flags = 0; }
4606      break;
4607  
4608 <  case 239:
4609 <
4610 < /* Line 1806 of yacc.c  */
4885 < #line 1480 "ircd_parser.y"
4608 >  case 246:
4609 > /* Line 1813 of yacc.c  */
4610 > #line 1452 "conf_parser.y"
4611      {
4612    if (conf_parser_ctx.pass == 2)
4613    {
# Line 4899 | Line 4624 | yyreduce:
4624   }
4625      break;
4626  
4627 <  case 240:
4628 <
4629 < /* Line 1806 of yacc.c  */
4905 < #line 1494 "ircd_parser.y"
4627 >  case 247:
4628 > /* Line 1813 of yacc.c  */
4629 > #line 1466 "conf_parser.y"
4630      {
4631    if (conf_parser_ctx.pass == 2)
4632    {
# Line 4923 | Line 4647 | yyreduce:
4647   }
4648      break;
4649  
4650 <  case 241:
4651 <
4652 < /* Line 1806 of yacc.c  */
4929 < #line 1514 "ircd_parser.y"
4650 >  case 248:
4651 > /* Line 1813 of yacc.c  */
4652 > #line 1486 "conf_parser.y"
4653      {
4654    if (conf_parser_ctx.pass == 2)
4655    {
# Line 4936 | Line 4659 | yyreduce:
4659   }
4660      break;
4661  
4662 <  case 242:
4663 <
4664 < /* Line 1806 of yacc.c  */
4942 < #line 1523 "ircd_parser.y"
4662 >  case 249:
4663 > /* Line 1813 of yacc.c  */
4664 > #line 1495 "conf_parser.y"
4665      {
4666    if (conf_parser_ctx.pass == 2)
4667    {
# Line 4949 | Line 4671 | yyreduce:
4671   }
4672      break;
4673  
4674 <  case 243:
4675 <
4676 < /* Line 1806 of yacc.c  */
4955 < #line 1535 "ircd_parser.y"
4674 >  case 250:
4675 > /* Line 1813 of yacc.c  */
4676 > #line 1507 "conf_parser.y"
4677      {
4678    if (conf_parser_ctx.pass == 2)
4679    {
4680 <    yy_conf = make_conf_item(CLIENT_TYPE);
4960 <    yy_aconf = map_to_conf(yy_conf);
4680 >    yy_conf = conf_make(CONF_CLIENT);
4681    }
4682    else
4683    {
# Line 4967 | Line 4687 | yyreduce:
4687   }
4688      break;
4689  
4690 <  case 244:
4691 <
4692 < /* Line 1806 of yacc.c  */
4973 < #line 1547 "ircd_parser.y"
4690 >  case 251:
4691 > /* Line 1813 of yacc.c  */
4692 > #line 1518 "conf_parser.y"
4693      {
4694    if (conf_parser_ctx.pass == 2)
4695    {
4696      struct CollectItem *yy_tmp = NULL;
4697      dlink_node *ptr = NULL, *next_ptr = NULL;
4698  
4699 <    if (yy_aconf->user && yy_aconf->host)
4699 >    if (yy_conf->user && yy_conf->host)
4700      {
4701        conf_add_class_to_conf(yy_conf, class_name);
4702 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4702 >      add_conf_by_address(CONF_CLIENT, yy_conf);
4703      }
4704      else
4705 <      delete_conf_item(yy_conf);
4705 >      conf_free(yy_conf);
4706  
4707      /* copy over settings from first struct */
4708      DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4709      {
4710 <      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);
4710 >      struct MaskItem *new_conf = conf_make(CONF_CLIENT);
4711  
4712        yy_tmp = ptr->data;
4713  
4714        assert(yy_tmp->user && yy_tmp->host);
4715  
4716 <      if (yy_aconf->passwd != NULL)
4717 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4716 >      if (yy_conf->passwd != NULL)
4717 >        DupString(new_conf->passwd, yy_conf->passwd);
4718        if (yy_conf->name != NULL)
4719          DupString(new_conf->name, yy_conf->name);
4720 <      if (yy_aconf->passwd != NULL)
4721 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4720 >      if (yy_conf->passwd != NULL)
4721 >        DupString(new_conf->passwd, yy_conf->passwd);
4722  
4723 <      new_aconf->flags = yy_aconf->flags;
4724 <      new_aconf->port  = yy_aconf->port;
4723 >      new_conf->flags = yy_conf->flags;
4724 >      new_conf->port  = yy_conf->port;
4725  
4726 <      DupString(new_aconf->user, yy_tmp->user);
4727 <      collapse(new_aconf->user);
4726 >      DupString(new_conf->user, yy_tmp->user);
4727 >      collapse(new_conf->user);
4728  
4729 <      DupString(new_aconf->host, yy_tmp->host);
4730 <      collapse(new_aconf->host);
4729 >      DupString(new_conf->host, yy_tmp->host);
4730 >      collapse(new_conf->host);
4731  
4732        conf_add_class_to_conf(new_conf, class_name);
4733 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4733 >      add_conf_by_address(CONF_CLIENT, new_conf);
4734        dlinkDelete(&yy_tmp->node, &col_conf_list);
4735        free_collect_item(yy_tmp);
4736      }
# Line 5023 | Line 4738 | yyreduce:
4738      MyFree(class_name);
4739      class_name = NULL;
4740      yy_conf = NULL;
5026    yy_aconf = NULL;
4741    }
4742   }
4743      break;
4744  
4745 <  case 256:
4746 <
4747 < /* Line 1806 of yacc.c  */
5034 < #line 1609 "ircd_parser.y"
4745 >  case 263:
4746 > /* Line 1813 of yacc.c  */
4747 > #line 1575 "conf_parser.y"
4748      {
4749    if (conf_parser_ctx.pass == 2)
4750    {
# Line 5049 | Line 4762 | yyreduce:
4762  
4763      split_nuh(&nuh);
4764  
4765 <    if (yy_aconf->user == NULL)
4765 >    if (yy_conf->user == NULL)
4766      {
4767 <      DupString(yy_aconf->user, userbuf);
4768 <      DupString(yy_aconf->host, hostbuf);
4767 >      DupString(yy_conf->user, userbuf);
4768 >      DupString(yy_conf->host, hostbuf);
4769      }
4770      else
4771      {
# Line 5067 | Line 4780 | yyreduce:
4780   }
4781      break;
4782  
4783 <  case 257:
4784 <
4785 < /* Line 1806 of yacc.c  */
5073 < #line 1646 "ircd_parser.y"
4783 >  case 264:
4784 > /* Line 1813 of yacc.c  */
4785 > #line 1610 "conf_parser.y"
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788    {
4789      /* be paranoid */
4790 <    if (yy_aconf->passwd != NULL)
4791 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4790 >    if (yy_conf->passwd != NULL)
4791 >      memset(yy_conf->passwd, 0, strlen(yy_conf->passwd));
4792  
4793 <    MyFree(yy_aconf->passwd);
4794 <    DupString(yy_aconf->passwd, yylval.string);
4793 >    MyFree(yy_conf->passwd);
4794 >    DupString(yy_conf->passwd, yylval.string);
4795    }
4796   }
4797      break;
4798  
4799 <  case 258:
4800 <
4801 < /* Line 1806 of yacc.c  */
5090 < #line 1659 "ircd_parser.y"
4799 >  case 265:
4800 > /* Line 1813 of yacc.c  */
4801 > #line 1623 "conf_parser.y"
4802      {
4803    if (conf_parser_ctx.pass == 2)
4804    {
# Line 5097 | Line 4808 | yyreduce:
4808   }
4809      break;
4810  
4811 <  case 259:
4812 <
4813 < /* Line 1806 of yacc.c  */
5103 < #line 1668 "ircd_parser.y"
4811 >  case 266:
4812 > /* Line 1813 of yacc.c  */
4813 > #line 1632 "conf_parser.y"
4814      {
4815    if (conf_parser_ctx.pass == 2)
4816    {
4817      if (yylval.number)
4818 <      SetConfEncrypted(yy_aconf);
4818 >      SetConfEncrypted(yy_conf);
4819      else
4820 <      ClearConfEncrypted(yy_aconf);
4820 >      ClearConfEncrypted(yy_conf);
4821    }
4822   }
4823      break;
4824  
4825 <  case 260:
4826 <
4827 < /* Line 1806 of yacc.c  */
5118 < #line 1679 "ircd_parser.y"
4825 >  case 267:
4826 > /* Line 1813 of yacc.c  */
4827 > #line 1643 "conf_parser.y"
4828      {
4829   }
4830      break;
4831  
4832 <  case 264:
4833 <
4834 < /* Line 1806 of yacc.c  */
5126 < #line 1684 "ircd_parser.y"
4832 >  case 271:
4833 > /* Line 1813 of yacc.c  */
4834 > #line 1648 "conf_parser.y"
4835      {
4836    if (conf_parser_ctx.pass == 2)
4837 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4837 >    yy_conf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4838   }
4839      break;
4840  
4841 <  case 265:
4842 <
4843 < /* Line 1806 of yacc.c  */
5136 < #line 1688 "ircd_parser.y"
4841 >  case 272:
4842 > /* Line 1813 of yacc.c  */
4843 > #line 1652 "conf_parser.y"
4844      {
4845    if (conf_parser_ctx.pass == 2)
4846 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4846 >    yy_conf->flags |= CONF_FLAGS_NOLIMIT;
4847   }
4848      break;
4849  
4850 <  case 266:
4851 <
4852 < /* Line 1806 of yacc.c  */
5146 < #line 1692 "ircd_parser.y"
4850 >  case 273:
4851 > /* Line 1813 of yacc.c  */
4852 > #line 1656 "conf_parser.y"
4853      {
4854    if (conf_parser_ctx.pass == 2)
4855 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4855 >    yy_conf->flags |= CONF_FLAGS_EXEMPTKLINE;
4856   }
4857      break;
4858  
4859 <  case 267:
4860 <
4861 < /* Line 1806 of yacc.c  */
5156 < #line 1696 "ircd_parser.y"
4859 >  case 274:
4860 > /* Line 1813 of yacc.c  */
4861 > #line 1660 "conf_parser.y"
4862      {
4863    if (conf_parser_ctx.pass == 2)
4864 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4864 >    yy_conf->flags |= CONF_FLAGS_NEED_IDENTD;
4865   }
4866      break;
4867  
4868 <  case 268:
4869 <
4870 < /* Line 1806 of yacc.c  */
5166 < #line 1700 "ircd_parser.y"
4868 >  case 275:
4869 > /* Line 1813 of yacc.c  */
4870 > #line 1664 "conf_parser.y"
4871      {
4872    if (conf_parser_ctx.pass == 2)
4873 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4873 >    yy_conf->flags |= CONF_FLAGS_CAN_FLOOD;
4874   }
4875      break;
4876  
4877 <  case 269:
4878 <
4879 < /* Line 1806 of yacc.c  */
5176 < #line 1704 "ircd_parser.y"
4877 >  case 276:
4878 > /* Line 1813 of yacc.c  */
4879 > #line 1668 "conf_parser.y"
4880      {
4881    if (conf_parser_ctx.pass == 2)
4882 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4882 >    yy_conf->flags |= CONF_FLAGS_NO_TILDE;
4883   }
4884      break;
4885  
4886 <  case 270:
4887 <
4888 < /* Line 1806 of yacc.c  */
5186 < #line 1708 "ircd_parser.y"
4886 >  case 277:
4887 > /* Line 1813 of yacc.c  */
4888 > #line 1672 "conf_parser.y"
4889      {
4890    if (conf_parser_ctx.pass == 2)
4891 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4891 >    yy_conf->flags |= CONF_FLAGS_EXEMPTGLINE;
4892   }
4893      break;
4894  
4895 <  case 271:
4896 <
4897 < /* Line 1806 of yacc.c  */
5196 < #line 1712 "ircd_parser.y"
4895 >  case 278:
4896 > /* Line 1813 of yacc.c  */
4897 > #line 1676 "conf_parser.y"
4898      {
4899    if (conf_parser_ctx.pass == 2)
4900 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4900 >    yy_conf->flags |= CONF_FLAGS_EXEMPTRESV;
4901   }
4902      break;
4903  
4904 <  case 272:
4905 <
4906 < /* Line 1806 of yacc.c  */
5206 < #line 1716 "ircd_parser.y"
4904 >  case 279:
4905 > /* Line 1813 of yacc.c  */
4906 > #line 1680 "conf_parser.y"
4907      {
4908    if (conf_parser_ctx.pass == 2)
4909 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4909 >    yy_conf->flags |= CONF_FLAGS_NEED_PASSWORD;
4910   }
4911      break;
4912  
4913 <  case 273:
4914 <
4915 < /* Line 1806 of yacc.c  */
5216 < #line 1723 "ircd_parser.y"
4913 >  case 280:
4914 > /* Line 1813 of yacc.c  */
4915 > #line 1686 "conf_parser.y"
4916      {
4917    if (conf_parser_ctx.pass == 2)
4918    {
4919      MyFree(yy_conf->name);
4920  
4921 <    if (strlen(yylval.string) < HOSTLEN)
4921 >    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4922      {    
4923        DupString(yy_conf->name, yylval.string);
4924 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4924 >      yy_conf->flags |= CONF_FLAGS_SPOOF_IP;
4925      }
4926      else
4927      {
4928 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
4928 >      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4929        yy_conf->name = NULL;
4930      }
4931    }
4932   }
4933      break;
4934  
4935 <  case 274:
4936 <
4937 < /* Line 1806 of yacc.c  */
5239 < #line 1742 "ircd_parser.y"
4935 >  case 281:
4936 > /* Line 1813 of yacc.c  */
4937 > #line 1705 "conf_parser.y"
4938      {
4939    if (conf_parser_ctx.pass == 2)
4940    {
4941 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4941 >    yy_conf->flags |= CONF_FLAGS_REDIR;
4942      MyFree(yy_conf->name);
4943      DupString(yy_conf->name, yylval.string);
4944    }
4945   }
4946      break;
4947  
4948 <  case 275:
4949 <
4950 < /* Line 1806 of yacc.c  */
5253 < #line 1752 "ircd_parser.y"
4948 >  case 282:
4949 > /* Line 1813 of yacc.c  */
4950 > #line 1715 "conf_parser.y"
4951      {
4952    if (conf_parser_ctx.pass == 2)
4953    {
4954 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4955 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4954 >    yy_conf->flags |= CONF_FLAGS_REDIR;
4955 >    yy_conf->port = (yyvsp[(3) - (4)].number);
4956    }
4957   }
4958      break;
4959  
4960 <  case 276:
4961 <
4962 < /* Line 1806 of yacc.c  */
5266 < #line 1765 "ircd_parser.y"
4960 >  case 283:
4961 > /* Line 1813 of yacc.c  */
4962 > #line 1728 "conf_parser.y"
4963      {
4964    if (conf_parser_ctx.pass == 2)
4965    {
# Line 5273 | Line 4969 | yyreduce:
4969   }
4970      break;
4971  
4972 <  case 277:
4973 <
4974 < /* Line 1806 of yacc.c  */
5279 < #line 1772 "ircd_parser.y"
4972 >  case 284:
4973 > /* Line 1813 of yacc.c  */
4974 > #line 1735 "conf_parser.y"
4975      {
4976    if (conf_parser_ctx.pass == 2)
4977    {
# Line 5286 | Line 4981 | yyreduce:
4981   }
4982      break;
4983  
4984 <  case 284:
4985 <
4986 < /* Line 1806 of yacc.c  */
5292 < #line 1784 "ircd_parser.y"
4984 >  case 291:
4985 > /* Line 1813 of yacc.c  */
4986 > #line 1747 "conf_parser.y"
4987      {
4988    if (conf_parser_ctx.pass == 2)
4989    {
# Line 5299 | Line 4993 | yyreduce:
4993   }
4994      break;
4995  
4996 <  case 285:
4997 <
4998 < /* Line 1806 of yacc.c  */
5305 < #line 1793 "ircd_parser.y"
4996 >  case 292:
4997 > /* Line 1813 of yacc.c  */
4998 > #line 1756 "conf_parser.y"
4999      {
5000    if (conf_parser_ctx.pass == 2)
5001    {
# Line 5318 | Line 5011 | yyreduce:
5011   }
5012      break;
5013  
5014 <  case 286:
5015 <
5016 < /* Line 1806 of yacc.c  */
5324 < #line 1808 "ircd_parser.y"
5014 >  case 293:
5015 > /* Line 1813 of yacc.c  */
5016 > #line 1771 "conf_parser.y"
5017      {
5018    if (conf_parser_ctx.pass == 2)
5019    {
# Line 5332 | Line 5024 | yyreduce:
5024   }
5025      break;
5026  
5027 <  case 292:
5028 <
5029 < /* Line 1806 of yacc.c  */
5338 < #line 1826 "ircd_parser.y"
5027 >  case 299:
5028 > /* Line 1813 of yacc.c  */
5029 > #line 1789 "conf_parser.y"
5030      {
5031    if (conf_parser_ctx.pass == 2)
5032    {
5033      if (valid_servname(yylval.string))
5034      {
5035 <      yy_conf = make_conf_item(SERVICE_TYPE);
5035 >      yy_conf = conf_make(CONF_SERVICE);
5036        DupString(yy_conf->name, yylval.string);
5037      }
5038    }
5039   }
5040      break;
5041  
5042 <  case 293:
5043 <
5044 < /* Line 1806 of yacc.c  */
5354 < #line 1841 "ircd_parser.y"
5042 >  case 300:
5043 > /* Line 1813 of yacc.c  */
5044 > #line 1804 "conf_parser.y"
5045      {
5046    if (conf_parser_ctx.pass == 2)
5047    {
5048 <    yy_conf = make_conf_item(ULINE_TYPE);
5049 <    yy_match_item = map_to_conf(yy_conf);
5360 <    yy_match_item->action = SHARED_ALL;
5048 >    yy_conf = conf_make(CONF_ULINE);
5049 >    yy_conf->flags = SHARED_ALL;
5050    }
5051   }
5052      break;
5053  
5054 <  case 294:
5055 <
5056 < /* Line 1806 of yacc.c  */
5368 < #line 1849 "ircd_parser.y"
5054 >  case 301:
5055 > /* Line 1813 of yacc.c  */
5056 > #line 1811 "conf_parser.y"
5057      {
5058    if (conf_parser_ctx.pass == 2)
5059    {
# Line 5374 | Line 5062 | yyreduce:
5062   }
5063      break;
5064  
5065 <  case 301:
5066 <
5067 < /* Line 1806 of yacc.c  */
5380 < #line 1860 "ircd_parser.y"
5065 >  case 308:
5066 > /* Line 1813 of yacc.c  */
5067 > #line 1822 "conf_parser.y"
5068      {
5069    if (conf_parser_ctx.pass == 2)
5070    {
# Line 5387 | Line 5074 | yyreduce:
5074   }
5075      break;
5076  
5077 <  case 302:
5078 <
5079 < /* Line 1806 of yacc.c  */
5393 < #line 1869 "ircd_parser.y"
5077 >  case 309:
5078 > /* Line 1813 of yacc.c  */
5079 > #line 1831 "conf_parser.y"
5080      {
5081    if (conf_parser_ctx.pass == 2)
5082    {
# Line 5407 | Line 5093 | yyreduce:
5093  
5094      split_nuh(&nuh);
5095  
5096 <    DupString(yy_match_item->user, userbuf);
5097 <    DupString(yy_match_item->host, hostbuf);
5096 >    DupString(yy_conf->user, userbuf);
5097 >    DupString(yy_conf->host, hostbuf);
5098    }
5099   }
5100      break;
5101  
5102 <  case 303:
5103 <
5104 < /* Line 1806 of yacc.c  */
5419 < #line 1891 "ircd_parser.y"
5102 >  case 310:
5103 > /* Line 1813 of yacc.c  */
5104 > #line 1853 "conf_parser.y"
5105      {
5106    if (conf_parser_ctx.pass == 2)
5107 <    yy_match_item->action = 0;
5107 >    yy_conf->flags = 0;
5108   }
5109      break;
5110  
5111 <  case 307:
5112 <
5113 < /* Line 1806 of yacc.c  */
5429 < #line 1898 "ircd_parser.y"
5111 >  case 314:
5112 > /* Line 1813 of yacc.c  */
5113 > #line 1860 "conf_parser.y"
5114      {
5115    if (conf_parser_ctx.pass == 2)
5116 <    yy_match_item->action |= SHARED_KLINE;
5116 >    yy_conf->flags |= SHARED_KLINE;
5117   }
5118      break;
5119  
5120 <  case 308:
5121 <
5122 < /* Line 1806 of yacc.c  */
5439 < #line 1902 "ircd_parser.y"
5120 >  case 315:
5121 > /* Line 1813 of yacc.c  */
5122 > #line 1864 "conf_parser.y"
5123      {
5124    if (conf_parser_ctx.pass == 2)
5125 <    yy_match_item->action |= SHARED_UNKLINE;
5125 >    yy_conf->flags |= SHARED_UNKLINE;
5126   }
5127      break;
5128  
5129 <  case 309:
5130 <
5131 < /* Line 1806 of yacc.c  */
5449 < #line 1906 "ircd_parser.y"
5129 >  case 316:
5130 > /* Line 1813 of yacc.c  */
5131 > #line 1868 "conf_parser.y"
5132      {
5133    if (conf_parser_ctx.pass == 2)
5134 <    yy_match_item->action |= SHARED_DLINE;
5134 >    yy_conf->flags |= SHARED_DLINE;
5135   }
5136      break;
5137  
5138 <  case 310:
5139 <
5140 < /* Line 1806 of yacc.c  */
5459 < #line 1910 "ircd_parser.y"
5138 >  case 317:
5139 > /* Line 1813 of yacc.c  */
5140 > #line 1872 "conf_parser.y"
5141      {
5142    if (conf_parser_ctx.pass == 2)
5143 <    yy_match_item->action |= SHARED_UNDLINE;
5143 >    yy_conf->flags |= SHARED_UNDLINE;
5144   }
5145      break;
5146  
5147 <  case 311:
5148 <
5149 < /* Line 1806 of yacc.c  */
5469 < #line 1914 "ircd_parser.y"
5147 >  case 318:
5148 > /* Line 1813 of yacc.c  */
5149 > #line 1876 "conf_parser.y"
5150      {
5151    if (conf_parser_ctx.pass == 2)
5152 <    yy_match_item->action |= SHARED_XLINE;
5152 >    yy_conf->flags |= SHARED_XLINE;
5153   }
5154      break;
5155  
5156 <  case 312:
5157 <
5158 < /* Line 1806 of yacc.c  */
5479 < #line 1918 "ircd_parser.y"
5156 >  case 319:
5157 > /* Line 1813 of yacc.c  */
5158 > #line 1880 "conf_parser.y"
5159      {
5160    if (conf_parser_ctx.pass == 2)
5161 <    yy_match_item->action |= SHARED_UNXLINE;
5161 >    yy_conf->flags |= SHARED_UNXLINE;
5162   }
5163      break;
5164  
5165 <  case 313:
5166 <
5167 < /* Line 1806 of yacc.c  */
5489 < #line 1922 "ircd_parser.y"
5165 >  case 320:
5166 > /* Line 1813 of yacc.c  */
5167 > #line 1884 "conf_parser.y"
5168      {
5169    if (conf_parser_ctx.pass == 2)
5170 <    yy_match_item->action |= SHARED_RESV;
5170 >    yy_conf->flags |= SHARED_RESV;
5171   }
5172      break;
5173  
5174 <  case 314:
5175 <
5176 < /* Line 1806 of yacc.c  */
5499 < #line 1926 "ircd_parser.y"
5174 >  case 321:
5175 > /* Line 1813 of yacc.c  */
5176 > #line 1888 "conf_parser.y"
5177      {
5178    if (conf_parser_ctx.pass == 2)
5179 <    yy_match_item->action |= SHARED_UNRESV;
5179 >    yy_conf->flags |= SHARED_UNRESV;
5180   }
5181      break;
5182  
5183 <  case 315:
5184 <
5185 < /* Line 1806 of yacc.c  */
5509 < #line 1930 "ircd_parser.y"
5183 >  case 322:
5184 > /* Line 1813 of yacc.c  */
5185 > #line 1892 "conf_parser.y"
5186      {
5187    if (conf_parser_ctx.pass == 2)
5188 <    yy_match_item->action |= SHARED_LOCOPS;
5188 >    yy_conf->flags |= SHARED_LOCOPS;
5189   }
5190      break;
5191  
5192 <  case 316:
5193 <
5194 < /* Line 1806 of yacc.c  */
5519 < #line 1934 "ircd_parser.y"
5192 >  case 323:
5193 > /* Line 1813 of yacc.c  */
5194 > #line 1896 "conf_parser.y"
5195      {
5196    if (conf_parser_ctx.pass == 2)
5197 <    yy_match_item->action = SHARED_ALL;
5197 >    yy_conf->flags = SHARED_ALL;
5198   }
5199      break;
5200  
5201 <  case 317:
5202 <
5203 < /* Line 1806 of yacc.c  */
5529 < #line 1943 "ircd_parser.y"
5201 >  case 324:
5202 > /* Line 1813 of yacc.c  */
5203 > #line 1905 "conf_parser.y"
5204      {
5205    if (conf_parser_ctx.pass == 2)
5206    {
5207 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5534 <    yy_conf->flags = SHARED_ALL;
5207 >    yy_conf = conf_make(CONF_CLUSTER);
5208    }
5209   }
5210      break;
5211  
5212 <  case 318:
5213 <
5214 < /* Line 1806 of yacc.c  */
5542 < #line 1950 "ircd_parser.y"
5212 >  case 325:
5213 > /* Line 1813 of yacc.c  */
5214 > #line 1911 "conf_parser.y"
5215      {
5216    if (conf_parser_ctx.pass == 2)
5217    {
# Line 5550 | Line 5222 | yyreduce:
5222   }
5223      break;
5224  
5225 <  case 324:
5226 <
5227 < /* Line 1806 of yacc.c  */
5556 < #line 1963 "ircd_parser.y"
5225 >  case 331:
5226 > /* Line 1813 of yacc.c  */
5227 > #line 1924 "conf_parser.y"
5228      {
5229    if (conf_parser_ctx.pass == 2)
5230      DupString(yy_conf->name, yylval.string);
5231   }
5232      break;
5233  
5234 <  case 325:
5235 <
5236 < /* Line 1806 of yacc.c  */
5566 < #line 1969 "ircd_parser.y"
5234 >  case 332:
5235 > /* Line 1813 of yacc.c  */
5236 > #line 1930 "conf_parser.y"
5237      {
5238    if (conf_parser_ctx.pass == 2)
5239      yy_conf->flags = 0;
5240   }
5241      break;
5242  
5243 <  case 329:
5244 <
5245 < /* Line 1806 of yacc.c  */
5576 < #line 1976 "ircd_parser.y"
5243 >  case 336:
5244 > /* Line 1813 of yacc.c  */
5245 > #line 1937 "conf_parser.y"
5246      {
5247    if (conf_parser_ctx.pass == 2)
5248      yy_conf->flags |= SHARED_KLINE;
5249   }
5250      break;
5251  
5252 <  case 330:
5253 <
5254 < /* Line 1806 of yacc.c  */
5586 < #line 1980 "ircd_parser.y"
5252 >  case 337:
5253 > /* Line 1813 of yacc.c  */
5254 > #line 1941 "conf_parser.y"
5255      {
5256    if (conf_parser_ctx.pass == 2)
5257      yy_conf->flags |= SHARED_UNKLINE;
5258   }
5259      break;
5260  
5261 <  case 331:
5262 <
5263 < /* Line 1806 of yacc.c  */
5596 < #line 1984 "ircd_parser.y"
5261 >  case 338:
5262 > /* Line 1813 of yacc.c  */
5263 > #line 1945 "conf_parser.y"
5264      {
5265    if (conf_parser_ctx.pass == 2)
5266      yy_conf->flags |= SHARED_DLINE;
5267   }
5268      break;
5269  
5270 <  case 332:
5271 <
5272 < /* Line 1806 of yacc.c  */
5606 < #line 1988 "ircd_parser.y"
5270 >  case 339:
5271 > /* Line 1813 of yacc.c  */
5272 > #line 1949 "conf_parser.y"
5273      {
5274    if (conf_parser_ctx.pass == 2)
5275      yy_conf->flags |= SHARED_UNDLINE;
5276   }
5277      break;
5278  
5279 <  case 333:
5280 <
5281 < /* Line 1806 of yacc.c  */
5616 < #line 1992 "ircd_parser.y"
5279 >  case 340:
5280 > /* Line 1813 of yacc.c  */
5281 > #line 1953 "conf_parser.y"
5282      {
5283    if (conf_parser_ctx.pass == 2)
5284      yy_conf->flags |= SHARED_XLINE;
5285   }
5286      break;
5287  
5288 <  case 334:
5289 <
5290 < /* Line 1806 of yacc.c  */
5626 < #line 1996 "ircd_parser.y"
5288 >  case 341:
5289 > /* Line 1813 of yacc.c  */
5290 > #line 1957 "conf_parser.y"
5291      {
5292    if (conf_parser_ctx.pass == 2)
5293      yy_conf->flags |= SHARED_UNXLINE;
5294   }
5295      break;
5296  
5297 <  case 335:
5298 <
5299 < /* Line 1806 of yacc.c  */
5636 < #line 2000 "ircd_parser.y"
5297 >  case 342:
5298 > /* Line 1813 of yacc.c  */
5299 > #line 1961 "conf_parser.y"
5300      {
5301    if (conf_parser_ctx.pass == 2)
5302      yy_conf->flags |= SHARED_RESV;
5303   }
5304      break;
5305  
5306 <  case 336:
5307 <
5308 < /* Line 1806 of yacc.c  */
5646 < #line 2004 "ircd_parser.y"
5306 >  case 343:
5307 > /* Line 1813 of yacc.c  */
5308 > #line 1965 "conf_parser.y"
5309      {
5310    if (conf_parser_ctx.pass == 2)
5311      yy_conf->flags |= SHARED_UNRESV;
5312   }
5313      break;
5314  
5315 <  case 337:
5316 <
5317 < /* Line 1806 of yacc.c  */
5656 < #line 2008 "ircd_parser.y"
5315 >  case 344:
5316 > /* Line 1813 of yacc.c  */
5317 > #line 1969 "conf_parser.y"
5318      {
5319    if (conf_parser_ctx.pass == 2)
5320      yy_conf->flags |= SHARED_LOCOPS;
5321   }
5322      break;
5323  
5324 <  case 338:
5325 <
5326 < /* Line 1806 of yacc.c  */
5666 < #line 2012 "ircd_parser.y"
5324 >  case 345:
5325 > /* Line 1813 of yacc.c  */
5326 > #line 1973 "conf_parser.y"
5327      {
5328    if (conf_parser_ctx.pass == 2)
5329      yy_conf->flags = SHARED_ALL;
5330   }
5331      break;
5332  
5333 <  case 339:
5334 <
5335 < /* Line 1806 of yacc.c  */
5676 < #line 2021 "ircd_parser.y"
5333 >  case 346:
5334 > /* Line 1813 of yacc.c  */
5335 > #line 1982 "conf_parser.y"
5336      {
5337    if (conf_parser_ctx.pass == 2)
5338    {
5339 <    yy_conf = make_conf_item(SERVER_TYPE);
5681 <    yy_aconf = map_to_conf(yy_conf);
5339 >    yy_conf = conf_make(CONF_SERVER);
5340  
5341      /* defaults */
5342 <    yy_aconf->port = PORTNUM;
5342 >    yy_conf->port = PORTNUM;
5343    }
5344    else
5345    {
# Line 5691 | Line 5349 | yyreduce:
5349   }
5350      break;
5351  
5352 <  case 340:
5353 <
5354 < /* Line 1806 of yacc.c  */
5697 < #line 2036 "ircd_parser.y"
5352 >  case 347:
5353 > /* Line 1813 of yacc.c  */
5354 > #line 1996 "conf_parser.y"
5355      {
5356    if (conf_parser_ctx.pass == 2)
5357    {
5358 <    struct CollectItem *yy_hconf=NULL;
5359 <    struct CollectItem *yy_lconf=NULL;
5360 <    dlink_node *ptr;
5361 <    dlink_node *next_ptr;
5362 < #ifdef HAVE_LIBCRYPTO
5363 <    if (yy_aconf->host &&
5364 <        ((yy_aconf->passwd && yy_aconf->spasswd) ||
5365 <         (yy_aconf->rsa_public_key && IsConfCryptLink(yy_aconf))))
5709 < #else /* !HAVE_LIBCRYPTO */
5710 <      if (yy_aconf->host && !IsConfCryptLink(yy_aconf) &&
5711 <          yy_aconf->passwd && yy_aconf->spasswd)
5712 < #endif /* !HAVE_LIBCRYPTO */
5713 <        {
5714 <          if (conf_add_server(yy_conf, class_name) == -1)
5715 <          {
5716 <            delete_conf_item(yy_conf);
5717 <            yy_conf = NULL;
5718 <            yy_aconf = NULL;
5719 <          }
5720 <        }
5721 <        else
5722 <        {
5723 <          /* Even if yy_conf ->name is NULL
5724 <           * should still unhook any hub/leaf confs still pending
5725 <           */
5726 <          unhook_hub_leaf_confs();
5727 <
5728 <          if (yy_conf->name != NULL)
5729 <          {
5730 < #ifndef HAVE_LIBCRYPTO
5731 <            if (IsConfCryptLink(yy_aconf))
5732 <              yyerror("Ignoring connect block -- no OpenSSL support");
5733 < #else
5734 <            if (IsConfCryptLink(yy_aconf) && !yy_aconf->rsa_public_key)
5735 <              yyerror("Ignoring connect block -- missing key");
5736 < #endif
5737 <            if (yy_aconf->host == NULL)
5738 <              yyerror("Ignoring connect block -- missing host");
5739 <            else if (!IsConfCryptLink(yy_aconf) &&
5740 <                    (!yy_aconf->passwd || !yy_aconf->spasswd))
5741 <              yyerror("Ignoring connect block -- missing password");
5742 <          }
5743 <
5744 <
5745 <          /* XXX
5746 <           * This fixes a try_connections() core (caused by invalid class_ptr
5747 <           * pointers) reported by metalrock. That's an ugly fix, but there
5748 <           * is currently no better way. The entire config subsystem needs an
5749 <           * rewrite ASAP. make_conf_item() shouldn't really add things onto
5750 <           * a doubly linked list immediately without any sanity checks!  -Michael
5751 <           */
5752 <          delete_conf_item(yy_conf);
5753 <
5754 <          yy_aconf = NULL;
5755 <          yy_conf = NULL;
5756 <        }
5757 <
5758 <      /*
5759 <       * yy_conf is still pointing at the server that is having
5760 <       * a connect block built for it. This means, y_aconf->name
5761 <       * points to the actual irc name this server will be known as.
5762 <       * Now this new server has a set or even just one hub_mask (or leaf_mask)
5763 <       * given in the link list at yy_hconf. Fill in the HUB confs
5764 <       * from this link list now.
5765 <       */        
5766 <      DLINK_FOREACH_SAFE(ptr, next_ptr, hub_conf_list.head)
5358 >    if (yy_conf->host && yy_conf->passwd && yy_conf->spasswd)
5359 >    {
5360 >      if (conf_add_server(yy_conf, class_name) == -1)
5361 >        conf_free(yy_conf);
5362 >    }
5363 >    else
5364 >    {
5365 >      if (yy_conf->name != NULL)
5366        {
5367 <        struct ConfItem *new_hub_conf;
5368 <        struct MatchItem *match_item;
5369 <
5370 <        yy_hconf = ptr->data;
5772 <
5773 <        /* yy_conf == NULL is a fatal error for this connect block! */
5774 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5775 <        {
5776 <          new_hub_conf = make_conf_item(HUB_TYPE);
5777 <          match_item = (struct MatchItem *)map_to_conf(new_hub_conf);
5778 <          DupString(new_hub_conf->name, yy_conf->name);
5779 <          if (yy_hconf->user != NULL)
5780 <            DupString(match_item->user, yy_hconf->user);
5781 <          else
5782 <            DupString(match_item->user, "*");
5783 <          if (yy_hconf->host != NULL)
5784 <            DupString(match_item->host, yy_hconf->host);
5785 <          else
5786 <            DupString(match_item->host, "*");
5787 <        }
5788 <        dlinkDelete(&yy_hconf->node, &hub_conf_list);
5789 <        free_collect_item(yy_hconf);
5367 >        if (yy_conf->host == NULL)
5368 >          yyerror("Ignoring connect block -- missing host");
5369 >        else if (!yy_conf->passwd || !yy_conf->spasswd)
5370 >          yyerror("Ignoring connect block -- missing password");
5371        }
5372  
5373 <      /* Ditto for the LEAF confs */
5374 <
5375 <      DLINK_FOREACH_SAFE(ptr, next_ptr, leaf_conf_list.head)
5376 <      {
5377 <        struct ConfItem *new_leaf_conf;
5378 <        struct MatchItem *match_item;
5379 <
5380 <        yy_lconf = ptr->data;
5373 >      /* XXX
5374 >       * This fixes a try_connections() core (caused by invalid class_ptr
5375 >       * pointers) reported by metalrock. That's an ugly fix, but there
5376 >       * is currently no better way. The entire config subsystem needs an
5377 >       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5378 >       * a doubly linked list immediately without any sanity checks!  -Michael
5379 >       */
5380 >      conf_free(yy_conf);
5381 >    }
5382  
5383 <        if ((yy_conf != NULL) && (yy_conf->name != NULL))
5384 <        {
5385 <          new_leaf_conf = make_conf_item(LEAF_TYPE);
5804 <          match_item = (struct MatchItem *)map_to_conf(new_leaf_conf);
5805 <          DupString(new_leaf_conf->name, yy_conf->name);
5806 <          if (yy_lconf->user != NULL)
5807 <            DupString(match_item->user, yy_lconf->user);
5808 <          else
5809 <            DupString(match_item->user, "*");
5810 <          if (yy_lconf->host != NULL)
5811 <            DupString(match_item->host, yy_lconf->host);
5812 <          else
5813 <            DupString(match_item->host, "*");
5814 <        }
5815 <        dlinkDelete(&yy_lconf->node, &leaf_conf_list);
5816 <        free_collect_item(yy_lconf);
5817 <      }
5818 <      MyFree(class_name);
5819 <      class_name = NULL;
5820 <      yy_conf = NULL;
5821 <      yy_aconf = NULL;
5383 >    MyFree(class_name);
5384 >    class_name = NULL;
5385 >    yy_conf = NULL;
5386    }
5387   }
5388      break;
5389  
5390 <  case 358:
5391 <
5392 < /* Line 1806 of yacc.c  */
5829 < #line 2173 "ircd_parser.y"
5390 >  case 364:
5391 > /* Line 1813 of yacc.c  */
5392 > #line 2039 "conf_parser.y"
5393      {
5394    if (conf_parser_ctx.pass == 2)
5395    {
5833    if (yy_conf->name != NULL)
5834      yyerror("Multiple connect name entry");
5835
5396      MyFree(yy_conf->name);
5397      DupString(yy_conf->name, yylval.string);
5398    }
5399   }
5400      break;
5401  
5402 <  case 359:
5403 <
5404 < /* Line 1806 of yacc.c  */
5845 < #line 2185 "ircd_parser.y"
5402 >  case 365:
5403 > /* Line 1813 of yacc.c  */
5404 > #line 2048 "conf_parser.y"
5405      {
5406    if (conf_parser_ctx.pass == 2)
5407    {
5408 <    MyFree(yy_aconf->host);
5409 <    DupString(yy_aconf->host, yylval.string);
5408 >    MyFree(yy_conf->host);
5409 >    DupString(yy_conf->host, yylval.string);
5410    }
5411   }
5412      break;
5413  
5414 <  case 360:
5415 <
5416 < /* Line 1806 of yacc.c  */
5858 < #line 2194 "ircd_parser.y"
5414 >  case 366:
5415 > /* Line 1813 of yacc.c  */
5416 > #line 2057 "conf_parser.y"
5417      {
5418    if (conf_parser_ctx.pass == 2)
5419    {
# Line 5873 | Line 5431 | yyreduce:
5431      {
5432        assert(res != NULL);
5433  
5434 <      memcpy(&yy_aconf->my_ipnum, res->ai_addr, res->ai_addrlen);
5435 <      yy_aconf->my_ipnum.ss.ss_family = res->ai_family;
5436 <      yy_aconf->my_ipnum.ss_len = res->ai_addrlen;
5434 >      memcpy(&yy_conf->bind, res->ai_addr, res->ai_addrlen);
5435 >      yy_conf->bind.ss.ss_family = res->ai_family;
5436 >      yy_conf->bind.ss_len = res->ai_addrlen;
5437        freeaddrinfo(res);
5438      }
5439    }
5440   }
5441      break;
5442  
5443 <  case 361:
5444 <
5445 < /* Line 1806 of yacc.c  */
5888 < #line 2220 "ircd_parser.y"
5443 >  case 367:
5444 > /* Line 1813 of yacc.c  */
5445 > #line 2083 "conf_parser.y"
5446      {
5447    if (conf_parser_ctx.pass == 2)
5448    {
# Line 5894 | Line 5451 | yyreduce:
5451      else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5452        yyerror("Server passwords cannot contain spaces");
5453      else {
5454 <      if (yy_aconf->spasswd != NULL)
5455 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5454 >      if (yy_conf->spasswd != NULL)
5455 >        memset(yy_conf->spasswd, 0, strlen(yy_conf->spasswd));
5456  
5457 <      MyFree(yy_aconf->spasswd);
5458 <      DupString(yy_aconf->spasswd, yylval.string);
5457 >      MyFree(yy_conf->spasswd);
5458 >      DupString(yy_conf->spasswd, yylval.string);
5459      }
5460    }
5461   }
5462      break;
5463  
5464 <  case 362:
5465 <
5466 < /* Line 1806 of yacc.c  */
5910 < #line 2238 "ircd_parser.y"
5464 >  case 368:
5465 > /* Line 1813 of yacc.c  */
5466 > #line 2101 "conf_parser.y"
5467      {
5468    if (conf_parser_ctx.pass == 2)
5469    {
# Line 5916 | Line 5472 | yyreduce:
5472      else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5473        yyerror("Server passwords cannot contain spaces");
5474      else {
5475 <      if (yy_aconf->passwd != NULL)
5476 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5475 >      if (yy_conf->passwd != NULL)
5476 >        memset(yy_conf->passwd, 0, strlen(yy_conf->passwd));
5477  
5478 <      MyFree(yy_aconf->passwd);
5479 <      DupString(yy_aconf->passwd, yylval.string);
5478 >      MyFree(yy_conf->passwd);
5479 >      DupString(yy_conf->passwd, yylval.string);
5480      }
5481    }
5482   }
5483      break;
5484  
5485 <  case 363:
5486 <
5487 < /* Line 1806 of yacc.c  */
5932 < #line 2256 "ircd_parser.y"
5933 <    {
5934 <  if (conf_parser_ctx.pass == 2)
5935 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5936 < }
5937 <    break;
5938 <
5939 <  case 364:
5940 <
5941 < /* Line 1806 of yacc.c  */
5942 < #line 2262 "ircd_parser.y"
5485 >  case 369:
5486 > /* Line 1813 of yacc.c  */
5487 > #line 2119 "conf_parser.y"
5488      {
5489    if (conf_parser_ctx.pass == 2)
5490 <    yy_aconf->aftype = AF_INET;
5946 < }
5947 <    break;
5948 <
5949 <  case 365:
5950 <
5951 < /* Line 1806 of yacc.c  */
5952 < #line 2266 "ircd_parser.y"
5953 <    {
5954 < #ifdef IPV6
5955 <  if (conf_parser_ctx.pass == 2)
5956 <    yy_aconf->aftype = AF_INET6;
5957 < #endif
5958 < }
5959 <    break;
5960 <
5961 <  case 366:
5962 <
5963 < /* Line 1806 of yacc.c  */
5964 < #line 2274 "ircd_parser.y"
5965 <    {
5490 >    yy_conf->port = (yyvsp[(3) - (4)].number);
5491   }
5492      break;
5493  
5494    case 370:
5495 <
5496 < /* Line 1806 of yacc.c  */
5972 < #line 2279 "ircd_parser.y"
5495 > /* Line 1813 of yacc.c  */
5496 > #line 2125 "conf_parser.y"
5497      {
5498    if (conf_parser_ctx.pass == 2)
5499 < #ifndef HAVE_LIBZ
5976 <    yyerror("Ignoring flags = compressed; -- no zlib support");
5977 < #else
5978 < {
5979 <   SetConfCompressed(yy_aconf);
5980 < }
5981 < #endif
5499 >    yy_conf->aftype = AF_INET;
5500   }
5501      break;
5502  
5503    case 371:
5504 <
5505 < /* Line 1806 of yacc.c  */
5988 < #line 2289 "ircd_parser.y"
5504 > /* Line 1813 of yacc.c  */
5505 > #line 2129 "conf_parser.y"
5506      {
5507 + #ifdef IPV6
5508    if (conf_parser_ctx.pass == 2)
5509 <    SetConfCryptLink(yy_aconf);
5509 >    yy_conf->aftype = AF_INET6;
5510 > #endif
5511   }
5512      break;
5513  
5514    case 372:
5515 <
5516 < /* Line 1806 of yacc.c  */
5998 < #line 2293 "ircd_parser.y"
5999 <    {
6000 <  if (conf_parser_ctx.pass == 2)
6001 <    SetConfAllowAutoConn(yy_aconf);
6002 < }
6003 <    break;
6004 <
6005 <  case 373:
6006 <
6007 < /* Line 1806 of yacc.c  */
6008 < #line 2297 "ircd_parser.y"
5515 > /* Line 1813 of yacc.c  */
5516 > #line 2137 "conf_parser.y"
5517      {
6010  if (conf_parser_ctx.pass == 2)
6011    SetConfAwayBurst(yy_aconf);
5518   }
5519      break;
5520  
5521 <  case 374:
5522 <
5523 < /* Line 1806 of yacc.c  */
6018 < #line 2301 "ircd_parser.y"
5521 >  case 376:
5522 > /* Line 1813 of yacc.c  */
5523 > #line 2142 "conf_parser.y"
5524      {
5525    if (conf_parser_ctx.pass == 2)
5526 <    SetConfTopicBurst(yy_aconf);
5526 >    SetConfAllowAutoConn(yy_conf);
5527   }
5528      break;
5529  
5530 <  case 375:
5531 <
5532 < /* Line 1806 of yacc.c  */
6028 < #line 2307 "ircd_parser.y"
5530 >  case 377:
5531 > /* Line 1813 of yacc.c  */
5532 > #line 2146 "conf_parser.y"
5533      {
6030 #ifdef HAVE_LIBCRYPTO
5534    if (conf_parser_ctx.pass == 2)
5535 <  {
6033 <    BIO *file;
6034 <
6035 <    if (yy_aconf->rsa_public_key != NULL)
6036 <    {
6037 <      RSA_free(yy_aconf->rsa_public_key);
6038 <      yy_aconf->rsa_public_key = NULL;
6039 <    }
6040 <
6041 <    if (yy_aconf->rsa_public_key_file != NULL)
6042 <    {
6043 <      MyFree(yy_aconf->rsa_public_key_file);
6044 <      yy_aconf->rsa_public_key_file = NULL;
6045 <    }
6046 <
6047 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
6048 <
6049 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
6050 <    {
6051 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
6052 <      break;
6053 <    }
6054 <
6055 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
6056 <
6057 <    if (yy_aconf->rsa_public_key == NULL)
6058 <    {
6059 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
6060 <      break;
6061 <    }
6062 <      
6063 <    BIO_set_close(file, BIO_CLOSE);
6064 <    BIO_free(file);
6065 <  }
6066 < #endif /* HAVE_LIBCRYPTO */
5535 >    SetConfSSL(yy_conf);
5536   }
5537      break;
5538  
5539 <  case 376:
5540 <
5541 < /* Line 1806 of yacc.c  */
6073 < #line 2348 "ircd_parser.y"
5539 >  case 378:
5540 > /* Line 1813 of yacc.c  */
5541 > #line 2152 "conf_parser.y"
5542      {
5543    if (conf_parser_ctx.pass == 2)
5544    {
5545      if (yylval.number)
5546 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5546 >      yy_conf->flags |= CONF_FLAGS_ENCRYPTED;
5547      else
5548 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5548 >      yy_conf->flags &= ~CONF_FLAGS_ENCRYPTED;
5549    }
5550   }
5551      break;
5552  
5553 <  case 377:
5554 <
5555 < /* Line 1806 of yacc.c  */
6088 < #line 2359 "ircd_parser.y"
5553 >  case 379:
5554 > /* Line 1813 of yacc.c  */
5555 > #line 2163 "conf_parser.y"
5556      {
5557    if (conf_parser_ctx.pass == 2)
5558    {
5559 <    struct CollectItem *yy_tmp;
5559 >    char *mask;
5560  
5561 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
5562 <    DupString(yy_tmp->host, yylval.string);
6096 <    DupString(yy_tmp->user, "*");
6097 <    dlinkAdd(yy_tmp, &yy_tmp->node, &hub_conf_list);
5561 >    DupString(mask, yylval.string);
5562 >    dlinkAdd(mask, make_dlink_node(), &yy_conf->hub_list);
5563    }
5564   }
5565      break;
5566  
5567 <  case 378:
5568 <
5569 < /* Line 1806 of yacc.c  */
6105 < #line 2372 "ircd_parser.y"
5567 >  case 380:
5568 > /* Line 1813 of yacc.c  */
5569 > #line 2174 "conf_parser.y"
5570      {
5571    if (conf_parser_ctx.pass == 2)
5572    {
5573 <    struct CollectItem *yy_tmp;
5573 >    char *mask;
5574  
5575 <    yy_tmp = (struct CollectItem *)MyMalloc(sizeof(struct CollectItem));
5576 <    DupString(yy_tmp->host, yylval.string);
6113 <    DupString(yy_tmp->user, "*");
6114 <    dlinkAdd(yy_tmp, &yy_tmp->node, &leaf_conf_list);
5575 >    DupString(mask, yylval.string);
5576 >    dlinkAdd(mask, make_dlink_node(), &yy_conf->leaf_list);
5577    }
5578   }
5579      break;
5580  
5581 <  case 379:
5582 <
5583 < /* Line 1806 of yacc.c  */
6122 < #line 2385 "ircd_parser.y"
5581 >  case 381:
5582 > /* Line 1813 of yacc.c  */
5583 > #line 2185 "conf_parser.y"
5584      {
5585    if (conf_parser_ctx.pass == 2)
5586    {
# Line 6129 | Line 5590 | yyreduce:
5590   }
5591      break;
5592  
5593 <  case 380:
5594 <
5595 < /* Line 1806 of yacc.c  */
6135 < #line 2394 "ircd_parser.y"
5593 >  case 382:
5594 > /* Line 1813 of yacc.c  */
5595 > #line 2194 "conf_parser.y"
5596      {
5597   #ifdef HAVE_LIBCRYPTO
5598    if (conf_parser_ctx.pass == 2)
5599    {
5600 <    struct EncCapability *ecap;
5601 <    const char *cipher_name;
6142 <    int found = 0;
6143 <
6144 <    yy_aconf->cipher_preference = NULL;
6145 <    cipher_name = yylval.string;
6146 <
6147 <    for (ecap = CipherTable; ecap->name; ecap++)
6148 <    {
6149 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6150 <          (ecap->cap & CAP_ENC_MASK))
6151 <      {
6152 <        yy_aconf->cipher_preference = ecap;
6153 <        found = 1;
6154 <        break;
6155 <      }
6156 <    }
6157 <
6158 <    if (!found)
6159 <      yyerror("Invalid cipher");
5600 >    MyFree(yy_conf->cipher_list);
5601 >    DupString(yy_conf->cipher_list, yylval.string);
5602    }
5603   #else
5604    if (conf_parser_ctx.pass == 2)
5605 <    yyerror("Ignoring cipher_preference -- no OpenSSL support");
5605 >    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5606   #endif
5607   }
5608      break;
5609  
5610 <  case 381:
5611 <
5612 < /* Line 1806 of yacc.c  */
6171 < #line 2429 "ircd_parser.y"
5610 >  case 383:
5611 > /* Line 1813 of yacc.c  */
5612 > #line 2212 "conf_parser.y"
5613      {
5614    if (conf_parser_ctx.pass == 2)
5615    {
# Line 6178 | Line 5619 | yyreduce:
5619   }
5620      break;
5621  
5622 <  case 382:
5623 <
5624 < /* Line 1806 of yacc.c  */
6184 < #line 2436 "ircd_parser.y"
5622 >  case 384:
5623 > /* Line 1813 of yacc.c  */
5624 > #line 2219 "conf_parser.y"
5625      {
5626    if (conf_parser_ctx.pass == 2)
5627    {
# Line 6202 | Line 5642 | yyreduce:
5642            break;
5643          }
5644  
5645 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5646 <        yy_aconf->regexuser = exp_user;
5647 <        yy_aconf->regexhost = exp_host;
5645 >        yy_conf = conf_make(CONF_RKLINE);
5646 >        yy_conf->regexuser = exp_user;
5647 >        yy_conf->regexhost = exp_host;
5648  
5649 <        DupString(yy_aconf->user, userbuf);
5650 <        DupString(yy_aconf->host, hostbuf);
5649 >        DupString(yy_conf->user, userbuf);
5650 >        DupString(yy_conf->host, hostbuf);
5651  
5652          if (reasonbuf[0])
5653 <          DupString(yy_aconf->reason, reasonbuf);
5653 >          DupString(yy_conf->reason, reasonbuf);
5654          else
5655 <          DupString(yy_aconf->reason, "No reason");
5655 >          DupString(yy_conf->reason, "No reason");
5656   #else
5657          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5658          break;
# Line 6220 | Line 5660 | yyreduce:
5660        }
5661        else
5662        {
5663 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5663 >        yy_conf = conf_make(CONF_KLINE);
5664  
5665 <        DupString(yy_aconf->user, userbuf);
5666 <        DupString(yy_aconf->host, hostbuf);
5665 >        DupString(yy_conf->user, userbuf);
5666 >        DupString(yy_conf->host, hostbuf);
5667  
5668          if (reasonbuf[0])
5669 <          DupString(yy_aconf->reason, reasonbuf);
5669 >          DupString(yy_conf->reason, reasonbuf);
5670          else
5671 <          DupString(yy_aconf->reason, "No reason");
5672 <        add_conf_by_address(CONF_KILL, yy_aconf);
5671 >          DupString(yy_conf->reason, "No reason");
5672 >        add_conf_by_address(CONF_KLINE, yy_conf);
5673        }
5674      }
5675  
5676 <    yy_aconf = NULL;
5676 >    yy_conf = NULL;
5677    }
5678   }
5679      break;
5680  
5681 <  case 383:
5682 <
5683 < /* Line 1806 of yacc.c  */
6244 < #line 2492 "ircd_parser.y"
5681 >  case 385:
5682 > /* Line 1813 of yacc.c  */
5683 > #line 2275 "conf_parser.y"
5684      {
5685   }
5686      break;
5687  
5688 <  case 387:
5689 <
5690 < /* Line 1806 of yacc.c  */
6252 < #line 2497 "ircd_parser.y"
5688 >  case 389:
5689 > /* Line 1813 of yacc.c  */
5690 > #line 2280 "conf_parser.y"
5691      {
5692    if (conf_parser_ctx.pass == 2)
5693      regex_ban = 1;
5694   }
5695      break;
5696  
5697 <  case 394:
5698 <
5699 < /* Line 1806 of yacc.c  */
6262 < #line 2506 "ircd_parser.y"
5697 >  case 396:
5698 > /* Line 1813 of yacc.c  */
5699 > #line 2289 "conf_parser.y"
5700      {
5701    if (conf_parser_ctx.pass == 2)
5702    {
# Line 6279 | Line 5716 | yyreduce:
5716   }
5717      break;
5718  
5719 <  case 395:
5720 <
5721 < /* Line 1806 of yacc.c  */
6285 < #line 2525 "ircd_parser.y"
5719 >  case 397:
5720 > /* Line 1813 of yacc.c  */
5721 > #line 2308 "conf_parser.y"
5722      {
5723    if (conf_parser_ctx.pass == 2)
5724      strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5725   }
5726      break;
5727  
5728 <  case 396:
5729 <
5730 < /* Line 1806 of yacc.c  */
6295 < #line 2534 "ircd_parser.y"
5728 >  case 398:
5729 > /* Line 1813 of yacc.c  */
5730 > #line 2317 "conf_parser.y"
5731      {
5732    if (conf_parser_ctx.pass == 2)
5733      hostbuf[0] = reasonbuf[0] = '\0';
5734   }
5735      break;
5736  
5737 <  case 397:
5738 <
5739 < /* Line 1806 of yacc.c  */
6305 < #line 2538 "ircd_parser.y"
5737 >  case 399:
5738 > /* Line 1813 of yacc.c  */
5739 > #line 2321 "conf_parser.y"
5740      {
5741    if (conf_parser_ctx.pass == 2)
5742    {
5743      if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5744      {
5745 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5746 <      DupString(yy_aconf->host, hostbuf);
5745 >      yy_conf = conf_make(CONF_DLINE);
5746 >      DupString(yy_conf->host, hostbuf);
5747  
5748        if (reasonbuf[0])
5749 <        DupString(yy_aconf->reason, reasonbuf);
5749 >        DupString(yy_conf->reason, reasonbuf);
5750        else
5751 <        DupString(yy_aconf->reason, "No reason");
5752 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5753 <      yy_aconf = NULL;
5751 >        DupString(yy_conf->reason, "No reason");
5752 >      add_conf_by_address(CONF_DLINE, yy_conf);
5753 >      yy_conf = NULL;
5754      }
5755    }
5756   }
5757      break;
5758  
5759 <  case 403:
5760 <
5761 < /* Line 1806 of yacc.c  */
6328 < #line 2560 "ircd_parser.y"
5759 >  case 405:
5760 > /* Line 1813 of yacc.c  */
5761 > #line 2343 "conf_parser.y"
5762      {
5763    if (conf_parser_ctx.pass == 2)
5764      strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5765   }
5766      break;
5767  
5768 <  case 404:
5769 <
5770 < /* Line 1806 of yacc.c  */
6338 < #line 2566 "ircd_parser.y"
5768 >  case 406:
5769 > /* Line 1813 of yacc.c  */
5770 > #line 2349 "conf_parser.y"
5771      {
5772    if (conf_parser_ctx.pass == 2)
5773      strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5774   }
5775      break;
5776  
5777 <  case 410:
5778 <
5779 < /* Line 1806 of yacc.c  */
6348 < #line 2580 "ircd_parser.y"
5777 >  case 412:
5778 > /* Line 1813 of yacc.c  */
5779 > #line 2363 "conf_parser.y"
5780      {
5781    if (conf_parser_ctx.pass == 2)
5782    {
5783      if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5784      {
5785 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5786 <      DupString(yy_aconf->host, yylval.string);
5785 >      yy_conf = conf_make(CONF_EXEMPT);
5786 >      DupString(yy_conf->host, yylval.string);
5787  
5788 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5789 <      yy_aconf = NULL;
5788 >      add_conf_by_address(CONF_EXEMPT, yy_conf);
5789 >      yy_conf = NULL;
5790      }
5791    }
5792   }
5793      break;
5794  
5795 <  case 411:
5796 <
5797 < /* Line 1806 of yacc.c  */
6367 < #line 2598 "ircd_parser.y"
5795 >  case 413:
5796 > /* Line 1813 of yacc.c  */
5797 > #line 2381 "conf_parser.y"
5798      {
5799    if (conf_parser_ctx.pass == 2)
5800    {
# Line 6374 | Line 5804 | yyreduce:
5804   }
5805      break;
5806  
5807 <  case 412:
5808 <
5809 < /* Line 1806 of yacc.c  */
6380 < #line 2605 "ircd_parser.y"
5807 >  case 414:
5808 > /* Line 1813 of yacc.c  */
5809 > #line 2388 "conf_parser.y"
5810      {
5811    if (conf_parser_ctx.pass == 2)
5812    {
# Line 6396 | Line 5825 | yyreduce:
5825            break;
5826          }
5827  
5828 <        yy_conf = make_conf_item(RXLINE_TYPE);
5829 <        yy_conf->regexpname = exp_p;
5828 >        yy_conf = conf_make(CONF_RXLINE);
5829 >        yy_conf->regexuser = exp_p;
5830   #else
5831          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5832          break;
5833   #endif
5834        }
5835        else
5836 <        yy_conf = make_conf_item(XLINE_TYPE);
5836 >        yy_conf = conf_make(CONF_XLINE);
5837  
6409      yy_match_item = map_to_conf(yy_conf);
5838        DupString(yy_conf->name, gecos_name);
5839  
5840        if (reasonbuf[0])
5841 <        DupString(yy_match_item->reason, reasonbuf);
5841 >        DupString(yy_conf->reason, reasonbuf);
5842        else
5843 <        DupString(yy_match_item->reason, "No reason");
5843 >        DupString(yy_conf->reason, "No reason");
5844      }
5845    }
5846   }
5847      break;
5848  
5849 <  case 413:
5850 <
5851 < /* Line 1806 of yacc.c  */
6424 < #line 2645 "ircd_parser.y"
5849 >  case 415:
5850 > /* Line 1813 of yacc.c  */
5851 > #line 2427 "conf_parser.y"
5852      {
5853   }
5854      break;
5855  
5856 <  case 417:
5857 <
5858 < /* Line 1806 of yacc.c  */
6432 < #line 2650 "ircd_parser.y"
5856 >  case 419:
5857 > /* Line 1813 of yacc.c  */
5858 > #line 2432 "conf_parser.y"
5859      {
5860    if (conf_parser_ctx.pass == 2)
5861      regex_ban = 1;
5862   }
5863      break;
5864  
5865 <  case 424:
5866 <
5867 < /* Line 1806 of yacc.c  */
6442 < #line 2659 "ircd_parser.y"
5865 >  case 426:
5866 > /* Line 1813 of yacc.c  */
5867 > #line 2441 "conf_parser.y"
5868      {
5869    if (conf_parser_ctx.pass == 2)
5870      strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5871   }
5872      break;
5873  
5874 <  case 425:
5875 <
5876 < /* Line 1806 of yacc.c  */
6452 < #line 2665 "ircd_parser.y"
5874 >  case 427:
5875 > /* Line 1813 of yacc.c  */
5876 > #line 2447 "conf_parser.y"
5877      {
5878    if (conf_parser_ctx.pass == 2)
5879      strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5880   }
5881      break;
5882  
5883 <  case 484:
5884 <
5885 < /* Line 1806 of yacc.c  */
6462 < #line 2710 "ircd_parser.y"
5883 >  case 481:
5884 > /* Line 1813 of yacc.c  */
5885 > #line 2492 "conf_parser.y"
5886      {
5887    ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5888   }
5889      break;
5890  
5891 <  case 485:
5892 <
5893 < /* Line 1806 of yacc.c  */
6471 < #line 2715 "ircd_parser.y"
5891 >  case 482:
5892 > /* Line 1813 of yacc.c  */
5893 > #line 2497 "conf_parser.y"
5894      {
5895 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5895 >  if (conf_parser_ctx.pass == 2)
5896 >    ConfigFileEntry.glines = yylval.number;
5897   }
5898      break;
5899  
5900 <  case 486:
5901 <
5902 < /* Line 1806 of yacc.c  */
6480 < #line 2720 "ircd_parser.y"
5900 >  case 483:
5901 > /* Line 1813 of yacc.c  */
5902 > #line 2503 "conf_parser.y"
5903      {
5904 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5904 >  if (conf_parser_ctx.pass == 2)
5905 >    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5906   }
5907      break;
5908  
5909 <  case 487:
5910 <
5911 < /* Line 1806 of yacc.c  */
6489 < #line 2725 "ircd_parser.y"
5909 >  case 484:
5910 > /* Line 1813 of yacc.c  */
5911 > #line 2509 "conf_parser.y"
5912      {
5913 <  ConfigFileEntry.use_whois_actually = yylval.number;
5913 >  if (conf_parser_ctx.pass == 2)
5914 >    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5915   }
5916      break;
5917  
5918 <  case 488:
5919 <
5920 < /* Line 1806 of yacc.c  */
6498 < #line 2730 "ircd_parser.y"
5918 >  case 485:
5919 > /* Line 1813 of yacc.c  */
5920 > #line 2515 "conf_parser.y"
5921      {
5922 <  GlobalSetOptions.rejecttime = yylval.number;
5922 >  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5923   }
5924      break;
5925  
5926 <  case 489:
5926 >  case 486:
5927 > /* Line 1813 of yacc.c  */
5928 > #line 2520 "conf_parser.y"
5929 >    {
5930 >  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5931 > }
5932 >    break;
5933  
5934 < /* Line 1806 of yacc.c  */
5935 < #line 2735 "ircd_parser.y"
5934 >  case 487:
5935 > /* Line 1813 of yacc.c  */
5936 > #line 2525 "conf_parser.y"
5937      {
5938    ConfigFileEntry.tkline_expire_notices = yylval.number;
5939   }
5940      break;
5941  
5942 <  case 490:
5943 <
5944 < /* Line 1806 of yacc.c  */
6516 < #line 2740 "ircd_parser.y"
5942 >  case 488:
5943 > /* Line 1813 of yacc.c  */
5944 > #line 2530 "conf_parser.y"
5945      {
5946    ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5947   }
5948      break;
5949  
5950 <  case 491:
5951 <
5952 < /* Line 1806 of yacc.c  */
6525 < #line 2745 "ircd_parser.y"
5950 >  case 489:
5951 > /* Line 1813 of yacc.c  */
5952 > #line 2535 "conf_parser.y"
5953      {
5954    ConfigFileEntry.hide_spoof_ips = yylval.number;
5955   }
5956      break;
5957  
5958 <  case 492:
5959 <
5960 < /* Line 1806 of yacc.c  */
6534 < #line 2750 "ircd_parser.y"
5958 >  case 490:
5959 > /* Line 1813 of yacc.c  */
5960 > #line 2540 "conf_parser.y"
5961      {
5962    ConfigFileEntry.ignore_bogus_ts = yylval.number;
5963   }
5964      break;
5965  
5966 <  case 493:
5967 <
5968 < /* Line 1806 of yacc.c  */
6543 < #line 2755 "ircd_parser.y"
5966 >  case 491:
5967 > /* Line 1813 of yacc.c  */
5968 > #line 2545 "conf_parser.y"
5969      {
5970    ConfigFileEntry.disable_remote = yylval.number;
5971   }
5972      break;
5973  
5974 <  case 494:
5975 <
5976 < /* Line 1806 of yacc.c  */
6552 < #line 2760 "ircd_parser.y"
5974 >  case 492:
5975 > /* Line 1813 of yacc.c  */
5976 > #line 2550 "conf_parser.y"
5977      {
5978    ConfigFileEntry.failed_oper_notice = yylval.number;
5979   }
5980      break;
5981  
5982 <  case 495:
5983 <
5984 < /* Line 1806 of yacc.c  */
6561 < #line 2765 "ircd_parser.y"
5982 >  case 493:
5983 > /* Line 1813 of yacc.c  */
5984 > #line 2555 "conf_parser.y"
5985      {
5986    ConfigFileEntry.anti_nick_flood = yylval.number;
5987   }
5988      break;
5989  
5990 <  case 496:
5991 <
5992 < /* Line 1806 of yacc.c  */
6570 < #line 2770 "ircd_parser.y"
5990 >  case 494:
5991 > /* Line 1813 of yacc.c  */
5992 > #line 2560 "conf_parser.y"
5993      {
5994    ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5995   }
5996      break;
5997  
5998 <  case 497:
5999 <
6000 < /* Line 1806 of yacc.c  */
6579 < #line 2775 "ircd_parser.y"
5998 >  case 495:
5999 > /* Line 1813 of yacc.c  */
6000 > #line 2565 "conf_parser.y"
6001      {
6002    ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6003   }
6004      break;
6005  
6006 <  case 498:
6007 <
6008 < /* Line 1806 of yacc.c  */
6588 < #line 2780 "ircd_parser.y"
6006 >  case 496:
6007 > /* Line 1813 of yacc.c  */
6008 > #line 2570 "conf_parser.y"
6009      {
6010    ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6011   }
6012      break;
6013  
6014 <  case 499:
6015 <
6016 < /* Line 1806 of yacc.c  */
6597 < #line 2785 "ircd_parser.y"
6014 >  case 497:
6015 > /* Line 1813 of yacc.c  */
6016 > #line 2575 "conf_parser.y"
6017      {
6018    ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6019   }
6020      break;
6021  
6022 <  case 500:
6023 <
6024 < /* Line 1806 of yacc.c  */
6606 < #line 2790 "ircd_parser.y"
6022 >  case 498:
6023 > /* Line 1813 of yacc.c  */
6024 > #line 2580 "conf_parser.y"
6025      {
6026    ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6027   }
6028      break;
6029  
6030 <  case 501:
6031 <
6032 < /* Line 1806 of yacc.c  */
6615 < #line 2795 "ircd_parser.y"
6030 >  case 499:
6031 > /* Line 1813 of yacc.c  */
6032 > #line 2585 "conf_parser.y"
6033      {
6034    if (conf_parser_ctx.pass == 2)
6035      ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6036   }
6037      break;
6038  
6039 <  case 502:
6040 <
6041 < /* Line 1806 of yacc.c  */
6625 < #line 2801 "ircd_parser.y"
6039 >  case 500:
6040 > /* Line 1813 of yacc.c  */
6041 > #line 2591 "conf_parser.y"
6042      {
6043    if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6044    {
# Line 6634 | Line 6050 | yyreduce:
6050   }
6051      break;
6052  
6053 <  case 503:
6054 <
6055 < /* Line 1806 of yacc.c  */
6640 < #line 2812 "ircd_parser.y"
6641 <    {
6642 <  ConfigFileEntry.kline_with_reason = yylval.number;
6643 < }
6644 <    break;
6645 <
6646 <  case 504:
6647 <
6648 < /* Line 1806 of yacc.c  */
6649 < #line 2817 "ircd_parser.y"
6650 <    {
6651 <  if (conf_parser_ctx.pass == 2)
6652 <  {
6653 <    MyFree(ConfigFileEntry.kline_reason);
6654 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6655 <  }
6656 < }
6657 <    break;
6658 <
6659 <  case 505:
6660 <
6661 < /* Line 1806 of yacc.c  */
6662 < #line 2826 "ircd_parser.y"
6053 >  case 501:
6054 > /* Line 1813 of yacc.c  */
6055 > #line 2602 "conf_parser.y"
6056      {
6057    ConfigFileEntry.invisible_on_connect = yylval.number;
6058   }
6059      break;
6060  
6061 <  case 506:
6062 <
6063 < /* Line 1806 of yacc.c  */
6671 < #line 2831 "ircd_parser.y"
6061 >  case 502:
6062 > /* Line 1813 of yacc.c  */
6063 > #line 2607 "conf_parser.y"
6064      {
6065    ConfigFileEntry.warn_no_nline = yylval.number;
6066   }
6067      break;
6068  
6069 <  case 507:
6070 <
6071 < /* Line 1806 of yacc.c  */
6680 < #line 2836 "ircd_parser.y"
6069 >  case 503:
6070 > /* Line 1813 of yacc.c  */
6071 > #line 2612 "conf_parser.y"
6072      {
6073    ConfigFileEntry.stats_e_disabled = yylval.number;
6074   }
6075      break;
6076  
6077 <  case 508:
6078 <
6079 < /* Line 1806 of yacc.c  */
6689 < #line 2841 "ircd_parser.y"
6077 >  case 504:
6078 > /* Line 1813 of yacc.c  */
6079 > #line 2617 "conf_parser.y"
6080      {
6081    ConfigFileEntry.stats_o_oper_only = yylval.number;
6082   }
6083      break;
6084  
6085 <  case 509:
6086 <
6087 < /* Line 1806 of yacc.c  */
6698 < #line 2846 "ircd_parser.y"
6085 >  case 505:
6086 > /* Line 1813 of yacc.c  */
6087 > #line 2622 "conf_parser.y"
6088      {
6089    ConfigFileEntry.stats_P_oper_only = yylval.number;
6090   }
6091      break;
6092  
6093 <  case 510:
6094 <
6095 < /* Line 1806 of yacc.c  */
6707 < #line 2851 "ircd_parser.y"
6093 >  case 506:
6094 > /* Line 1813 of yacc.c  */
6095 > #line 2627 "conf_parser.y"
6096      {
6097    ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6098   }
6099      break;
6100  
6101 <  case 511:
6102 <
6103 < /* Line 1806 of yacc.c  */
6716 < #line 2854 "ircd_parser.y"
6101 >  case 507:
6102 > /* Line 1813 of yacc.c  */
6103 > #line 2630 "conf_parser.y"
6104      {
6105    ConfigFileEntry.stats_k_oper_only = 1;
6106   }
6107      break;
6108  
6109 <  case 512:
6110 <
6111 < /* Line 1806 of yacc.c  */
6725 < #line 2859 "ircd_parser.y"
6109 >  case 508:
6110 > /* Line 1813 of yacc.c  */
6111 > #line 2635 "conf_parser.y"
6112      {
6113    ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6114   }
6115      break;
6116  
6117 <  case 513:
6118 <
6119 < /* Line 1806 of yacc.c  */
6734 < #line 2862 "ircd_parser.y"
6117 >  case 509:
6118 > /* Line 1813 of yacc.c  */
6119 > #line 2638 "conf_parser.y"
6120      {
6121    ConfigFileEntry.stats_i_oper_only = 1;
6122   }
6123      break;
6124  
6125 <  case 514:
6126 <
6127 < /* Line 1806 of yacc.c  */
6743 < #line 2867 "ircd_parser.y"
6125 >  case 510:
6126 > /* Line 1813 of yacc.c  */
6127 > #line 2643 "conf_parser.y"
6128      {
6129    ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6130   }
6131      break;
6132  
6133 <  case 515:
6134 <
6135 < /* Line 1806 of yacc.c  */
6752 < #line 2872 "ircd_parser.y"
6133 >  case 511:
6134 > /* Line 1813 of yacc.c  */
6135 > #line 2648 "conf_parser.y"
6136      {
6137    ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6138   }
6139      break;
6140  
6141 <  case 516:
6142 <
6143 < /* Line 1806 of yacc.c  */
6761 < #line 2877 "ircd_parser.y"
6141 >  case 512:
6142 > /* Line 1813 of yacc.c  */
6143 > #line 2653 "conf_parser.y"
6144      {
6145    ConfigFileEntry.opers_bypass_callerid = yylval.number;
6146   }
6147      break;
6148  
6149 <  case 517:
6150 <
6151 < /* Line 1806 of yacc.c  */
6770 < #line 2882 "ircd_parser.y"
6149 >  case 513:
6150 > /* Line 1813 of yacc.c  */
6151 > #line 2658 "conf_parser.y"
6152      {
6153    ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6154   }
6155      break;
6156  
6157 <  case 518:
6158 <
6159 < /* Line 1806 of yacc.c  */
6779 < #line 2887 "ircd_parser.y"
6157 >  case 514:
6158 > /* Line 1813 of yacc.c  */
6159 > #line 2663 "conf_parser.y"
6160      {
6161    ConfigFileEntry.short_motd = yylval.number;
6162   }
6163      break;
6164  
6165 <  case 519:
6166 <
6167 < /* Line 1806 of yacc.c  */
6788 < #line 2892 "ircd_parser.y"
6165 >  case 515:
6166 > /* Line 1813 of yacc.c  */
6167 > #line 2668 "conf_parser.y"
6168      {
6169    ConfigFileEntry.no_oper_flood = yylval.number;
6170   }
6171      break;
6172  
6173 <  case 520:
6174 <
6175 < /* Line 1806 of yacc.c  */
6797 < #line 2897 "ircd_parser.y"
6173 >  case 516:
6174 > /* Line 1813 of yacc.c  */
6175 > #line 2673 "conf_parser.y"
6176      {
6177    ConfigFileEntry.true_no_oper_flood = yylval.number;
6178   }
6179      break;
6180  
6181 <  case 521:
6182 <
6183 < /* Line 1806 of yacc.c  */
6806 < #line 2902 "ircd_parser.y"
6181 >  case 517:
6182 > /* Line 1813 of yacc.c  */
6183 > #line 2678 "conf_parser.y"
6184      {
6185    ConfigFileEntry.oper_pass_resv = yylval.number;
6186   }
6187      break;
6188  
6189 <  case 522:
6190 <
6191 < /* Line 1806 of yacc.c  */
6815 < #line 2907 "ircd_parser.y"
6189 >  case 518:
6190 > /* Line 1813 of yacc.c  */
6191 > #line 2683 "conf_parser.y"
6192      {
6193    if (conf_parser_ctx.pass == 2)
6194    {
# Line 6824 | Line 6200 | yyreduce:
6200   }
6201      break;
6202  
6203 <  case 523:
6204 <
6205 < /* Line 1806 of yacc.c  */
6830 < #line 2918 "ircd_parser.y"
6203 >  case 519:
6204 > /* Line 1813 of yacc.c  */
6205 > #line 2694 "conf_parser.y"
6206      {
6207    ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6208   }
6209      break;
6210  
6211 <  case 524:
6212 <
6213 < /* Line 1806 of yacc.c  */
6839 < #line 2923 "ircd_parser.y"
6211 >  case 520:
6212 > /* Line 1813 of yacc.c  */
6213 > #line 2699 "conf_parser.y"
6214      {
6215    ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6216   }
6217      break;
6218  
6219 <  case 525:
6220 <
6221 < /* Line 1806 of yacc.c  */
6848 < #line 2928 "ircd_parser.y"
6849 <    {
6850 <  if (conf_parser_ctx.pass == 2)
6851 <  {
6852 <    MyFree(ConfigFileEntry.servlink_path);
6853 <    DupString(ConfigFileEntry.servlink_path, yylval.string);
6854 <  }
6855 < }
6856 <    break;
6857 <
6858 <  case 526:
6859 <
6860 < /* Line 1806 of yacc.c  */
6861 < #line 2937 "ircd_parser.y"
6862 <    {
6863 < #ifdef HAVE_LIBCRYPTO
6864 <  if (conf_parser_ctx.pass == 2)
6865 <  {
6866 <    struct EncCapability *ecap;
6867 <    const char *cipher_name;
6868 <    int found = 0;
6869 <
6870 <    ConfigFileEntry.default_cipher_preference = NULL;
6871 <    cipher_name = yylval.string;
6872 <
6873 <    for (ecap = CipherTable; ecap->name; ecap++)
6874 <    {
6875 <      if ((irccmp(ecap->name, cipher_name) == 0) &&
6876 <          (ecap->cap & CAP_ENC_MASK))
6877 <      {
6878 <        ConfigFileEntry.default_cipher_preference = ecap;
6879 <        found = 1;
6880 <        break;
6881 <      }
6882 <    }
6883 <
6884 <    if (!found)
6885 <      yyerror("Invalid cipher");
6886 <  }
6887 < #else
6888 <  if (conf_parser_ctx.pass == 2)
6889 <    yyerror("Ignoring default_cipher_preference -- no OpenSSL support");
6890 < #endif
6891 < }
6892 <    break;
6893 <
6894 <  case 527:
6895 <
6896 < /* Line 1806 of yacc.c  */
6897 < #line 2969 "ircd_parser.y"
6898 <    {
6899 <  if (conf_parser_ctx.pass == 2)
6900 <  {
6901 <    ConfigFileEntry.compression_level = (yyvsp[(3) - (4)].number);
6902 < #ifndef HAVE_LIBZ
6903 <    yyerror("Ignoring compression_level -- no zlib support");
6904 < #else
6905 <    if ((ConfigFileEntry.compression_level < 1) ||
6906 <        (ConfigFileEntry.compression_level > 9))
6907 <    {
6908 <      yyerror("Ignoring invalid compression_level, using default");
6909 <      ConfigFileEntry.compression_level = 0;
6910 <    }
6911 < #endif
6912 <  }
6913 < }
6914 <    break;
6915 <
6916 <  case 528:
6917 <
6918 < /* Line 1806 of yacc.c  */
6919 < #line 2987 "ircd_parser.y"
6219 >  case 521:
6220 > /* Line 1813 of yacc.c  */
6221 > #line 2704 "conf_parser.y"
6222      {
6223    ConfigFileEntry.use_egd = yylval.number;
6224   }
6225      break;
6226  
6227 <  case 529:
6228 <
6229 < /* Line 1806 of yacc.c  */
6928 < #line 2992 "ircd_parser.y"
6227 >  case 522:
6228 > /* Line 1813 of yacc.c  */
6229 > #line 2709 "conf_parser.y"
6230      {
6231    if (conf_parser_ctx.pass == 2)
6232    {
# Line 6935 | Line 6236 | yyreduce:
6236   }
6237      break;
6238  
6239 <  case 530:
6240 <
6241 < /* Line 1806 of yacc.c  */
6941 < #line 3001 "ircd_parser.y"
6239 >  case 523:
6240 > /* Line 1813 of yacc.c  */
6241 > #line 2718 "conf_parser.y"
6242      {
6243    if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6244    {
# Line 6948 | Line 6248 | yyreduce:
6248   }
6249      break;
6250  
6251 <  case 531:
6252 <
6253 < /* Line 1806 of yacc.c  */
6954 < #line 3010 "ircd_parser.y"
6251 >  case 524:
6252 > /* Line 1813 of yacc.c  */
6253 > #line 2727 "conf_parser.y"
6254      {
6255    ConfigFileEntry.ping_cookie = yylval.number;
6256   }
6257      break;
6258  
6259 <  case 532:
6260 <
6261 < /* Line 1806 of yacc.c  */
6963 < #line 3015 "ircd_parser.y"
6259 >  case 525:
6260 > /* Line 1813 of yacc.c  */
6261 > #line 2732 "conf_parser.y"
6262      {
6263    ConfigFileEntry.disable_auth = yylval.number;
6264   }
6265      break;
6266  
6267 <  case 533:
6268 <
6269 < /* Line 1806 of yacc.c  */
6972 < #line 3020 "ircd_parser.y"
6267 >  case 526:
6268 > /* Line 1813 of yacc.c  */
6269 > #line 2737 "conf_parser.y"
6270      {
6271    ConfigFileEntry.throttle_time = yylval.number;
6272   }
6273      break;
6274  
6275 <  case 534:
6276 <
6277 < /* Line 1806 of yacc.c  */
6981 < #line 3025 "ircd_parser.y"
6275 >  case 527:
6276 > /* Line 1813 of yacc.c  */
6277 > #line 2742 "conf_parser.y"
6278      {
6279    ConfigFileEntry.oper_umodes = 0;
6280   }
6281      break;
6282  
6283 <  case 538:
6284 <
6285 < /* Line 1806 of yacc.c  */
6990 < #line 3031 "ircd_parser.y"
6283 >  case 531:
6284 > /* Line 1813 of yacc.c  */
6285 > #line 2748 "conf_parser.y"
6286      {
6287    ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6288   }
6289      break;
6290  
6291 <  case 539:
6292 <
6293 < /* Line 1806 of yacc.c  */
6999 < #line 3034 "ircd_parser.y"
6291 >  case 532:
6292 > /* Line 1813 of yacc.c  */
6293 > #line 2751 "conf_parser.y"
6294      {
6295    ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6296   }
6297      break;
6298  
6299 <  case 540:
6300 <
6301 < /* Line 1806 of yacc.c  */
7008 < #line 3037 "ircd_parser.y"
6299 >  case 533:
6300 > /* Line 1813 of yacc.c  */
6301 > #line 2754 "conf_parser.y"
6302      {
6303    ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6304   }
6305      break;
6306  
6307 <  case 541:
6308 <
6309 < /* Line 1806 of yacc.c  */
7017 < #line 3040 "ircd_parser.y"
6307 >  case 534:
6308 > /* Line 1813 of yacc.c  */
6309 > #line 2757 "conf_parser.y"
6310      {
6311    ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6312   }
6313      break;
6314  
6315 <  case 542:
6316 <
6317 < /* Line 1806 of yacc.c  */
7026 < #line 3043 "ircd_parser.y"
6315 >  case 535:
6316 > /* Line 1813 of yacc.c  */
6317 > #line 2760 "conf_parser.y"
6318      {
6319    ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6320   }
6321      break;
6322  
6323 <  case 543:
6324 <
6325 < /* Line 1806 of yacc.c  */
7035 < #line 3046 "ircd_parser.y"
6323 >  case 536:
6324 > /* Line 1813 of yacc.c  */
6325 > #line 2763 "conf_parser.y"
6326      {
6327    ConfigFileEntry.oper_umodes |= UMODE_FULL;
6328   }
6329      break;
6330  
6331 <  case 544:
6332 <
6333 < /* Line 1806 of yacc.c  */
7044 < #line 3049 "ircd_parser.y"
6331 >  case 537:
6332 > /* Line 1813 of yacc.c  */
6333 > #line 2766 "conf_parser.y"
6334      {
6335    ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6336   }
6337      break;
6338  
6339 <  case 545:
6340 <
6341 < /* Line 1806 of yacc.c  */
7053 < #line 3052 "ircd_parser.y"
6339 >  case 538:
6340 > /* Line 1813 of yacc.c  */
6341 > #line 2769 "conf_parser.y"
6342      {
6343    ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6344   }
6345      break;
6346  
6347 <  case 546:
6348 <
6349 < /* Line 1806 of yacc.c  */
7062 < #line 3055 "ircd_parser.y"
6347 >  case 539:
6348 > /* Line 1813 of yacc.c  */
6349 > #line 2772 "conf_parser.y"
6350      {
6351    ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6352   }
6353      break;
6354  
6355 <  case 547:
6356 <
6357 < /* Line 1806 of yacc.c  */
7071 < #line 3058 "ircd_parser.y"
6355 >  case 540:
6356 > /* Line 1813 of yacc.c  */
6357 > #line 2775 "conf_parser.y"
6358      {
6359    ConfigFileEntry.oper_umodes |= UMODE_REJ;
6360   }
6361      break;
6362  
6363 <  case 548:
6364 <
6365 < /* Line 1806 of yacc.c  */
7080 < #line 3061 "ircd_parser.y"
6363 >  case 541:
6364 > /* Line 1813 of yacc.c  */
6365 > #line 2778 "conf_parser.y"
6366      {
6367    ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6368   }
6369      break;
6370  
6371 <  case 549:
6372 <
6373 < /* Line 1806 of yacc.c  */
7089 < #line 3064 "ircd_parser.y"
6371 >  case 542:
6372 > /* Line 1813 of yacc.c  */
6373 > #line 2781 "conf_parser.y"
6374      {
6375    ConfigFileEntry.oper_umodes |= UMODE_SPY;
6376   }
6377      break;
6378  
6379 <  case 550:
6380 <
6381 < /* Line 1806 of yacc.c  */
7098 < #line 3067 "ircd_parser.y"
6379 >  case 543:
6380 > /* Line 1813 of yacc.c  */
6381 > #line 2784 "conf_parser.y"
6382      {
6383    ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6384   }
6385      break;
6386  
6387 <  case 551:
6388 <
6389 < /* Line 1806 of yacc.c  */
7107 < #line 3070 "ircd_parser.y"
6387 >  case 544:
6388 > /* Line 1813 of yacc.c  */
6389 > #line 2787 "conf_parser.y"
6390      {
6391    ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6392   }
6393      break;
6394  
6395 <  case 552:
6396 <
6397 < /* Line 1806 of yacc.c  */
7116 < #line 3073 "ircd_parser.y"
6395 >  case 545:
6396 > /* Line 1813 of yacc.c  */
6397 > #line 2790 "conf_parser.y"
6398      {
6399    ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6400   }
6401      break;
6402  
6403 <  case 553:
6404 <
6405 < /* Line 1806 of yacc.c  */
7125 < #line 3076 "ircd_parser.y"
6403 >  case 546:
6404 > /* Line 1813 of yacc.c  */
6405 > #line 2793 "conf_parser.y"
6406      {
6407    ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6408   }
6409      break;
6410  
6411 <  case 554:
6412 <
6413 < /* Line 1806 of yacc.c  */
7134 < #line 3079 "ircd_parser.y"
6411 >  case 547:
6412 > /* Line 1813 of yacc.c  */
6413 > #line 2796 "conf_parser.y"
6414      {
6415    ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6416   }
6417      break;
6418  
6419 <  case 555:
6420 <
6421 < /* Line 1806 of yacc.c  */
7143 < #line 3082 "ircd_parser.y"
6419 >  case 548:
6420 > /* Line 1813 of yacc.c  */
6421 > #line 2799 "conf_parser.y"
6422      {
6423    ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6424   }
6425      break;
6426  
6427 <  case 556:
6428 <
6429 < /* Line 1806 of yacc.c  */
7152 < #line 3085 "ircd_parser.y"
6427 >  case 549:
6428 > /* Line 1813 of yacc.c  */
6429 > #line 2802 "conf_parser.y"
6430      {
6431    ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6432   }
6433      break;
6434  
6435 <  case 557:
6436 <
6437 < /* Line 1806 of yacc.c  */
7161 < #line 3088 "ircd_parser.y"
6435 >  case 550:
6436 > /* Line 1813 of yacc.c  */
6437 > #line 2805 "conf_parser.y"
6438      {
6439    ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6440   }
6441      break;
6442  
6443 <  case 558:
6444 <
6445 < /* Line 1806 of yacc.c  */
7170 < #line 3093 "ircd_parser.y"
6443 >  case 551:
6444 > /* Line 1813 of yacc.c  */
6445 > #line 2810 "conf_parser.y"
6446      {
6447    ConfigFileEntry.oper_only_umodes = 0;
6448   }
6449      break;
6450  
6451 <  case 562:
6452 <
6453 < /* Line 1806 of yacc.c  */
7179 < #line 3099 "ircd_parser.y"
6451 >  case 555:
6452 > /* Line 1813 of yacc.c  */
6453 > #line 2816 "conf_parser.y"
6454      {
6455    ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6456   }
6457      break;
6458  
6459 <  case 563:
6460 <
6461 < /* Line 1806 of yacc.c  */
7188 < #line 3102 "ircd_parser.y"
6459 >  case 556:
6460 > /* Line 1813 of yacc.c  */
6461 > #line 2819 "conf_parser.y"
6462      {
6463    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6464   }
6465      break;
6466  
6467 <  case 564:
6468 <
6469 < /* Line 1806 of yacc.c  */
7197 < #line 3105 "ircd_parser.y"
6467 >  case 557:
6468 > /* Line 1813 of yacc.c  */
6469 > #line 2822 "conf_parser.y"
6470      {
6471    ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6472   }
6473      break;
6474  
6475 <  case 565:
6476 <
6477 < /* Line 1806 of yacc.c  */
7206 < #line 3108 "ircd_parser.y"
6475 >  case 558:
6476 > /* Line 1813 of yacc.c  */
6477 > #line 2825 "conf_parser.y"
6478      {
6479    ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6480   }
6481      break;
6482  
6483 <  case 566:
6484 <
6485 < /* Line 1806 of yacc.c  */
7215 < #line 3111 "ircd_parser.y"
6483 >  case 559:
6484 > /* Line 1813 of yacc.c  */
6485 > #line 2828 "conf_parser.y"
6486      {
6487    ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6488   }
6489      break;
6490  
6491 <  case 567:
6492 <
6493 < /* Line 1806 of yacc.c  */
7224 < #line 3114 "ircd_parser.y"
6491 >  case 560:
6492 > /* Line 1813 of yacc.c  */
6493 > #line 2831 "conf_parser.y"
6494      {
6495    ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6496   }
6497      break;
6498  
6499 <  case 568:
6500 <
6501 < /* Line 1806 of yacc.c  */
7233 < #line 3117 "ircd_parser.y"
6499 >  case 561:
6500 > /* Line 1813 of yacc.c  */
6501 > #line 2834 "conf_parser.y"
6502      {
6503    ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6504   }
6505      break;
6506  
6507 <  case 569:
6508 <
6509 < /* Line 1806 of yacc.c  */
7242 < #line 3120 "ircd_parser.y"
6507 >  case 562:
6508 > /* Line 1813 of yacc.c  */
6509 > #line 2837 "conf_parser.y"
6510      {
6511    ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6512   }
6513      break;
6514  
6515 <  case 570:
6516 <
6517 < /* Line 1806 of yacc.c  */
7251 < #line 3123 "ircd_parser.y"
6515 >  case 563:
6516 > /* Line 1813 of yacc.c  */
6517 > #line 2840 "conf_parser.y"
6518      {
6519    ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6520   }
6521      break;
6522  
6523 <  case 571:
6524 <
6525 < /* Line 1806 of yacc.c  */
7260 < #line 3126 "ircd_parser.y"
6523 >  case 564:
6524 > /* Line 1813 of yacc.c  */
6525 > #line 2843 "conf_parser.y"
6526      {
6527    ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6528   }
6529      break;
6530  
6531 <  case 572:
6532 <
6533 < /* Line 1806 of yacc.c  */
7269 < #line 3129 "ircd_parser.y"
6531 >  case 565:
6532 > /* Line 1813 of yacc.c  */
6533 > #line 2846 "conf_parser.y"
6534      {
6535    ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6536   }
6537      break;
6538  
6539 <  case 573:
6540 <
6541 < /* Line 1806 of yacc.c  */
7278 < #line 3132 "ircd_parser.y"
6539 >  case 566:
6540 > /* Line 1813 of yacc.c  */
6541 > #line 2849 "conf_parser.y"
6542      {
6543    ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6544   }
6545      break;
6546  
6547 <  case 574:
6548 <
6549 < /* Line 1806 of yacc.c  */
7287 < #line 3135 "ircd_parser.y"
6547 >  case 567:
6548 > /* Line 1813 of yacc.c  */
6549 > #line 2852 "conf_parser.y"
6550      {
6551    ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6552   }
6553      break;
6554  
6555 <  case 575:
6556 <
6557 < /* Line 1806 of yacc.c  */
7296 < #line 3138 "ircd_parser.y"
6555 >  case 568:
6556 > /* Line 1813 of yacc.c  */
6557 > #line 2855 "conf_parser.y"
6558      {
6559    ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6560   }
6561      break;
6562  
6563 <  case 576:
6564 <
6565 < /* Line 1806 of yacc.c  */
7305 < #line 3141 "ircd_parser.y"
6563 >  case 569:
6564 > /* Line 1813 of yacc.c  */
6565 > #line 2858 "conf_parser.y"
6566      {
6567    ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6568   }
6569      break;
6570  
6571 <  case 577:
6572 <
6573 < /* Line 1806 of yacc.c  */
7314 < #line 3144 "ircd_parser.y"
6571 >  case 570:
6572 > /* Line 1813 of yacc.c  */
6573 > #line 2861 "conf_parser.y"
6574      {
6575    ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6576   }
6577      break;
6578  
6579 <  case 578:
6580 <
6581 < /* Line 1806 of yacc.c  */
7323 < #line 3147 "ircd_parser.y"
6579 >  case 571:
6580 > /* Line 1813 of yacc.c  */
6581 > #line 2864 "conf_parser.y"
6582      {
6583    ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6584   }
6585      break;
6586  
6587 <  case 579:
6588 <
6589 < /* Line 1806 of yacc.c  */
7332 < #line 3150 "ircd_parser.y"
6587 >  case 572:
6588 > /* Line 1813 of yacc.c  */
6589 > #line 2867 "conf_parser.y"
6590      {
6591    ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6592   }
6593      break;
6594  
6595 <  case 580:
6596 <
6597 < /* Line 1806 of yacc.c  */
7341 < #line 3153 "ircd_parser.y"
6595 >  case 573:
6596 > /* Line 1813 of yacc.c  */
6597 > #line 2870 "conf_parser.y"
6598      {
6599    ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6600   }
6601      break;
6602  
6603 <  case 581:
6604 <
6605 < /* Line 1806 of yacc.c  */
7350 < #line 3156 "ircd_parser.y"
6603 >  case 574:
6604 > /* Line 1813 of yacc.c  */
6605 > #line 2873 "conf_parser.y"
6606      {
6607    ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6608   }
6609      break;
6610  
6611 <  case 582:
6612 <
6613 < /* Line 1806 of yacc.c  */
7359 < #line 3161 "ircd_parser.y"
6611 >  case 575:
6612 > /* Line 1813 of yacc.c  */
6613 > #line 2878 "conf_parser.y"
6614      {
6615    ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6616   }
6617      break;
6618  
6619 <  case 583:
6620 <
6621 < /* Line 1806 of yacc.c  */
7368 < #line 3166 "ircd_parser.y"
6619 >  case 576:
6620 > /* Line 1813 of yacc.c  */
6621 > #line 2883 "conf_parser.y"
6622      {
6623    ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6624   }
6625      break;
6626  
6627 <  case 584:
6628 <
6629 < /* Line 1806 of yacc.c  */
7377 < #line 3171 "ircd_parser.y"
6627 >  case 577:
6628 > /* Line 1813 of yacc.c  */
6629 > #line 2888 "conf_parser.y"
6630      {
6631    ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6632   }
6633      break;
6634  
6635 <  case 585:
6636 <
6637 < /* Line 1806 of yacc.c  */
7386 < #line 3176 "ircd_parser.y"
7387 <    {
7388 <  ConfigFileEntry.client_flood = (yyvsp[(3) - (4)].number);
7389 < }
7390 <    break;
7391 <
7392 <  case 586:
7393 <
7394 < /* Line 1806 of yacc.c  */
7395 < #line 3185 "ircd_parser.y"
7396 <    {
7397 <  if (conf_parser_ctx.pass == 2)
7398 <  {
7399 <    yy_conf = make_conf_item(GDENY_TYPE);
7400 <    yy_aconf = map_to_conf(yy_conf);
7401 <  }
7402 < }
7403 <    break;
7404 <
7405 <  case 587:
7406 <
7407 < /* Line 1806 of yacc.c  */
7408 < #line 3192 "ircd_parser.y"
7409 <    {
7410 <  if (conf_parser_ctx.pass == 2)
7411 <  {
7412 <    /*
7413 <     * since we re-allocate yy_conf/yy_aconf after the end of action=, at the
7414 <     * end we will have one extra, so we should free it.
7415 <     */
7416 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
6635 >  case 596:
6636 > /* Line 1813 of yacc.c  */
6637 > #line 2911 "conf_parser.y"
6638      {
6639 <      delete_conf_item(yy_conf);
7419 <      yy_conf = NULL;
7420 <      yy_aconf = NULL;
7421 <    }
7422 <  }
6639 >  ConfigChannel.disable_fake_channels = yylval.number;
6640   }
6641      break;
6642  
6643    case 597:
6644 <
6645 < /* Line 1806 of yacc.c  */
7429 < #line 3218 "ircd_parser.y"
6644 > /* Line 1813 of yacc.c  */
6645 > #line 2916 "conf_parser.y"
6646      {
6647 <  if (conf_parser_ctx.pass == 2)
7432 <    ConfigFileEntry.glines = yylval.number;
6647 >  ConfigChannel.restrict_channels = yylval.number;
6648   }
6649      break;
6650  
6651    case 598:
6652 <
6653 < /* Line 1806 of yacc.c  */
7439 < #line 3224 "ircd_parser.y"
6652 > /* Line 1813 of yacc.c  */
6653 > #line 2921 "conf_parser.y"
6654      {
6655 <  if (conf_parser_ctx.pass == 2)
7442 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
6655 >  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6656   }
6657      break;
6658  
6659    case 599:
6660 <
6661 < /* Line 1806 of yacc.c  */
7449 < #line 3230 "ircd_parser.y"
6660 > /* Line 1813 of yacc.c  */
6661 > #line 2926 "conf_parser.y"
6662      {
6663 <  if (conf_parser_ctx.pass == 2)
7452 <    ConfigFileEntry.gline_logging = 0;
7453 < }
7454 <    break;
7455 <
7456 <  case 603:
7457 <
7458 < /* Line 1806 of yacc.c  */
7459 < #line 3236 "ircd_parser.y"
7460 <    {
7461 <  if (conf_parser_ctx.pass == 2)
7462 <    ConfigFileEntry.gline_logging |= GDENY_REJECT;
7463 < }
7464 <    break;
7465 <
7466 <  case 604:
7467 <
7468 < /* Line 1806 of yacc.c  */
7469 < #line 3240 "ircd_parser.y"
7470 <    {
7471 <  if (conf_parser_ctx.pass == 2)
7472 <    ConfigFileEntry.gline_logging |= GDENY_BLOCK;
7473 < }
7474 <    break;
7475 <
7476 <  case 605:
7477 <
7478 < /* Line 1806 of yacc.c  */
7479 < #line 3246 "ircd_parser.y"
7480 <    {
7481 <  if (conf_parser_ctx.pass == 2)
7482 <  {
7483 <    struct split_nuh_item nuh;
7484 <
7485 <    nuh.nuhmask  = yylval.string;
7486 <    nuh.nickptr  = NULL;
7487 <    nuh.userptr  = userbuf;
7488 <    nuh.hostptr  = hostbuf;
7489 <
7490 <    nuh.nicksize = 0;
7491 <    nuh.usersize = sizeof(userbuf);
7492 <    nuh.hostsize = sizeof(hostbuf);
7493 <
7494 <    split_nuh(&nuh);
7495 <
7496 <    if (yy_aconf->user == NULL)
7497 <    {
7498 <      DupString(yy_aconf->user, userbuf);
7499 <      DupString(yy_aconf->host, hostbuf);
7500 <    }
7501 <    else
7502 <    {
7503 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
7504 <
7505 <      DupString(yy_tmp->user, userbuf);
7506 <      DupString(yy_tmp->host, hostbuf);
7507 <
7508 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
7509 <    }
7510 <  }
7511 < }
7512 <    break;
7513 <
7514 <  case 606:
7515 <
7516 < /* Line 1806 of yacc.c  */
7517 < #line 3280 "ircd_parser.y"
7518 <    {
7519 <  if (conf_parser_ctx.pass == 2)  
7520 <  {
7521 <    MyFree(yy_conf->name);
7522 <    DupString(yy_conf->name, yylval.string);
7523 <  }
7524 < }
7525 <    break;
7526 <
7527 <  case 607:
7528 <
7529 < /* Line 1806 of yacc.c  */
7530 < #line 3289 "ircd_parser.y"
7531 <    {
7532 <  if (conf_parser_ctx.pass == 2)
7533 <    yy_aconf->flags = 0;
7534 < }
7535 <    break;
7536 <
7537 <  case 608:
7538 <
7539 < /* Line 1806 of yacc.c  */
7540 < #line 3293 "ircd_parser.y"
7541 <    {
7542 <  if (conf_parser_ctx.pass == 2)
7543 <  {
7544 <    struct CollectItem *yy_tmp = NULL;
7545 <    dlink_node *ptr, *next_ptr;
7546 <
7547 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
7548 <    {
7549 <      struct AccessItem *new_aconf;
7550 <      struct ConfItem *new_conf;
7551 <
7552 <      yy_tmp = ptr->data;
7553 <      new_conf = make_conf_item(GDENY_TYPE);
7554 <      new_aconf = map_to_conf(new_conf);
7555 <
7556 <      new_aconf->flags = yy_aconf->flags;
7557 <
7558 <      if (yy_conf->name != NULL)
7559 <        DupString(new_conf->name, yy_conf->name);
7560 <      else
7561 <        DupString(new_conf->name, "*");
7562 <      if (yy_aconf->user != NULL)
7563 <         DupString(new_aconf->user, yy_tmp->user);
7564 <      else  
7565 <        DupString(new_aconf->user, "*");
7566 <      if (yy_aconf->host != NULL)
7567 <        DupString(new_aconf->host, yy_tmp->host);
7568 <      else
7569 <        DupString(new_aconf->host, "*");
7570 <
7571 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
7572 <    }
7573 <
7574 <    /*
7575 <     * In case someone has fed us with more than one action= after user/name
7576 <     * which would leak memory  -Michael
7577 <     */
7578 <    if (yy_conf->name == NULL || yy_aconf->user == NULL)
7579 <      delete_conf_item(yy_conf);
7580 <
7581 <    yy_conf = make_conf_item(GDENY_TYPE);
7582 <    yy_aconf = map_to_conf(yy_conf);
7583 <  }
7584 < }
7585 <    break;
7586 <
7587 <  case 611:
7588 <
7589 < /* Line 1806 of yacc.c  */
7590 < #line 3340 "ircd_parser.y"
7591 <    {
7592 <  if (conf_parser_ctx.pass == 2)
7593 <    yy_aconf->flags |= GDENY_REJECT;
7594 < }
7595 <    break;
7596 <
7597 <  case 612:
7598 <
7599 < /* Line 1806 of yacc.c  */
7600 < #line 3344 "ircd_parser.y"
7601 <    {
7602 <  if (conf_parser_ctx.pass == 2)
7603 <    yy_aconf->flags |= GDENY_BLOCK;
7604 < }
7605 <    break;
7606 <
7607 <  case 635:
7608 <
7609 < /* Line 1806 of yacc.c  */
7610 < #line 3368 "ircd_parser.y"
7611 <    {
7612 <  ConfigChannel.disable_fake_channels = yylval.number;
7613 < }
7614 <    break;
7615 <
7616 <  case 636:
7617 <
7618 < /* Line 1806 of yacc.c  */
7619 < #line 3373 "ircd_parser.y"
7620 <    {
7621 <  ConfigChannel.restrict_channels = yylval.number;
7622 < }
7623 <    break;
7624 <
7625 <  case 637:
7626 <
7627 < /* Line 1806 of yacc.c  */
7628 < #line 3378 "ircd_parser.y"
7629 <    {
7630 <  ConfigChannel.disable_local_channels = yylval.number;
7631 < }
7632 <    break;
7633 <
7634 <  case 638:
7635 <
7636 < /* Line 1806 of yacc.c  */
7637 < #line 3383 "ircd_parser.y"
7638 <    {
7639 <  ConfigChannel.use_except = yylval.number;
7640 < }
7641 <    break;
7642 <
7643 <  case 639:
7644 <
7645 < /* Line 1806 of yacc.c  */
7646 < #line 3388 "ircd_parser.y"
7647 <    {
7648 <  ConfigChannel.use_invex = yylval.number;
7649 < }
7650 <    break;
7651 <
7652 <  case 640:
7653 <
7654 < /* Line 1806 of yacc.c  */
7655 < #line 3393 "ircd_parser.y"
7656 <    {
7657 <  ConfigChannel.use_knock = yylval.number;
7658 < }
7659 <    break;
7660 <
7661 <  case 641:
7662 <
7663 < /* Line 1806 of yacc.c  */
7664 < #line 3398 "ircd_parser.y"
7665 <    {
7666 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6663 >  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6664   }
6665      break;
6666  
6667 <  case 642:
6668 <
6669 < /* Line 1806 of yacc.c  */
7673 < #line 3403 "ircd_parser.y"
6667 >  case 600:
6668 > /* Line 1813 of yacc.c  */
6669 > #line 2931 "conf_parser.y"
6670      {
6671 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6671 >  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6672   }
6673      break;
6674  
6675 <  case 643:
6676 <
6677 < /* Line 1806 of yacc.c  */
7682 < #line 3408 "ircd_parser.y"
6675 >  case 601:
6676 > /* Line 1813 of yacc.c  */
6677 > #line 2936 "conf_parser.y"
6678      {
6679 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6679 >  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6680   }
6681      break;
6682  
6683 <  case 644:
6684 <
6685 < /* Line 1806 of yacc.c  */
7691 < #line 3413 "ircd_parser.y"
6683 >  case 602:
6684 > /* Line 1813 of yacc.c  */
6685 > #line 2941 "conf_parser.y"
6686      {
6687    ConfigChannel.quiet_on_ban = yylval.number;
6688   }
6689      break;
6690  
6691 <  case 645:
6692 <
6693 < /* Line 1806 of yacc.c  */
7700 < #line 3418 "ircd_parser.y"
6691 >  case 603:
6692 > /* Line 1813 of yacc.c  */
6693 > #line 2946 "conf_parser.y"
6694      {
6695    ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6696   }
6697      break;
6698  
6699 <  case 646:
6700 <
6701 < /* Line 1806 of yacc.c  */
7709 < #line 3423 "ircd_parser.y"
6699 >  case 604:
6700 > /* Line 1813 of yacc.c  */
6701 > #line 2951 "conf_parser.y"
6702      {
6703    ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6704   }
6705      break;
6706  
6707 <  case 647:
6708 <
6709 < /* Line 1806 of yacc.c  */
7718 < #line 3428 "ircd_parser.y"
6707 >  case 605:
6708 > /* Line 1813 of yacc.c  */
6709 > #line 2956 "conf_parser.y"
6710      {
6711    ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6712   }
6713      break;
6714  
6715 <  case 648:
6716 <
6717 < /* Line 1806 of yacc.c  */
7727 < #line 3433 "ircd_parser.y"
6715 >  case 606:
6716 > /* Line 1813 of yacc.c  */
6717 > #line 2961 "conf_parser.y"
6718      {
6719    ConfigChannel.no_create_on_split = yylval.number;
6720   }
6721      break;
6722  
6723 <  case 649:
6724 <
6725 < /* Line 1806 of yacc.c  */
7736 < #line 3438 "ircd_parser.y"
6723 >  case 607:
6724 > /* Line 1813 of yacc.c  */
6725 > #line 2966 "conf_parser.y"
6726      {
6727    ConfigChannel.no_join_on_split = yylval.number;
6728   }
6729      break;
6730  
6731 <  case 650:
6732 <
6733 < /* Line 1806 of yacc.c  */
7745 < #line 3443 "ircd_parser.y"
7746 <    {
7747 <  ConfigChannel.burst_topicwho = yylval.number;
7748 < }
7749 <    break;
7750 <
7751 <  case 651:
7752 <
7753 < /* Line 1806 of yacc.c  */
7754 < #line 3448 "ircd_parser.y"
6731 >  case 608:
6732 > /* Line 1813 of yacc.c  */
6733 > #line 2971 "conf_parser.y"
6734      {
6735    GlobalSetOptions.joinfloodcount = yylval.number;
6736   }
6737      break;
6738  
6739 <  case 652:
6740 <
6741 < /* Line 1806 of yacc.c  */
7763 < #line 3453 "ircd_parser.y"
6739 >  case 609:
6740 > /* Line 1813 of yacc.c  */
6741 > #line 2976 "conf_parser.y"
6742      {
6743    GlobalSetOptions.joinfloodtime = yylval.number;
6744   }
6745      break;
6746  
6747 <  case 664:
6748 <
6749 < /* Line 1806 of yacc.c  */
7772 < #line 3472 "ircd_parser.y"
6747 >  case 620:
6748 > /* Line 1813 of yacc.c  */
6749 > #line 2994 "conf_parser.y"
6750      {
6751    if (conf_parser_ctx.pass == 2)
6752      ConfigServerHide.flatten_links = yylval.number;
6753   }
6754      break;
6755  
6756 <  case 665:
6757 <
6758 < /* Line 1806 of yacc.c  */
7782 < #line 3478 "ircd_parser.y"
6756 >  case 621:
6757 > /* Line 1813 of yacc.c  */
6758 > #line 3000 "conf_parser.y"
6759      {
6760    if (conf_parser_ctx.pass == 2)
6761      ConfigServerHide.hide_servers = yylval.number;
6762   }
6763      break;
6764  
6765 <  case 666:
6766 <
6767 < /* Line 1806 of yacc.c  */
7792 < #line 3484 "ircd_parser.y"
6765 >  case 622:
6766 > /* Line 1813 of yacc.c  */
6767 > #line 3006 "conf_parser.y"
6768      {
6769    if (conf_parser_ctx.pass == 2)
6770    {
# Line 7799 | Line 6774 | yyreduce:
6774   }
6775      break;
6776  
6777 <  case 667:
6778 <
6779 < /* Line 1806 of yacc.c  */
7805 < #line 3493 "ircd_parser.y"
6777 >  case 623:
6778 > /* Line 1813 of yacc.c  */
6779 > #line 3015 "conf_parser.y"
6780      {
6781    if (conf_parser_ctx.pass == 2)
6782    {
# Line 7817 | Line 6791 | yyreduce:
6791   }
6792      break;
6793  
6794 <  case 668:
6795 <
6796 < /* Line 1806 of yacc.c  */
7823 < #line 3507 "ircd_parser.y"
6794 >  case 624:
6795 > /* Line 1813 of yacc.c  */
6796 > #line 3029 "conf_parser.y"
6797      {
6798    if (conf_parser_ctx.pass == 2)
6799      ConfigServerHide.hidden = yylval.number;
6800   }
6801      break;
6802  
6803 <  case 669:
6804 <
6805 < /* Line 1806 of yacc.c  */
7833 < #line 3513 "ircd_parser.y"
7834 <    {
7835 <  if (conf_parser_ctx.pass == 2)
7836 <    ConfigServerHide.disable_hidden = yylval.number;
7837 < }
7838 <    break;
7839 <
7840 <  case 670:
7841 <
7842 < /* Line 1806 of yacc.c  */
7843 < #line 3519 "ircd_parser.y"
6803 >  case 625:
6804 > /* Line 1813 of yacc.c  */
6805 > #line 3035 "conf_parser.y"
6806      {
6807    if (conf_parser_ctx.pass == 2)
6808      ConfigServerHide.hide_server_ips = yylval.number;
# Line 7848 | Line 6810 | yyreduce:
6810      break;
6811  
6812  
6813 <
6814 < /* Line 1806 of yacc.c  */
7853 < #line 7854 "ircd_parser.c"
6813 > /* Line 1813 of yacc.c  */
6814 > #line 6815 "conf_parser.c"
6815        default: break;
6816      }
6817    /* User semantic actions sometimes alter yychar, and that requires
# Line 8013 | Line 6974 | yyerrlab1:
6974        YY_STACK_PRINT (yyss, yyssp);
6975      }
6976  
6977 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6978    *++yyvsp = yylval;
6979 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6980  
6981  
6982    /* Shift the error token.  */
# Line 8037 | Line 7000 | yyabortlab:
7000    yyresult = 1;
7001    goto yyreturn;
7002  
7003 < #if !defined(yyoverflow) || YYERROR_VERBOSE
7003 > #if !defined yyoverflow || YYERROR_VERBOSE
7004   /*-------------------------------------------------.
7005   | yyexhaustedlab -- memory exhaustion comes here.  |
7006   `-------------------------------------------------*/
# Line 8079 | Line 7042 | yyreturn:
7042   }
7043  
7044  
8082

Diff Legend

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