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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1549 by michael, Mon Oct 1 18:11:11 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (file contents), Revision 7284 by michael, Sun Feb 7 18:25:56 2016 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.6.2.  */
1 > /* A Bison parser, made by GNU Bison 3.0.4.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
6 <  
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6 >
7     This program is free software: you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation, either version 3 of the License, or
10     (at your option) any later version.
11 <  
11 >
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16 <  
16 >
17     You should have received a copy of the GNU General Public License
18     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19  
# Line 26 | Line 26
26     special exception, which will cause the skeleton and the resulting
27     Bison output files to be licensed under the GNU General Public
28     License without this special exception.
29 <  
29 >
30     This special exception was added by the Free Software Foundation in
31     version 2.2 of Bison.  */
32  
# Line 44 | Line 44
44   #define YYBISON 1
45  
46   /* Bison version.  */
47 < #define YYBISON_VERSION "2.6.2"
47 > #define YYBISON_VERSION "3.0.4"
48  
49   /* Skeleton name.  */
50   #define YYSKELETON_NAME "yacc.c"
# Line 62 | Line 62
62  
63  
64   /* Copy the first part of user declarations.  */
65 < /* Line 336 of yacc.c  */
66 < #line 25 "conf_parser.y"
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
67  
69 #define YY_NO_UNPUT
70 #include <sys/types.h>
71 #include <string.h>
72
68   #include "config.h"
69   #include "stdinc.h"
70   #include "ircd.h"
71   #include "list.h"
72   #include "conf.h"
73 + #include "conf_class.h"
74 + #include "conf_cluster.h"
75 + #include "conf_pseudo.h"
76 + #include "conf_resv.h"
77 + #include "conf_service.h"
78 + #include "conf_shared.h"
79   #include "event.h"
80 + #include "id.h"
81   #include "log.h"
80 #include "client.h"     /* for UMODE_ALL only */
82   #include "irc_string.h"
82 #include "sprintf_irc.h"
83   #include "memory.h"
84   #include "modules.h"
85 < #include "s_serv.h"
85 > #include "server.h"
86   #include "hostmask.h"
87 #include "send.h"
87   #include "listener.h"
88 < #include "resv.h"
89 < #include "numeric.h"
91 < #include "s_user.h"
92 <
93 < #ifdef HAVE_LIBCRYPTO
94 < #include <openssl/rsa.h>
95 < #include <openssl/bio.h>
96 < #include <openssl/pem.h>
97 < #include <openssl/dh.h>
98 < #endif
88 > #include "user.h"
89 > #include "motd.h"
90  
91   int yylex(void);
92  
93 < static char *class_name = NULL;
103 < static struct ConfItem *yy_conf = NULL;
104 < static struct AccessItem *yy_aconf = NULL;
105 < static struct MatchItem *yy_match_item = NULL;
106 < static struct ClassItem *yy_class = NULL;
107 < static char *yy_class_name = NULL;
108 <
109 < static dlink_list col_conf_list  = { NULL, NULL, 0 };
110 < static unsigned int listener_flags = 0;
111 < static unsigned int regex_ban = 0;
112 < static char userbuf[IRCD_BUFSIZE];
113 < static char hostbuf[IRCD_BUFSIZE];
114 < static char reasonbuf[REASONLEN + 1];
115 < static char gecos_name[REALLEN * 4];
116 < static char lfile[IRCD_BUFSIZE];
117 < static unsigned int ltype = 0;
118 < static unsigned int lsize = 0;
119 < static char *resv_reason = NULL;
120 < static char *listener_address = NULL;
121 <
122 < struct CollectItem
93 > static struct
94   {
95 <  dlink_node node;
96 <  char *name;
97 <  char *user;
98 <  char *host;
99 <  char *passwd;
100 <  int  port;
101 <  int  flags;
102 < #ifdef HAVE_LIBCRYPTO
103 <  char *rsa_public_key_file;
104 <  RSA *rsa_public_key;
105 < #endif
106 < };
95 >  struct
96 >  {
97 >    dlink_list list;
98 >  } mask,
99 >    leaf,
100 >    hub;
101 >
102 >  struct
103 >  {
104 >    char buf[IRCD_BUFSIZE];
105 >  } name,
106 >    nick,
107 >    user,
108 >    host,
109 >    addr,
110 >    bind,
111 >    file,
112 >    ciph,
113 >    cert,
114 >    rpass,
115 >    spass,
116 >    whois,
117 >    class,
118 >    target,
119 >    prepend,
120 >    command;
121 >
122 >  struct
123 >  {
124 >    unsigned int value;
125 >  } flags,
126 >    modes,
127 >    size,
128 >    type,
129 >    port,
130 >    aftype,
131 >    ping_freq,
132 >    max_perip,
133 >    con_freq,
134 >    min_idle,
135 >    max_idle,
136 >    max_total,
137 >    max_global,
138 >    max_local,
139 >    max_ident,
140 >    max_sendq,
141 >    max_recvq,
142 >    max_channels,
143 >    cidr_bitlen_ipv4,
144 >    cidr_bitlen_ipv6,
145 >    number_per_cidr;
146 > } block_state;
147  
148   static void
149 < free_collect_item(struct CollectItem *item)
149 > reset_block_state(void)
150   {
151 <  MyFree(item->name);
152 <  MyFree(item->user);
153 <  MyFree(item->host);
154 <  MyFree(item->passwd);
155 < #ifdef HAVE_LIBCRYPTO
156 <  MyFree(item->rsa_public_key_file);
157 < #endif
158 <  MyFree(item);
151 >  dlink_node *node = NULL, *node_next = NULL;
152 >
153 >  DLINK_FOREACH_SAFE(node, node_next, block_state.mask.list.head)
154 >  {
155 >    xfree(node->data);
156 >    dlinkDelete(node, &block_state.mask.list);
157 >    free_dlink_node(node);
158 >  }
159 >
160 >  DLINK_FOREACH_SAFE(node, node_next, block_state.leaf.list.head)
161 >  {
162 >    xfree(node->data);
163 >    dlinkDelete(node, &block_state.leaf.list);
164 >    free_dlink_node(node);
165 >  }
166 >
167 >  DLINK_FOREACH_SAFE(node, node_next, block_state.hub.list.head)
168 >  {
169 >    xfree(node->data);
170 >    dlinkDelete(node, &block_state.hub.list);
171 >    free_dlink_node(node);
172 >  }
173 >
174 >  memset(&block_state, 0, sizeof(block_state));
175   }
176  
177  
178 < /* Line 336 of yacc.c  */
152 < #line 153 "conf_parser.c"
178 > #line 179 "conf_parser.c" /* yacc.c:339  */
179  
180 < # ifndef YY_NULL
180 > # ifndef YY_NULLPTR
181   #  if defined __cplusplus && 201103L <= __cplusplus
182 < #   define YY_NULL nullptr
182 > #   define YY_NULLPTR nullptr
183   #  else
184 < #   define YY_NULL 0
184 > #   define YY_NULLPTR 0
185   #  endif
186   # endif
187  
# Line 169 | Line 195 | free_collect_item(struct CollectItem *it
195  
196   /* In a future release of Bison, this section will be replaced
197     by #include "y.tab.h".  */
198 < #ifndef YY_Y_TAB_H
199 < # define YY_Y_TAB_H
200 < /* Enabling traces.  */
198 > #ifndef YY_YY_CONF_PARSER_H_INCLUDED
199 > # define YY_YY_CONF_PARSER_H_INCLUDED
200 > /* Debug traces.  */
201   #ifndef YYDEBUG
202   # define YYDEBUG 0
203   #endif
# Line 179 | Line 205 | free_collect_item(struct CollectItem *it
205   extern int yydebug;
206   #endif
207  
208 < /* Tokens.  */
208 > /* Token type.  */
209   #ifndef YYTOKENTYPE
210   # define YYTOKENTYPE
211 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
212 <      know about them.  */
213 <   enum yytokentype {
214 <     ACCEPT_PASSWORD = 258,
215 <     ADMIN = 259,
216 <     AFTYPE = 260,
217 <     ANTI_NICK_FLOOD = 261,
218 <     ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
219 <     AUTOCONN = 263,
220 <     BYTES = 264,
221 <     KBYTES = 265,
222 <     MBYTES = 266,
223 <     CALLER_ID_WAIT = 267,
224 <     CAN_FLOOD = 268,
225 <     CHANNEL = 269,
226 <     CIDR_BITLEN_IPV4 = 270,
227 <     CIDR_BITLEN_IPV6 = 271,
228 <     CLASS = 272,
229 <     CONNECT = 273,
230 <     CONNECTFREQ = 274,
231 <     DEFAULT_FLOODCOUNT = 275,
232 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
233 <     DEFAULT_SPLIT_USER_COUNT = 277,
234 <     DENY = 278,
235 <     DESCRIPTION = 279,
236 <     DIE = 280,
237 <     DISABLE_AUTH = 281,
238 <     DISABLE_FAKE_CHANNELS = 282,
239 <     DISABLE_REMOTE_COMMANDS = 283,
240 <     DOTS_IN_IDENT = 284,
241 <     EGDPOOL_PATH = 285,
242 <     EMAIL = 286,
243 <     ENCRYPTED = 287,
244 <     EXCEED_LIMIT = 288,
245 <     EXEMPT = 289,
246 <     FAILED_OPER_NOTICE = 290,
247 <     IRCD_FLAGS = 291,
248 <     FLATTEN_LINKS = 292,
249 <     GECOS = 293,
250 <     GENERAL = 294,
251 <     GLINE = 295,
252 <     GLINE_DURATION = 296,
253 <     GLINE_ENABLE = 297,
254 <     GLINE_EXEMPT = 298,
255 <     GLINE_REQUEST_DURATION = 299,
256 <     GLINE_MIN_CIDR = 300,
257 <     GLINE_MIN_CIDR6 = 301,
258 <     GLOBAL_KILL = 302,
259 <     IRCD_AUTH = 303,
260 <     NEED_IDENT = 304,
261 <     HAVENT_READ_CONF = 305,
262 <     HIDDEN = 306,
263 <     HIDDEN_NAME = 307,
264 <     HIDE_SERVER_IPS = 308,
265 <     HIDE_SERVERS = 309,
266 <     HIDE_SPOOF_IPS = 310,
267 <     HOST = 311,
268 <     HUB = 312,
269 <     HUB_MASK = 313,
270 <     IGNORE_BOGUS_TS = 314,
271 <     INVISIBLE_ON_CONNECT = 315,
272 <     IP = 316,
273 <     KILL = 317,
274 <     KILL_CHASE_TIME_LIMIT = 318,
275 <     KLINE = 319,
276 <     KLINE_EXEMPT = 320,
277 <     KNOCK_DELAY = 321,
278 <     KNOCK_DELAY_CHANNEL = 322,
279 <     LEAF_MASK = 323,
280 <     LINKS_DELAY = 324,
281 <     LISTEN = 325,
282 <     T_LOG = 326,
283 <     MAX_ACCEPT = 327,
284 <     MAX_BANS = 328,
285 <     MAX_CHANS_PER_OPER = 329,
286 <     MAX_CHANS_PER_USER = 330,
287 <     MAX_GLOBAL = 331,
288 <     MAX_IDENT = 332,
289 <     MAX_LOCAL = 333,
290 <     MAX_NICK_CHANGES = 334,
291 <     MAX_NICK_TIME = 335,
292 <     MAX_NUMBER = 336,
293 <     MAX_TARGETS = 337,
294 <     MAX_WATCH = 338,
295 <     MESSAGE_LOCALE = 339,
296 <     MIN_NONWILDCARD = 340,
297 <     MIN_NONWILDCARD_SIMPLE = 341,
298 <     MODULE = 342,
299 <     MODULES = 343,
300 <     NAME = 344,
301 <     NEED_PASSWORD = 345,
302 <     NETWORK_DESC = 346,
303 <     NETWORK_NAME = 347,
304 <     NICK = 348,
305 <     NICK_CHANGES = 349,
306 <     NO_CREATE_ON_SPLIT = 350,
307 <     NO_JOIN_ON_SPLIT = 351,
308 <     NO_OPER_FLOOD = 352,
309 <     NO_TILDE = 353,
310 <     NUMBER = 354,
311 <     NUMBER_PER_CIDR = 355,
312 <     NUMBER_PER_IP = 356,
313 <     OPERATOR = 357,
314 <     OPERS_BYPASS_CALLERID = 358,
315 <     OPER_ONLY_UMODES = 359,
316 <     OPER_PASS_RESV = 360,
317 <     OPER_SPY_T = 361,
318 <     OPER_UMODES = 362,
319 <     JOIN_FLOOD_COUNT = 363,
320 <     JOIN_FLOOD_TIME = 364,
321 <     PACE_WAIT = 365,
322 <     PACE_WAIT_SIMPLE = 366,
323 <     PASSWORD = 367,
324 <     PATH = 368,
325 <     PING_COOKIE = 369,
326 <     PING_TIME = 370,
327 <     PING_WARNING = 371,
328 <     PORT = 372,
329 <     QSTRING = 373,
330 <     QUIET_ON_BAN = 374,
331 <     REASON = 375,
332 <     REDIRPORT = 376,
333 <     REDIRSERV = 377,
334 <     REGEX_T = 378,
335 <     REHASH = 379,
336 <     REMOTE = 380,
337 <     REMOTEBAN = 381,
338 <     RESTRICT_CHANNELS = 382,
339 <     RSA_PRIVATE_KEY_FILE = 383,
340 <     RSA_PUBLIC_KEY_FILE = 384,
341 <     SSL_CERTIFICATE_FILE = 385,
342 <     SSL_DH_PARAM_FILE = 386,
343 <     T_SSL_CLIENT_METHOD = 387,
344 <     T_SSL_SERVER_METHOD = 388,
345 <     T_SSLV3 = 389,
346 <     T_TLSV1 = 390,
347 <     RESV = 391,
348 <     RESV_EXEMPT = 392,
349 <     SECONDS = 393,
350 <     MINUTES = 394,
351 <     HOURS = 395,
352 <     DAYS = 396,
353 <     WEEKS = 397,
354 <     SENDQ = 398,
355 <     SEND_PASSWORD = 399,
356 <     SERVERHIDE = 400,
357 <     SERVERINFO = 401,
358 <     IRCD_SID = 402,
359 <     TKLINE_EXPIRE_NOTICES = 403,
360 <     T_SHARED = 404,
361 <     T_CLUSTER = 405,
362 <     TYPE = 406,
363 <     SHORT_MOTD = 407,
364 <     SPOOF = 408,
365 <     SPOOF_NOTICE = 409,
366 <     STATS_E_DISABLED = 410,
367 <     STATS_I_OPER_ONLY = 411,
368 <     STATS_K_OPER_ONLY = 412,
369 <     STATS_O_OPER_ONLY = 413,
370 <     STATS_P_OPER_ONLY = 414,
371 <     TBOOL = 415,
372 <     TMASKED = 416,
373 <     TS_MAX_DELTA = 417,
374 <     TS_WARN_DELTA = 418,
375 <     TWODOTS = 419,
376 <     T_ALL = 420,
377 <     T_BOTS = 421,
378 <     T_SOFTCALLERID = 422,
379 <     T_CALLERID = 423,
380 <     T_CCONN = 424,
381 <     T_CCONN_FULL = 425,
382 <     T_SSL_CIPHER_LIST = 426,
383 <     T_DEAF = 427,
384 <     T_DEBUG = 428,
385 <     T_DLINE = 429,
386 <     T_EXTERNAL = 430,
387 <     T_FULL = 431,
388 <     T_INVISIBLE = 432,
389 <     T_IPV4 = 433,
390 <     T_IPV6 = 434,
391 <     T_LOCOPS = 435,
392 <     T_MAX_CLIENTS = 436,
393 <     T_NCHANGE = 437,
394 <     T_OPERWALL = 438,
395 <     T_RECVQ = 439,
396 <     T_REJ = 440,
397 <     T_SERVER = 441,
398 <     T_SERVNOTICE = 442,
399 <     T_SET = 443,
400 <     T_SKILL = 444,
401 <     T_SPY = 445,
402 <     T_SSL = 446,
403 <     T_UMODES = 447,
404 <     T_UNAUTH = 448,
405 <     T_UNDLINE = 449,
406 <     T_UNLIMITED = 450,
407 <     T_UNRESV = 451,
408 <     T_UNXLINE = 452,
409 <     T_GLOBOPS = 453,
410 <     T_WALLOP = 454,
411 <     T_RESTART = 455,
412 <     T_SERVICE = 456,
413 <     T_SERVICES_NAME = 457,
414 <     THROTTLE_TIME = 458,
415 <     TRUE_NO_OPER_FLOOD = 459,
416 <     UNKLINE = 460,
417 <     USER = 461,
418 <     USE_EGD = 462,
419 <     USE_LOGGING = 463,
420 <     VHOST = 464,
421 <     VHOST6 = 465,
422 <     XLINE = 466,
423 <     WARN_NO_NLINE = 467,
424 <     T_SIZE = 468,
425 <     T_FILE = 469
426 <   };
211 >  enum yytokentype
212 >  {
213 >    ACCEPT_PASSWORD = 258,
214 >    ADMIN = 259,
215 >    AFTYPE = 260,
216 >    ANTI_NICK_FLOOD = 261,
217 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
218 >    AUTOCONN = 263,
219 >    AWAY_COUNT = 264,
220 >    AWAY_TIME = 265,
221 >    BYTES = 266,
222 >    KBYTES = 267,
223 >    MBYTES = 268,
224 >    CALLER_ID_WAIT = 269,
225 >    CAN_FLOOD = 270,
226 >    CHANNEL = 271,
227 >    CHECK_CACHE = 272,
228 >    CIDR_BITLEN_IPV4 = 273,
229 >    CIDR_BITLEN_IPV6 = 274,
230 >    CLASS = 275,
231 >    CLOSE = 276,
232 >    CONNECT = 277,
233 >    CONNECTFREQ = 278,
234 >    CYCLE_ON_HOST_CHANGE = 279,
235 >    DEFAULT_FLOODCOUNT = 280,
236 >    DEFAULT_JOIN_FLOOD_COUNT = 281,
237 >    DEFAULT_JOIN_FLOOD_TIME = 282,
238 >    DEFAULT_MAX_CLIENTS = 283,
239 >    DENY = 284,
240 >    DESCRIPTION = 285,
241 >    DIE = 286,
242 >    DISABLE_AUTH = 287,
243 >    DISABLE_FAKE_CHANNELS = 288,
244 >    DISABLE_REMOTE_COMMANDS = 289,
245 >    DLINE_MIN_CIDR = 290,
246 >    DLINE_MIN_CIDR6 = 291,
247 >    DOTS_IN_IDENT = 292,
248 >    EMAIL = 293,
249 >    ENCRYPTED = 294,
250 >    EXCEED_LIMIT = 295,
251 >    EXEMPT = 296,
252 >    FAILED_OPER_NOTICE = 297,
253 >    FLATTEN_LINKS = 298,
254 >    FLATTEN_LINKS_DELAY = 299,
255 >    FLATTEN_LINKS_FILE = 300,
256 >    GECOS = 301,
257 >    GENERAL = 302,
258 >    HIDDEN = 303,
259 >    HIDDEN_NAME = 304,
260 >    HIDE_CHANS = 305,
261 >    HIDE_IDLE = 306,
262 >    HIDE_IDLE_FROM_OPERS = 307,
263 >    HIDE_SERVER_IPS = 308,
264 >    HIDE_SERVERS = 309,
265 >    HIDE_SERVICES = 310,
266 >    HOST = 311,
267 >    HUB = 312,
268 >    HUB_MASK = 313,
269 >    IGNORE_BOGUS_TS = 314,
270 >    INVISIBLE_ON_CONNECT = 315,
271 >    INVITE_CLIENT_COUNT = 316,
272 >    INVITE_CLIENT_TIME = 317,
273 >    INVITE_DELAY_CHANNEL = 318,
274 >    IP = 319,
275 >    IRCD_AUTH = 320,
276 >    IRCD_FLAGS = 321,
277 >    IRCD_SID = 322,
278 >    JOIN = 323,
279 >    KILL = 324,
280 >    KILL_CHASE_TIME_LIMIT = 325,
281 >    KLINE = 326,
282 >    KLINE_EXEMPT = 327,
283 >    KLINE_MIN_CIDR = 328,
284 >    KLINE_MIN_CIDR6 = 329,
285 >    KNOCK_CLIENT_COUNT = 330,
286 >    KNOCK_CLIENT_TIME = 331,
287 >    KNOCK_DELAY_CHANNEL = 332,
288 >    LEAF_MASK = 333,
289 >    LIBGEOIP_DATABASE_OPTIONS = 334,
290 >    LIBGEOIP_IPV4_DATABASE_FILE = 335,
291 >    LIBGEOIP_IPV6_DATABASE_FILE = 336,
292 >    LISTEN = 337,
293 >    MASK = 338,
294 >    MAX_ACCEPT = 339,
295 >    MAX_BANS = 340,
296 >    MAX_CHANNELS = 341,
297 >    MAX_GLOBAL = 342,
298 >    MAX_IDENT = 343,
299 >    MAX_IDLE = 344,
300 >    MAX_LOCAL = 345,
301 >    MAX_NICK_CHANGES = 346,
302 >    MAX_NICK_LENGTH = 347,
303 >    MAX_NICK_TIME = 348,
304 >    MAX_NUMBER = 349,
305 >    MAX_TARGETS = 350,
306 >    MAX_TOPIC_LENGTH = 351,
307 >    MAX_WATCH = 352,
308 >    MEMORY_CACHE = 353,
309 >    MIN_IDLE = 354,
310 >    MIN_NONWILDCARD = 355,
311 >    MIN_NONWILDCARD_SIMPLE = 356,
312 >    MMAP_CACHE = 357,
313 >    MODULE = 358,
314 >    MODULES = 359,
315 >    MOTD = 360,
316 >    NAME = 361,
317 >    NEED_IDENT = 362,
318 >    NEED_PASSWORD = 363,
319 >    NETWORK_DESC = 364,
320 >    NETWORK_NAME = 365,
321 >    NICK = 366,
322 >    NO_OPER_FLOOD = 367,
323 >    NO_TILDE = 368,
324 >    NUMBER = 369,
325 >    NUMBER_PER_CIDR = 370,
326 >    NUMBER_PER_IP = 371,
327 >    OPER_ONLY_UMODES = 372,
328 >    OPER_UMODES = 373,
329 >    OPERATOR = 374,
330 >    OPERS_BYPASS_CALLERID = 375,
331 >    PACE_WAIT = 376,
332 >    PACE_WAIT_SIMPLE = 377,
333 >    PASSWORD = 378,
334 >    PATH = 379,
335 >    PING_COOKIE = 380,
336 >    PING_TIME = 381,
337 >    PORT = 382,
338 >    QSTRING = 383,
339 >    RANDOM_IDLE = 384,
340 >    REASON = 385,
341 >    REDIRPORT = 386,
342 >    REDIRSERV = 387,
343 >    REHASH = 388,
344 >    REMOTE = 389,
345 >    REMOTEBAN = 390,
346 >    RESV = 391,
347 >    RESV_EXEMPT = 392,
348 >    RSA_PRIVATE_KEY_FILE = 393,
349 >    SECONDS = 394,
350 >    MINUTES = 395,
351 >    HOURS = 396,
352 >    DAYS = 397,
353 >    WEEKS = 398,
354 >    MONTHS = 399,
355 >    YEARS = 400,
356 >    SEND_PASSWORD = 401,
357 >    SENDQ = 402,
358 >    SERVERHIDE = 403,
359 >    SERVERINFO = 404,
360 >    SHORT_MOTD = 405,
361 >    SPOOF = 406,
362 >    SPOOF_NOTICE = 407,
363 >    SQUIT = 408,
364 >    SSL_CERTIFICATE_FILE = 409,
365 >    SSL_CERTIFICATE_FINGERPRINT = 410,
366 >    SSL_CONNECTION_REQUIRED = 411,
367 >    SSL_DH_ELLIPTIC_CURVE = 412,
368 >    SSL_DH_PARAM_FILE = 413,
369 >    SSL_MESSAGE_DIGEST_ALGORITHM = 414,
370 >    STANDARD = 415,
371 >    STATS_E_DISABLED = 416,
372 >    STATS_I_OPER_ONLY = 417,
373 >    STATS_K_OPER_ONLY = 418,
374 >    STATS_M_OPER_ONLY = 419,
375 >    STATS_O_OPER_ONLY = 420,
376 >    STATS_P_OPER_ONLY = 421,
377 >    STATS_U_OPER_ONLY = 422,
378 >    T_ALL = 423,
379 >    T_BOTS = 424,
380 >    T_CALLERID = 425,
381 >    T_CCONN = 426,
382 >    T_COMMAND = 427,
383 >    T_CLUSTER = 428,
384 >    T_DEAF = 429,
385 >    T_DEBUG = 430,
386 >    T_DLINE = 431,
387 >    T_EXTERNAL = 432,
388 >    T_FARCONNECT = 433,
389 >    T_FILE = 434,
390 >    T_FULL = 435,
391 >    T_GLOBOPS = 436,
392 >    T_INVISIBLE = 437,
393 >    T_IPV4 = 438,
394 >    T_IPV6 = 439,
395 >    T_LOCOPS = 440,
396 >    T_LOG = 441,
397 >    T_NCHANGE = 442,
398 >    T_NONONREG = 443,
399 >    T_OPME = 444,
400 >    T_PREPEND = 445,
401 >    T_PSEUDO = 446,
402 >    T_RECVQ = 447,
403 >    T_REJ = 448,
404 >    T_RESTART = 449,
405 >    T_SERVER = 450,
406 >    T_SERVICE = 451,
407 >    T_SERVNOTICE = 452,
408 >    T_SET = 453,
409 >    T_SHARED = 454,
410 >    T_SIZE = 455,
411 >    T_SKILL = 456,
412 >    T_SOFTCALLERID = 457,
413 >    T_SPY = 458,
414 >    T_SSL = 459,
415 >    T_SSL_CIPHER_LIST = 460,
416 >    T_TARGET = 461,
417 >    T_UMODES = 462,
418 >    T_UNAUTH = 463,
419 >    T_UNDLINE = 464,
420 >    T_UNLIMITED = 465,
421 >    T_UNRESV = 466,
422 >    T_UNXLINE = 467,
423 >    T_WALLOP = 468,
424 >    T_WALLOPS = 469,
425 >    T_WEBIRC = 470,
426 >    TBOOL = 471,
427 >    THROTTLE_COUNT = 472,
428 >    THROTTLE_TIME = 473,
429 >    TKLINE_EXPIRE_NOTICES = 474,
430 >    TMASKED = 475,
431 >    TS_MAX_DELTA = 476,
432 >    TS_WARN_DELTA = 477,
433 >    TWODOTS = 478,
434 >    TYPE = 479,
435 >    UNKLINE = 480,
436 >    USE_LOGGING = 481,
437 >    USER = 482,
438 >    VHOST = 483,
439 >    VHOST6 = 484,
440 >    WARN_NO_CONNECT_BLOCK = 485,
441 >    WHOIS = 486,
442 >    XLINE = 487,
443 >    XLINE_EXEMPT = 488
444 >  };
445   #endif
446   /* Tokens.  */
447   #define ACCEPT_PASSWORD 258
# Line 406 | Line 450 | extern int yydebug;
450   #define ANTI_NICK_FLOOD 261
451   #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
452   #define AUTOCONN 263
453 < #define BYTES 264
454 < #define KBYTES 265
455 < #define MBYTES 266
456 < #define CALLER_ID_WAIT 267
457 < #define CAN_FLOOD 268
458 < #define CHANNEL 269
459 < #define CIDR_BITLEN_IPV4 270
460 < #define CIDR_BITLEN_IPV6 271
461 < #define CLASS 272
462 < #define CONNECT 273
463 < #define CONNECTFREQ 274
464 < #define DEFAULT_FLOODCOUNT 275
465 < #define DEFAULT_SPLIT_SERVER_COUNT 276
466 < #define DEFAULT_SPLIT_USER_COUNT 277
467 < #define DENY 278
468 < #define DESCRIPTION 279
469 < #define DIE 280
470 < #define DISABLE_AUTH 281
471 < #define DISABLE_FAKE_CHANNELS 282
472 < #define DISABLE_REMOTE_COMMANDS 283
473 < #define DOTS_IN_IDENT 284
474 < #define EGDPOOL_PATH 285
475 < #define EMAIL 286
476 < #define ENCRYPTED 287
477 < #define EXCEED_LIMIT 288
478 < #define EXEMPT 289
479 < #define FAILED_OPER_NOTICE 290
480 < #define IRCD_FLAGS 291
481 < #define FLATTEN_LINKS 292
482 < #define GECOS 293
483 < #define GENERAL 294
484 < #define GLINE 295
485 < #define GLINE_DURATION 296
486 < #define GLINE_ENABLE 297
487 < #define GLINE_EXEMPT 298
488 < #define GLINE_REQUEST_DURATION 299
489 < #define GLINE_MIN_CIDR 300
490 < #define GLINE_MIN_CIDR6 301
491 < #define GLOBAL_KILL 302
492 < #define IRCD_AUTH 303
493 < #define NEED_IDENT 304
494 < #define HAVENT_READ_CONF 305
495 < #define HIDDEN 306
496 < #define HIDDEN_NAME 307
453 > #define AWAY_COUNT 264
454 > #define AWAY_TIME 265
455 > #define BYTES 266
456 > #define KBYTES 267
457 > #define MBYTES 268
458 > #define CALLER_ID_WAIT 269
459 > #define CAN_FLOOD 270
460 > #define CHANNEL 271
461 > #define CHECK_CACHE 272
462 > #define CIDR_BITLEN_IPV4 273
463 > #define CIDR_BITLEN_IPV6 274
464 > #define CLASS 275
465 > #define CLOSE 276
466 > #define CONNECT 277
467 > #define CONNECTFREQ 278
468 > #define CYCLE_ON_HOST_CHANGE 279
469 > #define DEFAULT_FLOODCOUNT 280
470 > #define DEFAULT_JOIN_FLOOD_COUNT 281
471 > #define DEFAULT_JOIN_FLOOD_TIME 282
472 > #define DEFAULT_MAX_CLIENTS 283
473 > #define DENY 284
474 > #define DESCRIPTION 285
475 > #define DIE 286
476 > #define DISABLE_AUTH 287
477 > #define DISABLE_FAKE_CHANNELS 288
478 > #define DISABLE_REMOTE_COMMANDS 289
479 > #define DLINE_MIN_CIDR 290
480 > #define DLINE_MIN_CIDR6 291
481 > #define DOTS_IN_IDENT 292
482 > #define EMAIL 293
483 > #define ENCRYPTED 294
484 > #define EXCEED_LIMIT 295
485 > #define EXEMPT 296
486 > #define FAILED_OPER_NOTICE 297
487 > #define FLATTEN_LINKS 298
488 > #define FLATTEN_LINKS_DELAY 299
489 > #define FLATTEN_LINKS_FILE 300
490 > #define GECOS 301
491 > #define GENERAL 302
492 > #define HIDDEN 303
493 > #define HIDDEN_NAME 304
494 > #define HIDE_CHANS 305
495 > #define HIDE_IDLE 306
496 > #define HIDE_IDLE_FROM_OPERS 307
497   #define HIDE_SERVER_IPS 308
498   #define HIDE_SERVERS 309
499 < #define HIDE_SPOOF_IPS 310
499 > #define HIDE_SERVICES 310
500   #define HOST 311
501   #define HUB 312
502   #define HUB_MASK 313
503   #define IGNORE_BOGUS_TS 314
504   #define INVISIBLE_ON_CONNECT 315
505 < #define IP 316
506 < #define KILL 317
507 < #define KILL_CHASE_TIME_LIMIT 318
508 < #define KLINE 319
509 < #define KLINE_EXEMPT 320
510 < #define KNOCK_DELAY 321
511 < #define KNOCK_DELAY_CHANNEL 322
512 < #define LEAF_MASK 323
513 < #define LINKS_DELAY 324
514 < #define LISTEN 325
515 < #define T_LOG 326
516 < #define MAX_ACCEPT 327
517 < #define MAX_BANS 328
518 < #define MAX_CHANS_PER_OPER 329
519 < #define MAX_CHANS_PER_USER 330
520 < #define MAX_GLOBAL 331
521 < #define MAX_IDENT 332
522 < #define MAX_LOCAL 333
523 < #define MAX_NICK_CHANGES 334
524 < #define MAX_NICK_TIME 335
525 < #define MAX_NUMBER 336
526 < #define MAX_TARGETS 337
527 < #define MAX_WATCH 338
528 < #define MESSAGE_LOCALE 339
529 < #define MIN_NONWILDCARD 340
530 < #define MIN_NONWILDCARD_SIMPLE 341
531 < #define MODULE 342
532 < #define MODULES 343
533 < #define NAME 344
534 < #define NEED_PASSWORD 345
535 < #define NETWORK_DESC 346
536 < #define NETWORK_NAME 347
537 < #define NICK 348
538 < #define NICK_CHANGES 349
539 < #define NO_CREATE_ON_SPLIT 350
540 < #define NO_JOIN_ON_SPLIT 351
541 < #define NO_OPER_FLOOD 352
542 < #define NO_TILDE 353
543 < #define NUMBER 354
544 < #define NUMBER_PER_CIDR 355
545 < #define NUMBER_PER_IP 356
546 < #define OPERATOR 357
547 < #define OPERS_BYPASS_CALLERID 358
548 < #define OPER_ONLY_UMODES 359
549 < #define OPER_PASS_RESV 360
550 < #define OPER_SPY_T 361
551 < #define OPER_UMODES 362
552 < #define JOIN_FLOOD_COUNT 363
553 < #define JOIN_FLOOD_TIME 364
554 < #define PACE_WAIT 365
555 < #define PACE_WAIT_SIMPLE 366
556 < #define PASSWORD 367
557 < #define PATH 368
558 < #define PING_COOKIE 369
559 < #define PING_TIME 370
560 < #define PING_WARNING 371
561 < #define PORT 372
562 < #define QSTRING 373
563 < #define QUIET_ON_BAN 374
564 < #define REASON 375
565 < #define REDIRPORT 376
566 < #define REDIRSERV 377
567 < #define REGEX_T 378
568 < #define REHASH 379
569 < #define REMOTE 380
570 < #define REMOTEBAN 381
571 < #define RESTRICT_CHANNELS 382
572 < #define RSA_PRIVATE_KEY_FILE 383
573 < #define RSA_PUBLIC_KEY_FILE 384
574 < #define SSL_CERTIFICATE_FILE 385
575 < #define SSL_DH_PARAM_FILE 386
576 < #define T_SSL_CLIENT_METHOD 387
577 < #define T_SSL_SERVER_METHOD 388
578 < #define T_SSLV3 389
579 < #define T_TLSV1 390
505 > #define INVITE_CLIENT_COUNT 316
506 > #define INVITE_CLIENT_TIME 317
507 > #define INVITE_DELAY_CHANNEL 318
508 > #define IP 319
509 > #define IRCD_AUTH 320
510 > #define IRCD_FLAGS 321
511 > #define IRCD_SID 322
512 > #define JOIN 323
513 > #define KILL 324
514 > #define KILL_CHASE_TIME_LIMIT 325
515 > #define KLINE 326
516 > #define KLINE_EXEMPT 327
517 > #define KLINE_MIN_CIDR 328
518 > #define KLINE_MIN_CIDR6 329
519 > #define KNOCK_CLIENT_COUNT 330
520 > #define KNOCK_CLIENT_TIME 331
521 > #define KNOCK_DELAY_CHANNEL 332
522 > #define LEAF_MASK 333
523 > #define LIBGEOIP_DATABASE_OPTIONS 334
524 > #define LIBGEOIP_IPV4_DATABASE_FILE 335
525 > #define LIBGEOIP_IPV6_DATABASE_FILE 336
526 > #define LISTEN 337
527 > #define MASK 338
528 > #define MAX_ACCEPT 339
529 > #define MAX_BANS 340
530 > #define MAX_CHANNELS 341
531 > #define MAX_GLOBAL 342
532 > #define MAX_IDENT 343
533 > #define MAX_IDLE 344
534 > #define MAX_LOCAL 345
535 > #define MAX_NICK_CHANGES 346
536 > #define MAX_NICK_LENGTH 347
537 > #define MAX_NICK_TIME 348
538 > #define MAX_NUMBER 349
539 > #define MAX_TARGETS 350
540 > #define MAX_TOPIC_LENGTH 351
541 > #define MAX_WATCH 352
542 > #define MEMORY_CACHE 353
543 > #define MIN_IDLE 354
544 > #define MIN_NONWILDCARD 355
545 > #define MIN_NONWILDCARD_SIMPLE 356
546 > #define MMAP_CACHE 357
547 > #define MODULE 358
548 > #define MODULES 359
549 > #define MOTD 360
550 > #define NAME 361
551 > #define NEED_IDENT 362
552 > #define NEED_PASSWORD 363
553 > #define NETWORK_DESC 364
554 > #define NETWORK_NAME 365
555 > #define NICK 366
556 > #define NO_OPER_FLOOD 367
557 > #define NO_TILDE 368
558 > #define NUMBER 369
559 > #define NUMBER_PER_CIDR 370
560 > #define NUMBER_PER_IP 371
561 > #define OPER_ONLY_UMODES 372
562 > #define OPER_UMODES 373
563 > #define OPERATOR 374
564 > #define OPERS_BYPASS_CALLERID 375
565 > #define PACE_WAIT 376
566 > #define PACE_WAIT_SIMPLE 377
567 > #define PASSWORD 378
568 > #define PATH 379
569 > #define PING_COOKIE 380
570 > #define PING_TIME 381
571 > #define PORT 382
572 > #define QSTRING 383
573 > #define RANDOM_IDLE 384
574 > #define REASON 385
575 > #define REDIRPORT 386
576 > #define REDIRSERV 387
577 > #define REHASH 388
578 > #define REMOTE 389
579 > #define REMOTEBAN 390
580   #define RESV 391
581   #define RESV_EXEMPT 392
582 < #define SECONDS 393
583 < #define MINUTES 394
584 < #define HOURS 395
585 < #define DAYS 396
586 < #define WEEKS 397
587 < #define SENDQ 398
588 < #define SEND_PASSWORD 399
589 < #define SERVERHIDE 400
590 < #define SERVERINFO 401
591 < #define IRCD_SID 402
592 < #define TKLINE_EXPIRE_NOTICES 403
593 < #define T_SHARED 404
594 < #define T_CLUSTER 405
595 < #define TYPE 406
596 < #define SHORT_MOTD 407
597 < #define SPOOF 408
598 < #define SPOOF_NOTICE 409
599 < #define STATS_E_DISABLED 410
600 < #define STATS_I_OPER_ONLY 411
601 < #define STATS_K_OPER_ONLY 412
602 < #define STATS_O_OPER_ONLY 413
603 < #define STATS_P_OPER_ONLY 414
604 < #define TBOOL 415
605 < #define TMASKED 416
606 < #define TS_MAX_DELTA 417
607 < #define TS_WARN_DELTA 418
608 < #define TWODOTS 419
609 < #define T_ALL 420
610 < #define T_BOTS 421
611 < #define T_SOFTCALLERID 422
612 < #define T_CALLERID 423
613 < #define T_CCONN 424
614 < #define T_CCONN_FULL 425
615 < #define T_SSL_CIPHER_LIST 426
616 < #define T_DEAF 427
617 < #define T_DEBUG 428
618 < #define T_DLINE 429
619 < #define T_EXTERNAL 430
620 < #define T_FULL 431
621 < #define T_INVISIBLE 432
622 < #define T_IPV4 433
623 < #define T_IPV6 434
624 < #define T_LOCOPS 435
625 < #define T_MAX_CLIENTS 436
626 < #define T_NCHANGE 437
627 < #define T_OPERWALL 438
628 < #define T_RECVQ 439
629 < #define T_REJ 440
630 < #define T_SERVER 441
631 < #define T_SERVNOTICE 442
632 < #define T_SET 443
633 < #define T_SKILL 444
634 < #define T_SPY 445
635 < #define T_SSL 446
636 < #define T_UMODES 447
637 < #define T_UNAUTH 448
638 < #define T_UNDLINE 449
639 < #define T_UNLIMITED 450
640 < #define T_UNRESV 451
641 < #define T_UNXLINE 452
642 < #define T_GLOBOPS 453
643 < #define T_WALLOP 454
644 < #define T_RESTART 455
645 < #define T_SERVICE 456
646 < #define T_SERVICES_NAME 457
647 < #define THROTTLE_TIME 458
648 < #define TRUE_NO_OPER_FLOOD 459
649 < #define UNKLINE 460
650 < #define USER 461
651 < #define USE_EGD 462
652 < #define USE_LOGGING 463
653 < #define VHOST 464
654 < #define VHOST6 465
655 < #define XLINE 466
656 < #define WARN_NO_NLINE 467
657 < #define T_SIZE 468
658 < #define T_FILE 469
659 <
660 <
582 > #define RSA_PRIVATE_KEY_FILE 393
583 > #define SECONDS 394
584 > #define MINUTES 395
585 > #define HOURS 396
586 > #define DAYS 397
587 > #define WEEKS 398
588 > #define MONTHS 399
589 > #define YEARS 400
590 > #define SEND_PASSWORD 401
591 > #define SENDQ 402
592 > #define SERVERHIDE 403
593 > #define SERVERINFO 404
594 > #define SHORT_MOTD 405
595 > #define SPOOF 406
596 > #define SPOOF_NOTICE 407
597 > #define SQUIT 408
598 > #define SSL_CERTIFICATE_FILE 409
599 > #define SSL_CERTIFICATE_FINGERPRINT 410
600 > #define SSL_CONNECTION_REQUIRED 411
601 > #define SSL_DH_ELLIPTIC_CURVE 412
602 > #define SSL_DH_PARAM_FILE 413
603 > #define SSL_MESSAGE_DIGEST_ALGORITHM 414
604 > #define STANDARD 415
605 > #define STATS_E_DISABLED 416
606 > #define STATS_I_OPER_ONLY 417
607 > #define STATS_K_OPER_ONLY 418
608 > #define STATS_M_OPER_ONLY 419
609 > #define STATS_O_OPER_ONLY 420
610 > #define STATS_P_OPER_ONLY 421
611 > #define STATS_U_OPER_ONLY 422
612 > #define T_ALL 423
613 > #define T_BOTS 424
614 > #define T_CALLERID 425
615 > #define T_CCONN 426
616 > #define T_COMMAND 427
617 > #define T_CLUSTER 428
618 > #define T_DEAF 429
619 > #define T_DEBUG 430
620 > #define T_DLINE 431
621 > #define T_EXTERNAL 432
622 > #define T_FARCONNECT 433
623 > #define T_FILE 434
624 > #define T_FULL 435
625 > #define T_GLOBOPS 436
626 > #define T_INVISIBLE 437
627 > #define T_IPV4 438
628 > #define T_IPV6 439
629 > #define T_LOCOPS 440
630 > #define T_LOG 441
631 > #define T_NCHANGE 442
632 > #define T_NONONREG 443
633 > #define T_OPME 444
634 > #define T_PREPEND 445
635 > #define T_PSEUDO 446
636 > #define T_RECVQ 447
637 > #define T_REJ 448
638 > #define T_RESTART 449
639 > #define T_SERVER 450
640 > #define T_SERVICE 451
641 > #define T_SERVNOTICE 452
642 > #define T_SET 453
643 > #define T_SHARED 454
644 > #define T_SIZE 455
645 > #define T_SKILL 456
646 > #define T_SOFTCALLERID 457
647 > #define T_SPY 458
648 > #define T_SSL 459
649 > #define T_SSL_CIPHER_LIST 460
650 > #define T_TARGET 461
651 > #define T_UMODES 462
652 > #define T_UNAUTH 463
653 > #define T_UNDLINE 464
654 > #define T_UNLIMITED 465
655 > #define T_UNRESV 466
656 > #define T_UNXLINE 467
657 > #define T_WALLOP 468
658 > #define T_WALLOPS 469
659 > #define T_WEBIRC 470
660 > #define TBOOL 471
661 > #define THROTTLE_COUNT 472
662 > #define THROTTLE_TIME 473
663 > #define TKLINE_EXPIRE_NOTICES 474
664 > #define TMASKED 475
665 > #define TS_MAX_DELTA 476
666 > #define TS_WARN_DELTA 477
667 > #define TWODOTS 478
668 > #define TYPE 479
669 > #define UNKLINE 480
670 > #define USE_LOGGING 481
671 > #define USER 482
672 > #define VHOST 483
673 > #define VHOST6 484
674 > #define WARN_NO_CONNECT_BLOCK 485
675 > #define WHOIS 486
676 > #define XLINE 487
677 > #define XLINE_EXEMPT 488
678  
679 + /* Value type.  */
680   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
681 < typedef union YYSTYPE
681 >
682 > union YYSTYPE
683   {
684 < /* Line 350 of yacc.c  */
622 < #line 110 "conf_parser.y"
684 > #line 141 "conf_parser.y" /* yacc.c:355  */
685  
686    int number;
687    char *string;
688  
689 + #line 690 "conf_parser.c" /* yacc.c:355  */
690 + };
691  
692 < /* Line 350 of yacc.c  */
629 < #line 630 "conf_parser.c"
630 < } YYSTYPE;
692 > typedef union YYSTYPE YYSTYPE;
693   # define YYSTYPE_IS_TRIVIAL 1
632 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
694   # define YYSTYPE_IS_DECLARED 1
695   #endif
696  
697 +
698   extern YYSTYPE yylval;
699  
638 #ifdef YYPARSE_PARAM
639 #if defined __STDC__ || defined __cplusplus
640 int yyparse (void *YYPARSE_PARAM);
641 #else
642 int yyparse ();
643 #endif
644 #else /* ! YYPARSE_PARAM */
645 #if defined __STDC__ || defined __cplusplus
700   int yyparse (void);
647 #else
648 int yyparse ();
649 #endif
650 #endif /* ! YYPARSE_PARAM */
701  
702 < #endif /* !YY_Y_TAB_H  */
702 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
703  
704   /* Copy the second part of user declarations.  */
705  
706 < /* Line 353 of yacc.c  */
657 < #line 658 "conf_parser.c"
706 > #line 707 "conf_parser.c" /* yacc.c:358  */
707  
708   #ifdef short
709   # undef short
# Line 668 | Line 717 | typedef unsigned char yytype_uint8;
717  
718   #ifdef YYTYPE_INT8
719   typedef YYTYPE_INT8 yytype_int8;
671 #elif (defined __STDC__ || defined __C99__FUNC__ \
672     || defined __cplusplus || defined _MSC_VER)
673 typedef signed char yytype_int8;
720   #else
721 < typedef short int yytype_int8;
721 > typedef signed char yytype_int8;
722   #endif
723  
724   #ifdef YYTYPE_UINT16
# Line 692 | Line 738 | typedef short int yytype_int16;
738   #  define YYSIZE_T __SIZE_TYPE__
739   # elif defined size_t
740   #  define YYSIZE_T size_t
741 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
696 <     || defined __cplusplus || defined _MSC_VER)
741 > # elif ! defined YYSIZE_T
742   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
743   #  define YYSIZE_T size_t
744   # else
# Line 707 | Line 752 | typedef short int yytype_int16;
752   # if defined YYENABLE_NLS && YYENABLE_NLS
753   #  if ENABLE_NLS
754   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
755 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
755 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
756   #  endif
757   # endif
758   # ifndef YY_
759 < #  define YY_(msgid) msgid
759 > #  define YY_(Msgid) Msgid
760 > # endif
761 > #endif
762 >
763 > #ifndef YY_ATTRIBUTE
764 > # if (defined __GNUC__                                               \
765 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
766 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
767 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
768 > # else
769 > #  define YY_ATTRIBUTE(Spec) /* empty */
770 > # endif
771 > #endif
772 >
773 > #ifndef YY_ATTRIBUTE_PURE
774 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
775 > #endif
776 >
777 > #ifndef YY_ATTRIBUTE_UNUSED
778 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
779 > #endif
780 >
781 > #if !defined _Noreturn \
782 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
783 > # if defined _MSC_VER && 1200 <= _MSC_VER
784 > #  define _Noreturn __declspec (noreturn)
785 > # else
786 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
787   # endif
788   #endif
789  
790   /* Suppress unused-variable warnings by "using" E.  */
791   #if ! defined lint || defined __GNUC__
792 < # define YYUSE(e) ((void) (e))
792 > # define YYUSE(E) ((void) (E))
793   #else
794 < # define YYUSE(e) /* empty */
794 > # define YYUSE(E) /* empty */
795   #endif
796  
797 < /* Identity function, used to suppress warnings about constant conditions.  */
798 < #ifndef lint
799 < # define YYID(n) (n)
797 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
798 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
799 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
800 >    _Pragma ("GCC diagnostic push") \
801 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
802 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
803 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
804 >    _Pragma ("GCC diagnostic pop")
805   #else
806 < #if (defined __STDC__ || defined __C99__FUNC__ \
730 <     || defined __cplusplus || defined _MSC_VER)
731 < static int
732 < YYID (int yyi)
733 < #else
734 < static int
735 < YYID (yyi)
736 <    int yyi;
806 > # define YY_INITIAL_VALUE(Value) Value
807   #endif
808 < {
809 <  return yyi;
810 < }
808 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
809 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
810 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
811 > #endif
812 > #ifndef YY_INITIAL_VALUE
813 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
814   #endif
815  
816 +
817   #if ! defined yyoverflow || YYERROR_VERBOSE
818  
819   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 757 | Line 831 | YYID (yyi)
831   #    define alloca _alloca
832   #   else
833   #    define YYSTACK_ALLOC alloca
834 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
761 <     || defined __cplusplus || defined _MSC_VER)
834 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
835   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
836        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
837   #     ifndef EXIT_SUCCESS
# Line 770 | Line 843 | YYID (yyi)
843   # endif
844  
845   # ifdef YYSTACK_ALLOC
846 <   /* Pacify GCC's `empty if-body' warning.  */
847 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
846 >   /* Pacify GCC's 'empty if-body' warning.  */
847 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
848   #  ifndef YYSTACK_ALLOC_MAXIMUM
849      /* The OS might guarantee only one guard page at the bottom of the stack,
850         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 787 | Line 860 | YYID (yyi)
860   #  endif
861   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
862         && ! ((defined YYMALLOC || defined malloc) \
863 <             && (defined YYFREE || defined free)))
863 >             && (defined YYFREE || defined free)))
864   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
865   #   ifndef EXIT_SUCCESS
866   #    define EXIT_SUCCESS 0
# Line 795 | Line 868 | YYID (yyi)
868   #  endif
869   #  ifndef YYMALLOC
870   #   define YYMALLOC malloc
871 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
799 <     || defined __cplusplus || defined _MSC_VER)
871 > #   if ! defined malloc && ! defined EXIT_SUCCESS
872   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
873   #   endif
874   #  endif
875   #  ifndef YYFREE
876   #   define YYFREE free
877 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
806 <     || defined __cplusplus || defined _MSC_VER)
877 > #   if ! defined free && ! defined EXIT_SUCCESS
878   void free (void *); /* INFRINGES ON USER NAME SPACE */
879   #   endif
880   #  endif
# Line 813 | Line 884 | void free (void *); /* INFRINGES ON USER
884  
885   #if (! defined yyoverflow \
886       && (! defined __cplusplus \
887 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
887 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
888  
889   /* A type that is properly aligned for any stack member.  */
890   union yyalloc
# Line 838 | Line 909 | union yyalloc
909     elements in the stack, and YYPTR gives the new location of the
910     stack.  Advance YYPTR to a properly aligned location for the next
911     stack.  */
912 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
913 <    do                                                                  \
914 <      {                                                                 \
915 <        YYSIZE_T yynewbytes;                                            \
916 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
917 <        Stack = &yyptr->Stack_alloc;                                    \
918 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
919 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
920 <      }                                                                 \
921 <    while (YYID (0))
912 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
913 >    do                                                                  \
914 >      {                                                                 \
915 >        YYSIZE_T yynewbytes;                                            \
916 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
917 >        Stack = &yyptr->Stack_alloc;                                    \
918 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
919 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
920 >      }                                                                 \
921 >    while (0)
922  
923   #endif
924  
# Line 866 | Line 937 | union yyalloc
937            for (yyi = 0; yyi < (Count); yyi++)   \
938              (Dst)[yyi] = (Src)[yyi];            \
939          }                                       \
940 <      while (YYID (0))
940 >      while (0)
941   #  endif
942   # endif
943   #endif /* !YYCOPY_NEEDED */
# Line 874 | Line 945 | union yyalloc
945   /* YYFINAL -- State number of the termination state.  */
946   #define YYFINAL  2
947   /* YYLAST -- Last index in YYTABLE.  */
948 < #define YYLAST   1206
948 > #define YYLAST   1363
949  
950   /* YYNTOKENS -- Number of terminals.  */
951 < #define YYNTOKENS  220
951 > #define YYNTOKENS  240
952   /* YYNNTS -- Number of nonterminals.  */
953 < #define YYNNTS  283
953 > #define YYNNTS  298
954   /* YYNRULES -- Number of rules.  */
955 < #define YYNRULES  627
956 < /* YYNRULES -- Number of states.  */
957 < #define YYNSTATES  1228
955 > #define YYNRULES  675
956 > /* YYNSTATES -- Number of states.  */
957 > #define YYNSTATES  1327
958  
959 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
959 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
960 >   by yylex, with out-of-bounds checking.  */
961   #define YYUNDEFTOK  2
962 < #define YYMAXUTOK   469
962 > #define YYMAXUTOK   488
963  
964 < #define YYTRANSLATE(YYX)                                                \
964 > #define YYTRANSLATE(YYX)                                                \
965    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
966  
967 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
967 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
968 >   as returned by yylex, without out-of-bounds checking.  */
969   static const yytype_uint8 yytranslate[] =
970   {
971         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
972         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
973         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
974         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
975 <       2,     2,     2,     2,   219,     2,     2,     2,     2,     2,
976 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   215,
977 <       2,   218,     2,     2,     2,     2,     2,     2,     2,     2,
975 >       2,     2,     2,     2,   238,     2,     2,     2,     2,     2,
976 >       2,     2,     2,     2,     2,     2,     2,     2,   239,   234,
977 >       2,   237,     2,     2,     2,     2,     2,     2,     2,     2,
978         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
979         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
980         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
981         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
982         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
983 <       2,     2,     2,   217,     2,   216,     2,     2,     2,     2,
983 >       2,     2,     2,   236,     2,   235,     2,     2,     2,     2,
984         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
985         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
986         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 941 | Line 1014 | static const yytype_uint8 yytranslate[]
1014       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1015       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1016       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1017 <     205,   206,   207,   208,   209,   210,   211,   212,   213,   214
1017 >     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1018 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1019 >     225,   226,   227,   228,   229,   230,   231,   232,   233
1020   };
1021  
1022   #if YYDEBUG
1023 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
949 <   YYRHS.  */
950 < static const yytype_uint16 yyprhs[] =
951 < {
952 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
953 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
954 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
955 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
956 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
957 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
958 <     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
959 <     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
960 <     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
961 <     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
962 <     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
963 <     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
964 <     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
965 <     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
966 <     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
967 <     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
968 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
969 <     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
970 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
971 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
972 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
973 <     587,   589,   591,   593,   596,   601,   606,   611,   616,   621,
974 <     626,   631,   636,   641,   646,   651,   656,   661,   666,   667,
975 <     674,   675,   681,   685,   687,   689,   691,   693,   696,   698,
976 <     700,   702,   704,   706,   709,   710,   716,   720,   722,   724,
977 <     728,   733,   738,   739,   746,   749,   751,   753,   755,   757,
978 <     759,   761,   763,   765,   767,   770,   775,   780,   785,   790,
979 <     791,   797,   801,   803,   805,   807,   809,   811,   813,   815,
980 <     817,   819,   821,   826,   831,   836,   837,   844,   847,   849,
981 <     851,   853,   855,   858,   863,   868,   873,   879,   882,   884,
982 <     886,   888,   893,   894,   901,   904,   906,   908,   910,   912,
983 <     915,   920,   925,   926,   932,   936,   938,   940,   942,   944,
984 <     946,   948,   950,   952,   954,   956,   958,   959,   966,   969,
985 <     971,   973,   975,   978,   983,   984,   990,   994,   996,   998,
986 <    1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1017,
987 <    1024,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
988 <    1045,  1047,  1049,  1051,  1053,  1055,  1058,  1063,  1068,  1073,
989 <    1078,  1083,  1088,  1093,  1098,  1099,  1105,  1109,  1111,  1113,
990 <    1115,  1120,  1125,  1130,  1135,  1140,  1141,  1148,  1149,  1155,
991 <    1159,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1181,
992 <    1186,  1187,  1194,  1197,  1199,  1201,  1203,  1205,  1210,  1215,
993 <    1221,  1224,  1226,  1228,  1230,  1235,  1236,  1243,  1244,  1250,
994 <    1254,  1256,  1258,  1261,  1263,  1265,  1267,  1269,  1271,  1276,
995 <    1281,  1287,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
996 <    1306,  1308,  1310,  1312,  1314,  1316,  1318,  1320,  1322,  1324,
997 <    1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,
998 <    1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,  1364,
999 <    1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,
1000 <    1386,  1388,  1390,  1392,  1397,  1402,  1407,  1412,  1417,  1422,
1001 <    1427,  1432,  1437,  1442,  1447,  1452,  1457,  1462,  1467,  1472,
1002 <    1477,  1482,  1487,  1492,  1497,  1502,  1507,  1512,  1517,  1522,
1003 <    1527,  1532,  1537,  1542,  1547,  1552,  1557,  1562,  1567,  1572,
1004 <    1577,  1582,  1587,  1592,  1597,  1602,  1607,  1612,  1617,  1622,
1005 <    1623,  1629,  1633,  1635,  1637,  1639,  1641,  1643,  1645,  1647,
1006 <    1649,  1651,  1653,  1655,  1657,  1659,  1661,  1663,  1665,  1667,
1007 <    1669,  1671,  1673,  1675,  1676,  1682,  1686,  1688,  1690,  1692,
1008 <    1694,  1696,  1698,  1700,  1702,  1704,  1706,  1708,  1710,  1712,
1009 <    1714,  1716,  1718,  1720,  1722,  1724,  1726,  1728,  1733,  1738,
1010 <    1743,  1749,  1752,  1754,  1756,  1758,  1760,  1762,  1764,  1766,
1011 <    1768,  1770,  1772,  1774,  1776,  1778,  1780,  1782,  1784,  1789,
1012 <    1794,  1799,  1804,  1809,  1814,  1819,  1824,  1829,  1834,  1839,
1013 <    1844,  1849,  1854,  1860,  1863,  1865,  1867,  1869,  1871,  1873,
1014 <    1875,  1877,  1879,  1884,  1889,  1894,  1899,  1904
1015 < };
1016 <
1017 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1018 < static const yytype_int16 yyrhs[] =
1019 < {
1020 <     221,     0,    -1,    -1,   221,   222,    -1,   254,    -1,   260,
1021 <      -1,   274,    -1,   477,    -1,   292,    -1,   310,    -1,   324,
1022 <      -1,   232,    -1,   494,    -1,   339,    -1,   346,    -1,   350,
1023 <      -1,   360,    -1,   369,    -1,   389,    -1,   399,    -1,   405,
1024 <      -1,   419,    -1,   409,    -1,   227,    -1,     1,   215,    -1,
1025 <       1,   216,    -1,    -1,   224,    -1,    99,   223,    -1,    99,
1026 <     138,   223,    -1,    99,   139,   223,    -1,    99,   140,   223,
1027 <      -1,    99,   141,   223,    -1,    99,   142,   223,    -1,    -1,
1028 <     226,    -1,    99,   225,    -1,    99,     9,   225,    -1,    99,
1029 <      10,   225,    -1,    99,    11,   225,    -1,    88,   217,   228,
1030 <     216,   215,    -1,   228,   229,    -1,   229,    -1,   230,    -1,
1031 <     231,    -1,     1,   215,    -1,    87,   218,   118,   215,    -1,
1032 <     113,   218,   118,   215,    -1,   146,   217,   233,   216,   215,
1033 <      -1,   233,   234,    -1,   234,    -1,   245,    -1,   250,    -1,
1034 <     253,    -1,   247,    -1,   248,    -1,   249,    -1,   252,    -1,
1035 <     243,    -1,   242,    -1,   251,    -1,   246,    -1,   241,    -1,
1036 <     235,    -1,   236,    -1,   244,    -1,     1,   215,    -1,   132,
1037 <     218,   237,   215,    -1,   133,   218,   239,   215,    -1,   237,
1038 <     219,   238,    -1,   238,    -1,   134,    -1,   135,    -1,   239,
1039 <     219,   240,    -1,   240,    -1,   134,    -1,   135,    -1,   130,
1040 <     218,   118,   215,    -1,   128,   218,   118,   215,    -1,   131,
1041 <     218,   118,   215,    -1,   171,   218,   118,   215,    -1,    89,
1042 <     218,   118,   215,    -1,   147,   218,   118,   215,    -1,    24,
1043 <     218,   118,   215,    -1,    92,   218,   118,   215,    -1,    91,
1044 <     218,   118,   215,    -1,   209,   218,   118,   215,    -1,   210,
1045 <     218,   118,   215,    -1,   181,   218,    99,   215,    -1,    57,
1046 <     218,   160,   215,    -1,     4,   217,   255,   216,   215,    -1,
1047 <     255,   256,    -1,   256,    -1,   257,    -1,   259,    -1,   258,
1048 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,    31,
1049 <     218,   118,   215,    -1,    24,   218,   118,   215,    -1,    71,
1050 <     217,   261,   216,   215,    -1,   261,   262,    -1,   262,    -1,
1051 <     263,    -1,   264,    -1,     1,   215,    -1,   208,   218,   160,
1052 <     215,    -1,    -1,   265,   214,   217,   266,   216,   215,    -1,
1053 <     266,   267,    -1,   267,    -1,   268,    -1,   270,    -1,   269,
1054 <      -1,     1,   215,    -1,    89,   218,   118,   215,    -1,   213,
1055 <     218,   226,   215,    -1,   213,   218,   195,   215,    -1,    -1,
1056 <     151,   271,   218,   272,   215,    -1,   272,   219,   273,    -1,
1057 <     273,    -1,   206,    -1,   102,    -1,    40,    -1,   174,    -1,
1058 <      64,    -1,    62,    -1,   173,    -1,    -1,   102,   275,   217,
1059 <     276,   216,   215,    -1,   276,   277,    -1,   277,    -1,   278,
1060 <      -1,   279,    -1,   280,    -1,   284,    -1,   283,    -1,   281,
1061 <      -1,   282,    -1,   288,    -1,     1,   215,    -1,    89,   218,
1062 <     118,   215,    -1,   206,   218,   118,   215,    -1,   112,   218,
1063 <     118,   215,    -1,    32,   218,   160,   215,    -1,   129,   218,
1064 <     118,   215,    -1,    17,   218,   118,   215,    -1,    -1,   192,
1065 <     285,   218,   286,   215,    -1,   286,   219,   287,    -1,   287,
1066 <      -1,   166,    -1,   169,    -1,   170,    -1,   172,    -1,   173,
1067 <      -1,   176,    -1,    51,    -1,   189,    -1,   182,    -1,   185,
1068 <      -1,   193,    -1,   190,    -1,   175,    -1,   183,    -1,   187,
1069 <      -1,   177,    -1,   199,    -1,   167,    -1,   168,    -1,   180,
1070 <      -1,    -1,    36,   289,   218,   290,   215,    -1,   290,   219,
1071 <     291,    -1,   291,    -1,    47,    -1,   125,    -1,    64,    -1,
1072 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,    40,    -1,
1073 <      25,    -1,   200,    -1,   124,    -1,     4,    -1,    94,    -1,
1074 <     183,    -1,   198,    -1,   106,    -1,   126,    -1,   188,    -1,
1075 <      87,    -1,    -1,    17,   293,   217,   294,   216,   215,    -1,
1076 <     294,   295,    -1,   295,    -1,   296,    -1,   307,    -1,   308,
1077 <      -1,   297,    -1,   298,    -1,   309,    -1,   299,    -1,   300,
1078 <      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
1079 <      -1,   306,    -1,     1,   215,    -1,    89,   218,   118,   215,
1080 <      -1,   115,   218,   224,   215,    -1,   116,   218,   224,   215,
1081 <      -1,   101,   218,    99,   215,    -1,    19,   218,   224,   215,
1082 <      -1,    81,   218,    99,   215,    -1,    76,   218,    99,   215,
1083 <      -1,    78,   218,    99,   215,    -1,    77,   218,    99,   215,
1084 <      -1,   143,   218,   226,   215,    -1,   184,   218,   226,   215,
1085 <      -1,    15,   218,    99,   215,    -1,    16,   218,    99,   215,
1086 <      -1,   100,   218,    99,   215,    -1,    -1,    70,   311,   217,
1087 <     316,   216,   215,    -1,    -1,    36,   313,   218,   314,   215,
1088 <      -1,   314,   219,   315,    -1,   315,    -1,   191,    -1,    51,
1089 <      -1,   186,    -1,   316,   317,    -1,   317,    -1,   318,    -1,
1090 <     312,    -1,   322,    -1,   323,    -1,     1,   215,    -1,    -1,
1091 <     117,   218,   320,   319,   215,    -1,   320,   219,   321,    -1,
1092 <     321,    -1,    99,    -1,    99,   164,    99,    -1,    61,   218,
1093 <     118,   215,    -1,    56,   218,   118,   215,    -1,    -1,    48,
1094 <     325,   217,   326,   216,   215,    -1,   326,   327,    -1,   327,
1095 <      -1,   328,    -1,   329,    -1,   330,    -1,   332,    -1,   336,
1096 <      -1,   337,    -1,   338,    -1,   331,    -1,     1,   215,    -1,
1097 <     206,   218,   118,   215,    -1,   112,   218,   118,   215,    -1,
1098 <      17,   218,   118,   215,    -1,    32,   218,   160,   215,    -1,
1099 <      -1,    36,   333,   218,   334,   215,    -1,   334,   219,   335,
1100 <      -1,   335,    -1,   154,    -1,    33,    -1,    65,    -1,    49,
1101 <      -1,    13,    -1,    98,    -1,    43,    -1,   137,    -1,    90,
1102 <      -1,   153,   218,   118,   215,    -1,   122,   218,   118,   215,
1103 <      -1,   121,   218,    99,   215,    -1,    -1,   136,   340,   217,
1104 <     341,   216,   215,    -1,   341,   342,    -1,   342,    -1,   343,
1105 <      -1,   344,    -1,   345,    -1,     1,   215,    -1,   120,   218,
1106 <     118,   215,    -1,    14,   218,   118,   215,    -1,    93,   218,
1107 <     118,   215,    -1,   201,   217,   347,   216,   215,    -1,   347,
1108 <     348,    -1,   348,    -1,   349,    -1,     1,    -1,    89,   218,
1109 <     118,   215,    -1,    -1,   149,   351,   217,   352,   216,   215,
1110 <      -1,   352,   353,    -1,   353,    -1,   354,    -1,   355,    -1,
1111 <     356,    -1,     1,   215,    -1,    89,   218,   118,   215,    -1,
1112 <     206,   218,   118,   215,    -1,    -1,   151,   357,   218,   358,
1113 <     215,    -1,   358,   219,   359,    -1,   359,    -1,    64,    -1,
1114 <     205,    -1,   174,    -1,   194,    -1,   211,    -1,   197,    -1,
1115 <     136,    -1,   196,    -1,   180,    -1,   165,    -1,    -1,   150,
1116 <     361,   217,   362,   216,   215,    -1,   362,   363,    -1,   363,
1117 <      -1,   364,    -1,   365,    -1,     1,   215,    -1,    89,   218,
1118 <     118,   215,    -1,    -1,   151,   366,   218,   367,   215,    -1,
1119 <     367,   219,   368,    -1,   368,    -1,    64,    -1,   205,    -1,
1120 <     174,    -1,   194,    -1,   211,    -1,   197,    -1,   136,    -1,
1121 <     196,    -1,   180,    -1,   165,    -1,    -1,    18,   370,   217,
1122 <     371,   216,   215,    -1,   371,   372,    -1,   372,    -1,   373,
1123 <      -1,   374,    -1,   375,    -1,   376,    -1,   377,    -1,   379,
1124 <      -1,   378,    -1,   388,    -1,   380,    -1,   385,    -1,   386,
1125 <      -1,   387,    -1,   384,    -1,     1,   215,    -1,    89,   218,
1126 <     118,   215,    -1,    56,   218,   118,   215,    -1,   209,   218,
1127 <     118,   215,    -1,   144,   218,   118,   215,    -1,     3,   218,
1128 <     118,   215,    -1,   117,   218,    99,   215,    -1,     5,   218,
1129 <     178,   215,    -1,     5,   218,   179,   215,    -1,    -1,    36,
1130 <     381,   218,   382,   215,    -1,   382,   219,   383,    -1,   383,
1131 <      -1,     8,    -1,   191,    -1,    32,   218,   160,   215,    -1,
1132 <      58,   218,   118,   215,    -1,    68,   218,   118,   215,    -1,
1133 <      17,   218,   118,   215,    -1,   171,   218,   118,   215,    -1,
1134 <      -1,    62,   390,   217,   395,   216,   215,    -1,    -1,   151,
1135 <     392,   218,   393,   215,    -1,   393,   219,   394,    -1,   394,
1136 <      -1,   123,    -1,   395,   396,    -1,   396,    -1,   397,    -1,
1137 <     398,    -1,   391,    -1,     1,    -1,   206,   218,   118,   215,
1138 <      -1,   120,   218,   118,   215,    -1,    -1,    23,   400,   217,
1139 <     401,   216,   215,    -1,   401,   402,    -1,   402,    -1,   403,
1140 <      -1,   404,    -1,     1,    -1,    61,   218,   118,   215,    -1,
1141 <     120,   218,   118,   215,    -1,    34,   217,   406,   216,   215,
1142 <      -1,   406,   407,    -1,   407,    -1,   408,    -1,     1,    -1,
1143 <      61,   218,   118,   215,    -1,    -1,    38,   410,   217,   415,
1144 <     216,   215,    -1,    -1,   151,   412,   218,   413,   215,    -1,
1145 <     413,   219,   414,    -1,   414,    -1,   123,    -1,   415,   416,
1146 <      -1,   416,    -1,   417,    -1,   418,    -1,   411,    -1,     1,
1147 <      -1,    89,   218,   118,   215,    -1,   120,   218,   118,   215,
1148 <      -1,    39,   217,   420,   216,   215,    -1,   420,   421,    -1,
1149 <     421,    -1,   430,    -1,   431,    -1,   433,    -1,   434,    -1,
1150 <     435,    -1,   436,    -1,   437,    -1,   438,    -1,   439,    -1,
1151 <     440,    -1,   429,    -1,   442,    -1,   443,    -1,   458,    -1,
1152 <     445,    -1,   447,    -1,   449,    -1,   448,    -1,   452,    -1,
1153 <     446,    -1,   453,    -1,   454,    -1,   455,    -1,   456,    -1,
1154 <     457,    -1,   470,    -1,   459,    -1,   460,    -1,   461,    -1,
1155 <     466,    -1,   450,    -1,   451,    -1,   476,    -1,   474,    -1,
1156 <     475,    -1,   432,    -1,   465,    -1,   441,    -1,   463,    -1,
1157 <     464,    -1,   428,    -1,   423,    -1,   424,    -1,   425,    -1,
1158 <     426,    -1,   427,    -1,   444,    -1,   422,    -1,   462,    -1,
1159 <       1,    -1,    83,   218,    99,   215,    -1,    42,   218,   160,
1160 <     215,    -1,    41,   218,   224,   215,    -1,    44,   218,   224,
1161 <     215,    -1,    45,   218,    99,   215,    -1,    46,   218,    99,
1162 <     215,    -1,   148,   218,   160,   215,    -1,    63,   218,   224,
1163 <     215,    -1,    55,   218,   160,   215,    -1,    59,   218,   160,
1164 <     215,    -1,    28,   218,   160,   215,    -1,    35,   218,   160,
1165 <     215,    -1,     6,   218,   160,   215,    -1,    80,   218,   224,
1166 <     215,    -1,    79,   218,    99,   215,    -1,    72,   218,    99,
1167 <     215,    -1,     7,   218,   224,   215,    -1,   163,   218,   224,
1168 <     215,    -1,   162,   218,   224,   215,    -1,    50,   218,    99,
1169 <     215,    -1,    60,   218,   160,   215,    -1,   212,   218,   160,
1170 <     215,    -1,   155,   218,   160,   215,    -1,   158,   218,   160,
1171 <     215,    -1,   159,   218,   160,   215,    -1,   157,   218,   160,
1172 <     215,    -1,   157,   218,   161,   215,    -1,   156,   218,   160,
1173 <     215,    -1,   156,   218,   161,   215,    -1,   110,   218,   224,
1174 <     215,    -1,    12,   218,   224,   215,    -1,   103,   218,   160,
1175 <     215,    -1,   111,   218,   224,   215,    -1,   152,   218,   160,
1176 <     215,    -1,    97,   218,   160,   215,    -1,   204,   218,   160,
1177 <     215,    -1,   105,   218,   160,   215,    -1,    84,   218,   118,
1178 <     215,    -1,    29,   218,    99,   215,    -1,    82,   218,    99,
1179 <     215,    -1,   207,   218,   160,   215,    -1,    30,   218,   118,
1180 <     215,    -1,   202,   218,   118,   215,    -1,   114,   218,   160,
1181 <     215,    -1,    26,   218,   160,   215,    -1,   203,   218,   224,
1182 <     215,    -1,    -1,   107,   467,   218,   468,   215,    -1,   468,
1183 <     219,   469,    -1,   469,    -1,   166,    -1,   169,    -1,   170,
1184 <      -1,   172,    -1,   173,    -1,   176,    -1,    51,    -1,   189,
1185 <      -1,   182,    -1,   185,    -1,   193,    -1,   190,    -1,   175,
1186 <      -1,   183,    -1,   187,    -1,   177,    -1,   199,    -1,   167,
1187 <      -1,   168,    -1,   180,    -1,    -1,   104,   471,   218,   472,
1188 <     215,    -1,   472,   219,   473,    -1,   473,    -1,   166,    -1,
1189 <     169,    -1,   170,    -1,   172,    -1,   173,    -1,   176,    -1,
1190 <     189,    -1,    51,    -1,   182,    -1,   185,    -1,   193,    -1,
1191 <     190,    -1,   175,    -1,   183,    -1,   187,    -1,   177,    -1,
1192 <     199,    -1,   167,    -1,   168,    -1,   180,    -1,    85,   218,
1193 <      99,   215,    -1,    86,   218,    99,   215,    -1,    20,   218,
1194 <      99,   215,    -1,    14,   217,   478,   216,   215,    -1,   478,
1195 <     479,    -1,   479,    -1,   487,    -1,   482,    -1,   483,    -1,
1196 <     484,    -1,   485,    -1,   486,    -1,   488,    -1,   489,    -1,
1197 <     490,    -1,   481,    -1,   491,    -1,   492,    -1,   493,    -1,
1198 <     480,    -1,     1,    -1,    27,   218,   160,   215,    -1,   127,
1199 <     218,   160,   215,    -1,    66,   218,   224,   215,    -1,    67,
1200 <     218,   224,   215,    -1,    75,   218,    99,   215,    -1,    74,
1201 <     218,    99,   215,    -1,   119,   218,   160,   215,    -1,    73,
1202 <     218,    99,   215,    -1,    22,   218,    99,   215,    -1,    21,
1203 <     218,    99,   215,    -1,    95,   218,   160,   215,    -1,    96,
1204 <     218,   160,   215,    -1,   108,   218,    99,   215,    -1,   109,
1205 <     218,   224,   215,    -1,   145,   217,   495,   216,   215,    -1,
1206 <     495,   496,    -1,   496,    -1,   497,    -1,   498,    -1,   500,
1207 <      -1,   501,    -1,   499,    -1,   502,    -1,     1,    -1,    37,
1208 <     218,   160,   215,    -1,    54,   218,   160,   215,    -1,    52,
1209 <     218,   118,   215,    -1,    69,   218,   224,   215,    -1,    51,
1210 <     218,   160,   215,    -1,    53,   218,   160,   215,    -1
1211 < };
1212 <
1213 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1023 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1024   static const yytype_uint16 yyrline[] =
1025   {
1026 <       0,   330,   330,   331,   334,   335,   336,   337,   338,   339,
1027 <     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1028 <     350,   351,   352,   353,   354,   355,   359,   359,   360,   364,
1029 <     368,   372,   376,   380,   386,   386,   387,   388,   389,   390,
1030 <     397,   400,   400,   401,   401,   401,   403,   409,   416,   418,
1031 <     418,   419,   419,   420,   420,   421,   421,   422,   422,   423,
1032 <     423,   424,   424,   425,   425,   426,   427,   430,   431,   433,
1033 <     433,   434,   440,   448,   448,   449,   455,   463,   502,   561,
1034 <     589,   597,   612,   627,   636,   650,   659,   687,   717,   740,
1035 <     749,   751,   751,   752,   752,   753,   753,   755,   764,   773,
1036 <     785,   786,   786,   788,   788,   789,   791,   798,   798,   808,
1037 <     809,   811,   811,   812,   812,   814,   819,   822,   828,   827,
1038 <     833,   833,   834,   838,   842,   846,   850,   854,   858,   869,
1039 <     868,   966,   966,   967,   967,   967,   968,   968,   968,   969,
1040 <     969,   969,   971,   980,  1017,  1029,  1040,  1082,  1092,  1091,
1041 <    1097,  1097,  1098,  1102,  1106,  1110,  1114,  1118,  1122,  1126,
1042 <    1130,  1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,
1043 <    1170,  1174,  1181,  1180,  1186,  1186,  1187,  1191,  1195,  1199,
1044 <    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1045 <    1243,  1247,  1251,  1255,  1259,  1270,  1269,  1319,  1319,  1320,
1046 <    1321,  1321,  1322,  1323,  1324,  1325,  1326,  1327,  1328,  1329,
1047 <    1330,  1331,  1331,  1332,  1334,  1343,  1349,  1355,  1361,  1367,
1048 <    1373,  1379,  1385,  1391,  1397,  1404,  1410,  1416,  1426,  1425,
1049 <    1442,  1441,  1446,  1446,  1447,  1451,  1455,  1463,  1463,  1464,
1050 <    1464,  1464,  1464,  1464,  1466,  1466,  1468,  1468,  1470,  1484,
1051 <    1504,  1513,  1526,  1525,  1594,  1594,  1595,  1595,  1595,  1595,
1052 <    1596,  1596,  1596,  1597,  1597,  1599,  1634,  1647,  1656,  1668,
1053 <    1667,  1671,  1671,  1672,  1676,  1680,  1684,  1688,  1692,  1696,
1054 <    1700,  1704,  1710,  1729,  1739,  1753,  1752,  1768,  1768,  1769,
1055 <    1769,  1769,  1769,  1771,  1780,  1795,  1808,  1810,  1810,  1811,
1056 <    1811,  1813,  1829,  1828,  1844,  1844,  1845,  1845,  1845,  1845,
1057 <    1847,  1856,  1879,  1878,  1884,  1884,  1885,  1889,  1893,  1897,
1058 <    1901,  1905,  1909,  1913,  1917,  1921,  1931,  1930,  1947,  1947,
1059 <    1948,  1948,  1948,  1950,  1957,  1956,  1962,  1962,  1963,  1967,
1060 <    1971,  1975,  1979,  1983,  1987,  1991,  1995,  1999,  2009,  2008,
1061 <    2059,  2059,  2060,  2060,  2060,  2061,  2061,  2062,  2062,  2062,
1062 <    2063,  2063,  2063,  2064,  2064,  2065,  2067,  2076,  2085,  2111,
1063 <    2129,  2147,  2153,  2157,  2166,  2165,  2169,  2169,  2170,  2174,
1064 <    2180,  2191,  2202,  2213,  2222,  2241,  2240,  2306,  2305,  2309,
1065 <    2309,  2310,  2316,  2316,  2317,  2317,  2317,  2317,  2319,  2338,
1066 <    2348,  2347,  2372,  2372,  2373,  2373,  2373,  2375,  2381,  2390,
1067 <    2392,  2392,  2393,  2393,  2395,  2414,  2413,  2461,  2460,  2464,
1068 <    2464,  2465,  2471,  2471,  2472,  2472,  2472,  2472,  2474,  2480,
1069 <    2489,  2492,  2492,  2493,  2493,  2494,  2494,  2495,  2495,  2496,
1070 <    2496,  2497,  2497,  2498,  2499,  2500,  2500,  2501,  2501,  2502,
1071 <    2502,  2503,  2503,  2504,  2504,  2505,  2505,  2506,  2507,  2507,
1072 <    2508,  2508,  2509,  2509,  2510,  2510,  2511,  2511,  2512,  2513,
1073 <    2513,  2514,  2515,  2516,  2516,  2517,  2517,  2518,  2519,  2520,
1074 <    2521,  2521,  2522,  2525,  2530,  2536,  2542,  2548,  2553,  2558,
1075 <    2563,  2568,  2573,  2578,  2583,  2588,  2593,  2598,  2603,  2608,
1076 <    2613,  2618,  2624,  2635,  2640,  2645,  2650,  2655,  2660,  2663,
1077 <    2668,  2671,  2676,  2681,  2686,  2691,  2696,  2701,  2706,  2711,
1078 <    2716,  2727,  2732,  2737,  2742,  2751,  2760,  2765,  2770,  2776,
1079 <    2775,  2780,  2780,  2781,  2784,  2787,  2790,  2793,  2796,  2799,
1080 <    2802,  2805,  2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,
1081 <    2832,  2835,  2838,  2844,  2843,  2848,  2848,  2849,  2852,  2855,
1082 <    2858,  2861,  2864,  2867,  2870,  2873,  2876,  2879,  2882,  2885,
1083 <    2888,  2891,  2894,  2897,  2900,  2903,  2906,  2911,  2916,  2921,
1084 <    2930,  2933,  2933,  2934,  2935,  2935,  2936,  2936,  2937,  2937,
1085 <    2938,  2939,  2939,  2940,  2941,  2941,  2942,  2942,  2944,  2949,
1086 <    2954,  2959,  2964,  2969,  2974,  2979,  2984,  2989,  2994,  2999,
1087 <    3004,  3009,  3017,  3020,  3020,  3021,  3021,  3022,  3023,  3023,
1088 <    3024,  3025,  3027,  3033,  3039,  3048,  3062,  3068
1026 >       0,   378,   378,   379,   382,   383,   384,   385,   386,   387,
1027 >     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
1028 >     398,   399,   400,   401,   402,   403,   404,   405,   409,   409,
1029 >     410,   411,   412,   413,   414,   415,   416,   417,   420,   420,
1030 >     421,   422,   423,   424,   431,   433,   433,   434,   434,   434,
1031 >     436,   442,   452,   454,   454,   455,   456,   457,   458,   459,
1032 >     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
1033 >     470,   471,   472,   473,   474,   475,   478,   487,   496,   505,
1034 >     514,   523,   533,   532,   538,   538,   539,   545,   551,   557,
1035 >     565,   580,   595,   610,   625,   635,   649,   658,   686,   714,
1036 >     739,   761,   783,   793,   795,   795,   796,   797,   798,   799,
1037 >     801,   810,   819,   833,   832,   850,   850,   851,   851,   851,
1038 >     853,   859,   870,   869,   888,   888,   889,   889,   889,   889,
1039 >     889,   891,   897,   903,   909,   931,   932,   932,   934,   934,
1040 >     935,   937,   944,   944,   957,   958,   960,   960,   961,   961,
1041 >     963,   971,   974,   980,   979,   985,   985,   986,   990,   994,
1042 >     998,  1002,  1006,  1010,  1014,  1025,  1024,  1081,  1081,  1082,
1043 >    1083,  1084,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1092,
1044 >    1094,  1100,  1106,  1112,  1118,  1129,  1135,  1146,  1153,  1152,
1045 >    1158,  1158,  1159,  1163,  1167,  1171,  1175,  1179,  1183,  1187,
1046 >    1191,  1195,  1199,  1203,  1207,  1211,  1215,  1219,  1223,  1227,
1047 >    1231,  1235,  1239,  1243,  1250,  1249,  1255,  1255,  1256,  1260,
1048 >    1264,  1268,  1272,  1276,  1280,  1284,  1288,  1292,  1296,  1300,
1049 >    1304,  1308,  1312,  1316,  1320,  1324,  1328,  1332,  1336,  1340,
1050 >    1344,  1348,  1352,  1356,  1360,  1364,  1368,  1379,  1378,  1435,
1051 >    1435,  1436,  1437,  1438,  1439,  1440,  1441,  1442,  1443,  1444,
1052 >    1445,  1446,  1447,  1448,  1448,  1449,  1450,  1451,  1452,  1454,
1053 >    1460,  1466,  1472,  1478,  1484,  1490,  1496,  1502,  1508,  1514,
1054 >    1521,  1527,  1533,  1539,  1548,  1558,  1557,  1563,  1563,  1564,
1055 >    1568,  1579,  1578,  1585,  1584,  1589,  1589,  1590,  1594,  1598,
1056 >    1604,  1604,  1605,  1605,  1605,  1605,  1605,  1607,  1607,  1609,
1057 >    1609,  1611,  1624,  1641,  1647,  1658,  1657,  1699,  1699,  1700,
1058 >    1701,  1702,  1703,  1704,  1705,  1706,  1707,  1708,  1710,  1716,
1059 >    1722,  1728,  1740,  1739,  1745,  1745,  1746,  1750,  1754,  1758,
1060 >    1762,  1766,  1770,  1774,  1778,  1782,  1788,  1802,  1811,  1825,
1061 >    1824,  1839,  1839,  1840,  1840,  1840,  1840,  1842,  1848,  1854,
1062 >    1864,  1866,  1866,  1867,  1867,  1869,  1886,  1885,  1908,  1908,
1063 >    1909,  1909,  1909,  1909,  1911,  1917,  1937,  1936,  1942,  1942,
1064 >    1943,  1947,  1951,  1955,  1959,  1963,  1967,  1971,  1975,  1979,
1065 >    1990,  1989,  2008,  2008,  2009,  2009,  2009,  2011,  2018,  2017,
1066 >    2023,  2023,  2024,  2028,  2032,  2036,  2040,  2044,  2048,  2052,
1067 >    2056,  2060,  2071,  2070,  2142,  2142,  2143,  2144,  2145,  2146,
1068 >    2147,  2148,  2149,  2150,  2151,  2152,  2153,  2154,  2155,  2156,
1069 >    2157,  2159,  2165,  2171,  2177,  2190,  2203,  2209,  2215,  2219,
1070 >    2226,  2225,  2230,  2230,  2231,  2235,  2241,  2252,  2258,  2264,
1071 >    2270,  2286,  2285,  2311,  2311,  2312,  2312,  2312,  2314,  2334,
1072 >    2345,  2344,  2371,  2371,  2372,  2372,  2372,  2374,  2380,  2390,
1073 >    2392,  2392,  2393,  2393,  2395,  2413,  2412,  2435,  2435,  2436,
1074 >    2436,  2436,  2438,  2444,  2454,  2456,  2456,  2457,  2458,  2459,
1075 >    2460,  2461,  2462,  2463,  2464,  2465,  2466,  2467,  2468,  2469,
1076 >    2470,  2471,  2472,  2473,  2474,  2475,  2476,  2477,  2478,  2479,
1077 >    2480,  2481,  2482,  2483,  2484,  2485,  2486,  2487,  2488,  2489,
1078 >    2490,  2491,  2492,  2493,  2494,  2495,  2496,  2497,  2498,  2499,
1079 >    2500,  2501,  2502,  2505,  2510,  2515,  2520,  2526,  2531,  2536,
1080 >    2541,  2546,  2551,  2556,  2561,  2566,  2571,  2576,  2581,  2586,
1081 >    2591,  2596,  2602,  2607,  2612,  2617,  2622,  2627,  2632,  2637,
1082 >    2640,  2645,  2648,  2653,  2658,  2663,  2668,  2673,  2678,  2683,
1083 >    2688,  2693,  2698,  2703,  2708,  2714,  2713,  2718,  2718,  2719,
1084 >    2722,  2725,  2728,  2731,  2734,  2737,  2740,  2743,  2746,  2749,
1085 >    2752,  2755,  2758,  2761,  2764,  2767,  2770,  2773,  2776,  2779,
1086 >    2782,  2788,  2787,  2792,  2792,  2793,  2796,  2799,  2802,  2805,
1087 >    2808,  2811,  2814,  2817,  2820,  2823,  2826,  2829,  2832,  2835,
1088 >    2838,  2841,  2844,  2847,  2850,  2855,  2860,  2865,  2874,  2876,
1089 >    2876,  2877,  2878,  2879,  2880,  2881,  2882,  2883,  2884,  2885,
1090 >    2886,  2887,  2888,  2890,  2895,  2900,  2905,  2910,  2915,  2920,
1091 >    2925,  2930,  2935,  2940,  2949,  2951,  2951,  2952,  2953,  2954,
1092 >    2955,  2956,  2957,  2958,  2959,  2960,  2961,  2963,  2969,  2985,
1093 >    2994,  3000,  3006,  3012,  3021,  3027
1094   };
1095   #endif
1096  
# Line 1285 | Line 1100 | static const yytype_uint16 yyrline[] =
1100   static const char *const yytname[] =
1101   {
1102    "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1103 <  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1104 <  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1105 <  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1106 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1107 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1108 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1109 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1110 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1111 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1112 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1113 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1114 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1115 <  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1116 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1117 <  "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY",
1118 <  "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER",
1119 <  "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL",
1120 <  "MAX_NICK_CHANGES", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1121 <  "MAX_WATCH", "MESSAGE_LOCALE", "MIN_NONWILDCARD",
1122 <  "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "NAME", "NEED_PASSWORD",
1123 <  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1124 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1125 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1126 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1127 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1103 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1104 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1105 >  "CAN_FLOOD", "CHANNEL", "CHECK_CACHE", "CIDR_BITLEN_IPV4",
1106 >  "CIDR_BITLEN_IPV6", "CLASS", "CLOSE", "CONNECT", "CONNECTFREQ",
1107 >  "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT", "DEFAULT_JOIN_FLOOD_COUNT",
1108 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1109 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1110 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1111 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1112 >  "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1113 >  "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1114 >  "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1115 >  "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1116 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT",
1117 >  "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL", "IP", "IRCD_AUTH",
1118 >  "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT",
1119 >  "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6",
1120 >  "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL",
1121 >  "LEAF_MASK", "LIBGEOIP_DATABASE_OPTIONS", "LIBGEOIP_IPV4_DATABASE_FILE",
1122 >  "LIBGEOIP_IPV6_DATABASE_FILE", "LISTEN", "MASK", "MAX_ACCEPT",
1123 >  "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE",
1124 >  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1125 >  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1126 >  "MEMORY_CACHE", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1127 >  "MMAP_CACHE", "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT",
1128 >  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_OPER_FLOOD",
1129 >  "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP",
1130 >  "OPER_ONLY_UMODES", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1131    "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1132 <  "PING_TIME", "PING_WARNING", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON",
1133 <  "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1134 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1135 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1136 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1137 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD",
1138 <  "SERVERHIDE", "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES",
1139 <  "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1140 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1141 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1142 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1143 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1144 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1145 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1146 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1147 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1148 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1149 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1150 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1151 <  "USE_LOGGING", "VHOST", "VHOST6", "XLINE", "WARN_NO_NLINE", "T_SIZE",
1152 <  "T_FILE", "';'", "'}'", "'{'", "'='", "','", "$accept", "conf",
1153 <  "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1154 <  "modules_entry", "modules_items", "modules_item", "modules_module",
1155 <  "modules_path", "serverinfo_entry", "serverinfo_items",
1156 <  "serverinfo_item", "serverinfo_ssl_client_method",
1157 <  "serverinfo_ssl_server_method", "client_method_types",
1340 <  "client_method_type_item", "server_method_types",
1341 <  "server_method_type_item", "serverinfo_ssl_certificate_file",
1132 >  "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1133 >  "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1134 >  "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
1135 >  "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ", "SERVERHIDE", "SERVERINFO",
1136 >  "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1137 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1138 >  "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1139 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STANDARD", "STATS_E_DISABLED",
1140 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY",
1141 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL",
1142 >  "T_BOTS", "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF",
1143 >  "T_DEBUG", "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL",
1144 >  "T_GLOBOPS", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG",
1145 >  "T_NCHANGE", "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ",
1146 >  "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1147 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1148 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1149 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1150 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1151 >  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1152 >  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1153 >  "WARN_NO_CONNECT_BLOCK", "WHOIS", "XLINE", "XLINE_EXEMPT", "';'", "'}'",
1154 >  "'{'", "'='", "','", "':'", "$accept", "conf", "conf_item", "timespec_",
1155 >  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1156 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1157 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_certificate_file",
1158    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1159 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1160 <  "serverinfo_description", "serverinfo_network_name",
1159 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1160 >  "serverinfo_ssl_dh_elliptic_curve",
1161 >  "serverinfo_libgeoip_database_options", "$@1", "options_items",
1162 >  "options_item", "serverinfo_libgeoip_ipv4_database_file",
1163 >  "serverinfo_libgeoip_ipv6_database_file", "serverinfo_name",
1164 >  "serverinfo_sid", "serverinfo_description", "serverinfo_network_name",
1165    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1166 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1167 <  "admin_item", "admin_name", "admin_email", "admin_description",
1168 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1169 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1170 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1171 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1172 <  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1173 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1174 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1175 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1176 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1177 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1178 <  "class_connectfreq", "class_max_number", "class_max_global",
1179 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1166 >  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1167 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1168 >  "admin_items", "admin_item", "admin_name", "admin_email",
1169 >  "admin_description", "motd_entry", "$@2", "motd_items", "motd_item",
1170 >  "motd_mask", "motd_file", "pseudo_entry", "$@3", "pseudo_items",
1171 >  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1172 >  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1173 >  "logging_use_logging", "logging_file_entry", "$@4", "logging_file_items",
1174 >  "logging_file_item", "logging_file_name", "logging_file_size",
1175 >  "logging_file_type", "$@5", "logging_file_type_items",
1176 >  "logging_file_type_item", "oper_entry", "$@6", "oper_items", "oper_item",
1177 >  "oper_name", "oper_user", "oper_password", "oper_whois",
1178 >  "oper_encrypted", "oper_ssl_certificate_fingerprint",
1179 >  "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@7",
1180 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@8",
1181 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@9",
1182 >  "class_items", "class_item", "class_name", "class_ping_time",
1183 >  "class_number_per_ip", "class_connectfreq", "class_max_channels",
1184 >  "class_max_number", "class_max_global", "class_max_local",
1185 >  "class_max_ident", "class_sendq", "class_recvq",
1186    "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1187 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1188 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1189 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1190 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1191 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1192 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1193 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1194 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1195 <  "service_entry", "service_items", "service_item", "service_name",
1196 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1197 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1198 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1199 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1200 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1187 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1188 >  "class_flags", "$@10", "class_flags_items", "class_flags_item",
1189 >  "listen_entry", "$@11", "listen_flags", "$@12", "listen_flags_items",
1190 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1191 >  "$@13", "port_items", "port_item", "listen_address", "listen_host",
1192 >  "auth_entry", "$@14", "auth_items", "auth_item", "auth_user",
1193 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@15",
1194 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1195 >  "auth_redir_port", "resv_entry", "$@16", "resv_items", "resv_item",
1196 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1197 >  "service_items", "service_item", "service_name", "shared_entry", "$@17",
1198 >  "shared_items", "shared_item", "shared_name", "shared_user",
1199 >  "shared_type", "$@18", "shared_types", "shared_type_item",
1200 >  "cluster_entry", "$@19", "cluster_items", "cluster_item", "cluster_name",
1201 >  "cluster_type", "$@20", "cluster_types", "cluster_type_item",
1202 >  "connect_entry", "$@21", "connect_items", "connect_item", "connect_name",
1203    "connect_host", "connect_vhost", "connect_send_password",
1204 <  "connect_accept_password", "connect_port", "connect_aftype",
1205 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1206 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1207 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1208 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1209 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1204 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1205 >  "connect_port", "connect_aftype", "connect_flags", "$@22",
1206 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1207 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1208 >  "connect_ssl_cipher_list", "kill_entry", "$@23", "kill_items",
1209 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@24",
1210    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1211 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1384 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1211 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@25",
1212    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1213 <  "general_entry", "general_items", "general_item", "general_max_watch",
1214 <  "general_gline_enable", "general_gline_duration",
1215 <  "general_gline_request_duration", "general_gline_min_cidr",
1216 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1217 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1218 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1219 <  "general_failed_oper_notice", "general_anti_nick_flood",
1220 <  "general_max_nick_time", "general_max_nick_changes",
1221 <  "general_max_accept", "general_anti_spam_exit_message_time",
1222 <  "general_ts_warn_delta", "general_ts_max_delta",
1223 <  "general_havent_read_conf", "general_invisible_on_connect",
1224 <  "general_warn_no_nline", "general_stats_e_disabled",
1225 <  "general_stats_o_oper_only", "general_stats_P_oper_only",
1213 >  "general_entry", "general_items", "general_item", "general_away_count",
1214 >  "general_away_time", "general_max_watch", "general_cycle_on_host_change",
1215 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1216 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1217 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1218 >  "general_ignore_bogus_ts", "general_failed_oper_notice",
1219 >  "general_anti_nick_flood", "general_max_nick_time",
1220 >  "general_max_nick_changes", "general_max_accept",
1221 >  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1222 >  "general_ts_max_delta", "general_invisible_on_connect",
1223 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1224 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1225 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
1226    "general_stats_k_oper_only", "general_stats_i_oper_only",
1227    "general_pace_wait", "general_caller_id_wait",
1228    "general_opers_bypass_callerid", "general_pace_wait_simple",
1229 <  "general_short_motd", "general_no_oper_flood",
1230 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1231 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1232 <  "general_use_egd", "general_egdpool_path", "general_services_name",
1233 <  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1234 <  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1235 <  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1236 <  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1237 <  "general_default_floodcount", "channel_entry", "channel_items",
1238 <  "channel_item", "channel_disable_fake_channels",
1239 <  "channel_restrict_channels", "channel_knock_delay",
1240 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1241 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1415 <  "channel_default_split_user_count", "channel_default_split_server_count",
1416 <  "channel_no_create_on_split", "channel_no_join_on_split",
1417 <  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1229 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1230 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1231 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1232 >  "$@26", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1233 >  "$@27", "umode_items", "umode_item", "general_min_nonwildcard",
1234 >  "general_min_nonwildcard_simple", "general_default_floodcount",
1235 >  "channel_entry", "channel_items", "channel_item",
1236 >  "channel_disable_fake_channels", "channel_invite_client_count",
1237 >  "channel_invite_client_time", "channel_invite_delay_channel",
1238 >  "channel_knock_client_count", "channel_knock_client_time",
1239 >  "channel_knock_delay_channel", "channel_max_channels",
1240 >  "channel_max_bans", "channel_default_join_flood_count",
1241 >  "channel_default_join_flood_time", "serverhide_entry",
1242    "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1243 <  "serverhide_hide_servers", "serverhide_hidden_name",
1244 <  "serverhide_links_delay", "serverhide_hidden",
1245 <  "serverhide_hide_server_ips", YY_NULL
1243 >  "serverhide_flatten_links_delay", "serverhide_flatten_links_file",
1244 >  "serverhide_disable_remote_commands", "serverhide_hide_servers",
1245 >  "serverhide_hide_services", "serverhide_hidden_name",
1246 >  "serverhide_hidden", "serverhide_hide_server_ips", YY_NULLPTR
1247   };
1248   #endif
1249  
1250   # ifdef YYPRINT
1251 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1252 <   token YYLEX-NUM.  */
1251 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1252 >   (internal) symbol number NUM (which must be that of a token).  */
1253   static const yytype_uint16 yytoknum[] =
1254   {
1255         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1448 | Line 1273 | static const yytype_uint16 yytoknum[] =
1273       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1274       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1275       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1276 <     465,   466,   467,   468,   469,    59,   125,   123,    61,    44
1276 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1277 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1278 >     485,   486,   487,   488,    59,   125,   123,    61,    44,    58
1279   };
1280   # endif
1281  
1282 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1456 < static const yytype_uint16 yyr1[] =
1457 < {
1458 <       0,   220,   221,   221,   222,   222,   222,   222,   222,   222,
1459 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1460 <     222,   222,   222,   222,   222,   222,   223,   223,   224,   224,
1461 <     224,   224,   224,   224,   225,   225,   226,   226,   226,   226,
1462 <     227,   228,   228,   229,   229,   229,   230,   231,   232,   233,
1463 <     233,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1464 <     234,   234,   234,   234,   234,   234,   234,   235,   236,   237,
1465 <     237,   238,   238,   239,   239,   240,   240,   241,   242,   243,
1466 <     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1467 <     254,   255,   255,   256,   256,   256,   256,   257,   258,   259,
1468 <     260,   261,   261,   262,   262,   262,   263,   265,   264,   266,
1469 <     266,   267,   267,   267,   267,   268,   269,   269,   271,   270,
1470 <     272,   272,   273,   273,   273,   273,   273,   273,   273,   275,
1471 <     274,   276,   276,   277,   277,   277,   277,   277,   277,   277,
1472 <     277,   277,   278,   279,   280,   281,   282,   283,   285,   284,
1473 <     286,   286,   287,   287,   287,   287,   287,   287,   287,   287,
1474 <     287,   287,   287,   287,   287,   287,   287,   287,   287,   287,
1475 <     287,   287,   289,   288,   290,   290,   291,   291,   291,   291,
1476 <     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1477 <     291,   291,   291,   291,   291,   293,   292,   294,   294,   295,
1478 <     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1479 <     295,   295,   295,   295,   296,   297,   298,   299,   300,   301,
1480 <     302,   303,   304,   305,   306,   307,   308,   309,   311,   310,
1481 <     313,   312,   314,   314,   315,   315,   315,   316,   316,   317,
1482 <     317,   317,   317,   317,   319,   318,   320,   320,   321,   321,
1483 <     322,   323,   325,   324,   326,   326,   327,   327,   327,   327,
1484 <     327,   327,   327,   327,   327,   328,   329,   330,   331,   333,
1485 <     332,   334,   334,   335,   335,   335,   335,   335,   335,   335,
1486 <     335,   335,   336,   337,   338,   340,   339,   341,   341,   342,
1487 <     342,   342,   342,   343,   344,   345,   346,   347,   347,   348,
1488 <     348,   349,   351,   350,   352,   352,   353,   353,   353,   353,
1489 <     354,   355,   357,   356,   358,   358,   359,   359,   359,   359,
1490 <     359,   359,   359,   359,   359,   359,   361,   360,   362,   362,
1491 <     363,   363,   363,   364,   366,   365,   367,   367,   368,   368,
1492 <     368,   368,   368,   368,   368,   368,   368,   368,   370,   369,
1493 <     371,   371,   372,   372,   372,   372,   372,   372,   372,   372,
1494 <     372,   372,   372,   372,   372,   372,   373,   374,   375,   376,
1495 <     377,   378,   379,   379,   381,   380,   382,   382,   383,   383,
1496 <     384,   385,   386,   387,   388,   390,   389,   392,   391,   393,
1497 <     393,   394,   395,   395,   396,   396,   396,   396,   397,   398,
1498 <     400,   399,   401,   401,   402,   402,   402,   403,   404,   405,
1499 <     406,   406,   407,   407,   408,   410,   409,   412,   411,   413,
1500 <     413,   414,   415,   415,   416,   416,   416,   416,   417,   418,
1501 <     419,   420,   420,   421,   421,   421,   421,   421,   421,   421,
1502 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1503 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1504 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1505 <     421,   421,   421,   421,   421,   421,   421,   421,   421,   421,
1506 <     421,   421,   421,   422,   423,   424,   425,   426,   427,   428,
1507 <     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1508 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   447,
1509 <     448,   448,   449,   450,   451,   452,   453,   454,   455,   456,
1510 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   467,
1511 <     466,   468,   468,   469,   469,   469,   469,   469,   469,   469,
1512 <     469,   469,   469,   469,   469,   469,   469,   469,   469,   469,
1513 <     469,   469,   469,   471,   470,   472,   472,   473,   473,   473,
1514 <     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
1515 <     473,   473,   473,   473,   473,   473,   473,   474,   475,   476,
1516 <     477,   478,   478,   479,   479,   479,   479,   479,   479,   479,
1517 <     479,   479,   479,   479,   479,   479,   479,   479,   480,   481,
1518 <     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
1519 <     492,   493,   494,   495,   495,   496,   496,   496,   496,   496,
1520 <     496,   496,   497,   498,   499,   500,   501,   502
1521 < };
1282 > #define YYPACT_NINF -1024
1283  
1284 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1285 < static const yytype_uint8 yyr2[] =
1284 > #define yypact_value_is_default(Yystate) \
1285 >  (!!((Yystate) == (-1024)))
1286 >
1287 > #define YYTABLE_NINF -143
1288 >
1289 > #define yytable_value_is_error(Yytable_value) \
1290 >  0
1291 >
1292 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1293 >     STATE-NUM.  */
1294 > static const yytype_int16 yypact[] =
1295   {
1296 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1297 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1298 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1299 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1300 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1301 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1302 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1303 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1304 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1305 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1306 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1307 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1308 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1309 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1310 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1311 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1312 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1313 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1314 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1315 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1316 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1317 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1318 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1319 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1320 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1321 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1322 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1323 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1324 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1325 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1326 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1327 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1328 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1329 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1330 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1331 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1332 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1333 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1334 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1335 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1336 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1337 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1338 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1339 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1340 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1342 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1343 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1344 <       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
1345 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1346 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1347 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1348 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
1349 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1350 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1351 <       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
1352 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1353 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1354 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1355 <       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
1356 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1357 <       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
1358 <       1,     1,     4,     4,     4,     4,     4,     4
1296 >   -1024,   697, -1024,  -192,  -218,  -216, -1024, -1024, -1024,  -208,
1297 >   -1024,  -206, -1024, -1024, -1024,  -182, -1024, -1024, -1024,  -176,
1298 >    -173, -1024,  -158, -1024,  -137, -1024, -1024, -1024, -1024, -1024,
1299 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1300 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1301 >   -1024,   330,   814,  -131,  -126,  -104,    37,  -101,   434,   -99,
1302 >     -76,   -68,    63,   -60,   -54,   -32,   764,   552,   -31,     9,
1303 >     -30,    24,   -29,   -13,   -15,   -14,    -6,    78, -1024, -1024,
1304 >   -1024, -1024, -1024,    17,    41,    53,    60,    65,    95,   103,
1305 >     108,   115,   116,   127,     6, -1024, -1024, -1024, -1024, -1024,
1306 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,   766,   615,    33,
1307 >   -1024,   132,    11, -1024, -1024,    28, -1024,   141,   143,   148,
1308 >     150,   155,   157,   172,   174,   175,   180,   182,   183,   184,
1309 >     186,   188,   192,   195,   197,   200,   201,   202,   205,   210,
1310 >     212,   215, -1024, -1024,   216,   217,   218,   219,   220,   223,
1311 >     224,   225,   226,   227,   231,   235,   236,   237,   238,   240,
1312 >     241,   242,    52, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1313 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1314 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1315 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1316 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   299,
1317 >      69,    40,    55,   243,   244,    20, -1024, -1024, -1024,    10,
1318 >     260,    97, -1024,   245,   247,   248,   249,   251,   252,   258,
1319 >     259,   261,     2, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1320 >   -1024, -1024, -1024,    81,   262,   263,   264,   266, -1024,   268,
1321 >     272,   273,   274,   275,   277,   279,   280,   282,   283,   284,
1322 >     286,   291,   293,   296,   153, -1024, -1024, -1024, -1024, -1024,
1323 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1324 >   -1024, -1024, -1024, -1024, -1024, -1024,   119,   123,   300,    16,
1325 >   -1024, -1024, -1024,    61,   189, -1024,   301,    13, -1024, -1024,
1326 >      79, -1024,   234,   239,   265,   194, -1024,   401,   422,   323,
1327 >     426,   422,   422,   428,   422,   422,   430,   431,   313, -1024,
1328 >     314,   312,   327,   329, -1024,   332,   334,   335,   336,   338,
1329 >     339,   340,   341,   342,   346,   348,   349,   352,   178, -1024,
1330 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1331 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,   316,   353,   354,
1332 >     355,   357,   366,   368, -1024,   369,   374,   375,   376,   377,
1333 >     378,   380,   278, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1334 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   384,
1335 >     385,    21, -1024, -1024, -1024,   446,   359, -1024, -1024,   386,
1336 >     387,    18, -1024, -1024, -1024,   409,   422,   512,   422,   422,
1337 >     412,   515,   414,   520,   522,   523,   423,   424,   425,   422,
1338 >     524,   529,   531,   532,   422,   533,   535,   543,   546,   447,
1339 >     429,   432,   452,   422,   422,   454,   461,   462,  -193,  -185,
1340 >     463,   464,   466,   468,   571,   422,   470,   422,   422,   471,
1341 >     455, -1024,   457,   451,   458, -1024,   459,   467,   475,   477,
1342 >     481,   191, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1343 >   -1024, -1024,   485,   488,    25, -1024, -1024, -1024,   460,   490,
1344 >     492, -1024,   493, -1024,    51, -1024, -1024, -1024, -1024, -1024,
1345 >     577,   579,   465, -1024,   474,   494,   495,   156, -1024, -1024,
1346 >   -1024,   500,   498,   499, -1024,   502,   503,   504,   508, -1024,
1347 >     509,   510,   120, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1348 >   -1024, -1024, -1024, -1024,   518,   517,   519,   521,    73, -1024,
1349 >   -1024, -1024, -1024,   544,   547,   422,   621,   553,   627,   556,
1350 >     557,   558,   525, -1024, -1024,   654,   647,   560,   649,   541,
1351 >     655,   658,   668,   673,   664,   665,   666,   667,   669,   671,
1352 >     672,   675,   676,   677,   678,   562, -1024,   576,   574, -1024,
1353 >      94, -1024, -1024, -1024, -1024,   598,   587, -1024,   586,   589,
1354 >     588,   590,   591,   592,     3, -1024, -1024, -1024, -1024, -1024,
1355 >     696,   596, -1024,   597,   601, -1024,   602,    23, -1024, -1024,
1356 >   -1024, -1024,   608,   610,   614, -1024,   616,   232,   617,   623,
1357 >     624,   625,   628,   629,   630,   632,   633,   634, -1024, -1024,
1358 >     712,   721,   422,   612,   747,   755,   757,   422,   759,   765,
1359 >     422,   750,   770,   771,   422,   772,   772,   646, -1024, -1024,
1360 >     767,  -135,   769,   682,   773,   774,   650,   775,   776,   780,
1361 >     777,   778,   779,   784,   674, -1024,   788,   791,   687, -1024,
1362 >     689, -1024,   796,   798,   695, -1024,   698,   700,   701,   702,
1363 >     704,   705,   706,   710,   711,   713,   715,   716,   717,   718,
1364 >     720,   725,   728,   731,   733,   735,   736,   738,   741,   742,
1365 >     743,   826,   740,   744,   746,   748,   751,   752,   756,   758,
1366 >     768,   781,   782,   783,   787,   790,   792,   797,   799,   801,
1367 >     802,   803,   804, -1024, -1024,   818,   714,   694,   853,   870,
1368 >     863,   865,   877,   806, -1024,   879,   881,   807, -1024, -1024,
1369 >     882,   884,   761,   904,   808, -1024,   809,   810, -1024, -1024,
1370 >     892,   894,   811, -1024, -1024,   897,   816,   793,   918,   919,
1371 >     920,   833,   813,   923,   924,   819, -1024, -1024,   926,   927,
1372 >     928,   823, -1024,   824,   825,   827,   828,   829,   830,   831,
1373 >     832,   834, -1024,   835,   836,   837,   838,    48,   839,   840,
1374 >     841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
1375 >     851,   852,   854, -1024, -1024,   932,   855,   856, -1024,   857,
1376 >   -1024,   130, -1024,   939,   959,   961,   965,   860, -1024,   861,
1377 >   -1024, -1024,   968,   862,   969,   864, -1024, -1024, -1024, -1024,
1378 >   -1024,   422,   422,   422,   422,   422,   422,   422, -1024, -1024,
1379 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1380 >     866,   867,   868,   -39,   869,   871,   872,   873,   874,   875,
1381 >     876,   878,   880,   883,   885,   337,   886,   887, -1024,   888,
1382 >     889,   890,   891,   893,   895,   896,     8,   898,   899,   900,
1383 >     901,   902,   903,   905, -1024,   906,   907, -1024, -1024,   908,
1384 >     909, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1385 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1386 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1387 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1388 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,  -194, -1024, -1024,
1389 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1390 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1391 >   -1024,   -73, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1392 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1393 >   -1024, -1024, -1024,   910,   911,   450,   912,   913,   914,   915,
1394 >     916, -1024,   917,   921, -1024,   922,   925,   -33,   929,   930,
1395 >   -1024, -1024, -1024, -1024,   931,   933, -1024,   935,   936,   539,
1396 >     937,   938,   940,   941,   786,   942,   943, -1024,   944,   945,
1397 >     946, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1398 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   -40,
1399 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1400 >   -1024, -1024, -1024, -1024, -1024, -1024,   947,   356, -1024, -1024,
1401 >     948,   949,   950, -1024,    85, -1024, -1024, -1024, -1024,   951,
1402 >     954,   955,   956, -1024, -1024,   957,   491,   958, -1024, -1024,
1403 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1404 >   -1024,   -10, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1405 >   -1024, -1024, -1024, -1024,   772,   772,   772, -1024, -1024, -1024,
1406 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1407 >      54, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1408 >   -1024, -1024, -1024, -1024,   826, -1024,   740, -1024, -1024, -1024,
1409 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,    67,
1410 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1411 >   -1024, -1024, -1024,    99, -1024,   990,   904,   960, -1024, -1024,
1412 >   -1024, -1024, -1024, -1024,   934, -1024,   962,   963, -1024, -1024,
1413 >     964,   966, -1024, -1024,   967, -1024, -1024, -1024, -1024, -1024,
1414 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,   125, -1024, -1024,
1415 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1416 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1417 >   -1024, -1024, -1024, -1024, -1024,   152, -1024, -1024, -1024, -1024,
1418 >   -1024, -1024, -1024,    48, -1024, -1024, -1024, -1024, -1024, -1024,
1419 >   -1024, -1024, -1024, -1024, -1024,   169, -1024, -1024,   983,   -77,
1420 >     970,   974, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1421 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   170, -1024,
1422 >   -1024, -1024,   -39, -1024, -1024, -1024, -1024,     8, -1024, -1024,
1423 >   -1024,   450, -1024,   -33, -1024, -1024, -1024,   979,   980,   981,
1424 >     982,   992,   994, -1024,   539, -1024,   786, -1024, -1024,   356,
1425 >     975,   976,   977,   270, -1024, -1024,   491, -1024, -1024, -1024,
1426 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1427 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1428 >   -1024,   176, -1024, -1024, -1024,   270, -1024
1429   };
1430  
1431 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1432 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1433 <   means the default is an error.  */
1431 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1432 >     Performed when YYTABLE does not specify something else to do.  Zero
1433 >     means the default is an error.  */
1434   static const yytype_uint16 yydefact[] =
1435   {
1436 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1437 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1438 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1439 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1440 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1436 >       2,     0,     1,     0,     0,     0,   247,   412,   460,     0,
1437 >     475,     0,   315,   451,   291,     0,   113,   165,   349,     0,
1438 >       0,   390,     0,   122,     0,   366,     3,    23,    11,     4,
1439 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1440 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1441 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1442         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1443 +       0,     0,     0,     0,     0,     0,     0,     0,   105,   106,
1444 +     108,   107,   642,     0,     0,     0,     0,     0,     0,     0,
1445 +       0,     0,     0,     0,     0,   630,   641,   632,   633,   634,
1446 +     635,   636,   637,   638,   631,   639,   640,     0,     0,     0,
1447 +     473,     0,     0,   471,   472,     0,   532,     0,     0,     0,
1448         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1603       0,     0,    92,    93,    95,    94,   597,     0,     0,     0,
1449         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1450 <       0,     0,   582,   596,   592,   584,   585,   586,   587,   588,
1606 <     583,   589,   590,   591,   593,   594,   595,     0,     0,     0,
1607 <     413,     0,     0,   411,   412,     0,   482,     0,     0,     0,
1450 >       0,     0,   601,   575,     0,     0,     0,     0,     0,     0,
1451         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1452 +       0,     0,     0,   486,   487,   488,   530,   531,   525,   526,
1453 +     527,   528,   524,   498,   489,   490,   491,   492,   493,   494,
1454 +     495,   496,   497,   499,   500,   529,   504,   505,   506,   507,
1455 +     503,   502,   508,   515,   516,   509,   510,   511,   501,   513,
1456 +     522,   523,   520,   521,   514,   512,   518,   519,   517,     0,
1457 +       0,     0,     0,     0,     0,     0,    46,    47,    48,     0,
1458 +       0,     0,   666,     0,     0,     0,     0,     0,     0,     0,
1459 +       0,     0,     0,   656,   657,   658,   659,   660,   661,   662,
1460 +     664,   663,   665,     0,     0,     0,     0,     0,    82,     0,
1461         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1462 <       0,     0,     0,     0,     0,     0,   553,     0,   529,     0,
1462 >       0,     0,     0,     0,     0,    54,    69,    66,    64,    70,
1463 >      71,    65,    72,    73,    74,    55,    68,    58,    59,    60,
1464 >      56,    67,    61,    62,    63,    57,     0,     0,     0,     0,
1465 >     137,   138,   139,     0,     0,   364,     0,     0,   362,   363,
1466 >       0,   109,     0,     0,     0,     0,   104,     0,     0,     0,
1467 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   629,
1468 >       0,     0,     0,     0,   285,     0,     0,     0,     0,     0,
1469 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   250,
1470 >     251,   254,   256,   257,   258,   259,   260,   261,   262,   263,
1471 >     264,   252,   253,   255,   265,   266,   267,     0,     0,     0,
1472 >       0,     0,     0,     0,   440,     0,     0,     0,     0,     0,
1473 >       0,     0,     0,   415,   416,   417,   418,   419,   420,   421,
1474 >     423,   422,   425,   429,   426,   427,   428,   424,   466,     0,
1475 >       0,     0,   463,   464,   465,     0,     0,   470,   481,     0,
1476 >       0,     0,   478,   479,   480,     0,     0,     0,     0,     0,
1477         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1612       0,     0,     0,     0,     0,     0,     0,   432,   480,   474,
1613     475,   476,   477,   478,   473,   443,   433,   434,   468,   435,
1614     436,   437,   438,   439,   440,   441,   442,   470,   444,   445,
1615     479,   447,   452,   448,   450,   449,   463,   464,   451,   453,
1616     454,   455,   456,   457,   446,   459,   460,   461,   481,   471,
1617     472,   469,   462,   458,   466,   467,   465,     0,     0,     0,
1618       0,     0,     0,   102,   103,   104,     0,     0,     0,     0,
1619       0,    42,    43,    44,     0,     0,   621,     0,     0,     0,
1620       0,     0,     0,     0,   614,   615,   616,   619,   617,   618,
1621     620,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1622       0,     0,     0,     0,     0,     0,     0,     0,    50,    63,
1623      64,    62,    59,    58,    65,    51,    61,    54,    55,    56,
1624      52,    60,    57,    53,     0,     0,   300,     0,     0,   298,
1625     299,    96,     0,     0,     0,     0,    91,     0,     0,     0,
1478         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1627       0,     0,   581,     0,     0,     0,     0,     0,     0,     0,
1628       0,     0,     0,     0,     0,     0,     0,     0,     0,   198,
1629     199,   202,   203,   205,   206,   207,   208,   209,   210,   211,
1630     212,   200,   201,   204,     0,     0,     0,     0,     0,   374,
1631       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
1632     352,   353,   354,   355,   356,   358,   357,   360,   364,   361,
1633     362,   363,   359,   406,     0,     0,     0,   403,   404,   405,
1634       0,     0,   410,   427,     0,     0,   417,   426,     0,   423,
1635     424,   425,     0,     0,     0,     0,     0,     0,     0,     0,
1479         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481 +       0,   485,     0,     0,     0,   332,     0,     0,     0,     0,
1482 +       0,     0,   318,   319,   320,   321,   326,   322,   323,   324,
1483 +     325,   457,     0,     0,     0,   454,   455,   456,     0,     0,
1484 +       0,   293,     0,   303,     0,   301,   302,   304,   305,    49,
1485 +       0,     0,     0,    45,     0,     0,     0,     0,   116,   117,
1486 +     118,     0,     0,     0,   214,     0,     0,     0,     0,   188,
1487 +       0,     0,     0,   168,   169,   170,   171,   172,   175,   176,
1488 +     177,   174,   173,   178,     0,     0,     0,     0,     0,   352,
1489 +     353,   354,   355,     0,     0,     0,     0,     0,     0,     0,
1490 +       0,     0,     0,   655,    75,     0,     0,     0,     0,     0,
1491         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1492 +       0,     0,     0,     0,     0,     0,    53,     0,     0,   398,
1493 +       0,   393,   394,   395,   140,     0,     0,   136,     0,     0,
1494 +       0,     0,     0,     0,     0,   125,   126,   128,   127,   129,
1495 +       0,     0,   361,     0,     0,   376,     0,     0,   369,   370,
1496 +     371,   372,     0,     0,     0,   103,     0,    28,     0,     0,
1497 +       0,     0,     0,     0,     0,     0,     0,     0,   628,   268,
1498         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1499 <       0,     0,   431,     0,     0,     0,   269,     0,     0,     0,
1641 <       0,     0,     0,   255,   256,   257,   258,   263,   259,   260,
1642 <     261,   262,   397,     0,   387,     0,   396,     0,   393,   394,
1643 <     395,     0,   230,     0,     0,     0,   240,     0,   238,   239,
1644 <     241,   242,   105,     0,     0,   101,     0,    45,     0,     0,
1645 <       0,    41,     0,     0,     0,   172,     0,     0,     0,   148,
1646 <       0,     0,   132,   133,   134,   135,   138,   139,   137,   136,
1647 <     140,     0,     0,     0,     0,     0,   288,   289,   290,   291,
1648 <       0,     0,     0,     0,     0,     0,     0,   613,    66,     0,
1499 >       0,     0,     0,     0,     0,     0,     0,     0,   249,   430,
1500         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1501 <       0,     0,     0,     0,     0,    49,     0,     0,   312,     0,
1502 <       0,   305,   306,   307,   308,     0,     0,   334,     0,   329,
1652 <     330,   331,     0,     0,   297,     0,     0,     0,    90,     0,
1653 <       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1654 <       0,     0,     0,     0,   580,   213,     0,     0,     0,     0,
1501 >       0,     0,     0,     0,     0,   414,     0,     0,     0,   462,
1502 >       0,   469,     0,     0,     0,   477,     0,     0,     0,     0,
1503         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1656       0,   197,   365,     0,     0,     0,     0,     0,     0,     0,
1657       0,     0,     0,     0,     0,     0,     0,   350,     0,     0,
1658       0,   402,     0,   409,     0,     0,     0,     0,   422,     0,
1504         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1505         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1506         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1507 +       0,     0,     0,   484,   327,     0,     0,     0,     0,     0,
1508 +       0,     0,     0,     0,   317,     0,     0,     0,   453,   306,
1509 +       0,     0,     0,     0,     0,   300,     0,     0,    44,   119,
1510 +       0,     0,     0,   115,   179,     0,     0,     0,     0,     0,
1511 +       0,     0,     0,     0,     0,     0,   167,   356,     0,     0,
1512 +       0,     0,   351,     0,     0,     0,     0,     0,     0,     0,
1513 +       0,     0,   654,     0,     0,     0,     0,     0,     0,     0,
1514         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1515 +       0,     0,     0,    52,   396,     0,     0,     0,   392,     0,
1516 +     135,     0,   130,     0,     0,     0,     0,     0,   124,     0,
1517 +     360,   373,     0,     0,     0,     0,   368,   112,   111,   110,
1518 +     652,    28,    28,    28,    28,    28,    28,    28,    30,    29,
1519 +     653,   643,   644,   645,   646,   647,   648,   649,   651,   650,
1520         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1521 <     430,   264,     0,     0,     0,     0,     0,     0,     0,     0,
1665 <       0,   254,     0,     0,     0,     0,   392,   243,     0,     0,
1666 <       0,     0,     0,   237,     0,   100,     0,     0,     0,    40,
1667 <     141,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1668 <     131,   292,     0,     0,     0,     0,   287,     0,     0,     0,
1669 <       0,     0,     0,   612,     0,     0,     0,     0,     0,     0,
1670 <       0,     0,    71,    72,     0,    70,    75,    76,     0,    74,
1671 <       0,     0,     0,     0,     0,    48,   309,     0,     0,     0,
1672 <       0,   304,   332,     0,     0,     0,   328,     0,   296,    99,
1673 <      98,    97,   607,   606,   598,    26,    26,    26,    26,    26,
1674 <      28,    27,   600,   601,   605,   603,   602,   608,   609,   610,
1675 <     611,   604,   599,     0,     0,     0,     0,     0,     0,     0,
1676 <       0,     0,     0,     0,     0,    34,     0,     0,   196,     0,
1521 >       0,     0,     0,     0,     0,    38,     0,     0,   248,     0,
1522         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1523 <       0,     0,     0,   349,     0,     0,   401,   414,     0,     0,
1524 <       0,   416,   495,   499,   513,   579,   527,   493,   521,   524,
1525 <     494,   485,   484,   486,   487,   488,   502,   491,   492,   503,
1526 <     490,   498,   497,   496,   522,   483,   520,   577,   578,   517,
1527 <     514,   564,   557,   574,   575,   558,   559,   560,   561,   569,
1528 <     562,   572,   576,   565,   570,   566,   571,   563,   568,   567,
1529 <     573,     0,   556,   519,   539,   533,   550,   551,   534,   535,
1530 <     536,   537,   545,   538,   548,   552,   541,   546,   542,   547,
1531 <     540,   544,   543,   549,     0,   532,   512,   515,   526,   489,
1532 <     516,   505,   510,   511,   508,   509,   506,   507,   501,   500,
1533 <     525,   528,   518,   523,   504,     0,     0,     0,     0,     0,
1534 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1535 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1536 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1537 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1538 <     622,   626,   624,   627,   623,   625,    83,    89,    81,    85,
1539 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1540 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1541 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1542 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1543 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1544 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1545 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   554,
1546 <       0,   530,     0,   267,   268,   277,   274,   279,   276,   275,
1547 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1548 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1549 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1550 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1551 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1552 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1553 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1554 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1555 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1556 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1557 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1558 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1559 <     555,   531,   270,     0,   388,     0,   231,     0,   249,   246,
1560 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1561 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1562 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1563 <     116,   174,   150,   314,   336,   119,     0,   120
1523 >       0,     0,     0,     0,   413,     0,     0,   461,   474,     0,
1524 >       0,   476,   545,   549,   533,   534,   564,   536,   627,   572,
1525 >     537,   538,   569,   544,   543,   552,   542,   539,   540,   548,
1526 >     547,   546,   570,   535,   625,   626,   568,   611,   605,   621,
1527 >     606,   607,   608,   616,   624,   609,   618,   622,   612,   623,
1528 >     613,   617,   610,   620,   615,   614,   619,     0,   604,   584,
1529 >     585,   586,   579,   597,   580,   581,   582,   592,   600,   583,
1530 >     594,   598,   588,   599,   589,   593,   587,   596,   591,   590,
1531 >     595,     0,   578,   565,   563,   566,   571,   567,   554,   561,
1532 >     562,   559,   560,   555,   556,   557,   558,   573,   574,   541,
1533 >     551,   550,   553,     0,     0,     0,     0,     0,     0,     0,
1534 >       0,   316,     0,     0,   452,     0,     0,     0,   311,   307,
1535 >     310,   292,    50,    51,     0,     0,   114,     0,     0,     0,
1536 >       0,     0,     0,     0,     0,     0,     0,   166,     0,     0,
1537 >       0,   350,   670,   667,   668,   669,   674,   673,   675,   671,
1538 >     672,    99,    94,   102,    93,    89,    87,    88,    86,     0,
1539 >      85,    90,    91,   100,   101,    92,    96,    95,    77,    76,
1540 >      81,    78,    80,    79,    97,    98,     0,     0,   391,   141,
1541 >       0,     0,     0,   153,     0,   145,   146,   148,   147,     0,
1542 >       0,     0,     0,   123,   365,     0,     0,     0,   367,    31,
1543 >      32,    33,    34,    35,    36,    37,   280,   281,   272,   290,
1544 >     289,     0,   288,   273,   275,   277,   284,   276,   274,   283,
1545 >     269,   282,   271,   270,    38,    38,    38,    40,    39,   278,
1546 >     279,   435,   438,   439,   449,   446,   432,   447,   444,   445,
1547 >       0,   443,   448,   431,   437,   434,   436,   450,   433,   467,
1548 >     468,   482,   483,   602,     0,   576,     0,   330,   331,   341,
1549 >     337,   338,   340,   345,   342,   343,   336,   344,   339,     0,
1550 >     335,   329,   348,   347,   346,   328,   459,   458,   314,   313,
1551 >     298,   299,   297,     0,   296,     0,     0,     0,   120,   121,
1552 >     187,   184,   234,   246,   221,   230,     0,   219,   224,   240,
1553 >       0,   233,   238,   244,   223,   226,   235,   237,   241,   231,
1554 >     239,   227,   245,   229,   236,   225,   228,     0,   217,   180,
1555 >     182,   185,   186,   197,   198,   199,   192,   210,   193,   194,
1556 >     195,   205,   213,   196,   207,   211,   201,   212,   202,   206,
1557 >     200,   209,   204,   203,   208,     0,   191,   181,   183,   359,
1558 >     357,   358,    83,     0,   397,   402,   408,   411,   404,   410,
1559 >     405,   409,   407,   403,   406,     0,   401,   149,     0,     0,
1560 >       0,     0,   144,   132,   131,   133,   134,   374,   380,   386,
1561 >     389,   382,   388,   383,   387,   385,   381,   384,     0,   379,
1562 >     375,   286,     0,    41,    42,    43,   441,     0,   603,   577,
1563 >     333,     0,   294,     0,   312,   309,   308,     0,     0,     0,
1564 >       0,     0,     0,   215,     0,   189,     0,    84,   399,     0,
1565 >       0,     0,     0,     0,   143,   377,     0,   287,   442,   334,
1566 >     295,   220,   243,   218,   242,   232,   222,   216,   190,   400,
1567 >     150,   152,   151,   163,   162,   158,   160,   164,   161,   157,
1568 >     159,     0,   156,   378,   154,     0,   155
1569   };
1570  
1571 < /* YYDEFGOTO[NTERM-NUM].  */
1572 < static const yytype_int16 yydefgoto[] =
1723 < {
1724 <      -1,     1,    24,   780,   781,  1021,  1022,    25,   230,   231,
1725 <     232,   233,    26,   267,   268,   269,   270,   744,   745,   748,
1726 <     749,   271,   272,   273,   274,   275,   276,   277,   278,   279,
1727 <     280,   281,   282,   283,    27,    71,    72,    73,    74,    75,
1728 <      28,   222,   223,   224,   225,   226,   950,   951,   952,   953,
1729 <     954,  1088,  1217,  1218,    29,    60,   501,   502,   503,   504,
1730 <     505,   506,   507,   508,   509,   717,  1138,  1139,   510,   713,
1731 <    1113,  1114,    30,    49,   328,   329,   330,   331,   332,   333,
1732 <     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
1733 <      31,    57,   476,   698,  1079,  1080,   477,   478,   479,  1085,
1734 <     942,   943,   480,   481,    32,    55,   452,   453,   454,   455,
1735 <     456,   457,   458,   684,  1064,  1065,   459,   460,   461,    33,
1736 <      61,   515,   516,   517,   518,   519,    34,   288,   289,   290,
1737 <      35,    64,   550,   551,   552,   553,   554,   758,  1157,  1158,
1738 <      36,    65,   558,   559,   560,   561,   764,  1171,  1172,    37,
1739 <      50,   358,   359,   360,   361,   362,   363,   364,   365,   366,
1740 <     367,   607,  1032,  1033,   368,   369,   370,   371,   372,    38,
1741 <      56,   466,   693,  1073,  1074,   467,   468,   469,   470,    39,
1742 <      51,   376,   377,   378,   379,    40,   112,   113,   114,    41,
1743 <      53,   387,   626,  1047,  1048,   388,   389,   390,   391,    42,
1744 <     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1745 <     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1746 <     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1747 <     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1748 <     206,   207,   208,   209,   210,   211,   212,   423,   904,   905,
1749 <     213,   421,   881,   882,   214,   215,   216,    43,    91,    92,
1750 <      93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1751 <     103,   104,   105,   106,    44,   243,   244,   245,   246,   247,
1752 <     248,   249,   250
1753 < };
1754 <
1755 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1756 <   STATE-NUM.  */
1757 < #define YYPACT_NINF -744
1758 < static const yytype_int16 yypact[] =
1571 >  /* YYPGOTO[NTERM-NUM].  */
1572 > static const yytype_int16 yypgoto[] =
1573   {
1574 <    -744,   610,  -744,  -209,  -187,  -179,  -744,  -744,  -744,  -176,
1575 <    -744,  -171,  -744,  -744,  -744,  -166,  -164,  -744,  -744,  -139,
1576 <    -136,  -744,  -744,  -131,  -744,  -744,  -744,  -744,  -744,  -744,
1577 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1578 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    61,   807,  -126,
1579 <    -104,   -84,    16,   -79,   382,   -77,   -63,   -60,     7,    21,
1580 <     -49,   -40,   638,   381,   -26,    52,    25,  -152,    62,    85,
1581 <      86,    18,  -744,  -744,  -744,  -744,  -744,    88,    89,    93,
1582 <      94,    96,   101,   108,   112,   118,   119,   125,   127,   132,
1583 <     133,   162,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1584 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   531,   499,   266,
1585 <    -744,   135,    28,  -744,  -744,    11,  -744,   142,   143,   145,
1586 <     147,   148,   150,   153,   163,   166,   167,   169,   173,   174,
1587 <     175,   177,   178,   180,   182,   183,   185,   191,   197,   200,
1588 <     201,   202,   204,   211,   212,   215,  -744,   216,  -744,   217,
1589 <     218,   221,   222,   225,   226,   229,   234,   235,   237,   238,
1590 <     239,   242,   253,   256,   257,   262,    38,  -744,  -744,  -744,
1591 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1592 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1593 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1594 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1595 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   337,    24,   259,
1596 <      73,   263,     4,  -744,  -744,  -744,   126,   131,   264,   270,
1597 <      59,  -744,  -744,  -744,   389,   209,  -744,   276,   279,   280,
1598 <     281,   285,   287,     3,  -744,  -744,  -744,  -744,  -744,  -744,
1599 <    -744,   149,   288,   289,   290,   292,   299,   301,   302,   303,
1600 <     304,   305,   307,   308,   315,   324,   330,    75,  -744,  -744,
1601 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1602 <    -744,  -744,  -744,  -744,   208,    30,  -744,   331,    15,  -744,
1603 <    -744,  -744,   107,   254,   359,   165,  -744,   385,   396,   367,
1790 <     454,   454,   455,   457,   461,   399,   401,   464,   454,   404,
1791 <     405,   351,  -744,   358,   356,   360,   361,   362,   364,   365,
1792 <     369,   374,   375,   379,   383,   386,   388,   395,   232,  -744,
1793 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1794 <    -744,  -744,  -744,  -744,   384,   397,   400,   403,   408,  -744,
1795 <     411,   412,   420,   423,   424,   427,   433,   434,   260,  -744,
1796 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1797 <    -744,  -744,  -744,  -744,   435,   437,     8,  -744,  -744,  -744,
1798 <     458,   407,  -744,  -744,   441,   442,  -744,  -744,    36,  -744,
1799 <    -744,  -744,   417,   454,   454,   501,   443,   459,   524,   543,
1800 <     502,   454,   503,   454,   565,   567,   568,   508,   509,   513,
1801 <     454,   577,   578,   454,   580,   583,   566,   584,   587,   527,
1802 <     528,   475,   535,   478,   454,   454,   537,   540,   541,   542,
1803 <    -146,  -133,   544,   546,   454,   454,   585,   454,   550,   553,
1804 <     554,   510,  -744,   515,   514,   517,  -744,   519,   521,   525,
1805 <     529,   530,    58,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1806 <    -744,  -744,  -744,   533,  -744,   534,  -744,    10,  -744,  -744,
1807 <    -744,   538,  -744,   536,   539,   545,  -744,   115,  -744,  -744,
1808 <    -744,  -744,  -744,   582,   547,  -744,   532,  -744,   640,   643,
1809 <     549,  -744,   555,   559,   560,  -744,   562,   569,   572,  -744,
1810 <     573,    70,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1811 <    -744,   558,   588,   595,   597,   146,  -744,  -744,  -744,  -744,
1812 <     623,   625,   687,   658,   659,   454,   606,  -744,  -744,   704,
1813 <     663,   706,   707,   709,   713,   714,   715,    79,   159,   717,
1814 <     718,   646,   719,   720,   626,  -744,   628,   622,  -744,   624,
1815 <     128,  -744,  -744,  -744,  -744,   629,   630,  -744,    22,  -744,
1816 <    -744,  -744,   728,   632,  -744,   634,   635,   636,  -744,   637,
1817 <     639,   641,   430,   642,   645,   648,   649,   650,   651,   652,
1818 <     653,   654,   656,   657,  -744,  -744,   754,   756,   454,   759,
1819 <     776,   778,   779,   761,   784,   785,   454,   454,   786,   786,
1820 <     671,  -744,  -744,   769,   122,   770,   729,   672,   773,   774,
1821 <     775,   777,   795,   780,   781,   782,   681,  -744,   783,   787,
1822 <     682,  -744,   689,  -744,   788,   789,   690,   694,  -744,   695,
1823 <     696,   697,   698,   699,   702,   703,   705,   708,   710,   712,
1824 <     716,   721,   722,   723,   724,   725,   726,   727,   730,   731,
1825 <     732,   733,   734,   735,   736,   737,   738,   739,   551,   740,
1826 <     599,   741,   742,   743,   744,   745,   746,   747,   748,   749,
1827 <     750,   751,   752,   753,   755,   757,   758,   760,   762,   763,
1828 <    -744,  -744,   801,   764,   711,   803,   823,   810,   812,   814,
1829 <     765,  -744,   815,   766,   817,   767,  -744,  -744,   768,   825,
1830 <     826,   870,   772,  -744,   790,  -744,   184,   791,   792,  -744,
1831 <    -744,   853,   816,   771,   856,   861,   863,   793,   865,   794,
1832 <    -744,  -744,   867,   872,   873,   797,  -744,   798,   799,   800,
1833 <     802,   804,   805,  -744,   806,   808,   809,   811,   813,   818,
1834 <     819,   820,  -744,  -744,  -195,  -744,  -744,  -744,  -172,  -744,
1835 <     821,   822,   824,   827,   828,  -744,  -744,   874,   829,   875,
1836 <     830,  -744,  -744,   876,   831,   833,  -744,   835,  -744,  -744,
1837 <    -744,  -744,  -744,  -744,  -744,   454,   454,   454,   454,   454,
1838 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1839 <    -744,  -744,  -744,   836,   837,   838,   839,   840,   841,   842,
1840 <     843,   844,   845,   846,   847,   314,   848,   849,  -744,   850,
1841 <     851,   852,   854,   855,    13,   857,   858,   859,   860,   862,
1842 <     864,   866,   868,  -744,   869,   871,  -744,  -744,   877,   878,
1843 <     879,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1844 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1845 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1846 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1847 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1848 <    -744,  -167,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1849 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1850 <    -744,  -744,  -744,  -744,  -154,  -744,  -744,  -744,  -744,  -744,
1851 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1852 <    -744,  -744,  -744,  -744,  -744,   880,   881,   309,   882,   883,
1853 <     884,   885,   886,  -744,   887,   893,   888,  -744,   -33,   889,
1854 <     890,   832,   891,  -744,  -744,  -744,   892,   894,  -744,   895,
1855 <     154,  -744,  -744,  -744,  -744,  -744,  -744,   896,   899,   511,
1856 <     900,   901,   902,   627,   903,  -744,   904,   905,   906,  -744,
1857 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1858 <    -744,  -744,  -744,  -744,  -744,    79,  -744,   159,  -744,  -744,
1859 <    -744,  -744,  -744,   907,   460,   908,  -744,   909,   665,  -744,
1860 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1861 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,   786,   786,
1862 <     786,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1863 <    -744,  -744,  -145,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1864 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,   -50,  -744,  -744,
1865 <     551,  -744,   599,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1866 <    -744,  -744,  -744,  -744,   -41,  -744,  -744,  -744,  -744,  -744,
1867 <    -744,  -744,  -744,   -27,  -744,  -744,  -744,  -744,  -744,   -17,
1868 <    -744,  -744,  -744,   898,   870,   910,  -744,   911,   912,   -86,
1869 <     913,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1870 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1871 <    -744,  -744,  -744,    34,  -744,  -744,  -744,  -744,  -744,  -744,
1872 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1873 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    40,  -744,
1874 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1875 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    53,  -744,  -744,
1876 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1877 <    -744,    63,  -744,  -744,  -744,  -744,  -744,    13,  -744,   879,
1878 <    -744,  -744,  -744,   309,  -744,   893,  -744,   -33,  -744,  -744,
1879 <    -744,   914,   277,   916,   917,  -744,  -744,   511,  -744,   627,
1880 <    -744,   460,  -744,   665,  -744,  -744,  -744,  -744,  -744,  -744,
1881 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,    68,  -744,  -744,
1882 <    -744,  -744,  -744,  -744,  -744,  -744,   277,  -744
1574 >   -1024, -1024, -1024,  -425,  -306, -1023,  -635, -1024, -1024,   978,
1575 >   -1024, -1024, -1024, -1024,   952, -1024, -1024, -1024, -1024, -1024,
1576 >   -1024, -1024, -1024, -1024,   -92, -1024, -1024, -1024, -1024, -1024,
1577 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1578 >    1061, -1024, -1024, -1024, -1024, -1024, -1024,   656, -1024, -1024,
1579 >   -1024, -1024, -1024,   570, -1024, -1024, -1024, -1024, -1024, -1024,
1580 >     953, -1024, -1024, -1024, -1024,   104, -1024, -1024, -1024, -1024,
1581 >   -1024,  -168, -1024, -1024, -1024,   648, -1024, -1024, -1024, -1024,
1582 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024,  -125, -1024, -1024,
1583 >   -1024,  -122, -1024, -1024, -1024,   858, -1024, -1024, -1024, -1024,
1584 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1585 >   -1024, -1024, -1024, -1024, -1024,   -98, -1024, -1024, -1024, -1024,
1586 >   -1024,  -110, -1024,   699, -1024, -1024, -1024,    39, -1024, -1024,
1587 >   -1024, -1024, -1024,   723, -1024, -1024, -1024, -1024, -1024, -1024,
1588 >   -1024,  -105, -1024, -1024, -1024, -1024, -1024, -1024,   670, -1024,
1589 >   -1024, -1024, -1024, -1024,   971, -1024, -1024, -1024, -1024,   600,
1590 >   -1024, -1024, -1024, -1024, -1024,   -97, -1024, -1024, -1024,   642,
1591 >   -1024, -1024, -1024, -1024,   -89, -1024, -1024, -1024,   859, -1024,
1592 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1593 >     -63, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   739,
1594 >   -1024, -1024, -1024, -1024, -1024,   972, -1024, -1024, -1024, -1024,
1595 >    1102, -1024, -1024, -1024, -1024,   817, -1024, -1024, -1024, -1024,
1596 >    1053, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1597 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1598 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1599 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,
1600 >   -1024, -1024, -1024, -1024,    91, -1024, -1024, -1024,    96, -1024,
1601 >   -1024, -1024, -1024, -1024,  1125, -1024, -1024, -1024, -1024, -1024,
1602 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024,   989, -1024,
1603 >   -1024, -1024, -1024, -1024, -1024, -1024, -1024, -1024
1604   };
1605  
1606 < /* YYPGOTO[NTERM-NUM].  */
1607 < static const yytype_int16 yypgoto[] =
1606 >  /* YYDEFGOTO[NTERM-NUM].  */
1607 > static const yytype_int16 yydefgoto[] =
1608   {
1609 <    -744,  -744,  -744,  -743,  -298,  -663,  -598,  -744,  -744,   897,
1610 <    -744,  -744,  -744,  -744,   915,  -744,  -744,  -744,    14,  -744,
1611 <       1,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1612 <    -744,  -744,  -744,  -744,  -744,  -744,   924,  -744,  -744,  -744,
1613 <    -744,  -744,   796,  -744,  -744,  -744,  -744,    48,  -744,  -744,
1614 <    -744,  -744,  -744,  -226,  -744,  -744,  -744,   500,  -744,  -744,
1615 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -196,  -744,  -744,
1616 <    -744,  -193,  -744,  -744,  -744,   680,  -744,  -744,  -744,  -744,
1617 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1618 <    -744,  -744,  -744,  -744,  -744,  -177,  -744,   548,  -744,  -744,
1619 <    -744,   -62,  -744,  -744,  -744,  -744,  -744,   575,  -744,  -744,
1620 <    -744,  -744,  -744,  -744,  -744,  -153,  -744,  -744,  -744,  -744,
1621 <    -744,  -744,   516,  -744,  -744,  -744,  -744,  -744,   918,  -744,
1622 <    -744,  -744,  -744,   482,  -744,  -744,  -744,  -744,  -744,  -163,
1623 <    -744,  -744,  -744,   483,  -744,  -744,  -744,  -744,  -159,  -744,
1624 <    -744,  -744,   688,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1625 <    -744,  -744,  -744,  -137,  -744,  -744,  -744,  -744,  -744,  -744,
1626 <    -744,  -744,  -744,  -744,  -117,  -744,   604,  -744,  -744,  -744,
1627 <    -744,  -744,   700,  -744,  -744,  -744,  -744,   966,  -744,  -744,
1628 <    -744,  -744,  -744,  -744,   -99,  -744,   701,  -744,  -744,  -744,
1629 <    -744,   919,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1630 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1631 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1632 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1633 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,    35,
1634 <    -744,  -744,  -744,    32,  -744,  -744,  -744,  -744,  -744,   997,
1635 <    -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,  -744,
1636 <    -744,  -744,  -744,  -744,  -744,  -744,   920,  -744,  -744,  -744,
1637 <    -744,  -744,  -744
1609 >      -1,     1,    26,   828,   829,  1097,  1098,    27,   215,   216,
1610 >     217,   218,    28,   264,   265,   266,   267,   268,   269,   270,
1611 >     271,   272,   549,  1029,  1030,   273,   274,   275,   276,   277,
1612 >     278,   279,   280,   281,   282,   283,   284,   285,    29,    77,
1613 >      78,    79,    80,    81,    30,    63,   497,   498,   499,   500,
1614 >      31,    70,   584,   585,   586,   587,   588,   589,    32,   289,
1615 >     290,   291,   292,   293,  1054,  1055,  1056,  1057,  1058,  1240,
1616 >    1321,  1322,    33,    64,   512,   513,   514,   515,   516,   517,
1617 >     518,   519,   520,   521,   522,   752,  1215,  1216,   523,   747,
1618 >    1187,  1188,    34,    53,   338,   339,   340,   341,   342,   343,
1619 >     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
1620 >     354,   355,   356,   623,  1081,  1082,    35,    61,   483,   732,
1621 >    1153,  1154,   484,   485,   486,  1157,   989,   990,   487,   488,
1622 >      36,    59,   461,   462,   463,   464,   465,   466,   467,   717,
1623 >    1139,  1140,   468,   469,   470,    37,    65,   528,   529,   530,
1624 >     531,   532,    38,   297,   298,   299,    39,    72,   597,   598,
1625 >     599,   600,   601,   813,  1258,  1259,    40,    68,   570,   571,
1626 >     572,   573,   796,  1235,  1236,    41,    54,   372,   373,   374,
1627 >     375,   376,   377,   378,   379,   380,   381,   382,   646,  1110,
1628 >    1111,   383,   384,   385,   386,   387,    42,    60,   474,   475,
1629 >     476,   477,    43,    55,   391,   392,   393,   394,    44,   112,
1630 >     113,   114,    45,    57,   401,   402,   403,   404,    46,   162,
1631 >     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1632 >     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1633 >     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1634 >     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1635 >     203,   204,   431,   951,   952,   205,   430,   927,   928,   206,
1636 >     207,   208,    47,    94,    95,    96,    97,    98,    99,   100,
1637 >     101,   102,   103,   104,   105,   106,    48,   232,   233,   234,
1638 >     235,   236,   237,   238,   239,   240,   241,   242
1639   };
1640  
1641 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1642 <   positive, shift that token.  If negative, reduce the rule which
1643 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1922 < #define YYTABLE_NINF -108
1641 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1642 >     positive, shift that token.  If negative, reduce the rule whose
1643 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1644   static const yytype_int16 yytable[] =
1645   {
1646 <     806,   807,   573,   574,   236,   220,    45,    46,   220,   373,
1647 <     581,   462,   383,   805,   667,   668,   286,   110,  1076,    67,
1648 <     984,  1030,   227,   555,   985,   462,   286,   669,   670,   110,
1649 <      47,   555,  1001,  1002,  1003,  1004,  1005,   383,    48,   116,
1650 <     237,    52,    68,   986,   117,   118,    54,   987,  1049,    69,
1651 <     119,    58,  1050,    59,   238,   239,   240,   241,   120,   443,
1652 <     227,  1051,    67,   291,   121,  1052,   122,   123,   124,   374,
1653 <    1176,   492,   242,   125,  1177,   444,   251,   111,    62,   126,
1654 <     127,    63,   128,   129,   130,    68,    66,   493,   131,   111,
1655 <     445,   107,    69,   132,   446,   630,   631,   133,   134,   252,
1656 <     384,   135,   494,   638,   287,   640,   495,    70,   228,  1193,
1657 <     136,   556,   647,   108,   287,   650,   471,   137,   138,   556,
1658 <     139,   140,   141,   142,   143,   384,   661,   662,   375,   546,
1659 <     463,   385,   253,   109,   229,   144,   673,   674,   115,   676,
1660 <     217,   145,   146,   147,   463,   148,   228,   511,   149,   150,
1661 <      70,   472,   151,  1077,   218,   946,   385,   219,  1078,   496,
1662 <     512,   464,   386,    76,   254,  1178,   255,   256,   234,  1179,
1663 <     447,   473,   229,   557,  1182,   464,   474,   235,  1183,   448,
1664 <     449,   557,   497,    77,    78,   946,   152,   386,  1184,    79,
1665 <     153,   284,  1185,   154,   155,   156,   157,   158,  1186,   498,
1666 <     159,   160,  1187,   257,  1031,   258,   259,   260,   261,   546,
1667 <     511,   450,   221,   742,   743,   221,   465,   547,  -107,   526,
1668 <     484,  -107,   262,   512,   620,   565,   695,   732,    80,    81,
1669 <     465,   563,   475,   313,   295,    82,    83,    84,   765,   513,
1670 <     161,   162,   163,   947,   381,   164,   263,   314,   315,  1196,
1671 <     165,   316,   627,  1197,   441,  1198,   264,    85,    86,  1199,
1672 <     471,   344,   499,   345,   451,   346,   514,   373,  1200,   285,
1673 <      87,    88,  1201,   947,   690,   490,   500,   347,  1202,   548,
1674 <     292,    89,  1203,  1225,   265,   266,   719,  1226,   482,    90,
1675 <     795,   544,   348,   746,   747,   472,   349,   547,   803,   804,
1676 <     810,   811,   513,   293,   294,   948,   297,   298,   317,   318,
1677 <     319,   299,   300,   320,   301,   473,   350,  1210,   351,   302,
1678 <     474,   321,  1055,  1018,  1019,  1020,   303,   374,   352,   514,
1679 <     304,   702,   322,   323,   549,   948,   305,   306,   443,  1211,
1680 <     486,  1212,  1056,   307,   760,   308,   487,   324,   325,   353,
1681 <     309,   310,  1057,   380,   444,  1173,  1174,  1175,  1058,   548,
1682 <     392,   393,   725,   394,   528,   395,   396,   949,   397,   445,
1683 <    1090,   398,   566,   446,  1059,   326,   475,   354,   311,  1213,
1684 <     568,   399,   251,   116,   400,   401,   375,   402,   117,   118,
1685 <     492,   403,   404,   405,   119,   406,   407,   949,   408,  1060,
1686 <     409,   410,   120,   411,   355,   252,   493,  1061,   121,   412,
1687 <     122,   123,   124,   805,   549,   413,   327,   125,   414,   415,
1688 <     416,   494,   417,   126,   127,   495,   128,   129,   130,   418,
1689 <     419,   356,   131,   420,   422,   424,   425,   132,   253,   426,
1690 <     427,   133,   134,   428,   429,   135,  1062,   430,   600,   447,
1691 <    1214,  1215,   431,   432,   136,   433,   434,   435,   448,   449,
1692 <     436,   137,   138,  1063,   139,   140,   141,   142,   143,   357,
1693 <     254,   437,   255,   256,   438,   439,   616,   567,   496,   144,
1694 <     440,   483,   488,  1216,   569,   145,   146,   147,   489,   148,
1695 <     450,  1194,   149,   150,   520,   570,   151,   521,   522,   523,
1696 <     344,   497,   345,   524,   346,   525,   529,   530,   531,   257,
1697 <     532,   258,   259,   260,   261,  1094,   347,   533,   498,   534,
1698 <     535,   536,   537,   538,  1147,   539,   540,   571,   262,   572,
1699 <     152,   348,   313,   541,   153,   349,  1095,   154,   155,   156,
1700 <     157,   158,   542,   451,   159,   160,   314,   315,   543,   562,
1701 <     316,  1096,   263,   572,   575,   350,   576,   351,  1097,   578,
1702 <     577,   579,   264,   580,   582,   583,   584,   352,   775,   776,
1703 <     777,   778,   779,   585,   586,  1098,   622,   629,   587,   588,
1704 <     589,   499,   590,   591,   161,   162,   163,   592,   353,   164,
1705 <     265,   266,   593,   594,   165,   500,  1148,   595,  1099,   602,
1706 <     632,   596,   861,   633,   597,  1100,   598,   317,   318,   319,
1707 <       2,     3,   320,   599,     4,   603,   354,  1101,   604,   634,
1708 <     321,   605,   623,   635,     5,  1149,   606,     6,     7,   608,
1709 <     609,   322,   323,     8,  1150,  1102,  1103,  1104,   610,   236,
1710 <    1151,   611,   612,   355,     9,   613,   324,   325,    10,    11,
1711 <     884,   614,   615,   618,  1152,   619,  1153,  1154,    12,   624,
1712 <     625,   636,   637,   639,   641,  1155,   642,   643,   644,   645,
1713 <     356,  1156,    13,   646,   326,   237,   648,   649,  1118,   651,
1714 <      14,    15,   652,   654,   653,  1105,   655,   656,   657,   238,
1715 <     239,   240,   241,   658,  1106,   659,   660,   663,    16,  1107,
1716 <     664,   665,   666,   675,   671,  1108,   672,   242,   357,  1109,
1717 <     677,  1110,    17,   678,   679,   327,  1111,   862,   863,   864,
1718 <     865,   866,  1112,   867,   868,   680,   869,   870,   871,  1161,
1719 <     681,   872,   682,   873,   874,   683,   875,   685,   876,   686,
1720 <     877,   878,   704,   687,   879,   752,    18,   688,   689,   706,
1721 <     880,   692,   694,   697,   699,    19,    20,   700,   707,    21,
1722 <      22,   708,   705,   701,   709,   885,   886,   887,   888,   889,
1723 <     710,   890,   891,   721,   892,   893,   894,   711,   712,   895,
1724 <     714,   896,   897,   727,   898,   728,   899,   715,   900,   901,
1725 <     716,   718,   902,  1119,  1120,  1121,  1122,  1123,   903,  1124,
1726 <    1125,  1162,  1126,  1127,  1128,   729,   722,  1129,    76,  1130,
1727 <    1131,    23,  1132,   723,  1133,   724,  1134,  1135,   730,   731,
1728 <    1136,   733,   734,   735,   736,   737,  1137,   738,    77,    78,
1729 <    1163,   739,   740,   741,    79,   750,   751,   753,   754,  1164,
1730 <     757,   755,   759,   756,   762,  1165,   767,   768,   763,   769,
1731 <     770,   771,   772,   793,   773,   794,   774,   782,   796,  1166,
1732 <     783,  1167,  1168,   784,   785,   786,   787,   788,   789,   790,
1733 <    1169,   791,   792,    80,    81,   797,  1170,   798,   799,   800,
1734 <      82,    83,    84,   801,   802,   805,   808,   809,   812,   813,
1735 <     814,   815,   816,   817,   819,   818,   823,   826,   820,   821,
1736 <     822,   824,    85,    86,   827,   825,   828,   829,   830,   831,
1737 <     832,   833,   834,   835,   836,    87,    88,   837,   838,   925,
1738 <     839,   928,   929,   840,   926,   841,    89,   842,   930,   927,
1739 <     931,   843,   932,   934,    90,   936,   844,   845,   846,   847,
1740 <     848,   849,   850,   939,   940,   851,   852,   853,   854,   855,
1741 <     856,   857,   858,   859,   860,   883,   906,   907,   908,   909,
1742 <     910,   911,   912,   913,   914,   915,   916,   917,   918,   941,
1743 <     919,   957,   920,   921,   960,   922,   958,   923,   924,   961,
1744 <     933,   962,   937,   964,   935,   966,   938,   944,  1145,   959,
1745 <     967,   968,   993,   995,   997,   296,  1083,  1188,  1091,  1144,
1746 <    1227,   720,  1046,  1222,  1221,   945,   955,   956,   601,   965,
1747 <    1208,   963,   969,   970,   971,   972,  1072,   973,   485,   974,
1748 <     975,   976,  1189,   977,   978,   703,   979,   691,   980,  1191,
1749 <    1206,   726,   761,   981,   982,   983,   988,   989,  1223,   990,
1750 <    1204,   766,   991,   992,  1224,   996,   617,   994,   999,   998,
1751 <    1000,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,  1014,
1752 <    1015,  1016,  1017,  1023,  1024,  1025,  1026,  1027,  1207,  1028,
1753 <    1029,   696,  1034,  1035,  1036,  1037,   621,  1038,   382,  1039,
1754 <    1205,  1040,  1180,  1041,  1042,   442,  1043,  1181,   312,   628,
1755 <       0,     0,  1044,  1045,     0,  1053,  1054,  1066,  1067,  1068,
1756 <    1069,  1070,  1071,  1075,  1081,  1082,     0,  1086,     0,     0,
1757 <    1084,  1092,  1087,  1089,  1093,  1115,  1116,  1117,  1140,  1141,
1758 <    1142,  1143,  1146,  1159,  1160,  1190,     0,   491,  1195,  1209,
1759 <    1192,  1219,  1220,     0,     0,     0,     0,     0,     0,     0,
1646 >     856,   857,   608,   222,   579,   611,   612,    82,   614,   615,
1647 >     287,   494,   110,  1079,   295,  1150,  1108,   287,    51,   398,
1648 >      52,   212,   388,   699,   593,   295,   471,   700,    56,   398,
1649 >      58,   701,    83,    84,   388,   702,   223,   855,   110,    85,
1650 >    1123,   478,    49,    50,  1124,   224,   225,   226,   860,   861,
1651 >     227,   228,   478,   116,    62,   229,   230,   231,   117,   118,
1652 >      66,   119,   120,    67,   212,  1025,   121,    86,    87,    88,
1653 >     471,  1263,  1264,  1265,   524,   111,   122,   123,    69,    73,
1654 >     593,    89,    90,    91,   124,   389,  1050,   125,   126,   127,
1655 >    1080,    92,    93,   495,   128,   567,   479,   389,   524,    71,
1656 >     667,   111,   669,   670,   480,   107,   481,   479,    74,   580,
1657 >     108,   129,   130,   680,   525,   480,    75,   481,   685,   296,
1658 >     567,   501,   131,   213,   399,   132,   133,   694,   695,   594,
1659 >     296,  1050,   109,  1291,   399,   115,   134,   209,   525,   708,
1660 >     502,   710,   711,   135,   214,   136,  1026,   137,   400,   138,
1661 >    1027,   390,   139,   140,   243,   472,   526,   494,   400,   503,
1662 >     210,  1125,  1151,   390,   141,  1126,   213,   482,   211,   142,
1663 >     143,  1152,   144,   145,   146,   581,   219,   147,   482,   320,
1664 >     526,   244,   220,   245,    76,   594,   504,   214,  -142,   496,
1665 >     579,  1051,   452,   582,  1222,  -142,   321,   322,  1223,   472,
1666 >     568,   323,   148,   527,   221,   286,   294,   300,  1028,   583,
1667 >     246,   453,  1109,   149,   150,   151,   152,   153,   154,   155,
1668 >     247,   301,   302,   303,  1261,   568,   505,   527,  1262,   765,
1669 >     454,   304,   248,   249,   250,   288,  1051,   542,   807,   495,
1670 >     578,   318,   288,   506,   324,   251,   396,   595,   591,   252,
1671 >     596,   576,   473,   664,   307,   492,   658,   455,   815,   253,
1672 >     727,   501,   254,   255,   325,   326,   327,   328,   329,   156,
1673 >     157,   158,   330,   159,   160,   507,   508,   331,   308,   357,
1674 >     502,   358,   161,   359,   332,  1052,   734,   450,  1266,   489,
1675 >     309,   256,  1267,   333,   334,   580,   473,   310,   360,   503,
1676 >     452,  1270,   311,   595,   335,  1271,   596,   257,   761,  1053,
1677 >     258,   259,   260,   305,   456,   544,   842,   361,   569,   453,
1678 >    1241,   847,   457,   458,   850,   336,   504,   509,   854,   797,
1679 >    1052,    73,   312,  1272,   362,   496,   363,  1273,   454,  1313,
1680 >     313,  1314,   459,   569,   364,   314,   607,   510,  1094,  1095,
1681 >    1096,   511,   315,   316,  1053,   755,   365,   574,   261,  1283,
1682 >      74,   581,   602,  1284,   317,   455,   505,   603,    75,   395,
1683 >     337,   821,   822,   823,   824,   825,   826,   827,   405,   582,
1684 >     406,   262,   263,   506,   366,   407,  1285,   408,   565,  1315,
1685 >    1286,   742,   409,   604,   410,   583,  1069,  1070,  1071,  1072,
1686 >    1073,  1074,  1075,  1288,  1295,   367,  1316,  1289,  1296,   411,
1687 >    1324,   412,   413,   637,  1325,   507,   508,   414,   460,   415,
1688 >     416,   417,   456,   418,   368,   419,   723,  1225,   605,   420,
1689 >     457,   458,   421,   369,   422,   116,    76,   423,   424,   425,
1690 >     117,   118,   426,   119,   120,  1317,  1318,   427,   121,   428,
1691 >     459,   855,   429,   432,   433,   434,   435,   436,   122,   123,
1692 >     437,   438,   439,   440,   441,  1129,   124,   509,   442,   125,
1693 >     126,   127,   443,   444,   445,   446,   128,   447,   448,   449,
1694 >     490,   491,   533,   370,   534,   535,   536,   510,   537,   538,
1695 >    1130,   511,  1226,   129,   130,   539,   540,  1319,   541,   545,
1696 >     546,   547,  1320,   548,   131,   550,   371,   132,   133,   551,
1697 >     552,   553,   554,   654,   555,   606,   556,   557,   134,   558,
1698 >     559,   560,  1131,   561,  1227,   135,   460,   136,   562,   137,
1699 >     563,   138,  1228,   564,   139,   140,   607,   575,   590,   609,
1700 >     610,  1229,   613,  1162,   616,   617,   141,   618,   619,   620,
1701 >     639,   142,   143,   243,   144,   145,   146,  1132,  1133,   147,
1702 >    1163,  1164,  1248,  1134,   621,  1230,   622,  1231,  1232,   624,
1703 >    1165,   625,   626,   627,   660,   628,   629,   630,   631,   632,
1704 >     244,  1233,   245,   633,   148,   634,   635,  1135,  1234,   636,
1705 >     640,   641,   642,   661,   643,   149,   150,   151,   152,   153,
1706 >     154,   155,  1136,   644,  1292,   645,   647,  1166,  1167,   246,
1707 >    1168,   648,   649,   650,   651,   652,   357,   653,   358,   247,
1708 >     359,   656,   657,   662,   663,   666,   668,  1249,   671,   672,
1709 >     673,   248,   249,   250,   674,   360,   675,   676,   681,   677,
1710 >     678,   679,  1169,   682,   251,   683,   684,   686,   252,   687,
1711 >    1170,   156,   157,   158,   361,   159,   160,   688,   253,  1250,
1712 >     689,   254,   255,   690,   161,  1137,   691,  1251,   693,   692,
1713 >     696,   362,  1171,   363,  1172,  1173,  1252,   697,   698,   703,
1714 >     704,   364,   705,  1138,   706,   707,   709,   712,   715,   713,
1715 >     256,   714,  1174,   365,   729,   716,   718,     2,     3,   738,
1716 >    1253,     4,  1254,  1255,   719,   736,   257,   737,   739,   258,
1717 >     259,   260,   720,     5,   721,  1175,  1256,     6,   722,     7,
1718 >    1176,   366,   725,  1257,  1177,   726,     8,   730,  1178,   731,
1719 >     733,   740,   741,  1179,   744,   745,   746,  1180,     9,   748,
1720 >     749,   750,   367,    10,    11,   751,   753,   754,  1181,   766,
1721 >    1182,  1183,   757,  1184,   758,   768,   759,   261,   760,   772,
1722 >     763,   368,    12,   764,  1185,   222,    13,   320,   773,   767,
1723 >     369,  1186,   769,   770,   771,   774,   775,   776,   777,    14,
1724 >     262,   263,   780,   778,   321,   322,   779,   781,   929,   323,
1725 >     930,   931,   782,   783,   784,   785,   793,   786,   223,   787,
1726 >     788,    15,    16,   789,   790,   791,   792,   224,   225,   226,
1727 >     794,   795,   227,   228,   799,    82,    17,   229,   230,   231,
1728 >     370,   800,   801,   802,   809,   803,   840,   804,   805,   806,
1729 >     810,   811,   324,    18,  1193,   841,  1194,  1195,   812,   814,
1730 >      83,    84,   817,   371,   818,    19,    20,    85,   819,   843,
1731 >     820,   830,   325,   326,   327,   328,   329,   831,   832,   833,
1732 >     330,   844,   834,   835,   836,   331,   837,   838,   839,   845,
1733 >      21,   846,   332,   848,   907,    86,    87,    88,   851,   849,
1734 >     858,   333,   334,    22,   852,   853,   855,   866,    23,    89,
1735 >      90,    91,   335,    24,   869,   859,    25,   862,   863,    92,
1736 >      93,   864,   865,   867,   868,   870,   871,   872,   874,   932,
1737 >     933,   934,   873,   336,   935,   936,   875,   937,   938,   876,
1738 >     939,   877,   940,   878,   879,   941,   880,   942,   943,   881,
1739 >     974,   975,   882,   944,   883,   884,   885,   945,   886,   887,
1740 >     888,   946,   947,   948,   889,   890,   973,   891,   949,   892,
1741 >     893,   894,   895,   950,   896,  1196,  1197,  1198,   337,   897,
1742 >    1199,  1200,   898,  1201,  1202,   899,  1203,   900,  1204,   901,
1743 >     902,  1205,   903,  1206,  1207,   904,   905,   906,   953,  1208,
1744 >     954,   976,   955,  1209,   977,   956,   957,  1210,  1211,  1212,
1745 >     958,   978,   959,   979,  1213,   908,   909,   910,   987,  1214,
1746 >     911,   912,   960,   913,   914,   980,   915,   982,   916,   983,
1747 >     985,   917,   986,   918,   919,   961,   962,   963,   988,   920,
1748 >     994,   964,   995,   921,   965,   997,   966,   922,   923,   924,
1749 >     999,   967,   998,   968,   925,   969,   970,   971,   972,   926,
1750 >     981,   984,   991,   992,   993,   996,  1000,  1001,  1002,  1003,
1751 >    1004,  1005,  1006,  1007,  1008,  1009,  1010,  1011,  1012,  1013,
1752 >    1046,  1014,  1015,  1016,  1017,  1018,  1019,  1059,  1020,  1021,
1753 >    1022,  1023,  1024,  1031,  1032,  1033,  1034,  1035,  1036,  1037,
1754 >    1038,  1039,  1040,  1041,  1042,  1043,  1044,  1060,  1045,  1061,
1755 >    1048,  1049,  1047,  1062,  1063,  1064,  1065,  1067,  1068,  1066,
1756 >    1076,  1077,  1078,  1083,  1274,  1084,  1085,  1086,  1087,  1088,
1757 >    1089,  1290,  1090,  1301,  1091,  1303,  1302,  1092,  1304,  1093,
1758 >    1099,  1100,  1101,  1102,  1103,  1104,  1305,  1105,  1306,  1106,
1759 >    1107,  1287,  1112,  1113,  1114,  1115,  1116,  1117,   306,  1118,
1760 >    1119,  1120,  1121,  1122,  1127,  1128,  1141,  1142,  1143,  1144,
1761 >    1145,  1146,  1155,   743,   808,  1147,  1148,  1326,  1242,  1149,
1762 >     756,  1308,  1307,  1300,  1297,  1158,  1299,  1159,  1156,  1160,
1763 >    1161,  1189,  1190,  1277,  1191,  1192,  1217,  1218,  1219,  1220,
1764 >    1221,  1224,  1237,   735,   724,  1243,  1238,  1239,  1244,  1245,
1765 >    1246,  1247,  1260,   493,  1276,  1275,   638,   816,   762,  1323,
1766 >    1309,  1278,  1279,  1280,  1298,  1281,  1282,  1293,  1294,  1310,
1767 >    1311,  1312,   798,   728,   397,   451,   566,  1269,   665,   319,
1768 >    1268,   543,     0,     0,     0,     0,     0,     0,     0,     0,
1769 >       0,   655,     0,     0,     0,     0,     0,     0,     0,     0,
1770 >       0,     0,   577,     0,     0,     0,     0,     0,     0,     0,
1771 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1772 >       0,     0,     0,     0,     0,     0,     0,     0,   592,     0,
1773 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1774         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1775         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2041       0,     0,     0,   527,     0,     0,     0,     0,     0,     0,
1776         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2043       0,     0,   545,     0,     0,     0,     0,     0,     0,     0,
1777         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1778 <       0,     0,     0,     0,     0,     0,   564
1778 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1779 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1780 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1781 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1782 >       0,     0,     0,   659
1783   };
1784  
2048 #define yypact_value_is_default(yystate) \
2049  ((yystate) == (-744))
2050
2051 #define yytable_value_is_error(yytable_value) \
2052  YYID (0)
2053
1785   static const yytype_int16 yycheck[] =
1786   {
1787 <     598,   599,   300,   301,     1,     1,   215,   216,     1,     1,
1788 <     308,     1,     1,    99,   160,   161,     1,     1,    51,     1,
1789 <     215,     8,     1,     1,   219,     1,     1,   160,   161,     1,
1790 <     217,     1,   775,   776,   777,   778,   779,     1,   217,     1,
1791 <      37,   217,    24,   215,     6,     7,   217,   219,   215,    31,
1792 <      12,   217,   219,   217,    51,    52,    53,    54,    20,     1,
1793 <       1,   215,     1,   215,    26,   219,    28,    29,    30,    61,
1794 <     215,     1,    69,    35,   219,    17,     1,    61,   217,    41,
1795 <      42,   217,    44,    45,    46,    24,   217,    17,    50,    61,
1796 <      32,   217,    31,    55,    36,   393,   394,    59,    60,    24,
1797 <      89,    63,    32,   401,    89,   403,    36,    89,    87,   195,
1798 <      72,    89,   410,   217,    89,   413,     1,    79,    80,    89,
1799 <      82,    83,    84,    85,    86,    89,   424,   425,   120,     1,
1800 <     120,   120,    57,   217,   113,    97,   434,   435,   217,   437,
1801 <     217,   103,   104,   105,   120,   107,    87,     1,   110,   111,
1802 <      89,    36,   114,   186,   217,     1,   120,   217,   191,    89,
1803 <      14,   151,   151,     1,    89,   215,    91,    92,   217,   219,
1804 <     112,    56,   113,   151,   215,   151,    61,   217,   219,   121,
1805 <     122,   151,   112,    21,    22,     1,   148,   151,   215,    27,
1806 <     152,   217,   219,   155,   156,   157,   158,   159,   215,   129,
1807 <     162,   163,   219,   128,   191,   130,   131,   132,   133,     1,
1808 <       1,   153,   208,   134,   135,   208,   206,    89,   214,   216,
1809 <     216,   214,   147,    14,   216,   118,   216,   525,    66,    67,
1810 <     206,   216,   117,     1,   216,    73,    74,    75,   216,    93,
1811 <     202,   203,   204,    89,   216,   207,   171,    15,    16,   215,
1812 <     212,    19,   216,   219,   216,   215,   181,    95,    96,   219,
1813 <       1,     1,   192,     3,   206,     5,   120,     1,   215,   217,
1814 <     108,   109,   219,    89,   216,   216,   206,    17,   215,   151,
1815 <     218,   119,   219,   215,   209,   210,   216,   219,   215,   127,
1816 <     588,   216,    32,   134,   135,    36,    36,    89,   596,   597,
1817 <     178,   179,    93,   218,   218,   151,   218,   218,    76,    77,
1818 <      78,   218,   218,    81,   218,    56,    56,    40,    58,   218,
1819 <      61,    89,    13,     9,    10,    11,   218,    61,    68,   120,
1820 <     218,   216,   100,   101,   206,   151,   218,   218,     1,    62,
1821 <     214,    64,    33,   218,   216,   218,   215,   115,   116,    89,
1822 <     218,   218,    43,   218,    17,  1018,  1019,  1020,    49,   151,
1823 <     218,   218,   216,   218,   215,   218,   218,   213,   218,    32,
1824 <     216,   218,   118,    36,    65,   143,   117,   117,   216,   102,
1825 <     215,   218,     1,     1,   218,   218,   120,   218,     6,     7,
1826 <       1,   218,   218,   218,    12,   218,   218,   213,   218,    90,
1827 <     218,   218,    20,   218,   144,    24,    17,    98,    26,   218,
1828 <      28,    29,    30,    99,   206,   218,   184,    35,   218,   218,
1829 <     218,    32,   218,    41,    42,    36,    44,    45,    46,   218,
1830 <     218,   171,    50,   218,   218,   218,   218,    55,    57,   218,
1831 <     218,    59,    60,   218,   218,    63,   137,   218,   216,   112,
1832 <     173,   174,   218,   218,    72,   218,   218,   218,   121,   122,
1833 <     218,    79,    80,   154,    82,    83,    84,    85,    86,   209,
1834 <      89,   218,    91,    92,   218,   218,   216,   118,    89,    97,
1835 <     218,   218,   218,   206,    99,   103,   104,   105,   218,   107,
1836 <     153,  1089,   110,   111,   218,    99,   114,   218,   218,   218,
1837 <       1,   112,     3,   218,     5,   218,   218,   218,   218,   128,
1838 <     218,   130,   131,   132,   133,     4,    17,   218,   129,   218,
1839 <     218,   218,   218,   218,    64,   218,   218,   160,   147,    99,
1840 <     148,    32,     1,   218,   152,    36,    25,   155,   156,   157,
1841 <     158,   159,   218,   206,   162,   163,    15,    16,   218,   218,
1842 <      19,    40,   171,    99,    99,    56,    99,    58,    47,   160,
1843 <      99,   160,   181,    99,   160,   160,   215,    68,   138,   139,
1844 <     140,   141,   142,   215,   218,    64,   118,   160,   218,   218,
1845 <     218,   192,   218,   218,   202,   203,   204,   218,    89,   207,
1846 <     209,   210,   218,   218,   212,   206,   136,   218,    87,   215,
1847 <      99,   218,    51,   160,   218,    94,   218,    76,    77,    78,
1848 <       0,     1,    81,   218,     4,   218,   117,   106,   218,   160,
1849 <      89,   218,   215,    99,    14,   165,   218,    17,    18,   218,
1850 <     218,   100,   101,    23,   174,   124,   125,   126,   218,     1,
1851 <     180,   218,   218,   144,    34,   218,   115,   116,    38,    39,
1852 <      51,   218,   218,   218,   194,   218,   196,   197,    48,   218,
1853 <     218,   118,   160,   160,    99,   205,    99,    99,   160,   160,
1854 <     171,   211,    62,   160,   143,    37,    99,    99,    51,    99,
1855 <      70,    71,    99,    99,   118,   174,    99,   160,   160,    51,
1856 <      52,    53,    54,   218,   183,   160,   218,   160,    88,   188,
1857 <     160,   160,   160,   118,   160,   194,   160,    69,   209,   198,
1858 <     160,   200,   102,   160,   160,   184,   205,   166,   167,   168,
1859 <     169,   170,   211,   172,   173,   215,   175,   176,   177,    64,
1860 <     215,   180,   218,   182,   183,   218,   185,   218,   187,   218,
1861 <     189,   190,   160,   218,   193,    99,   136,   218,   218,   217,
1862 <     199,   218,   218,   215,   218,   145,   146,   218,   118,   149,
1863 <     150,   118,   215,   218,   215,   166,   167,   168,   169,   170,
1864 <     215,   172,   173,   215,   175,   176,   177,   218,   218,   180,
1865 <     218,   182,   183,   160,   185,   160,   187,   218,   189,   190,
1866 <     218,   218,   193,   166,   167,   168,   169,   170,   199,   172,
1867 <     173,   136,   175,   176,   177,   118,   218,   180,     1,   182,
1868 <     183,   201,   185,   218,   187,   218,   189,   190,   160,   160,
1869 <     193,   215,   118,   160,   118,   118,   199,   118,    21,    22,
1870 <     165,   118,   118,   118,    27,   118,   118,   118,   118,   174,
1871 <     218,   215,   218,   215,   215,   180,   118,   215,   218,   215,
1872 <     215,   215,   215,    99,   215,    99,   215,   215,    99,   194,
1873 <     215,   196,   197,   215,   215,   215,   215,   215,   215,   215,
1874 <     205,   215,   215,    66,    67,    99,   211,    99,    99,   118,
1875 <      73,    74,    75,    99,    99,    99,   215,   118,   118,   160,
1876 <     218,   118,   118,   118,    99,   118,   215,   215,   118,   118,
1877 <     118,   118,    95,    96,   215,   118,   118,   118,   218,   215,
1878 <     215,   215,   215,   215,   215,   108,   109,   215,   215,   118,
1879 <     215,   118,    99,   215,   160,   215,   119,   215,   118,   218,
1880 <     118,   215,   118,   118,   127,   118,   215,   215,   215,   215,
1881 <     215,   215,   215,   118,   118,   215,   215,   215,   215,   215,
1882 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1883 <     215,   215,   215,   215,   215,   215,   215,   215,   215,    99,
1884 <     215,   118,   215,   215,   118,   215,   160,   215,   215,   118,
1885 <     215,   118,   215,   118,   218,   118,   218,   215,   987,   218,
1886 <     118,   118,   118,   118,   118,    71,   164,    99,   950,   985,
1887 <    1226,   501,   123,  1199,  1197,   215,   215,   215,   328,   215,
1888 <    1187,   218,   215,   215,   215,   215,   123,   215,   222,   215,
1889 <     215,   215,  1084,   215,   215,   477,   215,   452,   215,   118,
1890 <    1183,   515,   550,   215,   215,   215,   215,   215,  1201,   215,
1891 <    1177,   558,   215,   215,  1203,   215,   358,   218,   215,   218,
1892 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
1893 <     215,   215,   215,   215,   215,   215,   215,   215,  1185,   215,
1894 <     215,   467,   215,   215,   215,   215,   376,   215,   112,   215,
1895 <    1179,   215,  1050,   215,   215,   166,   215,  1052,    91,   388,
1896 <      -1,    -1,   215,   215,    -1,   215,   215,   215,   215,   215,
1897 <     215,   215,   215,   215,   215,   215,    -1,   215,    -1,    -1,
1898 <     219,   215,   218,   218,   215,   215,   215,   215,   215,   215,
1899 <     215,   215,   215,   215,   215,   215,    -1,   230,   215,   215,
1900 <     218,   215,   215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1787 >     635,   636,   308,     1,     1,   311,   312,     1,   314,   315,
1788 >       1,     1,     1,    52,     1,    48,     8,     1,   236,     1,
1789 >     236,     1,     1,   216,     1,     1,     1,   220,   236,     1,
1790 >     236,   216,    26,    27,     1,   220,    34,   114,     1,    33,
1791 >     234,     1,   234,   235,   238,    43,    44,    45,   183,   184,
1792 >      48,    49,     1,     1,   236,    53,    54,    55,     6,     7,
1793 >     236,     9,    10,   236,     1,    17,    14,    61,    62,    63,
1794 >       1,  1094,  1095,  1096,     1,    64,    24,    25,   236,     1,
1795 >       1,    75,    76,    77,    32,    64,     1,    35,    36,    37,
1796 >     129,    85,    86,    83,    42,     1,    56,    64,     1,   236,
1797 >     406,    64,   408,   409,    64,   236,    66,    56,    30,   106,
1798 >     236,    59,    60,   419,    41,    64,    38,    66,   424,   106,
1799 >       1,     1,    70,   103,   106,    73,    74,   433,   434,   106,
1800 >     106,     1,   236,   210,   106,   236,    84,   236,    41,   445,
1801 >      20,   447,   448,    91,   124,    93,    98,    95,   130,    97,
1802 >     102,   130,   100,   101,     1,   130,    83,     1,   130,    39,
1803 >     236,   234,   195,   130,   112,   238,   103,   127,   236,   117,
1804 >     118,   204,   120,   121,   122,   172,   236,   125,   127,     1,
1805 >      83,    28,   236,    30,   106,   106,    66,   124,   179,   179,
1806 >       1,   106,     1,   190,   234,   179,    18,    19,   238,   130,
1807 >     106,    23,   150,   130,   236,   236,   236,   236,   160,   206,
1808 >      57,    20,   204,   161,   162,   163,   164,   165,   166,   167,
1809 >      67,   234,   237,   237,   234,   106,   106,   130,   238,   535,
1810 >      39,   237,    79,    80,    81,   226,   106,   235,   235,    83,
1811 >     179,   235,   226,   123,    66,    92,   235,   224,   235,    96,
1812 >     227,   235,   227,   235,   237,   235,   235,    66,   235,   106,
1813 >     235,     1,   109,   110,    86,    87,    88,    89,    90,   217,
1814 >     218,   219,    94,   221,   222,   155,   156,    99,   237,     1,
1815 >      20,     3,   230,     5,   106,   200,   235,   235,   234,   234,
1816 >     237,   138,   238,   115,   116,   106,   227,   237,    20,    39,
1817 >       1,   234,   237,   224,   126,   238,   227,   154,   235,   224,
1818 >     157,   158,   159,   235,   123,   234,   622,    39,   224,    20,
1819 >     235,   627,   131,   132,   630,   147,    66,   207,   634,   235,
1820 >     200,     1,   237,   234,    56,   179,    58,   238,    39,    69,
1821 >     237,    71,   151,   224,    66,   237,   114,   227,    11,    12,
1822 >      13,   231,   237,   237,   224,   235,    78,   234,   205,   234,
1823 >      30,   172,   128,   238,   237,    66,   106,   128,    38,   237,
1824 >     192,   139,   140,   141,   142,   143,   144,   145,   237,   190,
1825 >     237,   228,   229,   123,   106,   237,   234,   237,   235,   119,
1826 >     238,   235,   237,   128,   237,   206,   821,   822,   823,   824,
1827 >     825,   826,   827,   234,   234,   127,   136,   238,   238,   237,
1828 >     234,   237,   237,   235,   238,   155,   156,   237,   227,   237,
1829 >     237,   237,   123,   237,   146,   237,   235,    71,   234,   237,
1830 >     131,   132,   237,   155,   237,     1,   106,   237,   237,   237,
1831 >       6,     7,   237,     9,    10,   175,   176,   237,    14,   237,
1832 >     151,   114,   237,   237,   237,   237,   237,   237,    24,    25,
1833 >     237,   237,   237,   237,   237,    15,    32,   207,   237,    35,
1834 >      36,    37,   237,   237,   237,   237,    42,   237,   237,   237,
1835 >     237,   237,   237,   205,   237,   237,   237,   227,   237,   237,
1836 >      40,   231,   136,    59,    60,   237,   237,   227,   237,   237,
1837 >     237,   237,   232,   237,    70,   237,   228,    73,    74,   237,
1838 >     237,   237,   237,   235,   237,   114,   237,   237,    84,   237,
1839 >     237,   237,    72,   237,   168,    91,   227,    93,   237,    95,
1840 >     237,    97,   176,   237,   100,   101,   114,   237,   237,   216,
1841 >     114,   185,   114,     4,   114,   114,   112,   234,   234,   237,
1842 >     234,   117,   118,     1,   120,   121,   122,   107,   108,   125,
1843 >      21,    22,    71,   113,   237,   209,   237,   211,   212,   237,
1844 >      31,   237,   237,   237,   128,   237,   237,   237,   237,   237,
1845 >      28,   225,    30,   237,   150,   237,   237,   137,   232,   237,
1846 >     237,   237,   237,   234,   237,   161,   162,   163,   164,   165,
1847 >     166,   167,   152,   237,  1239,   237,   237,    68,    69,    57,
1848 >      71,   237,   237,   237,   237,   237,     1,   237,     3,    67,
1849 >       5,   237,   237,   237,   237,   216,   114,   136,   216,   114,
1850 >     216,    79,    80,    81,   114,    20,   114,   114,   114,   216,
1851 >     216,   216,   103,   114,    92,   114,   114,   114,    96,   114,
1852 >     111,   217,   218,   219,    39,   221,   222,   114,   106,   168,
1853 >     114,   109,   110,   216,   230,   215,   237,   176,   216,   237,
1854 >     216,    56,   133,    58,   135,   136,   185,   216,   216,   216,
1855 >     216,    66,   216,   233,   216,   114,   216,   216,   237,   234,
1856 >     138,   234,   153,    78,   234,   237,   237,     0,     1,   234,
1857 >     209,     4,   211,   212,   237,   128,   154,   128,   234,   157,
1858 >     158,   159,   237,    16,   237,   176,   225,    20,   237,    22,
1859 >     181,   106,   237,   232,   185,   237,    29,   237,   189,   237,
1860 >     237,   237,   237,   194,   234,   237,   237,   198,    41,   237,
1861 >     237,   237,   127,    46,    47,   237,   237,   237,   209,   128,
1862 >     211,   212,   234,   214,   237,   128,   237,   205,   237,   234,
1863 >     216,   146,    65,   216,   225,     1,    69,     1,   114,   216,
1864 >     155,   232,   216,   216,   216,   128,   216,   128,   237,    82,
1865 >     228,   229,   114,   128,    18,    19,   128,   114,    48,    23,
1866 >      50,    51,   128,   128,   128,   128,   234,   128,    34,   128,
1867 >     128,   104,   105,   128,   128,   128,   128,    43,    44,    45,
1868 >     234,   237,    48,    49,   216,     1,   119,    53,    54,    55,
1869 >     205,   234,   236,   234,   128,   237,   114,   237,   237,   237,
1870 >     234,   234,    66,   136,    48,   114,    50,    51,   237,   237,
1871 >      26,    27,   234,   228,   234,   148,   149,    33,   234,   237,
1872 >     234,   234,    86,    87,    88,    89,    90,   234,   234,   234,
1873 >      94,   114,   234,   234,   234,    99,   234,   234,   234,   114,
1874 >     173,   114,   106,   114,    48,    61,    62,    63,   128,   114,
1875 >     234,   115,   116,   186,   114,   114,   114,   237,   191,    75,
1876 >      76,    77,   126,   196,   114,   128,   199,   128,   216,    85,
1877 >      86,   128,   128,   128,   128,   128,   128,   128,   234,   169,
1878 >     170,   171,   128,   147,   174,   175,   128,   177,   178,   128,
1879 >     180,   234,   182,   234,   128,   185,   128,   187,   188,   234,
1880 >     216,   237,   234,   193,   234,   234,   234,   197,   234,   234,
1881 >     234,   201,   202,   203,   234,   234,   128,   234,   208,   234,
1882 >     234,   234,   234,   213,   234,   169,   170,   171,   192,   234,
1883 >     174,   175,   234,   177,   178,   234,   180,   234,   182,   234,
1884 >     234,   185,   234,   187,   188,   234,   234,   234,   234,   193,
1885 >     234,   128,   234,   197,   114,   234,   234,   201,   202,   203,
1886 >     234,   128,   234,   128,   208,   169,   170,   171,   237,   213,
1887 >     174,   175,   234,   177,   178,   128,   180,   128,   182,   128,
1888 >     128,   185,   128,   187,   188,   234,   234,   234,   114,   193,
1889 >     128,   234,   128,   197,   234,   128,   234,   201,   202,   203,
1890 >     237,   234,   216,   234,   208,   234,   234,   234,   234,   213,
1891 >     234,   234,   234,   234,   234,   234,   128,   128,   128,   216,
1892 >     237,   128,   128,   234,   128,   128,   128,   234,   234,   234,
1893 >     128,   234,   234,   234,   234,   234,   234,   128,   234,   234,
1894 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1895 >     234,   234,   234,   234,   234,   234,   234,   128,   234,   128,
1896 >     234,   234,   237,   128,   234,   234,   128,   128,   234,   237,
1897 >     234,   234,   234,   234,   114,   234,   234,   234,   234,   234,
1898 >     234,   128,   234,   134,   234,   134,   136,   234,   136,   234,
1899 >     234,   234,   234,   234,   234,   234,   134,   234,   134,   234,
1900 >     234,  1223,   234,   234,   234,   234,   234,   234,    77,   234,
1901 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1902 >     234,   234,   223,   497,   584,   234,   234,  1325,  1054,   234,
1903 >     512,  1286,  1284,  1273,  1262,   234,  1271,   234,   238,   234,
1904 >     234,   234,   234,   239,   234,   234,   234,   234,   234,   234,
1905 >     234,   234,   234,   484,   461,   234,   237,   237,   234,   234,
1906 >     234,   234,   234,   215,   234,  1156,   338,   597,   528,  1296,
1907 >    1289,   239,   239,   239,  1267,   239,   239,   237,   234,   234,
1908 >     234,   234,   570,   474,   112,   162,   264,  1126,   401,    94,
1909 >    1124,   232,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1910 >      -1,   372,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1911 >      -1,    -1,   289,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1912 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1913 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   297,    -1,
1914 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1915 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1916 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1917        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1918        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2172      -1,    -1,    -1,   243,    -1,    -1,    -1,    -1,    -1,    -1,
1919        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2174      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1920        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1921 <      -1,    -1,    -1,    -1,    -1,    -1,   288
1921 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1922 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1923 >      -1,    -1,    -1,   391
1924   };
1925  
1926 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1927 <   symbol of state STATE-NUM.  */
1926 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1927 >     symbol of state STATE-NUM.  */
1928   static const yytype_uint16 yystos[] =
1929   {
1930 <       0,   221,     0,     1,     4,    14,    17,    18,    23,    34,
1931 <      38,    39,    48,    62,    70,    71,    88,   102,   136,   145,
1932 <     146,   149,   150,   201,   222,   227,   232,   254,   260,   274,
1933 <     292,   310,   324,   339,   346,   350,   360,   369,   389,   399,
1934 <     405,   409,   419,   477,   494,   215,   216,   217,   217,   293,
1935 <     370,   400,   217,   410,   217,   325,   390,   311,   217,   217,
1936 <     275,   340,   217,   217,   351,   361,   217,     1,    24,    31,
1937 <      89,   255,   256,   257,   258,   259,     1,    21,    22,    27,
1938 <      66,    67,    73,    74,    75,    95,    96,   108,   109,   119,
1939 <     127,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1940 <     487,   488,   489,   490,   491,   492,   493,   217,   217,   217,
1941 <       1,    61,   406,   407,   408,   217,     1,     6,     7,    12,
1942 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1943 <      46,    50,    55,    59,    60,    63,    72,    79,    80,    82,
1944 <      83,    84,    85,    86,    97,   103,   104,   105,   107,   110,
1945 <     111,   114,   148,   152,   155,   156,   157,   158,   159,   162,
1946 <     163,   202,   203,   204,   207,   212,   420,   421,   422,   423,
1947 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
1948 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
1949 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1950 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
1951 <     464,   465,   466,   470,   474,   475,   476,   217,   217,   217,
1952 <       1,   208,   261,   262,   263,   264,   265,     1,    87,   113,
1953 <     228,   229,   230,   231,   217,   217,     1,    37,    51,    52,
1954 <      53,    54,    69,   495,   496,   497,   498,   499,   500,   501,
1955 <     502,     1,    24,    57,    89,    91,    92,   128,   130,   131,
1956 <     132,   133,   147,   171,   181,   209,   210,   233,   234,   235,
1957 <     236,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1958 <     250,   251,   252,   253,   217,   217,     1,    89,   347,   348,
1959 <     349,   215,   218,   218,   218,   216,   256,   218,   218,   218,
1960 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1961 <     218,   216,   479,     1,    15,    16,    19,    76,    77,    78,
1962 <      81,    89,   100,   101,   115,   116,   143,   184,   294,   295,
1963 <     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1964 <     306,   307,   308,   309,     1,     3,     5,    17,    32,    36,
1965 <      56,    58,    68,    89,   117,   144,   171,   209,   371,   372,
1966 <     373,   374,   375,   376,   377,   378,   379,   380,   384,   385,
1967 <     386,   387,   388,     1,    61,   120,   401,   402,   403,   404,
1968 <     218,   216,   407,     1,    89,   120,   151,   411,   415,   416,
1969 <     417,   418,   218,   218,   218,   218,   218,   218,   218,   218,
1970 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1971 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1972 <     218,   471,   218,   467,   218,   218,   218,   218,   218,   218,
1973 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1974 <     218,   216,   421,     1,    17,    32,    36,   112,   121,   122,
1975 <     153,   206,   326,   327,   328,   329,   330,   331,   332,   336,
1976 <     337,   338,     1,   120,   151,   206,   391,   395,   396,   397,
1977 <     398,     1,    36,    56,    61,   117,   312,   316,   317,   318,
1978 <     322,   323,   215,   218,   216,   262,   214,   215,   218,   218,
1979 <     216,   229,     1,    17,    32,    36,    89,   112,   129,   192,
1980 <     206,   276,   277,   278,   279,   280,   281,   282,   283,   284,
1981 <     288,     1,    14,    93,   120,   341,   342,   343,   344,   345,
1982 <     218,   218,   218,   218,   218,   218,   216,   496,   215,   218,
1983 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1984 <     218,   218,   218,   218,   216,   234,     1,    89,   151,   206,
1985 <     352,   353,   354,   355,   356,     1,    89,   151,   362,   363,
1986 <     364,   365,   218,   216,   348,   118,   118,   118,   215,    99,
1987 <      99,   160,    99,   224,   224,    99,    99,    99,   160,   160,
1988 <      99,   224,   160,   160,   215,   215,   218,   218,   218,   218,
1989 <     218,   218,   218,   218,   218,   218,   218,   218,   218,   218,
1990 <     216,   295,   215,   218,   218,   218,   218,   381,   218,   218,
1991 <     218,   218,   218,   218,   218,   218,   216,   372,   218,   218,
1992 <     216,   402,   118,   215,   218,   218,   412,   216,   416,   160,
1993 <     224,   224,    99,   160,   160,    99,   118,   160,   224,   160,
1994 <     224,    99,    99,    99,   160,   160,   160,   224,    99,    99,
1995 <     224,    99,    99,   118,    99,    99,   160,   160,   218,   160,
1996 <     218,   224,   224,   160,   160,   160,   160,   160,   161,   160,
1997 <     161,   160,   160,   224,   224,   118,   224,   160,   160,   160,
1998 <     215,   215,   218,   218,   333,   218,   218,   218,   218,   218,
1999 <     216,   327,   218,   392,   218,   216,   396,   215,   313,   218,
2000 <     218,   218,   216,   317,   160,   215,   217,   118,   118,   215,
2001 <     215,   218,   218,   289,   218,   218,   218,   285,   218,   216,
2002 <     277,   215,   218,   218,   218,   216,   342,   160,   160,   118,
2003 <     160,   160,   224,   215,   118,   160,   118,   118,   118,   118,
2004 <     118,   118,   134,   135,   237,   238,   134,   135,   239,   240,
2005 <     118,   118,    99,   118,   118,   215,   215,   218,   357,   218,
2006 <     216,   353,   215,   218,   366,   216,   363,   118,   215,   215,
2007 <     215,   215,   215,   215,   215,   138,   139,   140,   141,   142,
2008 <     223,   224,   215,   215,   215,   215,   215,   215,   215,   215,
2009 <     215,   215,   215,    99,    99,   224,    99,    99,    99,    99,
2010 <     118,    99,    99,   224,   224,    99,   226,   226,   215,   118,
2011 <     178,   179,   118,   160,   218,   118,   118,   118,   118,    99,
2012 <     118,   118,   118,   215,   118,   118,   215,   215,   118,   118,
2013 <     218,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2014 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2015 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2016 <     215,    51,   166,   167,   168,   169,   170,   172,   173,   175,
2017 <     176,   177,   180,   182,   183,   185,   187,   189,   190,   193,
2018 <     199,   472,   473,   215,    51,   166,   167,   168,   169,   170,
2019 <     172,   173,   175,   176,   177,   180,   182,   183,   185,   187,
2020 <     189,   190,   193,   199,   468,   469,   215,   215,   215,   215,
2021 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2022 <     215,   215,   215,   215,   215,   118,   160,   218,   118,    99,
2023 <     118,   118,   118,   215,   118,   218,   118,   215,   218,   118,
2024 <     118,    99,   320,   321,   215,   215,     1,    89,   151,   213,
2025 <     266,   267,   268,   269,   270,   215,   215,   118,   160,   218,
2026 <     118,   118,   118,   218,   118,   215,   118,   118,   118,   215,
2027 <     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
2028 <     215,   215,   215,   215,   215,   219,   215,   219,   215,   215,
2029 <     215,   215,   215,   118,   218,   118,   215,   118,   218,   215,
2030 <     215,   223,   223,   223,   223,   223,   215,   215,   215,   215,
2031 <     215,   215,   215,   215,   215,   215,   215,   215,     9,    10,
2032 <      11,   225,   226,   215,   215,   215,   215,   215,   215,   215,
2033 <       8,   191,   382,   383,   215,   215,   215,   215,   215,   215,
2034 <     215,   215,   215,   215,   215,   215,   123,   413,   414,   215,
2035 <     219,   215,   219,   215,   215,    13,    33,    43,    49,    65,
2036 <      90,    98,   137,   154,   334,   335,   215,   215,   215,   215,
2037 <     215,   215,   123,   393,   394,   215,    51,   186,   191,   314,
2038 <     315,   215,   215,   164,   219,   319,   215,   218,   271,   218,
2039 <     216,   267,   215,   215,     4,    25,    40,    47,    64,    87,
2040 <      94,   106,   124,   125,   126,   174,   183,   188,   194,   198,
2041 <     200,   205,   211,   290,   291,   215,   215,   215,    51,   166,
2042 <     167,   168,   169,   170,   172,   173,   175,   176,   177,   180,
2043 <     182,   183,   185,   187,   189,   190,   193,   199,   286,   287,
2044 <     215,   215,   215,   215,   238,   240,   215,    64,   136,   165,
2045 <     174,   180,   194,   196,   197,   205,   211,   358,   359,   215,
2046 <     215,    64,   136,   165,   174,   180,   194,   196,   197,   205,
2047 <     211,   367,   368,   225,   225,   225,   215,   219,   215,   219,
2048 <     473,   469,   215,   219,   215,   219,   215,   219,    99,   321,
2049 <     215,   118,   218,   195,   226,   215,   215,   219,   215,   219,
2050 <     215,   219,   215,   219,   383,   414,   335,   394,   315,   215,
2051 <      40,    62,    64,   102,   173,   174,   206,   272,   273,   215,
2052 <     215,   291,   287,   359,   368,   215,   219,   273
1930 >       0,   241,     0,     1,     4,    16,    20,    22,    29,    41,
1931 >      46,    47,    65,    69,    82,   104,   105,   119,   136,   148,
1932 >     149,   173,   186,   191,   196,   199,   242,   247,   252,   278,
1933 >     284,   290,   298,   312,   332,   356,   370,   385,   392,   396,
1934 >     406,   415,   436,   442,   448,   452,   458,   512,   526,   234,
1935 >     235,   236,   236,   333,   416,   443,   236,   453,   236,   371,
1936 >     437,   357,   236,   285,   313,   386,   236,   236,   407,   236,
1937 >     291,   236,   397,     1,    30,    38,   106,   279,   280,   281,
1938 >     282,   283,     1,    26,    27,    33,    61,    62,    63,    75,
1939 >      76,    77,    85,    86,   513,   514,   515,   516,   517,   518,
1940 >     519,   520,   521,   522,   523,   524,   525,   236,   236,   236,
1941 >       1,    64,   449,   450,   451,   236,     1,     6,     7,     9,
1942 >      10,    14,    24,    25,    32,    35,    36,    37,    42,    59,
1943 >      60,    70,    73,    74,    84,    91,    93,    95,    97,   100,
1944 >     101,   112,   117,   118,   120,   121,   122,   125,   150,   161,
1945 >     162,   163,   164,   165,   166,   167,   217,   218,   219,   221,
1946 >     222,   230,   459,   460,   461,   462,   463,   464,   465,   466,
1947 >     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1948 >     477,   478,   479,   480,   481,   482,   483,   484,   485,   486,
1949 >     487,   488,   489,   490,   491,   492,   493,   494,   495,   496,
1950 >     497,   498,   499,   500,   501,   505,   509,   510,   511,   236,
1951 >     236,   236,     1,   103,   124,   248,   249,   250,   251,   236,
1952 >     236,   236,     1,    34,    43,    44,    45,    48,    49,    53,
1953 >      54,    55,   527,   528,   529,   530,   531,   532,   533,   534,
1954 >     535,   536,   537,     1,    28,    30,    57,    67,    79,    80,
1955 >      81,    92,    96,   106,   109,   110,   138,   154,   157,   158,
1956 >     159,   205,   228,   229,   253,   254,   255,   256,   257,   258,
1957 >     259,   260,   261,   265,   266,   267,   268,   269,   270,   271,
1958 >     272,   273,   274,   275,   276,   277,   236,     1,   226,   299,
1959 >     300,   301,   302,   303,   236,     1,   106,   393,   394,   395,
1960 >     236,   234,   237,   237,   237,   235,   280,   237,   237,   237,
1961 >     237,   237,   237,   237,   237,   237,   237,   237,   235,   514,
1962 >       1,    18,    19,    23,    66,    86,    87,    88,    89,    90,
1963 >      94,    99,   106,   115,   116,   126,   147,   192,   334,   335,
1964 >     336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
1965 >     346,   347,   348,   349,   350,   351,   352,     1,     3,     5,
1966 >      20,    39,    56,    58,    66,    78,   106,   127,   146,   155,
1967 >     205,   228,   417,   418,   419,   420,   421,   422,   423,   424,
1968 >     425,   426,   427,   431,   432,   433,   434,   435,     1,    64,
1969 >     130,   444,   445,   446,   447,   237,   235,   450,     1,   106,
1970 >     130,   454,   455,   456,   457,   237,   237,   237,   237,   237,
1971 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1972 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1973 >     506,   502,   237,   237,   237,   237,   237,   237,   237,   237,
1974 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1975 >     235,   460,     1,    20,    39,    66,   123,   131,   132,   151,
1976 >     227,   372,   373,   374,   375,   376,   377,   378,   382,   383,
1977 >     384,     1,   130,   227,   438,   439,   440,   441,     1,    56,
1978 >      64,    66,   127,   358,   362,   363,   364,   368,   369,   234,
1979 >     237,   237,   235,   249,     1,    83,   179,   286,   287,   288,
1980 >     289,     1,    20,    39,    66,   106,   123,   155,   156,   207,
1981 >     227,   231,   314,   315,   316,   317,   318,   319,   320,   321,
1982 >     322,   323,   324,   328,     1,    41,    83,   130,   387,   388,
1983 >     389,   390,   391,   237,   237,   237,   237,   237,   237,   237,
1984 >     237,   237,   235,   528,   234,   237,   237,   237,   237,   262,
1985 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1986 >     237,   237,   237,   237,   237,   235,   254,     1,   106,   224,
1987 >     408,   409,   410,   411,   234,   237,   235,   300,   179,     1,
1988 >     106,   172,   190,   206,   292,   293,   294,   295,   296,   297,
1989 >     237,   235,   394,     1,   106,   224,   227,   398,   399,   400,
1990 >     401,   402,   128,   128,   128,   234,   114,   114,   244,   216,
1991 >     114,   244,   244,   114,   244,   244,   114,   114,   234,   234,
1992 >     237,   237,   237,   353,   237,   237,   237,   237,   237,   237,
1993 >     237,   237,   237,   237,   237,   237,   237,   235,   335,   234,
1994 >     237,   237,   237,   237,   237,   237,   428,   237,   237,   237,
1995 >     237,   237,   237,   237,   235,   418,   237,   237,   235,   445,
1996 >     128,   234,   237,   237,   235,   455,   216,   244,   114,   244,
1997 >     244,   216,   114,   216,   114,   114,   114,   216,   216,   216,
1998 >     244,   114,   114,   114,   114,   244,   114,   114,   114,   114,
1999 >     216,   237,   237,   216,   244,   244,   216,   216,   216,   216,
2000 >     220,   216,   220,   216,   216,   216,   216,   114,   244,   216,
2001 >     244,   244,   216,   234,   234,   237,   237,   379,   237,   237,
2002 >     237,   237,   237,   235,   373,   237,   237,   235,   439,   234,
2003 >     237,   237,   359,   237,   235,   363,   128,   128,   234,   234,
2004 >     237,   237,   235,   287,   234,   237,   237,   329,   237,   237,
2005 >     237,   237,   325,   237,   237,   235,   315,   234,   237,   237,
2006 >     237,   235,   388,   216,   216,   244,   128,   216,   128,   216,
2007 >     216,   216,   234,   114,   128,   216,   128,   237,   128,   128,
2008 >     114,   114,   128,   128,   128,   128,   128,   128,   128,   128,
2009 >     128,   128,   128,   234,   234,   237,   412,   235,   409,   216,
2010 >     234,   236,   234,   237,   237,   237,   237,   235,   293,   128,
2011 >     234,   234,   237,   403,   237,   235,   399,   234,   234,   234,
2012 >     234,   139,   140,   141,   142,   143,   144,   145,   243,   244,
2013 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2014 >     114,   114,   244,   237,   114,   114,   114,   244,   114,   114,
2015 >     244,   128,   114,   114,   244,   114,   246,   246,   234,   128,
2016 >     183,   184,   128,   216,   128,   128,   237,   128,   128,   114,
2017 >     128,   128,   128,   128,   234,   128,   128,   234,   234,   128,
2018 >     128,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2019 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2020 >     234,   234,   234,   234,   234,   234,   234,    48,   169,   170,
2021 >     171,   174,   175,   177,   178,   180,   182,   185,   187,   188,
2022 >     193,   197,   201,   202,   203,   208,   213,   507,   508,    48,
2023 >      50,    51,   169,   170,   171,   174,   175,   177,   178,   180,
2024 >     182,   185,   187,   188,   193,   197,   201,   202,   203,   208,
2025 >     213,   503,   504,   234,   234,   234,   234,   234,   234,   234,
2026 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2027 >     234,   234,   234,   128,   216,   237,   128,   114,   128,   128,
2028 >     128,   234,   128,   128,   234,   128,   128,   237,   114,   366,
2029 >     367,   234,   234,   234,   128,   128,   234,   128,   216,   237,
2030 >     128,   128,   128,   216,   237,   128,   128,   234,   128,   128,
2031 >     128,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2032 >     234,   234,   234,   234,   234,    17,    98,   102,   160,   263,
2033 >     264,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2034 >     234,   234,   234,   234,   234,   234,   128,   237,   234,   234,
2035 >       1,   106,   200,   224,   304,   305,   306,   307,   308,   128,
2036 >     128,   128,   128,   234,   234,   128,   237,   128,   234,   243,
2037 >     243,   243,   243,   243,   243,   243,   234,   234,   234,    52,
2038 >     129,   354,   355,   234,   234,   234,   234,   234,   234,   234,
2039 >     234,   234,   234,   234,    11,    12,    13,   245,   246,   234,
2040 >     234,   234,   234,   234,   234,   234,   234,   234,     8,   204,
2041 >     429,   430,   234,   234,   234,   234,   234,   234,   234,   234,
2042 >     234,   234,   234,   234,   238,   234,   238,   234,   234,    15,
2043 >      40,    72,   107,   108,   113,   137,   152,   215,   233,   380,
2044 >     381,   234,   234,   234,   234,   234,   234,   234,   234,   234,
2045 >      48,   195,   204,   360,   361,   223,   238,   365,   234,   234,
2046 >     234,   234,     4,    21,    22,    31,    68,    69,    71,   103,
2047 >     111,   133,   135,   136,   153,   176,   181,   185,   189,   194,
2048 >     198,   209,   211,   212,   214,   225,   232,   330,   331,   234,
2049 >     234,   234,   234,    48,    50,    51,   169,   170,   171,   174,
2050 >     175,   177,   178,   180,   182,   185,   187,   188,   193,   197,
2051 >     201,   202,   203,   208,   213,   326,   327,   234,   234,   234,
2052 >     234,   234,   234,   238,   234,    71,   136,   168,   176,   185,
2053 >     209,   211,   212,   225,   232,   413,   414,   234,   237,   237,
2054 >     309,   235,   305,   234,   234,   234,   234,   234,    71,   136,
2055 >     168,   176,   185,   209,   211,   212,   225,   232,   404,   405,
2056 >     234,   234,   238,   245,   245,   245,   234,   238,   508,   504,
2057 >     234,   238,   234,   238,   114,   367,   234,   239,   239,   239,
2058 >     239,   239,   239,   234,   238,   234,   238,   264,   234,   238,
2059 >     128,   210,   246,   237,   234,   234,   238,   355,   430,   381,
2060 >     361,   134,   136,   134,   136,   134,   134,   331,   327,   414,
2061 >     234,   234,   234,    69,    71,   119,   136,   175,   176,   227,
2062 >     232,   310,   311,   405,   234,   238,   311
2063 > };
2064 >
2065 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2066 > static const yytype_uint16 yyr1[] =
2067 > {
2068 >       0,   240,   241,   241,   242,   242,   242,   242,   242,   242,
2069 >     242,   242,   242,   242,   242,   242,   242,   242,   242,   242,
2070 >     242,   242,   242,   242,   242,   242,   242,   242,   243,   243,
2071 >     244,   244,   244,   244,   244,   244,   244,   244,   245,   245,
2072 >     246,   246,   246,   246,   247,   248,   248,   249,   249,   249,
2073 >     250,   251,   252,   253,   253,   254,   254,   254,   254,   254,
2074 >     254,   254,   254,   254,   254,   254,   254,   254,   254,   254,
2075 >     254,   254,   254,   254,   254,   254,   255,   256,   257,   258,
2076 >     259,   260,   262,   261,   263,   263,   264,   264,   264,   264,
2077 >     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2078 >     275,   276,   277,   278,   279,   279,   280,   280,   280,   280,
2079 >     281,   282,   283,   285,   284,   286,   286,   287,   287,   287,
2080 >     288,   289,   291,   290,   292,   292,   293,   293,   293,   293,
2081 >     293,   294,   295,   296,   297,   298,   299,   299,   300,   300,
2082 >     300,   301,   303,   302,   304,   304,   305,   305,   305,   305,
2083 >     306,   307,   307,   309,   308,   310,   310,   311,   311,   311,
2084 >     311,   311,   311,   311,   311,   313,   312,   314,   314,   315,
2085 >     315,   315,   315,   315,   315,   315,   315,   315,   315,   315,
2086 >     316,   317,   318,   319,   320,   321,   322,   323,   325,   324,
2087 >     326,   326,   327,   327,   327,   327,   327,   327,   327,   327,
2088 >     327,   327,   327,   327,   327,   327,   327,   327,   327,   327,
2089 >     327,   327,   327,   327,   329,   328,   330,   330,   331,   331,
2090 >     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
2091 >     331,   331,   331,   331,   331,   331,   331,   331,   331,   331,
2092 >     331,   331,   331,   331,   331,   331,   331,   333,   332,   334,
2093 >     334,   335,   335,   335,   335,   335,   335,   335,   335,   335,
2094 >     335,   335,   335,   335,   335,   335,   335,   335,   335,   336,
2095 >     337,   338,   339,   340,   341,   342,   343,   344,   345,   346,
2096 >     347,   348,   349,   350,   351,   353,   352,   354,   354,   355,
2097 >     355,   357,   356,   359,   358,   360,   360,   361,   361,   361,
2098 >     362,   362,   363,   363,   363,   363,   363,   365,   364,   366,
2099 >     366,   367,   367,   368,   369,   371,   370,   372,   372,   373,
2100 >     373,   373,   373,   373,   373,   373,   373,   373,   374,   375,
2101 >     376,   377,   379,   378,   380,   380,   381,   381,   381,   381,
2102 >     381,   381,   381,   381,   381,   381,   382,   383,   384,   386,
2103 >     385,   387,   387,   388,   388,   388,   388,   389,   390,   391,
2104 >     392,   393,   393,   394,   394,   395,   397,   396,   398,   398,
2105 >     399,   399,   399,   399,   400,   401,   403,   402,   404,   404,
2106 >     405,   405,   405,   405,   405,   405,   405,   405,   405,   405,
2107 >     407,   406,   408,   408,   409,   409,   409,   410,   412,   411,
2108 >     413,   413,   414,   414,   414,   414,   414,   414,   414,   414,
2109 >     414,   414,   416,   415,   417,   417,   418,   418,   418,   418,
2110 >     418,   418,   418,   418,   418,   418,   418,   418,   418,   418,
2111 >     418,   419,   420,   421,   422,   423,   424,   425,   426,   426,
2112 >     428,   427,   429,   429,   430,   430,   431,   432,   433,   434,
2113 >     435,   437,   436,   438,   438,   439,   439,   439,   440,   441,
2114 >     443,   442,   444,   444,   445,   445,   445,   446,   447,   448,
2115 >     449,   449,   450,   450,   451,   453,   452,   454,   454,   455,
2116 >     455,   455,   456,   457,   458,   459,   459,   460,   460,   460,
2117 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2118 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2119 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2120 >     460,   460,   460,   460,   460,   460,   460,   460,   460,   460,
2121 >     460,   460,   460,   461,   462,   463,   464,   465,   466,   467,
2122 >     468,   469,   470,   471,   472,   473,   474,   475,   476,   477,
2123 >     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
2124 >     487,   488,   488,   489,   490,   491,   492,   493,   494,   495,
2125 >     496,   497,   498,   499,   500,   502,   501,   503,   503,   504,
2126 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2127 >     504,   504,   504,   504,   504,   504,   504,   504,   504,   504,
2128 >     504,   506,   505,   507,   507,   508,   508,   508,   508,   508,
2129 >     508,   508,   508,   508,   508,   508,   508,   508,   508,   508,
2130 >     508,   508,   508,   508,   508,   509,   510,   511,   512,   513,
2131 >     513,   514,   514,   514,   514,   514,   514,   514,   514,   514,
2132 >     514,   514,   514,   515,   516,   517,   518,   519,   520,   521,
2133 >     522,   523,   524,   525,   526,   527,   527,   528,   528,   528,
2134 >     528,   528,   528,   528,   528,   528,   528,   529,   530,   531,
2135 >     532,   533,   534,   535,   536,   537
2136 > };
2137 >
2138 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2139 > static const yytype_uint8 yyr2[] =
2140 > {
2141 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2142 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2143 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2144 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2145 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2146 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2147 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2148 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2149 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2150 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2151 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     2,
2152 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     2,
2153 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
2154 >       2,     4,     4,     4,     4,     5,     2,     1,     1,     1,
2155 >       2,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2156 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2157 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2158 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2159 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2160 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2161 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2162 >       1,     1,     1,     1,     0,     5,     3,     1,     3,     1,
2163 >       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2164 >       1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2165 >       1,     1,     3,     3,     1,     1,     1,     0,     6,     2,
2166 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2167 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2168 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2169 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2170 >       1,     0,     6,     0,     5,     3,     1,     1,     1,     1,
2171 >       2,     1,     1,     1,     1,     1,     2,     0,     5,     3,
2172 >       1,     1,     3,     4,     4,     0,     6,     2,     1,     1,
2173 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2174 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2175 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     0,
2176 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2177 >       5,     2,     1,     1,     1,     4,     0,     6,     2,     1,
2178 >       1,     1,     1,     2,     4,     4,     0,     5,     3,     1,
2179 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2180 >       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
2181 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2182 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2183 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2184 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2185 >       0,     5,     3,     1,     1,     1,     4,     4,     4,     4,
2186 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
2187 >       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
2188 >       2,     1,     1,     1,     4,     0,     6,     2,     1,     1,
2189 >       1,     1,     4,     4,     5,     2,     1,     1,     1,     1,
2190 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2191 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2192 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2193 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2194 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2195 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2196 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2197 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2198 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2199 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2200 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2201 >       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2202 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2203 >       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
2204 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2205 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2206 >       4,     4,     4,     4,     5,     2,     1,     1,     1,     1,
2207 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2208 >       4,     4,     4,     4,     4,     4
2209   };
2210  
2211 < #define yyerrok         (yyerrstatus = 0)
2212 < #define yyclearin       (yychar = YYEMPTY)
2213 < #define YYEMPTY         (-2)
2214 < #define YYEOF           0
2215 <
2216 < #define YYACCEPT        goto yyacceptlab
2217 < #define YYABORT         goto yyabortlab
2218 < #define YYERROR         goto yyerrorlab
2219 <
2220 <
2318 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2319 <   to ease the transition to the new meaning of YYERROR, for GCC.
2320 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2321 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2322 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2323 <   discussed.  */
2324 <
2325 < #define YYFAIL          goto yyerrlab
2326 < #if defined YYFAIL
2327 <  /* This is here to suppress warnings from the GCC cpp's
2328 <     -Wunused-macros.  Normally we don't worry about that warning, but
2329 <     some users do, and we want to make it easy for users to remove
2330 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2331 < #endif
2211 >
2212 > #define yyerrok         (yyerrstatus = 0)
2213 > #define yyclearin       (yychar = YYEMPTY)
2214 > #define YYEMPTY         (-2)
2215 > #define YYEOF           0
2216 >
2217 > #define YYACCEPT        goto yyacceptlab
2218 > #define YYABORT         goto yyabortlab
2219 > #define YYERROR         goto yyerrorlab
2220 >
2221  
2222   #define YYRECOVERING()  (!!yyerrstatus)
2223  
# Line 2345 | Line 2234 | do
2234    else                                                          \
2235      {                                                           \
2236        yyerror (YY_("syntax error: cannot back up")); \
2237 <      YYERROR;                                                  \
2238 <    }                                                           \
2239 < while (YYID (0))
2351 <
2237 >      YYERROR;                                                  \
2238 >    }                                                           \
2239 > while (0)
2240  
2241 < #define YYTERROR        1
2242 < #define YYERRCODE       256
2241 > /* Error token number */
2242 > #define YYTERROR        1
2243 > #define YYERRCODE       256
2244  
2356 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2357   If N is 0, then set CURRENT to the empty location which ends
2358   the previous symbol: RHS[0] (always defined).  */
2245  
2360 #ifndef YYLLOC_DEFAULT
2361 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2362    do                                                                  \
2363      if (YYID (N))                                                     \
2364        {                                                               \
2365          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2366          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2367          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2368          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2369        }                                                               \
2370      else                                                              \
2371        {                                                               \
2372          (Current).first_line   = (Current).last_line   =              \
2373            YYRHSLOC (Rhs, 0).last_line;                                \
2374          (Current).first_column = (Current).last_column =              \
2375            YYRHSLOC (Rhs, 0).last_column;                              \
2376        }                                                               \
2377    while (YYID (0))
2378 #endif
2246  
2247 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2247 > /* Enable debugging if requested.  */
2248 > #if YYDEBUG
2249  
2250 + # ifndef YYFPRINTF
2251 + #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2252 + #  define YYFPRINTF fprintf
2253 + # endif
2254  
2255 + # define YYDPRINTF(Args)                        \
2256 + do {                                            \
2257 +  if (yydebug)                                  \
2258 +    YYFPRINTF Args;                             \
2259 + } while (0)
2260  
2261   /* This macro is provided for backward compatibility. */
2385
2262   #ifndef YY_LOCATION_PRINT
2263   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2264   #endif
2265  
2266  
2267 < /* YYLEX -- calling `yylex' with the right arguments.  */
2268 <
2269 < #ifdef YYLEX_PARAM
2270 < # define YYLEX yylex (YYLEX_PARAM)
2271 < #else
2272 < # define YYLEX yylex ()
2273 < #endif
2274 <
2275 < /* Enable debugging if requested.  */
2276 < #if YYDEBUG
2401 <
2402 < # ifndef YYFPRINTF
2403 < #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2404 < #  define YYFPRINTF fprintf
2405 < # endif
2406 <
2407 < # define YYDPRINTF(Args)                        \
2408 < do {                                            \
2409 <  if (yydebug)                                  \
2410 <    YYFPRINTF Args;                             \
2411 < } while (YYID (0))
2412 <
2413 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2414 < do {                                                                      \
2415 <  if (yydebug)                                                            \
2416 <    {                                                                     \
2417 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2418 <      yy_symbol_print (stderr,                                            \
2419 <                  Type, Value); \
2420 <      YYFPRINTF (stderr, "\n");                                           \
2421 <    }                                                                     \
2422 < } while (YYID (0))
2267 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2268 > do {                                                                      \
2269 >  if (yydebug)                                                            \
2270 >    {                                                                     \
2271 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2272 >      yy_symbol_print (stderr,                                            \
2273 >                  Type, Value); \
2274 >      YYFPRINTF (stderr, "\n");                                           \
2275 >    }                                                                     \
2276 > } while (0)
2277  
2278  
2279 < /*--------------------------------.
2280 < | Print this symbol on YYOUTPUT.  |
2281 < `--------------------------------*/
2279 > /*----------------------------------------.
2280 > | Print this symbol's value on YYOUTPUT.  |
2281 > `----------------------------------------*/
2282  
2429 /*ARGSUSED*/
2430 #if (defined __STDC__ || defined __C99__FUNC__ \
2431     || defined __cplusplus || defined _MSC_VER)
2283   static void
2284   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2434 #else
2435 static void
2436 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2437    FILE *yyoutput;
2438    int yytype;
2439    YYSTYPE const * const yyvaluep;
2440 #endif
2285   {
2286    FILE *yyo = yyoutput;
2287    YYUSE (yyo);
# Line 2446 | Line 2290 | yy_symbol_value_print (yyoutput, yytype,
2290   # ifdef YYPRINT
2291    if (yytype < YYNTOKENS)
2292      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2449 # else
2450  YYUSE (yyoutput);
2293   # endif
2294 <  switch (yytype)
2453 <    {
2454 <      default:
2455 <        break;
2456 <    }
2294 >  YYUSE (yytype);
2295   }
2296  
2297  
# Line 2461 | Line 2299 | yy_symbol_value_print (yyoutput, yytype,
2299   | Print this symbol on YYOUTPUT.  |
2300   `--------------------------------*/
2301  
2464 #if (defined __STDC__ || defined __C99__FUNC__ \
2465     || defined __cplusplus || defined _MSC_VER)
2302   static void
2303   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2468 #else
2469 static void
2470 yy_symbol_print (yyoutput, yytype, yyvaluep)
2471    FILE *yyoutput;
2472    int yytype;
2473    YYSTYPE const * const yyvaluep;
2474 #endif
2304   {
2305 <  if (yytype < YYNTOKENS)
2306 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2478 <  else
2479 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2305 >  YYFPRINTF (yyoutput, "%s %s (",
2306 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2307  
2308    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2309    YYFPRINTF (yyoutput, ")");
# Line 2487 | Line 2314 | yy_symbol_print (yyoutput, yytype, yyval
2314   | TOP (included).                                                   |
2315   `------------------------------------------------------------------*/
2316  
2490 #if (defined __STDC__ || defined __C99__FUNC__ \
2491     || defined __cplusplus || defined _MSC_VER)
2317   static void
2318   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2494 #else
2495 static void
2496 yy_stack_print (yybottom, yytop)
2497    yytype_int16 *yybottom;
2498    yytype_int16 *yytop;
2499 #endif
2319   {
2320    YYFPRINTF (stderr, "Stack now");
2321    for (; yybottom <= yytop; yybottom++)
# Line 2507 | Line 2326 | yy_stack_print (yybottom, yytop)
2326    YYFPRINTF (stderr, "\n");
2327   }
2328  
2329 < # define YY_STACK_PRINT(Bottom, Top)                            \
2330 < do {                                                            \
2331 <  if (yydebug)                                                  \
2332 <    yy_stack_print ((Bottom), (Top));                           \
2333 < } while (YYID (0))
2329 > # define YY_STACK_PRINT(Bottom, Top)                            \
2330 > do {                                                            \
2331 >  if (yydebug)                                                  \
2332 >    yy_stack_print ((Bottom), (Top));                           \
2333 > } while (0)
2334  
2335  
2336   /*------------------------------------------------.
2337   | Report that the YYRULE is going to be reduced.  |
2338   `------------------------------------------------*/
2339  
2521 #if (defined __STDC__ || defined __C99__FUNC__ \
2522     || defined __cplusplus || defined _MSC_VER)
2340   static void
2341 < yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2525 < #else
2526 < static void
2527 < yy_reduce_print (yyvsp, yyrule)
2528 <    YYSTYPE *yyvsp;
2529 <    int yyrule;
2530 < #endif
2341 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2342   {
2343 +  unsigned long int yylno = yyrline[yyrule];
2344    int yynrhs = yyr2[yyrule];
2345    int yyi;
2534  unsigned long int yylno = yyrline[yyrule];
2346    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2347 <             yyrule - 1, yylno);
2347 >             yyrule - 1, yylno);
2348    /* The symbols being reduced.  */
2349    for (yyi = 0; yyi < yynrhs; yyi++)
2350      {
2351        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2352 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2353 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2354 <                                       );
2352 >      yy_symbol_print (stderr,
2353 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2354 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2355 >                                              );
2356        YYFPRINTF (stderr, "\n");
2357      }
2358   }
2359  
2360 < # define YY_REDUCE_PRINT(Rule)          \
2361 < do {                                    \
2362 <  if (yydebug)                          \
2363 <    yy_reduce_print (yyvsp, Rule); \
2364 < } while (YYID (0))
2360 > # define YY_REDUCE_PRINT(Rule)          \
2361 > do {                                    \
2362 >  if (yydebug)                          \
2363 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2364 > } while (0)
2365  
2366   /* Nonzero means print parse trace.  It is left uninitialized so that
2367     multiple parsers can coexist.  */
# Line 2563 | Line 2375 | int yydebug;
2375  
2376  
2377   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2378 < #ifndef YYINITDEPTH
2378 > #ifndef YYINITDEPTH
2379   # define YYINITDEPTH 200
2380   #endif
2381  
# Line 2586 | Line 2398 | int yydebug;
2398   #   define yystrlen strlen
2399   #  else
2400   /* Return the length of YYSTR.  */
2589 #if (defined __STDC__ || defined __C99__FUNC__ \
2590     || defined __cplusplus || defined _MSC_VER)
2401   static YYSIZE_T
2402   yystrlen (const char *yystr)
2593 #else
2594 static YYSIZE_T
2595 yystrlen (yystr)
2596    const char *yystr;
2597 #endif
2403   {
2404    YYSIZE_T yylen;
2405    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2610 | Line 2415 | yystrlen (yystr)
2415   #  else
2416   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2417     YYDEST.  */
2613 #if (defined __STDC__ || defined __C99__FUNC__ \
2614     || defined __cplusplus || defined _MSC_VER)
2418   static char *
2419   yystpcpy (char *yydest, const char *yysrc)
2617 #else
2618 static char *
2619 yystpcpy (yydest, yysrc)
2620    char *yydest;
2621    const char *yysrc;
2622 #endif
2420   {
2421    char *yyd = yydest;
2422    const char *yys = yysrc;
# Line 2649 | Line 2446 | yytnamerr (char *yyres, const char *yyst
2446        char const *yyp = yystr;
2447  
2448        for (;;)
2449 <        switch (*++yyp)
2450 <          {
2451 <          case '\'':
2452 <          case ',':
2453 <            goto do_not_strip_quotes;
2454 <
2455 <          case '\\':
2456 <            if (*++yyp != '\\')
2457 <              goto do_not_strip_quotes;
2458 <            /* Fall through.  */
2459 <          default:
2460 <            if (yyres)
2461 <              yyres[yyn] = *yyp;
2462 <            yyn++;
2463 <            break;
2464 <
2465 <          case '"':
2466 <            if (yyres)
2467 <              yyres[yyn] = '\0';
2468 <            return yyn;
2469 <          }
2449 >        switch (*++yyp)
2450 >          {
2451 >          case '\'':
2452 >          case ',':
2453 >            goto do_not_strip_quotes;
2454 >
2455 >          case '\\':
2456 >            if (*++yyp != '\\')
2457 >              goto do_not_strip_quotes;
2458 >            /* Fall through.  */
2459 >          default:
2460 >            if (yyres)
2461 >              yyres[yyn] = *yyp;
2462 >            yyn++;
2463 >            break;
2464 >
2465 >          case '"':
2466 >            if (yyres)
2467 >              yyres[yyn] = '\0';
2468 >            return yyn;
2469 >          }
2470      do_not_strip_quotes: ;
2471      }
2472  
# Line 2692 | Line 2489 | static int
2489   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2490                  yytype_int16 *yyssp, int yytoken)
2491   {
2492 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2492 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2493    YYSIZE_T yysize = yysize0;
2697  YYSIZE_T yysize1;
2494    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2495    /* Internationalized format string. */
2496 <  const char *yyformat = YY_NULL;
2496 >  const char *yyformat = YY_NULLPTR;
2497    /* Arguments of yyformat. */
2498    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2499    /* Number of reported tokens (one for the "unexpected", one per
# Line 2705 | Line 2501 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2501    int yycount = 0;
2502  
2503    /* There are many possibilities here to consider:
2708     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2709       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2710       for details.  YYERROR is fine as it does not invoke this
2711       function.
2504       - If this state is a consistent state with a default action, then
2505         the only way this function was invoked is if the default action
2506         is an error action.  In that case, don't check for expected
# Line 2757 | Line 2549 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2549                      break;
2550                    }
2551                  yyarg[yycount++] = yytname[yyx];
2552 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2553 <                if (! (yysize <= yysize1
2554 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2555 <                  return 2;
2556 <                yysize = yysize1;
2552 >                {
2553 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2554 >                  if (! (yysize <= yysize1
2555 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2556 >                    return 2;
2557 >                  yysize = yysize1;
2558 >                }
2559                }
2560          }
2561      }
# Line 2781 | Line 2575 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2575   # undef YYCASE_
2576      }
2577  
2578 <  yysize1 = yysize + yystrlen (yyformat);
2579 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2580 <    return 2;
2581 <  yysize = yysize1;
2578 >  {
2579 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2580 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2581 >      return 2;
2582 >    yysize = yysize1;
2583 >  }
2584  
2585    if (*yymsg_alloc < yysize)
2586      {
# Line 2821 | Line 2617 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2617   | Release the memory associated to this symbol.  |
2618   `-----------------------------------------------*/
2619  
2824 /*ARGSUSED*/
2825 #if (defined __STDC__ || defined __C99__FUNC__ \
2826     || defined __cplusplus || defined _MSC_VER)
2620   static void
2621   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2829 #else
2830 static void
2831 yydestruct (yymsg, yytype, yyvaluep)
2832    const char *yymsg;
2833    int yytype;
2834    YYSTYPE *yyvaluep;
2835 #endif
2622   {
2623    YYUSE (yyvaluep);
2838
2624    if (!yymsg)
2625      yymsg = "Deleting";
2626    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2627  
2628 <  switch (yytype)
2629 <    {
2630 <
2846 <      default:
2847 <        break;
2848 <    }
2628 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2629 >  YYUSE (yytype);
2630 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2631   }
2632  
2633  
# Line 2856 | Line 2638 | int yychar;
2638  
2639   /* The semantic value of the lookahead symbol.  */
2640   YYSTYPE yylval;
2859
2641   /* Number of syntax errors so far.  */
2642   int yynerrs;
2643  
# Line 2865 | Line 2646 | int yynerrs;
2646   | yyparse.  |
2647   `----------*/
2648  
2868 #ifdef YYPARSE_PARAM
2869 #if (defined __STDC__ || defined __C99__FUNC__ \
2870     || defined __cplusplus || defined _MSC_VER)
2871 int
2872 yyparse (void *YYPARSE_PARAM)
2873 #else
2874 int
2875 yyparse (YYPARSE_PARAM)
2876    void *YYPARSE_PARAM;
2877 #endif
2878 #else /* ! YYPARSE_PARAM */
2879 #if (defined __STDC__ || defined __C99__FUNC__ \
2880     || defined __cplusplus || defined _MSC_VER)
2649   int
2650   yyparse (void)
2883 #else
2884 int
2885 yyparse ()
2886
2887 #endif
2888 #endif
2651   {
2652      int yystate;
2653      /* Number of tokens to shift before error messages enabled.  */
2654      int yyerrstatus;
2655  
2656      /* The stacks and their tools:
2657 <       `yyss': related to states.
2658 <       `yyvs': related to semantic values.
2657 >       'yyss': related to states.
2658 >       'yyvs': related to semantic values.
2659  
2660         Refer to the stacks through separate pointers, to allow yyoverflow
2661         to reallocate them elsewhere.  */
# Line 2913 | Line 2675 | yyparse ()
2675    int yyn;
2676    int yyresult;
2677    /* Lookahead token as an internal (translated) token number.  */
2678 <  int yytoken;
2678 >  int yytoken = 0;
2679    /* The variables used to return semantic value and location from the
2680       action routines.  */
2681    YYSTYPE yyval;
# Line 2931 | Line 2693 | yyparse ()
2693       Keep to zero when no symbol should be popped.  */
2694    int yylen = 0;
2695  
2696 <  yytoken = 0;
2697 <  yyss = yyssa;
2936 <  yyvs = yyvsa;
2696 >  yyssp = yyss = yyssa;
2697 >  yyvsp = yyvs = yyvsa;
2698    yystacksize = YYINITDEPTH;
2699  
2700    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2942 | Line 2703 | yyparse ()
2703    yyerrstatus = 0;
2704    yynerrs = 0;
2705    yychar = YYEMPTY; /* Cause a token to be read.  */
2945
2946  /* Initialize stack pointers.
2947     Waste one element of value and location stack
2948     so that they stay on the same level as the state stack.
2949     The wasted elements are never initialized.  */
2950  yyssp = yyss;
2951  yyvsp = yyvs;
2706    goto yysetstate;
2707  
2708   /*------------------------------------------------------------.
# Line 2969 | Line 2723 | yyparse ()
2723  
2724   #ifdef yyoverflow
2725        {
2726 <        /* Give user a chance to reallocate the stack.  Use copies of
2727 <           these so that the &'s don't force the real ones into
2728 <           memory.  */
2729 <        YYSTYPE *yyvs1 = yyvs;
2730 <        yytype_int16 *yyss1 = yyss;
2731 <
2732 <        /* Each stack pointer address is followed by the size of the
2733 <           data in use in that stack, in bytes.  This used to be a
2734 <           conditional around just the two extra args, but that might
2735 <           be undefined if yyoverflow is a macro.  */
2736 <        yyoverflow (YY_("memory exhausted"),
2737 <                    &yyss1, yysize * sizeof (*yyssp),
2738 <                    &yyvs1, yysize * sizeof (*yyvsp),
2739 <                    &yystacksize);
2726 >        /* Give user a chance to reallocate the stack.  Use copies of
2727 >           these so that the &'s don't force the real ones into
2728 >           memory.  */
2729 >        YYSTYPE *yyvs1 = yyvs;
2730 >        yytype_int16 *yyss1 = yyss;
2731 >
2732 >        /* Each stack pointer address is followed by the size of the
2733 >           data in use in that stack, in bytes.  This used to be a
2734 >           conditional around just the two extra args, but that might
2735 >           be undefined if yyoverflow is a macro.  */
2736 >        yyoverflow (YY_("memory exhausted"),
2737 >                    &yyss1, yysize * sizeof (*yyssp),
2738 >                    &yyvs1, yysize * sizeof (*yyvsp),
2739 >                    &yystacksize);
2740  
2741 <        yyss = yyss1;
2742 <        yyvs = yyvs1;
2741 >        yyss = yyss1;
2742 >        yyvs = yyvs1;
2743        }
2744   #else /* no yyoverflow */
2745   # ifndef YYSTACK_RELOCATE
# Line 2993 | Line 2747 | yyparse ()
2747   # else
2748        /* Extend the stack our own way.  */
2749        if (YYMAXDEPTH <= yystacksize)
2750 <        goto yyexhaustedlab;
2750 >        goto yyexhaustedlab;
2751        yystacksize *= 2;
2752        if (YYMAXDEPTH < yystacksize)
2753 <        yystacksize = YYMAXDEPTH;
2753 >        yystacksize = YYMAXDEPTH;
2754  
2755        {
2756 <        yytype_int16 *yyss1 = yyss;
2757 <        union yyalloc *yyptr =
2758 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 <        if (! yyptr)
2760 <          goto yyexhaustedlab;
2761 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2756 >        yytype_int16 *yyss1 = yyss;
2757 >        union yyalloc *yyptr =
2758 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2759 >        if (! yyptr)
2760 >          goto yyexhaustedlab;
2761 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2762 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2763   #  undef YYSTACK_RELOCATE
2764 <        if (yyss1 != yyssa)
2765 <          YYSTACK_FREE (yyss1);
2764 >        if (yyss1 != yyssa)
2765 >          YYSTACK_FREE (yyss1);
2766        }
2767   # endif
2768   #endif /* no yyoverflow */
# Line 3017 | Line 2771 | yyparse ()
2771        yyvsp = yyvs + yysize - 1;
2772  
2773        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2774 <                  (unsigned long int) yystacksize));
2774 >                  (unsigned long int) yystacksize));
2775  
2776        if (yyss + yystacksize - 1 <= yyssp)
2777 <        YYABORT;
2777 >        YYABORT;
2778      }
2779  
2780    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3049 | Line 2803 | yybackup:
2803    if (yychar == YYEMPTY)
2804      {
2805        YYDPRINTF ((stderr, "Reading a token: "));
2806 <      yychar = YYLEX;
2806 >      yychar = yylex ();
2807      }
2808  
2809    if (yychar <= YYEOF)
# Line 3089 | Line 2843 | yybackup:
2843    yychar = YYEMPTY;
2844  
2845    yystate = yyn;
2846 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2847    *++yyvsp = yylval;
2848 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2849  
2850    goto yynewstate;
2851  
# Line 3112 | Line 2868 | yyreduce:
2868    yylen = yyr2[yyn];
2869  
2870    /* If YYLEN is nonzero, implement the default value of the action:
2871 <     `$$ = $1'.
2871 >     '$$ = $1'.
2872  
2873       Otherwise, the following line sets YYVAL to garbage.
2874       This behavior is undocumented and Bison
# Line 3125 | Line 2881 | yyreduce:
2881    YY_REDUCE_PRINT (yyn);
2882    switch (yyn)
2883      {
2884 <        case 26:
2885 < /* Line 1787 of yacc.c  */
3130 < #line 359 "conf_parser.y"
2884 >        case 28:
2885 > #line 409 "conf_parser.y" /* yacc.c:1646  */
2886      { (yyval.number) = 0; }
2887 <    break;
3133 <
3134 <  case 28:
3135 < /* Line 1787 of yacc.c  */
3136 < #line 361 "conf_parser.y"
3137 <    {
3138 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3139 <                }
3140 <    break;
3141 <
3142 <  case 29:
3143 < /* Line 1787 of yacc.c  */
3144 < #line 365 "conf_parser.y"
3145 <    {
3146 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3147 <                }
2887 > #line 2888 "conf_parser.c" /* yacc.c:1646  */
2888      break;
2889  
2890    case 30:
2891 < /* Line 1787 of yacc.c  */
2892 < #line 369 "conf_parser.y"
2893 <    {
3154 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3155 <                }
2891 > #line 410 "conf_parser.y" /* yacc.c:1646  */
2892 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2893 > #line 2894 "conf_parser.c" /* yacc.c:1646  */
2894      break;
2895  
2896    case 31:
2897 < /* Line 1787 of yacc.c  */
2898 < #line 373 "conf_parser.y"
2899 <    {
3162 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3163 <                }
2897 > #line 411 "conf_parser.y" /* yacc.c:1646  */
2898 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2899 > #line 2900 "conf_parser.c" /* yacc.c:1646  */
2900      break;
2901  
2902    case 32:
2903 < /* Line 1787 of yacc.c  */
2904 < #line 377 "conf_parser.y"
2905 <    {
3170 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3171 <                }
2903 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2904 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2905 > #line 2906 "conf_parser.c" /* yacc.c:1646  */
2906      break;
2907  
2908    case 33:
2909 < /* Line 1787 of yacc.c  */
2910 < #line 381 "conf_parser.y"
2911 <    {
3178 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3179 <                }
2909 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2910 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2911 > #line 2912 "conf_parser.c" /* yacc.c:1646  */
2912      break;
2913  
2914    case 34:
2915 < /* Line 1787 of yacc.c  */
2916 < #line 386 "conf_parser.y"
2917 <    { (yyval.number) = 0; }
2915 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2916 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2917 > #line 2918 "conf_parser.c" /* yacc.c:1646  */
2918 >    break;
2919 >
2920 >  case 35:
2921 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2922 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2923 > #line 2924 "conf_parser.c" /* yacc.c:1646  */
2924      break;
2925  
2926    case 36:
2927 < /* Line 1787 of yacc.c  */
2928 < #line 387 "conf_parser.y"
2929 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2927 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2928 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2929 > #line 2930 "conf_parser.c" /* yacc.c:1646  */
2930      break;
2931  
2932    case 37:
2933 < /* Line 1787 of yacc.c  */
2934 < #line 388 "conf_parser.y"
2935 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2933 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2934 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2935 > #line 2936 "conf_parser.c" /* yacc.c:1646  */
2936      break;
2937  
2938    case 38:
2939 < /* Line 1787 of yacc.c  */
2940 < #line 389 "conf_parser.y"
2941 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2939 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2940 >    { (yyval.number) = 0; }
2941 > #line 2942 "conf_parser.c" /* yacc.c:1646  */
2942 >    break;
2943 >
2944 >  case 40:
2945 > #line 421 "conf_parser.y" /* yacc.c:1646  */
2946 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2947 > #line 2948 "conf_parser.c" /* yacc.c:1646  */
2948 >    break;
2949 >
2950 >  case 41:
2951 > #line 422 "conf_parser.y" /* yacc.c:1646  */
2952 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2953 > #line 2954 "conf_parser.c" /* yacc.c:1646  */
2954      break;
2955  
2956 <  case 39:
2957 < /* Line 1787 of yacc.c  */
2958 < #line 390 "conf_parser.y"
2959 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2956 >  case 42:
2957 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2958 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2959 > #line 2960 "conf_parser.c" /* yacc.c:1646  */
2960      break;
2961  
2962 <  case 46:
2963 < /* Line 1787 of yacc.c  */
2964 < #line 404 "conf_parser.y"
2962 >  case 43:
2963 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2964 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2965 > #line 2966 "conf_parser.c" /* yacc.c:1646  */
2966 >    break;
2967 >
2968 >  case 50:
2969 > #line 437 "conf_parser.y" /* yacc.c:1646  */
2970      {
2971    if (conf_parser_ctx.pass == 2)
2972      add_conf_module(libio_basename(yylval.string));
2973   }
2974 + #line 2975 "conf_parser.c" /* yacc.c:1646  */
2975      break;
2976  
2977 <  case 47:
2978 < /* Line 1787 of yacc.c  */
3223 < #line 410 "conf_parser.y"
2977 >  case 51:
2978 > #line 443 "conf_parser.y" /* yacc.c:1646  */
2979      {
2980    if (conf_parser_ctx.pass == 2)
2981      mod_add_path(yylval.string);
2982   }
2983 + #line 2984 "conf_parser.c" /* yacc.c:1646  */
2984      break;
2985  
2986 <  case 71:
2987 < /* Line 1787 of yacc.c  */
2988 < #line 435 "conf_parser.y"
2989 <    {
2990 < #ifdef HAVE_LIBCRYPTO
2991 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
2992 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
2993 < #endif
2986 >  case 76:
2987 > #line 479 "conf_parser.y" /* yacc.c:1646  */
2988 >    {
2989 >  if (conf_parser_ctx.pass == 2)
2990 >  {
2991 >    xfree(ConfigServerInfo.ssl_certificate_file);
2992 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2993 >  }
2994   }
2995 + #line 2996 "conf_parser.c" /* yacc.c:1646  */
2996      break;
2997  
2998 <  case 72:
2999 < /* Line 1787 of yacc.c  */
3000 < #line 441 "conf_parser.y"
3001 <    {
3002 < #ifdef HAVE_LIBCRYPTO
3003 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3004 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3005 < #endif
2998 >  case 77:
2999 > #line 488 "conf_parser.y" /* yacc.c:1646  */
3000 >    {
3001 >  if (conf_parser_ctx.pass == 2)
3002 >  {
3003 >    xfree(ConfigServerInfo.rsa_private_key_file);
3004 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3005 >  }
3006   }
3007 + #line 3008 "conf_parser.c" /* yacc.c:1646  */
3008      break;
3009  
3010 <  case 75:
3011 < /* Line 1787 of yacc.c  */
3012 < #line 450 "conf_parser.y"
3013 <    {
3014 < #ifdef HAVE_LIBCRYPTO
3015 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3016 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3017 < #endif
3010 >  case 78:
3011 > #line 497 "conf_parser.y" /* yacc.c:1646  */
3012 >    {
3013 >  if (conf_parser_ctx.pass == 2)
3014 >  {
3015 >    xfree(ConfigServerInfo.ssl_dh_param_file);
3016 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
3017 >  }
3018   }
3019 + #line 3020 "conf_parser.c" /* yacc.c:1646  */
3020      break;
3021  
3022 <  case 76:
3023 < /* Line 1787 of yacc.c  */
3265 < #line 456 "conf_parser.y"
3022 >  case 79:
3023 > #line 506 "conf_parser.y" /* yacc.c:1646  */
3024      {
3025 < #ifdef HAVE_LIBCRYPTO
3026 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3027 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3028 < #endif
3025 >  if (conf_parser_ctx.pass == 2)
3026 >  {
3027 >    xfree(ConfigServerInfo.ssl_cipher_list);
3028 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3029 >  }
3030   }
3031 + #line 3032 "conf_parser.c" /* yacc.c:1646  */
3032      break;
3033  
3034 <  case 77:
3035 < /* Line 1787 of yacc.c  */
3276 < #line 464 "conf_parser.y"
3034 >  case 80:
3035 > #line 515 "conf_parser.y" /* yacc.c:1646  */
3036      {
3037 < #ifdef HAVE_LIBCRYPTO
3279 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3037 >  if (conf_parser_ctx.pass == 2)
3038    {
3039 <    if (!ServerInfo.rsa_private_key_file)
3040 <    {
3283 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3284 <      break;
3285 <    }
3286 <
3287 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3288 <                                     SSL_FILETYPE_PEM) <= 0 ||
3289 <        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3290 <                                     SSL_FILETYPE_PEM) <= 0)
3291 <    {
3292 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3293 <      break;
3294 <    }
3295 <
3296 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3297 <                                    SSL_FILETYPE_PEM) <= 0 ||
3298 <        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3299 <                                    SSL_FILETYPE_PEM) <= 0)
3300 <    {
3301 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3302 <      break;
3303 <    }
3304 <
3305 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3306 <        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3307 <    {
3308 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3309 <      break;
3310 <    }
3039 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3040 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3041    }
3312 #endif
3042   }
3043 + #line 3044 "conf_parser.c" /* yacc.c:1646  */
3044      break;
3045  
3046 <  case 78:
3047 < /* Line 1787 of yacc.c  */
3318 < #line 503 "conf_parser.y"
3046 >  case 81:
3047 > #line 524 "conf_parser.y" /* yacc.c:1646  */
3048      {
3049 < #ifdef HAVE_LIBCRYPTO
3321 <  if (conf_parser_ctx.pass == 1)
3049 >  if (conf_parser_ctx.pass == 2)
3050    {
3051 <    BIO *file;
3052 <
3053 <    if (ServerInfo.rsa_private_key)
3054 <    {
3055 <      RSA_free(ServerInfo.rsa_private_key);
3056 <      ServerInfo.rsa_private_key = NULL;
3329 <    }
3051 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3052 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3053 >  }
3054 > }
3055 > #line 3056 "conf_parser.c" /* yacc.c:1646  */
3056 >    break;
3057  
3058 <    if (ServerInfo.rsa_private_key_file)
3058 >  case 82:
3059 > #line 533 "conf_parser.y" /* yacc.c:1646  */
3060      {
3061 <      MyFree(ServerInfo.rsa_private_key_file);
3062 <      ServerInfo.rsa_private_key_file = NULL;
3063 <    }
3064 <
3065 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3061 >  if (conf_parser_ctx.pass == 1)
3062 >    ConfigServerInfo.libgeoip_database_options = 0;
3063 > }
3064 > #line 3065 "conf_parser.c" /* yacc.c:1646  */
3065 >    break;
3066  
3067 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3067 >  case 86:
3068 > #line 540 "conf_parser.y" /* yacc.c:1646  */
3069      {
3070 <      yyerror("File open failed, ignoring");
3071 <      break;
3072 <    }
3073 <
3074 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3075 <
3076 <    BIO_set_close(file, BIO_CLOSE);
3348 <    BIO_free(file);
3070 > #ifdef HAVE_LIBGEOIP
3071 >  if (conf_parser_ctx.pass == 1)
3072 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_STANDARD;
3073 > #endif
3074 > }
3075 > #line 3076 "conf_parser.c" /* yacc.c:1646  */
3076 >    break;
3077  
3078 <    if (ServerInfo.rsa_private_key == NULL)
3078 >  case 87:
3079 > #line 546 "conf_parser.y" /* yacc.c:1646  */
3080      {
3081 <      yyerror("Couldn't extract key, ignoring");
3082 <      break;
3083 <    }
3081 > #ifdef HAVE_LIBGEOIP
3082 >  if (conf_parser_ctx.pass == 1)
3083 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MEMORY_CACHE;
3084 > #endif
3085 > }
3086 > #line 3087 "conf_parser.c" /* yacc.c:1646  */
3087 >    break;
3088  
3089 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3089 >  case 88:
3090 > #line 552 "conf_parser.y" /* yacc.c:1646  */
3091      {
3092 <      RSA_free(ServerInfo.rsa_private_key);
3093 <      ServerInfo.rsa_private_key = NULL;
3094 <
3095 <      yyerror("Invalid key, ignoring");
3096 <      break;
3097 <    }
3092 > #ifdef HAVE_LIBGEOIP
3093 >  if (conf_parser_ctx.pass == 1)
3094 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MMAP_CACHE;
3095 > #endif
3096 > }
3097 > #line 3098 "conf_parser.c" /* yacc.c:1646  */
3098 >    break;
3099  
3100 <    /* require 2048 bit (256 byte) key */
3101 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3100 >  case 89:
3101 > #line 558 "conf_parser.y" /* yacc.c:1646  */
3102      {
3103 <      RSA_free(ServerInfo.rsa_private_key);
3104 <      ServerInfo.rsa_private_key = NULL;
3105 <
3371 <      yyerror("Not a 2048 bit key, ignoring");
3372 <    }
3373 <  }
3103 > #ifdef HAVE_LIBGEOIP
3104 >  if (conf_parser_ctx.pass == 1)
3105 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_CHECK_CACHE;
3106   #endif
3107   }
3108 + #line 3109 "conf_parser.c" /* yacc.c:1646  */
3109      break;
3110  
3111 <  case 79:
3112 < /* Line 1787 of yacc.c  */
3380 < #line 562 "conf_parser.y"
3111 >  case 90:
3112 > #line 566 "conf_parser.y" /* yacc.c:1646  */
3113      {
3114 < /* TBD - XXX: error reporting */
3383 < #ifdef HAVE_LIBCRYPTO
3384 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3114 >  if (conf_parser_ctx.pass == 2)
3115    {
3116 <    BIO *file = BIO_new_file(yylval.string, "r");
3117 <
3388 <    if (file)
3389 <    {
3390 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3116 >    xfree(ConfigServerInfo.libgeoip_ipv4_database_file);
3117 >    ConfigServerInfo.libgeoip_ipv4_database_file = xstrdup(yylval.string);
3118  
3119 <      BIO_free(file);
3120 <
3121 <      if (dh)
3122 <      {
3396 <        if (DH_size(dh) < 128)
3397 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3398 <        else
3399 <          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3400 <
3401 <        DH_free(dh);
3402 <      }
3403 <    }
3404 <  }
3119 > #ifdef HAVE_LIBGEOIP
3120 >    if (GeoIPv4_ctx)
3121 >      GeoIP_delete(GeoIPv4_ctx);
3122 >    GeoIPv4_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3123   #endif
3124 +  }
3125   }
3126 + #line 3127 "conf_parser.c" /* yacc.c:1646  */
3127      break;
3128  
3129 <  case 80:
3130 < /* Line 1787 of yacc.c  */
3411 < #line 590 "conf_parser.y"
3129 >  case 91:
3130 > #line 581 "conf_parser.y" /* yacc.c:1646  */
3131      {
3132 < #ifdef HAVE_LIBCRYPTO
3133 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3134 <    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3132 >  if (conf_parser_ctx.pass == 2)
3133 >  {
3134 >    xfree(ConfigServerInfo.libgeoip_ipv6_database_file);
3135 >    ConfigServerInfo.libgeoip_ipv6_database_file = xstrdup(yylval.string);
3136 >
3137 > #ifdef HAVE_LIBGEOIP
3138 >    if (GeoIPv6_ctx)
3139 >      GeoIP_delete(GeoIPv6_ctx);
3140 >    GeoIPv6_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3141   #endif
3142 +  }
3143   }
3144 + #line 3145 "conf_parser.c" /* yacc.c:1646  */
3145      break;
3146  
3147 <  case 81:
3148 < /* Line 1787 of yacc.c  */
3422 < #line 598 "conf_parser.y"
3147 >  case 92:
3148 > #line 596 "conf_parser.y" /* yacc.c:1646  */
3149      {
3150 <  /* this isn't rehashable */
3151 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3150 >  /* This isn't rehashable */
3151 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3152    {
3153      if (valid_servname(yylval.string))
3154 <      DupString(ServerInfo.name, yylval.string);
3154 >      ConfigServerInfo.name = xstrdup(yylval.string);
3155      else
3156      {
3157 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3158 <      exit(0);
3157 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3158 >      exit(EXIT_FAILURE);
3159      }
3160    }
3161   }
3162 + #line 3163 "conf_parser.c" /* yacc.c:1646  */
3163      break;
3164  
3165 <  case 82:
3166 < /* Line 1787 of yacc.c  */
3440 < #line 613 "conf_parser.y"
3165 >  case 93:
3166 > #line 611 "conf_parser.y" /* yacc.c:1646  */
3167      {
3168 <  /* this isn't rehashable */
3169 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3168 >  /* This isn't rehashable */
3169 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3170    {
3171      if (valid_sid(yylval.string))
3172 <      DupString(ServerInfo.sid, yylval.string);
3172 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3173      else
3174      {
3175 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3176 <      exit(0);
3175 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3176 >      exit(EXIT_FAILURE);
3177      }
3178    }
3179   }
3180 + #line 3181 "conf_parser.c" /* yacc.c:1646  */
3181      break;
3182  
3183 <  case 83:
3184 < /* Line 1787 of yacc.c  */
3458 < #line 628 "conf_parser.y"
3183 >  case 94:
3184 > #line 626 "conf_parser.y" /* yacc.c:1646  */
3185      {
3186    if (conf_parser_ctx.pass == 2)
3187    {
3188 <    MyFree(ServerInfo.description);
3189 <    DupString(ServerInfo.description,yylval.string);
3188 >    xfree(ConfigServerInfo.description);
3189 >    ConfigServerInfo.description = xstrdup(yylval.string);
3190 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3191    }
3192   }
3193 + #line 3194 "conf_parser.c" /* yacc.c:1646  */
3194      break;
3195  
3196 <  case 84:
3197 < /* Line 1787 of yacc.c  */
3470 < #line 637 "conf_parser.y"
3196 >  case 95:
3197 > #line 636 "conf_parser.y" /* yacc.c:1646  */
3198      {
3199    if (conf_parser_ctx.pass == 2)
3200    {
3201      char *p;
3202  
3203 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3204 <      p = '\0';
3203 >    if ((p = strchr(yylval.string, ' ')))
3204 >      *p = '\0';
3205  
3206 <    MyFree(ServerInfo.network_name);
3207 <    DupString(ServerInfo.network_name, yylval.string);
3206 >    xfree(ConfigServerInfo.network_name);
3207 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3208    }
3209   }
3210 + #line 3211 "conf_parser.c" /* yacc.c:1646  */
3211      break;
3212  
3213 <  case 85:
3214 < /* Line 1787 of yacc.c  */
3487 < #line 651 "conf_parser.y"
3213 >  case 96:
3214 > #line 650 "conf_parser.y" /* yacc.c:1646  */
3215      {
3216 <  if (conf_parser_ctx.pass == 2)
3217 <  {
3218 <    MyFree(ServerInfo.network_desc);
3219 <    DupString(ServerInfo.network_desc, yylval.string);
3220 <  }
3216 >  if (conf_parser_ctx.pass != 2)
3217 >    break;
3218 >
3219 >  xfree(ConfigServerInfo.network_desc);
3220 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3221   }
3222 + #line 3223 "conf_parser.c" /* yacc.c:1646  */
3223      break;
3224  
3225 <  case 86:
3226 < /* Line 1787 of yacc.c  */
3499 < #line 660 "conf_parser.y"
3225 >  case 97:
3226 > #line 659 "conf_parser.y" /* yacc.c:1646  */
3227      {
3228    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3229    {
# Line 3512 | Line 3239 | yyreduce:
3239        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3240      else
3241      {
3242 <      assert(res != NULL);
3242 >      assert(res);
3243  
3244 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3245 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3246 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3244 >      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3245 >      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3246 >      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3247        freeaddrinfo(res);
3248  
3249 <      ServerInfo.specific_ipv4_vhost = 1;
3249 >      ConfigServerInfo.specific_ipv4_vhost = 1;
3250      }
3251    }
3252   }
3253 + #line 3254 "conf_parser.c" /* yacc.c:1646  */
3254      break;
3255  
3256 <  case 87:
3257 < /* Line 1787 of yacc.c  */
3530 < #line 688 "conf_parser.y"
3256 >  case 98:
3257 > #line 687 "conf_parser.y" /* yacc.c:1646  */
3258      {
3532 #ifdef IPV6
3259    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3260    {
3261      struct addrinfo hints, *res;
# Line 3544 | Line 3270 | yyreduce:
3270        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3271      else
3272      {
3273 <      assert(res != NULL);
3273 >      assert(res);
3274  
3275 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3276 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3277 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3275 >      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3276 >      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3277 >      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3278        freeaddrinfo(res);
3279  
3280 <      ServerInfo.specific_ipv6_vhost = 1;
3280 >      ConfigServerInfo.specific_ipv6_vhost = 1;
3281      }
3282    }
3557 #endif
3283   }
3284 + #line 3285 "conf_parser.c" /* yacc.c:1646  */
3285      break;
3286  
3287 <  case 88:
3288 < /* Line 1787 of yacc.c  */
3563 < #line 718 "conf_parser.y"
3287 >  case 99:
3288 > #line 715 "conf_parser.y" /* yacc.c:1646  */
3289      {
3290 <  if (conf_parser_ctx.pass == 2)
3290 >  if (conf_parser_ctx.pass != 2)
3291 >    break;
3292 >
3293 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3294 >  {
3295 >    char buf[IRCD_BUFSIZE] = "";
3296 >
3297 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3298 >    conf_error_report(buf);
3299 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3300 >  }
3301 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3302    {
3303 <    recalc_fdlimit(NULL);
3303 >    char buf[IRCD_BUFSIZE] = "";
3304 >
3305 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3306 >    conf_error_report(buf);
3307 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3308 >  }
3309 >  else
3310 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3311 > }
3312 > #line 3313 "conf_parser.c" /* yacc.c:1646  */
3313 >    break;
3314  
3315 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3315 >  case 100:
3316 > #line 740 "conf_parser.y" /* yacc.c:1646  */
3317      {
3318 <      char buf[IRCD_BUFSIZE];
3319 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3320 <      yyerror(buf);
3321 <    }
3322 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3318 >  if (conf_parser_ctx.pass != 2)
3319 >    break;
3320 >
3321 >  if ((yyvsp[-1].number) < 9)
3322 >  {
3323 >    conf_error_report("max_nick_length too low, setting to 9");
3324 >    ConfigServerInfo.max_nick_length = 9;
3325 >  }
3326 >  else if ((yyvsp[-1].number) > NICKLEN)
3327 >  {
3328 >    char buf[IRCD_BUFSIZE] = "";
3329 >
3330 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3331 >    conf_error_report(buf);
3332 >    ConfigServerInfo.max_nick_length = NICKLEN;
3333 >  }
3334 >  else
3335 >    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3336 > }
3337 > #line 3338 "conf_parser.c" /* yacc.c:1646  */
3338 >    break;
3339 >
3340 >  case 101:
3341 > #line 762 "conf_parser.y" /* yacc.c:1646  */
3342      {
3343 <      char buf[IRCD_BUFSIZE];
3344 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3345 <      yyerror(buf);
3346 <    }
3347 <    else
3348 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3343 >  if (conf_parser_ctx.pass != 2)
3344 >    break;
3345 >
3346 >  if ((yyvsp[-1].number) < 80)
3347 >  {
3348 >    conf_error_report("max_topic_length too low, setting to 80");
3349 >    ConfigServerInfo.max_topic_length = 80;
3350 >  }
3351 >  else if ((yyvsp[-1].number) > TOPICLEN)
3352 >  {
3353 >    char buf[IRCD_BUFSIZE] = "";
3354 >
3355 >    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3356 >    conf_error_report(buf);
3357 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3358    }
3359 +  else
3360 +    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3361   }
3362 + #line 3363 "conf_parser.c" /* yacc.c:1646  */
3363      break;
3364  
3365 <  case 89:
3366 < /* Line 1787 of yacc.c  */
3589 < #line 741 "conf_parser.y"
3365 >  case 102:
3366 > #line 784 "conf_parser.y" /* yacc.c:1646  */
3367      {
3368    if (conf_parser_ctx.pass == 2)
3369 <    ServerInfo.hub = yylval.number;
3369 >    ConfigServerInfo.hub = yylval.number;
3370   }
3371 + #line 3372 "conf_parser.c" /* yacc.c:1646  */
3372      break;
3373  
3374 <  case 97:
3375 < /* Line 1787 of yacc.c  */
3598 < #line 756 "conf_parser.y"
3374 >  case 110:
3375 > #line 802 "conf_parser.y" /* yacc.c:1646  */
3376      {
3377 <  if (conf_parser_ctx.pass == 2)
3378 <  {
3379 <    MyFree(AdminInfo.name);
3380 <    DupString(AdminInfo.name, yylval.string);
3381 <  }
3377 >  if (conf_parser_ctx.pass != 2)
3378 >    break;
3379 >
3380 >  xfree(ConfigAdminInfo.name);
3381 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3382   }
3383 + #line 3384 "conf_parser.c" /* yacc.c:1646  */
3384      break;
3385  
3386 <  case 98:
3387 < /* Line 1787 of yacc.c  */
3388 < #line 765 "conf_parser.y"
3386 >  case 111:
3387 > #line 811 "conf_parser.y" /* yacc.c:1646  */
3388 >    {
3389 >  if (conf_parser_ctx.pass != 2)
3390 >    break;
3391 >
3392 >  xfree(ConfigAdminInfo.email);
3393 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3394 > }
3395 > #line 3396 "conf_parser.c" /* yacc.c:1646  */
3396 >    break;
3397 >
3398 >  case 112:
3399 > #line 820 "conf_parser.y" /* yacc.c:1646  */
3400 >    {
3401 >  if (conf_parser_ctx.pass != 2)
3402 >    break;
3403 >
3404 >  xfree(ConfigAdminInfo.description);
3405 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3406 > }
3407 > #line 3408 "conf_parser.c" /* yacc.c:1646  */
3408 >    break;
3409 >
3410 >  case 113:
3411 > #line 833 "conf_parser.y" /* yacc.c:1646  */
3412      {
3413    if (conf_parser_ctx.pass == 2)
3414 <  {
3614 <    MyFree(AdminInfo.email);
3615 <    DupString(AdminInfo.email, yylval.string);
3616 <  }
3414 >    reset_block_state();
3415   }
3416 + #line 3417 "conf_parser.c" /* yacc.c:1646  */
3417      break;
3418  
3419 <  case 99:
3420 < /* Line 1787 of yacc.c  */
3421 < #line 774 "conf_parser.y"
3419 >  case 114:
3420 > #line 837 "conf_parser.y" /* yacc.c:1646  */
3421 >    {
3422 >  dlink_node *node = NULL;
3423 >
3424 >  if (conf_parser_ctx.pass != 2)
3425 >    break;
3426 >
3427 >  if (!block_state.file.buf[0])
3428 >    break;
3429 >
3430 >  DLINK_FOREACH(node, block_state.mask.list.head)
3431 >    motd_add(node->data, block_state.file.buf);
3432 > }
3433 > #line 3434 "conf_parser.c" /* yacc.c:1646  */
3434 >    break;
3435 >
3436 >  case 120:
3437 > #line 854 "conf_parser.y" /* yacc.c:1646  */
3438      {
3439    if (conf_parser_ctx.pass == 2)
3440 <  {
3626 <    MyFree(AdminInfo.description);
3627 <    DupString(AdminInfo.description, yylval.string);
3628 <  }
3440 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3441   }
3442 + #line 3443 "conf_parser.c" /* yacc.c:1646  */
3443      break;
3444  
3445 <  case 106:
3446 < /* Line 1787 of yacc.c  */
3634 < #line 792 "conf_parser.y"
3445 >  case 121:
3446 > #line 860 "conf_parser.y" /* yacc.c:1646  */
3447      {
3448    if (conf_parser_ctx.pass == 2)
3449 <    ConfigLoggingEntry.use_logging = yylval.number;
3449 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3450   }
3451 + #line 3452 "conf_parser.c" /* yacc.c:1646  */
3452      break;
3453  
3454 <  case 107:
3455 < /* Line 1787 of yacc.c  */
3643 < #line 798 "conf_parser.y"
3454 >  case 122:
3455 > #line 870 "conf_parser.y" /* yacc.c:1646  */
3456      {
3457 <  lfile[0] = '\0';
3458 <  ltype = 0;
3647 <  lsize = 0;
3457 >  if (conf_parser_ctx.pass == 2)
3458 >    reset_block_state();
3459   }
3460 + #line 3461 "conf_parser.c" /* yacc.c:1646  */
3461      break;
3462  
3463 <  case 108:
3464 < /* Line 1787 of yacc.c  */
3653 < #line 803 "conf_parser.y"
3463 >  case 123:
3464 > #line 874 "conf_parser.y" /* yacc.c:1646  */
3465      {
3466 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3467 <    log_add_file(ltype, lsize, lfile);
3466 >  if (conf_parser_ctx.pass != 2)
3467 >    break;
3468 >
3469 >  if (!block_state.command.buf[0] ||
3470 >      !block_state.name.buf[0] ||
3471 >      !block_state.nick.buf[0] ||
3472 >      !block_state.host.buf[0])
3473 >    break;
3474 >
3475 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3476 >                  block_state.prepend.buf, block_state.command.buf);
3477   }
3478 + #line 3479 "conf_parser.c" /* yacc.c:1646  */
3479      break;
3480  
3481 <  case 115:
3482 < /* Line 1787 of yacc.c  */
3662 < #line 815 "conf_parser.y"
3481 >  case 131:
3482 > #line 892 "conf_parser.y" /* yacc.c:1646  */
3483      {
3484 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3484 >  if (conf_parser_ctx.pass == 2)
3485 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3486   }
3487 + #line 3488 "conf_parser.c" /* yacc.c:1646  */
3488      break;
3489  
3490 <  case 116:
3491 < /* Line 1787 of yacc.c  */
3670 < #line 820 "conf_parser.y"
3490 >  case 132:
3491 > #line 898 "conf_parser.y" /* yacc.c:1646  */
3492      {
3493 <  lsize = (yyvsp[(3) - (4)].number);
3493 >  if (conf_parser_ctx.pass == 2)
3494 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3495   }
3496 + #line 3497 "conf_parser.c" /* yacc.c:1646  */
3497      break;
3498  
3499 <  case 117:
3500 < /* Line 1787 of yacc.c  */
3678 < #line 823 "conf_parser.y"
3499 >  case 133:
3500 > #line 904 "conf_parser.y" /* yacc.c:1646  */
3501      {
3502 <  lsize = 0;
3502 >  if (conf_parser_ctx.pass == 2)
3503 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3504   }
3505 + #line 3506 "conf_parser.c" /* yacc.c:1646  */
3506      break;
3507  
3508 <  case 118:
3509 < /* Line 1787 of yacc.c  */
3686 < #line 828 "conf_parser.y"
3508 >  case 134:
3509 > #line 910 "conf_parser.y" /* yacc.c:1646  */
3510      {
3511    if (conf_parser_ctx.pass == 2)
3512 <    ltype = 0;
3512 >  {
3513 >    struct split_nuh_item nuh;
3514 >
3515 >    nuh.nuhmask  = yylval.string;
3516 >    nuh.nickptr  = NULL;
3517 >    nuh.userptr  = block_state.nick.buf;
3518 >    nuh.hostptr  = block_state.host.buf;
3519 >    nuh.nicksize = 0;
3520 >    nuh.usersize = sizeof(block_state.nick.buf);
3521 >    nuh.hostsize = sizeof(block_state.host.buf);
3522 >
3523 >    split_nuh(&nuh);
3524 >  }
3525   }
3526 + #line 3527 "conf_parser.c" /* yacc.c:1646  */
3527      break;
3528  
3529 <  case 122:
3530 < /* Line 1787 of yacc.c  */
3695 < #line 835 "conf_parser.y"
3529 >  case 141:
3530 > #line 938 "conf_parser.y" /* yacc.c:1646  */
3531      {
3532    if (conf_parser_ctx.pass == 2)
3533 <    ltype = LOG_TYPE_USER;
3533 >    ConfigLog.use_logging = yylval.number;
3534   }
3535 + #line 3536 "conf_parser.c" /* yacc.c:1646  */
3536      break;
3537  
3538 <  case 123:
3539 < /* Line 1787 of yacc.c  */
3704 < #line 839 "conf_parser.y"
3538 >  case 142:
3539 > #line 944 "conf_parser.y" /* yacc.c:1646  */
3540      {
3541    if (conf_parser_ctx.pass == 2)
3542 <    ltype = LOG_TYPE_OPER;
3542 >    reset_block_state();
3543 > }
3544 > #line 3545 "conf_parser.c" /* yacc.c:1646  */
3545 >    break;
3546 >
3547 >  case 143:
3548 > #line 948 "conf_parser.y" /* yacc.c:1646  */
3549 >    {
3550 >  if (conf_parser_ctx.pass != 2)
3551 >    break;
3552 >
3553 >  if (block_state.type.value && block_state.file.buf[0])
3554 >    log_set_file(block_state.type.value, block_state.size.value,
3555 >                 block_state.file.buf);
3556 > }
3557 > #line 3558 "conf_parser.c" /* yacc.c:1646  */
3558 >    break;
3559 >
3560 >  case 150:
3561 > #line 964 "conf_parser.y" /* yacc.c:1646  */
3562 >    {
3563 >  if (conf_parser_ctx.pass != 2)
3564 >    break;
3565 >
3566 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3567 > }
3568 > #line 3569 "conf_parser.c" /* yacc.c:1646  */
3569 >    break;
3570 >
3571 >  case 151:
3572 > #line 972 "conf_parser.y" /* yacc.c:1646  */
3573 >    {
3574 >  block_state.size.value = (yyvsp[-1].number);
3575 > }
3576 > #line 3577 "conf_parser.c" /* yacc.c:1646  */
3577 >    break;
3578 >
3579 >  case 152:
3580 > #line 975 "conf_parser.y" /* yacc.c:1646  */
3581 >    {
3582 >  block_state.size.value = 0;
3583   }
3584 + #line 3585 "conf_parser.c" /* yacc.c:1646  */
3585      break;
3586  
3587 <  case 124:
3588 < /* Line 1787 of yacc.c  */
3713 < #line 843 "conf_parser.y"
3587 >  case 153:
3588 > #line 980 "conf_parser.y" /* yacc.c:1646  */
3589      {
3590    if (conf_parser_ctx.pass == 2)
3591 <    ltype = LOG_TYPE_GLINE;
3591 >    block_state.type.value = 0;
3592   }
3593 + #line 3594 "conf_parser.c" /* yacc.c:1646  */
3594      break;
3595  
3596 <  case 125:
3597 < /* Line 1787 of yacc.c  */
3722 < #line 847 "conf_parser.y"
3596 >  case 157:
3597 > #line 987 "conf_parser.y" /* yacc.c:1646  */
3598      {
3599    if (conf_parser_ctx.pass == 2)
3600 <    ltype = LOG_TYPE_DLINE;
3600 >    block_state.type.value = LOG_TYPE_USER;
3601   }
3602 + #line 3603 "conf_parser.c" /* yacc.c:1646  */
3603      break;
3604  
3605 <  case 126:
3606 < /* Line 1787 of yacc.c  */
3731 < #line 851 "conf_parser.y"
3605 >  case 158:
3606 > #line 991 "conf_parser.y" /* yacc.c:1646  */
3607      {
3608    if (conf_parser_ctx.pass == 2)
3609 <    ltype = LOG_TYPE_KLINE;
3609 >    block_state.type.value = LOG_TYPE_OPER;
3610   }
3611 + #line 3612 "conf_parser.c" /* yacc.c:1646  */
3612      break;
3613  
3614 <  case 127:
3615 < /* Line 1787 of yacc.c  */
3740 < #line 855 "conf_parser.y"
3614 >  case 159:
3615 > #line 995 "conf_parser.y" /* yacc.c:1646  */
3616      {
3617    if (conf_parser_ctx.pass == 2)
3618 <    ltype = LOG_TYPE_KILL;
3618 >    block_state.type.value = LOG_TYPE_XLINE;
3619   }
3620 + #line 3621 "conf_parser.c" /* yacc.c:1646  */
3621      break;
3622  
3623 <  case 128:
3624 < /* Line 1787 of yacc.c  */
3749 < #line 859 "conf_parser.y"
3623 >  case 160:
3624 > #line 999 "conf_parser.y" /* yacc.c:1646  */
3625      {
3626    if (conf_parser_ctx.pass == 2)
3627 <    ltype = LOG_TYPE_DEBUG;
3627 >    block_state.type.value = LOG_TYPE_RESV;
3628   }
3629 + #line 3630 "conf_parser.c" /* yacc.c:1646  */
3630      break;
3631  
3632 <  case 129:
3633 < /* Line 1787 of yacc.c  */
3758 < #line 869 "conf_parser.y"
3632 >  case 161:
3633 > #line 1003 "conf_parser.y" /* yacc.c:1646  */
3634      {
3635    if (conf_parser_ctx.pass == 2)
3636 <  {
3762 <    yy_conf = make_conf_item(OPER_TYPE);
3763 <    yy_aconf = map_to_conf(yy_conf);
3764 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3765 <  }
3766 <  else
3767 <  {
3768 <    MyFree(class_name);
3769 <    class_name = NULL;
3770 <  }
3636 >    block_state.type.value = LOG_TYPE_DLINE;
3637   }
3638 + #line 3639 "conf_parser.c" /* yacc.c:1646  */
3639      break;
3640  
3641 <  case 130:
3642 < /* Line 1787 of yacc.c  */
3776 < #line 882 "conf_parser.y"
3641 >  case 162:
3642 > #line 1007 "conf_parser.y" /* yacc.c:1646  */
3643      {
3644    if (conf_parser_ctx.pass == 2)
3645 <  {
3646 <    struct CollectItem *yy_tmp;
3647 <    dlink_node *ptr;
3648 <    dlink_node *next_ptr;
3645 >    block_state.type.value = LOG_TYPE_KLINE;
3646 > }
3647 > #line 3648 "conf_parser.c" /* yacc.c:1646  */
3648 >    break;
3649  
3650 <    conf_add_class_to_conf(yy_conf, class_name);
3650 >  case 163:
3651 > #line 1011 "conf_parser.y" /* yacc.c:1646  */
3652 >    {
3653 >  if (conf_parser_ctx.pass == 2)
3654 >    block_state.type.value = LOG_TYPE_KILL;
3655 > }
3656 > #line 3657 "conf_parser.c" /* yacc.c:1646  */
3657 >    break;
3658  
3659 <    /* Now, make sure there is a copy of the "base" given oper
3660 <     * block in each of the collected copies
3661 <     */
3659 >  case 164:
3660 > #line 1015 "conf_parser.y" /* yacc.c:1646  */
3661 >    {
3662 >  if (conf_parser_ctx.pass == 2)
3663 >    block_state.type.value = LOG_TYPE_DEBUG;
3664 > }
3665 > #line 3666 "conf_parser.c" /* yacc.c:1646  */
3666 >    break;
3667  
3668 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3668 >  case 165:
3669 > #line 1025 "conf_parser.y" /* yacc.c:1646  */
3670      {
3671 <      struct AccessItem *new_aconf;
3672 <      struct ConfItem *new_conf;
3794 <      yy_tmp = ptr->data;
3671 >  if (conf_parser_ctx.pass != 2)
3672 >    break;
3673  
3674 <      new_conf = make_conf_item(OPER_TYPE);
3675 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3674 >  reset_block_state();
3675 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3676 > }
3677 > #line 3678 "conf_parser.c" /* yacc.c:1646  */
3678 >    break;
3679  
3680 <      new_aconf->flags = yy_aconf->flags;
3680 >  case 166:
3681 > #line 1032 "conf_parser.y" /* yacc.c:1646  */
3682 >    {
3683 >  dlink_node *node = NULL;
3684  
3685 <      if (yy_conf->name != NULL)
3686 <        DupString(new_conf->name, yy_conf->name);
3803 <      if (yy_tmp->user != NULL)
3804 <        DupString(new_aconf->user, yy_tmp->user);
3805 <      else
3806 <        DupString(new_aconf->user, "*");
3807 <      if (yy_tmp->host != NULL)
3808 <        DupString(new_aconf->host, yy_tmp->host);
3809 <      else
3810 <        DupString(new_aconf->host, "*");
3685 >  if (conf_parser_ctx.pass != 2)
3686 >    break;
3687  
3688 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3689 <                                     &new_aconf->bits);
3688 >  if (!block_state.name.buf[0])
3689 >    break;
3690  
3691 <      conf_add_class_to_conf(new_conf, class_name);
3692 <      if (yy_aconf->passwd != NULL)
3817 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3818 <
3819 <      new_aconf->port = yy_aconf->port;
3820 < #ifdef HAVE_LIBCRYPTO
3821 <      if (yy_aconf->rsa_public_key_file != NULL)
3822 <      {
3823 <        BIO *file;
3691 >  if (!block_state.rpass.buf[0])
3692 >    break;
3693  
3694 <        DupString(new_aconf->rsa_public_key_file,
3695 <                  yy_aconf->rsa_public_key_file);
3694 >  DLINK_FOREACH(node, block_state.mask.list.head)
3695 >  {
3696 >    struct MaskItem *conf = NULL;
3697 >    struct split_nuh_item nuh;
3698  
3699 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3700 <        new_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file,
3701 <                                                           NULL, 0, NULL);
3702 <        BIO_set_close(file, BIO_CLOSE);
3703 <        BIO_free(file);
3704 <      }
3705 < #endif
3699 >    nuh.nuhmask  = node->data;
3700 >    nuh.nickptr  = NULL;
3701 >    nuh.userptr  = block_state.user.buf;
3702 >    nuh.hostptr  = block_state.host.buf;
3703 >    nuh.nicksize = 0;
3704 >    nuh.usersize = sizeof(block_state.user.buf);
3705 >    nuh.hostsize = sizeof(block_state.host.buf);
3706 >    split_nuh(&nuh);
3707  
3708 < #ifdef HAVE_LIBCRYPTO
3709 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3710 <          && yy_tmp->host)
3711 < #else
3840 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3841 < #endif
3842 <      {
3843 <        conf_add_class_to_conf(new_conf, class_name);
3844 <        if (yy_tmp->name != NULL)
3845 <          DupString(new_conf->name, yy_tmp->name);
3846 <      }
3708 >    conf         = conf_make(CONF_OPER);
3709 >    conf->name   = xstrdup(block_state.name.buf);
3710 >    conf->user   = xstrdup(block_state.user.buf);
3711 >    conf->host   = xstrdup(block_state.host.buf);
3712  
3713 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3714 <      free_collect_item(yy_tmp);
3715 <    }
3713 >    if (block_state.cert.buf[0])
3714 >      conf->certfp = xstrdup(block_state.cert.buf);
3715 >
3716 >    if (block_state.rpass.buf[0])
3717 >      conf->passwd = xstrdup(block_state.rpass.buf);
3718  
3719 <    yy_conf = NULL;
3720 <    yy_aconf = NULL;
3719 >    if (block_state.whois.buf[0])
3720 >      conf->whois = xstrdup(block_state.whois.buf);
3721  
3722 +    conf->flags = block_state.flags.value;
3723 +    conf->modes = block_state.modes.value;
3724 +    conf->port  = block_state.port.value;
3725 +    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3726  
3727 <    MyFree(class_name);
3857 <    class_name = NULL;
3727 >    conf_add_class_to_conf(conf, block_state.class.buf);
3728    }
3729   }
3730 + #line 3731 "conf_parser.c" /* yacc.c:1646  */
3731      break;
3732  
3733 <  case 142:
3734 < /* Line 1787 of yacc.c  */
3864 < #line 972 "conf_parser.y"
3733 >  case 180:
3734 > #line 1095 "conf_parser.y" /* yacc.c:1646  */
3735      {
3736    if (conf_parser_ctx.pass == 2)
3737 <  {
3868 <    MyFree(yy_conf->name);
3869 <    DupString(yy_conf->name, yylval.string);
3870 <  }
3737 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3738   }
3739 + #line 3740 "conf_parser.c" /* yacc.c:1646  */
3740      break;
3741  
3742 <  case 143:
3743 < /* Line 1787 of yacc.c  */
3876 < #line 981 "conf_parser.y"
3742 >  case 181:
3743 > #line 1101 "conf_parser.y" /* yacc.c:1646  */
3744      {
3745    if (conf_parser_ctx.pass == 2)
3746 <  {
3747 <    struct split_nuh_item nuh;
3748 <
3749 <    nuh.nuhmask  = yylval.string;
3883 <    nuh.nickptr  = NULL;
3884 <    nuh.userptr  = userbuf;
3885 <    nuh.hostptr  = hostbuf;
3746 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3747 > }
3748 > #line 3749 "conf_parser.c" /* yacc.c:1646  */
3749 >    break;
3750  
3751 <    nuh.nicksize = 0;
3752 <    nuh.usersize = sizeof(userbuf);
3753 <    nuh.hostsize = sizeof(hostbuf);
3751 >  case 182:
3752 > #line 1107 "conf_parser.y" /* yacc.c:1646  */
3753 >    {
3754 >  if (conf_parser_ctx.pass == 2)
3755 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3756 > }
3757 > #line 3758 "conf_parser.c" /* yacc.c:1646  */
3758 >    break;
3759  
3760 <    split_nuh(&nuh);
3760 >  case 183:
3761 > #line 1113 "conf_parser.y" /* yacc.c:1646  */
3762 >    {
3763 >  if (conf_parser_ctx.pass == 2)
3764 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3765 > }
3766 > #line 3767 "conf_parser.c" /* yacc.c:1646  */
3767 >    break;
3768  
3769 <    if (yy_aconf->user == NULL)
3769 >  case 184:
3770 > #line 1119 "conf_parser.y" /* yacc.c:1646  */
3771      {
3772 <      DupString(yy_aconf->user, userbuf);
3773 <      DupString(yy_aconf->host, hostbuf);
3772 >  if (conf_parser_ctx.pass != 2)
3773 >    break;
3774  
3775 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3776 <                                    &yy_aconf->bits);
3777 <    }
3778 <    else
3775 >  if (yylval.number)
3776 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3777 >  else
3778 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3779 > }
3780 > #line 3781 "conf_parser.c" /* yacc.c:1646  */
3781 >    break;
3782 >
3783 >  case 185:
3784 > #line 1130 "conf_parser.y" /* yacc.c:1646  */
3785      {
3786 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3786 >  if (conf_parser_ctx.pass == 2)
3787 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3788 > }
3789 > #line 3790 "conf_parser.c" /* yacc.c:1646  */
3790 >    break;
3791  
3792 <      DupString(yy_tmp->user, userbuf);
3793 <      DupString(yy_tmp->host, hostbuf);
3792 >  case 186:
3793 > #line 1136 "conf_parser.y" /* yacc.c:1646  */
3794 >    {
3795 >  if (conf_parser_ctx.pass != 2)
3796 >    break;
3797  
3798 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3799 <    }
3800 <  }
3798 >  if (yylval.number)
3799 >    block_state.flags.value |= CONF_FLAGS_SSL;
3800 >  else
3801 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3802   }
3803 + #line 3804 "conf_parser.c" /* yacc.c:1646  */
3804      break;
3805  
3806 <  case 144:
3807 < /* Line 1787 of yacc.c  */
3916 < #line 1018 "conf_parser.y"
3806 >  case 187:
3807 > #line 1147 "conf_parser.y" /* yacc.c:1646  */
3808      {
3809    if (conf_parser_ctx.pass == 2)
3810 <  {
3920 <    if (yy_aconf->passwd != NULL)
3921 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3922 <
3923 <    MyFree(yy_aconf->passwd);
3924 <    DupString(yy_aconf->passwd, yylval.string);
3925 <  }
3810 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3811   }
3812 + #line 3813 "conf_parser.c" /* yacc.c:1646  */
3813      break;
3814  
3815 <  case 145:
3816 < /* Line 1787 of yacc.c  */
3931 < #line 1030 "conf_parser.y"
3815 >  case 188:
3816 > #line 1153 "conf_parser.y" /* yacc.c:1646  */
3817      {
3818    if (conf_parser_ctx.pass == 2)
3819 <  {
3935 <    if (yylval.number)
3936 <      SetConfEncrypted(yy_aconf);
3937 <    else
3938 <      ClearConfEncrypted(yy_aconf);
3939 <  }
3819 >    block_state.modes.value = 0;
3820   }
3821 + #line 3822 "conf_parser.c" /* yacc.c:1646  */
3822      break;
3823  
3824 <  case 146:
3825 < /* Line 1787 of yacc.c  */
3945 < #line 1041 "conf_parser.y"
3824 >  case 192:
3825 > #line 1160 "conf_parser.y" /* yacc.c:1646  */
3826      {
3947 #ifdef HAVE_LIBCRYPTO
3827    if (conf_parser_ctx.pass == 2)
3828 <  {
3829 <    BIO *file;
3828 >    block_state.modes.value |= UMODE_BOTS;
3829 > }
3830 > #line 3831 "conf_parser.c" /* yacc.c:1646  */
3831 >    break;
3832  
3833 <    if (yy_aconf->rsa_public_key != NULL)
3833 >  case 193:
3834 > #line 1164 "conf_parser.y" /* yacc.c:1646  */
3835      {
3836 <      RSA_free(yy_aconf->rsa_public_key);
3837 <      yy_aconf->rsa_public_key = NULL;
3838 <    }
3836 >  if (conf_parser_ctx.pass == 2)
3837 >    block_state.modes.value |= UMODE_CCONN;
3838 > }
3839 > #line 3840 "conf_parser.c" /* yacc.c:1646  */
3840 >    break;
3841  
3842 <    if (yy_aconf->rsa_public_key_file != NULL)
3842 >  case 194:
3843 > #line 1168 "conf_parser.y" /* yacc.c:1646  */
3844      {
3845 <      MyFree(yy_aconf->rsa_public_key_file);
3846 <      yy_aconf->rsa_public_key_file = NULL;
3847 <    }
3845 >  if (conf_parser_ctx.pass == 2)
3846 >    block_state.modes.value |= UMODE_DEAF;
3847 > }
3848 > #line 3849 "conf_parser.c" /* yacc.c:1646  */
3849 >    break;
3850  
3851 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3852 <    file = BIO_new_file(yylval.string, "r");
3851 >  case 195:
3852 > #line 1172 "conf_parser.y" /* yacc.c:1646  */
3853 >    {
3854 >  if (conf_parser_ctx.pass == 2)
3855 >    block_state.modes.value |= UMODE_DEBUG;
3856 > }
3857 > #line 3858 "conf_parser.c" /* yacc.c:1646  */
3858 >    break;
3859  
3860 <    if (file == NULL)
3860 >  case 196:
3861 > #line 1176 "conf_parser.y" /* yacc.c:1646  */
3862      {
3863 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3864 <      break;
3865 <    }
3863 >  if (conf_parser_ctx.pass == 2)
3864 >    block_state.modes.value |= UMODE_FULL;
3865 > }
3866 > #line 3867 "conf_parser.c" /* yacc.c:1646  */
3867 >    break;
3868  
3869 <    yy_aconf->rsa_public_key = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3869 >  case 197:
3870 > #line 1180 "conf_parser.y" /* yacc.c:1646  */
3871 >    {
3872 >  if (conf_parser_ctx.pass == 2)
3873 >    block_state.modes.value |= UMODE_HIDDEN;
3874 > }
3875 > #line 3876 "conf_parser.c" /* yacc.c:1646  */
3876 >    break;
3877  
3878 <    if (yy_aconf->rsa_public_key == NULL)
3878 >  case 198:
3879 > #line 1184 "conf_parser.y" /* yacc.c:1646  */
3880      {
3881 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3882 <      break;
3883 <    }
3881 >  if (conf_parser_ctx.pass == 2)
3882 >    block_state.modes.value |= UMODE_HIDECHANS;
3883 > }
3884 > #line 3885 "conf_parser.c" /* yacc.c:1646  */
3885 >    break;
3886  
3887 <    BIO_set_close(file, BIO_CLOSE);
3888 <    BIO_free(file);
3889 <  }
3890 < #endif /* HAVE_LIBCRYPTO */
3887 >  case 199:
3888 > #line 1188 "conf_parser.y" /* yacc.c:1646  */
3889 >    {
3890 >  if (conf_parser_ctx.pass == 2)
3891 >    block_state.modes.value |= UMODE_HIDEIDLE;
3892   }
3893 + #line 3894 "conf_parser.c" /* yacc.c:1646  */
3894      break;
3895  
3896 <  case 147:
3897 < /* Line 1787 of yacc.c  */
3990 < #line 1083 "conf_parser.y"
3896 >  case 200:
3897 > #line 1192 "conf_parser.y" /* yacc.c:1646  */
3898      {
3899    if (conf_parser_ctx.pass == 2)
3900 <  {
3994 <    MyFree(class_name);
3995 <    DupString(class_name, yylval.string);
3996 <  }
3900 >    block_state.modes.value |= UMODE_SKILL;
3901   }
3902 + #line 3903 "conf_parser.c" /* yacc.c:1646  */
3903      break;
3904  
3905 <  case 148:
3906 < /* Line 1787 of yacc.c  */
4002 < #line 1092 "conf_parser.y"
3905 >  case 201:
3906 > #line 1196 "conf_parser.y" /* yacc.c:1646  */
3907      {
3908    if (conf_parser_ctx.pass == 2)
3909 <    yy_aconf->modes = 0;
3909 >    block_state.modes.value |= UMODE_NCHANGE;
3910   }
3911 + #line 3912 "conf_parser.c" /* yacc.c:1646  */
3912      break;
3913  
3914 <  case 152:
3915 < /* Line 1787 of yacc.c  */
4011 < #line 1099 "conf_parser.y"
3914 >  case 202:
3915 > #line 1200 "conf_parser.y" /* yacc.c:1646  */
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918 <    yy_aconf->modes |= UMODE_BOTS;
3918 >    block_state.modes.value |= UMODE_REJ;
3919   }
3920 + #line 3921 "conf_parser.c" /* yacc.c:1646  */
3921      break;
3922  
3923 <  case 153:
3924 < /* Line 1787 of yacc.c  */
4020 < #line 1103 "conf_parser.y"
3923 >  case 203:
3924 > #line 1204 "conf_parser.y" /* yacc.c:1646  */
3925      {
3926    if (conf_parser_ctx.pass == 2)
3927 <    yy_aconf->modes |= UMODE_CCONN;
3927 >    block_state.modes.value |= UMODE_UNAUTH;
3928   }
3929 + #line 3930 "conf_parser.c" /* yacc.c:1646  */
3930      break;
3931  
3932 <  case 154:
3933 < /* Line 1787 of yacc.c  */
4029 < #line 1107 "conf_parser.y"
3932 >  case 204:
3933 > #line 1208 "conf_parser.y" /* yacc.c:1646  */
3934      {
3935    if (conf_parser_ctx.pass == 2)
3936 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3936 >    block_state.modes.value |= UMODE_SPY;
3937   }
3938 + #line 3939 "conf_parser.c" /* yacc.c:1646  */
3939      break;
3940  
3941 <  case 155:
3942 < /* Line 1787 of yacc.c  */
4038 < #line 1111 "conf_parser.y"
3941 >  case 205:
3942 > #line 1212 "conf_parser.y" /* yacc.c:1646  */
3943      {
3944    if (conf_parser_ctx.pass == 2)
3945 <    yy_aconf->modes |= UMODE_DEAF;
3945 >    block_state.modes.value |= UMODE_EXTERNAL;
3946   }
3947 + #line 3948 "conf_parser.c" /* yacc.c:1646  */
3948      break;
3949  
3950 <  case 156:
3951 < /* Line 1787 of yacc.c  */
4047 < #line 1115 "conf_parser.y"
3950 >  case 206:
3951 > #line 1216 "conf_parser.y" /* yacc.c:1646  */
3952      {
3953    if (conf_parser_ctx.pass == 2)
3954 <    yy_aconf->modes |= UMODE_DEBUG;
3954 >    block_state.modes.value |= UMODE_SERVNOTICE;
3955   }
3956 + #line 3957 "conf_parser.c" /* yacc.c:1646  */
3957      break;
3958  
3959 <  case 157:
3960 < /* Line 1787 of yacc.c  */
4056 < #line 1119 "conf_parser.y"
3959 >  case 207:
3960 > #line 1220 "conf_parser.y" /* yacc.c:1646  */
3961      {
3962    if (conf_parser_ctx.pass == 2)
3963 <    yy_aconf->modes |= UMODE_FULL;
3963 >    block_state.modes.value |= UMODE_INVISIBLE;
3964   }
3965 + #line 3966 "conf_parser.c" /* yacc.c:1646  */
3966      break;
3967  
3968 <  case 158:
3969 < /* Line 1787 of yacc.c  */
4065 < #line 1123 "conf_parser.y"
3968 >  case 208:
3969 > #line 1224 "conf_parser.y" /* yacc.c:1646  */
3970      {
3971    if (conf_parser_ctx.pass == 2)
3972 <    yy_aconf->modes |= UMODE_HIDDEN;
3972 >    block_state.modes.value |= UMODE_WALLOP;
3973   }
3974 + #line 3975 "conf_parser.c" /* yacc.c:1646  */
3975      break;
3976  
3977 <  case 159:
3978 < /* Line 1787 of yacc.c  */
4074 < #line 1127 "conf_parser.y"
3977 >  case 209:
3978 > #line 1228 "conf_parser.y" /* yacc.c:1646  */
3979      {
3980    if (conf_parser_ctx.pass == 2)
3981 <    yy_aconf->modes |= UMODE_SKILL;
3981 >    block_state.modes.value |= UMODE_SOFTCALLERID;
3982   }
3983 + #line 3984 "conf_parser.c" /* yacc.c:1646  */
3984      break;
3985  
3986 <  case 160:
3987 < /* Line 1787 of yacc.c  */
4083 < #line 1131 "conf_parser.y"
3986 >  case 210:
3987 > #line 1232 "conf_parser.y" /* yacc.c:1646  */
3988      {
3989    if (conf_parser_ctx.pass == 2)
3990 <    yy_aconf->modes |= UMODE_NCHANGE;
3990 >    block_state.modes.value |= UMODE_CALLERID;
3991   }
3992 + #line 3993 "conf_parser.c" /* yacc.c:1646  */
3993      break;
3994  
3995 <  case 161:
3996 < /* Line 1787 of yacc.c  */
4092 < #line 1135 "conf_parser.y"
3995 >  case 211:
3996 > #line 1236 "conf_parser.y" /* yacc.c:1646  */
3997      {
3998    if (conf_parser_ctx.pass == 2)
3999 <    yy_aconf->modes |= UMODE_REJ;
3999 >    block_state.modes.value |= UMODE_LOCOPS;
4000   }
4001 + #line 4002 "conf_parser.c" /* yacc.c:1646  */
4002      break;
4003  
4004 <  case 162:
4005 < /* Line 1787 of yacc.c  */
4101 < #line 1139 "conf_parser.y"
4004 >  case 212:
4005 > #line 1240 "conf_parser.y" /* yacc.c:1646  */
4006      {
4007    if (conf_parser_ctx.pass == 2)
4008 <    yy_aconf->modes |= UMODE_UNAUTH;
4008 >    block_state.modes.value |= UMODE_REGONLY;
4009   }
4010 + #line 4011 "conf_parser.c" /* yacc.c:1646  */
4011      break;
4012  
4013 <  case 163:
4014 < /* Line 1787 of yacc.c  */
4110 < #line 1143 "conf_parser.y"
4013 >  case 213:
4014 > #line 1244 "conf_parser.y" /* yacc.c:1646  */
4015      {
4016    if (conf_parser_ctx.pass == 2)
4017 <    yy_aconf->modes |= UMODE_SPY;
4017 >    block_state.modes.value |= UMODE_FARCONNECT;
4018   }
4019 + #line 4020 "conf_parser.c" /* yacc.c:1646  */
4020      break;
4021  
4022 <  case 164:
4023 < /* Line 1787 of yacc.c  */
4119 < #line 1147 "conf_parser.y"
4022 >  case 214:
4023 > #line 1250 "conf_parser.y" /* yacc.c:1646  */
4024      {
4025    if (conf_parser_ctx.pass == 2)
4026 <    yy_aconf->modes |= UMODE_EXTERNAL;
4026 >    block_state.port.value = 0;
4027   }
4028 + #line 4029 "conf_parser.c" /* yacc.c:1646  */
4029      break;
4030  
4031 <  case 165:
4032 < /* Line 1787 of yacc.c  */
4128 < #line 1151 "conf_parser.y"
4031 >  case 218:
4032 > #line 1257 "conf_parser.y" /* yacc.c:1646  */
4033      {
4034    if (conf_parser_ctx.pass == 2)
4035 <    yy_aconf->modes |= UMODE_OPERWALL;
4035 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4036   }
4037 + #line 4038 "conf_parser.c" /* yacc.c:1646  */
4038      break;
4039  
4040 <  case 166:
4041 < /* Line 1787 of yacc.c  */
4137 < #line 1155 "conf_parser.y"
4040 >  case 219:
4041 > #line 1261 "conf_parser.y" /* yacc.c:1646  */
4042      {
4043    if (conf_parser_ctx.pass == 2)
4044 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4044 >    block_state.port.value |= OPER_FLAG_KILL;
4045   }
4046 + #line 4047 "conf_parser.c" /* yacc.c:1646  */
4047      break;
4048  
4049 <  case 167:
4050 < /* Line 1787 of yacc.c  */
4146 < #line 1159 "conf_parser.y"
4049 >  case 220:
4050 > #line 1265 "conf_parser.y" /* yacc.c:1646  */
4051      {
4052    if (conf_parser_ctx.pass == 2)
4053 <    yy_aconf->modes |= UMODE_INVISIBLE;
4053 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4054   }
4055 + #line 4056 "conf_parser.c" /* yacc.c:1646  */
4056      break;
4057  
4058 <  case 168:
4059 < /* Line 1787 of yacc.c  */
4155 < #line 1163 "conf_parser.y"
4058 >  case 221:
4059 > #line 1269 "conf_parser.y" /* yacc.c:1646  */
4060      {
4061    if (conf_parser_ctx.pass == 2)
4062 <    yy_aconf->modes |= UMODE_WALLOP;
4062 >    block_state.port.value |= OPER_FLAG_CONNECT;
4063   }
4064 + #line 4065 "conf_parser.c" /* yacc.c:1646  */
4065      break;
4066  
4067 <  case 169:
4068 < /* Line 1787 of yacc.c  */
4164 < #line 1167 "conf_parser.y"
4067 >  case 222:
4068 > #line 1273 "conf_parser.y" /* yacc.c:1646  */
4069      {
4070    if (conf_parser_ctx.pass == 2)
4071 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4071 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4072   }
4073 + #line 4074 "conf_parser.c" /* yacc.c:1646  */
4074      break;
4075  
4076 <  case 170:
4077 < /* Line 1787 of yacc.c  */
4173 < #line 1171 "conf_parser.y"
4076 >  case 223:
4077 > #line 1277 "conf_parser.y" /* yacc.c:1646  */
4078      {
4079    if (conf_parser_ctx.pass == 2)
4080 <    yy_aconf->modes |= UMODE_CALLERID;
4080 >    block_state.port.value |= OPER_FLAG_SQUIT;
4081   }
4082 + #line 4083 "conf_parser.c" /* yacc.c:1646  */
4083      break;
4084  
4085 <  case 171:
4086 < /* Line 1787 of yacc.c  */
4182 < #line 1175 "conf_parser.y"
4085 >  case 224:
4086 > #line 1281 "conf_parser.y" /* yacc.c:1646  */
4087      {
4088    if (conf_parser_ctx.pass == 2)
4089 <    yy_aconf->modes |= UMODE_LOCOPS;
4089 >    block_state.port.value |= OPER_FLAG_KLINE;
4090   }
4091 + #line 4092 "conf_parser.c" /* yacc.c:1646  */
4092      break;
4093  
4094 <  case 172:
4095 < /* Line 1787 of yacc.c  */
4191 < #line 1181 "conf_parser.y"
4094 >  case 225:
4095 > #line 1285 "conf_parser.y" /* yacc.c:1646  */
4096      {
4097    if (conf_parser_ctx.pass == 2)
4098 <    yy_aconf->port = 0;
4098 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4099   }
4100 + #line 4101 "conf_parser.c" /* yacc.c:1646  */
4101      break;
4102  
4103 <  case 176:
4104 < /* Line 1787 of yacc.c  */
4200 < #line 1188 "conf_parser.y"
4103 >  case 226:
4104 > #line 1289 "conf_parser.y" /* yacc.c:1646  */
4105      {
4106    if (conf_parser_ctx.pass == 2)
4107 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4107 >    block_state.port.value |= OPER_FLAG_DLINE;
4108   }
4109 + #line 4110 "conf_parser.c" /* yacc.c:1646  */
4110      break;
4111  
4112 <  case 177:
4113 < /* Line 1787 of yacc.c  */
4209 < #line 1192 "conf_parser.y"
4112 >  case 227:
4113 > #line 1293 "conf_parser.y" /* yacc.c:1646  */
4114      {
4115    if (conf_parser_ctx.pass == 2)
4116 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4116 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4117   }
4118 + #line 4119 "conf_parser.c" /* yacc.c:1646  */
4119      break;
4120  
4121 <  case 178:
4122 < /* Line 1787 of yacc.c  */
4218 < #line 1196 "conf_parser.y"
4121 >  case 228:
4122 > #line 1297 "conf_parser.y" /* yacc.c:1646  */
4123      {
4124    if (conf_parser_ctx.pass == 2)
4125 <    yy_aconf->port |= OPER_FLAG_K;
4125 >    block_state.port.value |= OPER_FLAG_XLINE;
4126   }
4127 + #line 4128 "conf_parser.c" /* yacc.c:1646  */
4128      break;
4129  
4130 <  case 179:
4131 < /* Line 1787 of yacc.c  */
4227 < #line 1200 "conf_parser.y"
4130 >  case 229:
4131 > #line 1301 "conf_parser.y" /* yacc.c:1646  */
4132      {
4133    if (conf_parser_ctx.pass == 2)
4134 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4134 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4135   }
4136 + #line 4137 "conf_parser.c" /* yacc.c:1646  */
4137      break;
4138  
4139 <  case 180:
4140 < /* Line 1787 of yacc.c  */
4236 < #line 1204 "conf_parser.y"
4139 >  case 230:
4140 > #line 1305 "conf_parser.y" /* yacc.c:1646  */
4141      {
4142    if (conf_parser_ctx.pass == 2)
4143 <    yy_aconf->port |= OPER_FLAG_DLINE;
4143 >    block_state.port.value |= OPER_FLAG_DIE;
4144   }
4145 + #line 4146 "conf_parser.c" /* yacc.c:1646  */
4146      break;
4147  
4148 <  case 181:
4149 < /* Line 1787 of yacc.c  */
4245 < #line 1208 "conf_parser.y"
4148 >  case 231:
4149 > #line 1309 "conf_parser.y" /* yacc.c:1646  */
4150      {
4151    if (conf_parser_ctx.pass == 2)
4152 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4152 >    block_state.port.value |= OPER_FLAG_RESTART;
4153   }
4154 + #line 4155 "conf_parser.c" /* yacc.c:1646  */
4155      break;
4156  
4157 <  case 182:
4158 < /* Line 1787 of yacc.c  */
4254 < #line 1212 "conf_parser.y"
4157 >  case 232:
4158 > #line 1313 "conf_parser.y" /* yacc.c:1646  */
4159      {
4160    if (conf_parser_ctx.pass == 2)
4161 <    yy_aconf->port |= OPER_FLAG_X;
4161 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4162   }
4163 + #line 4164 "conf_parser.c" /* yacc.c:1646  */
4164      break;
4165  
4166 <  case 183:
4167 < /* Line 1787 of yacc.c  */
4263 < #line 1216 "conf_parser.y"
4166 >  case 233:
4167 > #line 1317 "conf_parser.y" /* yacc.c:1646  */
4168      {
4169    if (conf_parser_ctx.pass == 2)
4170 <    yy_aconf->port |= OPER_FLAG_GLINE;
4170 >    block_state.port.value |= OPER_FLAG_REHASH;
4171   }
4172 + #line 4173 "conf_parser.c" /* yacc.c:1646  */
4173      break;
4174  
4175 <  case 184:
4176 < /* Line 1787 of yacc.c  */
4272 < #line 1220 "conf_parser.y"
4175 >  case 234:
4176 > #line 1321 "conf_parser.y" /* yacc.c:1646  */
4177      {
4178    if (conf_parser_ctx.pass == 2)
4179 <    yy_aconf->port |= OPER_FLAG_DIE;
4179 >    block_state.port.value |= OPER_FLAG_ADMIN;
4180   }
4181 + #line 4182 "conf_parser.c" /* yacc.c:1646  */
4182      break;
4183  
4184 <  case 185:
4185 < /* Line 1787 of yacc.c  */
4281 < #line 1224 "conf_parser.y"
4184 >  case 235:
4185 > #line 1325 "conf_parser.y" /* yacc.c:1646  */
4186      {
4187    if (conf_parser_ctx.pass == 2)
4188 <    yy_aconf->port |= OPER_FLAG_RESTART;
4188 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4189   }
4190 + #line 4191 "conf_parser.c" /* yacc.c:1646  */
4191      break;
4192  
4193 <  case 186:
4194 < /* Line 1787 of yacc.c  */
4290 < #line 1228 "conf_parser.y"
4193 >  case 236:
4194 > #line 1329 "conf_parser.y" /* yacc.c:1646  */
4195      {
4196    if (conf_parser_ctx.pass == 2)
4197 <    yy_aconf->port |= OPER_FLAG_REHASH;
4197 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4198   }
4199 + #line 4200 "conf_parser.c" /* yacc.c:1646  */
4200      break;
4201  
4202 <  case 187:
4203 < /* Line 1787 of yacc.c  */
4299 < #line 1232 "conf_parser.y"
4202 >  case 237:
4203 > #line 1333 "conf_parser.y" /* yacc.c:1646  */
4204      {
4205    if (conf_parser_ctx.pass == 2)
4206 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4206 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4207   }
4208 + #line 4209 "conf_parser.c" /* yacc.c:1646  */
4209      break;
4210  
4211 <  case 188:
4212 < /* Line 1787 of yacc.c  */
4308 < #line 1236 "conf_parser.y"
4211 >  case 238:
4212 > #line 1337 "conf_parser.y" /* yacc.c:1646  */
4213      {
4214    if (conf_parser_ctx.pass == 2)
4215 <    yy_aconf->port |= OPER_FLAG_N;
4215 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4216   }
4217 + #line 4218 "conf_parser.c" /* yacc.c:1646  */
4218      break;
4219  
4220 <  case 189:
4221 < /* Line 1787 of yacc.c  */
4317 < #line 1240 "conf_parser.y"
4220 >  case 239:
4221 > #line 1341 "conf_parser.y" /* yacc.c:1646  */
4222      {
4223    if (conf_parser_ctx.pass == 2)
4224 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4224 >    block_state.port.value |= OPER_FLAG_SET;
4225   }
4226 + #line 4227 "conf_parser.c" /* yacc.c:1646  */
4227      break;
4228  
4229 <  case 190:
4230 < /* Line 1787 of yacc.c  */
4326 < #line 1244 "conf_parser.y"
4229 >  case 240:
4230 > #line 1345 "conf_parser.y" /* yacc.c:1646  */
4231      {
4232    if (conf_parser_ctx.pass == 2)
4233 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4233 >    block_state.port.value |= OPER_FLAG_MODULE;
4234   }
4235 + #line 4236 "conf_parser.c" /* yacc.c:1646  */
4236      break;
4237  
4238 <  case 191:
4239 < /* Line 1787 of yacc.c  */
4335 < #line 1248 "conf_parser.y"
4238 >  case 241:
4239 > #line 1349 "conf_parser.y" /* yacc.c:1646  */
4240      {
4241    if (conf_parser_ctx.pass == 2)
4242 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4242 >    block_state.port.value |= OPER_FLAG_OPME;
4243   }
4244 + #line 4245 "conf_parser.c" /* yacc.c:1646  */
4245      break;
4246  
4247 <  case 192:
4248 < /* Line 1787 of yacc.c  */
4344 < #line 1252 "conf_parser.y"
4247 >  case 242:
4248 > #line 1353 "conf_parser.y" /* yacc.c:1646  */
4249      {
4250    if (conf_parser_ctx.pass == 2)
4251 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4251 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4252   }
4253 + #line 4254 "conf_parser.c" /* yacc.c:1646  */
4254      break;
4255  
4256 <  case 193:
4257 < /* Line 1787 of yacc.c  */
4353 < #line 1256 "conf_parser.y"
4256 >  case 243:
4257 > #line 1357 "conf_parser.y" /* yacc.c:1646  */
4258      {
4259    if (conf_parser_ctx.pass == 2)
4260 <    yy_aconf->port |= OPER_FLAG_SET;
4260 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4261   }
4262 + #line 4263 "conf_parser.c" /* yacc.c:1646  */
4263      break;
4264  
4265 <  case 194:
4266 < /* Line 1787 of yacc.c  */
4362 < #line 1260 "conf_parser.y"
4265 >  case 244:
4266 > #line 1361 "conf_parser.y" /* yacc.c:1646  */
4267      {
4268    if (conf_parser_ctx.pass == 2)
4269 <    yy_aconf->port |= OPER_FLAG_MODULE;
4269 >    block_state.port.value |= OPER_FLAG_RESV;
4270   }
4271 + #line 4272 "conf_parser.c" /* yacc.c:1646  */
4272      break;
4273  
4274 <  case 195:
4275 < /* Line 1787 of yacc.c  */
4371 < #line 1270 "conf_parser.y"
4274 >  case 245:
4275 > #line 1365 "conf_parser.y" /* yacc.c:1646  */
4276      {
4277 <  if (conf_parser_ctx.pass == 1)
4278 <  {
4375 <    yy_conf = make_conf_item(CLASS_TYPE);
4376 <    yy_class = map_to_conf(yy_conf);
4377 <  }
4277 >  if (conf_parser_ctx.pass == 2)
4278 >    block_state.port.value |= OPER_FLAG_UNRESV;
4279   }
4280 + #line 4281 "conf_parser.c" /* yacc.c:1646  */
4281      break;
4282  
4283 <  case 196:
4284 < /* Line 1787 of yacc.c  */
4383 < #line 1277 "conf_parser.y"
4283 >  case 246:
4284 > #line 1369 "conf_parser.y" /* yacc.c:1646  */
4285      {
4286 <  if (conf_parser_ctx.pass == 1)
4287 <  {
4288 <    struct ConfItem *cconf = NULL;
4289 <    struct ClassItem *class = NULL;
4286 >  if (conf_parser_ctx.pass == 2)
4287 >    block_state.port.value |= OPER_FLAG_CLOSE;
4288 > }
4289 > #line 4290 "conf_parser.c" /* yacc.c:1646  */
4290 >    break;
4291  
4292 <    if (yy_class_name == NULL)
4293 <      delete_conf_item(yy_conf);
4392 <    else
4292 >  case 247:
4293 > #line 1379 "conf_parser.y" /* yacc.c:1646  */
4294      {
4295 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4295 >  if (conf_parser_ctx.pass != 1)
4296 >    break;
4297  
4298 <      if (cconf != NULL)                /* The class existed already */
4397 <      {
4398 <        int user_count = 0;
4298 >  reset_block_state();
4299  
4300 <        rebuild_cidr_class(cconf, yy_class);
4300 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4301 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4302 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4303 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4304 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4305 > }
4306 > #line 4307 "conf_parser.c" /* yacc.c:1646  */
4307 >    break;
4308 >
4309 >  case 248:
4310 > #line 1391 "conf_parser.y" /* yacc.c:1646  */
4311 >    {
4312 >  struct ClassItem *class = NULL;
4313  
4314 <        class = map_to_conf(cconf);
4314 >  if (conf_parser_ctx.pass != 1)
4315 >    break;
4316  
4317 <        user_count = class->curr_user_count;
4318 <        memcpy(class, yy_class, sizeof(*class));
4406 <        class->curr_user_count = user_count;
4407 <        class->active = 1;
4317 >  if (!block_state.class.buf[0])
4318 >    break;
4319  
4320 <        delete_conf_item(yy_conf);
4320 >  if (!(class = class_find(block_state.class.buf, 0)))
4321 >    class = class_make();
4322  
4323 <        MyFree(cconf->name);            /* Allows case change of class name */
4324 <        cconf->name = yy_class_name;
4325 <      }
4326 <      else      /* Brand new class */
4327 <      {
4328 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4329 <        yy_conf->name = yy_class_name;
4330 <        yy_class->active = 1;
4331 <      }
4332 <    }
4323 >  class->active = 1;
4324 >  xfree(class->name);
4325 >  class->name = xstrdup(block_state.class.buf);
4326 >  class->ping_freq = block_state.ping_freq.value;
4327 >  class->max_perip = block_state.max_perip.value;
4328 >  class->con_freq = block_state.con_freq.value;
4329 >  class->max_total = block_state.max_total.value;
4330 >  class->max_global = block_state.max_global.value;
4331 >  class->max_local = block_state.max_local.value;
4332 >  class->max_ident = block_state.max_ident.value;
4333 >  class->max_sendq = block_state.max_sendq.value;
4334 >  class->max_recvq = block_state.max_recvq.value;
4335 >  class->max_channels = block_state.max_channels.value;
4336  
4337 <    yy_class_name = NULL;
4337 >  if (block_state.min_idle.value > block_state.max_idle.value)
4338 >  {
4339 >    block_state.min_idle.value = 0;
4340 >    block_state.max_idle.value = 0;
4341 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4342    }
4343 +
4344 +  class->flags = block_state.flags.value;
4345 +  class->min_idle = block_state.min_idle.value;
4346 +  class->max_idle = block_state.max_idle.value;
4347 +
4348 +  rebuild_cidr_list(class);
4349 +
4350 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4351 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4352 +  class->number_per_cidr = block_state.number_per_cidr.value;
4353   }
4354 + #line 4355 "conf_parser.c" /* yacc.c:1646  */
4355      break;
4356  
4357 <  case 214:
4358 < /* Line 1787 of yacc.c  */
4429 < #line 1335 "conf_parser.y"
4357 >  case 269:
4358 > #line 1455 "conf_parser.y" /* yacc.c:1646  */
4359      {
4360    if (conf_parser_ctx.pass == 1)
4361 <  {
4433 <    MyFree(yy_class_name);
4434 <    DupString(yy_class_name, yylval.string);
4435 <  }
4361 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4362   }
4363 + #line 4364 "conf_parser.c" /* yacc.c:1646  */
4364      break;
4365  
4366 <  case 215:
4367 < /* Line 1787 of yacc.c  */
4441 < #line 1344 "conf_parser.y"
4366 >  case 270:
4367 > #line 1461 "conf_parser.y" /* yacc.c:1646  */
4368      {
4369    if (conf_parser_ctx.pass == 1)
4370 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4370 >    block_state.ping_freq.value = (yyvsp[-1].number);
4371   }
4372 + #line 4373 "conf_parser.c" /* yacc.c:1646  */
4373      break;
4374  
4375 <  case 216:
4376 < /* Line 1787 of yacc.c  */
4450 < #line 1350 "conf_parser.y"
4375 >  case 271:
4376 > #line 1467 "conf_parser.y" /* yacc.c:1646  */
4377      {
4378    if (conf_parser_ctx.pass == 1)
4379 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4379 >    block_state.max_perip.value = (yyvsp[-1].number);
4380   }
4381 + #line 4382 "conf_parser.c" /* yacc.c:1646  */
4382      break;
4383  
4384 <  case 217:
4385 < /* Line 1787 of yacc.c  */
4459 < #line 1356 "conf_parser.y"
4384 >  case 272:
4385 > #line 1473 "conf_parser.y" /* yacc.c:1646  */
4386      {
4387    if (conf_parser_ctx.pass == 1)
4388 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4388 >    block_state.con_freq.value = (yyvsp[-1].number);
4389   }
4390 + #line 4391 "conf_parser.c" /* yacc.c:1646  */
4391      break;
4392  
4393 <  case 218:
4394 < /* Line 1787 of yacc.c  */
4468 < #line 1362 "conf_parser.y"
4393 >  case 273:
4394 > #line 1479 "conf_parser.y" /* yacc.c:1646  */
4395      {
4396    if (conf_parser_ctx.pass == 1)
4397 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4397 >    block_state.max_channels.value = (yyvsp[-1].number);
4398   }
4399 + #line 4400 "conf_parser.c" /* yacc.c:1646  */
4400      break;
4401  
4402 <  case 219:
4403 < /* Line 1787 of yacc.c  */
4477 < #line 1368 "conf_parser.y"
4402 >  case 274:
4403 > #line 1485 "conf_parser.y" /* yacc.c:1646  */
4404      {
4405    if (conf_parser_ctx.pass == 1)
4406 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4406 >    block_state.max_total.value = (yyvsp[-1].number);
4407   }
4408 + #line 4409 "conf_parser.c" /* yacc.c:1646  */
4409      break;
4410  
4411 <  case 220:
4412 < /* Line 1787 of yacc.c  */
4486 < #line 1374 "conf_parser.y"
4411 >  case 275:
4412 > #line 1491 "conf_parser.y" /* yacc.c:1646  */
4413      {
4414    if (conf_parser_ctx.pass == 1)
4415 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4415 >    block_state.max_global.value = (yyvsp[-1].number);
4416   }
4417 + #line 4418 "conf_parser.c" /* yacc.c:1646  */
4418      break;
4419  
4420 <  case 221:
4421 < /* Line 1787 of yacc.c  */
4495 < #line 1380 "conf_parser.y"
4420 >  case 276:
4421 > #line 1497 "conf_parser.y" /* yacc.c:1646  */
4422      {
4423    if (conf_parser_ctx.pass == 1)
4424 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4424 >    block_state.max_local.value = (yyvsp[-1].number);
4425   }
4426 + #line 4427 "conf_parser.c" /* yacc.c:1646  */
4427      break;
4428  
4429 <  case 222:
4430 < /* Line 1787 of yacc.c  */
4504 < #line 1386 "conf_parser.y"
4429 >  case 277:
4430 > #line 1503 "conf_parser.y" /* yacc.c:1646  */
4431      {
4432    if (conf_parser_ctx.pass == 1)
4433 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4433 >    block_state.max_ident.value = (yyvsp[-1].number);
4434   }
4435 + #line 4436 "conf_parser.c" /* yacc.c:1646  */
4436      break;
4437  
4438 <  case 223:
4439 < /* Line 1787 of yacc.c  */
4513 < #line 1392 "conf_parser.y"
4438 >  case 278:
4439 > #line 1509 "conf_parser.y" /* yacc.c:1646  */
4440      {
4441    if (conf_parser_ctx.pass == 1)
4442 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4442 >    block_state.max_sendq.value = (yyvsp[-1].number);
4443   }
4444 + #line 4445 "conf_parser.c" /* yacc.c:1646  */
4445      break;
4446  
4447 <  case 224:
4448 < /* Line 1787 of yacc.c  */
4522 < #line 1398 "conf_parser.y"
4447 >  case 279:
4448 > #line 1515 "conf_parser.y" /* yacc.c:1646  */
4449      {
4450    if (conf_parser_ctx.pass == 1)
4451 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4452 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4451 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4452 >      block_state.max_recvq.value = (yyvsp[-1].number);
4453   }
4454 + #line 4455 "conf_parser.c" /* yacc.c:1646  */
4455      break;
4456  
4457 <  case 225:
4458 < /* Line 1787 of yacc.c  */
4532 < #line 1405 "conf_parser.y"
4457 >  case 280:
4458 > #line 1522 "conf_parser.y" /* yacc.c:1646  */
4459      {
4460    if (conf_parser_ctx.pass == 1)
4461 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4461 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4462   }
4463 + #line 4464 "conf_parser.c" /* yacc.c:1646  */
4464      break;
4465  
4466 <  case 226:
4467 < /* Line 1787 of yacc.c  */
4541 < #line 1411 "conf_parser.y"
4466 >  case 281:
4467 > #line 1528 "conf_parser.y" /* yacc.c:1646  */
4468      {
4469    if (conf_parser_ctx.pass == 1)
4470 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4470 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4471   }
4472 + #line 4473 "conf_parser.c" /* yacc.c:1646  */
4473      break;
4474  
4475 <  case 227:
4476 < /* Line 1787 of yacc.c  */
4550 < #line 1417 "conf_parser.y"
4475 >  case 282:
4476 > #line 1534 "conf_parser.y" /* yacc.c:1646  */
4477      {
4478    if (conf_parser_ctx.pass == 1)
4479 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4479 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4480   }
4481 + #line 4482 "conf_parser.c" /* yacc.c:1646  */
4482      break;
4483  
4484 <  case 228:
4485 < /* Line 1787 of yacc.c  */
4559 < #line 1426 "conf_parser.y"
4484 >  case 283:
4485 > #line 1540 "conf_parser.y" /* yacc.c:1646  */
4486      {
4487 <  if (conf_parser_ctx.pass == 2)
4488 <  {
4489 <    listener_address = NULL;
4490 <    listener_flags = 0;
4491 <  }
4487 >  if (conf_parser_ctx.pass != 1)
4488 >    break;
4489 >
4490 >  block_state.min_idle.value = (yyvsp[-1].number);
4491 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4492   }
4493 + #line 4494 "conf_parser.c" /* yacc.c:1646  */
4494      break;
4495  
4496 <  case 229:
4497 < /* Line 1787 of yacc.c  */
4571 < #line 1433 "conf_parser.y"
4496 >  case 284:
4497 > #line 1549 "conf_parser.y" /* yacc.c:1646  */
4498      {
4499 <  if (conf_parser_ctx.pass == 2)
4500 <  {
4501 <    MyFree(listener_address);
4502 <    listener_address = NULL;
4503 <  }
4499 >  if (conf_parser_ctx.pass != 1)
4500 >    break;
4501 >
4502 >  block_state.max_idle.value = (yyvsp[-1].number);
4503 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4504   }
4505 + #line 4506 "conf_parser.c" /* yacc.c:1646  */
4506      break;
4507  
4508 <  case 230:
4509 < /* Line 1787 of yacc.c  */
4583 < #line 1442 "conf_parser.y"
4508 >  case 285:
4509 > #line 1558 "conf_parser.y" /* yacc.c:1646  */
4510      {
4511 <  listener_flags = 0;
4511 >  if (conf_parser_ctx.pass == 1)
4512 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4513   }
4514 + #line 4515 "conf_parser.c" /* yacc.c:1646  */
4515      break;
4516  
4517 <  case 234:
4518 < /* Line 1787 of yacc.c  */
4591 < #line 1448 "conf_parser.y"
4517 >  case 289:
4518 > #line 1565 "conf_parser.y" /* yacc.c:1646  */
4519      {
4520 <  if (conf_parser_ctx.pass == 2)
4521 <    listener_flags |= LISTENER_SSL;
4520 >  if (conf_parser_ctx.pass == 1)
4521 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4522   }
4523 + #line 4524 "conf_parser.c" /* yacc.c:1646  */
4524      break;
4525  
4526 <  case 235:
4527 < /* Line 1787 of yacc.c  */
4600 < #line 1452 "conf_parser.y"
4526 >  case 290:
4527 > #line 1569 "conf_parser.y" /* yacc.c:1646  */
4528      {
4529 <  if (conf_parser_ctx.pass == 2)
4530 <    listener_flags |= LISTENER_HIDDEN;
4529 >  if (conf_parser_ctx.pass == 1)
4530 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4531   }
4532 + #line 4533 "conf_parser.c" /* yacc.c:1646  */
4533      break;
4534  
4535 <  case 236:
4536 < /* Line 1787 of yacc.c  */
4609 < #line 1456 "conf_parser.y"
4535 >  case 291:
4536 > #line 1579 "conf_parser.y" /* yacc.c:1646  */
4537      {
4538    if (conf_parser_ctx.pass == 2)
4539 <    listener_flags |= LISTENER_SERVER;
4539 >    reset_block_state();
4540   }
4541 + #line 4542 "conf_parser.c" /* yacc.c:1646  */
4542      break;
4543  
4544 <  case 244:
4545 < /* Line 1787 of yacc.c  */
4546 < #line 1466 "conf_parser.y"
4547 <    { listener_flags = 0; }
4544 >  case 293:
4545 > #line 1585 "conf_parser.y" /* yacc.c:1646  */
4546 >    {
4547 >  block_state.flags.value = 0;
4548 > }
4549 > #line 4550 "conf_parser.c" /* yacc.c:1646  */
4550      break;
4551  
4552 <  case 248:
4553 < /* Line 1787 of yacc.c  */
4624 < #line 1471 "conf_parser.y"
4552 >  case 297:
4553 > #line 1591 "conf_parser.y" /* yacc.c:1646  */
4554      {
4555    if (conf_parser_ctx.pass == 2)
4556 <  {
4628 <    if ((listener_flags & LISTENER_SSL))
4629 < #ifdef HAVE_LIBCRYPTO
4630 <      if (!ServerInfo.server_ctx)
4631 < #endif
4632 <      {
4633 <        yyerror("SSL not available - port closed");
4634 <        break;
4635 <      }
4636 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4637 <  }
4556 >    block_state.flags.value |= LISTENER_SSL;
4557   }
4558 + #line 4559 "conf_parser.c" /* yacc.c:1646  */
4559      break;
4560  
4561 <  case 249:
4562 < /* Line 1787 of yacc.c  */
4643 < #line 1485 "conf_parser.y"
4561 >  case 298:
4562 > #line 1595 "conf_parser.y" /* yacc.c:1646  */
4563      {
4564    if (conf_parser_ctx.pass == 2)
4565 <  {
4647 <    int i;
4648 <
4649 <    if ((listener_flags & LISTENER_SSL))
4650 < #ifdef HAVE_LIBCRYPTO
4651 <      if (!ServerInfo.server_ctx)
4652 < #endif
4653 <      {
4654 <        yyerror("SSL not available - port closed");
4655 <        break;
4656 <      }
4657 <
4658 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4659 <      add_listener(i, listener_address, listener_flags);
4660 <  }
4565 >    block_state.flags.value |= LISTENER_HIDDEN;
4566   }
4567 + #line 4568 "conf_parser.c" /* yacc.c:1646  */
4568      break;
4569  
4570 <  case 250:
4571 < /* Line 1787 of yacc.c  */
4666 < #line 1505 "conf_parser.y"
4570 >  case 299:
4571 > #line 1599 "conf_parser.y" /* yacc.c:1646  */
4572      {
4573    if (conf_parser_ctx.pass == 2)
4574 <  {
4670 <    MyFree(listener_address);
4671 <    DupString(listener_address, yylval.string);
4672 <  }
4574 >   block_state.flags.value |= LISTENER_SERVER;
4575   }
4576 + #line 4577 "conf_parser.c" /* yacc.c:1646  */
4577      break;
4578  
4579 <  case 251:
4580 < /* Line 1787 of yacc.c  */
4581 < #line 1514 "conf_parser.y"
4579 >  case 307:
4580 > #line 1607 "conf_parser.y" /* yacc.c:1646  */
4581 >    { block_state.flags.value = 0; }
4582 > #line 4583 "conf_parser.c" /* yacc.c:1646  */
4583 >    break;
4584 >
4585 >  case 311:
4586 > #line 1612 "conf_parser.y" /* yacc.c:1646  */
4587      {
4588    if (conf_parser_ctx.pass == 2)
4589    {
4590 <    MyFree(listener_address);
4591 <    DupString(listener_address, yylval.string);
4590 > #ifndef HAVE_TLS
4591 >    if (block_state.flags.value & LISTENER_SSL)
4592 >    {
4593 >      conf_error_report("TLS not available - port closed");
4594 >      break;
4595 >    }
4596 > #endif
4597 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4598    }
4599   }
4600 + #line 4601 "conf_parser.c" /* yacc.c:1646  */
4601      break;
4602  
4603 <  case 252:
4604 < /* Line 1787 of yacc.c  */
4690 < #line 1526 "conf_parser.y"
4603 >  case 312:
4604 > #line 1625 "conf_parser.y" /* yacc.c:1646  */
4605      {
4606    if (conf_parser_ctx.pass == 2)
4607    {
4608 <    yy_conf = make_conf_item(CLIENT_TYPE);
4609 <    yy_aconf = map_to_conf(yy_conf);
4610 <  }
4611 <  else
4612 <  {
4613 <    MyFree(class_name);
4614 <    class_name = NULL;
4608 > #ifndef HAVE_TLS
4609 >    if (block_state.flags.value & LISTENER_SSL)
4610 >    {
4611 >      conf_error_report("TLS not available - port closed");
4612 >      break;
4613 >    }
4614 > #endif
4615 >
4616 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4617 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4618    }
4619   }
4620 + #line 4621 "conf_parser.c" /* yacc.c:1646  */
4621      break;
4622  
4623 <  case 253:
4624 < /* Line 1787 of yacc.c  */
4707 < #line 1538 "conf_parser.y"
4623 >  case 313:
4624 > #line 1642 "conf_parser.y" /* yacc.c:1646  */
4625      {
4626    if (conf_parser_ctx.pass == 2)
4627 <  {
4628 <    struct CollectItem *yy_tmp = NULL;
4629 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4627 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4628 > }
4629 > #line 4630 "conf_parser.c" /* yacc.c:1646  */
4630 >    break;
4631  
4632 <    if (yy_aconf->user && yy_aconf->host)
4632 >  case 314:
4633 > #line 1648 "conf_parser.y" /* yacc.c:1646  */
4634      {
4635 <      conf_add_class_to_conf(yy_conf, class_name);
4636 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4637 <    }
4638 <    else
4639 <      delete_conf_item(yy_conf);
4635 >  if (conf_parser_ctx.pass == 2)
4636 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4637 > }
4638 > #line 4639 "conf_parser.c" /* yacc.c:1646  */
4639 >    break;
4640  
4641 <    /* copy over settings from first struct */
4642 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4641 >  case 315:
4642 > #line 1658 "conf_parser.y" /* yacc.c:1646  */
4643      {
4644 <      struct AccessItem *new_aconf;
4645 <      struct ConfItem *new_conf;
4727 <
4728 <      new_conf = make_conf_item(CLIENT_TYPE);
4729 <      new_aconf = map_to_conf(new_conf);
4730 <
4731 <      yy_tmp = ptr->data;
4732 <
4733 <      assert(yy_tmp->user && yy_tmp->host);
4734 <
4735 <      if (yy_aconf->passwd != NULL)
4736 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4737 <      if (yy_conf->name != NULL)
4738 <        DupString(new_conf->name, yy_conf->name);
4739 <      if (yy_aconf->passwd != NULL)
4740 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4741 <
4742 <      new_aconf->flags = yy_aconf->flags;
4743 <      new_aconf->port  = yy_aconf->port;
4744 <
4745 <      DupString(new_aconf->user, yy_tmp->user);
4746 <      collapse(new_aconf->user);
4747 <
4748 <      DupString(new_aconf->host, yy_tmp->host);
4749 <      collapse(new_aconf->host);
4750 <
4751 <      conf_add_class_to_conf(new_conf, class_name);
4752 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4753 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4754 <      free_collect_item(yy_tmp);
4755 <    }
4756 <
4757 <    MyFree(class_name);
4758 <    class_name = NULL;
4759 <    yy_conf = NULL;
4760 <    yy_aconf = NULL;
4761 <  }
4644 >  if (conf_parser_ctx.pass == 2)
4645 >    reset_block_state();
4646   }
4647 + #line 4648 "conf_parser.c" /* yacc.c:1646  */
4648      break;
4649  
4650 <  case 265:
4651 < /* Line 1787 of yacc.c  */
4767 < #line 1600 "conf_parser.y"
4650 >  case 316:
4651 > #line 1662 "conf_parser.y" /* yacc.c:1646  */
4652      {
4653 <  if (conf_parser_ctx.pass == 2)
4653 >  dlink_node *node = NULL;
4654 >
4655 >  if (conf_parser_ctx.pass != 2)
4656 >    break;
4657 >
4658 >  DLINK_FOREACH(node, block_state.mask.list.head)
4659    {
4660 <    struct CollectItem *yy_tmp = NULL;
4660 >    struct MaskItem *conf = NULL;
4661      struct split_nuh_item nuh;
4662  
4663 <    nuh.nuhmask  = yylval.string;
4663 >    nuh.nuhmask  = node->data;
4664      nuh.nickptr  = NULL;
4665 <    nuh.userptr  = userbuf;
4666 <    nuh.hostptr  = hostbuf;
4778 <
4665 >    nuh.userptr  = block_state.user.buf;
4666 >    nuh.hostptr  = block_state.host.buf;
4667      nuh.nicksize = 0;
4668 <    nuh.usersize = sizeof(userbuf);
4669 <    nuh.hostsize = sizeof(hostbuf);
4782 <
4668 >    nuh.usersize = sizeof(block_state.user.buf);
4669 >    nuh.hostsize = sizeof(block_state.host.buf);
4670      split_nuh(&nuh);
4671  
4672 <    if (yy_aconf->user == NULL)
4673 <    {
4674 <      DupString(yy_aconf->user, userbuf);
4788 <      DupString(yy_aconf->host, hostbuf);
4789 <    }
4790 <    else
4791 <    {
4792 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4672 >    conf        = conf_make(CONF_CLIENT);
4673 >    conf->user  = xstrdup(block_state.user.buf);
4674 >    conf->host  = xstrdup(block_state.host.buf);
4675  
4676 <      DupString(yy_tmp->user, userbuf);
4677 <      DupString(yy_tmp->host, hostbuf);
4676 >    if (block_state.rpass.buf[0])
4677 >      conf->passwd = xstrdup(block_state.rpass.buf);
4678 >    if (block_state.name.buf[0])
4679 >      conf->name = xstrdup(block_state.name.buf);
4680  
4681 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4682 <    }
4681 >    conf->flags = block_state.flags.value;
4682 >    conf->port  = block_state.port.value;
4683 >
4684 >    conf_add_class_to_conf(conf, block_state.class.buf);
4685 >    add_conf_by_address(CONF_CLIENT, conf);
4686    }
4687   }
4688 + #line 4689 "conf_parser.c" /* yacc.c:1646  */
4689      break;
4690  
4691 <  case 266:
4692 < /* Line 1787 of yacc.c  */
4805 < #line 1635 "conf_parser.y"
4691 >  case 328:
4692 > #line 1711 "conf_parser.y" /* yacc.c:1646  */
4693      {
4694    if (conf_parser_ctx.pass == 2)
4695 <  {
4696 <    /* be paranoid */
4697 <    if (yy_aconf->passwd != NULL)
4698 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4695 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4696 > }
4697 > #line 4698 "conf_parser.c" /* yacc.c:1646  */
4698 >    break;
4699  
4700 <    MyFree(yy_aconf->passwd);
4701 <    DupString(yy_aconf->passwd, yylval.string);
4702 <  }
4700 >  case 329:
4701 > #line 1717 "conf_parser.y" /* yacc.c:1646  */
4702 >    {
4703 >  if (conf_parser_ctx.pass == 2)
4704 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4705   }
4706 + #line 4707 "conf_parser.c" /* yacc.c:1646  */
4707      break;
4708  
4709 <  case 267:
4710 < /* Line 1787 of yacc.c  */
4821 < #line 1648 "conf_parser.y"
4709 >  case 330:
4710 > #line 1723 "conf_parser.y" /* yacc.c:1646  */
4711      {
4712    if (conf_parser_ctx.pass == 2)
4713 <  {
4825 <    MyFree(class_name);
4826 <    DupString(class_name, yylval.string);
4827 <  }
4713 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4714   }
4715 + #line 4716 "conf_parser.c" /* yacc.c:1646  */
4716      break;
4717  
4718 <  case 268:
4719 < /* Line 1787 of yacc.c  */
4833 < #line 1657 "conf_parser.y"
4718 >  case 331:
4719 > #line 1729 "conf_parser.y" /* yacc.c:1646  */
4720      {
4721    if (conf_parser_ctx.pass == 2)
4722    {
4723      if (yylval.number)
4724 <      SetConfEncrypted(yy_aconf);
4724 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4725      else
4726 <      ClearConfEncrypted(yy_aconf);
4726 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4727    }
4728   }
4729 + #line 4730 "conf_parser.c" /* yacc.c:1646  */
4730      break;
4731  
4732 <  case 269:
4733 < /* Line 1787 of yacc.c  */
4847 < #line 1668 "conf_parser.y"
4732 >  case 332:
4733 > #line 1740 "conf_parser.y" /* yacc.c:1646  */
4734      {
4735 +  if (conf_parser_ctx.pass == 2)
4736 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4737   }
4738 + #line 4739 "conf_parser.c" /* yacc.c:1646  */
4739      break;
4740  
4741 <  case 273:
4742 < /* Line 1787 of yacc.c  */
4854 < #line 1673 "conf_parser.y"
4741 >  case 336:
4742 > #line 1747 "conf_parser.y" /* yacc.c:1646  */
4743      {
4744    if (conf_parser_ctx.pass == 2)
4745 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4745 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4746   }
4747 + #line 4748 "conf_parser.c" /* yacc.c:1646  */
4748      break;
4749  
4750 <  case 274:
4751 < /* Line 1787 of yacc.c  */
4863 < #line 1677 "conf_parser.y"
4750 >  case 337:
4751 > #line 1751 "conf_parser.y" /* yacc.c:1646  */
4752      {
4753    if (conf_parser_ctx.pass == 2)
4754 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4754 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4755   }
4756 + #line 4757 "conf_parser.c" /* yacc.c:1646  */
4757      break;
4758  
4759 <  case 275:
4760 < /* Line 1787 of yacc.c  */
4872 < #line 1681 "conf_parser.y"
4759 >  case 338:
4760 > #line 1755 "conf_parser.y" /* yacc.c:1646  */
4761      {
4762    if (conf_parser_ctx.pass == 2)
4763 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4763 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4764   }
4765 + #line 4766 "conf_parser.c" /* yacc.c:1646  */
4766      break;
4767  
4768 <  case 276:
4769 < /* Line 1787 of yacc.c  */
4881 < #line 1685 "conf_parser.y"
4768 >  case 339:
4769 > #line 1759 "conf_parser.y" /* yacc.c:1646  */
4770      {
4771    if (conf_parser_ctx.pass == 2)
4772 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4772 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4773   }
4774 + #line 4775 "conf_parser.c" /* yacc.c:1646  */
4775      break;
4776  
4777 <  case 277:
4778 < /* Line 1787 of yacc.c  */
4890 < #line 1689 "conf_parser.y"
4777 >  case 340:
4778 > #line 1763 "conf_parser.y" /* yacc.c:1646  */
4779      {
4780    if (conf_parser_ctx.pass == 2)
4781 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4781 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4782   }
4783 + #line 4784 "conf_parser.c" /* yacc.c:1646  */
4784      break;
4785  
4786 <  case 278:
4787 < /* Line 1787 of yacc.c  */
4899 < #line 1693 "conf_parser.y"
4786 >  case 341:
4787 > #line 1767 "conf_parser.y" /* yacc.c:1646  */
4788      {
4789    if (conf_parser_ctx.pass == 2)
4790 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4790 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4791   }
4792 + #line 4793 "conf_parser.c" /* yacc.c:1646  */
4793      break;
4794  
4795 <  case 279:
4796 < /* Line 1787 of yacc.c  */
4908 < #line 1697 "conf_parser.y"
4795 >  case 342:
4796 > #line 1771 "conf_parser.y" /* yacc.c:1646  */
4797      {
4798    if (conf_parser_ctx.pass == 2)
4799 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4799 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4800   }
4801 + #line 4802 "conf_parser.c" /* yacc.c:1646  */
4802      break;
4803  
4804 <  case 280:
4805 < /* Line 1787 of yacc.c  */
4917 < #line 1701 "conf_parser.y"
4804 >  case 343:
4805 > #line 1775 "conf_parser.y" /* yacc.c:1646  */
4806      {
4807    if (conf_parser_ctx.pass == 2)
4808 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4808 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4809   }
4810 + #line 4811 "conf_parser.c" /* yacc.c:1646  */
4811      break;
4812  
4813 <  case 281:
4814 < /* Line 1787 of yacc.c  */
4926 < #line 1705 "conf_parser.y"
4813 >  case 344:
4814 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4815      {
4816    if (conf_parser_ctx.pass == 2)
4817 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4817 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4818   }
4819 + #line 4820 "conf_parser.c" /* yacc.c:1646  */
4820      break;
4821  
4822 <  case 282:
4823 < /* Line 1787 of yacc.c  */
4935 < #line 1711 "conf_parser.y"
4822 >  case 345:
4823 > #line 1783 "conf_parser.y" /* yacc.c:1646  */
4824      {
4825    if (conf_parser_ctx.pass == 2)
4826 <  {
4827 <    MyFree(yy_conf->name);
4826 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4827 > }
4828 > #line 4829 "conf_parser.c" /* yacc.c:1646  */
4829 >    break;
4830  
4831 <    if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4832 <    {    
4943 <      DupString(yy_conf->name, yylval.string);
4944 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4945 <    }
4946 <    else
4831 >  case 346:
4832 > #line 1789 "conf_parser.y" /* yacc.c:1646  */
4833      {
4834 <      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4835 <      yy_conf->name = NULL;
4836 <    }
4834 >  if (conf_parser_ctx.pass != 2)
4835 >    break;
4836 >
4837 >  if (valid_hostname(yylval.string))
4838 >  {
4839 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4840 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4841    }
4842 +  else
4843 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4844   }
4845 + #line 4846 "conf_parser.c" /* yacc.c:1646  */
4846      break;
4847  
4848 <  case 283:
4849 < /* Line 1787 of yacc.c  */
4957 < #line 1730 "conf_parser.y"
4848 >  case 347:
4849 > #line 1803 "conf_parser.y" /* yacc.c:1646  */
4850      {
4851 <  if (conf_parser_ctx.pass == 2)
4852 <  {
4853 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4854 <    MyFree(yy_conf->name);
4855 <    DupString(yy_conf->name, yylval.string);
4964 <  }
4851 >  if (conf_parser_ctx.pass != 2)
4852 >    break;
4853 >
4854 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4855 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4856   }
4857 + #line 4858 "conf_parser.c" /* yacc.c:1646  */
4858      break;
4859  
4860 <  case 284:
4861 < /* Line 1787 of yacc.c  */
4970 < #line 1740 "conf_parser.y"
4860 >  case 348:
4861 > #line 1812 "conf_parser.y" /* yacc.c:1646  */
4862      {
4863 <  if (conf_parser_ctx.pass == 2)
4864 <  {
4865 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4866 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4867 <  }
4863 >  if (conf_parser_ctx.pass != 2)
4864 >    break;
4865 >
4866 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4867 >  block_state.port.value = (yyvsp[-1].number);
4868   }
4869 + #line 4870 "conf_parser.c" /* yacc.c:1646  */
4870      break;
4871  
4872 <  case 285:
4873 < /* Line 1787 of yacc.c  */
4982 < #line 1753 "conf_parser.y"
4872 >  case 349:
4873 > #line 1825 "conf_parser.y" /* yacc.c:1646  */
4874      {
4875 <  if (conf_parser_ctx.pass == 2)
4876 <  {
4877 <    MyFree(resv_reason);
4878 <    resv_reason = NULL;
4879 <  }
4875 >  if (conf_parser_ctx.pass != 2)
4876 >    break;
4877 >
4878 >  reset_block_state();
4879 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4880   }
4881 + #line 4882 "conf_parser.c" /* yacc.c:1646  */
4882      break;
4883  
4884 <  case 286:
4885 < /* Line 1787 of yacc.c  */
4994 < #line 1760 "conf_parser.y"
4884 >  case 350:
4885 > #line 1832 "conf_parser.y" /* yacc.c:1646  */
4886      {
4887 <  if (conf_parser_ctx.pass == 2)
4888 <  {
4889 <    MyFree(resv_reason);
4890 <    resv_reason = NULL;
5000 <  }
4887 >  if (conf_parser_ctx.pass != 2)
4888 >    break;
4889 >
4890 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4891   }
4892 + #line 4893 "conf_parser.c" /* yacc.c:1646  */
4893      break;
4894  
4895 <  case 293:
4896 < /* Line 1787 of yacc.c  */
5006 < #line 1772 "conf_parser.y"
4895 >  case 357:
4896 > #line 1843 "conf_parser.y" /* yacc.c:1646  */
4897      {
4898    if (conf_parser_ctx.pass == 2)
4899 <  {
5010 <    MyFree(resv_reason);
5011 <    DupString(resv_reason, yylval.string);
5012 <  }
4899 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4900   }
4901 + #line 4902 "conf_parser.c" /* yacc.c:1646  */
4902      break;
4903  
4904 <  case 294:
4905 < /* Line 1787 of yacc.c  */
5018 < #line 1781 "conf_parser.y"
4904 >  case 358:
4905 > #line 1849 "conf_parser.y" /* yacc.c:1646  */
4906      {
4907    if (conf_parser_ctx.pass == 2)
4908 <  {
5022 <    if (IsChanPrefix(*yylval.string))
5023 <    {
5024 <      char def_reason[] = "No reason";
5025 <
5026 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5027 <    }
5028 <  }
5029 <  /* ignore it for now.. but we really should make a warning if
5030 <   * its an erroneous name --fl_ */
4908 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4909   }
4910 + #line 4911 "conf_parser.c" /* yacc.c:1646  */
4911      break;
4912  
4913 <  case 295:
4914 < /* Line 1787 of yacc.c  */
5036 < #line 1796 "conf_parser.y"
4913 >  case 359:
4914 > #line 1855 "conf_parser.y" /* yacc.c:1646  */
4915      {
4916    if (conf_parser_ctx.pass == 2)
4917 <  {
5040 <    char def_reason[] = "No reason";
5041 <
5042 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5043 <  }
4917 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4918   }
4919 + #line 4920 "conf_parser.c" /* yacc.c:1646  */
4920      break;
4921  
4922 <  case 301:
4923 < /* Line 1787 of yacc.c  */
5049 < #line 1814 "conf_parser.y"
4922 >  case 365:
4923 > #line 1870 "conf_parser.y" /* yacc.c:1646  */
4924      {
4925 <  if (conf_parser_ctx.pass == 2)
4925 >  if (conf_parser_ctx.pass != 2)
4926 >    break;
4927 >
4928 >  if (valid_servname(yylval.string))
4929    {
4930 <    if (valid_servname(yylval.string))
4931 <    {
5055 <      yy_conf = make_conf_item(SERVICE_TYPE);
5056 <      DupString(yy_conf->name, yylval.string);
5057 <    }
4930 >    struct ServiceItem *service = service_make();
4931 >    service->name = xstrdup(yylval.string);
4932    }
4933   }
4934 + #line 4935 "conf_parser.c" /* yacc.c:1646  */
4935      break;
4936  
4937 <  case 302:
4938 < /* Line 1787 of yacc.c  */
5064 < #line 1829 "conf_parser.y"
4937 >  case 366:
4938 > #line 1886 "conf_parser.y" /* yacc.c:1646  */
4939      {
4940 <  if (conf_parser_ctx.pass == 2)
4941 <  {
4942 <    yy_conf = make_conf_item(ULINE_TYPE);
4943 <    yy_match_item = map_to_conf(yy_conf);
4944 <    yy_match_item->action = SHARED_ALL;
4945 <  }
4940 >  if (conf_parser_ctx.pass != 2)
4941 >    break;
4942 >
4943 >  reset_block_state();
4944 >
4945 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4946 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4947 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4948 >  block_state.flags.value = SHARED_ALL;
4949   }
4950 + #line 4951 "conf_parser.c" /* yacc.c:1646  */
4951      break;
4952  
4953 <  case 303:
4954 < /* Line 1787 of yacc.c  */
5077 < #line 1837 "conf_parser.y"
4953 >  case 367:
4954 > #line 1897 "conf_parser.y" /* yacc.c:1646  */
4955      {
4956 <  if (conf_parser_ctx.pass == 2)
4957 <  {
4958 <    yy_conf = NULL;
4959 <  }
4956 >  if (conf_parser_ctx.pass != 2)
4957 >    break;
4958 >
4959 >  struct SharedItem *shared = shared_make();
4960 >  shared->type = block_state.flags.value;
4961 >  shared->server = xstrdup(block_state.name.buf);
4962 >  shared->user = xstrdup(block_state.user.buf);
4963 >  shared->host = xstrdup(block_state.host.buf);
4964   }
4965 + #line 4966 "conf_parser.c" /* yacc.c:1646  */
4966      break;
4967  
4968 <  case 310:
4969 < /* Line 1787 of yacc.c  */
5088 < #line 1848 "conf_parser.y"
4968 >  case 374:
4969 > #line 1912 "conf_parser.y" /* yacc.c:1646  */
4970      {
4971    if (conf_parser_ctx.pass == 2)
4972 <  {
5092 <    MyFree(yy_conf->name);
5093 <    DupString(yy_conf->name, yylval.string);
5094 <  }
4972 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4973   }
4974 + #line 4975 "conf_parser.c" /* yacc.c:1646  */
4975      break;
4976  
4977 <  case 311:
4978 < /* Line 1787 of yacc.c  */
5100 < #line 1857 "conf_parser.y"
4977 >  case 375:
4978 > #line 1918 "conf_parser.y" /* yacc.c:1646  */
4979      {
4980    if (conf_parser_ctx.pass == 2)
4981    {
# Line 5105 | Line 4983 | yyreduce:
4983  
4984      nuh.nuhmask  = yylval.string;
4985      nuh.nickptr  = NULL;
4986 <    nuh.userptr  = userbuf;
4987 <    nuh.hostptr  = hostbuf;
4986 >    nuh.userptr  = block_state.user.buf;
4987 >    nuh.hostptr  = block_state.host.buf;
4988  
4989      nuh.nicksize = 0;
4990 <    nuh.usersize = sizeof(userbuf);
4991 <    nuh.hostsize = sizeof(hostbuf);
4990 >    nuh.usersize = sizeof(block_state.user.buf);
4991 >    nuh.hostsize = sizeof(block_state.host.buf);
4992  
4993      split_nuh(&nuh);
5116
5117    DupString(yy_match_item->user, userbuf);
5118    DupString(yy_match_item->host, hostbuf);
4994    }
4995   }
4996 + #line 4997 "conf_parser.c" /* yacc.c:1646  */
4997      break;
4998  
4999 <  case 312:
5000 < /* Line 1787 of yacc.c  */
5125 < #line 1879 "conf_parser.y"
4999 >  case 376:
5000 > #line 1937 "conf_parser.y" /* yacc.c:1646  */
5001      {
5002    if (conf_parser_ctx.pass == 2)
5003 <    yy_match_item->action = 0;
5003 >    block_state.flags.value = 0;
5004   }
5005 + #line 5006 "conf_parser.c" /* yacc.c:1646  */
5006      break;
5007  
5008 <  case 316:
5009 < /* Line 1787 of yacc.c  */
5134 < #line 1886 "conf_parser.y"
5008 >  case 380:
5009 > #line 1944 "conf_parser.y" /* yacc.c:1646  */
5010      {
5011    if (conf_parser_ctx.pass == 2)
5012 <    yy_match_item->action |= SHARED_KLINE;
5012 >    block_state.flags.value |= SHARED_KLINE;
5013   }
5014 + #line 5015 "conf_parser.c" /* yacc.c:1646  */
5015      break;
5016  
5017 <  case 317:
5018 < /* Line 1787 of yacc.c  */
5143 < #line 1890 "conf_parser.y"
5017 >  case 381:
5018 > #line 1948 "conf_parser.y" /* yacc.c:1646  */
5019      {
5020    if (conf_parser_ctx.pass == 2)
5021 <    yy_match_item->action |= SHARED_UNKLINE;
5021 >    block_state.flags.value |= SHARED_UNKLINE;
5022   }
5023 + #line 5024 "conf_parser.c" /* yacc.c:1646  */
5024      break;
5025  
5026 <  case 318:
5027 < /* Line 1787 of yacc.c  */
5152 < #line 1894 "conf_parser.y"
5026 >  case 382:
5027 > #line 1952 "conf_parser.y" /* yacc.c:1646  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    yy_match_item->action |= SHARED_DLINE;
5030 >    block_state.flags.value |= SHARED_DLINE;
5031   }
5032 + #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035 <  case 319:
5036 < /* Line 1787 of yacc.c  */
5161 < #line 1898 "conf_parser.y"
5035 >  case 383:
5036 > #line 1956 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    yy_match_item->action |= SHARED_UNDLINE;
5039 >    block_state.flags.value |= SHARED_UNDLINE;
5040   }
5041 + #line 5042 "conf_parser.c" /* yacc.c:1646  */
5042      break;
5043  
5044 <  case 320:
5045 < /* Line 1787 of yacc.c  */
5170 < #line 1902 "conf_parser.y"
5044 >  case 384:
5045 > #line 1960 "conf_parser.y" /* yacc.c:1646  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    yy_match_item->action |= SHARED_XLINE;
5048 >    block_state.flags.value |= SHARED_XLINE;
5049   }
5050 + #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053 <  case 321:
5054 < /* Line 1787 of yacc.c  */
5179 < #line 1906 "conf_parser.y"
5053 >  case 385:
5054 > #line 1964 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    yy_match_item->action |= SHARED_UNXLINE;
5057 >    block_state.flags.value |= SHARED_UNXLINE;
5058   }
5059 + #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062 <  case 322:
5063 < /* Line 1787 of yacc.c  */
5188 < #line 1910 "conf_parser.y"
5062 >  case 386:
5063 > #line 1968 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    yy_match_item->action |= SHARED_RESV;
5066 >    block_state.flags.value |= SHARED_RESV;
5067   }
5068 + #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071 <  case 323:
5072 < /* Line 1787 of yacc.c  */
5197 < #line 1914 "conf_parser.y"
5071 >  case 387:
5072 > #line 1972 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075 <    yy_match_item->action |= SHARED_UNRESV;
5075 >    block_state.flags.value |= SHARED_UNRESV;
5076   }
5077 + #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080 <  case 324:
5081 < /* Line 1787 of yacc.c  */
5206 < #line 1918 "conf_parser.y"
5080 >  case 388:
5081 > #line 1976 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_match_item->action |= SHARED_LOCOPS;
5084 >    block_state.flags.value |= SHARED_LOCOPS;
5085   }
5086 + #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089 <  case 325:
5090 < /* Line 1787 of yacc.c  */
5215 < #line 1922 "conf_parser.y"
5089 >  case 389:
5090 > #line 1980 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093 <    yy_match_item->action = SHARED_ALL;
5093 >    block_state.flags.value = SHARED_ALL;
5094   }
5095 + #line 5096 "conf_parser.c" /* yacc.c:1646  */
5096      break;
5097  
5098 <  case 326:
5099 < /* Line 1787 of yacc.c  */
5224 < #line 1931 "conf_parser.y"
5098 >  case 390:
5099 > #line 1990 "conf_parser.y" /* yacc.c:1646  */
5100      {
5101 <  if (conf_parser_ctx.pass == 2)
5102 <  {
5103 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5104 <    yy_conf->flags = SHARED_ALL;
5105 <  }
5101 >  if (conf_parser_ctx.pass != 2)
5102 >    break;
5103 >
5104 >  reset_block_state();
5105 >
5106 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5107 >  block_state.flags.value = CLUSTER_ALL;
5108   }
5109 + #line 5110 "conf_parser.c" /* yacc.c:1646  */
5110      break;
5111  
5112 <  case 327:
5113 < /* Line 1787 of yacc.c  */
5236 < #line 1938 "conf_parser.y"
5112 >  case 391:
5113 > #line 1999 "conf_parser.y" /* yacc.c:1646  */
5114      {
5115 <  if (conf_parser_ctx.pass == 2)
5116 <  {
5117 <    if (yy_conf->name == NULL)
5118 <      DupString(yy_conf->name, "*");
5119 <    yy_conf = NULL;
5120 <  }
5115 >  if (conf_parser_ctx.pass != 2)
5116 >    break;
5117 >
5118 >  struct ClusterItem *cluster = cluster_make();
5119 >  cluster->type = block_state.flags.value;
5120 >  cluster->server = xstrdup(block_state.name.buf);
5121   }
5122 + #line 5123 "conf_parser.c" /* yacc.c:1646  */
5123      break;
5124  
5125 <  case 333:
5126 < /* Line 1787 of yacc.c  */
5249 < #line 1951 "conf_parser.y"
5125 >  case 397:
5126 > #line 2012 "conf_parser.y" /* yacc.c:1646  */
5127      {
5128    if (conf_parser_ctx.pass == 2)
5129 <    DupString(yy_conf->name, yylval.string);
5129 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5130   }
5131 + #line 5132 "conf_parser.c" /* yacc.c:1646  */
5132      break;
5133  
5134 <  case 334:
5135 < /* Line 1787 of yacc.c  */
5258 < #line 1957 "conf_parser.y"
5134 >  case 398:
5135 > #line 2018 "conf_parser.y" /* yacc.c:1646  */
5136      {
5137    if (conf_parser_ctx.pass == 2)
5138 <    yy_conf->flags = 0;
5138 >    block_state.flags.value = 0;
5139   }
5140 + #line 5141 "conf_parser.c" /* yacc.c:1646  */
5141      break;
5142  
5143 <  case 338:
5144 < /* Line 1787 of yacc.c  */
5267 < #line 1964 "conf_parser.y"
5143 >  case 402:
5144 > #line 2025 "conf_parser.y" /* yacc.c:1646  */
5145      {
5146    if (conf_parser_ctx.pass == 2)
5147 <    yy_conf->flags |= SHARED_KLINE;
5147 >    block_state.flags.value |= CLUSTER_KLINE;
5148   }
5149 + #line 5150 "conf_parser.c" /* yacc.c:1646  */
5150      break;
5151  
5152 <  case 339:
5153 < /* Line 1787 of yacc.c  */
5276 < #line 1968 "conf_parser.y"
5152 >  case 403:
5153 > #line 2029 "conf_parser.y" /* yacc.c:1646  */
5154      {
5155    if (conf_parser_ctx.pass == 2)
5156 <    yy_conf->flags |= SHARED_UNKLINE;
5156 >    block_state.flags.value |= CLUSTER_UNKLINE;
5157   }
5158 + #line 5159 "conf_parser.c" /* yacc.c:1646  */
5159      break;
5160  
5161 <  case 340:
5162 < /* Line 1787 of yacc.c  */
5285 < #line 1972 "conf_parser.y"
5161 >  case 404:
5162 > #line 2033 "conf_parser.y" /* yacc.c:1646  */
5163      {
5164    if (conf_parser_ctx.pass == 2)
5165 <    yy_conf->flags |= SHARED_DLINE;
5165 >    block_state.flags.value |= CLUSTER_DLINE;
5166   }
5167 + #line 5168 "conf_parser.c" /* yacc.c:1646  */
5168      break;
5169  
5170 <  case 341:
5171 < /* Line 1787 of yacc.c  */
5294 < #line 1976 "conf_parser.y"
5170 >  case 405:
5171 > #line 2037 "conf_parser.y" /* yacc.c:1646  */
5172      {
5173    if (conf_parser_ctx.pass == 2)
5174 <    yy_conf->flags |= SHARED_UNDLINE;
5174 >    block_state.flags.value |= CLUSTER_UNDLINE;
5175   }
5176 + #line 5177 "conf_parser.c" /* yacc.c:1646  */
5177      break;
5178  
5179 <  case 342:
5180 < /* Line 1787 of yacc.c  */
5303 < #line 1980 "conf_parser.y"
5179 >  case 406:
5180 > #line 2041 "conf_parser.y" /* yacc.c:1646  */
5181      {
5182    if (conf_parser_ctx.pass == 2)
5183 <    yy_conf->flags |= SHARED_XLINE;
5183 >    block_state.flags.value |= CLUSTER_XLINE;
5184   }
5185 + #line 5186 "conf_parser.c" /* yacc.c:1646  */
5186      break;
5187  
5188 <  case 343:
5189 < /* Line 1787 of yacc.c  */
5312 < #line 1984 "conf_parser.y"
5188 >  case 407:
5189 > #line 2045 "conf_parser.y" /* yacc.c:1646  */
5190      {
5191    if (conf_parser_ctx.pass == 2)
5192 <    yy_conf->flags |= SHARED_UNXLINE;
5192 >    block_state.flags.value |= CLUSTER_UNXLINE;
5193   }
5194 + #line 5195 "conf_parser.c" /* yacc.c:1646  */
5195      break;
5196  
5197 <  case 344:
5198 < /* Line 1787 of yacc.c  */
5321 < #line 1988 "conf_parser.y"
5197 >  case 408:
5198 > #line 2049 "conf_parser.y" /* yacc.c:1646  */
5199      {
5200    if (conf_parser_ctx.pass == 2)
5201 <    yy_conf->flags |= SHARED_RESV;
5201 >    block_state.flags.value |= CLUSTER_RESV;
5202   }
5203 + #line 5204 "conf_parser.c" /* yacc.c:1646  */
5204      break;
5205  
5206 <  case 345:
5207 < /* Line 1787 of yacc.c  */
5330 < #line 1992 "conf_parser.y"
5206 >  case 409:
5207 > #line 2053 "conf_parser.y" /* yacc.c:1646  */
5208      {
5209    if (conf_parser_ctx.pass == 2)
5210 <    yy_conf->flags |= SHARED_UNRESV;
5210 >    block_state.flags.value |= CLUSTER_UNRESV;
5211   }
5212 + #line 5213 "conf_parser.c" /* yacc.c:1646  */
5213      break;
5214  
5215 <  case 346:
5216 < /* Line 1787 of yacc.c  */
5339 < #line 1996 "conf_parser.y"
5215 >  case 410:
5216 > #line 2057 "conf_parser.y" /* yacc.c:1646  */
5217      {
5218    if (conf_parser_ctx.pass == 2)
5219 <    yy_conf->flags |= SHARED_LOCOPS;
5219 >    block_state.flags.value |= CLUSTER_LOCOPS;
5220   }
5221 + #line 5222 "conf_parser.c" /* yacc.c:1646  */
5222      break;
5223  
5224 <  case 347:
5225 < /* Line 1787 of yacc.c  */
5348 < #line 2000 "conf_parser.y"
5224 >  case 411:
5225 > #line 2061 "conf_parser.y" /* yacc.c:1646  */
5226      {
5227    if (conf_parser_ctx.pass == 2)
5228 <    yy_conf->flags = SHARED_ALL;
5228 >    block_state.flags.value = CLUSTER_ALL;
5229   }
5230 + #line 5231 "conf_parser.c" /* yacc.c:1646  */
5231      break;
5232  
5233 <  case 348:
5234 < /* Line 1787 of yacc.c  */
5357 < #line 2009 "conf_parser.y"
5233 >  case 412:
5234 > #line 2071 "conf_parser.y" /* yacc.c:1646  */
5235      {
5359  if (conf_parser_ctx.pass == 2)
5360  {
5361    yy_conf = make_conf_item(SERVER_TYPE);
5362    yy_aconf = map_to_conf(yy_conf);
5236  
5237 <    /* defaults */
5238 <    yy_aconf->port = PORTNUM;
5239 <  }
5240 <  else
5241 <  {
5242 <    MyFree(class_name);
5370 <    class_name = NULL;
5371 <  }
5237 >  if (conf_parser_ctx.pass != 2)
5238 >    break;
5239 >
5240 >  reset_block_state();
5241 >  block_state.aftype.value = AF_INET;
5242 >  block_state.port.value = PORTNUM;
5243   }
5244 + #line 5245 "conf_parser.c" /* yacc.c:1646  */
5245      break;
5246  
5247 <  case 349:
5248 < /* Line 1787 of yacc.c  */
5377 < #line 2024 "conf_parser.y"
5247 >  case 413:
5248 > #line 2080 "conf_parser.y" /* yacc.c:1646  */
5249      {
5250 <  if (conf_parser_ctx.pass == 2)
5250 >  struct MaskItem *conf = NULL;
5251 >  struct addrinfo hints, *res;
5252 >
5253 >  if (conf_parser_ctx.pass != 2)
5254 >    break;
5255 >
5256 >  if (!block_state.name.buf[0] ||
5257 >      !block_state.host.buf[0])
5258 >    break;
5259 >
5260 >  if (!block_state.rpass.buf[0] ||
5261 >      !block_state.spass.buf[0])
5262 >    break;
5263 >
5264 >  if (has_wildcards(block_state.name.buf) ||
5265 >      has_wildcards(block_state.host.buf))
5266 >    break;
5267 >
5268 >  conf = conf_make(CONF_SERVER);
5269 >  conf->port = block_state.port.value;
5270 >  conf->flags = block_state.flags.value;
5271 >  conf->aftype = block_state.aftype.value;
5272 >  conf->host = xstrdup(block_state.host.buf);
5273 >  conf->name = xstrdup(block_state.name.buf);
5274 >  conf->passwd = xstrdup(block_state.rpass.buf);
5275 >  conf->spasswd = xstrdup(block_state.spass.buf);
5276 >
5277 >  if (block_state.cert.buf[0])
5278 >    conf->certfp = xstrdup(block_state.cert.buf);
5279 >
5280 >  if (block_state.ciph.buf[0])
5281 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5282 >
5283 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5284 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5285 >
5286 >  if (block_state.bind.buf[0])
5287    {
5288 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5289 <    {
5290 <      if (conf_add_server(yy_conf, class_name) == -1)
5291 <        delete_conf_item(yy_conf);
5292 <    }
5288 >    memset(&hints, 0, sizeof(hints));
5289 >
5290 >    hints.ai_family   = AF_UNSPEC;
5291 >    hints.ai_socktype = SOCK_STREAM;
5292 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5293 >
5294 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5295 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5296      else
5297      {
5298 <      if (yy_conf->name != NULL)
5389 <      {
5390 <        if (yy_aconf->host == NULL)
5391 <          yyerror("Ignoring connect block -- missing host");
5392 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5393 <          yyerror("Ignoring connect block -- missing password");
5394 <      }
5298 >      assert(res);
5299  
5300 <      /* XXX
5301 <       * This fixes a try_connections() core (caused by invalid class_ptr
5302 <       * pointers) reported by metalrock. That's an ugly fix, but there
5303 <       * is currently no better way. The entire config subsystem needs an
5400 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5401 <       * a doubly linked list immediately without any sanity checks!  -Michael
5402 <       */
5403 <      delete_conf_item(yy_conf);
5300 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5301 >      conf->bind.ss.ss_family = res->ai_family;
5302 >      conf->bind.ss_len = res->ai_addrlen;
5303 >      freeaddrinfo(res);
5304      }
5405
5406    MyFree(class_name);
5407    class_name = NULL;
5408    yy_conf = NULL;
5409    yy_aconf = NULL;
5305    }
5306 +
5307 +  conf_add_class_to_conf(conf, block_state.class.buf);
5308 +  lookup_confhost(conf);
5309   }
5310 + #line 5311 "conf_parser.c" /* yacc.c:1646  */
5311      break;
5312  
5313 <  case 366:
5314 < /* Line 1787 of yacc.c  */
5416 < #line 2068 "conf_parser.y"
5313 >  case 431:
5314 > #line 2160 "conf_parser.y" /* yacc.c:1646  */
5315      {
5316    if (conf_parser_ctx.pass == 2)
5317 <  {
5420 <    MyFree(yy_conf->name);
5421 <    DupString(yy_conf->name, yylval.string);
5422 <  }
5317 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5318   }
5319 + #line 5320 "conf_parser.c" /* yacc.c:1646  */
5320      break;
5321  
5322 <  case 367:
5323 < /* Line 1787 of yacc.c  */
5428 < #line 2077 "conf_parser.y"
5322 >  case 432:
5323 > #line 2166 "conf_parser.y" /* yacc.c:1646  */
5324      {
5325    if (conf_parser_ctx.pass == 2)
5326 <  {
5432 <    MyFree(yy_aconf->host);
5433 <    DupString(yy_aconf->host, yylval.string);
5434 <  }
5326 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5327   }
5328 + #line 5329 "conf_parser.c" /* yacc.c:1646  */
5329      break;
5330  
5331 <  case 368:
5332 < /* Line 1787 of yacc.c  */
5440 < #line 2086 "conf_parser.y"
5331 >  case 433:
5332 > #line 2172 "conf_parser.y" /* yacc.c:1646  */
5333      {
5334    if (conf_parser_ctx.pass == 2)
5335 <  {
5336 <    struct addrinfo hints, *res;
5337 <
5338 <    memset(&hints, 0, sizeof(hints));
5447 <
5448 <    hints.ai_family   = AF_UNSPEC;
5449 <    hints.ai_socktype = SOCK_STREAM;
5450 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5335 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5336 > }
5337 > #line 5338 "conf_parser.c" /* yacc.c:1646  */
5338 >    break;
5339  
5340 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5341 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5454 <    else
5340 >  case 434:
5341 > #line 2178 "conf_parser.y" /* yacc.c:1646  */
5342      {
5343 <      assert(res != NULL);
5343 >  if (conf_parser_ctx.pass != 2)
5344 >    break;
5345  
5346 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5347 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5348 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5349 <      freeaddrinfo(res);
5350 <    }
5351 <  }
5346 >  if ((yyvsp[-1].string)[0] == ':')
5347 >    conf_error_report("Server passwords cannot begin with a colon");
5348 >  else if (strchr((yyvsp[-1].string), ' '))
5349 >    conf_error_report("Server passwords cannot contain spaces");
5350 >  else
5351 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5352   }
5353 + #line 5354 "conf_parser.c" /* yacc.c:1646  */
5354      break;
5355  
5356 <  case 369:
5357 < /* Line 1787 of yacc.c  */
5469 < #line 2112 "conf_parser.y"
5356 >  case 435:
5357 > #line 2191 "conf_parser.y" /* yacc.c:1646  */
5358      {
5359 <  if (conf_parser_ctx.pass == 2)
5360 <  {
5473 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5474 <      yyerror("Server passwords cannot begin with a colon");
5475 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5476 <      yyerror("Server passwords cannot contain spaces");
5477 <    else {
5478 <      if (yy_aconf->spasswd != NULL)
5479 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5359 >  if (conf_parser_ctx.pass != 2)
5360 >    break;
5361  
5362 <      MyFree(yy_aconf->spasswd);
5363 <      DupString(yy_aconf->spasswd, yylval.string);
5364 <    }
5365 <  }
5362 >  if ((yyvsp[-1].string)[0] == ':')
5363 >    conf_error_report("Server passwords cannot begin with a colon");
5364 >  else if (strchr((yyvsp[-1].string), ' '))
5365 >    conf_error_report("Server passwords cannot contain spaces");
5366 >  else
5367 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5368   }
5369 + #line 5370 "conf_parser.c" /* yacc.c:1646  */
5370      break;
5371  
5372 <  case 370:
5373 < /* Line 1787 of yacc.c  */
5490 < #line 2130 "conf_parser.y"
5372 >  case 436:
5373 > #line 2204 "conf_parser.y" /* yacc.c:1646  */
5374      {
5375    if (conf_parser_ctx.pass == 2)
5376 <  {
5494 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5495 <      yyerror("Server passwords cannot begin with a colon");
5496 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5497 <      yyerror("Server passwords cannot contain spaces");
5498 <    else {
5499 <      if (yy_aconf->passwd != NULL)
5500 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5501 <
5502 <      MyFree(yy_aconf->passwd);
5503 <      DupString(yy_aconf->passwd, yylval.string);
5504 <    }
5505 <  }
5376 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5377   }
5378 + #line 5379 "conf_parser.c" /* yacc.c:1646  */
5379      break;
5380  
5381 <  case 371:
5382 < /* Line 1787 of yacc.c  */
5511 < #line 2148 "conf_parser.y"
5381 >  case 437:
5382 > #line 2210 "conf_parser.y" /* yacc.c:1646  */
5383      {
5384    if (conf_parser_ctx.pass == 2)
5385 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5385 >    block_state.port.value = (yyvsp[-1].number);
5386   }
5387 + #line 5388 "conf_parser.c" /* yacc.c:1646  */
5388      break;
5389  
5390 <  case 372:
5391 < /* Line 1787 of yacc.c  */
5520 < #line 2154 "conf_parser.y"
5390 >  case 438:
5391 > #line 2216 "conf_parser.y" /* yacc.c:1646  */
5392      {
5393    if (conf_parser_ctx.pass == 2)
5394 <    yy_aconf->aftype = AF_INET;
5394 >    block_state.aftype.value = AF_INET;
5395   }
5396 + #line 5397 "conf_parser.c" /* yacc.c:1646  */
5397      break;
5398  
5399 <  case 373:
5400 < /* Line 1787 of yacc.c  */
5529 < #line 2158 "conf_parser.y"
5399 >  case 439:
5400 > #line 2220 "conf_parser.y" /* yacc.c:1646  */
5401      {
5531 #ifdef IPV6
5402    if (conf_parser_ctx.pass == 2)
5403 <    yy_aconf->aftype = AF_INET6;
5534 < #endif
5403 >    block_state.aftype.value = AF_INET6;
5404   }
5405 + #line 5406 "conf_parser.c" /* yacc.c:1646  */
5406      break;
5407  
5408 <  case 374:
5409 < /* Line 1787 of yacc.c  */
5540 < #line 2166 "conf_parser.y"
5408 >  case 440:
5409 > #line 2226 "conf_parser.y" /* yacc.c:1646  */
5410      {
5411 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5412   }
5413 + #line 5414 "conf_parser.c" /* yacc.c:1646  */
5414      break;
5415  
5416 <  case 378:
5417 < /* Line 1787 of yacc.c  */
5547 < #line 2171 "conf_parser.y"
5416 >  case 444:
5417 > #line 2232 "conf_parser.y" /* yacc.c:1646  */
5418      {
5419    if (conf_parser_ctx.pass == 2)
5420 <    SetConfAllowAutoConn(yy_aconf);
5420 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5421   }
5422 + #line 5423 "conf_parser.c" /* yacc.c:1646  */
5423      break;
5424  
5425 <  case 379:
5426 < /* Line 1787 of yacc.c  */
5556 < #line 2175 "conf_parser.y"
5425 >  case 445:
5426 > #line 2236 "conf_parser.y" /* yacc.c:1646  */
5427      {
5428    if (conf_parser_ctx.pass == 2)
5429 <    SetConfSSL(yy_aconf);
5429 >    block_state.flags.value |= CONF_FLAGS_SSL;
5430   }
5431 + #line 5432 "conf_parser.c" /* yacc.c:1646  */
5432      break;
5433  
5434 <  case 380:
5435 < /* Line 1787 of yacc.c  */
5565 < #line 2181 "conf_parser.y"
5434 >  case 446:
5435 > #line 2242 "conf_parser.y" /* yacc.c:1646  */
5436      {
5437    if (conf_parser_ctx.pass == 2)
5438    {
5439      if (yylval.number)
5440 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5440 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5441      else
5442 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5442 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5443    }
5444   }
5445 + #line 5446 "conf_parser.c" /* yacc.c:1646  */
5446      break;
5447  
5448 <  case 381:
5449 < /* Line 1787 of yacc.c  */
5579 < #line 2192 "conf_parser.y"
5448 >  case 447:
5449 > #line 2253 "conf_parser.y" /* yacc.c:1646  */
5450      {
5451    if (conf_parser_ctx.pass == 2)
5452 <  {
5583 <    char *mask;
5584 <
5585 <    DupString(mask, yylval.string);
5586 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5587 <  }
5452 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5453   }
5454 + #line 5455 "conf_parser.c" /* yacc.c:1646  */
5455      break;
5456  
5457 <  case 382:
5458 < /* Line 1787 of yacc.c  */
5593 < #line 2203 "conf_parser.y"
5457 >  case 448:
5458 > #line 2259 "conf_parser.y" /* yacc.c:1646  */
5459      {
5460    if (conf_parser_ctx.pass == 2)
5461 <  {
5597 <    char *mask;
5598 <
5599 <    DupString(mask, yylval.string);
5600 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5601 <  }
5461 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5462   }
5463 + #line 5464 "conf_parser.c" /* yacc.c:1646  */
5464      break;
5465  
5466 <  case 383:
5467 < /* Line 1787 of yacc.c  */
5607 < #line 2214 "conf_parser.y"
5466 >  case 449:
5467 > #line 2265 "conf_parser.y" /* yacc.c:1646  */
5468      {
5469    if (conf_parser_ctx.pass == 2)
5470 <  {
5611 <    MyFree(class_name);
5612 <    DupString(class_name, yylval.string);
5613 <  }
5470 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5471   }
5472 + #line 5473 "conf_parser.c" /* yacc.c:1646  */
5473      break;
5474  
5475 <  case 384:
5476 < /* Line 1787 of yacc.c  */
5619 < #line 2223 "conf_parser.y"
5475 >  case 450:
5476 > #line 2271 "conf_parser.y" /* yacc.c:1646  */
5477      {
5478 < #ifdef HAVE_LIBCRYPTO
5478 > #ifdef HAVE_TLS
5479    if (conf_parser_ctx.pass == 2)
5480 <  {
5624 <    MyFree(yy_aconf->cipher_list);
5625 <    DupString(yy_aconf->cipher_list, yylval.string);
5626 <  }
5480 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5481   #else
5482    if (conf_parser_ctx.pass == 2)
5483 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5483 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5484   #endif
5485   }
5486 + #line 5487 "conf_parser.c" /* yacc.c:1646  */
5487      break;
5488  
5489 <  case 385:
5490 < /* Line 1787 of yacc.c  */
5636 < #line 2241 "conf_parser.y"
5489 >  case 451:
5490 > #line 2286 "conf_parser.y" /* yacc.c:1646  */
5491      {
5492    if (conf_parser_ctx.pass == 2)
5493 <  {
5640 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5641 <    regex_ban = 0;
5642 <  }
5493 >    reset_block_state();
5494   }
5495 + #line 5496 "conf_parser.c" /* yacc.c:1646  */
5496      break;
5497  
5498 <  case 386:
5499 < /* Line 1787 of yacc.c  */
5648 < #line 2248 "conf_parser.y"
5498 >  case 452:
5499 > #line 2290 "conf_parser.y" /* yacc.c:1646  */
5500      {
5501 <  if (conf_parser_ctx.pass == 2)
5651 <  {
5652 <    if (userbuf[0] && hostbuf[0])
5653 <    {
5654 <      if (regex_ban)
5655 <      {
5656 < #ifdef HAVE_LIBPCRE
5657 <        void *exp_user = NULL;
5658 <        void *exp_host = NULL;
5659 <        const char *errptr = NULL;
5660 <
5661 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5662 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5663 <        {
5664 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5665 <               errptr);
5666 <          break;
5667 <        }
5668 <
5669 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5670 <        yy_aconf->regexuser = exp_user;
5671 <        yy_aconf->regexhost = exp_host;
5672 <
5673 <        DupString(yy_aconf->user, userbuf);
5674 <        DupString(yy_aconf->host, hostbuf);
5675 <
5676 <        if (reasonbuf[0])
5677 <          DupString(yy_aconf->reason, reasonbuf);
5678 <        else
5679 <          DupString(yy_aconf->reason, "No reason");
5680 < #else
5681 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5682 <        break;
5683 < #endif
5684 <      }
5685 <      else
5686 <      {
5687 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
5688 <
5689 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5501 >  struct MaskItem *conf = NULL;
5502  
5503 <        DupString(yy_aconf->user, userbuf);
5692 <        DupString(yy_aconf->host, hostbuf);
5693 <
5694 <        if (reasonbuf[0])
5695 <          DupString(yy_aconf->reason, reasonbuf);
5696 <        else
5697 <          DupString(yy_aconf->reason, "No reason");
5698 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5699 <      }
5700 <    }
5701 <
5702 <    yy_aconf = NULL;
5703 <  }
5704 < }
5503 >  if (conf_parser_ctx.pass != 2)
5504      break;
5505  
5506 <  case 387:
5507 < /* Line 1787 of yacc.c  */
5709 < #line 2306 "conf_parser.y"
5710 <    {
5711 < }
5506 >  if (!block_state.user.buf[0] ||
5507 >      !block_state.host.buf[0])
5508      break;
5509  
5510 <  case 391:
5511 < /* Line 1787 of yacc.c  */
5512 < #line 2311 "conf_parser.y"
5513 <    {
5514 <  if (conf_parser_ctx.pass == 2)
5515 <    regex_ban = 1;
5510 >  conf = conf_make(CONF_KLINE);
5511 >  conf->user = xstrdup(block_state.user.buf);
5512 >  conf->host = xstrdup(block_state.host.buf);
5513 >
5514 >  if (block_state.rpass.buf[0])
5515 >    conf->reason = xstrdup(block_state.rpass.buf);
5516 >  else
5517 >    conf->reason = xstrdup(CONF_NOREASON);
5518 >  add_conf_by_address(CONF_KLINE, conf);
5519   }
5520 + #line 5521 "conf_parser.c" /* yacc.c:1646  */
5521      break;
5522  
5523 <  case 398:
5524 < /* Line 1787 of yacc.c  */
5725 < #line 2320 "conf_parser.y"
5523 >  case 458:
5524 > #line 2315 "conf_parser.y" /* yacc.c:1646  */
5525      {
5526 +
5527    if (conf_parser_ctx.pass == 2)
5528    {
5529      struct split_nuh_item nuh;
5530  
5531      nuh.nuhmask  = yylval.string;
5532      nuh.nickptr  = NULL;
5533 <    nuh.userptr  = userbuf;
5534 <    nuh.hostptr  = hostbuf;
5533 >    nuh.userptr  = block_state.user.buf;
5534 >    nuh.hostptr  = block_state.host.buf;
5535  
5536      nuh.nicksize = 0;
5537 <    nuh.usersize = sizeof(userbuf);
5538 <    nuh.hostsize = sizeof(hostbuf);
5537 >    nuh.usersize = sizeof(block_state.user.buf);
5538 >    nuh.hostsize = sizeof(block_state.host.buf);
5539  
5540      split_nuh(&nuh);
5541    }
5542   }
5543 + #line 5544 "conf_parser.c" /* yacc.c:1646  */
5544      break;
5545  
5546 <  case 399:
5547 < /* Line 1787 of yacc.c  */
5747 < #line 2339 "conf_parser.y"
5546 >  case 459:
5547 > #line 2335 "conf_parser.y" /* yacc.c:1646  */
5548      {
5549    if (conf_parser_ctx.pass == 2)
5550 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5550 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5551   }
5552 + #line 5553 "conf_parser.c" /* yacc.c:1646  */
5553      break;
5554  
5555 <  case 400:
5556 < /* Line 1787 of yacc.c  */
5756 < #line 2348 "conf_parser.y"
5555 >  case 460:
5556 > #line 2345 "conf_parser.y" /* yacc.c:1646  */
5557      {
5558    if (conf_parser_ctx.pass == 2)
5559 <    hostbuf[0] = reasonbuf[0] = '\0';
5559 >    reset_block_state();
5560   }
5561 + #line 5562 "conf_parser.c" /* yacc.c:1646  */
5562      break;
5563  
5564 <  case 401:
5565 < /* Line 1787 of yacc.c  */
5765 < #line 2352 "conf_parser.y"
5564 >  case 461:
5565 > #line 2349 "conf_parser.y" /* yacc.c:1646  */
5566      {
5567 <  if (conf_parser_ctx.pass == 2)
5768 <  {
5769 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5770 <    {
5771 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5567 >  struct MaskItem *conf = NULL;
5568  
5569 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5570 <      DupString(yy_aconf->host, hostbuf);
5569 >  if (conf_parser_ctx.pass != 2)
5570 >    break;
5571  
5572 <      if (reasonbuf[0])
5573 <        DupString(yy_aconf->reason, reasonbuf);
5574 <      else
5575 <        DupString(yy_aconf->reason, "No reason");
5576 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5577 <      yy_aconf = NULL;
5578 <    }
5572 >  if (!block_state.addr.buf[0])
5573 >    break;
5574 >
5575 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5576 >  {
5577 >    conf = conf_make(CONF_DLINE);
5578 >    conf->host = xstrdup(block_state.addr.buf);
5579 >
5580 >    if (block_state.rpass.buf[0])
5581 >      conf->reason = xstrdup(block_state.rpass.buf);
5582 >    else
5583 >      conf->reason = xstrdup(CONF_NOREASON);
5584 >    add_conf_by_address(CONF_DLINE, conf);
5585    }
5586   }
5587 + #line 5588 "conf_parser.c" /* yacc.c:1646  */
5588      break;
5589  
5590 <  case 407:
5591 < /* Line 1787 of yacc.c  */
5789 < #line 2376 "conf_parser.y"
5590 >  case 467:
5591 > #line 2375 "conf_parser.y" /* yacc.c:1646  */
5592      {
5593    if (conf_parser_ctx.pass == 2)
5594 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5594 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5595   }
5596 + #line 5597 "conf_parser.c" /* yacc.c:1646  */
5597      break;
5598  
5599 <  case 408:
5600 < /* Line 1787 of yacc.c  */
5798 < #line 2382 "conf_parser.y"
5599 >  case 468:
5600 > #line 2381 "conf_parser.y" /* yacc.c:1646  */
5601      {
5602    if (conf_parser_ctx.pass == 2)
5603 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5603 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5604   }
5605 + #line 5606 "conf_parser.c" /* yacc.c:1646  */
5606      break;
5607  
5608 <  case 414:
5609 < /* Line 1787 of yacc.c  */
5807 < #line 2396 "conf_parser.y"
5608 >  case 474:
5609 > #line 2396 "conf_parser.y" /* yacc.c:1646  */
5610      {
5611    if (conf_parser_ctx.pass == 2)
5612    {
5613 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5613 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5614      {
5615 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5616 <      DupString(yy_aconf->host, yylval.string);
5615 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5616 >      conf->host = xstrdup(yylval.string);
5617  
5618 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5817 <      yy_aconf = NULL;
5618 >      add_conf_by_address(CONF_EXEMPT, conf);
5619      }
5620    }
5621   }
5622 + #line 5623 "conf_parser.c" /* yacc.c:1646  */
5623      break;
5624  
5625 <  case 415:
5626 < /* Line 1787 of yacc.c  */
5825 < #line 2414 "conf_parser.y"
5625 >  case 475:
5626 > #line 2413 "conf_parser.y" /* yacc.c:1646  */
5627      {
5628    if (conf_parser_ctx.pass == 2)
5629 <  {
5829 <    regex_ban = 0;
5830 <    reasonbuf[0] = gecos_name[0] = '\0';
5831 <  }
5629 >    reset_block_state();
5630   }
5631 + #line 5632 "conf_parser.c" /* yacc.c:1646  */
5632      break;
5633  
5634 <  case 416:
5635 < /* Line 1787 of yacc.c  */
5837 < #line 2421 "conf_parser.y"
5634 >  case 476:
5635 > #line 2417 "conf_parser.y" /* yacc.c:1646  */
5636      {
5637 <  if (conf_parser_ctx.pass == 2)
5840 <  {
5841 <    if (gecos_name[0])
5842 <    {
5843 <      if (regex_ban)
5844 <      {
5845 < #ifdef HAVE_LIBPCRE
5846 <        void *exp_p = NULL;
5847 <        const char *errptr = NULL;
5637 >  struct MaskItem *conf = NULL;
5638  
5639 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5850 <        {
5851 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5852 <               errptr);
5853 <          break;
5854 <        }
5855 <
5856 <        yy_conf = make_conf_item(RXLINE_TYPE);
5857 <        yy_conf->regexpname = exp_p;
5858 < #else
5859 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5860 <        break;
5861 < #endif
5862 <      }
5863 <      else
5864 <        yy_conf = make_conf_item(XLINE_TYPE);
5865 <
5866 <      yy_match_item = map_to_conf(yy_conf);
5867 <      DupString(yy_conf->name, gecos_name);
5868 <
5869 <      if (reasonbuf[0])
5870 <        DupString(yy_match_item->reason, reasonbuf);
5871 <      else
5872 <        DupString(yy_match_item->reason, "No reason");
5873 <    }
5874 <  }
5875 < }
5639 >  if (conf_parser_ctx.pass != 2)
5640      break;
5641  
5642 <  case 417:
5879 < /* Line 1787 of yacc.c  */
5880 < #line 2461 "conf_parser.y"
5881 <    {
5882 < }
5642 >  if (!block_state.name.buf[0])
5643      break;
5644  
5645 <  case 421:
5646 < /* Line 1787 of yacc.c  */
5647 < #line 2466 "conf_parser.y"
5648 <    {
5649 <  if (conf_parser_ctx.pass == 2)
5650 <    regex_ban = 1;
5645 >  conf = conf_make(CONF_XLINE);
5646 >  conf->name = xstrdup(block_state.name.buf);
5647 >
5648 >  if (block_state.rpass.buf[0])
5649 >    conf->reason = xstrdup(block_state.rpass.buf);
5650 >  else
5651 >    conf->reason = xstrdup(CONF_NOREASON);
5652   }
5653 + #line 5654 "conf_parser.c" /* yacc.c:1646  */
5654      break;
5655  
5656 <  case 428:
5657 < /* Line 1787 of yacc.c  */
5896 < #line 2475 "conf_parser.y"
5656 >  case 482:
5657 > #line 2439 "conf_parser.y" /* yacc.c:1646  */
5658      {
5659    if (conf_parser_ctx.pass == 2)
5660 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5660 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5661   }
5662 + #line 5663 "conf_parser.c" /* yacc.c:1646  */
5663      break;
5664  
5665 <  case 429:
5666 < /* Line 1787 of yacc.c  */
5905 < #line 2481 "conf_parser.y"
5665 >  case 483:
5666 > #line 2445 "conf_parser.y" /* yacc.c:1646  */
5667      {
5668    if (conf_parser_ctx.pass == 2)
5669 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5669 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5670   }
5671 + #line 5672 "conf_parser.c" /* yacc.c:1646  */
5672      break;
5673  
5674 <  case 483:
5675 < /* Line 1787 of yacc.c  */
5914 < #line 2526 "conf_parser.y"
5674 >  case 533:
5675 > #line 2506 "conf_parser.y" /* yacc.c:1646  */
5676      {
5677 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5677 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5678   }
5679 + #line 5680 "conf_parser.c" /* yacc.c:1646  */
5680      break;
5681  
5682 <  case 484:
5683 < /* Line 1787 of yacc.c  */
5922 < #line 2531 "conf_parser.y"
5682 >  case 534:
5683 > #line 2511 "conf_parser.y" /* yacc.c:1646  */
5684      {
5685 <  if (conf_parser_ctx.pass == 2)
5925 <    ConfigFileEntry.glines = yylval.number;
5685 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5686   }
5687 + #line 5688 "conf_parser.c" /* yacc.c:1646  */
5688      break;
5689  
5690 <  case 485:
5691 < /* Line 1787 of yacc.c  */
5931 < #line 2537 "conf_parser.y"
5690 >  case 535:
5691 > #line 2516 "conf_parser.y" /* yacc.c:1646  */
5692      {
5693 <  if (conf_parser_ctx.pass == 2)
5934 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5693 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5694   }
5695 + #line 5696 "conf_parser.c" /* yacc.c:1646  */
5696      break;
5697  
5698 <  case 486:
5699 < /* Line 1787 of yacc.c  */
5940 < #line 2543 "conf_parser.y"
5698 >  case 536:
5699 > #line 2521 "conf_parser.y" /* yacc.c:1646  */
5700      {
5701    if (conf_parser_ctx.pass == 2)
5702 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5702 >    ConfigGeneral.cycle_on_host_change = yylval.number;
5703   }
5704 + #line 5705 "conf_parser.c" /* yacc.c:1646  */
5705      break;
5706  
5707 <  case 487:
5708 < /* Line 1787 of yacc.c  */
5949 < #line 2549 "conf_parser.y"
5707 >  case 537:
5708 > #line 2527 "conf_parser.y" /* yacc.c:1646  */
5709      {
5710 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5710 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5711   }
5712 + #line 5713 "conf_parser.c" /* yacc.c:1646  */
5713      break;
5714  
5715 <  case 488:
5716 < /* Line 1787 of yacc.c  */
5957 < #line 2554 "conf_parser.y"
5715 >  case 538:
5716 > #line 2532 "conf_parser.y" /* yacc.c:1646  */
5717      {
5718 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5718 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5719   }
5720 + #line 5721 "conf_parser.c" /* yacc.c:1646  */
5721      break;
5722  
5723 <  case 489:
5724 < /* Line 1787 of yacc.c  */
5965 < #line 2559 "conf_parser.y"
5723 >  case 539:
5724 > #line 2537 "conf_parser.y" /* yacc.c:1646  */
5725      {
5726 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5726 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5727   }
5728 + #line 5729 "conf_parser.c" /* yacc.c:1646  */
5729      break;
5730  
5731 <  case 490:
5732 < /* Line 1787 of yacc.c  */
5973 < #line 2564 "conf_parser.y"
5731 >  case 540:
5732 > #line 2542 "conf_parser.y" /* yacc.c:1646  */
5733      {
5734 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5734 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5735   }
5736 + #line 5737 "conf_parser.c" /* yacc.c:1646  */
5737      break;
5738  
5739 <  case 491:
5740 < /* Line 1787 of yacc.c  */
5981 < #line 2569 "conf_parser.y"
5739 >  case 541:
5740 > #line 2547 "conf_parser.y" /* yacc.c:1646  */
5741      {
5742 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5742 >  ConfigGeneral.tkline_expire_notices = yylval.number;
5743   }
5744 + #line 5745 "conf_parser.c" /* yacc.c:1646  */
5745      break;
5746  
5747 <  case 492:
5748 < /* Line 1787 of yacc.c  */
5989 < #line 2574 "conf_parser.y"
5747 >  case 542:
5748 > #line 2552 "conf_parser.y" /* yacc.c:1646  */
5749      {
5750 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5750 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5751   }
5752 + #line 5753 "conf_parser.c" /* yacc.c:1646  */
5753      break;
5754  
5755 <  case 493:
5756 < /* Line 1787 of yacc.c  */
5997 < #line 2579 "conf_parser.y"
5755 >  case 543:
5756 > #line 2557 "conf_parser.y" /* yacc.c:1646  */
5757      {
5758 <  ConfigFileEntry.disable_remote = yylval.number;
5758 >  ConfigGeneral.ignore_bogus_ts = yylval.number;
5759   }
5760 + #line 5761 "conf_parser.c" /* yacc.c:1646  */
5761      break;
5762  
5763 <  case 494:
5764 < /* Line 1787 of yacc.c  */
6005 < #line 2584 "conf_parser.y"
5763 >  case 544:
5764 > #line 2562 "conf_parser.y" /* yacc.c:1646  */
5765      {
5766 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5766 >  ConfigGeneral.failed_oper_notice = yylval.number;
5767   }
5768 + #line 5769 "conf_parser.c" /* yacc.c:1646  */
5769      break;
5770  
5771 <  case 495:
5772 < /* Line 1787 of yacc.c  */
6013 < #line 2589 "conf_parser.y"
5771 >  case 545:
5772 > #line 2567 "conf_parser.y" /* yacc.c:1646  */
5773      {
5774 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5774 >  ConfigGeneral.anti_nick_flood = yylval.number;
5775   }
5776 + #line 5777 "conf_parser.c" /* yacc.c:1646  */
5777      break;
5778  
5779 <  case 496:
5780 < /* Line 1787 of yacc.c  */
6021 < #line 2594 "conf_parser.y"
5779 >  case 546:
5780 > #line 2572 "conf_parser.y" /* yacc.c:1646  */
5781      {
5782 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5782 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5783   }
5784 + #line 5785 "conf_parser.c" /* yacc.c:1646  */
5785      break;
5786  
5787 <  case 497:
5788 < /* Line 1787 of yacc.c  */
6029 < #line 2599 "conf_parser.y"
5787 >  case 547:
5788 > #line 2577 "conf_parser.y" /* yacc.c:1646  */
5789      {
5790 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5790 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5791   }
5792 + #line 5793 "conf_parser.c" /* yacc.c:1646  */
5793      break;
5794  
5795 <  case 498:
5796 < /* Line 1787 of yacc.c  */
6037 < #line 2604 "conf_parser.y"
5795 >  case 548:
5796 > #line 2582 "conf_parser.y" /* yacc.c:1646  */
5797      {
5798 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5798 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5799   }
5800 + #line 5801 "conf_parser.c" /* yacc.c:1646  */
5801      break;
5802  
5803 <  case 499:
5804 < /* Line 1787 of yacc.c  */
6045 < #line 2609 "conf_parser.y"
5803 >  case 549:
5804 > #line 2587 "conf_parser.y" /* yacc.c:1646  */
5805      {
5806 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5806 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5807   }
5808 + #line 5809 "conf_parser.c" /* yacc.c:1646  */
5809      break;
5810  
5811 <  case 500:
5812 < /* Line 1787 of yacc.c  */
6053 < #line 2614 "conf_parser.y"
5811 >  case 550:
5812 > #line 2592 "conf_parser.y" /* yacc.c:1646  */
5813      {
5814 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5814 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5815   }
5816 + #line 5817 "conf_parser.c" /* yacc.c:1646  */
5817      break;
5818  
5819 <  case 501:
5820 < /* Line 1787 of yacc.c  */
6061 < #line 2619 "conf_parser.y"
5819 >  case 551:
5820 > #line 2597 "conf_parser.y" /* yacc.c:1646  */
5821      {
5822    if (conf_parser_ctx.pass == 2)
5823 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6065 < }
6066 <    break;
6067 <
6068 <  case 502:
6069 < /* Line 1787 of yacc.c  */
6070 < #line 2625 "conf_parser.y"
6071 <    {
6072 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6073 <  {
6074 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6075 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6076 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6077 <    exit(0);
6078 <  }
5823 >    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5824   }
5825 + #line 5826 "conf_parser.c" /* yacc.c:1646  */
5826      break;
5827  
5828 <  case 503:
5829 < /* Line 1787 of yacc.c  */
6084 < #line 2636 "conf_parser.y"
5828 >  case 552:
5829 > #line 2603 "conf_parser.y" /* yacc.c:1646  */
5830      {
5831 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5831 >  ConfigGeneral.invisible_on_connect = yylval.number;
5832   }
5833 + #line 5834 "conf_parser.c" /* yacc.c:1646  */
5834      break;
5835  
5836 <  case 504:
5837 < /* Line 1787 of yacc.c  */
6092 < #line 2641 "conf_parser.y"
5836 >  case 553:
5837 > #line 2608 "conf_parser.y" /* yacc.c:1646  */
5838      {
5839 <  ConfigFileEntry.warn_no_nline = yylval.number;
5839 >  ConfigGeneral.warn_no_connect_block = yylval.number;
5840   }
5841 + #line 5842 "conf_parser.c" /* yacc.c:1646  */
5842      break;
5843  
5844 <  case 505:
5845 < /* Line 1787 of yacc.c  */
6100 < #line 2646 "conf_parser.y"
5844 >  case 554:
5845 > #line 2613 "conf_parser.y" /* yacc.c:1646  */
5846      {
5847 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5847 >  ConfigGeneral.stats_e_disabled = yylval.number;
5848   }
5849 + #line 5850 "conf_parser.c" /* yacc.c:1646  */
5850      break;
5851  
5852 <  case 506:
5853 < /* Line 1787 of yacc.c  */
6108 < #line 2651 "conf_parser.y"
5852 >  case 555:
5853 > #line 2618 "conf_parser.y" /* yacc.c:1646  */
5854      {
5855 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5855 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5856   }
5857 + #line 5858 "conf_parser.c" /* yacc.c:1646  */
5858      break;
5859  
5860 <  case 507:
5861 < /* Line 1787 of yacc.c  */
6116 < #line 2656 "conf_parser.y"
5860 >  case 556:
5861 > #line 2623 "conf_parser.y" /* yacc.c:1646  */
5862      {
5863 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5863 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5864   }
5865 + #line 5866 "conf_parser.c" /* yacc.c:1646  */
5866      break;
5867  
5868 <  case 508:
5869 < /* Line 1787 of yacc.c  */
6124 < #line 2661 "conf_parser.y"
5868 >  case 557:
5869 > #line 2628 "conf_parser.y" /* yacc.c:1646  */
5870      {
5871 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5871 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5872   }
5873 + #line 5874 "conf_parser.c" /* yacc.c:1646  */
5874      break;
5875  
5876 <  case 509:
5877 < /* Line 1787 of yacc.c  */
6132 < #line 2664 "conf_parser.y"
5876 >  case 558:
5877 > #line 2633 "conf_parser.y" /* yacc.c:1646  */
5878      {
5879 <  ConfigFileEntry.stats_k_oper_only = 1;
5879 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5880   }
5881 + #line 5882 "conf_parser.c" /* yacc.c:1646  */
5882      break;
5883  
5884 <  case 510:
5885 < /* Line 1787 of yacc.c  */
6140 < #line 2669 "conf_parser.y"
5884 >  case 559:
5885 > #line 2638 "conf_parser.y" /* yacc.c:1646  */
5886      {
5887 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5887 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5888   }
5889 + #line 5890 "conf_parser.c" /* yacc.c:1646  */
5890      break;
5891  
5892 <  case 511:
5893 < /* Line 1787 of yacc.c  */
6148 < #line 2672 "conf_parser.y"
5892 >  case 560:
5893 > #line 2641 "conf_parser.y" /* yacc.c:1646  */
5894      {
5895 <  ConfigFileEntry.stats_i_oper_only = 1;
5895 >  ConfigGeneral.stats_k_oper_only = 1;
5896   }
5897 + #line 5898 "conf_parser.c" /* yacc.c:1646  */
5898      break;
5899  
5900 <  case 512:
5901 < /* Line 1787 of yacc.c  */
6156 < #line 2677 "conf_parser.y"
5900 >  case 561:
5901 > #line 2646 "conf_parser.y" /* yacc.c:1646  */
5902      {
5903 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5903 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5904   }
5905 + #line 5906 "conf_parser.c" /* yacc.c:1646  */
5906      break;
5907  
5908 <  case 513:
5909 < /* Line 1787 of yacc.c  */
6164 < #line 2682 "conf_parser.y"
5908 >  case 562:
5909 > #line 2649 "conf_parser.y" /* yacc.c:1646  */
5910      {
5911 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5911 >  ConfigGeneral.stats_i_oper_only = 1;
5912   }
5913 + #line 5914 "conf_parser.c" /* yacc.c:1646  */
5914      break;
5915  
5916 <  case 514:
5917 < /* Line 1787 of yacc.c  */
6172 < #line 2687 "conf_parser.y"
5916 >  case 563:
5917 > #line 2654 "conf_parser.y" /* yacc.c:1646  */
5918      {
5919 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5919 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5920   }
5921 + #line 5922 "conf_parser.c" /* yacc.c:1646  */
5922      break;
5923  
5924 <  case 515:
5925 < /* Line 1787 of yacc.c  */
6180 < #line 2692 "conf_parser.y"
5924 >  case 564:
5925 > #line 2659 "conf_parser.y" /* yacc.c:1646  */
5926      {
5927 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5927 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5928   }
5929 + #line 5930 "conf_parser.c" /* yacc.c:1646  */
5930      break;
5931  
5932 <  case 516:
5933 < /* Line 1787 of yacc.c  */
6188 < #line 2697 "conf_parser.y"
5932 >  case 565:
5933 > #line 2664 "conf_parser.y" /* yacc.c:1646  */
5934      {
5935 <  ConfigFileEntry.short_motd = yylval.number;
5935 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5936   }
5937 + #line 5938 "conf_parser.c" /* yacc.c:1646  */
5938      break;
5939  
5940 <  case 517:
5941 < /* Line 1787 of yacc.c  */
6196 < #line 2702 "conf_parser.y"
5940 >  case 566:
5941 > #line 2669 "conf_parser.y" /* yacc.c:1646  */
5942      {
5943 <  ConfigFileEntry.no_oper_flood = yylval.number;
5943 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5944   }
5945 + #line 5946 "conf_parser.c" /* yacc.c:1646  */
5946      break;
5947  
5948 <  case 518:
5949 < /* Line 1787 of yacc.c  */
6204 < #line 2707 "conf_parser.y"
5948 >  case 567:
5949 > #line 2674 "conf_parser.y" /* yacc.c:1646  */
5950      {
5951 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5951 >  ConfigGeneral.short_motd = yylval.number;
5952   }
5953 + #line 5954 "conf_parser.c" /* yacc.c:1646  */
5954      break;
5955  
5956 <  case 519:
5957 < /* Line 1787 of yacc.c  */
6212 < #line 2712 "conf_parser.y"
5956 >  case 568:
5957 > #line 2679 "conf_parser.y" /* yacc.c:1646  */
5958      {
5959 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5959 >  ConfigGeneral.no_oper_flood = yylval.number;
5960   }
5961 + #line 5962 "conf_parser.c" /* yacc.c:1646  */
5962      break;
5963  
5964 <  case 520:
5965 < /* Line 1787 of yacc.c  */
6220 < #line 2717 "conf_parser.y"
5964 >  case 569:
5965 > #line 2684 "conf_parser.y" /* yacc.c:1646  */
5966      {
5967 <  if (conf_parser_ctx.pass == 2)
6223 <  {
6224 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6225 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6226 <
6227 <    set_locale(yylval.string);
6228 <  }
5967 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5968   }
5969 + #line 5970 "conf_parser.c" /* yacc.c:1646  */
5970      break;
5971  
5972 <  case 521:
5973 < /* Line 1787 of yacc.c  */
6234 < #line 2728 "conf_parser.y"
5972 >  case 570:
5973 > #line 2689 "conf_parser.y" /* yacc.c:1646  */
5974      {
5975 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5975 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5976   }
5977 + #line 5978 "conf_parser.c" /* yacc.c:1646  */
5978      break;
5979  
5980 <  case 522:
5981 < /* Line 1787 of yacc.c  */
6242 < #line 2733 "conf_parser.y"
5980 >  case 571:
5981 > #line 2694 "conf_parser.y" /* yacc.c:1646  */
5982      {
5983 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5983 >  ConfigGeneral.ping_cookie = yylval.number;
5984   }
5985 + #line 5986 "conf_parser.c" /* yacc.c:1646  */
5986      break;
5987  
5988 <  case 523:
5989 < /* Line 1787 of yacc.c  */
6250 < #line 2738 "conf_parser.y"
5988 >  case 572:
5989 > #line 2699 "conf_parser.y" /* yacc.c:1646  */
5990      {
5991 <  ConfigFileEntry.use_egd = yylval.number;
5991 >  ConfigGeneral.disable_auth = yylval.number;
5992   }
5993 + #line 5994 "conf_parser.c" /* yacc.c:1646  */
5994      break;
5995  
5996 <  case 524:
5997 < /* Line 1787 of yacc.c  */
6258 < #line 2743 "conf_parser.y"
5996 >  case 573:
5997 > #line 2704 "conf_parser.y" /* yacc.c:1646  */
5998      {
5999 <  if (conf_parser_ctx.pass == 2)
6261 <  {
6262 <    MyFree(ConfigFileEntry.egdpool_path);
6263 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6264 <  }
5999 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
6000   }
6001 + #line 6002 "conf_parser.c" /* yacc.c:1646  */
6002      break;
6003  
6004 <  case 525:
6005 < /* Line 1787 of yacc.c  */
6270 < #line 2752 "conf_parser.y"
6004 >  case 574:
6005 > #line 2709 "conf_parser.y" /* yacc.c:1646  */
6006      {
6007 <  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6273 <  {
6274 <    MyFree(ConfigFileEntry.service_name);
6275 <    DupString(ConfigFileEntry.service_name, yylval.string);
6276 <  }
6007 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
6008   }
6009 + #line 6010 "conf_parser.c" /* yacc.c:1646  */
6010      break;
6011  
6012 <  case 526:
6013 < /* Line 1787 of yacc.c  */
6282 < #line 2761 "conf_parser.y"
6012 >  case 575:
6013 > #line 2714 "conf_parser.y" /* yacc.c:1646  */
6014      {
6015 <  ConfigFileEntry.ping_cookie = yylval.number;
6015 >  ConfigGeneral.oper_umodes = 0;
6016   }
6017 + #line 6018 "conf_parser.c" /* yacc.c:1646  */
6018      break;
6019  
6020 <  case 527:
6021 < /* Line 1787 of yacc.c  */
6290 < #line 2766 "conf_parser.y"
6020 >  case 579:
6021 > #line 2720 "conf_parser.y" /* yacc.c:1646  */
6022      {
6023 <  ConfigFileEntry.disable_auth = yylval.number;
6023 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
6024   }
6025 + #line 6026 "conf_parser.c" /* yacc.c:1646  */
6026      break;
6027  
6028 <  case 528:
6029 < /* Line 1787 of yacc.c  */
6298 < #line 2771 "conf_parser.y"
6028 >  case 580:
6029 > #line 2723 "conf_parser.y" /* yacc.c:1646  */
6030      {
6031 <  ConfigFileEntry.throttle_time = yylval.number;
6031 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
6032   }
6033 + #line 6034 "conf_parser.c" /* yacc.c:1646  */
6034      break;
6035  
6036 <  case 529:
6037 < /* Line 1787 of yacc.c  */
6306 < #line 2776 "conf_parser.y"
6036 >  case 581:
6037 > #line 2726 "conf_parser.y" /* yacc.c:1646  */
6038      {
6039 <  ConfigFileEntry.oper_umodes = 0;
6039 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
6040   }
6041 + #line 6042 "conf_parser.c" /* yacc.c:1646  */
6042      break;
6043  
6044 <  case 533:
6045 < /* Line 1787 of yacc.c  */
6314 < #line 2782 "conf_parser.y"
6044 >  case 582:
6045 > #line 2729 "conf_parser.y" /* yacc.c:1646  */
6046      {
6047 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6047 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
6048   }
6049 + #line 6050 "conf_parser.c" /* yacc.c:1646  */
6050      break;
6051  
6052 <  case 534:
6053 < /* Line 1787 of yacc.c  */
6322 < #line 2785 "conf_parser.y"
6052 >  case 583:
6053 > #line 2732 "conf_parser.y" /* yacc.c:1646  */
6054      {
6055 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6055 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
6056   }
6057 + #line 6058 "conf_parser.c" /* yacc.c:1646  */
6058      break;
6059  
6060 <  case 535:
6061 < /* Line 1787 of yacc.c  */
6330 < #line 2788 "conf_parser.y"
6060 >  case 584:
6061 > #line 2735 "conf_parser.y" /* yacc.c:1646  */
6062      {
6063 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6063 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
6064   }
6065 + #line 6066 "conf_parser.c" /* yacc.c:1646  */
6066      break;
6067  
6068 <  case 536:
6069 < /* Line 1787 of yacc.c  */
6338 < #line 2791 "conf_parser.y"
6068 >  case 585:
6069 > #line 2738 "conf_parser.y" /* yacc.c:1646  */
6070      {
6071 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6071 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
6072   }
6073 + #line 6074 "conf_parser.c" /* yacc.c:1646  */
6074      break;
6075  
6076 <  case 537:
6077 < /* Line 1787 of yacc.c  */
6346 < #line 2794 "conf_parser.y"
6076 >  case 586:
6077 > #line 2741 "conf_parser.y" /* yacc.c:1646  */
6078      {
6079 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6079 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
6080   }
6081 + #line 6082 "conf_parser.c" /* yacc.c:1646  */
6082      break;
6083  
6084 <  case 538:
6085 < /* Line 1787 of yacc.c  */
6354 < #line 2797 "conf_parser.y"
6084 >  case 587:
6085 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
6086      {
6087 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6087 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
6088   }
6089 + #line 6090 "conf_parser.c" /* yacc.c:1646  */
6090      break;
6091  
6092 <  case 539:
6093 < /* Line 1787 of yacc.c  */
6362 < #line 2800 "conf_parser.y"
6092 >  case 588:
6093 > #line 2747 "conf_parser.y" /* yacc.c:1646  */
6094      {
6095 <  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6095 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
6096   }
6097 + #line 6098 "conf_parser.c" /* yacc.c:1646  */
6098      break;
6099  
6100 <  case 540:
6101 < /* Line 1787 of yacc.c  */
6370 < #line 2803 "conf_parser.y"
6100 >  case 589:
6101 > #line 2750 "conf_parser.y" /* yacc.c:1646  */
6102      {
6103 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6103 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
6104   }
6105 + #line 6106 "conf_parser.c" /* yacc.c:1646  */
6106      break;
6107  
6108 <  case 541:
6109 < /* Line 1787 of yacc.c  */
6378 < #line 2806 "conf_parser.y"
6108 >  case 590:
6109 > #line 2753 "conf_parser.y" /* yacc.c:1646  */
6110      {
6111 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6111 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6112   }
6113 + #line 6114 "conf_parser.c" /* yacc.c:1646  */
6114      break;
6115  
6116 <  case 542:
6117 < /* Line 1787 of yacc.c  */
6386 < #line 2809 "conf_parser.y"
6116 >  case 591:
6117 > #line 2756 "conf_parser.y" /* yacc.c:1646  */
6118      {
6119 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6119 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
6120   }
6121 + #line 6122 "conf_parser.c" /* yacc.c:1646  */
6122      break;
6123  
6124 <  case 543:
6125 < /* Line 1787 of yacc.c  */
6394 < #line 2812 "conf_parser.y"
6124 >  case 592:
6125 > #line 2759 "conf_parser.y" /* yacc.c:1646  */
6126      {
6127 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6127 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6128   }
6129 + #line 6130 "conf_parser.c" /* yacc.c:1646  */
6130      break;
6131  
6132 <  case 544:
6133 < /* Line 1787 of yacc.c  */
6402 < #line 2815 "conf_parser.y"
6132 >  case 593:
6133 > #line 2762 "conf_parser.y" /* yacc.c:1646  */
6134      {
6135 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6135 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6136   }
6137 + #line 6138 "conf_parser.c" /* yacc.c:1646  */
6138      break;
6139  
6140 <  case 545:
6141 < /* Line 1787 of yacc.c  */
6410 < #line 2818 "conf_parser.y"
6140 >  case 594:
6141 > #line 2765 "conf_parser.y" /* yacc.c:1646  */
6142      {
6143 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6143 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6144   }
6145 + #line 6146 "conf_parser.c" /* yacc.c:1646  */
6146      break;
6147  
6148 <  case 546:
6149 < /* Line 1787 of yacc.c  */
6418 < #line 2821 "conf_parser.y"
6148 >  case 595:
6149 > #line 2768 "conf_parser.y" /* yacc.c:1646  */
6150      {
6151 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6151 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6152   }
6153 + #line 6154 "conf_parser.c" /* yacc.c:1646  */
6154      break;
6155  
6156 <  case 547:
6157 < /* Line 1787 of yacc.c  */
6426 < #line 2824 "conf_parser.y"
6156 >  case 596:
6157 > #line 2771 "conf_parser.y" /* yacc.c:1646  */
6158      {
6159 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6159 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6160   }
6161 + #line 6162 "conf_parser.c" /* yacc.c:1646  */
6162      break;
6163  
6164 <  case 548:
6165 < /* Line 1787 of yacc.c  */
6434 < #line 2827 "conf_parser.y"
6164 >  case 597:
6165 > #line 2774 "conf_parser.y" /* yacc.c:1646  */
6166      {
6167 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6167 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6168   }
6169 + #line 6170 "conf_parser.c" /* yacc.c:1646  */
6170      break;
6171  
6172 <  case 549:
6173 < /* Line 1787 of yacc.c  */
6442 < #line 2830 "conf_parser.y"
6172 >  case 598:
6173 > #line 2777 "conf_parser.y" /* yacc.c:1646  */
6174      {
6175 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6175 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6176   }
6177 + #line 6178 "conf_parser.c" /* yacc.c:1646  */
6178      break;
6179  
6180 <  case 550:
6181 < /* Line 1787 of yacc.c  */
6450 < #line 2833 "conf_parser.y"
6180 >  case 599:
6181 > #line 2780 "conf_parser.y" /* yacc.c:1646  */
6182      {
6183 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6183 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6184   }
6185 + #line 6186 "conf_parser.c" /* yacc.c:1646  */
6186      break;
6187  
6188 <  case 551:
6189 < /* Line 1787 of yacc.c  */
6458 < #line 2836 "conf_parser.y"
6188 >  case 600:
6189 > #line 2783 "conf_parser.y" /* yacc.c:1646  */
6190      {
6191 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6191 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6192   }
6193 + #line 6194 "conf_parser.c" /* yacc.c:1646  */
6194      break;
6195  
6196 <  case 552:
6197 < /* Line 1787 of yacc.c  */
6466 < #line 2839 "conf_parser.y"
6196 >  case 601:
6197 > #line 2788 "conf_parser.y" /* yacc.c:1646  */
6198      {
6199 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6199 >  ConfigGeneral.oper_only_umodes = 0;
6200   }
6201 + #line 6202 "conf_parser.c" /* yacc.c:1646  */
6202      break;
6203  
6204 <  case 553:
6205 < /* Line 1787 of yacc.c  */
6474 < #line 2844 "conf_parser.y"
6204 >  case 605:
6205 > #line 2794 "conf_parser.y" /* yacc.c:1646  */
6206      {
6207 <  ConfigFileEntry.oper_only_umodes = 0;
6207 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6208   }
6209 + #line 6210 "conf_parser.c" /* yacc.c:1646  */
6210      break;
6211  
6212 <  case 557:
6213 < /* Line 1787 of yacc.c  */
6482 < #line 2850 "conf_parser.y"
6212 >  case 606:
6213 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6214      {
6215 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6215 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6216   }
6217 + #line 6218 "conf_parser.c" /* yacc.c:1646  */
6218      break;
6219  
6220 <  case 558:
6221 < /* Line 1787 of yacc.c  */
6490 < #line 2853 "conf_parser.y"
6220 >  case 607:
6221 > #line 2800 "conf_parser.y" /* yacc.c:1646  */
6222      {
6223 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6223 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6224   }
6225 + #line 6226 "conf_parser.c" /* yacc.c:1646  */
6226      break;
6227  
6228 <  case 559:
6229 < /* Line 1787 of yacc.c  */
6498 < #line 2856 "conf_parser.y"
6228 >  case 608:
6229 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6230      {
6231 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6231 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6232   }
6233 + #line 6234 "conf_parser.c" /* yacc.c:1646  */
6234      break;
6235  
6236 <  case 560:
6237 < /* Line 1787 of yacc.c  */
6506 < #line 2859 "conf_parser.y"
6236 >  case 609:
6237 > #line 2806 "conf_parser.y" /* yacc.c:1646  */
6238      {
6239 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6239 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6240   }
6241 + #line 6242 "conf_parser.c" /* yacc.c:1646  */
6242      break;
6243  
6244 <  case 561:
6245 < /* Line 1787 of yacc.c  */
6514 < #line 2862 "conf_parser.y"
6244 >  case 610:
6245 > #line 2809 "conf_parser.y" /* yacc.c:1646  */
6246      {
6247 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6517 < }
6518 <    break;
6519 <
6520 <  case 562:
6521 < /* Line 1787 of yacc.c  */
6522 < #line 2865 "conf_parser.y"
6523 <    {
6524 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6247 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6248   }
6249 + #line 6250 "conf_parser.c" /* yacc.c:1646  */
6250      break;
6251  
6252 <  case 563:
6253 < /* Line 1787 of yacc.c  */
6530 < #line 2868 "conf_parser.y"
6252 >  case 611:
6253 > #line 2812 "conf_parser.y" /* yacc.c:1646  */
6254      {
6255 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6255 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6256   }
6257 + #line 6258 "conf_parser.c" /* yacc.c:1646  */
6258      break;
6259  
6260 <  case 564:
6261 < /* Line 1787 of yacc.c  */
6538 < #line 2871 "conf_parser.y"
6260 >  case 612:
6261 > #line 2815 "conf_parser.y" /* yacc.c:1646  */
6262      {
6263 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6263 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6264   }
6265 + #line 6266 "conf_parser.c" /* yacc.c:1646  */
6266      break;
6267  
6268 <  case 565:
6269 < /* Line 1787 of yacc.c  */
6546 < #line 2874 "conf_parser.y"
6268 >  case 613:
6269 > #line 2818 "conf_parser.y" /* yacc.c:1646  */
6270      {
6271 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6271 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6272   }
6273 + #line 6274 "conf_parser.c" /* yacc.c:1646  */
6274      break;
6275  
6276 <  case 566:
6277 < /* Line 1787 of yacc.c  */
6554 < #line 2877 "conf_parser.y"
6276 >  case 614:
6277 > #line 2821 "conf_parser.y" /* yacc.c:1646  */
6278      {
6279 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6279 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6280   }
6281 + #line 6282 "conf_parser.c" /* yacc.c:1646  */
6282      break;
6283  
6284 <  case 567:
6285 < /* Line 1787 of yacc.c  */
6562 < #line 2880 "conf_parser.y"
6284 >  case 615:
6285 > #line 2824 "conf_parser.y" /* yacc.c:1646  */
6286      {
6287 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6287 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6288   }
6289 + #line 6290 "conf_parser.c" /* yacc.c:1646  */
6290      break;
6291  
6292 <  case 568:
6293 < /* Line 1787 of yacc.c  */
6570 < #line 2883 "conf_parser.y"
6292 >  case 616:
6293 > #line 2827 "conf_parser.y" /* yacc.c:1646  */
6294      {
6295 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6295 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6296   }
6297 + #line 6298 "conf_parser.c" /* yacc.c:1646  */
6298      break;
6299  
6300 <  case 569:
6301 < /* Line 1787 of yacc.c  */
6578 < #line 2886 "conf_parser.y"
6300 >  case 617:
6301 > #line 2830 "conf_parser.y" /* yacc.c:1646  */
6302      {
6303 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6303 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6304   }
6305 + #line 6306 "conf_parser.c" /* yacc.c:1646  */
6306      break;
6307  
6308 <  case 570:
6309 < /* Line 1787 of yacc.c  */
6586 < #line 2889 "conf_parser.y"
6308 >  case 618:
6309 > #line 2833 "conf_parser.y" /* yacc.c:1646  */
6310      {
6311 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6311 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6312   }
6313 + #line 6314 "conf_parser.c" /* yacc.c:1646  */
6314      break;
6315  
6316 <  case 571:
6317 < /* Line 1787 of yacc.c  */
6594 < #line 2892 "conf_parser.y"
6316 >  case 619:
6317 > #line 2836 "conf_parser.y" /* yacc.c:1646  */
6318      {
6319 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6319 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6320   }
6321 + #line 6322 "conf_parser.c" /* yacc.c:1646  */
6322      break;
6323  
6324 <  case 572:
6325 < /* Line 1787 of yacc.c  */
6602 < #line 2895 "conf_parser.y"
6324 >  case 620:
6325 > #line 2839 "conf_parser.y" /* yacc.c:1646  */
6326      {
6327 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6327 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6328   }
6329 + #line 6330 "conf_parser.c" /* yacc.c:1646  */
6330      break;
6331  
6332 <  case 573:
6333 < /* Line 1787 of yacc.c  */
6610 < #line 2898 "conf_parser.y"
6332 >  case 621:
6333 > #line 2842 "conf_parser.y" /* yacc.c:1646  */
6334      {
6335 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6335 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6336   }
6337 + #line 6338 "conf_parser.c" /* yacc.c:1646  */
6338      break;
6339  
6340 <  case 574:
6341 < /* Line 1787 of yacc.c  */
6618 < #line 2901 "conf_parser.y"
6340 >  case 622:
6341 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6342      {
6343 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6343 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6344   }
6345 + #line 6346 "conf_parser.c" /* yacc.c:1646  */
6346      break;
6347  
6348 <  case 575:
6349 < /* Line 1787 of yacc.c  */
6626 < #line 2904 "conf_parser.y"
6348 >  case 623:
6349 > #line 2848 "conf_parser.y" /* yacc.c:1646  */
6350      {
6351 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6351 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6352   }
6353 + #line 6354 "conf_parser.c" /* yacc.c:1646  */
6354      break;
6355  
6356 <  case 576:
6357 < /* Line 1787 of yacc.c  */
6634 < #line 2907 "conf_parser.y"
6356 >  case 624:
6357 > #line 2851 "conf_parser.y" /* yacc.c:1646  */
6358      {
6359 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6359 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6360   }
6361 + #line 6362 "conf_parser.c" /* yacc.c:1646  */
6362      break;
6363  
6364 <  case 577:
6365 < /* Line 1787 of yacc.c  */
6642 < #line 2912 "conf_parser.y"
6364 >  case 625:
6365 > #line 2856 "conf_parser.y" /* yacc.c:1646  */
6366      {
6367 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6367 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6368   }
6369 + #line 6370 "conf_parser.c" /* yacc.c:1646  */
6370      break;
6371  
6372 <  case 578:
6373 < /* Line 1787 of yacc.c  */
6650 < #line 2917 "conf_parser.y"
6372 >  case 626:
6373 > #line 2861 "conf_parser.y" /* yacc.c:1646  */
6374      {
6375 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6375 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6376   }
6377 + #line 6378 "conf_parser.c" /* yacc.c:1646  */
6378      break;
6379  
6380 <  case 579:
6381 < /* Line 1787 of yacc.c  */
6658 < #line 2922 "conf_parser.y"
6380 >  case 627:
6381 > #line 2866 "conf_parser.y" /* yacc.c:1646  */
6382      {
6383 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6383 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6384   }
6385 + #line 6386 "conf_parser.c" /* yacc.c:1646  */
6386      break;
6387  
6388 <  case 598:
6389 < /* Line 1787 of yacc.c  */
6666 < #line 2945 "conf_parser.y"
6388 >  case 643:
6389 > #line 2891 "conf_parser.y" /* yacc.c:1646  */
6390      {
6391    ConfigChannel.disable_fake_channels = yylval.number;
6392   }
6393 + #line 6394 "conf_parser.c" /* yacc.c:1646  */
6394      break;
6395  
6396 <  case 599:
6397 < /* Line 1787 of yacc.c  */
6674 < #line 2950 "conf_parser.y"
6396 >  case 644:
6397 > #line 2896 "conf_parser.y" /* yacc.c:1646  */
6398      {
6399 <  ConfigChannel.restrict_channels = yylval.number;
6399 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6400   }
6401 + #line 6402 "conf_parser.c" /* yacc.c:1646  */
6402      break;
6403  
6404 <  case 600:
6405 < /* Line 1787 of yacc.c  */
6682 < #line 2955 "conf_parser.y"
6404 >  case 645:
6405 > #line 2901 "conf_parser.y" /* yacc.c:1646  */
6406      {
6407 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6407 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6408   }
6409 + #line 6410 "conf_parser.c" /* yacc.c:1646  */
6410      break;
6411  
6412 <  case 601:
6413 < /* Line 1787 of yacc.c  */
6690 < #line 2960 "conf_parser.y"
6412 >  case 646:
6413 > #line 2906 "conf_parser.y" /* yacc.c:1646  */
6414      {
6415 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6415 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6416   }
6417 + #line 6418 "conf_parser.c" /* yacc.c:1646  */
6418      break;
6419  
6420 <  case 602:
6421 < /* Line 1787 of yacc.c  */
6698 < #line 2965 "conf_parser.y"
6420 >  case 647:
6421 > #line 2911 "conf_parser.y" /* yacc.c:1646  */
6422      {
6423 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6423 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6424   }
6425 + #line 6426 "conf_parser.c" /* yacc.c:1646  */
6426      break;
6427  
6428 <  case 603:
6429 < /* Line 1787 of yacc.c  */
6706 < #line 2970 "conf_parser.y"
6428 >  case 648:
6429 > #line 2916 "conf_parser.y" /* yacc.c:1646  */
6430      {
6431 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6431 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6432   }
6433 + #line 6434 "conf_parser.c" /* yacc.c:1646  */
6434      break;
6435  
6436 <  case 604:
6437 < /* Line 1787 of yacc.c  */
6714 < #line 2975 "conf_parser.y"
6436 >  case 649:
6437 > #line 2921 "conf_parser.y" /* yacc.c:1646  */
6438      {
6439 <  ConfigChannel.quiet_on_ban = yylval.number;
6439 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6440   }
6441 + #line 6442 "conf_parser.c" /* yacc.c:1646  */
6442      break;
6443  
6444 <  case 605:
6445 < /* Line 1787 of yacc.c  */
6722 < #line 2980 "conf_parser.y"
6444 >  case 650:
6445 > #line 2926 "conf_parser.y" /* yacc.c:1646  */
6446      {
6447 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6447 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6448   }
6449 + #line 6450 "conf_parser.c" /* yacc.c:1646  */
6450      break;
6451  
6452 <  case 606:
6453 < /* Line 1787 of yacc.c  */
6730 < #line 2985 "conf_parser.y"
6452 >  case 651:
6453 > #line 2931 "conf_parser.y" /* yacc.c:1646  */
6454      {
6455 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6455 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6456   }
6457 + #line 6458 "conf_parser.c" /* yacc.c:1646  */
6458      break;
6459  
6460 <  case 607:
6461 < /* Line 1787 of yacc.c  */
6738 < #line 2990 "conf_parser.y"
6460 >  case 652:
6461 > #line 2936 "conf_parser.y" /* yacc.c:1646  */
6462      {
6463 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6463 >  ConfigChannel.default_join_flood_count = yylval.number;
6464   }
6465 + #line 6466 "conf_parser.c" /* yacc.c:1646  */
6466      break;
6467  
6468 <  case 608:
6469 < /* Line 1787 of yacc.c  */
6746 < #line 2995 "conf_parser.y"
6468 >  case 653:
6469 > #line 2941 "conf_parser.y" /* yacc.c:1646  */
6470      {
6471 <  ConfigChannel.no_create_on_split = yylval.number;
6471 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6472   }
6473 + #line 6474 "conf_parser.c" /* yacc.c:1646  */
6474      break;
6475  
6476 <  case 609:
6477 < /* Line 1787 of yacc.c  */
6754 < #line 3000 "conf_parser.y"
6476 >  case 667:
6477 > #line 2964 "conf_parser.y" /* yacc.c:1646  */
6478      {
6479 <  ConfigChannel.no_join_on_split = yylval.number;
6479 >  if (conf_parser_ctx.pass == 2)
6480 >    ConfigServerHide.flatten_links = yylval.number;
6481   }
6482 + #line 6483 "conf_parser.c" /* yacc.c:1646  */
6483      break;
6484  
6485 <  case 610:
6486 < /* Line 1787 of yacc.c  */
6487 < #line 3005 "conf_parser.y"
6485 >  case 668:
6486 > #line 2970 "conf_parser.y" /* yacc.c:1646  */
6487 >    {
6488 >  if (conf_parser_ctx.pass == 2)
6489 >  {
6490 >    if ((yyvsp[-1].number) > 0)
6491      {
6492 <  GlobalSetOptions.joinfloodcount = yylval.number;
6492 >      event_write_links_file.when = (yyvsp[-1].number);
6493 >      event_add(&event_write_links_file, NULL);
6494 >    }
6495 >    else
6496 >     event_delete(&event_write_links_file);
6497 >
6498 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6499 >  }
6500   }
6501 + #line 6502 "conf_parser.c" /* yacc.c:1646  */
6502      break;
6503  
6504 <  case 611:
6505 < /* Line 1787 of yacc.c  */
6770 < #line 3010 "conf_parser.y"
6504 >  case 669:
6505 > #line 2986 "conf_parser.y" /* yacc.c:1646  */
6506      {
6507 <  GlobalSetOptions.joinfloodtime = yylval.number;
6507 >  if (conf_parser_ctx.pass == 2)
6508 >  {
6509 >    xfree(ConfigServerHide.flatten_links_file);
6510 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6511 >  }
6512   }
6513 + #line 6514 "conf_parser.c" /* yacc.c:1646  */
6514      break;
6515  
6516 <  case 622:
6517 < /* Line 1787 of yacc.c  */
6778 < #line 3028 "conf_parser.y"
6516 >  case 670:
6517 > #line 2995 "conf_parser.y" /* yacc.c:1646  */
6518      {
6519    if (conf_parser_ctx.pass == 2)
6520 <    ConfigServerHide.flatten_links = yylval.number;
6520 >    ConfigServerHide.disable_remote_commands = yylval.number;
6521   }
6522 + #line 6523 "conf_parser.c" /* yacc.c:1646  */
6523      break;
6524  
6525 <  case 623:
6526 < /* Line 1787 of yacc.c  */
6787 < #line 3034 "conf_parser.y"
6525 >  case 671:
6526 > #line 3001 "conf_parser.y" /* yacc.c:1646  */
6527      {
6528    if (conf_parser_ctx.pass == 2)
6529      ConfigServerHide.hide_servers = yylval.number;
6530   }
6531 + #line 6532 "conf_parser.c" /* yacc.c:1646  */
6532      break;
6533  
6534 <  case 624:
6535 < /* Line 1787 of yacc.c  */
6796 < #line 3040 "conf_parser.y"
6534 >  case 672:
6535 > #line 3007 "conf_parser.y" /* yacc.c:1646  */
6536      {
6537    if (conf_parser_ctx.pass == 2)
6538 <  {
6800 <    MyFree(ConfigServerHide.hidden_name);
6801 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6802 <  }
6538 >    ConfigServerHide.hide_services = yylval.number;
6539   }
6540 + #line 6541 "conf_parser.c" /* yacc.c:1646  */
6541      break;
6542  
6543 <  case 625:
6544 < /* Line 1787 of yacc.c  */
6808 < #line 3049 "conf_parser.y"
6543 >  case 673:
6544 > #line 3013 "conf_parser.y" /* yacc.c:1646  */
6545      {
6546    if (conf_parser_ctx.pass == 2)
6547    {
6548 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6549 <    {
6814 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6815 <      ConfigServerHide.links_disabled = 0;
6816 <    }
6817 <
6818 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6548 >    xfree(ConfigServerHide.hidden_name);
6549 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6550    }
6551   }
6552 + #line 6553 "conf_parser.c" /* yacc.c:1646  */
6553      break;
6554  
6555 <  case 626:
6556 < /* Line 1787 of yacc.c  */
6825 < #line 3063 "conf_parser.y"
6555 >  case 674:
6556 > #line 3022 "conf_parser.y" /* yacc.c:1646  */
6557      {
6558    if (conf_parser_ctx.pass == 2)
6559      ConfigServerHide.hidden = yylval.number;
6560   }
6561 + #line 6562 "conf_parser.c" /* yacc.c:1646  */
6562      break;
6563  
6564 <  case 627:
6565 < /* Line 1787 of yacc.c  */
6834 < #line 3069 "conf_parser.y"
6564 >  case 675:
6565 > #line 3028 "conf_parser.y" /* yacc.c:1646  */
6566      {
6567    if (conf_parser_ctx.pass == 2)
6568      ConfigServerHide.hide_server_ips = yylval.number;
6569   }
6570 + #line 6571 "conf_parser.c" /* yacc.c:1646  */
6571      break;
6572  
6573  
6574 < /* Line 1787 of yacc.c  */
6843 < #line 6844 "conf_parser.c"
6574 > #line 6575 "conf_parser.c" /* yacc.c:1646  */
6575        default: break;
6576      }
6577    /* User semantic actions sometimes alter yychar, and that requires
# Line 6862 | Line 6593 | yyreduce:
6593  
6594    *++yyvsp = yyval;
6595  
6596 <  /* Now `shift' the result of the reduction.  Determine what state
6596 >  /* Now 'shift' the result of the reduction.  Determine what state
6597       that goes to, based on the state we popped back to and the rule
6598       number reduced by.  */
6599  
# Line 6877 | Line 6608 | yyreduce:
6608    goto yynewstate;
6609  
6610  
6611 < /*------------------------------------.
6612 < | yyerrlab -- here on detecting error |
6613 < `------------------------------------*/
6611 > /*--------------------------------------.
6612 > | yyerrlab -- here on detecting error.  |
6613 > `--------------------------------------*/
6614   yyerrlab:
6615    /* Make sure we have latest lookahead translation.  See comments at
6616       user semantic actions for why this is necessary.  */
# Line 6930 | Line 6661 | yyerrlab:
6661    if (yyerrstatus == 3)
6662      {
6663        /* If just tried and failed to reuse lookahead token after an
6664 <         error, discard it.  */
6664 >         error, discard it.  */
6665  
6666        if (yychar <= YYEOF)
6667 <        {
6668 <          /* Return failure if at end of input.  */
6669 <          if (yychar == YYEOF)
6670 <            YYABORT;
6671 <        }
6667 >        {
6668 >          /* Return failure if at end of input.  */
6669 >          if (yychar == YYEOF)
6670 >            YYABORT;
6671 >        }
6672        else
6673 <        {
6674 <          yydestruct ("Error: discarding",
6675 <                      yytoken, &yylval);
6676 <          yychar = YYEMPTY;
6677 <        }
6673 >        {
6674 >          yydestruct ("Error: discarding",
6675 >                      yytoken, &yylval);
6676 >          yychar = YYEMPTY;
6677 >        }
6678      }
6679  
6680    /* Else will try to reuse lookahead token after shifting the error
# Line 6962 | Line 6693 | yyerrorlab:
6693    if (/*CONSTCOND*/ 0)
6694       goto yyerrorlab;
6695  
6696 <  /* Do not reclaim the symbols of the rule which action triggered
6696 >  /* Do not reclaim the symbols of the rule whose action triggered
6697       this YYERROR.  */
6698    YYPOPSTACK (yylen);
6699    yylen = 0;
# Line 6975 | Line 6706 | yyerrorlab:
6706   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6707   `-------------------------------------------------------------*/
6708   yyerrlab1:
6709 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6709 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6710  
6711    for (;;)
6712      {
6713        yyn = yypact[yystate];
6714        if (!yypact_value_is_default (yyn))
6715 <        {
6716 <          yyn += YYTERROR;
6717 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6718 <            {
6719 <              yyn = yytable[yyn];
6720 <              if (0 < yyn)
6721 <                break;
6722 <            }
6723 <        }
6715 >        {
6716 >          yyn += YYTERROR;
6717 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6718 >            {
6719 >              yyn = yytable[yyn];
6720 >              if (0 < yyn)
6721 >                break;
6722 >            }
6723 >        }
6724  
6725        /* Pop the current state because it cannot handle the error token.  */
6726        if (yyssp == yyss)
6727 <        YYABORT;
6727 >        YYABORT;
6728  
6729  
6730        yydestruct ("Error: popping",
6731 <                  yystos[yystate], yyvsp);
6731 >                  yystos[yystate], yyvsp);
6732        YYPOPSTACK (1);
6733        yystate = *yyssp;
6734        YY_STACK_PRINT (yyss, yyssp);
6735      }
6736  
6737 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6738    *++yyvsp = yylval;
6739 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6740  
6741  
6742    /* Shift the error token.  */
# Line 7046 | Line 6779 | yyreturn:
6779        yydestruct ("Cleanup: discarding lookahead",
6780                    yytoken, &yylval);
6781      }
6782 <  /* Do not reclaim the symbols of the rule which action triggered
6782 >  /* Do not reclaim the symbols of the rule whose action triggered
6783       this YYABORT or YYACCEPT.  */
6784    YYPOPSTACK (yylen);
6785    YY_STACK_PRINT (yyss, yyssp);
6786    while (yyssp != yyss)
6787      {
6788        yydestruct ("Cleanup: popping",
6789 <                  yystos[*yyssp], yyvsp);
6789 >                  yystos[*yyssp], yyvsp);
6790        YYPOPSTACK (1);
6791      }
6792   #ifndef yyoverflow
# Line 7064 | Line 6797 | yyreturn:
6797    if (yymsg != yymsgbuf)
6798      YYSTACK_FREE (yymsg);
6799   #endif
6800 <  /* Make sure YYID is used.  */
7068 <  return YYID (yyresult);
6800 >  return yyresult;
6801   }
7070
7071

Comparing:
ircd-hybrid-8/src/conf_parser.c (property svn:keywords), Revision 1549 by michael, Mon Oct 1 18:11:11 2012 UTC vs.
ircd-hybrid/branches/8.2.x/src/conf_parser.c (property svn:keywords), Revision 7284 by michael, Sun Feb 7 18:25:56 2016 UTC

# Line 0 | Line 1
1 + Id Revision

Diff Legend

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