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

Comparing:
ircd-hybrid-8/src/conf_parser.c (file contents), Revision 1520 by michael, Wed Sep 5 15:50:02 2012 UTC vs.
ircd-hybrid/trunk/src/conf_parser.c (file contents), Revision 7861 by michael, Tue Nov 8 20:12:48 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"
67 <
65 > #line 28 "conf_parser.y" /* yacc.c:339  */
66  
69 #define YY_NO_UNPUT
70 #include <sys/types.h>
71 #include <string.h>
67  
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_gecos.h"
76 + #include "conf_pseudo.h"
77 + #include "conf_resv.h"
78 + #include "conf_service.h"
79 + #include "conf_shared.h"
80   #include "event.h"
81 + #include "id.h"
82   #include "log.h"
80 #include "client.h"     /* for UMODE_ALL only */
83   #include "irc_string.h"
82 #include "sprintf_irc.h"
84   #include "memory.h"
85   #include "modules.h"
86 < #include "s_serv.h"
86 > #include "server.h"
87   #include "hostmask.h"
87 #include "send.h"
88   #include "listener.h"
89 < #include "resv.h"
90 < #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
89 > #include "user.h"
90 > #include "motd.h"
91  
92   int yylex(void);
93  
94 < 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
94 > static struct
95   {
96 <  dlink_node node;
97 <  char *name;
98 <  char *user;
99 <  char *host;
100 <  char *passwd;
101 <  int  port;
102 <  int  flags;
103 < #ifdef HAVE_LIBCRYPTO
104 <  char *rsa_public_key_file;
105 <  RSA *rsa_public_key;
106 < #endif
107 < };
96 >  struct
97 >  {
98 >    dlink_list list;
99 >  } mask,
100 >    leaf,
101 >    hub;
102 >
103 >  struct
104 >  {
105 >    char buf[IRCD_BUFSIZE];
106 >  } name,
107 >    nick,
108 >    user,
109 >    host,
110 >    addr,
111 >    bind,
112 >    file,
113 >    ciph,
114 >    cert,
115 >    rpass,
116 >    spass,
117 >    whois,
118 >    class,
119 >    target,
120 >    prepend,
121 >    command;
122 >
123 >  struct
124 >  {
125 >    unsigned int value;
126 >  } flags,
127 >    modes,
128 >    size,
129 >    type,
130 >    port,
131 >    aftype,
132 >    ping_freq,
133 >    max_perip,
134 >    con_freq,
135 >    min_idle,
136 >    max_idle,
137 >    max_total,
138 >    max_global,
139 >    max_local,
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 <     KLINE_REASON = 321,
278 <     KLINE_WITH_REASON = 322,
279 <     KNOCK_DELAY = 323,
280 <     KNOCK_DELAY_CHANNEL = 324,
281 <     LEAF_MASK = 325,
282 <     LINKS_DELAY = 326,
283 <     LISTEN = 327,
284 <     T_LOG = 328,
285 <     MAX_ACCEPT = 329,
286 <     MAX_BANS = 330,
287 <     MAX_CHANS_PER_OPER = 331,
288 <     MAX_CHANS_PER_USER = 332,
289 <     MAX_GLOBAL = 333,
290 <     MAX_IDENT = 334,
291 <     MAX_LOCAL = 335,
292 <     MAX_NICK_CHANGES = 336,
293 <     MAX_NICK_TIME = 337,
294 <     MAX_NUMBER = 338,
295 <     MAX_TARGETS = 339,
296 <     MAX_WATCH = 340,
297 <     MESSAGE_LOCALE = 341,
298 <     MIN_NONWILDCARD = 342,
299 <     MIN_NONWILDCARD_SIMPLE = 343,
300 <     MODULE = 344,
301 <     MODULES = 345,
302 <     NAME = 346,
303 <     NEED_PASSWORD = 347,
304 <     NETWORK_DESC = 348,
305 <     NETWORK_NAME = 349,
306 <     NICK = 350,
307 <     NICK_CHANGES = 351,
308 <     NO_CREATE_ON_SPLIT = 352,
309 <     NO_JOIN_ON_SPLIT = 353,
310 <     NO_OPER_FLOOD = 354,
311 <     NO_TILDE = 355,
312 <     NUMBER = 356,
313 <     NUMBER_PER_CIDR = 357,
314 <     NUMBER_PER_IP = 358,
315 <     OPERATOR = 359,
316 <     OPERS_BYPASS_CALLERID = 360,
317 <     OPER_ONLY_UMODES = 361,
318 <     OPER_PASS_RESV = 362,
319 <     OPER_SPY_T = 363,
320 <     OPER_UMODES = 364,
321 <     JOIN_FLOOD_COUNT = 365,
322 <     JOIN_FLOOD_TIME = 366,
323 <     PACE_WAIT = 367,
324 <     PACE_WAIT_SIMPLE = 368,
325 <     PASSWORD = 369,
326 <     PATH = 370,
327 <     PING_COOKIE = 371,
328 <     PING_TIME = 372,
329 <     PING_WARNING = 373,
330 <     PORT = 374,
331 <     QSTRING = 375,
332 <     QUIET_ON_BAN = 376,
333 <     REASON = 377,
334 <     REDIRPORT = 378,
335 <     REDIRSERV = 379,
336 <     REGEX_T = 380,
337 <     REHASH = 381,
338 <     TREJECT_HOLD_TIME = 382,
339 <     REMOTE = 383,
340 <     REMOTEBAN = 384,
341 <     RESTRICT_CHANNELS = 385,
342 <     RSA_PRIVATE_KEY_FILE = 386,
343 <     RSA_PUBLIC_KEY_FILE = 387,
344 <     SSL_CERTIFICATE_FILE = 388,
345 <     SSL_DH_PARAM_FILE = 389,
346 <     T_SSL_CLIENT_METHOD = 390,
347 <     T_SSL_SERVER_METHOD = 391,
348 <     T_SSLV3 = 392,
349 <     T_TLSV1 = 393,
350 <     RESV = 394,
351 <     RESV_EXEMPT = 395,
352 <     SECONDS = 396,
353 <     MINUTES = 397,
354 <     HOURS = 398,
355 <     DAYS = 399,
356 <     WEEKS = 400,
357 <     SENDQ = 401,
358 <     SEND_PASSWORD = 402,
359 <     SERVERHIDE = 403,
360 <     SERVERINFO = 404,
361 <     IRCD_SID = 405,
362 <     TKLINE_EXPIRE_NOTICES = 406,
363 <     T_SHARED = 407,
364 <     T_CLUSTER = 408,
365 <     TYPE = 409,
366 <     SHORT_MOTD = 410,
367 <     SPOOF = 411,
368 <     SPOOF_NOTICE = 412,
369 <     STATS_E_DISABLED = 413,
370 <     STATS_I_OPER_ONLY = 414,
371 <     STATS_K_OPER_ONLY = 415,
372 <     STATS_O_OPER_ONLY = 416,
373 <     STATS_P_OPER_ONLY = 417,
374 <     TBOOL = 418,
375 <     TMASKED = 419,
376 <     TS_MAX_DELTA = 420,
377 <     TS_WARN_DELTA = 421,
378 <     TWODOTS = 422,
379 <     T_ALL = 423,
380 <     T_BOTS = 424,
381 <     T_SOFTCALLERID = 425,
382 <     T_CALLERID = 426,
383 <     T_CCONN = 427,
384 <     T_CCONN_FULL = 428,
385 <     T_SSL_CIPHER_LIST = 429,
386 <     T_DEAF = 430,
387 <     T_DEBUG = 431,
388 <     T_DLINE = 432,
389 <     T_EXTERNAL = 433,
390 <     T_FULL = 434,
391 <     T_INVISIBLE = 435,
392 <     T_IPV4 = 436,
393 <     T_IPV6 = 437,
394 <     T_LOCOPS = 438,
395 <     T_MAX_CLIENTS = 439,
396 <     T_NCHANGE = 440,
397 <     T_OPERWALL = 441,
398 <     T_RECVQ = 442,
399 <     T_REJ = 443,
400 <     T_SERVER = 444,
401 <     T_SERVNOTICE = 445,
402 <     T_SET = 446,
403 <     T_SKILL = 447,
404 <     T_SPY = 448,
405 <     T_SSL = 449,
406 <     T_UMODES = 450,
407 <     T_UNAUTH = 451,
408 <     T_UNDLINE = 452,
409 <     T_UNLIMITED = 453,
410 <     T_UNRESV = 454,
411 <     T_UNXLINE = 455,
412 <     T_GLOBOPS = 456,
413 <     T_WALLOP = 457,
414 <     T_RESTART = 458,
415 <     T_SERVICE = 459,
416 <     T_SERVICES_NAME = 460,
417 <     THROTTLE_TIME = 461,
418 <     TRUE_NO_OPER_FLOOD = 462,
419 <     UNKLINE = 463,
420 <     USER = 464,
421 <     USE_EGD = 465,
422 <     USE_LOGGING = 466,
423 <     USE_WHOIS_ACTUALLY = 467,
424 <     VHOST = 468,
425 <     VHOST6 = 469,
426 <     XLINE = 470,
427 <     WARN_NO_NLINE = 471,
428 <     T_SIZE = 472,
429 <     T_FILE = 473
430 <   };
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_FLOODTIME = 281,
237 >    DEFAULT_JOIN_FLOOD_COUNT = 282,
238 >    DEFAULT_JOIN_FLOOD_TIME = 283,
239 >    DEFAULT_MAX_CLIENTS = 284,
240 >    DENY = 285,
241 >    DESCRIPTION = 286,
242 >    DIE = 287,
243 >    DISABLE_AUTH = 288,
244 >    DISABLE_FAKE_CHANNELS = 289,
245 >    DISABLE_REMOTE_COMMANDS = 290,
246 >    DLINE_MIN_CIDR = 291,
247 >    DLINE_MIN_CIDR6 = 292,
248 >    DOTS_IN_IDENT = 293,
249 >    EMAIL = 294,
250 >    ENCRYPTED = 295,
251 >    EXCEED_LIMIT = 296,
252 >    EXEMPT = 297,
253 >    FAILED_OPER_NOTICE = 298,
254 >    FLATTEN_LINKS = 299,
255 >    FLATTEN_LINKS_DELAY = 300,
256 >    FLATTEN_LINKS_FILE = 301,
257 >    GECOS = 302,
258 >    GENERAL = 303,
259 >    HIDDEN = 304,
260 >    HIDDEN_NAME = 305,
261 >    HIDE_CHANS = 306,
262 >    HIDE_IDLE = 307,
263 >    HIDE_IDLE_FROM_OPERS = 308,
264 >    HIDE_SERVER_IPS = 309,
265 >    HIDE_SERVERS = 310,
266 >    HIDE_SERVICES = 311,
267 >    HOST = 312,
268 >    HUB = 313,
269 >    HUB_MASK = 314,
270 >    IGNORE_BOGUS_TS = 315,
271 >    INVISIBLE_ON_CONNECT = 316,
272 >    INVITE_CLIENT_COUNT = 317,
273 >    INVITE_CLIENT_TIME = 318,
274 >    INVITE_DELAY_CHANNEL = 319,
275 >    INVITE_EXPIRE_TIME = 320,
276 >    IP = 321,
277 >    IRCD_AUTH = 322,
278 >    IRCD_FLAGS = 323,
279 >    IRCD_SID = 324,
280 >    JOIN = 325,
281 >    KILL = 326,
282 >    KILL_CHASE_TIME_LIMIT = 327,
283 >    KLINE = 328,
284 >    KLINE_EXEMPT = 329,
285 >    KLINE_MIN_CIDR = 330,
286 >    KLINE_MIN_CIDR6 = 331,
287 >    KNOCK_CLIENT_COUNT = 332,
288 >    KNOCK_CLIENT_TIME = 333,
289 >    KNOCK_DELAY_CHANNEL = 334,
290 >    LEAF_MASK = 335,
291 >    LIBGEOIP_DATABASE_OPTIONS = 336,
292 >    LIBGEOIP_IPV4_DATABASE_FILE = 337,
293 >    LIBGEOIP_IPV6_DATABASE_FILE = 338,
294 >    LISTEN = 339,
295 >    MASK = 340,
296 >    MAX_ACCEPT = 341,
297 >    MAX_BANS = 342,
298 >    MAX_CHANNELS = 343,
299 >    MAX_GLOBAL = 344,
300 >    MAX_IDLE = 345,
301 >    MAX_INVITES = 346,
302 >    MAX_LOCAL = 347,
303 >    MAX_NICK_CHANGES = 348,
304 >    MAX_NICK_LENGTH = 349,
305 >    MAX_NICK_TIME = 350,
306 >    MAX_NUMBER = 351,
307 >    MAX_TARGETS = 352,
308 >    MAX_TOPIC_LENGTH = 353,
309 >    MAX_WATCH = 354,
310 >    MEMORY_CACHE = 355,
311 >    MIN_IDLE = 356,
312 >    MIN_NONWILDCARD = 357,
313 >    MIN_NONWILDCARD_SIMPLE = 358,
314 >    MMAP_CACHE = 359,
315 >    MODULE = 360,
316 >    MODULES = 361,
317 >    MOTD = 362,
318 >    NAME = 363,
319 >    NEED_IDENT = 364,
320 >    NEED_PASSWORD = 365,
321 >    NETWORK_DESC = 366,
322 >    NETWORK_NAME = 367,
323 >    NICK = 368,
324 >    NO_OPER_FLOOD = 369,
325 >    NO_TILDE = 370,
326 >    NUMBER = 371,
327 >    NUMBER_PER_CIDR = 372,
328 >    NUMBER_PER_IP = 373,
329 >    OPER_ONLY_UMODES = 374,
330 >    OPER_UMODES = 375,
331 >    OPERATOR = 376,
332 >    OPERS_BYPASS_CALLERID = 377,
333 >    PACE_WAIT = 378,
334 >    PACE_WAIT_SIMPLE = 379,
335 >    PASSWORD = 380,
336 >    PATH = 381,
337 >    PING_COOKIE = 382,
338 >    PING_TIME = 383,
339 >    PORT = 384,
340 >    QSTRING = 385,
341 >    RANDOM_IDLE = 386,
342 >    REASON = 387,
343 >    REDIRPORT = 388,
344 >    REDIRSERV = 389,
345 >    REHASH = 390,
346 >    REMOTE = 391,
347 >    REMOTEBAN = 392,
348 >    RESV = 393,
349 >    RESV_EXEMPT = 394,
350 >    RSA_PRIVATE_KEY_FILE = 395,
351 >    SECONDS = 396,
352 >    MINUTES = 397,
353 >    HOURS = 398,
354 >    DAYS = 399,
355 >    WEEKS = 400,
356 >    MONTHS = 401,
357 >    YEARS = 402,
358 >    SEND_PASSWORD = 403,
359 >    SENDQ = 404,
360 >    SERVERHIDE = 405,
361 >    SERVERINFO = 406,
362 >    SHORT_MOTD = 407,
363 >    SPOOF = 408,
364 >    SPOOF_NOTICE = 409,
365 >    SQUIT = 410,
366 >    SSL_CERTIFICATE_FILE = 411,
367 >    SSL_CERTIFICATE_FINGERPRINT = 412,
368 >    SSL_CONNECTION_REQUIRED = 413,
369 >    SSL_DH_ELLIPTIC_CURVE = 414,
370 >    SSL_DH_PARAM_FILE = 415,
371 >    SSL_MESSAGE_DIGEST_ALGORITHM = 416,
372 >    STANDARD = 417,
373 >    STATS_E_DISABLED = 418,
374 >    STATS_I_OPER_ONLY = 419,
375 >    STATS_K_OPER_ONLY = 420,
376 >    STATS_M_OPER_ONLY = 421,
377 >    STATS_O_OPER_ONLY = 422,
378 >    STATS_P_OPER_ONLY = 423,
379 >    STATS_U_OPER_ONLY = 424,
380 >    T_ALL = 425,
381 >    T_BOTS = 426,
382 >    T_CALLERID = 427,
383 >    T_CCONN = 428,
384 >    T_COMMAND = 429,
385 >    T_CLUSTER = 430,
386 >    T_DEAF = 431,
387 >    T_DEBUG = 432,
388 >    T_DLINE = 433,
389 >    T_EXTERNAL = 434,
390 >    T_FARCONNECT = 435,
391 >    T_FILE = 436,
392 >    T_FULL = 437,
393 >    T_GLOBOPS = 438,
394 >    T_INVISIBLE = 439,
395 >    T_IPV4 = 440,
396 >    T_IPV6 = 441,
397 >    T_LOCOPS = 442,
398 >    T_LOG = 443,
399 >    T_NCHANGE = 444,
400 >    T_NONONREG = 445,
401 >    T_OPME = 446,
402 >    T_PREPEND = 447,
403 >    T_PSEUDO = 448,
404 >    T_RECVQ = 449,
405 >    T_REJ = 450,
406 >    T_RESTART = 451,
407 >    T_SERVER = 452,
408 >    T_SERVICE = 453,
409 >    T_SERVNOTICE = 454,
410 >    T_SET = 455,
411 >    T_SHARED = 456,
412 >    T_SIZE = 457,
413 >    T_SKILL = 458,
414 >    T_SOFTCALLERID = 459,
415 >    T_SPY = 460,
416 >    T_SSL = 461,
417 >    T_SSL_CIPHER_LIST = 462,
418 >    T_TARGET = 463,
419 >    T_UMODES = 464,
420 >    T_UNAUTH = 465,
421 >    T_UNDLINE = 466,
422 >    T_UNLIMITED = 467,
423 >    T_UNRESV = 468,
424 >    T_UNXLINE = 469,
425 >    T_WALLOP = 470,
426 >    T_WALLOPS = 471,
427 >    T_WEBIRC = 472,
428 >    TBOOL = 473,
429 >    THROTTLE_COUNT = 474,
430 >    THROTTLE_TIME = 475,
431 >    TKLINE_EXPIRE_NOTICES = 476,
432 >    TMASKED = 477,
433 >    TS_MAX_DELTA = 478,
434 >    TS_WARN_DELTA = 479,
435 >    TWODOTS = 480,
436 >    TYPE = 481,
437 >    UNKLINE = 482,
438 >    USE_LOGGING = 483,
439 >    USER = 484,
440 >    VHOST = 485,
441 >    VHOST6 = 486,
442 >    WARN_NO_CONNECT_BLOCK = 487,
443 >    WHOIS = 488,
444 >    WHOWAS_HISTORY_LENGTH = 489,
445 >    XLINE = 490,
446 >    XLINE_EXEMPT = 491
447 >  };
448   #endif
449   /* Tokens.  */
450   #define ACCEPT_PASSWORD 258
# Line 410 | Line 453 | extern int yydebug;
453   #define ANTI_NICK_FLOOD 261
454   #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
455   #define AUTOCONN 263
456 < #define BYTES 264
457 < #define KBYTES 265
458 < #define MBYTES 266
459 < #define CALLER_ID_WAIT 267
460 < #define CAN_FLOOD 268
461 < #define CHANNEL 269
462 < #define CIDR_BITLEN_IPV4 270
463 < #define CIDR_BITLEN_IPV6 271
464 < #define CLASS 272
465 < #define CONNECT 273
466 < #define CONNECTFREQ 274
467 < #define DEFAULT_FLOODCOUNT 275
468 < #define DEFAULT_SPLIT_SERVER_COUNT 276
469 < #define DEFAULT_SPLIT_USER_COUNT 277
470 < #define DENY 278
471 < #define DESCRIPTION 279
472 < #define DIE 280
473 < #define DISABLE_AUTH 281
474 < #define DISABLE_FAKE_CHANNELS 282
475 < #define DISABLE_REMOTE_COMMANDS 283
476 < #define DOTS_IN_IDENT 284
477 < #define EGDPOOL_PATH 285
478 < #define EMAIL 286
479 < #define ENCRYPTED 287
480 < #define EXCEED_LIMIT 288
481 < #define EXEMPT 289
482 < #define FAILED_OPER_NOTICE 290
483 < #define IRCD_FLAGS 291
484 < #define FLATTEN_LINKS 292
485 < #define GECOS 293
486 < #define GENERAL 294
487 < #define GLINE 295
488 < #define GLINE_DURATION 296
489 < #define GLINE_ENABLE 297
490 < #define GLINE_EXEMPT 298
491 < #define GLINE_REQUEST_DURATION 299
492 < #define GLINE_MIN_CIDR 300
493 < #define GLINE_MIN_CIDR6 301
494 < #define GLOBAL_KILL 302
495 < #define IRCD_AUTH 303
496 < #define NEED_IDENT 304
497 < #define HAVENT_READ_CONF 305
498 < #define HIDDEN 306
499 < #define HIDDEN_NAME 307
500 < #define HIDE_SERVER_IPS 308
501 < #define HIDE_SERVERS 309
502 < #define HIDE_SPOOF_IPS 310
503 < #define HOST 311
504 < #define HUB 312
505 < #define HUB_MASK 313
506 < #define IGNORE_BOGUS_TS 314
507 < #define INVISIBLE_ON_CONNECT 315
508 < #define IP 316
509 < #define KILL 317
510 < #define KILL_CHASE_TIME_LIMIT 318
511 < #define KLINE 319
512 < #define KLINE_EXEMPT 320
513 < #define KLINE_REASON 321
514 < #define KLINE_WITH_REASON 322
515 < #define KNOCK_DELAY 323
516 < #define KNOCK_DELAY_CHANNEL 324
517 < #define LEAF_MASK 325
518 < #define LINKS_DELAY 326
519 < #define LISTEN 327
520 < #define T_LOG 328
521 < #define MAX_ACCEPT 329
522 < #define MAX_BANS 330
523 < #define MAX_CHANS_PER_OPER 331
524 < #define MAX_CHANS_PER_USER 332
525 < #define MAX_GLOBAL 333
526 < #define MAX_IDENT 334
527 < #define MAX_LOCAL 335
528 < #define MAX_NICK_CHANGES 336
529 < #define MAX_NICK_TIME 337
530 < #define MAX_NUMBER 338
531 < #define MAX_TARGETS 339
532 < #define MAX_WATCH 340
533 < #define MESSAGE_LOCALE 341
534 < #define MIN_NONWILDCARD 342
535 < #define MIN_NONWILDCARD_SIMPLE 343
536 < #define MODULE 344
537 < #define MODULES 345
538 < #define NAME 346
539 < #define NEED_PASSWORD 347
540 < #define NETWORK_DESC 348
541 < #define NETWORK_NAME 349
542 < #define NICK 350
543 < #define NICK_CHANGES 351
544 < #define NO_CREATE_ON_SPLIT 352
545 < #define NO_JOIN_ON_SPLIT 353
546 < #define NO_OPER_FLOOD 354
547 < #define NO_TILDE 355
548 < #define NUMBER 356
549 < #define NUMBER_PER_CIDR 357
550 < #define NUMBER_PER_IP 358
551 < #define OPERATOR 359
552 < #define OPERS_BYPASS_CALLERID 360
553 < #define OPER_ONLY_UMODES 361
554 < #define OPER_PASS_RESV 362
555 < #define OPER_SPY_T 363
556 < #define OPER_UMODES 364
557 < #define JOIN_FLOOD_COUNT 365
558 < #define JOIN_FLOOD_TIME 366
559 < #define PACE_WAIT 367
560 < #define PACE_WAIT_SIMPLE 368
561 < #define PASSWORD 369
562 < #define PATH 370
563 < #define PING_COOKIE 371
564 < #define PING_TIME 372
565 < #define PING_WARNING 373
566 < #define PORT 374
567 < #define QSTRING 375
568 < #define QUIET_ON_BAN 376
569 < #define REASON 377
570 < #define REDIRPORT 378
571 < #define REDIRSERV 379
572 < #define REGEX_T 380
573 < #define REHASH 381
574 < #define TREJECT_HOLD_TIME 382
575 < #define REMOTE 383
576 < #define REMOTEBAN 384
577 < #define RESTRICT_CHANNELS 385
578 < #define RSA_PRIVATE_KEY_FILE 386
579 < #define RSA_PUBLIC_KEY_FILE 387
580 < #define SSL_CERTIFICATE_FILE 388
581 < #define SSL_DH_PARAM_FILE 389
582 < #define T_SSL_CLIENT_METHOD 390
583 < #define T_SSL_SERVER_METHOD 391
584 < #define T_SSLV3 392
585 < #define T_TLSV1 393
586 < #define RESV 394
587 < #define RESV_EXEMPT 395
456 > #define AWAY_COUNT 264
457 > #define AWAY_TIME 265
458 > #define BYTES 266
459 > #define KBYTES 267
460 > #define MBYTES 268
461 > #define CALLER_ID_WAIT 269
462 > #define CAN_FLOOD 270
463 > #define CHANNEL 271
464 > #define CHECK_CACHE 272
465 > #define CIDR_BITLEN_IPV4 273
466 > #define CIDR_BITLEN_IPV6 274
467 > #define CLASS 275
468 > #define CLOSE 276
469 > #define CONNECT 277
470 > #define CONNECTFREQ 278
471 > #define CYCLE_ON_HOST_CHANGE 279
472 > #define DEFAULT_FLOODCOUNT 280
473 > #define DEFAULT_FLOODTIME 281
474 > #define DEFAULT_JOIN_FLOOD_COUNT 282
475 > #define DEFAULT_JOIN_FLOOD_TIME 283
476 > #define DEFAULT_MAX_CLIENTS 284
477 > #define DENY 285
478 > #define DESCRIPTION 286
479 > #define DIE 287
480 > #define DISABLE_AUTH 288
481 > #define DISABLE_FAKE_CHANNELS 289
482 > #define DISABLE_REMOTE_COMMANDS 290
483 > #define DLINE_MIN_CIDR 291
484 > #define DLINE_MIN_CIDR6 292
485 > #define DOTS_IN_IDENT 293
486 > #define EMAIL 294
487 > #define ENCRYPTED 295
488 > #define EXCEED_LIMIT 296
489 > #define EXEMPT 297
490 > #define FAILED_OPER_NOTICE 298
491 > #define FLATTEN_LINKS 299
492 > #define FLATTEN_LINKS_DELAY 300
493 > #define FLATTEN_LINKS_FILE 301
494 > #define GECOS 302
495 > #define GENERAL 303
496 > #define HIDDEN 304
497 > #define HIDDEN_NAME 305
498 > #define HIDE_CHANS 306
499 > #define HIDE_IDLE 307
500 > #define HIDE_IDLE_FROM_OPERS 308
501 > #define HIDE_SERVER_IPS 309
502 > #define HIDE_SERVERS 310
503 > #define HIDE_SERVICES 311
504 > #define HOST 312
505 > #define HUB 313
506 > #define HUB_MASK 314
507 > #define IGNORE_BOGUS_TS 315
508 > #define INVISIBLE_ON_CONNECT 316
509 > #define INVITE_CLIENT_COUNT 317
510 > #define INVITE_CLIENT_TIME 318
511 > #define INVITE_DELAY_CHANNEL 319
512 > #define INVITE_EXPIRE_TIME 320
513 > #define IP 321
514 > #define IRCD_AUTH 322
515 > #define IRCD_FLAGS 323
516 > #define IRCD_SID 324
517 > #define JOIN 325
518 > #define KILL 326
519 > #define KILL_CHASE_TIME_LIMIT 327
520 > #define KLINE 328
521 > #define KLINE_EXEMPT 329
522 > #define KLINE_MIN_CIDR 330
523 > #define KLINE_MIN_CIDR6 331
524 > #define KNOCK_CLIENT_COUNT 332
525 > #define KNOCK_CLIENT_TIME 333
526 > #define KNOCK_DELAY_CHANNEL 334
527 > #define LEAF_MASK 335
528 > #define LIBGEOIP_DATABASE_OPTIONS 336
529 > #define LIBGEOIP_IPV4_DATABASE_FILE 337
530 > #define LIBGEOIP_IPV6_DATABASE_FILE 338
531 > #define LISTEN 339
532 > #define MASK 340
533 > #define MAX_ACCEPT 341
534 > #define MAX_BANS 342
535 > #define MAX_CHANNELS 343
536 > #define MAX_GLOBAL 344
537 > #define MAX_IDLE 345
538 > #define MAX_INVITES 346
539 > #define MAX_LOCAL 347
540 > #define MAX_NICK_CHANGES 348
541 > #define MAX_NICK_LENGTH 349
542 > #define MAX_NICK_TIME 350
543 > #define MAX_NUMBER 351
544 > #define MAX_TARGETS 352
545 > #define MAX_TOPIC_LENGTH 353
546 > #define MAX_WATCH 354
547 > #define MEMORY_CACHE 355
548 > #define MIN_IDLE 356
549 > #define MIN_NONWILDCARD 357
550 > #define MIN_NONWILDCARD_SIMPLE 358
551 > #define MMAP_CACHE 359
552 > #define MODULE 360
553 > #define MODULES 361
554 > #define MOTD 362
555 > #define NAME 363
556 > #define NEED_IDENT 364
557 > #define NEED_PASSWORD 365
558 > #define NETWORK_DESC 366
559 > #define NETWORK_NAME 367
560 > #define NICK 368
561 > #define NO_OPER_FLOOD 369
562 > #define NO_TILDE 370
563 > #define NUMBER 371
564 > #define NUMBER_PER_CIDR 372
565 > #define NUMBER_PER_IP 373
566 > #define OPER_ONLY_UMODES 374
567 > #define OPER_UMODES 375
568 > #define OPERATOR 376
569 > #define OPERS_BYPASS_CALLERID 377
570 > #define PACE_WAIT 378
571 > #define PACE_WAIT_SIMPLE 379
572 > #define PASSWORD 380
573 > #define PATH 381
574 > #define PING_COOKIE 382
575 > #define PING_TIME 383
576 > #define PORT 384
577 > #define QSTRING 385
578 > #define RANDOM_IDLE 386
579 > #define REASON 387
580 > #define REDIRPORT 388
581 > #define REDIRSERV 389
582 > #define REHASH 390
583 > #define REMOTE 391
584 > #define REMOTEBAN 392
585 > #define RESV 393
586 > #define RESV_EXEMPT 394
587 > #define RSA_PRIVATE_KEY_FILE 395
588   #define SECONDS 396
589   #define MINUTES 397
590   #define HOURS 398
591   #define DAYS 399
592   #define WEEKS 400
593 < #define SENDQ 401
594 < #define SEND_PASSWORD 402
595 < #define SERVERHIDE 403
596 < #define SERVERINFO 404
597 < #define IRCD_SID 405
598 < #define TKLINE_EXPIRE_NOTICES 406
599 < #define T_SHARED 407
600 < #define T_CLUSTER 408
601 < #define TYPE 409
602 < #define SHORT_MOTD 410
603 < #define SPOOF 411
604 < #define SPOOF_NOTICE 412
605 < #define STATS_E_DISABLED 413
606 < #define STATS_I_OPER_ONLY 414
607 < #define STATS_K_OPER_ONLY 415
608 < #define STATS_O_OPER_ONLY 416
609 < #define STATS_P_OPER_ONLY 417
610 < #define TBOOL 418
611 < #define TMASKED 419
612 < #define TS_MAX_DELTA 420
613 < #define TS_WARN_DELTA 421
614 < #define TWODOTS 422
615 < #define T_ALL 423
616 < #define T_BOTS 424
617 < #define T_SOFTCALLERID 425
618 < #define T_CALLERID 426
619 < #define T_CCONN 427
620 < #define T_CCONN_FULL 428
621 < #define T_SSL_CIPHER_LIST 429
622 < #define T_DEAF 430
623 < #define T_DEBUG 431
624 < #define T_DLINE 432
625 < #define T_EXTERNAL 433
626 < #define T_FULL 434
627 < #define T_INVISIBLE 435
628 < #define T_IPV4 436
629 < #define T_IPV6 437
630 < #define T_LOCOPS 438
631 < #define T_MAX_CLIENTS 439
632 < #define T_NCHANGE 440
633 < #define T_OPERWALL 441
634 < #define T_RECVQ 442
635 < #define T_REJ 443
636 < #define T_SERVER 444
637 < #define T_SERVNOTICE 445
638 < #define T_SET 446
639 < #define T_SKILL 447
640 < #define T_SPY 448
641 < #define T_SSL 449
642 < #define T_UMODES 450
643 < #define T_UNAUTH 451
644 < #define T_UNDLINE 452
645 < #define T_UNLIMITED 453
646 < #define T_UNRESV 454
647 < #define T_UNXLINE 455
648 < #define T_GLOBOPS 456
649 < #define T_WALLOP 457
650 < #define T_RESTART 458
651 < #define T_SERVICE 459
652 < #define T_SERVICES_NAME 460
653 < #define THROTTLE_TIME 461
654 < #define TRUE_NO_OPER_FLOOD 462
655 < #define UNKLINE 463
656 < #define USER 464
657 < #define USE_EGD 465
658 < #define USE_LOGGING 466
659 < #define USE_WHOIS_ACTUALLY 467
660 < #define VHOST 468
661 < #define VHOST6 469
662 < #define XLINE 470
663 < #define WARN_NO_NLINE 471
664 < #define T_SIZE 472
665 < #define T_FILE 473
666 <
667 <
593 > #define MONTHS 401
594 > #define YEARS 402
595 > #define SEND_PASSWORD 403
596 > #define SENDQ 404
597 > #define SERVERHIDE 405
598 > #define SERVERINFO 406
599 > #define SHORT_MOTD 407
600 > #define SPOOF 408
601 > #define SPOOF_NOTICE 409
602 > #define SQUIT 410
603 > #define SSL_CERTIFICATE_FILE 411
604 > #define SSL_CERTIFICATE_FINGERPRINT 412
605 > #define SSL_CONNECTION_REQUIRED 413
606 > #define SSL_DH_ELLIPTIC_CURVE 414
607 > #define SSL_DH_PARAM_FILE 415
608 > #define SSL_MESSAGE_DIGEST_ALGORITHM 416
609 > #define STANDARD 417
610 > #define STATS_E_DISABLED 418
611 > #define STATS_I_OPER_ONLY 419
612 > #define STATS_K_OPER_ONLY 420
613 > #define STATS_M_OPER_ONLY 421
614 > #define STATS_O_OPER_ONLY 422
615 > #define STATS_P_OPER_ONLY 423
616 > #define STATS_U_OPER_ONLY 424
617 > #define T_ALL 425
618 > #define T_BOTS 426
619 > #define T_CALLERID 427
620 > #define T_CCONN 428
621 > #define T_COMMAND 429
622 > #define T_CLUSTER 430
623 > #define T_DEAF 431
624 > #define T_DEBUG 432
625 > #define T_DLINE 433
626 > #define T_EXTERNAL 434
627 > #define T_FARCONNECT 435
628 > #define T_FILE 436
629 > #define T_FULL 437
630 > #define T_GLOBOPS 438
631 > #define T_INVISIBLE 439
632 > #define T_IPV4 440
633 > #define T_IPV6 441
634 > #define T_LOCOPS 442
635 > #define T_LOG 443
636 > #define T_NCHANGE 444
637 > #define T_NONONREG 445
638 > #define T_OPME 446
639 > #define T_PREPEND 447
640 > #define T_PSEUDO 448
641 > #define T_RECVQ 449
642 > #define T_REJ 450
643 > #define T_RESTART 451
644 > #define T_SERVER 452
645 > #define T_SERVICE 453
646 > #define T_SERVNOTICE 454
647 > #define T_SET 455
648 > #define T_SHARED 456
649 > #define T_SIZE 457
650 > #define T_SKILL 458
651 > #define T_SOFTCALLERID 459
652 > #define T_SPY 460
653 > #define T_SSL 461
654 > #define T_SSL_CIPHER_LIST 462
655 > #define T_TARGET 463
656 > #define T_UMODES 464
657 > #define T_UNAUTH 465
658 > #define T_UNDLINE 466
659 > #define T_UNLIMITED 467
660 > #define T_UNRESV 468
661 > #define T_UNXLINE 469
662 > #define T_WALLOP 470
663 > #define T_WALLOPS 471
664 > #define T_WEBIRC 472
665 > #define TBOOL 473
666 > #define THROTTLE_COUNT 474
667 > #define THROTTLE_TIME 475
668 > #define TKLINE_EXPIRE_NOTICES 476
669 > #define TMASKED 477
670 > #define TS_MAX_DELTA 478
671 > #define TS_WARN_DELTA 479
672 > #define TWODOTS 480
673 > #define TYPE 481
674 > #define UNKLINE 482
675 > #define USE_LOGGING 483
676 > #define USER 484
677 > #define VHOST 485
678 > #define VHOST6 486
679 > #define WARN_NO_CONNECT_BLOCK 487
680 > #define WHOIS 488
681 > #define WHOWAS_HISTORY_LENGTH 489
682 > #define XLINE 490
683 > #define XLINE_EXEMPT 491
684  
685 + /* Value type.  */
686   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
687 < typedef union YYSTYPE
687 >
688 > union YYSTYPE
689   {
690 < /* Line 350 of yacc.c  */
630 < #line 110 "conf_parser.y"
690 > #line 141 "conf_parser.y" /* yacc.c:355  */
691  
692    int number;
693    char *string;
694  
695 + #line 696 "conf_parser.c" /* yacc.c:355  */
696 + };
697  
698 < /* Line 350 of yacc.c  */
637 < #line 638 "conf_parser.c"
638 < } YYSTYPE;
698 > typedef union YYSTYPE YYSTYPE;
699   # define YYSTYPE_IS_TRIVIAL 1
640 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
700   # define YYSTYPE_IS_DECLARED 1
701   #endif
702  
703 +
704   extern YYSTYPE yylval;
705  
646 #ifdef YYPARSE_PARAM
647 #if defined __STDC__ || defined __cplusplus
648 int yyparse (void *YYPARSE_PARAM);
649 #else
650 int yyparse ();
651 #endif
652 #else /* ! YYPARSE_PARAM */
653 #if defined __STDC__ || defined __cplusplus
706   int yyparse (void);
655 #else
656 int yyparse ();
657 #endif
658 #endif /* ! YYPARSE_PARAM */
707  
708 < #endif /* !YY_Y_TAB_H  */
708 > #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
709  
710   /* Copy the second part of user declarations.  */
711  
712 < /* Line 353 of yacc.c  */
665 < #line 666 "conf_parser.c"
712 > #line 713 "conf_parser.c" /* yacc.c:358  */
713  
714   #ifdef short
715   # undef short
# Line 676 | Line 723 | typedef unsigned char yytype_uint8;
723  
724   #ifdef YYTYPE_INT8
725   typedef YYTYPE_INT8 yytype_int8;
679 #elif (defined __STDC__ || defined __C99__FUNC__ \
680     || defined __cplusplus || defined _MSC_VER)
681 typedef signed char yytype_int8;
726   #else
727 < typedef short int yytype_int8;
727 > typedef signed char yytype_int8;
728   #endif
729  
730   #ifdef YYTYPE_UINT16
# Line 700 | Line 744 | typedef short int yytype_int16;
744   #  define YYSIZE_T __SIZE_TYPE__
745   # elif defined size_t
746   #  define YYSIZE_T size_t
747 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
704 <     || defined __cplusplus || defined _MSC_VER)
747 > # elif ! defined YYSIZE_T
748   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
749   #  define YYSIZE_T size_t
750   # else
# Line 715 | Line 758 | typedef short int yytype_int16;
758   # if defined YYENABLE_NLS && YYENABLE_NLS
759   #  if ENABLE_NLS
760   #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
761 < #   define YY_(msgid) dgettext ("bison-runtime", msgid)
761 > #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
762   #  endif
763   # endif
764   # ifndef YY_
765 < #  define YY_(msgid) msgid
765 > #  define YY_(Msgid) Msgid
766 > # endif
767 > #endif
768 >
769 > #ifndef YY_ATTRIBUTE
770 > # if (defined __GNUC__                                               \
771 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
772 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
773 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
774 > # else
775 > #  define YY_ATTRIBUTE(Spec) /* empty */
776 > # endif
777 > #endif
778 >
779 > #ifndef YY_ATTRIBUTE_PURE
780 > # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
781 > #endif
782 >
783 > #ifndef YY_ATTRIBUTE_UNUSED
784 > # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
785 > #endif
786 >
787 > #if !defined _Noreturn \
788 >     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
789 > # if defined _MSC_VER && 1200 <= _MSC_VER
790 > #  define _Noreturn __declspec (noreturn)
791 > # else
792 > #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
793   # endif
794   #endif
795  
796   /* Suppress unused-variable warnings by "using" E.  */
797   #if ! defined lint || defined __GNUC__
798 < # define YYUSE(e) ((void) (e))
798 > # define YYUSE(E) ((void) (E))
799   #else
800 < # define YYUSE(e) /* empty */
800 > # define YYUSE(E) /* empty */
801   #endif
802  
803 < /* Identity function, used to suppress warnings about constant conditions.  */
804 < #ifndef lint
805 < # define YYID(n) (n)
806 < #else
807 < #if (defined __STDC__ || defined __C99__FUNC__ \
808 <     || defined __cplusplus || defined _MSC_VER)
809 < static int
810 < YYID (int yyi)
803 > #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
804 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
805 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
806 >    _Pragma ("GCC diagnostic push") \
807 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
808 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
809 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
810 >    _Pragma ("GCC diagnostic pop")
811   #else
812 < static int
743 < YYID (yyi)
744 <    int yyi;
812 > # define YY_INITIAL_VALUE(Value) Value
813   #endif
814 < {
815 <  return yyi;
816 < }
814 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
815 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
816 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
817 > #endif
818 > #ifndef YY_INITIAL_VALUE
819 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
820   #endif
821  
822 +
823   #if ! defined yyoverflow || YYERROR_VERBOSE
824  
825   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 765 | Line 837 | YYID (yyi)
837   #    define alloca _alloca
838   #   else
839   #    define YYSTACK_ALLOC alloca
840 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
769 <     || defined __cplusplus || defined _MSC_VER)
840 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
841   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
842        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
843   #     ifndef EXIT_SUCCESS
# Line 778 | Line 849 | YYID (yyi)
849   # endif
850  
851   # ifdef YYSTACK_ALLOC
852 <   /* Pacify GCC's `empty if-body' warning.  */
853 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
852 >   /* Pacify GCC's 'empty if-body' warning.  */
853 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
854   #  ifndef YYSTACK_ALLOC_MAXIMUM
855      /* The OS might guarantee only one guard page at the bottom of the stack,
856         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 795 | Line 866 | YYID (yyi)
866   #  endif
867   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
868         && ! ((defined YYMALLOC || defined malloc) \
869 <             && (defined YYFREE || defined free)))
869 >             && (defined YYFREE || defined free)))
870   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
871   #   ifndef EXIT_SUCCESS
872   #    define EXIT_SUCCESS 0
# Line 803 | Line 874 | YYID (yyi)
874   #  endif
875   #  ifndef YYMALLOC
876   #   define YYMALLOC malloc
877 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
807 <     || defined __cplusplus || defined _MSC_VER)
877 > #   if ! defined malloc && ! defined EXIT_SUCCESS
878   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
879   #   endif
880   #  endif
881   #  ifndef YYFREE
882   #   define YYFREE free
883 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
814 <     || defined __cplusplus || defined _MSC_VER)
883 > #   if ! defined free && ! defined EXIT_SUCCESS
884   void free (void *); /* INFRINGES ON USER NAME SPACE */
885   #   endif
886   #  endif
# Line 821 | Line 890 | void free (void *); /* INFRINGES ON USER
890  
891   #if (! defined yyoverflow \
892       && (! defined __cplusplus \
893 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
893 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
894  
895   /* A type that is properly aligned for any stack member.  */
896   union yyalloc
# Line 846 | Line 915 | union yyalloc
915     elements in the stack, and YYPTR gives the new location of the
916     stack.  Advance YYPTR to a properly aligned location for the next
917     stack.  */
918 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
919 <    do                                                                  \
920 <      {                                                                 \
921 <        YYSIZE_T yynewbytes;                                            \
922 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
923 <        Stack = &yyptr->Stack_alloc;                                    \
924 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
925 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
926 <      }                                                                 \
927 <    while (YYID (0))
918 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
919 >    do                                                                  \
920 >      {                                                                 \
921 >        YYSIZE_T yynewbytes;                                            \
922 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
923 >        Stack = &yyptr->Stack_alloc;                                    \
924 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
925 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
926 >      }                                                                 \
927 >    while (0)
928  
929   #endif
930  
# Line 874 | Line 943 | union yyalloc
943            for (yyi = 0; yyi < (Count); yyi++)   \
944              (Dst)[yyi] = (Src)[yyi];            \
945          }                                       \
946 <      while (YYID (0))
946 >      while (0)
947   #  endif
948   # endif
949   #endif /* !YYCOPY_NEEDED */
# Line 882 | Line 951 | union yyalloc
951   /* YYFINAL -- State number of the termination state.  */
952   #define YYFINAL  2
953   /* YYLAST -- Last index in YYTABLE.  */
954 < #define YYLAST   1231
954 > #define YYLAST   1397
955  
956   /* YYNTOKENS -- Number of terminals.  */
957 < #define YYNTOKENS  224
957 > #define YYNTOKENS  243
958   /* YYNNTS -- Number of nonterminals.  */
959 < #define YYNNTS  287
959 > #define YYNNTS  301
960   /* YYNRULES -- Number of rules.  */
961 < #define YYNRULES  635
962 < /* YYNRULES -- Number of states.  */
963 < #define YYNSTATES  1248
961 > #define YYNRULES  681
962 > /* YYNSTATES -- Number of states.  */
963 > #define YYNSTATES  1342
964  
965 < /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
965 > /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
966 >   by yylex, with out-of-bounds checking.  */
967   #define YYUNDEFTOK  2
968 < #define YYMAXUTOK   473
968 > #define YYMAXUTOK   491
969  
970 < #define YYTRANSLATE(YYX)                                                \
970 > #define YYTRANSLATE(YYX)                                                \
971    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
972  
973 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
973 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
974 >   as returned by yylex, without out-of-bounds checking.  */
975   static const yytype_uint8 yytranslate[] =
976   {
977         0,     2,     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,   223,     2,     2,     2,     2,     2,
982 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   219,
983 <       2,   222,     2,     2,     2,     2,     2,     2,     2,     2,
981 >       2,     2,     2,     2,   241,     2,     2,     2,     2,     2,
982 >       2,     2,     2,     2,     2,     2,     2,     2,   242,   237,
983 >       2,   240,     2,     2,     2,     2,     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,
987         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
988         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
989 <       2,     2,     2,   221,     2,   220,     2,     2,     2,     2,
989 >       2,     2,     2,   239,     2,   238,     2,     2,     2,     2,
990         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
991         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
992         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 950 | Line 1021 | static const yytype_uint8 yytranslate[]
1021       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1022       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1023       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1024 <     215,   216,   217,   218
1024 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1025 >     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1026 >     235,   236
1027   };
1028  
1029   #if YYDEBUG
1030 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
958 <   YYRHS.  */
959 < static const yytype_uint16 yyprhs[] =
960 < {
961 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
962 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
963 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
964 <      63,    67,    71,    75,    79,    80,    82,    85,    89,    93,
965 <      97,   103,   106,   108,   110,   112,   115,   120,   125,   131,
966 <     134,   136,   138,   140,   142,   144,   146,   148,   150,   152,
967 <     154,   156,   158,   160,   162,   164,   166,   169,   174,   179,
968 <     183,   185,   187,   189,   193,   195,   197,   199,   204,   209,
969 <     214,   219,   224,   229,   234,   239,   244,   249,   254,   259,
970 <     264,   270,   273,   275,   277,   279,   281,   284,   289,   294,
971 <     299,   305,   308,   310,   312,   314,   317,   322,   323,   330,
972 <     333,   335,   337,   339,   341,   344,   349,   354,   359,   360,
973 <     366,   370,   372,   374,   376,   378,   380,   382,   384,   386,
974 <     387,   394,   397,   399,   401,   403,   405,   407,   409,   411,
975 <     413,   415,   418,   423,   428,   433,   438,   443,   448,   449,
976 <     455,   459,   461,   463,   465,   467,   469,   471,   473,   475,
977 <     477,   479,   481,   483,   485,   487,   489,   491,   493,   495,
978 <     497,   499,   501,   502,   508,   512,   514,   516,   518,   520,
979 <     522,   524,   526,   528,   530,   532,   534,   536,   538,   540,
980 <     542,   544,   546,   548,   550,   552,   553,   560,   563,   565,
981 <     567,   569,   571,   573,   575,   577,   579,   581,   583,   585,
982 <     587,   589,   591,   593,   596,   601,   606,   611,   616,   621,
983 <     626,   631,   636,   641,   646,   651,   656,   661,   666,   667,
984 <     674,   675,   681,   685,   687,   689,   691,   693,   696,   698,
985 <     700,   702,   704,   706,   709,   710,   716,   720,   722,   724,
986 <     728,   733,   738,   739,   746,   749,   751,   753,   755,   757,
987 <     759,   761,   763,   765,   767,   770,   775,   780,   785,   790,
988 <     791,   797,   801,   803,   805,   807,   809,   811,   813,   815,
989 <     817,   819,   821,   826,   831,   836,   837,   844,   847,   849,
990 <     851,   853,   855,   858,   863,   868,   873,   879,   882,   884,
991 <     886,   888,   893,   894,   901,   904,   906,   908,   910,   912,
992 <     915,   920,   925,   926,   932,   936,   938,   940,   942,   944,
993 <     946,   948,   950,   952,   954,   956,   958,   959,   966,   969,
994 <     971,   973,   975,   978,   983,   984,   990,   994,   996,   998,
995 <    1000,  1002,  1004,  1006,  1008,  1010,  1012,  1014,  1016,  1017,
996 <    1024,  1027,  1029,  1031,  1033,  1035,  1037,  1039,  1041,  1043,
997 <    1045,  1047,  1049,  1051,  1053,  1055,  1058,  1063,  1068,  1073,
998 <    1078,  1083,  1088,  1093,  1098,  1099,  1105,  1109,  1111,  1113,
999 <    1115,  1120,  1125,  1130,  1135,  1140,  1141,  1148,  1149,  1155,
1000 <    1159,  1161,  1163,  1166,  1168,  1170,  1172,  1174,  1176,  1181,
1001 <    1186,  1187,  1194,  1197,  1199,  1201,  1203,  1205,  1210,  1215,
1002 <    1221,  1224,  1226,  1228,  1230,  1235,  1236,  1243,  1244,  1250,
1003 <    1254,  1256,  1258,  1261,  1263,  1265,  1267,  1269,  1271,  1276,
1004 <    1281,  1287,  1290,  1292,  1294,  1296,  1298,  1300,  1302,  1304,
1005 <    1306,  1308,  1310,  1312,  1314,  1316,  1318,  1320,  1322,  1324,
1006 <    1326,  1328,  1330,  1332,  1334,  1336,  1338,  1340,  1342,  1344,
1007 <    1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,  1364,
1008 <    1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,  1384,
1009 <    1386,  1388,  1390,  1392,  1394,  1396,  1398,  1400,  1405,  1410,
1010 <    1415,  1420,  1425,  1430,  1435,  1440,  1445,  1450,  1455,  1460,
1011 <    1465,  1470,  1475,  1480,  1485,  1490,  1495,  1500,  1505,  1510,
1012 <    1515,  1520,  1525,  1530,  1535,  1540,  1545,  1550,  1555,  1560,
1013 <    1565,  1570,  1575,  1580,  1585,  1590,  1595,  1600,  1605,  1610,
1014 <    1615,  1620,  1625,  1630,  1635,  1640,  1645,  1650,  1651,  1657,
1015 <    1661,  1663,  1665,  1667,  1669,  1671,  1673,  1675,  1677,  1679,
1016 <    1681,  1683,  1685,  1687,  1689,  1691,  1693,  1695,  1697,  1699,
1017 <    1701,  1703,  1704,  1710,  1714,  1716,  1718,  1720,  1722,  1724,
1018 <    1726,  1728,  1730,  1732,  1734,  1736,  1738,  1740,  1742,  1744,
1019 <    1746,  1748,  1750,  1752,  1754,  1756,  1761,  1766,  1771,  1777,
1020 <    1780,  1782,  1784,  1786,  1788,  1790,  1792,  1794,  1796,  1798,
1021 <    1800,  1802,  1804,  1806,  1808,  1810,  1812,  1817,  1822,  1827,
1022 <    1832,  1837,  1842,  1847,  1852,  1857,  1862,  1867,  1872,  1877,
1023 <    1882,  1888,  1891,  1893,  1895,  1897,  1899,  1901,  1903,  1905,
1024 <    1907,  1912,  1917,  1922,  1927,  1932
1025 < };
1026 <
1027 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1028 < static const yytype_int16 yyrhs[] =
1029 < {
1030 <     225,     0,    -1,    -1,   225,   226,    -1,   258,    -1,   264,
1031 <      -1,   278,    -1,   485,    -1,   296,    -1,   314,    -1,   328,
1032 <      -1,   236,    -1,   502,    -1,   343,    -1,   350,    -1,   354,
1033 <      -1,   364,    -1,   373,    -1,   393,    -1,   403,    -1,   409,
1034 <      -1,   423,    -1,   413,    -1,   231,    -1,     1,   219,    -1,
1035 <       1,   220,    -1,    -1,   228,    -1,   101,   227,    -1,   101,
1036 <     141,   227,    -1,   101,   142,   227,    -1,   101,   143,   227,
1037 <      -1,   101,   144,   227,    -1,   101,   145,   227,    -1,    -1,
1038 <     230,    -1,   101,   229,    -1,   101,     9,   229,    -1,   101,
1039 <      10,   229,    -1,   101,    11,   229,    -1,    90,   221,   232,
1040 <     220,   219,    -1,   232,   233,    -1,   233,    -1,   234,    -1,
1041 <     235,    -1,     1,   219,    -1,    89,   222,   120,   219,    -1,
1042 <     115,   222,   120,   219,    -1,   149,   221,   237,   220,   219,
1043 <      -1,   237,   238,    -1,   238,    -1,   249,    -1,   254,    -1,
1044 <     257,    -1,   251,    -1,   252,    -1,   253,    -1,   256,    -1,
1045 <     247,    -1,   246,    -1,   255,    -1,   250,    -1,   245,    -1,
1046 <     239,    -1,   240,    -1,   248,    -1,     1,   219,    -1,   135,
1047 <     222,   241,   219,    -1,   136,   222,   243,   219,    -1,   241,
1048 <     223,   242,    -1,   242,    -1,   137,    -1,   138,    -1,   243,
1049 <     223,   244,    -1,   244,    -1,   137,    -1,   138,    -1,   133,
1050 <     222,   120,   219,    -1,   131,   222,   120,   219,    -1,   134,
1051 <     222,   120,   219,    -1,   174,   222,   120,   219,    -1,    91,
1052 <     222,   120,   219,    -1,   150,   222,   120,   219,    -1,    24,
1053 <     222,   120,   219,    -1,    94,   222,   120,   219,    -1,    93,
1054 <     222,   120,   219,    -1,   213,   222,   120,   219,    -1,   214,
1055 <     222,   120,   219,    -1,   184,   222,   101,   219,    -1,    57,
1056 <     222,   163,   219,    -1,     4,   221,   259,   220,   219,    -1,
1057 <     259,   260,    -1,   260,    -1,   261,    -1,   263,    -1,   262,
1058 <      -1,     1,   219,    -1,    91,   222,   120,   219,    -1,    31,
1059 <     222,   120,   219,    -1,    24,   222,   120,   219,    -1,    73,
1060 <     221,   265,   220,   219,    -1,   265,   266,    -1,   266,    -1,
1061 <     267,    -1,   268,    -1,     1,   219,    -1,   211,   222,   163,
1062 <     219,    -1,    -1,   269,   218,   221,   270,   220,   219,    -1,
1063 <     270,   271,    -1,   271,    -1,   272,    -1,   274,    -1,   273,
1064 <      -1,     1,   219,    -1,    91,   222,   120,   219,    -1,   217,
1065 <     222,   230,   219,    -1,   217,   222,   198,   219,    -1,    -1,
1066 <     154,   275,   222,   276,   219,    -1,   276,   223,   277,    -1,
1067 <     277,    -1,   209,    -1,   104,    -1,    40,    -1,   177,    -1,
1068 <      64,    -1,    62,    -1,   176,    -1,    -1,   104,   279,   221,
1069 <     280,   220,   219,    -1,   280,   281,    -1,   281,    -1,   282,
1070 <      -1,   283,    -1,   284,    -1,   288,    -1,   287,    -1,   285,
1071 <      -1,   286,    -1,   292,    -1,     1,   219,    -1,    91,   222,
1072 <     120,   219,    -1,   209,   222,   120,   219,    -1,   114,   222,
1073 <     120,   219,    -1,    32,   222,   163,   219,    -1,   132,   222,
1074 <     120,   219,    -1,    17,   222,   120,   219,    -1,    -1,   195,
1075 <     289,   222,   290,   219,    -1,   290,   223,   291,    -1,   291,
1076 <      -1,   169,    -1,   172,    -1,   173,    -1,   175,    -1,   176,
1077 <      -1,   179,    -1,    51,    -1,   192,    -1,   185,    -1,   188,
1078 <      -1,   196,    -1,   193,    -1,   178,    -1,   186,    -1,   190,
1079 <      -1,   180,    -1,   202,    -1,   170,    -1,   171,    -1,   183,
1080 <      -1,    -1,    36,   293,   222,   294,   219,    -1,   294,   223,
1081 <     295,    -1,   295,    -1,    47,    -1,   128,    -1,    64,    -1,
1082 <     208,    -1,   177,    -1,   197,    -1,   215,    -1,    40,    -1,
1083 <      25,    -1,   203,    -1,   126,    -1,     4,    -1,    96,    -1,
1084 <     186,    -1,   201,    -1,   108,    -1,   129,    -1,   191,    -1,
1085 <      89,    -1,    -1,    17,   297,   221,   298,   220,   219,    -1,
1086 <     298,   299,    -1,   299,    -1,   300,    -1,   311,    -1,   312,
1087 <      -1,   301,    -1,   302,    -1,   313,    -1,   303,    -1,   304,
1088 <      -1,   305,    -1,   306,    -1,   307,    -1,   308,    -1,   309,
1089 <      -1,   310,    -1,     1,   219,    -1,    91,   222,   120,   219,
1090 <      -1,   117,   222,   228,   219,    -1,   118,   222,   228,   219,
1091 <      -1,   103,   222,   101,   219,    -1,    19,   222,   228,   219,
1092 <      -1,    83,   222,   101,   219,    -1,    78,   222,   101,   219,
1093 <      -1,    80,   222,   101,   219,    -1,    79,   222,   101,   219,
1094 <      -1,   146,   222,   230,   219,    -1,   187,   222,   230,   219,
1095 <      -1,    15,   222,   101,   219,    -1,    16,   222,   101,   219,
1096 <      -1,   102,   222,   101,   219,    -1,    -1,    72,   315,   221,
1097 <     320,   220,   219,    -1,    -1,    36,   317,   222,   318,   219,
1098 <      -1,   318,   223,   319,    -1,   319,    -1,   194,    -1,    51,
1099 <      -1,   189,    -1,   320,   321,    -1,   321,    -1,   322,    -1,
1100 <     316,    -1,   326,    -1,   327,    -1,     1,   219,    -1,    -1,
1101 <     119,   222,   324,   323,   219,    -1,   324,   223,   325,    -1,
1102 <     325,    -1,   101,    -1,   101,   167,   101,    -1,    61,   222,
1103 <     120,   219,    -1,    56,   222,   120,   219,    -1,    -1,    48,
1104 <     329,   221,   330,   220,   219,    -1,   330,   331,    -1,   331,
1105 <      -1,   332,    -1,   333,    -1,   334,    -1,   336,    -1,   340,
1106 <      -1,   341,    -1,   342,    -1,   335,    -1,     1,   219,    -1,
1107 <     209,   222,   120,   219,    -1,   114,   222,   120,   219,    -1,
1108 <      17,   222,   120,   219,    -1,    32,   222,   163,   219,    -1,
1109 <      -1,    36,   337,   222,   338,   219,    -1,   338,   223,   339,
1110 <      -1,   339,    -1,   157,    -1,    33,    -1,    65,    -1,    49,
1111 <      -1,    13,    -1,   100,    -1,    43,    -1,   140,    -1,    92,
1112 <      -1,   156,   222,   120,   219,    -1,   124,   222,   120,   219,
1113 <      -1,   123,   222,   101,   219,    -1,    -1,   139,   344,   221,
1114 <     345,   220,   219,    -1,   345,   346,    -1,   346,    -1,   347,
1115 <      -1,   348,    -1,   349,    -1,     1,   219,    -1,   122,   222,
1116 <     120,   219,    -1,    14,   222,   120,   219,    -1,    95,   222,
1117 <     120,   219,    -1,   204,   221,   351,   220,   219,    -1,   351,
1118 <     352,    -1,   352,    -1,   353,    -1,     1,    -1,    91,   222,
1119 <     120,   219,    -1,    -1,   152,   355,   221,   356,   220,   219,
1120 <      -1,   356,   357,    -1,   357,    -1,   358,    -1,   359,    -1,
1121 <     360,    -1,     1,   219,    -1,    91,   222,   120,   219,    -1,
1122 <     209,   222,   120,   219,    -1,    -1,   154,   361,   222,   362,
1123 <     219,    -1,   362,   223,   363,    -1,   363,    -1,    64,    -1,
1124 <     208,    -1,   177,    -1,   197,    -1,   215,    -1,   200,    -1,
1125 <     139,    -1,   199,    -1,   183,    -1,   168,    -1,    -1,   153,
1126 <     365,   221,   366,   220,   219,    -1,   366,   367,    -1,   367,
1127 <      -1,   368,    -1,   369,    -1,     1,   219,    -1,    91,   222,
1128 <     120,   219,    -1,    -1,   154,   370,   222,   371,   219,    -1,
1129 <     371,   223,   372,    -1,   372,    -1,    64,    -1,   208,    -1,
1130 <     177,    -1,   197,    -1,   215,    -1,   200,    -1,   139,    -1,
1131 <     199,    -1,   183,    -1,   168,    -1,    -1,    18,   374,   221,
1132 <     375,   220,   219,    -1,   375,   376,    -1,   376,    -1,   377,
1133 <      -1,   378,    -1,   379,    -1,   380,    -1,   381,    -1,   383,
1134 <      -1,   382,    -1,   392,    -1,   384,    -1,   389,    -1,   390,
1135 <      -1,   391,    -1,   388,    -1,     1,   219,    -1,    91,   222,
1136 <     120,   219,    -1,    56,   222,   120,   219,    -1,   213,   222,
1137 <     120,   219,    -1,   147,   222,   120,   219,    -1,     3,   222,
1138 <     120,   219,    -1,   119,   222,   101,   219,    -1,     5,   222,
1139 <     181,   219,    -1,     5,   222,   182,   219,    -1,    -1,    36,
1140 <     385,   222,   386,   219,    -1,   386,   223,   387,    -1,   387,
1141 <      -1,     8,    -1,   194,    -1,    32,   222,   163,   219,    -1,
1142 <      58,   222,   120,   219,    -1,    70,   222,   120,   219,    -1,
1143 <      17,   222,   120,   219,    -1,   174,   222,   120,   219,    -1,
1144 <      -1,    62,   394,   221,   399,   220,   219,    -1,    -1,   154,
1145 <     396,   222,   397,   219,    -1,   397,   223,   398,    -1,   398,
1146 <      -1,   125,    -1,   399,   400,    -1,   400,    -1,   401,    -1,
1147 <     402,    -1,   395,    -1,     1,    -1,   209,   222,   120,   219,
1148 <      -1,   122,   222,   120,   219,    -1,    -1,    23,   404,   221,
1149 <     405,   220,   219,    -1,   405,   406,    -1,   406,    -1,   407,
1150 <      -1,   408,    -1,     1,    -1,    61,   222,   120,   219,    -1,
1151 <     122,   222,   120,   219,    -1,    34,   221,   410,   220,   219,
1152 <      -1,   410,   411,    -1,   411,    -1,   412,    -1,     1,    -1,
1153 <      61,   222,   120,   219,    -1,    -1,    38,   414,   221,   419,
1154 <     220,   219,    -1,    -1,   154,   416,   222,   417,   219,    -1,
1155 <     417,   223,   418,    -1,   418,    -1,   125,    -1,   419,   420,
1156 <      -1,   420,    -1,   421,    -1,   422,    -1,   415,    -1,     1,
1157 <      -1,    91,   222,   120,   219,    -1,   122,   222,   120,   219,
1158 <      -1,    39,   221,   424,   220,   219,    -1,   424,   425,    -1,
1159 <     425,    -1,   436,    -1,   437,    -1,   439,    -1,   440,    -1,
1160 <     441,    -1,   442,    -1,   443,    -1,   444,    -1,   445,    -1,
1161 <     446,    -1,   435,    -1,   448,    -1,   449,    -1,   450,    -1,
1162 <     451,    -1,   466,    -1,   453,    -1,   455,    -1,   457,    -1,
1163 <     456,    -1,   460,    -1,   454,    -1,   461,    -1,   462,    -1,
1164 <     463,    -1,   464,    -1,   465,    -1,   478,    -1,   467,    -1,
1165 <     468,    -1,   469,    -1,   474,    -1,   458,    -1,   459,    -1,
1166 <     484,    -1,   482,    -1,   483,    -1,   438,    -1,   473,    -1,
1167 <     447,    -1,   471,    -1,   472,    -1,   434,    -1,   427,    -1,
1168 <     428,    -1,   429,    -1,   430,    -1,   431,    -1,   432,    -1,
1169 <     433,    -1,   452,    -1,   426,    -1,   470,    -1,     1,    -1,
1170 <      85,   222,   101,   219,    -1,    42,   222,   163,   219,    -1,
1171 <      41,   222,   228,   219,    -1,    44,   222,   228,   219,    -1,
1172 <      45,   222,   101,   219,    -1,    46,   222,   101,   219,    -1,
1173 <     212,   222,   163,   219,    -1,   127,   222,   228,   219,    -1,
1174 <     151,   222,   163,   219,    -1,    63,   222,   228,   219,    -1,
1175 <      55,   222,   163,   219,    -1,    59,   222,   163,   219,    -1,
1176 <      28,   222,   163,   219,    -1,    35,   222,   163,   219,    -1,
1177 <       6,   222,   163,   219,    -1,    82,   222,   228,   219,    -1,
1178 <      81,   222,   101,   219,    -1,    74,   222,   101,   219,    -1,
1179 <       7,   222,   228,   219,    -1,   166,   222,   228,   219,    -1,
1180 <     165,   222,   228,   219,    -1,    50,   222,   101,   219,    -1,
1181 <      67,   222,   163,   219,    -1,    66,   222,   120,   219,    -1,
1182 <      60,   222,   163,   219,    -1,   216,   222,   163,   219,    -1,
1183 <     158,   222,   163,   219,    -1,   161,   222,   163,   219,    -1,
1184 <     162,   222,   163,   219,    -1,   160,   222,   163,   219,    -1,
1185 <     160,   222,   164,   219,    -1,   159,   222,   163,   219,    -1,
1186 <     159,   222,   164,   219,    -1,   112,   222,   228,   219,    -1,
1187 <      12,   222,   228,   219,    -1,   105,   222,   163,   219,    -1,
1188 <     113,   222,   228,   219,    -1,   155,   222,   163,   219,    -1,
1189 <      99,   222,   163,   219,    -1,   207,   222,   163,   219,    -1,
1190 <     107,   222,   163,   219,    -1,    86,   222,   120,   219,    -1,
1191 <      29,   222,   101,   219,    -1,    84,   222,   101,   219,    -1,
1192 <     210,   222,   163,   219,    -1,    30,   222,   120,   219,    -1,
1193 <     205,   222,   120,   219,    -1,   116,   222,   163,   219,    -1,
1194 <      26,   222,   163,   219,    -1,   206,   222,   228,   219,    -1,
1195 <      -1,   109,   475,   222,   476,   219,    -1,   476,   223,   477,
1196 <      -1,   477,    -1,   169,    -1,   172,    -1,   173,    -1,   175,
1197 <      -1,   176,    -1,   179,    -1,    51,    -1,   192,    -1,   185,
1198 <      -1,   188,    -1,   196,    -1,   193,    -1,   178,    -1,   186,
1199 <      -1,   190,    -1,   180,    -1,   202,    -1,   170,    -1,   171,
1200 <      -1,   183,    -1,    -1,   106,   479,   222,   480,   219,    -1,
1201 <     480,   223,   481,    -1,   481,    -1,   169,    -1,   172,    -1,
1202 <     173,    -1,   175,    -1,   176,    -1,   179,    -1,   192,    -1,
1203 <      51,    -1,   185,    -1,   188,    -1,   196,    -1,   193,    -1,
1204 <     178,    -1,   186,    -1,   190,    -1,   180,    -1,   202,    -1,
1205 <     170,    -1,   171,    -1,   183,    -1,    87,   222,   101,   219,
1206 <      -1,    88,   222,   101,   219,    -1,    20,   222,   101,   219,
1207 <      -1,    14,   221,   486,   220,   219,    -1,   486,   487,    -1,
1208 <     487,    -1,   495,    -1,   490,    -1,   491,    -1,   492,    -1,
1209 <     493,    -1,   494,    -1,   496,    -1,   497,    -1,   498,    -1,
1210 <     489,    -1,   499,    -1,   500,    -1,   501,    -1,   488,    -1,
1211 <       1,    -1,    27,   222,   163,   219,    -1,   130,   222,   163,
1212 <     219,    -1,    68,   222,   228,   219,    -1,    69,   222,   228,
1213 <     219,    -1,    77,   222,   101,   219,    -1,    76,   222,   101,
1214 <     219,    -1,   121,   222,   163,   219,    -1,    75,   222,   101,
1215 <     219,    -1,    22,   222,   101,   219,    -1,    21,   222,   101,
1216 <     219,    -1,    97,   222,   163,   219,    -1,    98,   222,   163,
1217 <     219,    -1,   110,   222,   101,   219,    -1,   111,   222,   228,
1218 <     219,    -1,   148,   221,   503,   220,   219,    -1,   503,   504,
1219 <      -1,   504,    -1,   505,    -1,   506,    -1,   508,    -1,   509,
1220 <      -1,   507,    -1,   510,    -1,     1,    -1,    37,   222,   163,
1221 <     219,    -1,    54,   222,   163,   219,    -1,    52,   222,   120,
1222 <     219,    -1,    71,   222,   228,   219,    -1,    51,   222,   163,
1223 <     219,    -1,    53,   222,   163,   219,    -1
1224 < };
1225 <
1226 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1030 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1031   static const yytype_uint16 yyrline[] =
1032   {
1033 <       0,   334,   334,   335,   338,   339,   340,   341,   342,   343,
1034 <     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
1035 <     354,   355,   356,   357,   358,   359,   363,   363,   364,   368,
1036 <     372,   376,   380,   384,   390,   390,   391,   392,   393,   394,
1037 <     401,   404,   404,   405,   405,   405,   407,   413,   420,   422,
1038 <     422,   423,   423,   424,   424,   425,   425,   426,   426,   427,
1039 <     427,   428,   428,   429,   429,   430,   431,   434,   435,   437,
1040 <     437,   438,   444,   452,   452,   453,   459,   467,   506,   565,
1041 <     593,   601,   616,   631,   640,   654,   663,   691,   721,   744,
1042 <     753,   755,   755,   756,   756,   757,   757,   759,   768,   777,
1043 <     789,   790,   790,   792,   792,   793,   795,   802,   802,   812,
1044 <     813,   815,   815,   816,   816,   818,   823,   826,   832,   831,
1045 <     837,   837,   838,   842,   846,   850,   854,   858,   862,   873,
1046 <     872,   970,   970,   971,   971,   971,   972,   972,   972,   973,
1047 <     973,   973,   975,   984,  1021,  1033,  1044,  1086,  1096,  1095,
1048 <    1101,  1101,  1102,  1106,  1110,  1114,  1118,  1122,  1126,  1130,
1049 <    1134,  1138,  1142,  1146,  1150,  1154,  1158,  1162,  1166,  1170,
1050 <    1174,  1178,  1185,  1184,  1190,  1190,  1191,  1195,  1199,  1203,
1051 <    1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,  1243,
1052 <    1247,  1251,  1255,  1259,  1263,  1274,  1273,  1323,  1323,  1324,
1053 <    1325,  1325,  1326,  1327,  1328,  1329,  1330,  1331,  1332,  1333,
1054 <    1334,  1335,  1335,  1336,  1338,  1347,  1353,  1359,  1365,  1371,
1055 <    1377,  1383,  1389,  1395,  1401,  1408,  1414,  1420,  1430,  1429,
1056 <    1446,  1445,  1450,  1450,  1451,  1455,  1459,  1467,  1467,  1468,
1057 <    1468,  1468,  1468,  1468,  1470,  1470,  1472,  1472,  1474,  1488,
1058 <    1508,  1517,  1530,  1529,  1598,  1598,  1599,  1599,  1599,  1599,
1059 <    1600,  1600,  1600,  1601,  1601,  1603,  1638,  1651,  1660,  1672,
1060 <    1671,  1675,  1675,  1676,  1680,  1684,  1688,  1692,  1696,  1700,
1061 <    1704,  1708,  1715,  1734,  1744,  1758,  1757,  1773,  1773,  1774,
1062 <    1774,  1774,  1774,  1776,  1785,  1800,  1813,  1815,  1815,  1816,
1063 <    1816,  1818,  1834,  1833,  1849,  1849,  1850,  1850,  1850,  1850,
1064 <    1852,  1861,  1884,  1883,  1889,  1889,  1890,  1894,  1898,  1902,
1065 <    1906,  1910,  1914,  1918,  1922,  1926,  1936,  1935,  1952,  1952,
1066 <    1953,  1953,  1953,  1955,  1962,  1961,  1967,  1967,  1968,  1972,
1067 <    1976,  1980,  1984,  1988,  1992,  1996,  2000,  2004,  2014,  2013,
1068 <    2064,  2064,  2065,  2065,  2065,  2066,  2066,  2067,  2067,  2067,
1069 <    2068,  2068,  2068,  2069,  2069,  2070,  2072,  2081,  2090,  2116,
1070 <    2134,  2152,  2158,  2162,  2171,  2170,  2174,  2174,  2175,  2179,
1071 <    2185,  2196,  2207,  2218,  2227,  2246,  2245,  2311,  2310,  2314,
1072 <    2314,  2315,  2321,  2321,  2322,  2322,  2322,  2322,  2324,  2343,
1073 <    2353,  2352,  2377,  2377,  2378,  2378,  2378,  2380,  2386,  2395,
1074 <    2397,  2397,  2398,  2398,  2400,  2419,  2418,  2466,  2465,  2469,
1075 <    2469,  2470,  2476,  2476,  2477,  2477,  2477,  2477,  2479,  2485,
1076 <    2494,  2497,  2497,  2498,  2498,  2499,  2499,  2500,  2500,  2501,
1077 <    2501,  2502,  2502,  2503,  2503,  2504,  2504,  2505,  2505,  2506,
1078 <    2506,  2507,  2507,  2508,  2508,  2509,  2509,  2510,  2510,  2511,
1079 <    2512,  2512,  2513,  2513,  2514,  2514,  2515,  2515,  2516,  2516,
1080 <    2517,  2518,  2518,  2519,  2520,  2521,  2521,  2522,  2522,  2523,
1081 <    2524,  2524,  2525,  2525,  2526,  2526,  2527,  2530,  2535,  2541,
1082 <    2547,  2553,  2558,  2563,  2568,  2573,  2578,  2583,  2588,  2593,
1083 <    2598,  2603,  2608,  2613,  2618,  2623,  2628,  2633,  2639,  2650,
1084 <    2655,  2664,  2669,  2674,  2679,  2684,  2689,  2692,  2697,  2700,
1085 <    2705,  2710,  2715,  2720,  2725,  2730,  2735,  2740,  2745,  2756,
1086 <    2761,  2766,  2771,  2780,  2789,  2794,  2799,  2805,  2804,  2809,
1087 <    2809,  2810,  2813,  2816,  2819,  2822,  2825,  2828,  2831,  2834,
1088 <    2837,  2840,  2843,  2846,  2849,  2852,  2855,  2858,  2861,  2864,
1089 <    2867,  2873,  2872,  2877,  2877,  2878,  2881,  2884,  2887,  2890,
1090 <    2893,  2896,  2899,  2902,  2905,  2908,  2911,  2914,  2917,  2920,
1091 <    2923,  2926,  2929,  2932,  2935,  2940,  2945,  2950,  2959,  2962,
1092 <    2962,  2963,  2964,  2964,  2965,  2965,  2966,  2966,  2967,  2968,
1093 <    2968,  2969,  2970,  2970,  2971,  2971,  2973,  2978,  2983,  2988,
1094 <    2993,  2998,  3003,  3008,  3013,  3018,  3023,  3028,  3033,  3038,
1095 <    3046,  3049,  3049,  3050,  3050,  3051,  3052,  3052,  3053,  3054,
1096 <    3056,  3062,  3068,  3077,  3091,  3097
1033 >       0,   381,   381,   382,   385,   386,   387,   388,   389,   390,
1034 >     391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
1035 >     401,   402,   403,   404,   405,   406,   407,   408,   412,   412,
1036 >     413,   414,   415,   416,   417,   418,   419,   420,   423,   423,
1037 >     424,   425,   426,   427,   434,   436,   436,   437,   437,   437,
1038 >     439,   445,   455,   457,   457,   458,   459,   460,   461,   462,
1039 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1040 >     473,   474,   475,   476,   477,   478,   481,   490,   499,   508,
1041 >     517,   526,   536,   535,   541,   541,   542,   548,   554,   560,
1042 >     568,   583,   598,   613,   628,   638,   652,   661,   689,   717,
1043 >     742,   764,   786,   796,   798,   798,   799,   800,   801,   802,
1044 >     804,   813,   822,   836,   835,   853,   853,   854,   854,   854,
1045 >     856,   862,   873,   872,   891,   891,   892,   892,   892,   892,
1046 >     892,   894,   900,   906,   912,   934,   935,   935,   937,   937,
1047 >     938,   940,   947,   947,   960,   961,   963,   963,   964,   964,
1048 >     966,   974,   977,   983,   982,   988,   988,   989,   993,   997,
1049 >    1001,  1005,  1009,  1013,  1017,  1028,  1027,  1088,  1088,  1089,
1050 >    1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,  1098,  1099,
1051 >    1101,  1107,  1113,  1119,  1125,  1136,  1142,  1153,  1160,  1159,
1052 >    1165,  1165,  1166,  1170,  1174,  1178,  1182,  1186,  1190,  1194,
1053 >    1198,  1202,  1206,  1210,  1214,  1218,  1222,  1226,  1230,  1234,
1054 >    1238,  1242,  1246,  1250,  1257,  1256,  1262,  1262,  1263,  1267,
1055 >    1271,  1275,  1279,  1283,  1287,  1291,  1295,  1299,  1303,  1307,
1056 >    1311,  1315,  1319,  1323,  1327,  1331,  1335,  1339,  1343,  1347,
1057 >    1351,  1355,  1359,  1363,  1367,  1371,  1375,  1386,  1385,  1441,
1058 >    1441,  1442,  1443,  1444,  1445,  1446,  1447,  1448,  1449,  1450,
1059 >    1451,  1452,  1453,  1454,  1455,  1456,  1457,  1458,  1460,  1466,
1060 >    1472,  1478,  1484,  1490,  1496,  1502,  1508,  1514,  1521,  1527,
1061 >    1533,  1539,  1548,  1558,  1557,  1563,  1563,  1564,  1568,  1579,
1062 >    1578,  1585,  1584,  1589,  1589,  1590,  1594,  1598,  1604,  1604,
1063 >    1605,  1605,  1605,  1605,  1605,  1607,  1607,  1609,  1609,  1611,
1064 >    1624,  1641,  1647,  1658,  1657,  1703,  1703,  1704,  1705,  1706,
1065 >    1707,  1708,  1709,  1710,  1711,  1712,  1714,  1720,  1726,  1732,
1066 >    1744,  1743,  1749,  1749,  1750,  1754,  1758,  1762,  1766,  1770,
1067 >    1774,  1778,  1782,  1786,  1792,  1806,  1815,  1829,  1828,  1843,
1068 >    1843,  1844,  1844,  1844,  1844,  1846,  1852,  1858,  1868,  1870,
1069 >    1870,  1871,  1871,  1873,  1890,  1889,  1912,  1912,  1913,  1913,
1070 >    1913,  1913,  1915,  1921,  1941,  1940,  1946,  1946,  1947,  1951,
1071 >    1955,  1959,  1963,  1967,  1971,  1975,  1979,  1983,  1994,  1993,
1072 >    2012,  2012,  2013,  2013,  2013,  2015,  2022,  2021,  2027,  2027,
1073 >    2028,  2032,  2036,  2040,  2044,  2048,  2052,  2056,  2060,  2064,
1074 >    2075,  2074,  2146,  2146,  2147,  2148,  2149,  2150,  2151,  2152,
1075 >    2153,  2154,  2155,  2156,  2157,  2158,  2159,  2160,  2161,  2163,
1076 >    2169,  2175,  2181,  2194,  2207,  2213,  2219,  2223,  2230,  2229,
1077 >    2234,  2234,  2235,  2239,  2245,  2256,  2262,  2268,  2274,  2290,
1078 >    2289,  2315,  2315,  2316,  2316,  2316,  2318,  2338,  2349,  2348,
1079 >    2375,  2375,  2376,  2376,  2376,  2378,  2384,  2394,  2396,  2396,
1080 >    2397,  2397,  2399,  2417,  2416,  2437,  2437,  2438,  2438,  2438,
1081 >    2440,  2446,  2456,  2458,  2458,  2459,  2460,  2461,  2462,  2463,
1082 >    2464,  2465,  2466,  2467,  2468,  2469,  2470,  2471,  2472,  2473,
1083 >    2474,  2475,  2476,  2477,  2478,  2479,  2480,  2481,  2482,  2483,
1084 >    2484,  2485,  2486,  2487,  2488,  2489,  2490,  2491,  2492,  2493,
1085 >    2494,  2495,  2496,  2497,  2498,  2499,  2500,  2501,  2502,  2503,
1086 >    2504,  2505,  2506,  2509,  2514,  2519,  2524,  2529,  2535,  2540,
1087 >    2545,  2550,  2555,  2560,  2565,  2570,  2575,  2580,  2585,  2590,
1088 >    2595,  2600,  2605,  2611,  2616,  2621,  2626,  2631,  2636,  2641,
1089 >    2646,  2649,  2654,  2657,  2662,  2667,  2672,  2677,  2682,  2687,
1090 >    2692,  2697,  2702,  2707,  2712,  2717,  2723,  2722,  2727,  2727,
1091 >    2728,  2731,  2734,  2737,  2740,  2743,  2746,  2749,  2752,  2755,
1092 >    2758,  2761,  2764,  2767,  2770,  2773,  2776,  2779,  2782,  2785,
1093 >    2788,  2791,  2797,  2796,  2801,  2801,  2802,  2805,  2808,  2811,
1094 >    2814,  2817,  2820,  2823,  2826,  2829,  2832,  2835,  2838,  2841,
1095 >    2844,  2847,  2850,  2853,  2856,  2859,  2864,  2869,  2874,  2879,
1096 >    2888,  2890,  2890,  2891,  2892,  2893,  2894,  2895,  2896,  2897,
1097 >    2898,  2899,  2900,  2901,  2902,  2903,  2904,  2906,  2911,  2916,
1098 >    2921,  2926,  2931,  2936,  2941,  2946,  2951,  2956,  2961,  2966,
1099 >    2975,  2977,  2977,  2978,  2979,  2980,  2981,  2982,  2983,  2984,
1100 >    2985,  2986,  2987,  2989,  2995,  3011,  3020,  3026,  3032,  3038,
1101 >    3047,  3053
1102   };
1103   #endif
1104  
# Line 1299 | Line 1108 | static const yytype_uint16 yyrline[] =
1108   static const char *const yytname[] =
1109   {
1110    "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1111 <  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1112 <  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1113 <  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1114 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1115 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1116 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1117 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1118 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1119 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1120 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1121 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1122 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SPOOF_IPS",
1123 <  "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT",
1124 <  "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1125 <  "KLINE_REASON", "KLINE_WITH_REASON", "KNOCK_DELAY",
1126 <  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "T_LOG",
1127 <  "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1128 <  "MAX_GLOBAL", "MAX_IDENT", "MAX_LOCAL", "MAX_NICK_CHANGES",
1129 <  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_WATCH",
1130 <  "MESSAGE_LOCALE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MODULE",
1131 <  "MODULES", "NAME", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME",
1132 <  "NICK", "NICK_CHANGES", "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT",
1133 <  "NO_OPER_FLOOD", "NO_TILDE", "NUMBER", "NUMBER_PER_CIDR",
1134 <  "NUMBER_PER_IP", "OPERATOR", "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES",
1135 <  "OPER_PASS_RESV", "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT",
1136 <  "JOIN_FLOOD_TIME", "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH",
1137 <  "PING_COOKIE", "PING_TIME", "PING_WARNING", "PORT", "QSTRING",
1138 <  "QUIET_ON_BAN", "REASON", "REDIRPORT", "REDIRSERV", "REGEX_T", "REHASH",
1139 <  "TREJECT_HOLD_TIME", "REMOTE", "REMOTEBAN", "RESTRICT_CHANNELS",
1140 <  "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SSL_CERTIFICATE_FILE",
1141 <  "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1142 <  "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT", "SECONDS", "MINUTES",
1143 <  "HOURS", "DAYS", "WEEKS", "SENDQ", "SEND_PASSWORD", "SERVERHIDE",
1144 <  "SERVERINFO", "IRCD_SID", "TKLINE_EXPIRE_NOTICES", "T_SHARED",
1145 <  "T_CLUSTER", "TYPE", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1146 <  "STATS_E_DISABLED", "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY",
1147 <  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL", "TMASKED",
1148 <  "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1149 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1150 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1151 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1152 <  "T_NCHANGE", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1153 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1154 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1155 <  "T_GLOBOPS", "T_WALLOP", "T_RESTART", "T_SERVICE", "T_SERVICES_NAME",
1156 <  "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE", "USER", "USE_EGD",
1157 <  "USE_LOGGING", "USE_WHOIS_ACTUALLY", "VHOST", "VHOST6", "XLINE",
1158 <  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1159 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1160 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1161 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1162 <  "serverinfo_item", "serverinfo_ssl_client_method",
1163 <  "serverinfo_ssl_server_method", "client_method_types",
1164 <  "client_method_type_item", "server_method_types",
1165 <  "server_method_type_item", "serverinfo_ssl_certificate_file",
1111 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1112 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1113 >  "CAN_FLOOD", "CHANNEL", "CHECK_CACHE", "CIDR_BITLEN_IPV4",
1114 >  "CIDR_BITLEN_IPV6", "CLASS", "CLOSE", "CONNECT", "CONNECTFREQ",
1115 >  "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT", "DEFAULT_FLOODTIME",
1116 >  "DEFAULT_JOIN_FLOOD_COUNT", "DEFAULT_JOIN_FLOOD_TIME",
1117 >  "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1118 >  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR",
1119 >  "DLINE_MIN_CIDR6", "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT",
1120 >  "EXEMPT", "FAILED_OPER_NOTICE", "FLATTEN_LINKS", "FLATTEN_LINKS_DELAY",
1121 >  "FLATTEN_LINKS_FILE", "GECOS", "GENERAL", "HIDDEN", "HIDDEN_NAME",
1122 >  "HIDE_CHANS", "HIDE_IDLE", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS",
1123 >  "HIDE_SERVERS", "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK",
1124 >  "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "INVITE_CLIENT_COUNT",
1125 >  "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL", "INVITE_EXPIRE_TIME", "IP",
1126 >  "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID", "JOIN", "KILL",
1127 >  "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KLINE_MIN_CIDR",
1128 >  "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT", "KNOCK_CLIENT_TIME",
1129 >  "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LIBGEOIP_DATABASE_OPTIONS",
1130 >  "LIBGEOIP_IPV4_DATABASE_FILE", "LIBGEOIP_IPV6_DATABASE_FILE", "LISTEN",
1131 >  "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_CHANNELS", "MAX_GLOBAL",
1132 >  "MAX_IDLE", "MAX_INVITES", "MAX_LOCAL", "MAX_NICK_CHANGES",
1133 >  "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1134 >  "MAX_TOPIC_LENGTH", "MAX_WATCH", "MEMORY_CACHE", "MIN_IDLE",
1135 >  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MMAP_CACHE", "MODULE",
1136 >  "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC",
1137 >  "NETWORK_NAME", "NICK", "NO_OPER_FLOOD", "NO_TILDE", "NUMBER",
1138 >  "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES", "OPER_UMODES",
1139 >  "OPERATOR", "OPERS_BYPASS_CALLERID", "PACE_WAIT", "PACE_WAIT_SIMPLE",
1140 >  "PASSWORD", "PATH", "PING_COOKIE", "PING_TIME", "PORT", "QSTRING",
1141 >  "RANDOM_IDLE", "REASON", "REDIRPORT", "REDIRSERV", "REHASH", "REMOTE",
1142 >  "REMOTEBAN", "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "SECONDS",
1143 >  "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD",
1144 >  "SENDQ", "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF",
1145 >  "SPOOF_NOTICE", "SQUIT", "SSL_CERTIFICATE_FILE",
1146 >  "SSL_CERTIFICATE_FINGERPRINT", "SSL_CONNECTION_REQUIRED",
1147 >  "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1148 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STANDARD", "STATS_E_DISABLED",
1149 >  "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY",
1150 >  "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL",
1151 >  "T_BOTS", "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF",
1152 >  "T_DEBUG", "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL",
1153 >  "T_GLOBOPS", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG",
1154 >  "T_NCHANGE", "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ",
1155 >  "T_REJ", "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1156 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1157 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1158 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1159 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME",
1160 >  "TKLINE_EXPIRE_NOTICES", "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA",
1161 >  "TWODOTS", "TYPE", "UNKLINE", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1162 >  "WARN_NO_CONNECT_BLOCK", "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE",
1163 >  "XLINE_EXEMPT", "';'", "'}'", "'{'", "'='", "','", "':'", "$accept",
1164 >  "conf", "conf_item", "timespec_", "timespec", "sizespec_", "sizespec",
1165 >  "modules_entry", "modules_items", "modules_item", "modules_module",
1166 >  "modules_path", "serverinfo_entry", "serverinfo_items",
1167 >  "serverinfo_item", "serverinfo_ssl_certificate_file",
1168    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1169 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1170 <  "serverinfo_description", "serverinfo_network_name",
1169 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1170 >  "serverinfo_ssl_dh_elliptic_curve",
1171 >  "serverinfo_libgeoip_database_options", "$@1", "options_items",
1172 >  "options_item", "serverinfo_libgeoip_ipv4_database_file",
1173 >  "serverinfo_libgeoip_ipv6_database_file", "serverinfo_name",
1174 >  "serverinfo_sid", "serverinfo_description", "serverinfo_network_name",
1175    "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1176 <  "serverinfo_max_clients", "serverinfo_hub", "admin_entry", "admin_items",
1177 <  "admin_item", "admin_name", "admin_email", "admin_description",
1178 <  "logging_entry", "logging_items", "logging_item", "logging_use_logging",
1179 <  "logging_file_entry", "$@1", "logging_file_items", "logging_file_item",
1180 <  "logging_file_name", "logging_file_size", "logging_file_type", "$@2",
1181 <  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@3",
1182 <  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1183 <  "oper_encrypted", "oper_rsa_public_key_file", "oper_class",
1184 <  "oper_umodes", "$@4", "oper_umodes_items", "oper_umodes_item",
1185 <  "oper_flags", "$@5", "oper_flags_items", "oper_flags_item",
1186 <  "class_entry", "$@6", "class_items", "class_item", "class_name",
1187 <  "class_ping_time", "class_ping_warning", "class_number_per_ip",
1188 <  "class_connectfreq", "class_max_number", "class_max_global",
1189 <  "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1190 <  "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1191 <  "class_number_per_cidr", "listen_entry", "$@7", "listen_flags", "$@8",
1192 <  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1193 <  "listen_port", "$@9", "port_items", "port_item", "listen_address",
1194 <  "listen_host", "auth_entry", "$@10", "auth_items", "auth_item",
1195 <  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1196 <  "$@11", "auth_flags_items", "auth_flags_item", "auth_spoof",
1197 <  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@12", "resv_items",
1198 <  "resv_item", "resv_creason", "resv_channel", "resv_nick",
1199 <  "service_entry", "service_items", "service_item", "service_name",
1200 <  "shared_entry", "$@13", "shared_items", "shared_item", "shared_name",
1201 <  "shared_user", "shared_type", "$@14", "shared_types", "shared_type_item",
1202 <  "cluster_entry", "$@15", "cluster_items", "cluster_item", "cluster_name",
1203 <  "cluster_type", "$@16", "cluster_types", "cluster_type_item",
1204 <  "connect_entry", "$@17", "connect_items", "connect_item", "connect_name",
1176 >  "serverinfo_default_max_clients", "serverinfo_max_nick_length",
1177 >  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1178 >  "admin_items", "admin_item", "admin_name", "admin_email",
1179 >  "admin_description", "motd_entry", "$@2", "motd_items", "motd_item",
1180 >  "motd_mask", "motd_file", "pseudo_entry", "$@3", "pseudo_items",
1181 >  "pseudo_item", "pseudo_command", "pseudo_name", "pseudo_prepend",
1182 >  "pseudo_target", "logging_entry", "logging_items", "logging_item",
1183 >  "logging_use_logging", "logging_file_entry", "$@4", "logging_file_items",
1184 >  "logging_file_item", "logging_file_name", "logging_file_size",
1185 >  "logging_file_type", "$@5", "logging_file_type_items",
1186 >  "logging_file_type_item", "oper_entry", "$@6", "oper_items", "oper_item",
1187 >  "oper_name", "oper_user", "oper_password", "oper_whois",
1188 >  "oper_encrypted", "oper_ssl_certificate_fingerprint",
1189 >  "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@7",
1190 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@8",
1191 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@9",
1192 >  "class_items", "class_item", "class_name", "class_ping_time",
1193 >  "class_number_per_ip", "class_connectfreq", "class_max_channels",
1194 >  "class_max_number", "class_max_global", "class_max_local", "class_sendq",
1195 >  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1196 >  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1197 >  "class_flags", "$@10", "class_flags_items", "class_flags_item",
1198 >  "listen_entry", "$@11", "listen_flags", "$@12", "listen_flags_items",
1199 >  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1200 >  "$@13", "port_items", "port_item", "listen_address", "listen_host",
1201 >  "auth_entry", "$@14", "auth_items", "auth_item", "auth_user",
1202 >  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@15",
1203 >  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1204 >  "auth_redir_port", "resv_entry", "$@16", "resv_items", "resv_item",
1205 >  "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1206 >  "service_items", "service_item", "service_name", "shared_entry", "$@17",
1207 >  "shared_items", "shared_item", "shared_name", "shared_user",
1208 >  "shared_type", "$@18", "shared_types", "shared_type_item",
1209 >  "cluster_entry", "$@19", "cluster_items", "cluster_item", "cluster_name",
1210 >  "cluster_type", "$@20", "cluster_types", "cluster_type_item",
1211 >  "connect_entry", "$@21", "connect_items", "connect_item", "connect_name",
1212    "connect_host", "connect_vhost", "connect_send_password",
1213 <  "connect_accept_password", "connect_port", "connect_aftype",
1214 <  "connect_flags", "$@18", "connect_flags_items", "connect_flags_item",
1215 <  "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1216 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@19",
1217 <  "kill_type", "$@20", "kill_type_items", "kill_type_item", "kill_items",
1218 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@21",
1213 >  "connect_accept_password", "connect_ssl_certificate_fingerprint",
1214 >  "connect_port", "connect_aftype", "connect_flags", "$@22",
1215 >  "connect_flags_items", "connect_flags_item", "connect_encrypted",
1216 >  "connect_hub_mask", "connect_leaf_mask", "connect_class",
1217 >  "connect_ssl_cipher_list", "kill_entry", "$@23", "kill_items",
1218 >  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@24",
1219    "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1220 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@22",
1399 <  "gecos_flags", "$@23", "gecos_flags_items", "gecos_flags_item",
1220 >  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@25",
1221    "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1222 <  "general_entry", "general_items", "general_item", "general_max_watch",
1223 <  "general_gline_enable", "general_gline_duration",
1224 <  "general_gline_request_duration", "general_gline_min_cidr",
1225 <  "general_gline_min_cidr6", "general_use_whois_actually",
1226 <  "general_reject_hold_time", "general_tkline_expire_notices",
1227 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1228 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1229 <  "general_failed_oper_notice", "general_anti_nick_flood",
1230 <  "general_max_nick_time", "general_max_nick_changes",
1231 <  "general_max_accept", "general_anti_spam_exit_message_time",
1232 <  "general_ts_warn_delta", "general_ts_max_delta",
1233 <  "general_havent_read_conf", "general_kline_with_reason",
1234 <  "general_kline_reason", "general_invisible_on_connect",
1235 <  "general_warn_no_nline", "general_stats_e_disabled",
1415 <  "general_stats_o_oper_only", "general_stats_P_oper_only",
1222 >  "general_entry", "general_items", "general_item", "general_away_count",
1223 >  "general_away_time", "general_max_watch",
1224 >  "general_whowas_history_length", "general_cycle_on_host_change",
1225 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1226 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1227 >  "general_tkline_expire_notices", "general_kill_chase_time_limit",
1228 >  "general_ignore_bogus_ts", "general_failed_oper_notice",
1229 >  "general_anti_nick_flood", "general_max_nick_time",
1230 >  "general_max_nick_changes", "general_max_accept",
1231 >  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1232 >  "general_ts_max_delta", "general_invisible_on_connect",
1233 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1234 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1235 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
1236    "general_stats_k_oper_only", "general_stats_i_oper_only",
1237    "general_pace_wait", "general_caller_id_wait",
1238    "general_opers_bypass_callerid", "general_pace_wait_simple",
1239 <  "general_short_motd", "general_no_oper_flood",
1240 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1241 <  "general_message_locale", "general_dots_in_ident", "general_max_targets",
1242 <  "general_use_egd", "general_egdpool_path", "general_services_name",
1243 <  "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1244 <  "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1245 <  "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1426 <  "general_min_nonwildcard", "general_min_nonwildcard_simple",
1427 <  "general_default_floodcount", "channel_entry", "channel_items",
1239 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1240 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1241 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1242 >  "$@26", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1243 >  "$@27", "umode_items", "umode_item", "general_min_nonwildcard",
1244 >  "general_min_nonwildcard_simple", "general_default_floodcount",
1245 >  "general_default_floodtime", "channel_entry", "channel_items",
1246    "channel_item", "channel_disable_fake_channels",
1247 <  "channel_restrict_channels", "channel_knock_delay",
1248 <  "channel_knock_delay_channel", "channel_max_chans_per_user",
1249 <  "channel_max_chans_per_oper", "channel_quiet_on_ban", "channel_max_bans",
1250 <  "channel_default_split_user_count", "channel_default_split_server_count",
1251 <  "channel_no_create_on_split", "channel_no_join_on_split",
1252 <  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1253 <  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1254 <  "serverhide_hide_servers", "serverhide_hidden_name",
1255 <  "serverhide_links_delay", "serverhide_hidden",
1256 <  "serverhide_hide_server_ips", YY_NULL
1247 >  "channel_invite_client_count", "channel_invite_client_time",
1248 >  "channel_invite_delay_channel", "channel_invite_expire_time",
1249 >  "channel_knock_client_count", "channel_knock_client_time",
1250 >  "channel_knock_delay_channel", "channel_max_channels",
1251 >  "channel_max_invites", "channel_max_bans",
1252 >  "channel_default_join_flood_count", "channel_default_join_flood_time",
1253 >  "serverhide_entry", "serverhide_items", "serverhide_item",
1254 >  "serverhide_flatten_links", "serverhide_flatten_links_delay",
1255 >  "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1256 >  "serverhide_hide_servers", "serverhide_hide_services",
1257 >  "serverhide_hidden_name", "serverhide_hidden",
1258 >  "serverhide_hide_server_ips", YY_NULLPTR
1259   };
1260   #endif
1261  
1262   # ifdef YYPRINT
1263 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1264 <   token YYLEX-NUM.  */
1263 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1264 >   (internal) symbol number NUM (which must be that of a token).  */
1265   static const yytype_uint16 yytoknum[] =
1266   {
1267         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1465 | Line 1285 | static const yytype_uint16 yytoknum[] =
1285       435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1286       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1287       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1288 <     465,   466,   467,   468,   469,   470,   471,   472,   473,    59,
1289 <     125,   123,    61,    44
1288 >     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1289 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1290 >     485,   486,   487,   488,   489,   490,   491,    59,   125,   123,
1291 >      61,    44,    58
1292   };
1293   # endif
1294  
1295 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1474 < static const yytype_uint16 yyr1[] =
1475 < {
1476 <       0,   224,   225,   225,   226,   226,   226,   226,   226,   226,
1477 <     226,   226,   226,   226,   226,   226,   226,   226,   226,   226,
1478 <     226,   226,   226,   226,   226,   226,   227,   227,   228,   228,
1479 <     228,   228,   228,   228,   229,   229,   230,   230,   230,   230,
1480 <     231,   232,   232,   233,   233,   233,   234,   235,   236,   237,
1481 <     237,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1482 <     238,   238,   238,   238,   238,   238,   238,   239,   240,   241,
1483 <     241,   242,   242,   243,   243,   244,   244,   245,   246,   247,
1484 <     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1485 <     258,   259,   259,   260,   260,   260,   260,   261,   262,   263,
1486 <     264,   265,   265,   266,   266,   266,   267,   269,   268,   270,
1487 <     270,   271,   271,   271,   271,   272,   273,   273,   275,   274,
1488 <     276,   276,   277,   277,   277,   277,   277,   277,   277,   279,
1489 <     278,   280,   280,   281,   281,   281,   281,   281,   281,   281,
1490 <     281,   281,   282,   283,   284,   285,   286,   287,   289,   288,
1491 <     290,   290,   291,   291,   291,   291,   291,   291,   291,   291,
1492 <     291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
1493 <     291,   291,   293,   292,   294,   294,   295,   295,   295,   295,
1494 <     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
1495 <     295,   295,   295,   295,   295,   297,   296,   298,   298,   299,
1496 <     299,   299,   299,   299,   299,   299,   299,   299,   299,   299,
1497 <     299,   299,   299,   299,   300,   301,   302,   303,   304,   305,
1498 <     306,   307,   308,   309,   310,   311,   312,   313,   315,   314,
1499 <     317,   316,   318,   318,   319,   319,   319,   320,   320,   321,
1500 <     321,   321,   321,   321,   323,   322,   324,   324,   325,   325,
1501 <     326,   327,   329,   328,   330,   330,   331,   331,   331,   331,
1502 <     331,   331,   331,   331,   331,   332,   333,   334,   335,   337,
1503 <     336,   338,   338,   339,   339,   339,   339,   339,   339,   339,
1504 <     339,   339,   340,   341,   342,   344,   343,   345,   345,   346,
1505 <     346,   346,   346,   347,   348,   349,   350,   351,   351,   352,
1506 <     352,   353,   355,   354,   356,   356,   357,   357,   357,   357,
1507 <     358,   359,   361,   360,   362,   362,   363,   363,   363,   363,
1508 <     363,   363,   363,   363,   363,   363,   365,   364,   366,   366,
1509 <     367,   367,   367,   368,   370,   369,   371,   371,   372,   372,
1510 <     372,   372,   372,   372,   372,   372,   372,   372,   374,   373,
1511 <     375,   375,   376,   376,   376,   376,   376,   376,   376,   376,
1512 <     376,   376,   376,   376,   376,   376,   377,   378,   379,   380,
1513 <     381,   382,   383,   383,   385,   384,   386,   386,   387,   387,
1514 <     388,   389,   390,   391,   392,   394,   393,   396,   395,   397,
1515 <     397,   398,   399,   399,   400,   400,   400,   400,   401,   402,
1516 <     404,   403,   405,   405,   406,   406,   406,   407,   408,   409,
1517 <     410,   410,   411,   411,   412,   414,   413,   416,   415,   417,
1518 <     417,   418,   419,   419,   420,   420,   420,   420,   421,   422,
1519 <     423,   424,   424,   425,   425,   425,   425,   425,   425,   425,
1520 <     425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
1521 <     425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
1522 <     425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
1523 <     425,   425,   425,   425,   425,   425,   425,   425,   425,   425,
1524 <     425,   425,   425,   425,   425,   425,   425,   426,   427,   428,
1525 <     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
1526 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
1527 <     449,   450,   451,   452,   453,   454,   455,   455,   456,   456,
1528 <     457,   458,   459,   460,   461,   462,   463,   464,   465,   466,
1529 <     467,   468,   469,   470,   471,   472,   473,   475,   474,   476,
1530 <     476,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1531 <     477,   477,   477,   477,   477,   477,   477,   477,   477,   477,
1532 <     477,   479,   478,   480,   480,   481,   481,   481,   481,   481,
1533 <     481,   481,   481,   481,   481,   481,   481,   481,   481,   481,
1534 <     481,   481,   481,   481,   481,   482,   483,   484,   485,   486,
1535 <     486,   487,   487,   487,   487,   487,   487,   487,   487,   487,
1536 <     487,   487,   487,   487,   487,   487,   488,   489,   490,   491,
1537 <     492,   493,   494,   495,   496,   497,   498,   499,   500,   501,
1538 <     502,   503,   503,   504,   504,   504,   504,   504,   504,   504,
1539 <     505,   506,   507,   508,   509,   510
1540 < };
1295 > #define YYPACT_NINF -978
1296  
1297 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1298 < static const yytype_uint8 yyr2[] =
1297 > #define yypact_value_is_default(Yystate) \
1298 >  (!!((Yystate) == (-978)))
1299 >
1300 > #define YYTABLE_NINF -143
1301 >
1302 > #define yytable_value_is_error(Yytable_value) \
1303 >  0
1304 >
1305 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1306 >     STATE-NUM.  */
1307 > static const yytype_int16 yypact[] =
1308   {
1309 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1310 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1311 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1312 <       3,     3,     3,     3,     0,     1,     2,     3,     3,     3,
1313 <       5,     2,     1,     1,     1,     2,     4,     4,     5,     2,
1314 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1315 <       1,     1,     1,     1,     1,     1,     2,     4,     4,     3,
1316 <       1,     1,     1,     3,     1,     1,     1,     4,     4,     4,
1317 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1318 <       5,     2,     1,     1,     1,     1,     2,     4,     4,     4,
1319 <       5,     2,     1,     1,     1,     2,     4,     0,     6,     2,
1320 <       1,     1,     1,     1,     2,     4,     4,     4,     0,     5,
1321 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1322 <       6,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1323 <       1,     2,     4,     4,     4,     4,     4,     4,     0,     5,
1324 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1325 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1326 <       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
1327 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1328 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1329 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1330 <       1,     1,     1,     2,     4,     4,     4,     4,     4,     4,
1331 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     6,
1332 <       0,     5,     3,     1,     1,     1,     1,     2,     1,     1,
1333 <       1,     1,     1,     2,     0,     5,     3,     1,     1,     3,
1334 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
1335 <       1,     1,     1,     1,     2,     4,     4,     4,     4,     0,
1336 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1337 <       1,     1,     4,     4,     4,     0,     6,     2,     1,     1,
1338 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1339 <       1,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1340 <       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
1341 <       1,     1,     1,     1,     1,     1,     0,     6,     2,     1,
1342 <       1,     1,     2,     4,     0,     5,     3,     1,     1,     1,
1343 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
1344 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1345 <       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
1346 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1347 <       4,     4,     4,     4,     4,     0,     6,     0,     5,     3,
1348 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1349 <       0,     6,     2,     1,     1,     1,     1,     4,     4,     5,
1350 <       2,     1,     1,     1,     4,     0,     6,     0,     5,     3,
1351 <       1,     1,     2,     1,     1,     1,     1,     1,     4,     4,
1352 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1353 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1354 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1355 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1356 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1357 <       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
1358 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1359 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1360 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1361 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1362 <       4,     4,     4,     4,     4,     4,     4,     0,     5,     3,
1363 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1364 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1365 <       1,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1366 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1367 <       1,     1,     1,     1,     1,     4,     4,     4,     5,     2,
1368 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1369 <       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
1370 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1371 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1372 <       4,     4,     4,     4,     4,     4
1309 >    -978,   680,  -978,  -215,  -207,  -205,  -978,  -978,  -978,  -199,
1310 >    -978,  -196,  -978,  -978,  -978,  -194,  -978,  -978,  -978,  -189,
1311 >    -160,  -978,  -154,  -978,  -146,  -978,  -978,  -978,  -978,  -978,
1312 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1313 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1314 >    -978,   303,   757,  -141,  -140,  -134,    26,  -126,   413,  -123,
1315 >    -100,   -94,    85,   -92,   -70,   -55,   686,   559,   -53,    10,
1316 >     -26,    14,   -18,   -31,    -8,     4,     6,     7,  -978,  -978,
1317 >    -978,  -978,  -978,    52,    60,    71,    77,    81,    82,    83,
1318 >      86,    95,   103,   105,   106,   109,   275,  -978,  -978,  -978,
1319 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1320 >    -978,   715,   649,    25,  -978,   110,    29,  -978,  -978,    28,
1321 >    -978,   111,   115,   116,   119,   120,   125,   129,   131,   134,
1322 >     135,   139,   140,   143,   155,   160,   162,   165,   166,   168,
1323 >     173,   176,   177,   178,   181,   184,   185,  -978,  -978,   186,
1324 >     188,   190,   193,   196,   200,   201,   202,   203,   204,   205,
1325 >     207,   208,   214,   218,   219,   225,   228,   231,    51,  -978,
1326 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1327 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1328 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1329 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1330 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,   395,    27,   396,
1331 >     -10,   235,   236,    30,  -978,  -978,  -978,    11,   392,    32,
1332 >    -978,   237,   239,   241,   242,   243,   244,   246,   247,   250,
1333 >     332,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1334 >    -978,    75,   251,   252,   253,   254,  -978,   255,   257,   258,
1335 >     261,   262,   263,   264,   267,   269,   283,   284,   286,   290,
1336 >     291,   294,   154,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1337 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1338 >    -978,  -978,  -978,  -978,    72,    88,   298,    15,  -978,  -978,
1339 >    -978,    66,   199,  -978,   299,    43,  -978,  -978,    58,  -978,
1340 >     130,   421,   422,   318,  -978,   117,   174,   338,   179,   174,
1341 >     174,   174,   441,   174,   174,   442,   443,   447,   327,  -978,
1342 >     329,   328,   333,   335,  -978,   344,   347,   349,   351,   352,
1343 >     354,   356,   359,   360,   362,   364,   365,   240,  -978,  -978,
1344 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1345 >    -978,  -978,  -978,  -978,  -978,   330,   366,   367,   369,   370,
1346 >     372,   373,  -978,   374,   375,   376,   378,   380,   382,   383,
1347 >      50,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1348 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,   387,   389,    17,
1349 >    -978,  -978,  -978,   439,   393,  -978,  -978,   398,   403,    55,
1350 >    -978,  -978,  -978,   428,   174,   456,   174,   174,   431,   535,
1351 >     174,   437,   540,   542,   544,   445,   450,   454,   174,   549,
1352 >     550,   557,   558,   174,   560,   561,   562,   563,   464,   446,
1353 >     451,   467,   174,   174,   470,   472,   474,  -197,  -183,   475,
1354 >     476,   477,   479,   582,   174,   483,   174,   174,   485,   588,
1355 >     468,  -978,   486,   469,   471,  -978,   473,   484,   497,   499,
1356 >     504,   276,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1357 >    -978,  -978,   505,   506,    35,  -978,  -978,  -978,   488,   508,
1358 >     509,  -978,   510,  -978,    12,  -978,  -978,  -978,  -978,  -978,
1359 >     577,   584,   489,  -978,   515,   513,   514,    16,  -978,  -978,
1360 >    -978,   518,   516,   519,  -978,   521,   525,   527,   536,  -978,
1361 >     537,   539,   161,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1362 >    -978,  -978,  -978,  -978,   538,   541,   548,   552,    40,  -978,
1363 >    -978,  -978,  -978,   494,   564,   174,   650,   575,   664,   578,
1364 >     580,   581,   565,  -978,  -978,   679,   670,   590,   684,   569,
1365 >     685,   687,   708,   709,   696,   697,   698,   699,   707,   710,
1366 >     712,   716,   717,   719,   721,   601,  -978,   602,   612,  -978,
1367 >      53,  -978,  -978,  -978,  -978,   623,   616,  -978,   615,   620,
1368 >     618,   619,   621,   622,     2,  -978,  -978,  -978,  -978,  -978,
1369 >     730,   626,  -978,   628,   629,  -978,   630,    13,  -978,  -978,
1370 >    -978,  -978,   634,   635,   637,  -978,   638,   627,   639,   640,
1371 >     643,   648,   655,   657,   659,   660,   662,   665,   666,   667,
1372 >    -978,  -978,   750,   751,   174,   646,   789,   791,   174,   792,
1373 >     795,   174,   782,   797,   802,   174,   803,   803,   683,  -978,
1374 >    -978,   787,  -114,   793,   704,   794,   798,   689,   800,   805,
1375 >     809,   806,   812,   814,   817,   690,  -978,   819,   822,   694,
1376 >    -978,   702,  -978,   823,   825,   720,  -978,   722,   724,   725,
1377 >     726,   731,   732,   733,   738,   742,   745,   747,   752,   755,
1378 >     756,   758,   760,   762,   764,   765,   770,   771,   772,   773,
1379 >     775,   776,   777,   801,   711,   778,   780,   781,   783,   784,
1380 >     785,   786,   788,   796,   799,   804,   807,   808,   810,   811,
1381 >     813,   815,   818,   820,   821,   824,  -978,  -978,   828,   728,
1382 >     727,   857,   882,   889,   894,   896,   826,  -978,   898,   901,
1383 >     827,  -978,  -978,   902,   904,   829,   919,   830,  -978,   831,
1384 >     833,  -978,  -978,   907,   908,   834,  -978,  -978,   909,   835,
1385 >     832,   910,   912,   916,   836,   837,   926,   929,   838,  -978,
1386 >    -978,   930,   932,   935,   839,  -978,   841,   842,   843,   844,
1387 >     845,   846,   847,   848,   849,  -978,   850,   851,   852,   853,
1388 >      20,   854,   855,   856,   858,   859,   860,   861,   862,   863,
1389 >     864,   865,   866,   867,   868,   869,  -978,  -978,   936,   870,
1390 >     871,  -978,   872,  -978,    80,  -978,   943,   944,   964,   977,
1391 >     874,  -978,   875,  -978,  -978,   983,   876,   984,   878,  -978,
1392 >    -978,  -978,  -978,  -978,   174,   174,   174,   174,   174,   174,
1393 >     174,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1394 >    -978,  -978,  -978,  -978,  -978,   880,   881,   883,   -34,   884,
1395 >     885,   886,   887,   888,   890,   891,   892,   893,   895,    36,
1396 >     897,   899,  -978,   900,   903,   905,   906,   911,   913,   914,
1397 >      -4,   915,   917,   918,   920,   921,   922,   923,  -978,   924,
1398 >     925,  -978,  -978,   927,   928,  -978,  -978,  -978,  -978,  -978,
1399 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1400 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1401 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1402 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1403 >    -978,  -978,  -175,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1404 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1405 >    -978,  -978,  -978,  -978,  -978,  -978,  -174,  -978,  -978,  -978,
1406 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1407 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,   931,
1408 >     933,   357,   934,   937,   938,   939,   940,  -978,   941,   942,
1409 >    -978,   945,   946,   -29,   947,   948,  -978,  -978,  -978,  -978,
1410 >     949,   950,  -978,   951,   953,   448,   954,   955,   956,   957,
1411 >     761,   958,   959,  -978,   960,   961,   962,  -978,  -978,  -978,
1412 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1413 >    -978,  -978,  -978,  -978,  -978,  -173,  -978,  -978,  -978,  -978,
1414 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1415 >    -978,  -978,   963,   384,  -978,  -978,   965,   879,   966,  -978,
1416 >      23,  -978,  -978,  -978,  -978,   967,   968,   970,   971,  -978,
1417 >    -978,   972,   816,   973,  -978,  -978,  -978,  -978,  -978,  -978,
1418 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -133,  -978,  -978,
1419 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,   803,
1420 >     803,   803,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1421 >    -978,  -978,  -978,  -978,  -978,   -48,  -978,  -978,  -978,  -978,
1422 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,   801,
1423 >    -978,   711,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1424 >    -978,  -978,  -978,  -978,   -42,  -978,  -978,  -978,  -978,  -978,
1425 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,   -33,  -978,
1426 >    1010,   919,   974,  -978,  -978,  -978,  -978,  -978,  -978,   975,
1427 >    -978,   976,   978,  -978,  -978,   979,   980,  -978,  -978,   981,
1428 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1429 >    -978,  -978,   -32,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1430 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1431 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1432 >     -15,  -978,  -978,  -978,  -978,  -978,  -978,  -978,    20,  -978,
1433 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1434 >     -13,  -978,  -978,  1001,   -74,   985,   982,  -978,  -978,  -978,
1435 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1436 >    -978,  -978,  -978,    -7,  -978,  -978,  -978,   -34,  -978,  -978,
1437 >    -978,  -978,    -4,  -978,  -978,  -978,   357,  -978,   -29,  -978,
1438 >    -978,  -978,   997,  1000,   999,  1003,  1008,  1009,  -978,   448,
1439 >    -978,   761,  -978,  -978,   384,   987,   989,   990,   226,  -978,
1440 >    -978,   816,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1441 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1442 >    -978,  -978,  -978,  -978,  -978,  -978,    64,  -978,  -978,  -978,
1443 >     226,  -978
1444   };
1445  
1446 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1447 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1448 <   means the default is an error.  */
1446 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1447 >     Performed when YYTABLE does not specify something else to do.  Zero
1448 >     means the default is an error.  */
1449   static const yytype_uint16 yydefact[] =
1450   {
1451 <       2,     0,     1,     0,     0,     0,   195,   348,   400,     0,
1452 <     415,     0,   252,   385,   228,     0,     0,   129,   285,     0,
1453 <       0,   302,   326,     0,     3,    23,    11,     4,     5,     6,
1454 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1455 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1456 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1622 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1623 <       0,     0,    92,    93,    95,    94,   605,     0,     0,     0,
1451 >       2,     0,     1,     0,     0,     0,   247,   410,   458,     0,
1452 >     473,     0,   313,   449,   289,     0,   113,   165,   347,     0,
1453 >       0,   388,     0,   122,     0,   364,     3,    23,    11,     4,
1454 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1455 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1456 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1457         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1458 <       0,     0,   590,   604,   600,   592,   593,   594,   595,   596,
1459 <     591,   597,   598,   599,   601,   602,   603,     0,     0,     0,
1460 <     413,     0,     0,   411,   412,     0,   486,     0,     0,     0,
1458 >       0,     0,     0,     0,     0,     0,     0,     0,   105,   106,
1459 >     108,   107,   646,     0,     0,     0,     0,     0,     0,     0,
1460 >       0,     0,     0,     0,     0,     0,     0,   632,   645,   634,
1461 >     635,   636,   637,   638,   639,   640,   641,   642,   633,   643,
1462 >     644,     0,     0,     0,   471,     0,     0,   469,   470,     0,
1463 >     532,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1464         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465 +       0,     0,     0,     0,     0,     0,     0,   602,   576,     0,
1466         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1467 <       0,     0,     0,     0,     0,     0,     0,     0,   561,     0,
1468 <     537,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1467 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   484,
1468 >     485,   486,   530,   493,   531,   525,   526,   527,   528,   524,
1469 >     497,   487,   488,   489,   490,   491,   492,   494,   495,   496,
1470 >     498,   499,   529,   503,   504,   505,   506,   502,   501,   507,
1471 >     514,   515,   508,   509,   510,   500,   512,   522,   523,   520,
1472 >     521,   513,   511,   518,   519,   516,   517,     0,     0,     0,
1473 >       0,     0,     0,     0,    46,    47,    48,     0,     0,     0,
1474 >     672,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1475 >       0,   662,   663,   664,   665,   666,   667,   668,   670,   669,
1476 >     671,     0,     0,     0,     0,     0,    82,     0,     0,     0,
1477         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1478 <       0,   432,   484,   476,   477,   478,   479,   480,   481,   482,
1479 <     475,   443,   433,   434,   470,   435,   436,   437,   438,   439,
1480 <     440,   441,   442,   472,   444,   445,   446,   447,   483,   449,
1481 <     454,   450,   452,   451,   465,   466,   453,   455,   456,   457,
1482 <     458,   459,   448,   461,   462,   463,   485,   473,   474,   471,
1483 <     464,   460,   468,   469,   467,     0,     0,     0,     0,     0,
1484 <       0,   102,   103,   104,     0,     0,     0,     0,     0,    42,
1485 <      43,    44,     0,     0,   629,     0,     0,     0,     0,     0,
1486 <       0,     0,   622,   623,   624,   627,   625,   626,   628,     0,
1478 >       0,     0,     0,    54,    69,    66,    64,    70,    71,    65,
1479 >      72,    73,    74,    55,    68,    58,    59,    60,    56,    67,
1480 >      61,    62,    63,    57,     0,     0,     0,     0,   137,   138,
1481 >     139,     0,     0,   362,     0,     0,   360,   361,     0,   109,
1482 >       0,     0,     0,     0,   104,     0,     0,     0,     0,     0,
1483 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   631,
1484 >       0,     0,     0,     0,   283,     0,     0,     0,     0,     0,
1485 >       0,     0,     0,     0,     0,     0,     0,     0,   250,   251,
1486 >     254,   256,   257,   258,   259,   260,   261,   262,   263,   252,
1487 >     253,   255,   264,   265,   266,     0,     0,     0,     0,     0,
1488 >       0,     0,   438,     0,     0,     0,     0,     0,     0,     0,
1489 >       0,   413,   414,   415,   416,   417,   418,   419,   421,   420,
1490 >     423,   427,   424,   425,   426,   422,   464,     0,     0,     0,
1491 >     461,   462,   463,     0,     0,   468,   479,     0,     0,     0,
1492 >     476,   477,   478,     0,     0,     0,     0,     0,     0,     0,
1493         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1643       0,     0,     0,     0,     0,     0,    50,    63,    64,    62,
1644      59,    58,    65,    51,    61,    54,    55,    56,    52,    60,
1645      57,    53,     0,     0,   300,     0,     0,   298,   299,    96,
1646       0,     0,     0,     0,    91,     0,     0,     0,     0,     0,
1494         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1648     589,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1649       0,     0,     0,     0,     0,     0,     0,   198,   199,   202,
1650     203,   205,   206,   207,   208,   209,   210,   211,   212,   200,
1651     201,   204,     0,     0,     0,     0,     0,   374,     0,     0,
1652       0,     0,     0,     0,     0,     0,     0,   351,   352,   353,
1653     354,   355,   356,   358,   357,   360,   364,   361,   362,   363,
1654     359,   406,     0,     0,     0,   403,   404,   405,     0,     0,
1655     410,   427,     0,     0,   417,   426,     0,   423,   424,   425,
1495         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1496         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1497 +       0,   483,     0,     0,     0,   330,     0,     0,     0,     0,
1498 +       0,     0,   316,   317,   318,   319,   324,   320,   321,   322,
1499 +     323,   455,     0,     0,     0,   452,   453,   454,     0,     0,
1500 +       0,   291,     0,   301,     0,   299,   300,   302,   303,    49,
1501 +       0,     0,     0,    45,     0,     0,     0,     0,   116,   117,
1502 +     118,     0,     0,     0,   214,     0,     0,     0,     0,   188,
1503 +       0,     0,     0,   168,   169,   170,   171,   172,   175,   176,
1504 +     177,   174,   173,   178,     0,     0,     0,     0,     0,   350,
1505 +     351,   352,   353,     0,     0,     0,     0,     0,     0,     0,
1506 +       0,     0,     0,   661,    75,     0,     0,     0,     0,     0,
1507         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1508 +       0,     0,     0,     0,     0,     0,    53,     0,     0,   396,
1509 +       0,   391,   392,   393,   140,     0,     0,   136,     0,     0,
1510 +       0,     0,     0,     0,     0,   125,   126,   128,   127,   129,
1511 +       0,     0,   359,     0,     0,   374,     0,     0,   367,   368,
1512 +     369,   370,     0,     0,     0,   103,     0,    28,     0,     0,
1513         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1514 +     630,   267,     0,     0,     0,     0,     0,     0,     0,     0,
1515 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   249,
1516 +     428,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1517 +       0,     0,     0,     0,     0,     0,   412,     0,     0,     0,
1518 +     460,     0,   467,     0,     0,     0,   475,     0,     0,     0,
1519         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1661       0,     0,     0,     0,   431,     0,     0,     0,   269,     0,
1662       0,     0,     0,     0,     0,   255,   256,   257,   258,   263,
1663     259,   260,   261,   262,   397,     0,   387,     0,   396,     0,
1664     393,   394,   395,     0,   230,     0,     0,     0,   240,     0,
1665     238,   239,   241,   242,   105,     0,     0,   101,     0,    45,
1666       0,     0,     0,    41,     0,     0,     0,   172,     0,     0,
1667       0,   148,     0,     0,   132,   133,   134,   135,   138,   139,
1668     137,   136,   140,     0,     0,     0,     0,     0,   288,   289,
1669     290,   291,     0,     0,     0,     0,     0,     0,     0,   621,
1670      66,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1671       0,     0,     0,     0,     0,     0,     0,    49,     0,     0,
1672     312,     0,     0,   305,   306,   307,   308,     0,     0,   334,
1673       0,   329,   330,   331,     0,     0,   297,     0,     0,     0,
1674      90,     0,     0,     0,    26,     0,     0,     0,     0,     0,
1675       0,     0,     0,     0,     0,     0,   588,   213,     0,     0,
1520         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1677       0,     0,     0,   197,   365,     0,     0,     0,     0,     0,
1678       0,     0,     0,     0,     0,     0,     0,     0,     0,   350,
1679       0,     0,     0,   402,     0,   409,     0,     0,     0,     0,
1680     422,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1521         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1522         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1523 +       0,     0,     0,     0,     0,     0,   482,   325,     0,     0,
1524 +       0,     0,     0,     0,     0,     0,     0,   315,     0,     0,
1525 +       0,   451,   304,     0,     0,     0,     0,     0,   298,     0,
1526 +       0,    44,   119,     0,     0,     0,   115,   179,     0,     0,
1527 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   167,
1528 +     354,     0,     0,     0,     0,   349,     0,     0,     0,     0,
1529 +       0,     0,     0,     0,     0,   660,     0,     0,     0,     0,
1530         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1531 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1532 <       0,     0,     0,     0,     0,     0,   430,   264,     0,     0,
1533 <       0,     0,     0,     0,     0,     0,     0,   254,     0,     0,
1534 <       0,     0,   392,   243,     0,     0,     0,     0,     0,   237,
1535 <       0,   100,     0,     0,     0,    40,   141,     0,     0,     0,
1536 <       0,     0,     0,     0,     0,     0,   131,   292,     0,     0,
1537 <       0,     0,   287,     0,     0,     0,     0,     0,     0,   620,
1538 <       0,     0,     0,     0,     0,     0,     0,     0,    71,    72,
1539 <       0,    70,    75,    76,     0,    74,     0,     0,     0,     0,
1540 <       0,    48,   309,     0,     0,     0,     0,   304,   332,     0,
1541 <       0,     0,   328,     0,   296,    99,    98,    97,   615,   614,
1542 <     606,    26,    26,    26,    26,    26,    28,    27,   608,   609,
1543 <     613,   611,   610,   616,   617,   618,   619,   612,   607,     0,
1544 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1545 <       0,    34,     0,     0,   196,     0,     0,     0,     0,     0,
1546 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   349,
1547 <       0,     0,   401,   414,     0,     0,     0,   416,   501,   505,
1548 <     521,   587,   535,   499,   529,   532,   500,   489,   488,   490,
1549 <     491,   492,   508,   497,   498,   511,   496,   510,   509,   504,
1550 <     503,   502,   530,   487,   528,   585,   586,   525,   522,   572,
1551 <     565,   582,   583,   566,   567,   568,   569,   577,   570,   580,
1552 <     584,   573,   578,   574,   579,   571,   576,   575,   581,     0,
1553 <     564,   527,   547,   541,   558,   559,   542,   543,   544,   545,
1554 <     553,   546,   556,   560,   549,   554,   550,   555,   548,   552,
1555 <     551,   557,     0,   540,   520,   523,   534,   494,   495,   524,
1556 <     513,   518,   519,   516,   517,   514,   515,   507,   506,   533,
1557 <     536,   526,   531,   493,   512,     0,     0,     0,     0,     0,
1558 <       0,     0,     0,   253,     0,     0,     0,   386,     0,     0,
1559 <       0,   248,   244,   247,   229,   106,     0,     0,   118,     0,
1560 <       0,   110,   111,   113,   112,    46,    47,     0,     0,     0,
1561 <       0,     0,     0,     0,     0,   130,     0,     0,     0,   286,
1562 <     630,   634,   632,   635,   631,   633,    83,    89,    81,    85,
1563 <      84,    78,    77,    79,    67,     0,    68,     0,    82,    80,
1564 <      88,    86,    87,     0,     0,     0,   303,     0,     0,   327,
1565 <     301,    29,    30,    31,    32,    33,   225,   226,   218,   220,
1566 <     222,   221,   219,   214,   227,   217,   215,   216,    34,    34,
1567 <      34,    36,    35,   223,   224,   370,   372,   373,   383,   380,
1568 <     378,   379,     0,   377,   367,   381,   382,   366,   371,   369,
1569 <     384,   368,   407,   408,   428,   429,   421,     0,   420,   562,
1570 <       0,   538,     0,   267,   268,   277,   274,   279,   276,   275,
1571 <     281,   278,   280,   273,     0,   272,   266,   284,   283,   282,
1572 <     265,   399,   391,     0,   390,   398,   235,   236,   234,     0,
1573 <     233,   251,   250,     0,     0,     0,   114,     0,     0,     0,
1574 <       0,   109,   147,   145,   187,   184,   183,   176,   178,   194,
1575 <     188,   191,   186,   177,   192,   180,   189,   193,   181,   190,
1576 <     185,   179,   182,     0,   175,   142,   144,   146,   158,   152,
1577 <     169,   170,   153,   154,   155,   156,   164,   157,   167,   171,
1578 <     160,   165,   161,   166,   159,   163,   162,   168,     0,   151,
1579 <     143,   294,   295,   293,    69,    73,   310,   316,   322,   325,
1580 <     318,   324,   319,   323,   321,   317,   320,     0,   315,   311,
1581 <     333,   338,   344,   347,   340,   346,   341,   345,   343,   339,
1582 <     342,     0,   337,    37,    38,    39,   375,     0,   418,     0,
1583 <     563,   539,   270,     0,   388,     0,   231,     0,   249,   246,
1584 <     245,     0,     0,     0,     0,   108,   173,     0,   149,     0,
1585 <     313,     0,   335,     0,   376,   419,   271,   389,   232,   115,
1586 <     124,   127,   126,   123,   128,   125,   122,     0,   121,   117,
1587 <     116,   174,   150,   314,   336,   119,     0,   120
1531 >       0,     0,     0,     0,     0,     0,    52,   394,     0,     0,
1532 >       0,   390,     0,   135,     0,   130,     0,     0,     0,     0,
1533 >       0,   124,     0,   358,   371,     0,     0,     0,     0,   366,
1534 >     112,   111,   110,   658,    28,    28,    28,    28,    28,    28,
1535 >      28,    30,    29,   659,   647,   648,   649,   650,   651,   652,
1536 >     653,   654,   657,   655,   656,     0,     0,     0,     0,     0,
1537 >       0,     0,     0,     0,     0,     0,     0,     0,     0,    38,
1538 >       0,     0,   248,     0,     0,     0,     0,     0,     0,     0,
1539 >       0,     0,     0,     0,     0,     0,     0,     0,   411,     0,
1540 >       0,   459,   472,     0,     0,   474,   546,   550,   533,   534,
1541 >     565,   537,   628,   629,   573,   538,   539,   570,   545,   544,
1542 >     553,   543,   540,   541,   549,   548,   547,   571,   535,   626,
1543 >     627,   569,   612,   606,   622,   607,   608,   609,   617,   625,
1544 >     610,   619,   623,   613,   624,   614,   618,   611,   621,   616,
1545 >     615,   620,     0,   605,   585,   586,   587,   580,   598,   581,
1546 >     582,   583,   593,   601,   584,   595,   599,   589,   600,   590,
1547 >     594,   588,   597,   592,   591,   596,     0,   579,   566,   564,
1548 >     567,   572,   568,   555,   562,   563,   560,   561,   556,   557,
1549 >     558,   559,   574,   575,   542,   552,   551,   554,   536,     0,
1550 >       0,     0,     0,     0,     0,     0,     0,   314,     0,     0,
1551 >     450,     0,     0,     0,   309,   305,   308,   290,    50,    51,
1552 >       0,     0,   114,     0,     0,     0,     0,     0,     0,     0,
1553 >       0,     0,     0,   166,     0,     0,     0,   348,   676,   673,
1554 >     674,   675,   680,   679,   681,   677,   678,    99,    94,   102,
1555 >      93,    89,    87,    88,    86,     0,    85,    90,    91,   100,
1556 >     101,    92,    96,    95,    77,    76,    81,    78,    80,    79,
1557 >      97,    98,     0,     0,   389,   141,     0,     0,     0,   153,
1558 >       0,   145,   146,   148,   147,     0,     0,     0,     0,   123,
1559 >     363,     0,     0,     0,   365,    31,    32,    33,    34,    35,
1560 >      36,    37,   278,   279,   271,   288,   287,     0,   286,   272,
1561 >     274,   282,   275,   273,   281,   268,   280,   270,   269,    38,
1562 >      38,    38,    40,    39,   276,   277,   433,   436,   437,   447,
1563 >     444,   430,   445,   442,   443,     0,   441,   446,   429,   435,
1564 >     432,   434,   448,   431,   465,   466,   480,   481,   603,     0,
1565 >     577,     0,   328,   329,   339,   335,   336,   338,   343,   340,
1566 >     341,   334,   342,   337,     0,   333,   327,   346,   345,   344,
1567 >     326,   457,   456,   312,   311,   296,   297,   295,     0,   294,
1568 >       0,     0,     0,   120,   121,   187,   184,   234,   246,   221,
1569 >     230,     0,   219,   224,   240,     0,   233,   238,   244,   223,
1570 >     226,   235,   237,   241,   231,   239,   227,   245,   229,   236,
1571 >     225,   228,     0,   217,   180,   182,   185,   186,   197,   198,
1572 >     199,   192,   210,   193,   194,   195,   205,   213,   196,   207,
1573 >     211,   201,   212,   202,   206,   200,   209,   204,   203,   208,
1574 >       0,   191,   181,   183,   357,   355,   356,    83,     0,   395,
1575 >     400,   406,   409,   402,   408,   403,   407,   405,   401,   404,
1576 >       0,   399,   149,     0,     0,     0,     0,   144,   132,   131,
1577 >     133,   134,   372,   378,   384,   387,   380,   386,   381,   385,
1578 >     383,   379,   382,     0,   377,   373,   284,     0,    41,    42,
1579 >      43,   439,     0,   604,   578,   331,     0,   292,     0,   310,
1580 >     307,   306,     0,     0,     0,     0,     0,     0,   215,     0,
1581 >     189,     0,    84,   397,     0,     0,     0,     0,     0,   143,
1582 >     375,     0,   285,   440,   332,   293,   220,   243,   218,   242,
1583 >     232,   222,   216,   190,   398,   150,   152,   151,   163,   162,
1584 >     158,   160,   164,   161,   157,   159,     0,   156,   376,   154,
1585 >       0,   155
1586 > };
1587 >
1588 >  /* YYPGOTO[NTERM-NUM].  */
1589 > static const yytype_int16 yypgoto[] =
1590 > {
1591 >    -978,  -978,  -978,  -293,  -314,  -977,  -646,  -978,  -978,   991,
1592 >    -978,  -978,  -978,  -978,   877,  -978,  -978,  -978,  -978,  -978,
1593 >    -978,  -978,  -978,  -978,   -99,  -978,  -978,  -978,  -978,  -978,
1594 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1595 >    1069,  -978,  -978,  -978,  -978,  -978,  -978,   656,  -978,  -978,
1596 >    -978,  -978,  -978,   455,  -978,  -978,  -978,  -978,  -978,  -978,
1597 >     952,  -978,  -978,  -978,  -978,    96,  -978,  -978,  -978,  -978,
1598 >    -978,  -193,  -978,  -978,  -978,   631,  -978,  -978,  -978,  -978,
1599 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -145,  -978,  -978,
1600 >    -978,  -132,  -978,  -978,  -978,   969,  -978,  -978,  -978,  -978,
1601 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1602 >    -978,  -978,  -978,  -978,  -108,  -978,  -978,  -978,  -978,  -978,
1603 >    -115,  -978,   691,  -978,  -978,  -978,     9,  -978,  -978,  -978,
1604 >    -978,  -978,   713,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1605 >    -105,  -978,  -978,  -978,  -978,  -978,  -978,   663,  -978,  -978,
1606 >    -978,  -978,  -978,   986,  -978,  -978,  -978,  -978,   596,  -978,
1607 >    -978,  -978,  -978,  -978,   -98,  -978,  -978,  -978,   632,  -978,
1608 >    -978,  -978,  -978,   -89,  -978,  -978,  -978,   873,  -978,  -978,
1609 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,   -66,
1610 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,   744,  -978,
1611 >    -978,  -978,  -978,  -978,   840,  -978,  -978,  -978,  -978,  1113,
1612 >    -978,  -978,  -978,  -978,   988,  -978,  -978,  -978,  -978,  1062,
1613 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1614 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1615 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1616 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1617 >    -978,  -978,  -978,  -978,    90,  -978,  -978,  -978,    93,  -978,
1618 >    -978,  -978,  -978,  -978,  -978,  1137,  -978,  -978,  -978,  -978,
1619 >    -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1620 >    -978,   994,  -978,  -978,  -978,  -978,  -978,  -978,  -978,  -978,
1621 >    -978
1622   };
1623  
1624 < /* YYDEFGOTO[NTERM-NUM].  */
1624 >  /* YYDEFGOTO[NTERM-NUM].  */
1625   static const yytype_int16 yydefgoto[] =
1626   {
1627 <      -1,     1,    24,   796,   797,  1041,  1042,    25,   238,   239,
1628 <     240,   241,    26,   275,   276,   277,   278,   760,   761,   764,
1629 <     765,   279,   280,   281,   282,   283,   284,   285,   286,   287,
1630 <     288,   289,   290,   291,    27,    71,    72,    73,    74,    75,
1631 <      28,   230,   231,   232,   233,   234,   970,   971,   972,   973,
1632 <     974,  1108,  1237,  1238,    29,    60,   513,   514,   515,   516,
1633 <     517,   518,   519,   520,   521,   733,  1158,  1159,   522,   729,
1634 <    1133,  1134,    30,    49,   336,   337,   338,   339,   340,   341,
1635 <     342,   343,   344,   345,   346,   347,   348,   349,   350,   351,
1636 <      31,    57,   488,   714,  1099,  1100,   489,   490,   491,  1105,
1637 <     962,   963,   492,   493,    32,    55,   464,   465,   466,   467,
1638 <     468,   469,   470,   700,  1084,  1085,   471,   472,   473,    33,
1639 <      61,   527,   528,   529,   530,   531,    34,   296,   297,   298,
1640 <      35,    64,   562,   563,   564,   565,   566,   774,  1177,  1178,
1641 <      36,    65,   570,   571,   572,   573,   780,  1191,  1192,    37,
1642 <      50,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1643 <     375,   619,  1052,  1053,   376,   377,   378,   379,   380,    38,
1644 <      56,   478,   709,  1093,  1094,   479,   480,   481,   482,    39,
1645 <      51,   384,   385,   386,   387,    40,   112,   113,   114,    41,
1646 <      53,   395,   638,  1067,  1068,   396,   397,   398,   399,    42,
1627 >      -1,     1,    26,   841,   842,  1112,  1113,    27,   223,   224,
1628 >     225,   226,    28,   272,   273,   274,   275,   276,   277,   278,
1629 >     279,   280,   559,  1045,  1046,   281,   282,   283,   284,   285,
1630 >     286,   287,   288,   289,   290,   291,   292,   293,    29,    77,
1631 >      78,    79,    80,    81,    30,    63,   507,   508,   509,   510,
1632 >      31,    70,   594,   595,   596,   597,   598,   599,    32,   297,
1633 >     298,   299,   300,   301,  1070,  1071,  1072,  1073,  1074,  1255,
1634 >    1336,  1337,    33,    64,   522,   523,   524,   525,   526,   527,
1635 >     528,   529,   530,   531,   532,   765,  1230,  1231,   533,   760,
1636 >    1202,  1203,    34,    53,   347,   348,   349,   350,   351,   352,
1637 >     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
1638 >     363,   364,   635,  1097,  1098,    35,    61,   493,   745,  1168,
1639 >    1169,   494,   495,   496,  1172,  1005,  1006,   497,   498,    36,
1640 >      59,   471,   472,   473,   474,   475,   476,   477,   730,  1154,
1641 >    1155,   478,   479,   480,    37,    65,   538,   539,   540,   541,
1642 >     542,    38,   305,   306,   307,    39,    72,   607,   608,   609,
1643 >     610,   611,   826,  1273,  1274,    40,    68,   580,   581,   582,
1644 >     583,   809,  1250,  1251,    41,    54,   380,   381,   382,   383,
1645 >     384,   385,   386,   387,   388,   389,   390,   657,  1125,  1126,
1646 >     391,   392,   393,   394,   395,    42,    60,   484,   485,   486,
1647 >     487,    43,    55,   399,   400,   401,   402,    44,   116,   117,
1648 >     118,    45,    57,   409,   410,   411,   412,    46,   168,   169,
1649       170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1650       180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1651       190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1652       200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1653 <     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1654 <     220,   433,   922,   923,   221,   431,   899,   900,   222,   223,
1655 <     224,    43,    91,    92,    93,    94,    95,    96,    97,    98,
1656 <      99,   100,   101,   102,   103,   104,   105,   106,    44,   251,
1657 <     252,   253,   254,   255,   256,   257,   258
1775 < };
1776 <
1777 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1778 <   STATE-NUM.  */
1779 < #define YYPACT_NINF -861
1780 < static const yytype_int16 yypact[] =
1781 < {
1782 <    -861,   613,  -861,  -173,  -209,  -198,  -861,  -861,  -861,  -193,
1783 <    -861,  -188,  -861,  -861,  -861,  -185,  -183,  -861,  -861,  -180,
1784 <    -169,  -861,  -861,  -138,  -861,  -861,  -861,  -861,  -861,  -861,
1785 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1786 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,    18,   823,  -124,
1787 <    -100,   -98,    21,   -80,   438,   -74,   -71,   -58,    44,     4,
1788 <     -20,   -15,   378,   326,   -10,    -7,     7,   -66,    41,    51,
1789 <      57,     8,  -861,  -861,  -861,  -861,  -861,    59,    62,    65,
1790 <      84,    92,    96,   100,   102,   103,   104,   106,   110,   117,
1791 <     122,     3,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1792 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,   555,   356,    49,
1793 <    -861,   123,    26,  -861,  -861,   166,  -861,   133,   134,   136,
1794 <     138,   141,   144,   145,   148,   149,   153,   154,   155,   156,
1795 <     158,   160,   162,   163,   165,   167,   168,   169,   172,   173,
1796 <     177,   179,   186,   189,   191,   194,   196,   201,  -861,   203,
1797 <    -861,   211,   212,   214,   215,   218,   220,   221,   224,   226,
1798 <     229,   231,   234,   243,   247,   248,   250,   252,   255,   259,
1799 <     131,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1800 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1801 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1802 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1803 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1804 <    -861,  -861,  -861,  -861,  -861,   392,    42,   279,     1,   263,
1805 <      58,  -861,  -861,  -861,    80,    94,   264,   265,    19,  -861,
1806 <    -861,  -861,   364,   188,  -861,   267,   269,   270,   272,   273,
1807 <     280,    14,  -861,  -861,  -861,  -861,  -861,  -861,  -861,   288,
1808 <     286,   287,   289,   291,   292,   296,   299,   305,   306,   309,
1809 <     311,   312,   313,   319,   320,    91,  -861,  -861,  -861,  -861,
1810 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1811 <    -861,  -861,    20,    16,  -861,   324,    36,  -861,  -861,  -861,
1812 <     157,   290,   429,   336,  -861,   456,   457,   398,   462,   462,
1813 <     463,   465,   466,   409,   412,   475,   462,   420,   422,   367,
1814 <    -861,   368,   366,   369,   370,   372,   373,   383,   384,   385,
1815 <     386,   388,   393,   394,   396,   400,   251,  -861,  -861,  -861,
1816 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1817 <    -861,  -861,   371,   401,   402,   403,   404,  -861,   406,   407,
1818 <     410,   415,   418,   431,   433,   434,   316,  -861,  -861,  -861,
1819 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1820 <    -861,  -861,   440,   441,    30,  -861,  -861,  -861,   500,   445,
1821 <    -861,  -861,   443,   444,  -861,  -861,    34,  -861,  -861,  -861,
1822 <     497,   462,   462,   566,   505,   506,   569,   551,   511,   462,
1823 <     515,   462,   578,   579,   580,   520,   521,   524,   462,   562,
1824 <     525,   588,   590,   462,   591,   592,   574,   594,   595,   534,
1825 <     535,   478,   539,   483,   462,   462,   543,   462,   544,   545,
1826 <     546,   -87,    97,   548,   549,   462,   462,   593,   462,   552,
1827 <     556,   557,   559,   499,  -861,   504,   502,   503,  -861,   507,
1828 <     516,   526,   528,   533,    12,  -861,  -861,  -861,  -861,  -861,
1829 <    -861,  -861,  -861,  -861,  -861,   536,  -861,   537,  -861,    33,
1830 <    -861,  -861,  -861,   508,  -861,   538,   542,   550,  -861,    25,
1831 <    -861,  -861,  -861,  -861,  -861,   563,   560,  -861,   522,  -861,
1832 <     636,   655,   568,  -861,   570,   558,   571,  -861,   581,   585,
1833 <     586,  -861,   599,   232,  -861,  -861,  -861,  -861,  -861,  -861,
1834 <    -861,  -861,  -861,   573,   601,   603,   604,    88,  -861,  -861,
1835 <    -861,  -861,   619,   622,   693,   652,   664,   462,   610,  -861,
1836 <    -861,   710,   668,   712,   713,   714,   715,   716,   717,   -75,
1837 <     -68,   718,   720,   740,   722,   723,   627,  -861,   628,   629,
1838 <    -861,   630,    39,  -861,  -861,  -861,  -861,   634,   633,  -861,
1839 <      15,  -861,  -861,  -861,   736,   638,  -861,   640,   641,   642,
1840 <    -861,   643,   644,   646,   261,   647,   648,   650,   653,   654,
1841 <     656,   657,   658,   663,   665,   666,  -861,  -861,   773,   782,
1842 <     462,   786,   787,   789,   792,   774,   794,   796,   462,   462,
1843 <     800,   800,   683,  -861,  -861,   783,   119,   784,   742,   684,
1844 <     788,   790,   791,   793,   806,   795,   797,   798,   690,  -861,
1845 <     799,   802,   695,  -861,   697,  -861,   803,   804,   703,   707,
1846 <    -861,   708,   709,   711,   719,   721,   724,   726,   727,   728,
1847 <     729,   730,   731,   732,   733,   735,   737,   738,   739,   741,
1848 <     743,   744,   745,   746,   747,   748,   749,   750,   751,   752,
1849 <     753,   754,   561,   755,   598,   756,   757,   758,   759,   760,
1850 <     761,   762,   763,   764,   765,   766,   767,   768,   769,   770,
1851 <     771,   772,   775,   776,   777,   778,  -861,  -861,   809,   779,
1852 <     780,   811,   831,   815,   816,   817,   781,  -861,   819,   785,
1853 <     821,   801,  -861,  -861,   805,   835,   839,   860,   807,  -861,
1854 <     810,  -861,    55,   812,   813,  -861,  -861,   872,   830,   808,
1855 <     878,   879,   881,   814,   883,   818,  -861,  -861,   884,   885,
1856 <     886,   820,  -861,   822,   824,   825,   826,   827,   828,  -861,
1857 <     829,   832,   833,   834,   836,   837,   838,   840,  -861,  -861,
1858 <    -205,  -861,  -861,  -861,  -166,  -861,   841,   842,   843,   844,
1859 <     845,  -861,  -861,   888,   846,   889,   847,  -861,  -861,   890,
1860 <     848,   850,  -861,   852,  -861,  -861,  -861,  -861,  -861,  -861,
1861 <    -861,   462,   462,   462,   462,   462,  -861,  -861,  -861,  -861,
1862 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,   853,
1863 <     854,   855,   856,   857,   858,   859,   861,   862,   863,   864,
1864 <     865,    64,   866,   867,  -861,   868,   869,   870,   871,   873,
1865 <      -2,   874,   875,   876,   877,   880,   882,   887,   891,  -861,
1866 <     892,   893,  -861,  -861,   894,   895,   896,  -861,  -861,  -861,
1867 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1868 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1869 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1870 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1871 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -165,
1872 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1873 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1874 <    -861,  -861,  -159,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1875 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1876 <    -861,  -861,  -861,  -861,  -861,   897,   898,   519,   899,   900,
1877 <     901,   902,   903,  -861,   904,   908,   905,  -861,   -40,   906,
1878 <     907,   849,   689,  -861,  -861,  -861,   909,   910,  -861,   911,
1879 <      54,  -861,  -861,  -861,  -861,  -861,  -861,   912,   915,   513,
1880 <     916,   917,   918,   626,   919,  -861,   920,   921,   922,  -861,
1881 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1882 <    -861,  -861,  -861,  -861,  -861,   -75,  -861,   -68,  -861,  -861,
1883 <    -861,  -861,  -861,   923,   671,   924,  -861,   925,   681,  -861,
1884 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1885 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,   800,   800,
1886 <     800,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1887 <    -861,  -861,  -135,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1888 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -129,  -861,  -861,
1889 <     561,  -861,   598,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1890 <    -861,  -861,  -861,  -861,  -103,  -861,  -861,  -861,  -861,  -861,
1891 <    -861,  -861,  -861,  -101,  -861,  -861,  -861,  -861,  -861,   -61,
1892 <    -861,  -861,  -861,   913,   860,   926,  -861,   914,   927,   -94,
1893 <     928,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1894 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1895 <    -861,  -861,  -861,   -24,  -861,  -861,  -861,  -861,  -861,  -861,
1896 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1897 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,   -19,  -861,
1898 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1899 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,   -16,  -861,  -861,
1900 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1901 <    -861,    76,  -861,  -861,  -861,  -861,  -861,    -2,  -861,   896,
1902 <    -861,  -861,  -861,   519,  -861,   908,  -861,   -40,  -861,  -861,
1903 <    -861,   929,   245,   931,   932,  -861,  -861,   513,  -861,   626,
1904 <    -861,   671,  -861,   681,  -861,  -861,  -861,  -861,  -861,  -861,
1905 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,    93,  -861,  -861,
1906 <    -861,  -861,  -861,  -861,  -861,  -861,   245,  -861
1653 >     210,   211,   440,   966,   967,   212,   439,   942,   943,   213,
1654 >     214,   215,   216,    47,    96,    97,    98,    99,   100,   101,
1655 >     102,   103,   104,   105,   106,   107,   108,   109,   110,    48,
1656 >     240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1657 >     250
1658   };
1659  
1660 < /* YYPGOTO[NTERM-NUM].  */
1661 < static const yytype_int16 yypgoto[] =
1662 < {
1912 <    -861,  -861,  -861,  -213,  -306,  -860,  -610,  -861,  -861,   930,
1913 <    -861,  -861,  -861,  -861,   933,  -861,  -861,  -861,     6,  -861,
1914 <       5,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1915 <    -861,  -861,  -861,  -861,  -861,  -861,   942,  -861,  -861,  -861,
1916 <    -861,  -861,   934,  -861,  -861,  -861,  -861,    45,  -861,  -861,
1917 <    -861,  -861,  -861,  -229,  -861,  -861,  -861,   509,  -861,  -861,
1918 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -201,  -861,  -861,
1919 <    -861,  -194,  -861,  -861,  -861,   688,  -861,  -861,  -861,  -861,
1920 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1921 <    -861,  -861,  -861,  -861,  -861,  -182,  -861,   530,  -861,  -861,
1922 <    -861,   -76,  -861,  -861,  -861,  -861,  -861,   576,  -861,  -861,
1923 <    -861,  -861,  -861,  -861,  -861,  -168,  -861,  -861,  -861,  -861,
1924 <    -861,  -861,   523,  -861,  -861,  -861,  -861,  -861,   935,  -861,
1925 <    -861,  -861,  -861,   476,  -861,  -861,  -861,  -861,  -861,  -179,
1926 <    -861,  -861,  -861,   479,  -861,  -861,  -861,  -861,  -158,  -861,
1927 <    -861,  -861,   692,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1928 <    -861,  -861,  -861,  -143,  -861,  -861,  -861,  -861,  -861,  -861,
1929 <    -861,  -861,  -861,  -861,  -126,  -861,   612,  -861,  -861,  -861,
1930 <    -861,  -861,   725,  -861,  -861,  -861,  -861,   955,  -861,  -861,
1931 <    -861,  -861,  -861,  -861,  -102,  -861,   702,  -861,  -861,  -861,
1932 <    -861,   937,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1933 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1934 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1935 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1936 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1937 <    -861,  -861,  -861,    28,  -861,  -861,  -861,    32,  -861,  -861,
1938 <    -861,  -861,  -861,  1012,  -861,  -861,  -861,  -861,  -861,  -861,
1939 <    -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,  -861,
1940 <     936,  -861,  -861,  -861,  -861,  -861,  -861
1941 < };
1942 <
1943 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1944 <   positive, shift that token.  If negative, reduce the rule which
1945 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
1946 < #define YYTABLE_NINF -108
1660 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1661 >     positive, shift that token.  If negative, reduce the rule whose
1662 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1663   static const yytype_int16 yytable[] =
1664   {
1665 <     822,   823,   585,   586,    76,   235,  1050,   821,   294,    67,
1666 <     593,  1096,    47,   455,  1004,   244,   567,   567,  1005,    67,
1667 <     235,   558,   110,    48,    77,    78,   483,   110,    52,   456,
1668 <      79,   381,    68,    54,   474,   391,    58,   294,    59,    69,
1669 <     558,    62,    68,   474,   457,   228,    45,    46,   458,    69,
1670 <     381,   245,    63,  1006,  1069,   966,   966,  1007,  1070,   228,
1671 <    1071,   484,   758,   759,  1072,   246,   247,   248,   249,   762,
1672 <     763,    80,    81,  1038,  1039,  1040,   682,   683,    82,    83,
1673 <      84,   485,   111,    66,  1196,   250,   486,   111,  1197,   523,
1674 <    1198,   382,   259,   236,  1199,   642,   643,   107,   295,    70,
1675 <      85,    86,   524,   650,  1213,   652,   568,   568,   236,    70,
1676 <     382,   559,   659,    87,    88,   260,  1202,   664,  1204,   237,
1677 <    1203,   108,  1205,   109,    89,   392,   459,   295,   675,   676,
1678 <     559,   678,   116,    90,   237,   460,   461,   117,   118,   688,
1679 <     689,   115,   691,   119,   487,   967,   967,   225,   261,  1097,
1680 <     226,   120,   383,   299,  1098,   475,   393,   121,  1206,   122,
1681 <     123,   124,  1207,   227,   475,   821,   125,   391,   462,   569,
1682 <     569,   383,   126,   127,   560,   128,   129,   130,  1193,  1194,
1683 <    1195,   131,   262,   525,   263,   264,   132,   476,   394,   523,
1684 <     133,   134,  1051,   560,   135,  1216,   476,   136,   137,  1217,
1685 <    1218,   242,   524,  1220,  1219,   138,   243,  1221,   968,   968,
1686 <     526,   292,   139,   140,   293,   141,   142,   143,   144,   145,
1687 <     494,   463,   265,   319,   266,   267,   268,   269,   303,   561,
1688 <     146,   748,   706,   504,   538,   781,   147,   148,   149,   502,
1689 <     150,   270,   477,   151,   152,   718,   389,   153,   561,   505,
1690 <     632,   477,   321,   711,   639,   229,   575,   392,   154,   776,
1691 <     684,   685,  -107,   300,   506,   271,   322,   323,   507,   229,
1692 <     324,   969,   969,   301,  1110,   272,  -107,   577,   496,   302,
1693 <     483,   305,   155,   525,   306,  1230,   156,   307,   393,   157,
1694 <     158,   159,   160,   161,   811,  1222,   162,   163,   498,  1223,
1695 <     826,   827,   819,   820,   273,   274,   308,  1231,   741,  1232,
1696 <     526,   556,  1245,   499,   309,   484,  1246,   352,   310,   353,
1697 <     394,   354,   311,   508,   312,   313,   314,   259,   315,   325,
1698 <     326,   327,   316,   355,   328,   485,   164,   165,   166,   317,
1699 <     486,   167,   329,   168,   318,   388,   509,   169,   356,  1233,
1700 <     260,   453,   357,   330,   331,   400,   401,   352,   402,   353,
1701 <     403,   354,   584,   404,   510,   504,   405,   406,   332,   333,
1702 <     407,   408,   358,   355,   359,   409,   410,   411,   412,   244,
1703 <     413,   505,   414,   261,   415,   416,   360,   417,   356,   418,
1704 <     419,   420,   357,   455,   421,   422,   506,   334,   487,   423,
1705 <     507,   424,   791,   792,   793,   794,   795,   361,   425,   456,
1706 <     578,   426,   358,   427,   359,   245,   428,   262,   429,   263,
1707 <     264,  1234,  1235,   430,   457,   432,   360,   511,   458,   246,
1708 <     247,   248,   249,   434,   435,   362,   436,   437,   335,   116,
1709 <     438,   512,   439,   440,   117,   118,   441,   361,   442,   250,
1710 <     119,   443,   735,   444,  1236,   508,   445,   265,   120,   266,
1711 <     267,   268,   269,   363,   121,   446,   122,   123,   124,   447,
1712 <     448,   612,   449,   125,   450,   362,   270,   451,   509,   126,
1713 <     127,   452,   128,   129,   130,   495,   500,   501,   131,   532,
1714 <     364,   533,   534,   132,   535,   536,   510,   133,   134,  1214,
1715 <     271,   135,   537,   363,   136,   137,   459,   540,   541,   542,
1716 <     272,   543,   138,   544,   545,   460,   461,  1114,   546,   139,
1717 <     140,   547,   141,   142,   143,   144,   145,   548,   549,   365,
1718 <     364,   550,  1075,   551,   552,   553,   628,   146,  1115,   273,
1719 <     274,   554,   555,   147,   148,   149,   574,   150,   462,   579,
1720 <     151,   152,  1076,  1116,   153,   580,   321,   581,   582,   511,
1721 <    1117,   583,  1077,   584,   587,   154,   588,   589,  1078,   365,
1722 <     322,   323,   590,   512,   324,   591,   592,  1118,  1021,  1022,
1723 <    1023,  1024,  1025,   594,  1079,   595,   596,   597,   598,   155,
1724 <     614,   599,   600,   156,   601,   602,   157,   158,   159,   160,
1725 <     161,   463,  1119,   162,   163,   603,   604,   605,   606,  1120,
1726 <     607,  1080,   879,     2,     3,   608,   609,     4,   610,  1081,
1727 <     634,  1121,   611,   615,   616,   617,   618,     5,   620,   621,
1728 <       6,     7,   622,   325,   326,   327,     8,   623,   328,  1122,
1729 <     624,  1123,  1124,   164,   165,   166,   329,     9,   167,   902,
1730 <     168,    10,    11,   625,   169,   626,   627,   330,   331,  1082,
1731 <     641,    12,   630,   631,   635,   636,   637,   644,   645,   646,
1732 <     647,   648,   332,   333,   649,    13,  1083,  1138,   651,   653,
1733 <     654,   655,   660,   656,   657,    14,    15,   658,   661,   662,
1734 <    1125,   663,   665,   666,   667,   668,   669,   670,   671,  1126,
1735 <     672,   334,   673,    16,  1127,   674,   677,   679,   680,   681,
1736 <    1128,   686,   687,   690,  1129,   692,  1130,    17,   696,   693,
1737 <     694,  1131,   695,   697,   698,   699,   720,   713,  1132,   701,
1738 <     880,   881,   882,   883,   884,  1167,   885,   886,   702,   887,
1739 <     888,   889,   335,   722,   890,  1181,   891,   892,   703,   893,
1740 <     704,   894,    18,   895,   896,   705,   723,   897,   708,   710,
1741 <     715,    19,    20,   898,   716,    21,    22,   903,   904,   905,
1742 <     906,   907,   717,   908,   909,   724,   910,   911,   912,   721,
1743 <     727,   913,   743,   914,   915,   744,   916,   725,   917,   726,
1744 <     918,   919,   737,   728,   920,  1139,  1140,  1141,  1142,  1143,
1745 <     921,  1144,  1145,   730,  1146,  1147,  1148,   731,   732,  1149,
1746 <    1168,  1150,  1151,   745,  1152,   746,  1153,    23,  1154,  1155,
1747 <    1182,   734,  1156,   738,    76,   739,   740,   747,  1157,   749,
1748 <     750,   751,   752,   753,   754,   755,   756,   757,   766,  1169,
1749 <     767,   768,   769,   770,    77,    78,   771,   772,  1170,  1183,
1750 <      79,   773,   775,   778,  1171,   779,   783,   784,  1184,   785,
1751 <     786,   787,   788,   789,  1185,   790,   798,   799,  1172,   800,
1752 <    1173,  1174,   801,   802,   809,   803,   804,   805,  1186,  1175,
1753 <    1187,  1188,   806,   810,   807,   808,  1176,   812,   813,  1189,
1754 <     814,    80,    81,   815,   816,   817,  1190,   818,    82,    83,
1755 <      84,   821,   824,   825,   828,   829,   830,   835,   831,   839,
1756 <     832,   833,  1104,   834,   842,   836,   843,   837,   838,   840,
1757 <      85,    86,   841,   844,   845,   846,   847,   848,   849,   945,
1758 <     850,   948,   949,    87,    88,   950,   951,   952,   851,   954,
1759 <     852,   956,   946,   853,    89,   854,   855,   856,   857,   858,
1760 <     859,   860,   861,    90,   862,   959,   863,   864,   865,   960,
1761 <     866,   961,   867,   868,   869,   870,   871,   872,   873,   874,
1762 <     875,   876,   877,   878,   901,   924,   925,   926,   927,   928,
1763 <     929,   930,   931,   932,   933,   934,   935,   936,   937,   938,
1764 <     939,   940,   977,   978,   941,   942,   943,   944,   980,   981,
1765 <     953,   982,   947,   984,   986,   987,   988,   955,  1013,  1015,
1766 <    1017,  1164,  1165,   304,  1208,  1111,  1103,  1247,  1242,   719,
1767 <     957,  1066,   736,  1241,   613,  1228,   964,   958,  1209,   965,
1768 <     979,   975,   976,  1092,  1211,  1226,   983,   985,   777,   989,
1769 <     707,   990,  1243,   991,   992,   993,   994,   995,   996,   782,
1770 <     742,   997,   998,   999,  1224,  1000,  1001,  1002,   629,  1003,
1771 <    1008,  1009,  1010,  1011,  1012,  1244,  1016,   390,  1014,  1019,
1772 <    1018,  1020,  1026,  1027,  1028,  1029,  1030,  1031,  1032,  1227,
1773 <    1033,  1034,  1035,  1036,  1037,  1043,  1044,  1045,  1046,  1047,
1774 <    1048,   712,  1049,  1054,  1055,  1056,  1057,  1225,   640,  1058,
1775 <    1201,  1059,  1200,   320,     0,     0,  1060,   454,     0,   633,
1776 <    1061,  1062,  1063,  1064,  1065,     0,  1073,  1074,  1086,  1087,
1777 <    1088,  1089,  1090,  1091,  1095,  1101,  1102,     0,  1106,     0,
1778 <       0,  1112,  1107,  1109,  1113,  1135,  1136,  1137,  1160,  1161,
1779 <    1162,  1163,  1166,  1179,  1180,  1210,     0,  1215,  1229,  1212,
1780 <    1239,  1240,     0,     0,     0,     0,     0,     0,     0,     0,
1781 <       0,     0,     0,     0,   497,     0,     0,     0,   503,     0,
1665 >     870,   871,   618,   589,  1123,   621,   622,   623,    73,   625,
1666 >     626,   295,   504,   488,   603,   303,   295,   504,   396,  1095,
1667 >    1165,   711,    49,    50,  1066,   712,   396,   114,   481,   406,
1668 >     114,   220,    51,   534,    52,   713,   481,  1041,    74,   714,
1669 >      56,   534,   869,    58,   303,    62,    75,  1109,  1110,  1111,
1670 >      66,   365,   120,   366,   577,   367,   406,   121,   122,   603,
1671 >     123,   124,  1138,  1140,  1237,   125,  1139,  1141,  1238,   489,
1672 >     368,   874,   875,   577,   535,   126,   127,   128,   490,    67,
1673 >     491,  1066,   535,   397,   129,    69,   220,   130,   131,   132,
1674 >     369,   397,   115,    71,   133,   115,   505,  1096,   111,   112,
1675 >     678,   505,   680,   681,  1276,   113,   684,   370,  1277,   371,
1676 >     590,   134,   135,   119,   692,    76,   217,   536,   372,   697,
1677 >    1042,   604,   304,   136,  1043,   536,   137,   138,   706,   707,
1678 >     373,  1067,  1278,  1279,  1280,   221,   407,   139,  1306,   218,
1679 >     720,   492,   722,   723,   140,   219,   141,   227,   142,   398,
1680 >     143,   304,   869,   144,   145,   251,   222,   398,   374,   482,
1681 >     408,   578,   511,   407,   537,   146,   604,   482,  1166,   228,
1682 >     147,   148,   537,   149,   150,   151,   591,  1167,   152,   375,
1683 >     578,   512,  1044,   252,   229,   253,   294,   408,  1067,  1281,
1684 >     221,  -142,   506,  1282,   592,  1285,  -142,   506,   376,  1286,
1685 >     589,   513,  1124,   153,  1287,  1298,   309,   377,  1288,  1299,
1686 >     593,   222,   254,   302,   154,   155,   156,   157,   158,   159,
1687 >     160,   308,  1300,   255,  1303,  1068,  1301,   499,  1304,   514,
1688 >    1310,   778,   310,   616,  1311,   256,   257,   258,   296,   605,
1689 >     820,   330,   606,   296,   311,   313,   312,   588,   259,  1069,
1690 >     747,   828,   260,   586,   755,   669,   483,   378,   331,   332,
1691 >     612,  1256,   261,   333,   483,   262,   263,   404,   502,   515,
1692 >     161,   162,   163,   740,   164,   165,    82,   462,   774,   579,
1693 >     379,   601,  1068,   166,   605,   167,   516,   606,   665,   460,
1694 >     617,   810,   315,   675,   264,   620,   463,  1328,   579,  1329,
1695 >     316,  1339,    83,    84,    73,  1340,  1069,   590,   334,    85,
1696 >     265,   317,   554,   266,   267,   268,   464,   318,   517,   518,
1697 >     857,   319,   320,   321,   861,   584,   322,   864,   335,   336,
1698 >     337,   868,   338,   230,    74,   323,   339,    86,    87,    88,
1699 >      89,   340,    75,   324,   465,   325,   326,  1330,   341,   327,
1700 >     403,   413,    90,    91,    92,   414,   415,   342,   343,   416,
1701 >     417,   269,    93,    94,  1331,   418,    95,   231,   344,   419,
1702 >     519,   420,  1144,   591,   421,   422,   232,   233,   234,   423,
1703 >     424,   235,   236,   425,   270,   271,   237,   238,   239,   345,
1704 >     520,   592,   575,   511,   521,   426,   462,   488,  1145,   768,
1705 >     427,   466,   428,  1332,  1333,   429,   430,   593,   431,   467,
1706 >     468,    76,   512,   432,   120,   463,   433,   434,   435,   121,
1707 >     122,   436,   123,   124,   437,   438,   441,   125,   442,   469,
1708 >     443,  1146,   513,   444,   346,   464,   445,   126,   127,   128,
1709 >     446,   447,   448,   449,   450,   451,   129,   452,   453,   130,
1710 >     131,   132,  1177,   489,   454,  1334,   133,  1240,   455,   456,
1711 >     514,  1335,   490,   465,   491,   457,  1147,  1148,   458,  1178,
1712 >    1179,   459,  1149,   134,   135,   500,   501,   543,   648,   544,
1713 >    1180,   545,   546,   547,   548,   136,   549,   550,   137,   138,
1714 >     551,   555,   556,   557,   558,   560,  1150,   561,   562,   139,
1715 >     515,   563,   564,   565,   566,   470,   140,   567,   141,   568,
1716 >     142,  1151,   143,   328,   736,   144,   145,   516,  1181,  1182,
1717 >     466,  1183,  1241,   569,   570,   492,   571,   146,   467,   468,
1718 >     572,   573,   147,   148,   574,   149,   150,   151,   585,   600,
1719 >     152,  1085,  1086,  1087,  1088,  1089,  1090,  1091,   469,   517,
1720 >     518,   613,   614,  1184,  1242,   615,   619,   624,   627,   628,
1721 >     251,  1185,  1243,   629,   630,   153,   631,   650,   632,   671,
1722 >     552,  1244,   679,   633,  1152,   634,   154,   155,   156,   157,
1723 >     158,   159,   160,  1186,   636,  1187,  1188,   637,   252,   638,
1724 >     253,   639,   640,  1153,   641,  1245,   642,  1246,  1247,   643,
1725 >     644,   519,   645,  1189,   646,   647,   651,   652,  1307,   653,
1726 >     654,  1248,   655,   656,   658,   659,   660,   254,   661,  1249,
1727 >     662,   520,   663,   664,   470,   521,  1190,   667,   255,   668,
1728 >     672,  1191,   161,   162,   163,  1192,   164,   165,   673,  1193,
1729 >     256,   257,   258,   674,  1194,   166,   677,   167,  1195,   682,
1730 >     365,   683,   366,   259,   367,   685,   686,   260,   687,  1196,
1731 >     688,  1197,  1198,   689,  1199,   693,   694,   261,   690,   368,
1732 >     262,   263,   691,   695,   696,  1200,   698,   699,   700,   701,
1733 >       2,     3,   702,  1201,     4,   705,   703,   230,   708,   369,
1734 >     709,   704,   710,   715,   716,   717,     5,   718,   719,   264,
1735 >       6,   721,     7,   724,   725,   726,   370,   749,   371,   728,
1736 >       8,   729,   776,   731,   750,   265,   330,   372,   266,   267,
1737 >     268,   231,     9,   727,   732,   742,   751,    10,    11,   373,
1738 >     232,   233,   234,   331,   332,   235,   236,   733,   333,   734,
1739 >     237,   238,   239,   617,   735,   738,   739,    12,   743,   744,
1740 >     746,    13,   752,   753,   754,   757,   758,   374,    82,   759,
1741 >     944,   761,   945,   946,    14,   762,   269,   763,   834,   835,
1742 >     836,   837,   838,   839,   840,   770,   764,   766,   375,   767,
1743 >     779,   771,   777,   334,    83,    84,    15,    16,   772,   270,
1744 >     271,    85,   773,   780,   781,   786,   782,   376,   783,   784,
1745 >     787,    17,   785,   335,   336,   337,   377,   338,   788,   790,
1746 >    1208,   339,  1209,  1210,   789,   791,   340,   792,    18,    86,
1747 >      87,    88,    89,   341,   793,   794,   795,   796,   797,   798,
1748 >      19,    20,   342,   343,    90,    91,    92,   799,   806,   807,
1749 >     800,   812,   801,   344,    93,    94,   802,   803,    95,   804,
1750 >     922,   805,   808,   813,   814,    21,   378,   815,   816,   817,
1751 >     822,   818,   819,   823,   345,   824,   855,   856,    22,   825,
1752 >     827,   830,   831,    23,   832,   833,   843,   844,    24,   379,
1753 >     845,    25,   947,   948,   949,   846,   858,   950,   951,  1263,
1754 >     952,   953,   847,   954,   848,   955,   849,   850,   956,   851,
1755 >     957,   958,   852,   853,   854,   859,   959,   860,   862,   346,
1756 >     960,   863,   865,   866,   961,   962,   963,   873,   867,   869,
1757 >     872,   964,   877,   876,   878,   883,   965,   888,   879,   880,
1758 >     881,   891,  1211,  1212,  1213,   882,   884,  1214,  1215,   892,
1759 >    1216,  1217,   885,  1218,   886,  1219,   990,   887,  1220,   889,
1760 >    1221,  1222,   890,   893,  1264,   894,  1223,   895,   989,   896,
1761 >    1224,   897,   898,   899,  1225,  1226,  1227,   991,   900,   901,
1762 >     902,  1228,   923,   924,   925,   903,  1229,   926,   927,   904,
1763 >     928,   929,   905,   930,   906,   931,  1265,   992,   932,   907,
1764 >     933,   934,   908,   909,  1266,   910,   935,   911,   993,   912,
1765 >     936,   913,   914,  1267,   937,   938,   939,   915,   916,   917,
1766 >     918,   940,   919,   920,   921,   968,   941,   969,   970,   994,
1767 >     971,   972,   973,   974,   995,   975,   996,  1268,   998,  1269,
1768 >    1270,   999,  1001,   976,  1002,  1004,   977,  1010,  1011,  1013,
1769 >    1016,   978,  1017,  1271,   979,   980,  1018,   981,   982,   821,
1770 >     983,  1272,   984,  1014,  1019,   985,  1021,   986,   987,  1022,
1771 >    1024,   988,  1025,   997,  1000,  1026,  1062,  1007,  1008,  1003,
1772 >    1009,  1012,  1015,  1075,  1076,  1023,  1027,  1020,  1028,  1029,
1773 >    1030,  1031,  1032,  1033,  1034,  1035,  1036,  1037,  1038,  1039,
1774 >    1040,  1047,  1048,  1049,  1077,  1050,  1051,  1052,  1053,  1054,
1775 >    1055,  1056,  1057,  1058,  1059,  1060,  1061,  1078,  1064,  1065,
1776 >    1063,  1079,  1080,  1081,  1083,  1084,  1082,  1092,  1093,  1253,
1777 >    1094,  1099,  1100,  1101,  1102,  1103,  1289,  1104,  1105,  1106,
1778 >    1107,  1305,  1108,  1316,  1114,  1318,  1115,  1116,  1317,  1302,
1779 >    1117,  1319,  1118,  1119,  1320,  1321,   314,  1341,  1120,   576,
1780 >    1121,  1122,  1127,   769,  1128,  1129,  1323,  1130,  1131,  1132,
1781 >    1133,  1134,  1135,   756,  1136,  1137,  1257,  1322,  1142,  1312,
1782 >    1143,  1156,  1170,  1315,  1157,  1158,  1159,  1160,  1161,  1162,
1783 >    1290,  1314,  1163,  1164,   737,   748,  1173,  1174,  1175,  1171,
1784 >    1176,  1204,  1205,  1206,  1207,  1232,  1233,  1234,  1235,  1236,
1785 >    1239,   775,  1252,   829,  1258,  1259,  1254,  1260,  1261,  1262,
1786 >    1275,  1291,   811,  1338,   503,  1324,  1313,  1292,  1293,  1309,
1787 >    1294,  1295,  1296,  1297,  1325,  1308,  1326,  1327,   741,   405,
1788 >     461,  1284,  1283,   329,   553,     0,     0,     0,     0,   670,
1789 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   587,
1790 >       0,     0,     0,   666,     0,     0,     0,     0,     0,     0,
1791 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1792 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1793 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1794 >       0,   602,     0,     0,     0,     0,     0,     0,     0,     0,
1795 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1796 >       0,     0,     0,     0,     0,     0,   649,     0,     0,     0,
1797 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1798 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1799         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2067       0,     0,     0,     0,     0,     0,     0,   539,     0,     0,
1800         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2069       0,     0,     0,     0,     0,     0,     0,     0,   557,     0,
1801         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1802         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1803 <       0,   576
1803 >       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1804 >       0,     0,     0,     0,     0,     0,     0,   676
1805   };
1806  
2075 #define yypact_value_is_default(yystate) \
2076  ((yystate) == (-861))
2077
2078 #define yytable_value_is_error(yytable_value) \
2079  YYID (0)
2080
1807   static const yytype_int16 yycheck[] =
1808   {
1809 <     610,   611,   308,   309,     1,     1,     8,   101,     1,     1,
1810 <     316,    51,   221,     1,   219,     1,     1,     1,   223,     1,
1811 <       1,     1,     1,   221,    21,    22,     1,     1,   221,    17,
1812 <      27,     1,    24,   221,     1,     1,   221,     1,   221,    31,
1813 <       1,   221,    24,     1,    32,     1,   219,   220,    36,    31,
1814 <       1,    37,   221,   219,   219,     1,     1,   223,   223,     1,
1815 <     219,    36,   137,   138,   223,    51,    52,    53,    54,   137,
1816 <     138,    68,    69,     9,    10,    11,   163,   164,    75,    76,
1817 <      77,    56,    61,   221,   219,    71,    61,    61,   223,     1,
1818 <     219,    61,     1,    89,   223,   401,   402,   221,    91,    91,
1819 <      97,    98,    14,   409,   198,   411,    91,    91,    89,    91,
1820 <      61,    91,   418,   110,   111,    24,   219,   423,   219,   115,
1821 <     223,   221,   223,   221,   121,    91,   114,    91,   434,   435,
1822 <      91,   437,     1,   130,   115,   123,   124,     6,     7,   445,
1823 <     446,   221,   448,    12,   119,    91,    91,   221,    57,   189,
1824 <     221,    20,   122,   219,   194,   122,   122,    26,   219,    28,
1825 <      29,    30,   223,   221,   122,   101,    35,     1,   156,   154,
1826 <     154,   122,    41,    42,   154,    44,    45,    46,  1038,  1039,
1827 <    1040,    50,    91,    95,    93,    94,    55,   154,   154,     1,
1828 <      59,    60,   194,   154,    63,   219,   154,    66,    67,   223,
1829 <     219,   221,    14,   219,   223,    74,   221,   223,   154,   154,
1830 <     122,   221,    81,    82,   221,    84,    85,    86,    87,    88,
1831 <     219,   209,   131,   220,   133,   134,   135,   136,   220,   209,
1832 <      99,   537,   220,     1,   220,   220,   105,   106,   107,   220,
1833 <     109,   150,   209,   112,   113,   220,   220,   116,   209,    17,
1834 <     220,   209,     1,   220,   220,   211,   220,    91,   127,   220,
1835 <     163,   164,   218,   222,    32,   174,    15,    16,    36,   211,
1836 <      19,   217,   217,   222,   220,   184,   218,   120,   220,   222,
1837 <       1,   222,   151,    95,   222,    40,   155,   222,   122,   158,
1838 <     159,   160,   161,   162,   600,   219,   165,   166,   218,   223,
1839 <     181,   182,   608,   609,   213,   214,   222,    62,   220,    64,
1840 <     122,   220,   219,   219,   222,    36,   223,     1,   222,     3,
1841 <     154,     5,   222,    91,   222,   222,   222,     1,   222,    78,
1842 <      79,    80,   222,    17,    83,    56,   205,   206,   207,   222,
1843 <      61,   210,    91,   212,   222,   222,   114,   216,    32,   104,
1844 <      24,   220,    36,   102,   103,   222,   222,     1,   222,     3,
1845 <     222,     5,   101,   222,   132,     1,   222,   222,   117,   118,
1846 <     222,   222,    56,    17,    58,   222,   222,   222,   222,     1,
1847 <     222,    17,   222,    57,   222,   222,    70,   222,    32,   222,
1848 <     222,   222,    36,     1,   222,   222,    32,   146,   119,   222,
1849 <      36,   222,   141,   142,   143,   144,   145,    91,   222,    17,
1850 <     120,   222,    56,   222,    58,    37,   222,    91,   222,    93,
1851 <      94,   176,   177,   222,    32,   222,    70,   195,    36,    51,
1852 <      52,    53,    54,   222,   222,   119,   222,   222,   187,     1,
1853 <     222,   209,   222,   222,     6,     7,   222,    91,   222,    71,
1854 <      12,   222,   220,   222,   209,    91,   222,   131,    20,   133,
1855 <     134,   135,   136,   147,    26,   222,    28,    29,    30,   222,
1856 <     222,   220,   222,    35,   222,   119,   150,   222,   114,    41,
1857 <      42,   222,    44,    45,    46,   222,   222,   222,    50,   222,
1858 <     174,   222,   222,    55,   222,   222,   132,    59,    60,  1109,
1859 <     174,    63,   222,   147,    66,    67,   114,   219,   222,   222,
1860 <     184,   222,    74,   222,   222,   123,   124,     4,   222,    81,
1861 <      82,   222,    84,    85,    86,    87,    88,   222,   222,   213,
1862 <     174,   222,    13,   222,   222,   222,   220,    99,    25,   213,
1863 <     214,   222,   222,   105,   106,   107,   222,   109,   156,   120,
1864 <     112,   113,    33,    40,   116,   219,     1,   101,   101,   195,
1865 <      47,   163,    43,   101,   101,   127,   101,   101,    49,   213,
1866 <      15,    16,   163,   209,    19,   163,   101,    64,   791,   792,
1867 <     793,   794,   795,   163,    65,   163,   219,   219,   222,   151,
1868 <     219,   222,   222,   155,   222,   222,   158,   159,   160,   161,
1869 <     162,   209,    89,   165,   166,   222,   222,   222,   222,    96,
1870 <     222,    92,    51,     0,     1,   222,   222,     4,   222,   100,
1871 <     120,   108,   222,   222,   222,   222,   222,    14,   222,   222,
1872 <      17,    18,   222,    78,    79,    80,    23,   222,    83,   126,
1873 <     222,   128,   129,   205,   206,   207,    91,    34,   210,    51,
1874 <     212,    38,    39,   222,   216,   222,   222,   102,   103,   140,
1875 <     163,    48,   222,   222,   219,   222,   222,   101,   163,   163,
1876 <     101,   120,   117,   118,   163,    62,   157,    51,   163,   101,
1877 <     101,   101,   120,   163,   163,    72,    73,   163,   163,   101,
1878 <     177,   101,   101,   101,   120,   101,   101,   163,   163,   186,
1879 <     222,   146,   163,    90,   191,   222,   163,   163,   163,   163,
1880 <     197,   163,   163,   120,   201,   163,   203,   104,   219,   163,
1881 <     163,   208,   163,   219,   222,   222,   163,   219,   215,   222,
1882 <     169,   170,   171,   172,   173,    64,   175,   176,   222,   178,
1883 <     179,   180,   187,   221,   183,    64,   185,   186,   222,   188,
1884 <     222,   190,   139,   192,   193,   222,   120,   196,   222,   222,
1885 <     222,   148,   149,   202,   222,   152,   153,   169,   170,   171,
1886 <     172,   173,   222,   175,   176,   120,   178,   179,   180,   219,
1887 <     222,   183,   163,   185,   186,   163,   188,   219,   190,   219,
1888 <     192,   193,   219,   222,   196,   169,   170,   171,   172,   173,
1889 <     202,   175,   176,   222,   178,   179,   180,   222,   222,   183,
1890 <     139,   185,   186,   120,   188,   163,   190,   204,   192,   193,
1891 <     139,   222,   196,   222,     1,   222,   222,   163,   202,   219,
1892 <     120,   163,   120,   120,   120,   120,   120,   120,   120,   168,
1893 <     120,   101,   120,   120,    21,    22,   219,   219,   177,   168,
1894 <      27,   222,   222,   219,   183,   222,   120,   219,   177,   219,
1895 <     219,   219,   219,   219,   183,   219,   219,   219,   197,   219,
1896 <     199,   200,   219,   219,   101,   219,   219,   219,   197,   208,
1897 <     199,   200,   219,   101,   219,   219,   215,   101,   101,   208,
1898 <     101,    68,    69,   101,   120,   101,   215,   101,    75,    76,
1899 <      77,   101,   219,   120,   120,   163,   222,   101,   120,   219,
1900 <     120,   120,   223,   120,   219,   120,   219,   120,   120,   120,
1901 <      97,    98,   120,   120,   120,   222,   219,   219,   219,   120,
1902 <     219,   120,   101,   110,   111,   120,   120,   120,   219,   120,
1903 <     219,   120,   163,   219,   121,   219,   219,   219,   219,   219,
1904 <     219,   219,   219,   130,   219,   120,   219,   219,   219,   120,
1905 <     219,   101,   219,   219,   219,   219,   219,   219,   219,   219,
1906 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
1907 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
1908 <     219,   219,   120,   163,   219,   219,   219,   219,   120,   120,
1909 <     219,   120,   222,   120,   120,   120,   120,   222,   120,   120,
1910 <     120,  1005,  1007,    71,   101,   970,   167,  1246,  1219,   489,
1911 <     219,   125,   513,  1217,   336,  1207,   219,   222,  1104,   219,
1912 <     222,   219,   219,   125,   120,  1203,   222,   219,   562,   219,
1913 <     464,   219,  1221,   219,   219,   219,   219,   219,   219,   570,
1914 <     527,   219,   219,   219,  1197,   219,   219,   219,   366,   219,
1915 <     219,   219,   219,   219,   219,  1223,   219,   112,   222,   219,
1916 <     222,   219,   219,   219,   219,   219,   219,   219,   219,  1205,
1917 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
1918 <     219,   479,   219,   219,   219,   219,   219,  1199,   396,   219,
1919 <    1072,   219,  1070,    91,    -1,    -1,   219,   170,    -1,   384,
1920 <     219,   219,   219,   219,   219,    -1,   219,   219,   219,   219,
1921 <     219,   219,   219,   219,   219,   219,   219,    -1,   219,    -1,
1922 <      -1,   219,   222,   222,   219,   219,   219,   219,   219,   219,
1923 <     219,   219,   219,   219,   219,   219,    -1,   219,   219,   222,
1924 <     219,   219,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1925 <      -1,    -1,    -1,    -1,   230,    -1,    -1,    -1,   238,    -1,
1809 >     646,   647,   316,     1,     8,   319,   320,   321,     1,   323,
1810 >     324,     1,     1,     1,     1,     1,     1,     1,     1,    53,
1811 >      49,   218,   237,   238,     1,   222,     1,     1,     1,     1,
1812 >       1,     1,   239,     1,   239,   218,     1,    17,    31,   222,
1813 >     239,     1,   116,   239,     1,   239,    39,    11,    12,    13,
1814 >     239,     1,     1,     3,     1,     5,     1,     6,     7,     1,
1815 >       9,    10,   237,   237,   237,    14,   241,   241,   241,    57,
1816 >      20,   185,   186,     1,    42,    24,    25,    26,    66,   239,
1817 >      68,     1,    42,    66,    33,   239,     1,    36,    37,    38,
1818 >      40,    66,    66,   239,    43,    66,    85,   131,   239,   239,
1819 >     414,    85,   416,   417,   237,   239,   420,    57,   241,    59,
1820 >     108,    60,    61,   239,   428,   108,   239,    85,    68,   433,
1821 >     100,   108,   108,    72,   104,    85,    75,    76,   442,   443,
1822 >      80,   108,  1109,  1110,  1111,   105,   108,    86,   212,   239,
1823 >     454,   129,   456,   457,    93,   239,    95,   239,    97,   132,
1824 >      99,   108,   116,   102,   103,     1,   126,   132,   108,   132,
1825 >     132,   108,     1,   108,   132,   114,   108,   132,   197,   239,
1826 >     119,   120,   132,   122,   123,   124,   174,   206,   127,   129,
1827 >     108,    20,   162,    29,   239,    31,   239,   132,   108,   237,
1828 >     105,   181,   181,   241,   192,   237,   181,   181,   148,   241,
1829 >       1,    40,   206,   152,   237,   237,   237,   157,   241,   241,
1830 >     208,   126,    58,   239,   163,   164,   165,   166,   167,   168,
1831 >     169,   239,   237,    69,   237,   202,   241,   237,   241,    68,
1832 >     237,   545,   240,   116,   241,    81,    82,    83,   228,   226,
1833 >     238,     1,   229,   228,   240,   238,   240,   181,    94,   226,
1834 >     238,   238,    98,   238,   238,   238,   229,   207,    18,    19,
1835 >     130,   238,   108,    23,   229,   111,   112,   238,   238,   108,
1836 >     219,   220,   221,   238,   223,   224,     1,     1,   238,   226,
1837 >     230,   238,   202,   232,   226,   234,   125,   229,   238,   238,
1838 >     116,   238,   240,   238,   140,   116,    20,    71,   226,    73,
1839 >     240,   237,    27,    28,     1,   241,   226,   108,    68,    34,
1840 >     156,   240,   237,   159,   160,   161,    40,   240,   157,   158,
1841 >     634,   240,   240,   240,   638,   237,   240,   641,    88,    89,
1842 >      90,   645,    92,     1,    31,   240,    96,    62,    63,    64,
1843 >      65,   101,    39,   240,    68,   240,   240,   121,   108,   240,
1844 >     240,   240,    77,    78,    79,   240,   240,   117,   118,   240,
1845 >     240,   207,    87,    88,   138,   240,    91,    35,   128,   240,
1846 >     209,   240,    15,   174,   240,   240,    44,    45,    46,   240,
1847 >     240,    49,    50,   240,   230,   231,    54,    55,    56,   149,
1848 >     229,   192,   238,     1,   233,   240,     1,     1,    41,   238,
1849 >     240,   125,   240,   177,   178,   240,   240,   208,   240,   133,
1850 >     134,   108,    20,   240,     1,    20,   240,   240,   240,     6,
1851 >       7,   240,     9,    10,   240,   240,   240,    14,   240,   153,
1852 >     240,    74,    40,   240,   194,    40,   240,    24,    25,    26,
1853 >     240,   240,   240,   240,   240,   240,    33,   240,   240,    36,
1854 >      37,    38,     4,    57,   240,   229,    43,    73,   240,   240,
1855 >      68,   235,    66,    68,    68,   240,   109,   110,   240,    21,
1856 >      22,   240,   115,    60,    61,   240,   240,   240,   238,   240,
1857 >      32,   240,   240,   240,   240,    72,   240,   240,    75,    76,
1858 >     240,   240,   240,   240,   240,   240,   139,   240,   240,    86,
1859 >     108,   240,   240,   240,   240,   229,    93,   240,    95,   240,
1860 >      97,   154,    99,   238,   238,   102,   103,   125,    70,    71,
1861 >     125,    73,   138,   240,   240,   129,   240,   114,   133,   134,
1862 >     240,   240,   119,   120,   240,   122,   123,   124,   240,   240,
1863 >     127,   834,   835,   836,   837,   838,   839,   840,   153,   157,
1864 >     158,   130,   130,   105,   170,   237,   218,   116,   116,   116,
1865 >       1,   113,   178,   116,   237,   152,   237,   237,   240,   130,
1866 >     238,   187,   116,   240,   217,   240,   163,   164,   165,   166,
1867 >     167,   168,   169,   135,   240,   137,   138,   240,    29,   240,
1868 >      31,   240,   240,   236,   240,   211,   240,   213,   214,   240,
1869 >     240,   209,   240,   155,   240,   240,   240,   240,  1254,   240,
1870 >     240,   227,   240,   240,   240,   240,   240,    58,   240,   235,
1871 >     240,   229,   240,   240,   229,   233,   178,   240,    69,   240,
1872 >     237,   183,   219,   220,   221,   187,   223,   224,   240,   191,
1873 >      81,    82,    83,   240,   196,   232,   218,   234,   200,   218,
1874 >       1,   116,     3,    94,     5,   218,   116,    98,   116,   211,
1875 >     116,   213,   214,   218,   216,   116,   116,   108,   218,    20,
1876 >     111,   112,   218,   116,   116,   227,   116,   116,   116,   116,
1877 >       0,     1,   218,   235,     4,   218,   240,     1,   218,    40,
1878 >     218,   240,   218,   218,   218,   218,    16,   218,   116,   140,
1879 >      20,   218,    22,   218,   116,   237,    57,   130,    59,   240,
1880 >      30,   240,   218,   240,   130,   156,     1,    68,   159,   160,
1881 >     161,    35,    42,   237,   240,   237,   237,    47,    48,    80,
1882 >      44,    45,    46,    18,    19,    49,    50,   240,    23,   240,
1883 >      54,    55,    56,   116,   240,   240,   240,    67,   240,   240,
1884 >     240,    71,   237,   240,   240,   237,   240,   108,     1,   240,
1885 >      49,   240,    51,    52,    84,   240,   207,   240,   141,   142,
1886 >     143,   144,   145,   146,   147,   237,   240,   240,   129,   240,
1887 >     130,   240,   218,    68,    27,    28,   106,   107,   240,   230,
1888 >     231,    34,   240,   218,   130,   116,   218,   148,   218,   218,
1889 >     130,   121,   237,    88,    89,    90,   157,    92,   218,   240,
1890 >      49,    96,    51,    52,   130,   130,   101,   130,   138,    62,
1891 >      63,    64,    65,   108,   116,   116,   130,   130,   130,   130,
1892 >     150,   151,   117,   118,    77,    78,    79,   130,   237,   237,
1893 >     130,   218,   130,   128,    87,    88,   130,   130,    91,   130,
1894 >      49,   130,   240,   237,   239,   175,   207,   237,   240,   240,
1895 >     130,   240,   240,   237,   149,   237,   116,   116,   188,   240,
1896 >     240,   237,   237,   193,   237,   237,   237,   237,   198,   230,
1897 >     237,   201,   171,   172,   173,   237,   240,   176,   177,    73,
1898 >     179,   180,   237,   182,   237,   184,   237,   237,   187,   237,
1899 >     189,   190,   237,   237,   237,   116,   195,   116,   116,   194,
1900 >     199,   116,   130,   116,   203,   204,   205,   130,   116,   116,
1901 >     237,   210,   218,   130,   130,   116,   215,   237,   130,   240,
1902 >     130,   237,   171,   172,   173,   130,   130,   176,   177,   237,
1903 >     179,   180,   130,   182,   130,   184,   218,   130,   187,   130,
1904 >     189,   190,   130,   130,   138,   130,   195,   237,   130,   237,
1905 >     199,   237,   237,   237,   203,   204,   205,   240,   237,   237,
1906 >     237,   210,   171,   172,   173,   237,   215,   176,   177,   237,
1907 >     179,   180,   237,   182,   237,   184,   170,   130,   187,   237,
1908 >     189,   190,   237,   237,   178,   237,   195,   237,   116,   237,
1909 >     199,   237,   237,   187,   203,   204,   205,   237,   237,   237,
1910 >     237,   210,   237,   237,   237,   237,   215,   237,   237,   130,
1911 >     237,   237,   237,   237,   130,   237,   130,   211,   130,   213,
1912 >     214,   130,   130,   237,   130,   116,   237,   130,   130,   130,
1913 >     130,   237,   130,   227,   237,   237,   130,   237,   237,   594,
1914 >     237,   235,   237,   218,   218,   237,   130,   237,   237,   130,
1915 >     130,   237,   130,   237,   237,   130,   130,   237,   237,   240,
1916 >     237,   237,   240,   130,   130,   237,   237,   240,   237,   237,
1917 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1918 >     237,   237,   237,   237,   130,   237,   237,   237,   237,   237,
1919 >     237,   237,   237,   237,   237,   237,   237,   130,   237,   237,
1920 >     240,   237,   237,   130,   130,   237,   240,   237,   237,   240,
1921 >     237,   237,   237,   237,   237,   237,   116,   237,   237,   237,
1922 >     237,   130,   237,   136,   237,   136,   237,   237,   138,  1238,
1923 >     237,   138,   237,   237,   136,   136,    77,  1340,   237,   272,
1924 >     237,   237,   237,   522,   237,   237,  1301,   237,   237,   237,
1925 >     237,   237,   237,   507,   237,   237,  1070,  1299,   237,  1277,
1926 >     237,   237,   225,  1288,   237,   237,   237,   237,   237,   237,
1927 >    1171,  1286,   237,   237,   471,   494,   237,   237,   237,   241,
1928 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
1929 >     237,   538,   237,   607,   237,   237,   240,   237,   237,   237,
1930 >     237,   237,   580,  1311,   223,  1304,  1282,   242,   242,   237,
1931 >     242,   242,   242,   242,   237,   240,   237,   237,   484,   116,
1932 >     168,  1141,  1139,    96,   240,    -1,    -1,    -1,    -1,   399,
1933 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   297,
1934 >      -1,    -1,    -1,   380,    -1,    -1,    -1,    -1,    -1,    -1,
1935 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1936 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1937 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1938 >      -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1939 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1940 >      -1,    -1,    -1,    -1,    -1,    -1,   347,    -1,    -1,    -1,
1941 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1942 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1943 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1944        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2201      -1,    -1,    -1,    -1,    -1,    -1,    -1,   251,    -1,    -1,
1945        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2203      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   275,    -1,
1946        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1947        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1948 <      -1,   296
1948 >      -1,    -1,    -1,    -1,    -1,    -1,    -1,   409
1949   };
1950  
1951 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1952 <   symbol of state STATE-NUM.  */
1951 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1952 >     symbol of state STATE-NUM.  */
1953   static const yytype_uint16 yystos[] =
1954   {
1955 <       0,   225,     0,     1,     4,    14,    17,    18,    23,    34,
1956 <      38,    39,    48,    62,    72,    73,    90,   104,   139,   148,
1957 <     149,   152,   153,   204,   226,   231,   236,   258,   264,   278,
1958 <     296,   314,   328,   343,   350,   354,   364,   373,   393,   403,
1959 <     409,   413,   423,   485,   502,   219,   220,   221,   221,   297,
1960 <     374,   404,   221,   414,   221,   329,   394,   315,   221,   221,
1961 <     279,   344,   221,   221,   355,   365,   221,     1,    24,    31,
1962 <      91,   259,   260,   261,   262,   263,     1,    21,    22,    27,
1963 <      68,    69,    75,    76,    77,    97,    98,   110,   111,   121,
1964 <     130,   486,   487,   488,   489,   490,   491,   492,   493,   494,
1965 <     495,   496,   497,   498,   499,   500,   501,   221,   221,   221,
1966 <       1,    61,   410,   411,   412,   221,     1,     6,     7,    12,
1967 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1968 <      46,    50,    55,    59,    60,    63,    66,    67,    74,    81,
1969 <      82,    84,    85,    86,    87,    88,    99,   105,   106,   107,
1970 <     109,   112,   113,   116,   127,   151,   155,   158,   159,   160,
1971 <     161,   162,   165,   166,   205,   206,   207,   210,   212,   216,
1972 <     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
1973 <     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
1974 <     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
1975 <     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
1976 <     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
1977 <     474,   478,   482,   483,   484,   221,   221,   221,     1,   211,
1978 <     265,   266,   267,   268,   269,     1,    89,   115,   232,   233,
1979 <     234,   235,   221,   221,     1,    37,    51,    52,    53,    54,
1980 <      71,   503,   504,   505,   506,   507,   508,   509,   510,     1,
1981 <      24,    57,    91,    93,    94,   131,   133,   134,   135,   136,
1982 <     150,   174,   184,   213,   214,   237,   238,   239,   240,   245,
1983 <     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1984 <     256,   257,   221,   221,     1,    91,   351,   352,   353,   219,
1985 <     222,   222,   222,   220,   260,   222,   222,   222,   222,   222,
1986 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   220,
1987 <     487,     1,    15,    16,    19,    78,    79,    80,    83,    91,
1988 <     102,   103,   117,   118,   146,   187,   298,   299,   300,   301,
1989 <     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
1990 <     312,   313,     1,     3,     5,    17,    32,    36,    56,    58,
1991 <      70,    91,   119,   147,   174,   213,   375,   376,   377,   378,
1992 <     379,   380,   381,   382,   383,   384,   388,   389,   390,   391,
1993 <     392,     1,    61,   122,   405,   406,   407,   408,   222,   220,
1994 <     411,     1,    91,   122,   154,   415,   419,   420,   421,   422,
1995 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1996 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1997 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
1998 <     222,   479,   222,   475,   222,   222,   222,   222,   222,   222,
1999 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2000 <     222,   222,   222,   220,   425,     1,    17,    32,    36,   114,
2001 <     123,   124,   156,   209,   330,   331,   332,   333,   334,   335,
2002 <     336,   340,   341,   342,     1,   122,   154,   209,   395,   399,
2003 <     400,   401,   402,     1,    36,    56,    61,   119,   316,   320,
2004 <     321,   322,   326,   327,   219,   222,   220,   266,   218,   219,
2005 <     222,   222,   220,   233,     1,    17,    32,    36,    91,   114,
2006 <     132,   195,   209,   280,   281,   282,   283,   284,   285,   286,
2007 <     287,   288,   292,     1,    14,    95,   122,   345,   346,   347,
2008 <     348,   349,   222,   222,   222,   222,   222,   222,   220,   504,
2009 <     219,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2010 <     222,   222,   222,   222,   222,   222,   220,   238,     1,    91,
2011 <     154,   209,   356,   357,   358,   359,   360,     1,    91,   154,
2012 <     366,   367,   368,   369,   222,   220,   352,   120,   120,   120,
2013 <     219,   101,   101,   163,   101,   228,   228,   101,   101,   101,
2014 <     163,   163,   101,   228,   163,   163,   219,   219,   222,   222,
2015 <     222,   222,   222,   222,   222,   222,   222,   222,   222,   222,
2016 <     222,   222,   220,   299,   219,   222,   222,   222,   222,   385,
2017 <     222,   222,   222,   222,   222,   222,   222,   222,   220,   376,
2018 <     222,   222,   220,   406,   120,   219,   222,   222,   416,   220,
2019 <     420,   163,   228,   228,   101,   163,   163,   101,   120,   163,
2020 <     228,   163,   228,   101,   101,   101,   163,   163,   163,   228,
2021 <     120,   163,   101,   101,   228,   101,   101,   120,   101,   101,
2022 <     163,   163,   222,   163,   222,   228,   228,   163,   228,   163,
2023 <     163,   163,   163,   164,   163,   164,   163,   163,   228,   228,
2024 <     120,   228,   163,   163,   163,   163,   219,   219,   222,   222,
2025 <     337,   222,   222,   222,   222,   222,   220,   331,   222,   396,
2026 <     222,   220,   400,   219,   317,   222,   222,   222,   220,   321,
2027 <     163,   219,   221,   120,   120,   219,   219,   222,   222,   293,
2028 <     222,   222,   222,   289,   222,   220,   281,   219,   222,   222,
2029 <     222,   220,   346,   163,   163,   120,   163,   163,   228,   219,
2030 <     120,   163,   120,   120,   120,   120,   120,   120,   137,   138,
2031 <     241,   242,   137,   138,   243,   244,   120,   120,   101,   120,
2032 <     120,   219,   219,   222,   361,   222,   220,   357,   219,   222,
2033 <     370,   220,   367,   120,   219,   219,   219,   219,   219,   219,
2034 <     219,   141,   142,   143,   144,   145,   227,   228,   219,   219,
2035 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   101,
2036 <     101,   228,   101,   101,   101,   101,   120,   101,   101,   228,
2037 <     228,   101,   230,   230,   219,   120,   181,   182,   120,   163,
2038 <     222,   120,   120,   120,   120,   101,   120,   120,   120,   219,
2039 <     120,   120,   219,   219,   120,   120,   222,   219,   219,   219,
2040 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
2041 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
2042 <     219,   219,   219,   219,   219,   219,   219,   219,   219,    51,
2043 <     169,   170,   171,   172,   173,   175,   176,   178,   179,   180,
2044 <     183,   185,   186,   188,   190,   192,   193,   196,   202,   480,
2045 <     481,   219,    51,   169,   170,   171,   172,   173,   175,   176,
2046 <     178,   179,   180,   183,   185,   186,   188,   190,   192,   193,
2047 <     196,   202,   476,   477,   219,   219,   219,   219,   219,   219,
2048 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
2049 <     219,   219,   219,   219,   219,   120,   163,   222,   120,   101,
2050 <     120,   120,   120,   219,   120,   222,   120,   219,   222,   120,
2051 <     120,   101,   324,   325,   219,   219,     1,    91,   154,   217,
2052 <     270,   271,   272,   273,   274,   219,   219,   120,   163,   222,
2053 <     120,   120,   120,   222,   120,   219,   120,   120,   120,   219,
2054 <     219,   219,   219,   219,   219,   219,   219,   219,   219,   219,
2055 <     219,   219,   219,   219,   219,   223,   219,   223,   219,   219,
2056 <     219,   219,   219,   120,   222,   120,   219,   120,   222,   219,
2057 <     219,   227,   227,   227,   227,   227,   219,   219,   219,   219,
2058 <     219,   219,   219,   219,   219,   219,   219,   219,     9,    10,
2059 <      11,   229,   230,   219,   219,   219,   219,   219,   219,   219,
2060 <       8,   194,   386,   387,   219,   219,   219,   219,   219,   219,
2061 <     219,   219,   219,   219,   219,   219,   125,   417,   418,   219,
2062 <     223,   219,   223,   219,   219,    13,    33,    43,    49,    65,
2063 <      92,   100,   140,   157,   338,   339,   219,   219,   219,   219,
2064 <     219,   219,   125,   397,   398,   219,    51,   189,   194,   318,
2065 <     319,   219,   219,   167,   223,   323,   219,   222,   275,   222,
2066 <     220,   271,   219,   219,     4,    25,    40,    47,    64,    89,
2067 <      96,   108,   126,   128,   129,   177,   186,   191,   197,   201,
2068 <     203,   208,   215,   294,   295,   219,   219,   219,    51,   169,
2069 <     170,   171,   172,   173,   175,   176,   178,   179,   180,   183,
2070 <     185,   186,   188,   190,   192,   193,   196,   202,   290,   291,
2071 <     219,   219,   219,   219,   242,   244,   219,    64,   139,   168,
2072 <     177,   183,   197,   199,   200,   208,   215,   362,   363,   219,
2073 <     219,    64,   139,   168,   177,   183,   197,   199,   200,   208,
2074 <     215,   371,   372,   229,   229,   229,   219,   223,   219,   223,
2075 <     481,   477,   219,   223,   219,   223,   219,   223,   101,   325,
2076 <     219,   120,   222,   198,   230,   219,   219,   223,   219,   223,
2077 <     219,   223,   219,   223,   387,   418,   339,   398,   319,   219,
2078 <      40,    62,    64,   104,   176,   177,   209,   276,   277,   219,
2079 <     219,   295,   291,   363,   372,   219,   223,   277
1955 >       0,   244,     0,     1,     4,    16,    20,    22,    30,    42,
1956 >      47,    48,    67,    71,    84,   106,   107,   121,   138,   150,
1957 >     151,   175,   188,   193,   198,   201,   245,   250,   255,   281,
1958 >     287,   293,   301,   315,   335,   358,   372,   387,   394,   398,
1959 >     408,   417,   438,   444,   450,   454,   460,   516,   532,   237,
1960 >     238,   239,   239,   336,   418,   445,   239,   455,   239,   373,
1961 >     439,   359,   239,   288,   316,   388,   239,   239,   409,   239,
1962 >     294,   239,   399,     1,    31,    39,   108,   282,   283,   284,
1963 >     285,   286,     1,    27,    28,    34,    62,    63,    64,    65,
1964 >      77,    78,    79,    87,    88,    91,   517,   518,   519,   520,
1965 >     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
1966 >     531,   239,   239,   239,     1,    66,   451,   452,   453,   239,
1967 >       1,     6,     7,     9,    10,    14,    24,    25,    26,    33,
1968 >      36,    37,    38,    43,    60,    61,    72,    75,    76,    86,
1969 >      93,    95,    97,    99,   102,   103,   114,   119,   120,   122,
1970 >     123,   124,   127,   152,   163,   164,   165,   166,   167,   168,
1971 >     169,   219,   220,   221,   223,   224,   232,   234,   461,   462,
1972 >     463,   464,   465,   466,   467,   468,   469,   470,   471,   472,
1973 >     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
1974 >     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
1975 >     493,   494,   495,   496,   497,   498,   499,   500,   501,   502,
1976 >     503,   504,   508,   512,   513,   514,   515,   239,   239,   239,
1977 >       1,   105,   126,   251,   252,   253,   254,   239,   239,   239,
1978 >       1,    35,    44,    45,    46,    49,    50,    54,    55,    56,
1979 >     533,   534,   535,   536,   537,   538,   539,   540,   541,   542,
1980 >     543,     1,    29,    31,    58,    69,    81,    82,    83,    94,
1981 >      98,   108,   111,   112,   140,   156,   159,   160,   161,   207,
1982 >     230,   231,   256,   257,   258,   259,   260,   261,   262,   263,
1983 >     264,   268,   269,   270,   271,   272,   273,   274,   275,   276,
1984 >     277,   278,   279,   280,   239,     1,   228,   302,   303,   304,
1985 >     305,   306,   239,     1,   108,   395,   396,   397,   239,   237,
1986 >     240,   240,   240,   238,   283,   240,   240,   240,   240,   240,
1987 >     240,   240,   240,   240,   240,   240,   240,   240,   238,   518,
1988 >       1,    18,    19,    23,    68,    88,    89,    90,    92,    96,
1989 >     101,   108,   117,   118,   128,   149,   194,   337,   338,   339,
1990 >     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,
1991 >     350,   351,   352,   353,   354,     1,     3,     5,    20,    40,
1992 >      57,    59,    68,    80,   108,   129,   148,   157,   207,   230,
1993 >     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
1994 >     429,   433,   434,   435,   436,   437,     1,    66,   132,   446,
1995 >     447,   448,   449,   240,   238,   452,     1,   108,   132,   456,
1996 >     457,   458,   459,   240,   240,   240,   240,   240,   240,   240,
1997 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
1998 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   509,
1999 >     505,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2000 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2001 >     238,   462,     1,    20,    40,    68,   125,   133,   134,   153,
2002 >     229,   374,   375,   376,   377,   378,   379,   380,   384,   385,
2003 >     386,     1,   132,   229,   440,   441,   442,   443,     1,    57,
2004 >      66,    68,   129,   360,   364,   365,   366,   370,   371,   237,
2005 >     240,   240,   238,   252,     1,    85,   181,   289,   290,   291,
2006 >     292,     1,    20,    40,    68,   108,   125,   157,   158,   209,
2007 >     229,   233,   317,   318,   319,   320,   321,   322,   323,   324,
2008 >     325,   326,   327,   331,     1,    42,    85,   132,   389,   390,
2009 >     391,   392,   393,   240,   240,   240,   240,   240,   240,   240,
2010 >     240,   240,   238,   534,   237,   240,   240,   240,   240,   265,
2011 >     240,   240,   240,   240,   240,   240,   240,   240,   240,   240,
2012 >     240,   240,   240,   240,   240,   238,   257,     1,   108,   226,
2013 >     410,   411,   412,   413,   237,   240,   238,   303,   181,     1,
2014 >     108,   174,   192,   208,   295,   296,   297,   298,   299,   300,
2015 >     240,   238,   396,     1,   108,   226,   229,   400,   401,   402,
2016 >     403,   404,   130,   130,   130,   237,   116,   116,   247,   218,
2017 >     116,   247,   247,   247,   116,   247,   247,   116,   116,   116,
2018 >     237,   237,   240,   240,   240,   355,   240,   240,   240,   240,
2019 >     240,   240,   240,   240,   240,   240,   240,   240,   238,   338,
2020 >     237,   240,   240,   240,   240,   240,   240,   430,   240,   240,
2021 >     240,   240,   240,   240,   240,   238,   420,   240,   240,   238,
2022 >     447,   130,   237,   240,   240,   238,   457,   218,   247,   116,
2023 >     247,   247,   218,   116,   247,   218,   116,   116,   116,   218,
2024 >     218,   218,   247,   116,   116,   116,   116,   247,   116,   116,
2025 >     116,   116,   218,   240,   240,   218,   247,   247,   218,   218,
2026 >     218,   218,   222,   218,   222,   218,   218,   218,   218,   116,
2027 >     247,   218,   247,   247,   218,   116,   237,   237,   240,   240,
2028 >     381,   240,   240,   240,   240,   240,   238,   375,   240,   240,
2029 >     238,   441,   237,   240,   240,   361,   240,   238,   365,   130,
2030 >     130,   237,   237,   240,   240,   238,   290,   237,   240,   240,
2031 >     332,   240,   240,   240,   240,   328,   240,   240,   238,   318,
2032 >     237,   240,   240,   240,   238,   390,   218,   218,   247,   130,
2033 >     218,   130,   218,   218,   218,   237,   116,   130,   218,   130,
2034 >     240,   130,   130,   116,   116,   130,   130,   130,   130,   130,
2035 >     130,   130,   130,   130,   130,   130,   237,   237,   240,   414,
2036 >     238,   411,   218,   237,   239,   237,   240,   240,   240,   240,
2037 >     238,   296,   130,   237,   237,   240,   405,   240,   238,   401,
2038 >     237,   237,   237,   237,   141,   142,   143,   144,   145,   146,
2039 >     147,   246,   247,   237,   237,   237,   237,   237,   237,   237,
2040 >     237,   237,   237,   237,   237,   116,   116,   247,   240,   116,
2041 >     116,   247,   116,   116,   247,   130,   116,   116,   247,   116,
2042 >     249,   249,   237,   130,   185,   186,   130,   218,   130,   130,
2043 >     240,   130,   130,   116,   130,   130,   130,   130,   237,   130,
2044 >     130,   237,   237,   130,   130,   237,   237,   237,   237,   237,
2045 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
2046 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
2047 >     237,   237,    49,   171,   172,   173,   176,   177,   179,   180,
2048 >     182,   184,   187,   189,   190,   195,   199,   203,   204,   205,
2049 >     210,   215,   510,   511,    49,    51,    52,   171,   172,   173,
2050 >     176,   177,   179,   180,   182,   184,   187,   189,   190,   195,
2051 >     199,   203,   204,   205,   210,   215,   506,   507,   237,   237,
2052 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
2053 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   130,
2054 >     218,   240,   130,   116,   130,   130,   130,   237,   130,   130,
2055 >     237,   130,   130,   240,   116,   368,   369,   237,   237,   237,
2056 >     130,   130,   237,   130,   218,   240,   130,   130,   130,   218,
2057 >     240,   130,   130,   237,   130,   130,   130,   237,   237,   237,
2058 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
2059 >     237,    17,   100,   104,   162,   266,   267,   237,   237,   237,
2060 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   237,
2061 >     237,   237,   130,   240,   237,   237,     1,   108,   202,   226,
2062 >     307,   308,   309,   310,   311,   130,   130,   130,   130,   237,
2063 >     237,   130,   240,   130,   237,   246,   246,   246,   246,   246,
2064 >     246,   246,   237,   237,   237,    53,   131,   356,   357,   237,
2065 >     237,   237,   237,   237,   237,   237,   237,   237,   237,    11,
2066 >      12,    13,   248,   249,   237,   237,   237,   237,   237,   237,
2067 >     237,   237,   237,     8,   206,   431,   432,   237,   237,   237,
2068 >     237,   237,   237,   237,   237,   237,   237,   237,   237,   241,
2069 >     237,   241,   237,   237,    15,    41,    74,   109,   110,   115,
2070 >     139,   154,   217,   236,   382,   383,   237,   237,   237,   237,
2071 >     237,   237,   237,   237,   237,    49,   197,   206,   362,   363,
2072 >     225,   241,   367,   237,   237,   237,   237,     4,    21,    22,
2073 >      32,    70,    71,    73,   105,   113,   135,   137,   138,   155,
2074 >     178,   183,   187,   191,   196,   200,   211,   213,   214,   216,
2075 >     227,   235,   333,   334,   237,   237,   237,   237,    49,    51,
2076 >      52,   171,   172,   173,   176,   177,   179,   180,   182,   184,
2077 >     187,   189,   190,   195,   199,   203,   204,   205,   210,   215,
2078 >     329,   330,   237,   237,   237,   237,   237,   237,   241,   237,
2079 >      73,   138,   170,   178,   187,   211,   213,   214,   227,   235,
2080 >     415,   416,   237,   240,   240,   312,   238,   308,   237,   237,
2081 >     237,   237,   237,    73,   138,   170,   178,   187,   211,   213,
2082 >     214,   227,   235,   406,   407,   237,   237,   241,   248,   248,
2083 >     248,   237,   241,   511,   507,   237,   241,   237,   241,   116,
2084 >     369,   237,   242,   242,   242,   242,   242,   242,   237,   241,
2085 >     237,   241,   267,   237,   241,   130,   212,   249,   240,   237,
2086 >     237,   241,   357,   432,   383,   363,   136,   138,   136,   138,
2087 >     136,   136,   334,   330,   416,   237,   237,   237,    71,    73,
2088 >     121,   138,   177,   178,   229,   235,   313,   314,   407,   237,
2089 >     241,   314
2090   };
2091  
2092 < #define yyerrok         (yyerrstatus = 0)
2093 < #define yyclearin       (yychar = YYEMPTY)
2094 < #define YYEMPTY         (-2)
2095 < #define YYEOF           0
2096 <
2097 < #define YYACCEPT        goto yyacceptlab
2098 < #define YYABORT         goto yyabortlab
2099 < #define YYERROR         goto yyerrorlab
2100 <
2101 <
2102 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2103 <   to ease the transition to the new meaning of YYERROR, for GCC.
2104 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2105 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2106 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2107 <   discussed.  */
2108 <
2109 < #define YYFAIL          goto yyerrlab
2110 < #if defined YYFAIL
2111 <  /* This is here to suppress warnings from the GCC cpp's
2112 <     -Wunused-macros.  Normally we don't worry about that warning, but
2113 <     some users do, and we want to make it easy for users to remove
2114 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2115 < #endif
2092 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2093 > static const yytype_uint16 yyr1[] =
2094 > {
2095 >       0,   243,   244,   244,   245,   245,   245,   245,   245,   245,
2096 >     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
2097 >     245,   245,   245,   245,   245,   245,   245,   245,   246,   246,
2098 >     247,   247,   247,   247,   247,   247,   247,   247,   248,   248,
2099 >     249,   249,   249,   249,   250,   251,   251,   252,   252,   252,
2100 >     253,   254,   255,   256,   256,   257,   257,   257,   257,   257,
2101 >     257,   257,   257,   257,   257,   257,   257,   257,   257,   257,
2102 >     257,   257,   257,   257,   257,   257,   258,   259,   260,   261,
2103 >     262,   263,   265,   264,   266,   266,   267,   267,   267,   267,
2104 >     268,   269,   270,   271,   272,   273,   274,   275,   276,   277,
2105 >     278,   279,   280,   281,   282,   282,   283,   283,   283,   283,
2106 >     284,   285,   286,   288,   287,   289,   289,   290,   290,   290,
2107 >     291,   292,   294,   293,   295,   295,   296,   296,   296,   296,
2108 >     296,   297,   298,   299,   300,   301,   302,   302,   303,   303,
2109 >     303,   304,   306,   305,   307,   307,   308,   308,   308,   308,
2110 >     309,   310,   310,   312,   311,   313,   313,   314,   314,   314,
2111 >     314,   314,   314,   314,   314,   316,   315,   317,   317,   318,
2112 >     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
2113 >     319,   320,   321,   322,   323,   324,   325,   326,   328,   327,
2114 >     329,   329,   330,   330,   330,   330,   330,   330,   330,   330,
2115 >     330,   330,   330,   330,   330,   330,   330,   330,   330,   330,
2116 >     330,   330,   330,   330,   332,   331,   333,   333,   334,   334,
2117 >     334,   334,   334,   334,   334,   334,   334,   334,   334,   334,
2118 >     334,   334,   334,   334,   334,   334,   334,   334,   334,   334,
2119 >     334,   334,   334,   334,   334,   334,   334,   336,   335,   337,
2120 >     337,   338,   338,   338,   338,   338,   338,   338,   338,   338,
2121 >     338,   338,   338,   338,   338,   338,   338,   338,   339,   340,
2122 >     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,
2123 >     351,   352,   353,   355,   354,   356,   356,   357,   357,   359,
2124 >     358,   361,   360,   362,   362,   363,   363,   363,   364,   364,
2125 >     365,   365,   365,   365,   365,   367,   366,   368,   368,   369,
2126 >     369,   370,   371,   373,   372,   374,   374,   375,   375,   375,
2127 >     375,   375,   375,   375,   375,   375,   376,   377,   378,   379,
2128 >     381,   380,   382,   382,   383,   383,   383,   383,   383,   383,
2129 >     383,   383,   383,   383,   384,   385,   386,   388,   387,   389,
2130 >     389,   390,   390,   390,   390,   391,   392,   393,   394,   395,
2131 >     395,   396,   396,   397,   399,   398,   400,   400,   401,   401,
2132 >     401,   401,   402,   403,   405,   404,   406,   406,   407,   407,
2133 >     407,   407,   407,   407,   407,   407,   407,   407,   409,   408,
2134 >     410,   410,   411,   411,   411,   412,   414,   413,   415,   415,
2135 >     416,   416,   416,   416,   416,   416,   416,   416,   416,   416,
2136 >     418,   417,   419,   419,   420,   420,   420,   420,   420,   420,
2137 >     420,   420,   420,   420,   420,   420,   420,   420,   420,   421,
2138 >     422,   423,   424,   425,   426,   427,   428,   428,   430,   429,
2139 >     431,   431,   432,   432,   433,   434,   435,   436,   437,   439,
2140 >     438,   440,   440,   441,   441,   441,   442,   443,   445,   444,
2141 >     446,   446,   447,   447,   447,   448,   449,   450,   451,   451,
2142 >     452,   452,   453,   455,   454,   456,   456,   457,   457,   457,
2143 >     458,   459,   460,   461,   461,   462,   462,   462,   462,   462,
2144 >     462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
2145 >     462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
2146 >     462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
2147 >     462,   462,   462,   462,   462,   462,   462,   462,   462,   462,
2148 >     462,   462,   462,   463,   464,   465,   466,   467,   468,   469,
2149 >     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
2150 >     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,
2151 >     490,   490,   491,   491,   492,   493,   494,   495,   496,   497,
2152 >     498,   499,   500,   501,   502,   503,   505,   504,   506,   506,
2153 >     507,   507,   507,   507,   507,   507,   507,   507,   507,   507,
2154 >     507,   507,   507,   507,   507,   507,   507,   507,   507,   507,
2155 >     507,   507,   509,   508,   510,   510,   511,   511,   511,   511,
2156 >     511,   511,   511,   511,   511,   511,   511,   511,   511,   511,
2157 >     511,   511,   511,   511,   511,   511,   512,   513,   514,   515,
2158 >     516,   517,   517,   518,   518,   518,   518,   518,   518,   518,
2159 >     518,   518,   518,   518,   518,   518,   518,   519,   520,   521,
2160 >     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
2161 >     532,   533,   533,   534,   534,   534,   534,   534,   534,   534,
2162 >     534,   534,   534,   535,   536,   537,   538,   539,   540,   541,
2163 >     542,   543
2164 > };
2165 >
2166 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2167 > static const yytype_uint8 yyr2[] =
2168 > {
2169 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2170 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2171 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2172 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2173 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2174 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2175 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2176 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2177 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2178 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2179 >       4,     4,     4,     5,     2,     1,     1,     1,     1,     2,
2180 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     2,
2181 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
2182 >       2,     4,     4,     4,     4,     5,     2,     1,     1,     1,
2183 >       2,     4,     0,     6,     2,     1,     1,     1,     1,     2,
2184 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     1,
2185 >       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
2186 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
2187 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2188 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2189 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2190 >       1,     1,     1,     1,     0,     5,     3,     1,     3,     1,
2191 >       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2192 >       1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
2193 >       1,     1,     3,     3,     1,     1,     1,     0,     6,     2,
2194 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2195 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2196 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2197 >       4,     4,     4,     0,     5,     3,     1,     1,     1,     0,
2198 >       6,     0,     5,     3,     1,     1,     1,     1,     2,     1,
2199 >       1,     1,     1,     1,     2,     0,     5,     3,     1,     1,
2200 >       3,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2201 >       1,     1,     1,     1,     1,     2,     4,     4,     4,     4,
2202 >       0,     5,     3,     1,     1,     1,     1,     1,     1,     1,
2203 >       1,     1,     1,     1,     4,     4,     4,     0,     6,     2,
2204 >       1,     1,     1,     1,     2,     4,     4,     4,     5,     2,
2205 >       1,     1,     1,     4,     0,     6,     2,     1,     1,     1,
2206 >       1,     2,     4,     4,     0,     5,     3,     1,     1,     1,
2207 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2208 >       2,     1,     1,     1,     2,     4,     0,     5,     3,     1,
2209 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2210 >       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
2211 >       1,     1,     1,     1,     1,     1,     1,     1,     2,     4,
2212 >       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
2213 >       3,     1,     1,     1,     4,     4,     4,     4,     4,     0,
2214 >       6,     2,     1,     1,     1,     1,     4,     4,     0,     6,
2215 >       2,     1,     1,     1,     1,     4,     4,     5,     2,     1,
2216 >       1,     1,     4,     0,     6,     2,     1,     1,     1,     1,
2217 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2218 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2219 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2220 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2221 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2222 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2223 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2224 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2225 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2226 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
2227 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2228 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2229 >       1,     1,     0,     5,     3,     1,     1,     1,     1,     1,
2230 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2231 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
2232 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2233 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2234 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2235 >       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
2236 >       1,     1,     1,     4,     4,     4,     4,     4,     4,     4,
2237 >       4,     4
2238 > };
2239 >
2240 >
2241 > #define yyerrok         (yyerrstatus = 0)
2242 > #define yyclearin       (yychar = YYEMPTY)
2243 > #define YYEMPTY         (-2)
2244 > #define YYEOF           0
2245 >
2246 > #define YYACCEPT        goto yyacceptlab
2247 > #define YYABORT         goto yyabortlab
2248 > #define YYERROR         goto yyerrorlab
2249 >
2250  
2251   #define YYRECOVERING()  (!!yyerrstatus)
2252  
# Line 2377 | Line 2263 | do
2263    else                                                          \
2264      {                                                           \
2265        yyerror (YY_("syntax error: cannot back up")); \
2266 <      YYERROR;                                                  \
2267 <    }                                                           \
2268 < while (YYID (0))
2383 <
2266 >      YYERROR;                                                  \
2267 >    }                                                           \
2268 > while (0)
2269  
2270 < #define YYTERROR        1
2271 < #define YYERRCODE       256
2270 > /* Error token number */
2271 > #define YYTERROR        1
2272 > #define YYERRCODE       256
2273  
2388 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2389   If N is 0, then set CURRENT to the empty location which ends
2390   the previous symbol: RHS[0] (always defined).  */
2274  
2392 #ifndef YYLLOC_DEFAULT
2393 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
2394    do                                                                  \
2395      if (YYID (N))                                                     \
2396        {                                                               \
2397          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
2398          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
2399          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
2400          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
2401        }                                                               \
2402      else                                                              \
2403        {                                                               \
2404          (Current).first_line   = (Current).last_line   =              \
2405            YYRHSLOC (Rhs, 0).last_line;                                \
2406          (Current).first_column = (Current).last_column =              \
2407            YYRHSLOC (Rhs, 0).last_column;                              \
2408        }                                                               \
2409    while (YYID (0))
2410 #endif
2275  
2276 < #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2276 > /* Enable debugging if requested.  */
2277 > #if YYDEBUG
2278  
2279 + # ifndef YYFPRINTF
2280 + #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2281 + #  define YYFPRINTF fprintf
2282 + # endif
2283  
2284 + # define YYDPRINTF(Args)                        \
2285 + do {                                            \
2286 +  if (yydebug)                                  \
2287 +    YYFPRINTF Args;                             \
2288 + } while (0)
2289  
2290   /* This macro is provided for backward compatibility. */
2417
2291   #ifndef YY_LOCATION_PRINT
2292   # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2293   #endif
2294  
2295  
2296 < /* YYLEX -- calling `yylex' with the right arguments.  */
2297 <
2298 < #ifdef YYLEX_PARAM
2299 < # define YYLEX yylex (YYLEX_PARAM)
2300 < #else
2301 < # define YYLEX yylex ()
2302 < #endif
2303 <
2304 < /* Enable debugging if requested.  */
2305 < #if YYDEBUG
2433 <
2434 < # ifndef YYFPRINTF
2435 < #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2436 < #  define YYFPRINTF fprintf
2437 < # endif
2438 <
2439 < # define YYDPRINTF(Args)                        \
2440 < do {                                            \
2441 <  if (yydebug)                                  \
2442 <    YYFPRINTF Args;                             \
2443 < } while (YYID (0))
2444 <
2445 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2446 < do {                                                                      \
2447 <  if (yydebug)                                                            \
2448 <    {                                                                     \
2449 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2450 <      yy_symbol_print (stderr,                                            \
2451 <                  Type, Value); \
2452 <      YYFPRINTF (stderr, "\n");                                           \
2453 <    }                                                                     \
2454 < } while (YYID (0))
2296 > # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2297 > do {                                                                      \
2298 >  if (yydebug)                                                            \
2299 >    {                                                                     \
2300 >      YYFPRINTF (stderr, "%s ", Title);                                   \
2301 >      yy_symbol_print (stderr,                                            \
2302 >                  Type, Value); \
2303 >      YYFPRINTF (stderr, "\n");                                           \
2304 >    }                                                                     \
2305 > } while (0)
2306  
2307  
2308 < /*--------------------------------.
2309 < | Print this symbol on YYOUTPUT.  |
2310 < `--------------------------------*/
2308 > /*----------------------------------------.
2309 > | Print this symbol's value on YYOUTPUT.  |
2310 > `----------------------------------------*/
2311  
2461 /*ARGSUSED*/
2462 #if (defined __STDC__ || defined __C99__FUNC__ \
2463     || defined __cplusplus || defined _MSC_VER)
2312   static void
2313   yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2466 #else
2467 static void
2468 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2469    FILE *yyoutput;
2470    int yytype;
2471    YYSTYPE const * const yyvaluep;
2472 #endif
2314   {
2315    FILE *yyo = yyoutput;
2316    YYUSE (yyo);
# Line 2478 | Line 2319 | yy_symbol_value_print (yyoutput, yytype,
2319   # ifdef YYPRINT
2320    if (yytype < YYNTOKENS)
2321      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2481 # else
2482  YYUSE (yyoutput);
2322   # endif
2323 <  switch (yytype)
2485 <    {
2486 <      default:
2487 <        break;
2488 <    }
2323 >  YYUSE (yytype);
2324   }
2325  
2326  
# Line 2493 | Line 2328 | yy_symbol_value_print (yyoutput, yytype,
2328   | Print this symbol on YYOUTPUT.  |
2329   `--------------------------------*/
2330  
2496 #if (defined __STDC__ || defined __C99__FUNC__ \
2497     || defined __cplusplus || defined _MSC_VER)
2331   static void
2332   yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2500 #else
2501 static void
2502 yy_symbol_print (yyoutput, yytype, yyvaluep)
2503    FILE *yyoutput;
2504    int yytype;
2505    YYSTYPE const * const yyvaluep;
2506 #endif
2333   {
2334 <  if (yytype < YYNTOKENS)
2335 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2510 <  else
2511 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2334 >  YYFPRINTF (yyoutput, "%s %s (",
2335 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2336  
2337    yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2338    YYFPRINTF (yyoutput, ")");
# Line 2519 | Line 2343 | yy_symbol_print (yyoutput, yytype, yyval
2343   | TOP (included).                                                   |
2344   `------------------------------------------------------------------*/
2345  
2522 #if (defined __STDC__ || defined __C99__FUNC__ \
2523     || defined __cplusplus || defined _MSC_VER)
2346   static void
2347   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2526 #else
2527 static void
2528 yy_stack_print (yybottom, yytop)
2529    yytype_int16 *yybottom;
2530    yytype_int16 *yytop;
2531 #endif
2348   {
2349    YYFPRINTF (stderr, "Stack now");
2350    for (; yybottom <= yytop; yybottom++)
# Line 2539 | Line 2355 | yy_stack_print (yybottom, yytop)
2355    YYFPRINTF (stderr, "\n");
2356   }
2357  
2358 < # define YY_STACK_PRINT(Bottom, Top)                            \
2359 < do {                                                            \
2360 <  if (yydebug)                                                  \
2361 <    yy_stack_print ((Bottom), (Top));                           \
2362 < } while (YYID (0))
2358 > # define YY_STACK_PRINT(Bottom, Top)                            \
2359 > do {                                                            \
2360 >  if (yydebug)                                                  \
2361 >    yy_stack_print ((Bottom), (Top));                           \
2362 > } while (0)
2363  
2364  
2365   /*------------------------------------------------.
2366   | Report that the YYRULE is going to be reduced.  |
2367   `------------------------------------------------*/
2368  
2553 #if (defined __STDC__ || defined __C99__FUNC__ \
2554     || defined __cplusplus || defined _MSC_VER)
2555 static void
2556 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2557 #else
2369   static void
2370 < yy_reduce_print (yyvsp, yyrule)
2560 <    YYSTYPE *yyvsp;
2561 <    int yyrule;
2562 < #endif
2370 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2371   {
2372 +  unsigned long int yylno = yyrline[yyrule];
2373    int yynrhs = yyr2[yyrule];
2374    int yyi;
2566  unsigned long int yylno = yyrline[yyrule];
2375    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2376 <             yyrule - 1, yylno);
2376 >             yyrule - 1, yylno);
2377    /* The symbols being reduced.  */
2378    for (yyi = 0; yyi < yynrhs; yyi++)
2379      {
2380        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2381 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2382 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2383 <                                       );
2381 >      yy_symbol_print (stderr,
2382 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2383 >                       &(yyvsp[(yyi + 1) - (yynrhs)])
2384 >                                              );
2385        YYFPRINTF (stderr, "\n");
2386      }
2387   }
2388  
2389 < # define YY_REDUCE_PRINT(Rule)          \
2390 < do {                                    \
2391 <  if (yydebug)                          \
2392 <    yy_reduce_print (yyvsp, Rule); \
2393 < } while (YYID (0))
2389 > # define YY_REDUCE_PRINT(Rule)          \
2390 > do {                                    \
2391 >  if (yydebug)                          \
2392 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2393 > } while (0)
2394  
2395   /* Nonzero means print parse trace.  It is left uninitialized so that
2396     multiple parsers can coexist.  */
# Line 2595 | Line 2404 | int yydebug;
2404  
2405  
2406   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2407 < #ifndef YYINITDEPTH
2407 > #ifndef YYINITDEPTH
2408   # define YYINITDEPTH 200
2409   #endif
2410  
# Line 2618 | Line 2427 | int yydebug;
2427   #   define yystrlen strlen
2428   #  else
2429   /* Return the length of YYSTR.  */
2621 #if (defined __STDC__ || defined __C99__FUNC__ \
2622     || defined __cplusplus || defined _MSC_VER)
2430   static YYSIZE_T
2431   yystrlen (const char *yystr)
2625 #else
2626 static YYSIZE_T
2627 yystrlen (yystr)
2628    const char *yystr;
2629 #endif
2432   {
2433    YYSIZE_T yylen;
2434    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2642 | Line 2444 | yystrlen (yystr)
2444   #  else
2445   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2446     YYDEST.  */
2645 #if (defined __STDC__ || defined __C99__FUNC__ \
2646     || defined __cplusplus || defined _MSC_VER)
2447   static char *
2448   yystpcpy (char *yydest, const char *yysrc)
2649 #else
2650 static char *
2651 yystpcpy (yydest, yysrc)
2652    char *yydest;
2653    const char *yysrc;
2654 #endif
2449   {
2450    char *yyd = yydest;
2451    const char *yys = yysrc;
# Line 2681 | Line 2475 | yytnamerr (char *yyres, const char *yyst
2475        char const *yyp = yystr;
2476  
2477        for (;;)
2478 <        switch (*++yyp)
2479 <          {
2480 <          case '\'':
2481 <          case ',':
2482 <            goto do_not_strip_quotes;
2483 <
2484 <          case '\\':
2485 <            if (*++yyp != '\\')
2486 <              goto do_not_strip_quotes;
2487 <            /* Fall through.  */
2488 <          default:
2489 <            if (yyres)
2490 <              yyres[yyn] = *yyp;
2491 <            yyn++;
2492 <            break;
2493 <
2494 <          case '"':
2495 <            if (yyres)
2496 <              yyres[yyn] = '\0';
2497 <            return yyn;
2498 <          }
2478 >        switch (*++yyp)
2479 >          {
2480 >          case '\'':
2481 >          case ',':
2482 >            goto do_not_strip_quotes;
2483 >
2484 >          case '\\':
2485 >            if (*++yyp != '\\')
2486 >              goto do_not_strip_quotes;
2487 >            /* Fall through.  */
2488 >          default:
2489 >            if (yyres)
2490 >              yyres[yyn] = *yyp;
2491 >            yyn++;
2492 >            break;
2493 >
2494 >          case '"':
2495 >            if (yyres)
2496 >              yyres[yyn] = '\0';
2497 >            return yyn;
2498 >          }
2499      do_not_strip_quotes: ;
2500      }
2501  
# Line 2724 | Line 2518 | static int
2518   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2519                  yytype_int16 *yyssp, int yytoken)
2520   {
2521 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2521 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2522    YYSIZE_T yysize = yysize0;
2729  YYSIZE_T yysize1;
2523    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2524    /* Internationalized format string. */
2525 <  const char *yyformat = YY_NULL;
2525 >  const char *yyformat = YY_NULLPTR;
2526    /* Arguments of yyformat. */
2527    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2528    /* Number of reported tokens (one for the "unexpected", one per
# Line 2737 | Line 2530 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2530    int yycount = 0;
2531  
2532    /* There are many possibilities here to consider:
2740     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2741       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2742       for details.  YYERROR is fine as it does not invoke this
2743       function.
2533       - If this state is a consistent state with a default action, then
2534         the only way this function was invoked is if the default action
2535         is an error action.  In that case, don't check for expected
# Line 2789 | Line 2578 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2578                      break;
2579                    }
2580                  yyarg[yycount++] = yytname[yyx];
2581 <                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2582 <                if (! (yysize <= yysize1
2583 <                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2584 <                  return 2;
2585 <                yysize = yysize1;
2581 >                {
2582 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2583 >                  if (! (yysize <= yysize1
2584 >                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2585 >                    return 2;
2586 >                  yysize = yysize1;
2587 >                }
2588                }
2589          }
2590      }
# Line 2813 | Line 2604 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2604   # undef YYCASE_
2605      }
2606  
2607 <  yysize1 = yysize + yystrlen (yyformat);
2608 <  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2609 <    return 2;
2610 <  yysize = yysize1;
2607 >  {
2608 >    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2609 >    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2610 >      return 2;
2611 >    yysize = yysize1;
2612 >  }
2613  
2614    if (*yymsg_alloc < yysize)
2615      {
# Line 2853 | Line 2646 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2646   | Release the memory associated to this symbol.  |
2647   `-----------------------------------------------*/
2648  
2856 /*ARGSUSED*/
2857 #if (defined __STDC__ || defined __C99__FUNC__ \
2858     || defined __cplusplus || defined _MSC_VER)
2649   static void
2650   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2861 #else
2862 static void
2863 yydestruct (yymsg, yytype, yyvaluep)
2864    const char *yymsg;
2865    int yytype;
2866    YYSTYPE *yyvaluep;
2867 #endif
2651   {
2652    YYUSE (yyvaluep);
2870
2653    if (!yymsg)
2654      yymsg = "Deleting";
2655    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2656  
2657 <  switch (yytype)
2658 <    {
2659 <
2878 <      default:
2879 <        break;
2880 <    }
2657 >  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2658 >  YYUSE (yytype);
2659 >  YY_IGNORE_MAYBE_UNINITIALIZED_END
2660   }
2661  
2662  
# Line 2888 | Line 2667 | int yychar;
2667  
2668   /* The semantic value of the lookahead symbol.  */
2669   YYSTYPE yylval;
2891
2670   /* Number of syntax errors so far.  */
2671   int yynerrs;
2672  
# Line 2897 | Line 2675 | int yynerrs;
2675   | yyparse.  |
2676   `----------*/
2677  
2900 #ifdef YYPARSE_PARAM
2901 #if (defined __STDC__ || defined __C99__FUNC__ \
2902     || defined __cplusplus || defined _MSC_VER)
2903 int
2904 yyparse (void *YYPARSE_PARAM)
2905 #else
2906 int
2907 yyparse (YYPARSE_PARAM)
2908    void *YYPARSE_PARAM;
2909 #endif
2910 #else /* ! YYPARSE_PARAM */
2911 #if (defined __STDC__ || defined __C99__FUNC__ \
2912     || defined __cplusplus || defined _MSC_VER)
2678   int
2679   yyparse (void)
2915 #else
2916 int
2917 yyparse ()
2918
2919 #endif
2920 #endif
2680   {
2681      int yystate;
2682      /* Number of tokens to shift before error messages enabled.  */
2683      int yyerrstatus;
2684  
2685      /* The stacks and their tools:
2686 <       `yyss': related to states.
2687 <       `yyvs': related to semantic values.
2686 >       'yyss': related to states.
2687 >       'yyvs': related to semantic values.
2688  
2689         Refer to the stacks through separate pointers, to allow yyoverflow
2690         to reallocate them elsewhere.  */
# Line 2945 | Line 2704 | yyparse ()
2704    int yyn;
2705    int yyresult;
2706    /* Lookahead token as an internal (translated) token number.  */
2707 <  int yytoken;
2707 >  int yytoken = 0;
2708    /* The variables used to return semantic value and location from the
2709       action routines.  */
2710    YYSTYPE yyval;
# Line 2963 | Line 2722 | yyparse ()
2722       Keep to zero when no symbol should be popped.  */
2723    int yylen = 0;
2724  
2725 <  yytoken = 0;
2726 <  yyss = yyssa;
2968 <  yyvs = yyvsa;
2725 >  yyssp = yyss = yyssa;
2726 >  yyvsp = yyvs = yyvsa;
2727    yystacksize = YYINITDEPTH;
2728  
2729    YYDPRINTF ((stderr, "Starting parse\n"));
# Line 2974 | Line 2732 | yyparse ()
2732    yyerrstatus = 0;
2733    yynerrs = 0;
2734    yychar = YYEMPTY; /* Cause a token to be read.  */
2977
2978  /* Initialize stack pointers.
2979     Waste one element of value and location stack
2980     so that they stay on the same level as the state stack.
2981     The wasted elements are never initialized.  */
2982  yyssp = yyss;
2983  yyvsp = yyvs;
2735    goto yysetstate;
2736  
2737   /*------------------------------------------------------------.
# Line 3001 | Line 2752 | yyparse ()
2752  
2753   #ifdef yyoverflow
2754        {
2755 <        /* Give user a chance to reallocate the stack.  Use copies of
2756 <           these so that the &'s don't force the real ones into
2757 <           memory.  */
2758 <        YYSTYPE *yyvs1 = yyvs;
2759 <        yytype_int16 *yyss1 = yyss;
2760 <
2761 <        /* Each stack pointer address is followed by the size of the
2762 <           data in use in that stack, in bytes.  This used to be a
2763 <           conditional around just the two extra args, but that might
2764 <           be undefined if yyoverflow is a macro.  */
2765 <        yyoverflow (YY_("memory exhausted"),
2766 <                    &yyss1, yysize * sizeof (*yyssp),
2767 <                    &yyvs1, yysize * sizeof (*yyvsp),
2768 <                    &yystacksize);
2755 >        /* Give user a chance to reallocate the stack.  Use copies of
2756 >           these so that the &'s don't force the real ones into
2757 >           memory.  */
2758 >        YYSTYPE *yyvs1 = yyvs;
2759 >        yytype_int16 *yyss1 = yyss;
2760 >
2761 >        /* Each stack pointer address is followed by the size of the
2762 >           data in use in that stack, in bytes.  This used to be a
2763 >           conditional around just the two extra args, but that might
2764 >           be undefined if yyoverflow is a macro.  */
2765 >        yyoverflow (YY_("memory exhausted"),
2766 >                    &yyss1, yysize * sizeof (*yyssp),
2767 >                    &yyvs1, yysize * sizeof (*yyvsp),
2768 >                    &yystacksize);
2769  
2770 <        yyss = yyss1;
2771 <        yyvs = yyvs1;
2770 >        yyss = yyss1;
2771 >        yyvs = yyvs1;
2772        }
2773   #else /* no yyoverflow */
2774   # ifndef YYSTACK_RELOCATE
# Line 3025 | Line 2776 | yyparse ()
2776   # else
2777        /* Extend the stack our own way.  */
2778        if (YYMAXDEPTH <= yystacksize)
2779 <        goto yyexhaustedlab;
2779 >        goto yyexhaustedlab;
2780        yystacksize *= 2;
2781        if (YYMAXDEPTH < yystacksize)
2782 <        yystacksize = YYMAXDEPTH;
2782 >        yystacksize = YYMAXDEPTH;
2783  
2784        {
2785 <        yytype_int16 *yyss1 = yyss;
2786 <        union yyalloc *yyptr =
2787 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2788 <        if (! yyptr)
2789 <          goto yyexhaustedlab;
2790 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2791 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2785 >        yytype_int16 *yyss1 = yyss;
2786 >        union yyalloc *yyptr =
2787 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2788 >        if (! yyptr)
2789 >          goto yyexhaustedlab;
2790 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2791 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2792   #  undef YYSTACK_RELOCATE
2793 <        if (yyss1 != yyssa)
2794 <          YYSTACK_FREE (yyss1);
2793 >        if (yyss1 != yyssa)
2794 >          YYSTACK_FREE (yyss1);
2795        }
2796   # endif
2797   #endif /* no yyoverflow */
# Line 3049 | Line 2800 | yyparse ()
2800        yyvsp = yyvs + yysize - 1;
2801  
2802        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2803 <                  (unsigned long int) yystacksize));
2803 >                  (unsigned long int) yystacksize));
2804  
2805        if (yyss + yystacksize - 1 <= yyssp)
2806 <        YYABORT;
2806 >        YYABORT;
2807      }
2808  
2809    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
# Line 3081 | Line 2832 | yybackup:
2832    if (yychar == YYEMPTY)
2833      {
2834        YYDPRINTF ((stderr, "Reading a token: "));
2835 <      yychar = YYLEX;
2835 >      yychar = yylex ();
2836      }
2837  
2838    if (yychar <= YYEOF)
# Line 3121 | Line 2872 | yybackup:
2872    yychar = YYEMPTY;
2873  
2874    yystate = yyn;
2875 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2876    *++yyvsp = yylval;
2877 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2878  
2879    goto yynewstate;
2880  
# Line 3144 | Line 2897 | yyreduce:
2897    yylen = yyr2[yyn];
2898  
2899    /* If YYLEN is nonzero, implement the default value of the action:
2900 <     `$$ = $1'.
2900 >     '$$ = $1'.
2901  
2902       Otherwise, the following line sets YYVAL to garbage.
2903       This behavior is undocumented and Bison
# Line 3157 | Line 2910 | yyreduce:
2910    YY_REDUCE_PRINT (yyn);
2911    switch (yyn)
2912      {
2913 <        case 26:
2914 < /* Line 1787 of yacc.c  */
3162 < #line 363 "conf_parser.y"
2913 >        case 28:
2914 > #line 412 "conf_parser.y" /* yacc.c:1646  */
2915      { (yyval.number) = 0; }
2916 <    break;
3165 <
3166 <  case 28:
3167 < /* Line 1787 of yacc.c  */
3168 < #line 365 "conf_parser.y"
3169 <    {
3170 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3171 <                }
3172 <    break;
3173 <
3174 <  case 29:
3175 < /* Line 1787 of yacc.c  */
3176 < #line 369 "conf_parser.y"
3177 <    {
3178 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3179 <                }
2916 > #line 2917 "conf_parser.c" /* yacc.c:1646  */
2917      break;
2918  
2919    case 30:
2920 < /* Line 1787 of yacc.c  */
2921 < #line 373 "conf_parser.y"
2922 <    {
3186 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3187 <                }
2920 > #line 413 "conf_parser.y" /* yacc.c:1646  */
2921 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2922 > #line 2923 "conf_parser.c" /* yacc.c:1646  */
2923      break;
2924  
2925    case 31:
2926 < /* Line 1787 of yacc.c  */
2927 < #line 377 "conf_parser.y"
2928 <    {
3194 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3195 <                }
2926 > #line 414 "conf_parser.y" /* yacc.c:1646  */
2927 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2928 > #line 2929 "conf_parser.c" /* yacc.c:1646  */
2929      break;
2930  
2931    case 32:
2932 < /* Line 1787 of yacc.c  */
2933 < #line 381 "conf_parser.y"
2934 <    {
3202 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3203 <                }
2932 > #line 415 "conf_parser.y" /* yacc.c:1646  */
2933 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2934 > #line 2935 "conf_parser.c" /* yacc.c:1646  */
2935      break;
2936  
2937    case 33:
2938 < /* Line 1787 of yacc.c  */
2939 < #line 385 "conf_parser.y"
2940 <    {
3210 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3211 <                }
2938 > #line 416 "conf_parser.y" /* yacc.c:1646  */
2939 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2940 > #line 2941 "conf_parser.c" /* yacc.c:1646  */
2941      break;
2942  
2943    case 34:
2944 < /* Line 1787 of yacc.c  */
2945 < #line 390 "conf_parser.y"
2946 <    { (yyval.number) = 0; }
2944 > #line 417 "conf_parser.y" /* yacc.c:1646  */
2945 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2946 > #line 2947 "conf_parser.c" /* yacc.c:1646  */
2947 >    break;
2948 >
2949 >  case 35:
2950 > #line 418 "conf_parser.y" /* yacc.c:1646  */
2951 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2952 > #line 2953 "conf_parser.c" /* yacc.c:1646  */
2953      break;
2954  
2955    case 36:
2956 < /* Line 1787 of yacc.c  */
2957 < #line 391 "conf_parser.y"
2958 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2956 > #line 419 "conf_parser.y" /* yacc.c:1646  */
2957 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2958 > #line 2959 "conf_parser.c" /* yacc.c:1646  */
2959      break;
2960  
2961    case 37:
2962 < /* Line 1787 of yacc.c  */
2963 < #line 392 "conf_parser.y"
2964 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2962 > #line 420 "conf_parser.y" /* yacc.c:1646  */
2963 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2964 > #line 2965 "conf_parser.c" /* yacc.c:1646  */
2965      break;
2966  
2967    case 38:
2968 < /* Line 1787 of yacc.c  */
2969 < #line 393 "conf_parser.y"
2970 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2968 > #line 423 "conf_parser.y" /* yacc.c:1646  */
2969 >    { (yyval.number) = 0; }
2970 > #line 2971 "conf_parser.c" /* yacc.c:1646  */
2971      break;
2972  
2973 <  case 39:
2974 < /* Line 1787 of yacc.c  */
2975 < #line 394 "conf_parser.y"
2976 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2973 >  case 40:
2974 > #line 424 "conf_parser.y" /* yacc.c:1646  */
2975 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2976 > #line 2977 "conf_parser.c" /* yacc.c:1646  */
2977      break;
2978  
2979 <  case 46:
2980 < /* Line 1787 of yacc.c  */
2981 < #line 408 "conf_parser.y"
2979 >  case 41:
2980 > #line 425 "conf_parser.y" /* yacc.c:1646  */
2981 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2982 > #line 2983 "conf_parser.c" /* yacc.c:1646  */
2983 >    break;
2984 >
2985 >  case 42:
2986 > #line 426 "conf_parser.y" /* yacc.c:1646  */
2987 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2988 > #line 2989 "conf_parser.c" /* yacc.c:1646  */
2989 >    break;
2990 >
2991 >  case 43:
2992 > #line 427 "conf_parser.y" /* yacc.c:1646  */
2993 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2994 > #line 2995 "conf_parser.c" /* yacc.c:1646  */
2995 >    break;
2996 >
2997 >  case 50:
2998 > #line 440 "conf_parser.y" /* yacc.c:1646  */
2999      {
3000    if (conf_parser_ctx.pass == 2)
3001      add_conf_module(libio_basename(yylval.string));
3002   }
3003 + #line 3004 "conf_parser.c" /* yacc.c:1646  */
3004      break;
3005  
3006 <  case 47:
3007 < /* Line 1787 of yacc.c  */
3255 < #line 414 "conf_parser.y"
3006 >  case 51:
3007 > #line 446 "conf_parser.y" /* yacc.c:1646  */
3008      {
3009    if (conf_parser_ctx.pass == 2)
3010      mod_add_path(yylval.string);
3011   }
3012 + #line 3013 "conf_parser.c" /* yacc.c:1646  */
3013      break;
3014  
3015 <  case 71:
3016 < /* Line 1787 of yacc.c  */
3017 < #line 439 "conf_parser.y"
3018 <    {
3019 < #ifdef HAVE_LIBCRYPTO
3020 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3021 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3022 < #endif
3015 >  case 76:
3016 > #line 482 "conf_parser.y" /* yacc.c:1646  */
3017 >    {
3018 >  if (conf_parser_ctx.pass == 2)
3019 >  {
3020 >    xfree(ConfigServerInfo.ssl_certificate_file);
3021 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
3022 >  }
3023   }
3024 + #line 3025 "conf_parser.c" /* yacc.c:1646  */
3025      break;
3026  
3027 <  case 72:
3028 < /* Line 1787 of yacc.c  */
3029 < #line 445 "conf_parser.y"
3030 <    {
3031 < #ifdef HAVE_LIBCRYPTO
3032 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3033 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3034 < #endif
3027 >  case 77:
3028 > #line 491 "conf_parser.y" /* yacc.c:1646  */
3029 >    {
3030 >  if (conf_parser_ctx.pass == 2)
3031 >  {
3032 >    xfree(ConfigServerInfo.rsa_private_key_file);
3033 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3034 >  }
3035   }
3036 + #line 3037 "conf_parser.c" /* yacc.c:1646  */
3037      break;
3038  
3039 <  case 75:
3040 < /* Line 1787 of yacc.c  */
3041 < #line 454 "conf_parser.y"
3042 <    {
3043 < #ifdef HAVE_LIBCRYPTO
3044 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3045 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3046 < #endif
3039 >  case 78:
3040 > #line 500 "conf_parser.y" /* yacc.c:1646  */
3041 >    {
3042 >  if (conf_parser_ctx.pass == 2)
3043 >  {
3044 >    xfree(ConfigServerInfo.ssl_dh_param_file);
3045 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
3046 >  }
3047   }
3048 + #line 3049 "conf_parser.c" /* yacc.c:1646  */
3049      break;
3050  
3051 <  case 76:
3052 < /* Line 1787 of yacc.c  */
3297 < #line 460 "conf_parser.y"
3051 >  case 79:
3052 > #line 509 "conf_parser.y" /* yacc.c:1646  */
3053      {
3054 < #ifdef HAVE_LIBCRYPTO
3055 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3056 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3057 < #endif
3054 >  if (conf_parser_ctx.pass == 2)
3055 >  {
3056 >    xfree(ConfigServerInfo.ssl_cipher_list);
3057 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
3058 >  }
3059   }
3060 + #line 3061 "conf_parser.c" /* yacc.c:1646  */
3061      break;
3062  
3063 <  case 77:
3064 < /* Line 1787 of yacc.c  */
3308 < #line 468 "conf_parser.y"
3063 >  case 80:
3064 > #line 518 "conf_parser.y" /* yacc.c:1646  */
3065      {
3066 < #ifdef HAVE_LIBCRYPTO
3311 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3066 >  if (conf_parser_ctx.pass == 2)
3067    {
3068 <    if (!ServerInfo.rsa_private_key_file)
3069 <    {
3315 <      yyerror("No rsa_private_key_file specified, SSL disabled");
3316 <      break;
3317 <    }
3318 <
3319 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3320 <                                     SSL_FILETYPE_PEM) <= 0 ||
3321 <        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3322 <                                     SSL_FILETYPE_PEM) <= 0)
3323 <    {
3324 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3325 <      break;
3326 <    }
3327 <
3328 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3329 <                                    SSL_FILETYPE_PEM) <= 0 ||
3330 <        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3331 <                                    SSL_FILETYPE_PEM) <= 0)
3332 <    {
3333 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3334 <      break;
3335 <    }
3336 <
3337 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3338 <        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3339 <    {
3340 <      yyerror(ERR_lib_error_string(ERR_get_error()));
3341 <      break;
3342 <    }
3068 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
3069 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
3070    }
3344 #endif
3071   }
3072 + #line 3073 "conf_parser.c" /* yacc.c:1646  */
3073      break;
3074  
3075 <  case 78:
3076 < /* Line 1787 of yacc.c  */
3350 < #line 507 "conf_parser.y"
3075 >  case 81:
3076 > #line 527 "conf_parser.y" /* yacc.c:1646  */
3077      {
3078 < #ifdef HAVE_LIBCRYPTO
3353 <  if (conf_parser_ctx.pass == 1)
3078 >  if (conf_parser_ctx.pass == 2)
3079    {
3080 <    BIO *file;
3081 <
3082 <    if (ServerInfo.rsa_private_key)
3083 <    {
3084 <      RSA_free(ServerInfo.rsa_private_key);
3085 <      ServerInfo.rsa_private_key = NULL;
3361 <    }
3080 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3081 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3082 >  }
3083 > }
3084 > #line 3085 "conf_parser.c" /* yacc.c:1646  */
3085 >    break;
3086  
3087 <    if (ServerInfo.rsa_private_key_file)
3087 >  case 82:
3088 > #line 536 "conf_parser.y" /* yacc.c:1646  */
3089      {
3090 <      MyFree(ServerInfo.rsa_private_key_file);
3091 <      ServerInfo.rsa_private_key_file = NULL;
3092 <    }
3093 <
3094 <    DupString(ServerInfo.rsa_private_key_file, yylval.string);
3090 >  if (conf_parser_ctx.pass == 1)
3091 >    ConfigServerInfo.libgeoip_database_options = 0;
3092 > }
3093 > #line 3094 "conf_parser.c" /* yacc.c:1646  */
3094 >    break;
3095  
3096 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3096 >  case 86:
3097 > #line 543 "conf_parser.y" /* yacc.c:1646  */
3098      {
3099 <      yyerror("File open failed, ignoring");
3100 <      break;
3101 <    }
3102 <
3103 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3104 <
3105 <    BIO_set_close(file, BIO_CLOSE);
3380 <    BIO_free(file);
3099 > #ifdef HAVE_LIBGEOIP
3100 >  if (conf_parser_ctx.pass == 1)
3101 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_STANDARD;
3102 > #endif
3103 > }
3104 > #line 3105 "conf_parser.c" /* yacc.c:1646  */
3105 >    break;
3106  
3107 <    if (ServerInfo.rsa_private_key == NULL)
3107 >  case 87:
3108 > #line 549 "conf_parser.y" /* yacc.c:1646  */
3109      {
3110 <      yyerror("Couldn't extract key, ignoring");
3111 <      break;
3112 <    }
3110 > #ifdef HAVE_LIBGEOIP
3111 >  if (conf_parser_ctx.pass == 1)
3112 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MEMORY_CACHE;
3113 > #endif
3114 > }
3115 > #line 3116 "conf_parser.c" /* yacc.c:1646  */
3116 >    break;
3117  
3118 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3118 >  case 88:
3119 > #line 555 "conf_parser.y" /* yacc.c:1646  */
3120      {
3121 <      RSA_free(ServerInfo.rsa_private_key);
3122 <      ServerInfo.rsa_private_key = NULL;
3123 <
3124 <      yyerror("Invalid key, ignoring");
3125 <      break;
3126 <    }
3121 > #ifdef HAVE_LIBGEOIP
3122 >  if (conf_parser_ctx.pass == 1)
3123 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_MMAP_CACHE;
3124 > #endif
3125 > }
3126 > #line 3127 "conf_parser.c" /* yacc.c:1646  */
3127 >    break;
3128  
3129 <    /* require 2048 bit (256 byte) key */
3130 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3129 >  case 89:
3130 > #line 561 "conf_parser.y" /* yacc.c:1646  */
3131      {
3132 <      RSA_free(ServerInfo.rsa_private_key);
3133 <      ServerInfo.rsa_private_key = NULL;
3134 <
3403 <      yyerror("Not a 2048 bit key, ignoring");
3404 <    }
3405 <  }
3132 > #ifdef HAVE_LIBGEOIP
3133 >  if (conf_parser_ctx.pass == 1)
3134 >    ConfigServerInfo.libgeoip_database_options |= GEOIP_CHECK_CACHE;
3135   #endif
3136   }
3137 + #line 3138 "conf_parser.c" /* yacc.c:1646  */
3138      break;
3139  
3140 <  case 79:
3141 < /* Line 1787 of yacc.c  */
3412 < #line 566 "conf_parser.y"
3140 >  case 90:
3141 > #line 569 "conf_parser.y" /* yacc.c:1646  */
3142      {
3143 < /* TBD - XXX: error reporting */
3415 < #ifdef HAVE_LIBCRYPTO
3416 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3143 >  if (conf_parser_ctx.pass == 2)
3144    {
3145 <    BIO *file = BIO_new_file(yylval.string, "r");
3146 <
3420 <    if (file)
3421 <    {
3422 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3423 <
3424 <      BIO_free(file);
3145 >    xfree(ConfigServerInfo.libgeoip_ipv4_database_file);
3146 >    ConfigServerInfo.libgeoip_ipv4_database_file = xstrdup(yylval.string);
3147  
3148 <      if (dh)
3149 <      {
3150 <        if (DH_size(dh) < 128)
3151 <          ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3430 <        else
3431 <          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3432 <
3433 <        DH_free(dh);
3434 <      }
3435 <    }
3436 <  }
3148 > #ifdef HAVE_LIBGEOIP
3149 >    if (GeoIPv4_ctx)
3150 >      GeoIP_delete(GeoIPv4_ctx);
3151 >    GeoIPv4_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3152   #endif
3153 +  }
3154   }
3155 + #line 3156 "conf_parser.c" /* yacc.c:1646  */
3156      break;
3157  
3158 <  case 80:
3159 < /* Line 1787 of yacc.c  */
3443 < #line 594 "conf_parser.y"
3158 >  case 91:
3159 > #line 584 "conf_parser.y" /* yacc.c:1646  */
3160      {
3161 < #ifdef HAVE_LIBCRYPTO
3162 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3163 <    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3161 >  if (conf_parser_ctx.pass == 2)
3162 >  {
3163 >    xfree(ConfigServerInfo.libgeoip_ipv6_database_file);
3164 >    ConfigServerInfo.libgeoip_ipv6_database_file = xstrdup(yylval.string);
3165 >
3166 > #ifdef HAVE_LIBGEOIP
3167 >    if (GeoIPv6_ctx)
3168 >      GeoIP_delete(GeoIPv6_ctx);
3169 >    GeoIPv6_ctx = GeoIP_open(yylval.string, ConfigServerInfo.libgeoip_database_options);
3170   #endif
3171 +  }
3172   }
3173 + #line 3174 "conf_parser.c" /* yacc.c:1646  */
3174      break;
3175  
3176 <  case 81:
3177 < /* Line 1787 of yacc.c  */
3454 < #line 602 "conf_parser.y"
3176 >  case 92:
3177 > #line 599 "conf_parser.y" /* yacc.c:1646  */
3178      {
3179 <  /* this isn't rehashable */
3180 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3179 >  /* This isn't rehashable */
3180 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.name)
3181    {
3182      if (valid_servname(yylval.string))
3183 <      DupString(ServerInfo.name, yylval.string);
3183 >      ConfigServerInfo.name = xstrdup(yylval.string);
3184      else
3185      {
3186 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::name -- invalid name. Aborting.");
3187 <      exit(0);
3186 >      conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3187 >      exit(EXIT_FAILURE);
3188      }
3189    }
3190   }
3191 + #line 3192 "conf_parser.c" /* yacc.c:1646  */
3192      break;
3193  
3194 <  case 82:
3195 < /* Line 1787 of yacc.c  */
3472 < #line 617 "conf_parser.y"
3194 >  case 93:
3195 > #line 614 "conf_parser.y" /* yacc.c:1646  */
3196      {
3197 <  /* this isn't rehashable */
3198 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3197 >  /* This isn't rehashable */
3198 >  if (conf_parser_ctx.pass == 2 && !ConfigServerInfo.sid)
3199    {
3200      if (valid_sid(yylval.string))
3201 <      DupString(ServerInfo.sid, yylval.string);
3201 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3202      else
3203      {
3204 <      ilog(LOG_TYPE_IRCD, "Ignoring serverinfo::sid -- invalid SID. Aborting.");
3205 <      exit(0);
3204 >      conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3205 >      exit(EXIT_FAILURE);
3206      }
3207    }
3208   }
3209 + #line 3210 "conf_parser.c" /* yacc.c:1646  */
3210      break;
3211  
3212 <  case 83:
3213 < /* Line 1787 of yacc.c  */
3490 < #line 632 "conf_parser.y"
3212 >  case 94:
3213 > #line 629 "conf_parser.y" /* yacc.c:1646  */
3214      {
3215    if (conf_parser_ctx.pass == 2)
3216    {
3217 <    MyFree(ServerInfo.description);
3218 <    DupString(ServerInfo.description,yylval.string);
3217 >    xfree(ConfigServerInfo.description);
3218 >    ConfigServerInfo.description = xstrdup(yylval.string);
3219 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3220    }
3221   }
3222 + #line 3223 "conf_parser.c" /* yacc.c:1646  */
3223      break;
3224  
3225 <  case 84:
3226 < /* Line 1787 of yacc.c  */
3502 < #line 641 "conf_parser.y"
3225 >  case 95:
3226 > #line 639 "conf_parser.y" /* yacc.c:1646  */
3227      {
3228    if (conf_parser_ctx.pass == 2)
3229    {
3230      char *p;
3231  
3232 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3233 <      p = '\0';
3232 >    if ((p = strchr(yylval.string, ' ')))
3233 >      *p = '\0';
3234  
3235 <    MyFree(ServerInfo.network_name);
3236 <    DupString(ServerInfo.network_name, yylval.string);
3235 >    xfree(ConfigServerInfo.network_name);
3236 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3237    }
3238   }
3239 + #line 3240 "conf_parser.c" /* yacc.c:1646  */
3240      break;
3241  
3242 <  case 85:
3243 < /* Line 1787 of yacc.c  */
3519 < #line 655 "conf_parser.y"
3242 >  case 96:
3243 > #line 653 "conf_parser.y" /* yacc.c:1646  */
3244      {
3245 <  if (conf_parser_ctx.pass == 2)
3246 <  {
3247 <    MyFree(ServerInfo.network_desc);
3248 <    DupString(ServerInfo.network_desc, yylval.string);
3249 <  }
3245 >  if (conf_parser_ctx.pass != 2)
3246 >    break;
3247 >
3248 >  xfree(ConfigServerInfo.network_desc);
3249 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3250   }
3251 + #line 3252 "conf_parser.c" /* yacc.c:1646  */
3252      break;
3253  
3254 <  case 86:
3255 < /* Line 1787 of yacc.c  */
3531 < #line 664 "conf_parser.y"
3254 >  case 97:
3255 > #line 662 "conf_parser.y" /* yacc.c:1646  */
3256      {
3257    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3258    {
# Line 3544 | Line 3268 | yyreduce:
3268        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3269      else
3270      {
3271 <      assert(res != NULL);
3271 >      assert(res);
3272  
3273 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3274 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3275 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3273 >      memcpy(&ConfigServerInfo.ip, res->ai_addr, res->ai_addrlen);
3274 >      ConfigServerInfo.ip.ss.ss_family = res->ai_family;
3275 >      ConfigServerInfo.ip.ss_len = res->ai_addrlen;
3276        freeaddrinfo(res);
3277  
3278 <      ServerInfo.specific_ipv4_vhost = 1;
3278 >      ConfigServerInfo.specific_ipv4_vhost = 1;
3279      }
3280    }
3281   }
3282 + #line 3283 "conf_parser.c" /* yacc.c:1646  */
3283      break;
3284  
3285 <  case 87:
3286 < /* Line 1787 of yacc.c  */
3562 < #line 692 "conf_parser.y"
3285 >  case 98:
3286 > #line 690 "conf_parser.y" /* yacc.c:1646  */
3287      {
3564 #ifdef IPV6
3288    if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3289    {
3290      struct addrinfo hints, *res;
# Line 3576 | Line 3299 | yyreduce:
3299        ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3300      else
3301      {
3302 <      assert(res != NULL);
3302 >      assert(res);
3303  
3304 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3305 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3306 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3304 >      memcpy(&ConfigServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3305 >      ConfigServerInfo.ip6.ss.ss_family = res->ai_family;
3306 >      ConfigServerInfo.ip6.ss_len = res->ai_addrlen;
3307        freeaddrinfo(res);
3308  
3309 <      ServerInfo.specific_ipv6_vhost = 1;
3309 >      ConfigServerInfo.specific_ipv6_vhost = 1;
3310      }
3311    }
3589 #endif
3312   }
3313 + #line 3314 "conf_parser.c" /* yacc.c:1646  */
3314      break;
3315  
3316 <  case 88:
3317 < /* Line 1787 of yacc.c  */
3595 < #line 722 "conf_parser.y"
3316 >  case 99:
3317 > #line 718 "conf_parser.y" /* yacc.c:1646  */
3318      {
3319 <  if (conf_parser_ctx.pass == 2)
3319 >  if (conf_parser_ctx.pass != 2)
3320 >    break;
3321 >
3322 >  if ((yyvsp[-1].number) < MAXCLIENTS_MIN)
3323    {
3324 <    recalc_fdlimit(NULL);
3324 >    char buf[IRCD_BUFSIZE] = "";
3325 >
3326 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3327 >    conf_error_report(buf);
3328 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MIN;
3329 >  }
3330 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3331 >  {
3332 >    char buf[IRCD_BUFSIZE] = "";
3333 >
3334 >    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3335 >    conf_error_report(buf);
3336 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3337 >  }
3338 >  else
3339 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3340 > }
3341 > #line 3342 "conf_parser.c" /* yacc.c:1646  */
3342 >    break;
3343  
3344 <    if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3344 >  case 100:
3345 > #line 743 "conf_parser.y" /* yacc.c:1646  */
3346      {
3347 <      char buf[IRCD_BUFSIZE];
3348 <      ircsprintf(buf, "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3349 <      yyerror(buf);
3350 <    }
3351 <    else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3347 >  if (conf_parser_ctx.pass != 2)
3348 >    break;
3349 >
3350 >  if ((yyvsp[-1].number) < 9)
3351 >  {
3352 >    conf_error_report("max_nick_length too low, setting to 9");
3353 >    ConfigServerInfo.max_nick_length = 9;
3354 >  }
3355 >  else if ((yyvsp[-1].number) > NICKLEN)
3356 >  {
3357 >    char buf[IRCD_BUFSIZE] = "";
3358 >
3359 >    snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3360 >    conf_error_report(buf);
3361 >    ConfigServerInfo.max_nick_length = NICKLEN;
3362 >  }
3363 >  else
3364 >    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3365 > }
3366 > #line 3367 "conf_parser.c" /* yacc.c:1646  */
3367 >    break;
3368 >
3369 >  case 101:
3370 > #line 765 "conf_parser.y" /* yacc.c:1646  */
3371      {
3372 <      char buf[IRCD_BUFSIZE];
3373 <      ircsprintf(buf, "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3374 <      yyerror(buf);
3375 <    }
3376 <    else
3377 <      ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3372 >  if (conf_parser_ctx.pass != 2)
3373 >    break;
3374 >
3375 >  if ((yyvsp[-1].number) < 80)
3376 >  {
3377 >    conf_error_report("max_topic_length too low, setting to 80");
3378 >    ConfigServerInfo.max_topic_length = 80;
3379    }
3380 +  else if ((yyvsp[-1].number) > TOPICLEN)
3381 +  {
3382 +    char buf[IRCD_BUFSIZE] = "";
3383 +
3384 +    snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3385 +    conf_error_report(buf);
3386 +    ConfigServerInfo.max_topic_length = TOPICLEN;
3387 +  }
3388 +  else
3389 +    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3390   }
3391 + #line 3392 "conf_parser.c" /* yacc.c:1646  */
3392      break;
3393  
3394 <  case 89:
3395 < /* Line 1787 of yacc.c  */
3621 < #line 745 "conf_parser.y"
3394 >  case 102:
3395 > #line 787 "conf_parser.y" /* yacc.c:1646  */
3396      {
3397    if (conf_parser_ctx.pass == 2)
3398 <    ServerInfo.hub = yylval.number;
3398 >    ConfigServerInfo.hub = yylval.number;
3399   }
3400 + #line 3401 "conf_parser.c" /* yacc.c:1646  */
3401      break;
3402  
3403 <  case 97:
3404 < /* Line 1787 of yacc.c  */
3405 < #line 760 "conf_parser.y"
3403 >  case 110:
3404 > #line 805 "conf_parser.y" /* yacc.c:1646  */
3405 >    {
3406 >  if (conf_parser_ctx.pass != 2)
3407 >    break;
3408 >
3409 >  xfree(ConfigAdminInfo.name);
3410 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3411 > }
3412 > #line 3413 "conf_parser.c" /* yacc.c:1646  */
3413 >    break;
3414 >
3415 >  case 111:
3416 > #line 814 "conf_parser.y" /* yacc.c:1646  */
3417 >    {
3418 >  if (conf_parser_ctx.pass != 2)
3419 >    break;
3420 >
3421 >  xfree(ConfigAdminInfo.email);
3422 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3423 > }
3424 > #line 3425 "conf_parser.c" /* yacc.c:1646  */
3425 >    break;
3426 >
3427 >  case 112:
3428 > #line 823 "conf_parser.y" /* yacc.c:1646  */
3429 >    {
3430 >  if (conf_parser_ctx.pass != 2)
3431 >    break;
3432 >
3433 >  xfree(ConfigAdminInfo.description);
3434 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3435 > }
3436 > #line 3437 "conf_parser.c" /* yacc.c:1646  */
3437 >    break;
3438 >
3439 >  case 113:
3440 > #line 836 "conf_parser.y" /* yacc.c:1646  */
3441      {
3442    if (conf_parser_ctx.pass == 2)
3443 <  {
3634 <    MyFree(AdminInfo.name);
3635 <    DupString(AdminInfo.name, yylval.string);
3636 <  }
3443 >    reset_block_state();
3444   }
3445 + #line 3446 "conf_parser.c" /* yacc.c:1646  */
3446      break;
3447  
3448 <  case 98:
3449 < /* Line 1787 of yacc.c  */
3450 < #line 769 "conf_parser.y"
3448 >  case 114:
3449 > #line 840 "conf_parser.y" /* yacc.c:1646  */
3450 >    {
3451 >  dlink_node *node = NULL;
3452 >
3453 >  if (conf_parser_ctx.pass != 2)
3454 >    break;
3455 >
3456 >  if (!block_state.file.buf[0])
3457 >    break;
3458 >
3459 >  DLINK_FOREACH(node, block_state.mask.list.head)
3460 >    motd_add(node->data, block_state.file.buf);
3461 > }
3462 > #line 3463 "conf_parser.c" /* yacc.c:1646  */
3463 >    break;
3464 >
3465 >  case 120:
3466 > #line 857 "conf_parser.y" /* yacc.c:1646  */
3467      {
3468    if (conf_parser_ctx.pass == 2)
3469 <  {
3646 <    MyFree(AdminInfo.email);
3647 <    DupString(AdminInfo.email, yylval.string);
3648 <  }
3469 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3470   }
3471 + #line 3472 "conf_parser.c" /* yacc.c:1646  */
3472      break;
3473  
3474 <  case 99:
3475 < /* Line 1787 of yacc.c  */
3654 < #line 778 "conf_parser.y"
3474 >  case 121:
3475 > #line 863 "conf_parser.y" /* yacc.c:1646  */
3476      {
3477    if (conf_parser_ctx.pass == 2)
3478 <  {
3658 <    MyFree(AdminInfo.description);
3659 <    DupString(AdminInfo.description, yylval.string);
3660 <  }
3478 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3479   }
3480 + #line 3481 "conf_parser.c" /* yacc.c:1646  */
3481      break;
3482  
3483 <  case 106:
3484 < /* Line 1787 of yacc.c  */
3666 < #line 796 "conf_parser.y"
3483 >  case 122:
3484 > #line 873 "conf_parser.y" /* yacc.c:1646  */
3485      {
3486    if (conf_parser_ctx.pass == 2)
3487 <    ConfigLoggingEntry.use_logging = yylval.number;
3487 >    reset_block_state();
3488   }
3489 + #line 3490 "conf_parser.c" /* yacc.c:1646  */
3490      break;
3491  
3492 <  case 107:
3493 < /* Line 1787 of yacc.c  */
3675 < #line 802 "conf_parser.y"
3492 >  case 123:
3493 > #line 877 "conf_parser.y" /* yacc.c:1646  */
3494      {
3495 <  lfile[0] = '\0';
3496 <  ltype = 0;
3497 <  lsize = 0;
3495 >  if (conf_parser_ctx.pass != 2)
3496 >    break;
3497 >
3498 >  if (!block_state.command.buf[0] ||
3499 >      !block_state.name.buf[0] ||
3500 >      !block_state.nick.buf[0] ||
3501 >      !block_state.host.buf[0])
3502 >    break;
3503 >
3504 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3505 >                  block_state.prepend.buf, block_state.command.buf);
3506   }
3507 + #line 3508 "conf_parser.c" /* yacc.c:1646  */
3508      break;
3509  
3510 <  case 108:
3511 < /* Line 1787 of yacc.c  */
3685 < #line 807 "conf_parser.y"
3510 >  case 131:
3511 > #line 895 "conf_parser.y" /* yacc.c:1646  */
3512      {
3513 <  if (conf_parser_ctx.pass == 2 && ltype > 0)
3514 <    log_add_file(ltype, lsize, lfile);
3513 >  if (conf_parser_ctx.pass == 2)
3514 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3515   }
3516 + #line 3517 "conf_parser.c" /* yacc.c:1646  */
3517      break;
3518  
3519 <  case 115:
3520 < /* Line 1787 of yacc.c  */
3694 < #line 819 "conf_parser.y"
3519 >  case 132:
3520 > #line 901 "conf_parser.y" /* yacc.c:1646  */
3521      {
3522 <  strlcpy(lfile, yylval.string, sizeof(lfile));
3522 >  if (conf_parser_ctx.pass == 2)
3523 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3524   }
3525 + #line 3526 "conf_parser.c" /* yacc.c:1646  */
3526      break;
3527  
3528 <  case 116:
3529 < /* Line 1787 of yacc.c  */
3702 < #line 824 "conf_parser.y"
3528 >  case 133:
3529 > #line 907 "conf_parser.y" /* yacc.c:1646  */
3530      {
3531 <  lsize = (yyvsp[(3) - (4)].number);
3531 >  if (conf_parser_ctx.pass == 2)
3532 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3533   }
3534 + #line 3535 "conf_parser.c" /* yacc.c:1646  */
3535      break;
3536  
3537 <  case 117:
3538 < /* Line 1787 of yacc.c  */
3710 < #line 827 "conf_parser.y"
3537 >  case 134:
3538 > #line 913 "conf_parser.y" /* yacc.c:1646  */
3539      {
3540 <  lsize = 0;
3540 >  if (conf_parser_ctx.pass == 2)
3541 >  {
3542 >    struct split_nuh_item nuh;
3543 >
3544 >    nuh.nuhmask  = yylval.string;
3545 >    nuh.nickptr  = NULL;
3546 >    nuh.userptr  = block_state.nick.buf;
3547 >    nuh.hostptr  = block_state.host.buf;
3548 >    nuh.nicksize = 0;
3549 >    nuh.usersize = sizeof(block_state.nick.buf);
3550 >    nuh.hostsize = sizeof(block_state.host.buf);
3551 >
3552 >    split_nuh(&nuh);
3553 >  }
3554   }
3555 + #line 3556 "conf_parser.c" /* yacc.c:1646  */
3556      break;
3557  
3558 <  case 118:
3559 < /* Line 1787 of yacc.c  */
3718 < #line 832 "conf_parser.y"
3558 >  case 141:
3559 > #line 941 "conf_parser.y" /* yacc.c:1646  */
3560      {
3561    if (conf_parser_ctx.pass == 2)
3562 <    ltype = 0;
3562 >    ConfigLog.use_logging = yylval.number;
3563   }
3564 + #line 3565 "conf_parser.c" /* yacc.c:1646  */
3565      break;
3566  
3567 <  case 122:
3568 < /* Line 1787 of yacc.c  */
3727 < #line 839 "conf_parser.y"
3567 >  case 142:
3568 > #line 947 "conf_parser.y" /* yacc.c:1646  */
3569      {
3570    if (conf_parser_ctx.pass == 2)
3571 <    ltype = LOG_TYPE_USER;
3571 >    reset_block_state();
3572   }
3573 + #line 3574 "conf_parser.c" /* yacc.c:1646  */
3574      break;
3575  
3576 <  case 123:
3577 < /* Line 1787 of yacc.c  */
3578 < #line 843 "conf_parser.y"
3576 >  case 143:
3577 > #line 951 "conf_parser.y" /* yacc.c:1646  */
3578 >    {
3579 >  if (conf_parser_ctx.pass != 2)
3580 >    break;
3581 >
3582 >  if (block_state.type.value && block_state.file.buf[0])
3583 >    log_set_file(block_state.type.value, block_state.size.value,
3584 >                 block_state.file.buf);
3585 > }
3586 > #line 3587 "conf_parser.c" /* yacc.c:1646  */
3587 >    break;
3588 >
3589 >  case 150:
3590 > #line 967 "conf_parser.y" /* yacc.c:1646  */
3591 >    {
3592 >  if (conf_parser_ctx.pass != 2)
3593 >    break;
3594 >
3595 >  strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3596 > }
3597 > #line 3598 "conf_parser.c" /* yacc.c:1646  */
3598 >    break;
3599 >
3600 >  case 151:
3601 > #line 975 "conf_parser.y" /* yacc.c:1646  */
3602 >    {
3603 >  block_state.size.value = (yyvsp[-1].number);
3604 > }
3605 > #line 3606 "conf_parser.c" /* yacc.c:1646  */
3606 >    break;
3607 >
3608 >  case 152:
3609 > #line 978 "conf_parser.y" /* yacc.c:1646  */
3610 >    {
3611 >  block_state.size.value = 0;
3612 > }
3613 > #line 3614 "conf_parser.c" /* yacc.c:1646  */
3614 >    break;
3615 >
3616 >  case 153:
3617 > #line 983 "conf_parser.y" /* yacc.c:1646  */
3618      {
3619    if (conf_parser_ctx.pass == 2)
3620 <    ltype = LOG_TYPE_OPER;
3620 >    block_state.type.value = 0;
3621   }
3622 + #line 3623 "conf_parser.c" /* yacc.c:1646  */
3623      break;
3624  
3625 <  case 124:
3626 < /* Line 1787 of yacc.c  */
3745 < #line 847 "conf_parser.y"
3625 >  case 157:
3626 > #line 990 "conf_parser.y" /* yacc.c:1646  */
3627      {
3628    if (conf_parser_ctx.pass == 2)
3629 <    ltype = LOG_TYPE_GLINE;
3629 >    block_state.type.value = LOG_TYPE_USER;
3630   }
3631 + #line 3632 "conf_parser.c" /* yacc.c:1646  */
3632      break;
3633  
3634 <  case 125:
3635 < /* Line 1787 of yacc.c  */
3754 < #line 851 "conf_parser.y"
3634 >  case 158:
3635 > #line 994 "conf_parser.y" /* yacc.c:1646  */
3636      {
3637    if (conf_parser_ctx.pass == 2)
3638 <    ltype = LOG_TYPE_DLINE;
3638 >    block_state.type.value = LOG_TYPE_OPER;
3639   }
3640 + #line 3641 "conf_parser.c" /* yacc.c:1646  */
3641      break;
3642  
3643 <  case 126:
3644 < /* Line 1787 of yacc.c  */
3763 < #line 855 "conf_parser.y"
3643 >  case 159:
3644 > #line 998 "conf_parser.y" /* yacc.c:1646  */
3645      {
3646    if (conf_parser_ctx.pass == 2)
3647 <    ltype = LOG_TYPE_KLINE;
3647 >    block_state.type.value = LOG_TYPE_XLINE;
3648   }
3649 + #line 3650 "conf_parser.c" /* yacc.c:1646  */
3650      break;
3651  
3652 <  case 127:
3653 < /* Line 1787 of yacc.c  */
3772 < #line 859 "conf_parser.y"
3652 >  case 160:
3653 > #line 1002 "conf_parser.y" /* yacc.c:1646  */
3654      {
3655    if (conf_parser_ctx.pass == 2)
3656 <    ltype = LOG_TYPE_KILL;
3656 >    block_state.type.value = LOG_TYPE_RESV;
3657   }
3658 + #line 3659 "conf_parser.c" /* yacc.c:1646  */
3659      break;
3660  
3661 <  case 128:
3662 < /* Line 1787 of yacc.c  */
3781 < #line 863 "conf_parser.y"
3661 >  case 161:
3662 > #line 1006 "conf_parser.y" /* yacc.c:1646  */
3663      {
3664    if (conf_parser_ctx.pass == 2)
3665 <    ltype = LOG_TYPE_DEBUG;
3665 >    block_state.type.value = LOG_TYPE_DLINE;
3666   }
3667 + #line 3668 "conf_parser.c" /* yacc.c:1646  */
3668      break;
3669  
3670 <  case 129:
3671 < /* Line 1787 of yacc.c  */
3790 < #line 873 "conf_parser.y"
3670 >  case 162:
3671 > #line 1010 "conf_parser.y" /* yacc.c:1646  */
3672      {
3673    if (conf_parser_ctx.pass == 2)
3674 <  {
3794 <    yy_conf = make_conf_item(OPER_TYPE);
3795 <    yy_aconf = map_to_conf(yy_conf);
3796 <    SetConfEncrypted(yy_aconf); /* Yes, the default is encrypted */
3797 <  }
3798 <  else
3799 <  {
3800 <    MyFree(class_name);
3801 <    class_name = NULL;
3802 <  }
3674 >    block_state.type.value = LOG_TYPE_KLINE;
3675   }
3676 + #line 3677 "conf_parser.c" /* yacc.c:1646  */
3677      break;
3678  
3679 <  case 130:
3680 < /* Line 1787 of yacc.c  */
3808 < #line 886 "conf_parser.y"
3679 >  case 163:
3680 > #line 1014 "conf_parser.y" /* yacc.c:1646  */
3681      {
3682    if (conf_parser_ctx.pass == 2)
3683 <  {
3684 <    struct CollectItem *yy_tmp;
3685 <    dlink_node *ptr;
3686 <    dlink_node *next_ptr;
3683 >    block_state.type.value = LOG_TYPE_KILL;
3684 > }
3685 > #line 3686 "conf_parser.c" /* yacc.c:1646  */
3686 >    break;
3687 >
3688 >  case 164:
3689 > #line 1018 "conf_parser.y" /* yacc.c:1646  */
3690 >    {
3691 >  if (conf_parser_ctx.pass == 2)
3692 >    block_state.type.value = LOG_TYPE_DEBUG;
3693 > }
3694 > #line 3695 "conf_parser.c" /* yacc.c:1646  */
3695 >    break;
3696  
3697 <    conf_add_class_to_conf(yy_conf, class_name);
3697 >  case 165:
3698 > #line 1028 "conf_parser.y" /* yacc.c:1646  */
3699 >    {
3700 >  if (conf_parser_ctx.pass != 2)
3701 >    break;
3702  
3703 <    /* Now, make sure there is a copy of the "base" given oper
3704 <     * block in each of the collected copies
3705 <     */
3703 >  reset_block_state();
3704 >  block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3705 > }
3706 > #line 3707 "conf_parser.c" /* yacc.c:1646  */
3707 >    break;
3708  
3709 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
3709 >  case 166:
3710 > #line 1035 "conf_parser.y" /* yacc.c:1646  */
3711      {
3712 <      struct AccessItem *new_aconf;
3825 <      struct ConfItem *new_conf;
3826 <      yy_tmp = ptr->data;
3712 >  dlink_node *node = NULL;
3713  
3714 <      new_conf = make_conf_item(OPER_TYPE);
3715 <      new_aconf = (struct AccessItem *)map_to_conf(new_conf);
3714 >  if (conf_parser_ctx.pass != 2)
3715 >    break;
3716  
3717 <      new_aconf->flags = yy_aconf->flags;
3717 >  if (!block_state.name.buf[0])
3718 >    break;
3719  
3720 <      if (yy_conf->name != NULL)
3721 <        DupString(new_conf->name, yy_conf->name);
3835 <      if (yy_tmp->user != NULL)
3836 <        DupString(new_aconf->user, yy_tmp->user);
3837 <      else
3838 <        DupString(new_aconf->user, "*");
3839 <      if (yy_tmp->host != NULL)
3840 <        DupString(new_aconf->host, yy_tmp->host);
3841 <      else
3842 <        DupString(new_aconf->host, "*");
3720 >  if (!block_state.rpass.buf[0])
3721 >    break;
3722  
3723 <      new_aconf->type = parse_netmask(new_aconf->host, &new_aconf->addr,
3724 <                                     &new_aconf->bits);
3723 >  DLINK_FOREACH(node, block_state.mask.list.head)
3724 >  {
3725 >    struct MaskItem *conf = NULL;
3726 >    struct split_nuh_item nuh;
3727 >    char *s = node->data;
3728  
3729 <      conf_add_class_to_conf(new_conf, class_name);
3730 <      if (yy_aconf->passwd != NULL)
3849 <        DupString(new_aconf->passwd, yy_aconf->passwd);
3850 <
3851 <      new_aconf->port = yy_aconf->port;
3852 < #ifdef HAVE_LIBCRYPTO
3853 <      if (yy_aconf->rsa_public_key_file != NULL)
3854 <      {
3855 <        BIO *file;
3729 >    if (EmptyString(s))
3730 >      continue;
3731  
3732 <        DupString(new_aconf->rsa_public_key_file,
3733 <                  yy_aconf->rsa_public_key_file);
3732 >    nuh.nuhmask  = s;
3733 >    nuh.nickptr  = NULL;
3734 >    nuh.userptr  = block_state.user.buf;
3735 >    nuh.hostptr  = block_state.host.buf;
3736 >    nuh.nicksize = 0;
3737 >    nuh.usersize = sizeof(block_state.user.buf);
3738 >    nuh.hostsize = sizeof(block_state.host.buf);
3739 >    split_nuh(&nuh);
3740  
3741 <        file = BIO_new_file(yy_aconf->rsa_public_key_file, "r");
3742 <        new_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file,
3743 <                                                           NULL, 0, NULL);
3744 <        BIO_set_close(file, BIO_CLOSE);
3864 <        BIO_free(file);
3865 <      }
3866 < #endif
3741 >    conf         = conf_make(CONF_OPER);
3742 >    conf->name   = xstrdup(block_state.name.buf);
3743 >    conf->user   = xstrdup(block_state.user.buf);
3744 >    conf->host   = xstrdup(block_state.host.buf);
3745  
3746 < #ifdef HAVE_LIBCRYPTO
3747 <      if (yy_tmp->name && (yy_tmp->passwd || yy_aconf->rsa_public_key)
3870 <          && yy_tmp->host)
3871 < #else
3872 <      if (yy_tmp->name && yy_tmp->passwd && yy_tmp->host)
3873 < #endif
3874 <      {
3875 <        conf_add_class_to_conf(new_conf, class_name);
3876 <        if (yy_tmp->name != NULL)
3877 <          DupString(new_conf->name, yy_tmp->name);
3878 <      }
3746 >    if (block_state.cert.buf[0])
3747 >      conf->certfp = xstrdup(block_state.cert.buf);
3748  
3749 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
3750 <      free_collect_item(yy_tmp);
3882 <    }
3749 >    if (block_state.rpass.buf[0])
3750 >      conf->passwd = xstrdup(block_state.rpass.buf);
3751  
3752 <    yy_conf = NULL;
3753 <    yy_aconf = NULL;
3752 >    if (block_state.whois.buf[0])
3753 >      conf->whois = xstrdup(block_state.whois.buf);
3754  
3755 +    conf->flags = block_state.flags.value;
3756 +    conf->modes = block_state.modes.value;
3757 +    conf->port  = block_state.port.value;
3758 +    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3759  
3760 <    MyFree(class_name);
3889 <    class_name = NULL;
3760 >    conf_add_class_to_conf(conf, block_state.class.buf);
3761    }
3762   }
3763 + #line 3764 "conf_parser.c" /* yacc.c:1646  */
3764      break;
3765  
3766 <  case 142:
3767 < /* Line 1787 of yacc.c  */
3896 < #line 976 "conf_parser.y"
3766 >  case 180:
3767 > #line 1102 "conf_parser.y" /* yacc.c:1646  */
3768      {
3769    if (conf_parser_ctx.pass == 2)
3770 <  {
3900 <    MyFree(yy_conf->name);
3901 <    DupString(yy_conf->name, yylval.string);
3902 <  }
3770 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3771   }
3772 + #line 3773 "conf_parser.c" /* yacc.c:1646  */
3773      break;
3774  
3775 <  case 143:
3776 < /* Line 1787 of yacc.c  */
3908 < #line 985 "conf_parser.y"
3775 >  case 181:
3776 > #line 1108 "conf_parser.y" /* yacc.c:1646  */
3777      {
3778    if (conf_parser_ctx.pass == 2)
3779 <  {
3780 <    struct split_nuh_item nuh;
3781 <
3782 <    nuh.nuhmask  = yylval.string;
3915 <    nuh.nickptr  = NULL;
3916 <    nuh.userptr  = userbuf;
3917 <    nuh.hostptr  = hostbuf;
3779 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3780 > }
3781 > #line 3782 "conf_parser.c" /* yacc.c:1646  */
3782 >    break;
3783  
3784 <    nuh.nicksize = 0;
3785 <    nuh.usersize = sizeof(userbuf);
3786 <    nuh.hostsize = sizeof(hostbuf);
3784 >  case 182:
3785 > #line 1114 "conf_parser.y" /* yacc.c:1646  */
3786 >    {
3787 >  if (conf_parser_ctx.pass == 2)
3788 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3789 > }
3790 > #line 3791 "conf_parser.c" /* yacc.c:1646  */
3791 >    break;
3792  
3793 <    split_nuh(&nuh);
3793 >  case 183:
3794 > #line 1120 "conf_parser.y" /* yacc.c:1646  */
3795 >    {
3796 >  if (conf_parser_ctx.pass == 2)
3797 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3798 > }
3799 > #line 3800 "conf_parser.c" /* yacc.c:1646  */
3800 >    break;
3801  
3802 <    if (yy_aconf->user == NULL)
3802 >  case 184:
3803 > #line 1126 "conf_parser.y" /* yacc.c:1646  */
3804      {
3805 <      DupString(yy_aconf->user, userbuf);
3806 <      DupString(yy_aconf->host, hostbuf);
3805 >  if (conf_parser_ctx.pass != 2)
3806 >    break;
3807  
3808 <      yy_aconf->type = parse_netmask(yy_aconf->host, &yy_aconf->addr,
3809 <                                    &yy_aconf->bits);
3810 <    }
3811 <    else
3808 >  if (yylval.number)
3809 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3810 >  else
3811 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3812 > }
3813 > #line 3814 "conf_parser.c" /* yacc.c:1646  */
3814 >    break;
3815 >
3816 >  case 185:
3817 > #line 1137 "conf_parser.y" /* yacc.c:1646  */
3818      {
3819 <      struct CollectItem *yy_tmp = MyMalloc(sizeof(struct CollectItem));
3819 >  if (conf_parser_ctx.pass == 2)
3820 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3821 > }
3822 > #line 3823 "conf_parser.c" /* yacc.c:1646  */
3823 >    break;
3824  
3825 <      DupString(yy_tmp->user, userbuf);
3826 <      DupString(yy_tmp->host, hostbuf);
3825 >  case 186:
3826 > #line 1143 "conf_parser.y" /* yacc.c:1646  */
3827 >    {
3828 >  if (conf_parser_ctx.pass != 2)
3829 >    break;
3830  
3831 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
3832 <    }
3833 <  }
3831 >  if (yylval.number)
3832 >    block_state.flags.value |= CONF_FLAGS_SSL;
3833 >  else
3834 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3835   }
3836 + #line 3837 "conf_parser.c" /* yacc.c:1646  */
3837      break;
3838  
3839 <  case 144:
3840 < /* Line 1787 of yacc.c  */
3948 < #line 1022 "conf_parser.y"
3839 >  case 187:
3840 > #line 1154 "conf_parser.y" /* yacc.c:1646  */
3841      {
3842    if (conf_parser_ctx.pass == 2)
3843 <  {
3952 <    if (yy_aconf->passwd != NULL)
3953 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
3954 <
3955 <    MyFree(yy_aconf->passwd);
3956 <    DupString(yy_aconf->passwd, yylval.string);
3957 <  }
3843 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3844   }
3845 + #line 3846 "conf_parser.c" /* yacc.c:1646  */
3846      break;
3847  
3848 <  case 145:
3849 < /* Line 1787 of yacc.c  */
3963 < #line 1034 "conf_parser.y"
3848 >  case 188:
3849 > #line 1160 "conf_parser.y" /* yacc.c:1646  */
3850      {
3851    if (conf_parser_ctx.pass == 2)
3852 <  {
3967 <    if (yylval.number)
3968 <      SetConfEncrypted(yy_aconf);
3969 <    else
3970 <      ClearConfEncrypted(yy_aconf);
3971 <  }
3852 >    block_state.modes.value = 0;
3853   }
3854 + #line 3855 "conf_parser.c" /* yacc.c:1646  */
3855      break;
3856  
3857 <  case 146:
3858 < /* Line 1787 of yacc.c  */
3977 < #line 1045 "conf_parser.y"
3857 >  case 192:
3858 > #line 1167 "conf_parser.y" /* yacc.c:1646  */
3859      {
3979 #ifdef HAVE_LIBCRYPTO
3860    if (conf_parser_ctx.pass == 2)
3861 <  {
3862 <    BIO *file;
3861 >    block_state.modes.value |= UMODE_BOTS;
3862 > }
3863 > #line 3864 "conf_parser.c" /* yacc.c:1646  */
3864 >    break;
3865  
3866 <    if (yy_aconf->rsa_public_key != NULL)
3866 >  case 193:
3867 > #line 1171 "conf_parser.y" /* yacc.c:1646  */
3868      {
3869 <      RSA_free(yy_aconf->rsa_public_key);
3870 <      yy_aconf->rsa_public_key = NULL;
3871 <    }
3869 >  if (conf_parser_ctx.pass == 2)
3870 >    block_state.modes.value |= UMODE_CCONN;
3871 > }
3872 > #line 3873 "conf_parser.c" /* yacc.c:1646  */
3873 >    break;
3874  
3875 <    if (yy_aconf->rsa_public_key_file != NULL)
3875 >  case 194:
3876 > #line 1175 "conf_parser.y" /* yacc.c:1646  */
3877      {
3878 <      MyFree(yy_aconf->rsa_public_key_file);
3879 <      yy_aconf->rsa_public_key_file = NULL;
3880 <    }
3878 >  if (conf_parser_ctx.pass == 2)
3879 >    block_state.modes.value |= UMODE_DEAF;
3880 > }
3881 > #line 3882 "conf_parser.c" /* yacc.c:1646  */
3882 >    break;
3883  
3884 <    DupString(yy_aconf->rsa_public_key_file, yylval.string);
3885 <    file = BIO_new_file(yylval.string, "r");
3884 >  case 195:
3885 > #line 1179 "conf_parser.y" /* yacc.c:1646  */
3886 >    {
3887 >  if (conf_parser_ctx.pass == 2)
3888 >    block_state.modes.value |= UMODE_DEBUG;
3889 > }
3890 > #line 3891 "conf_parser.c" /* yacc.c:1646  */
3891 >    break;
3892  
3893 <    if (file == NULL)
3893 >  case 196:
3894 > #line 1183 "conf_parser.y" /* yacc.c:1646  */
3895      {
3896 <      yyerror("Ignoring rsa_public_key_file -- file doesn't exist");
3897 <      break;
3898 <    }
3896 >  if (conf_parser_ctx.pass == 2)
3897 >    block_state.modes.value |= UMODE_FULL;
3898 > }
3899 > #line 3900 "conf_parser.c" /* yacc.c:1646  */
3900 >    break;
3901  
3902 <    yy_aconf->rsa_public_key = (RSA *)PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL);
3902 >  case 197:
3903 > #line 1187 "conf_parser.y" /* yacc.c:1646  */
3904 >    {
3905 >  if (conf_parser_ctx.pass == 2)
3906 >    block_state.modes.value |= UMODE_HIDDEN;
3907 > }
3908 > #line 3909 "conf_parser.c" /* yacc.c:1646  */
3909 >    break;
3910  
3911 <    if (yy_aconf->rsa_public_key == NULL)
3911 >  case 198:
3912 > #line 1191 "conf_parser.y" /* yacc.c:1646  */
3913      {
3914 <      yyerror("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3915 <      break;
3916 <    }
3914 >  if (conf_parser_ctx.pass == 2)
3915 >    block_state.modes.value |= UMODE_HIDECHANS;
3916 > }
3917 > #line 3918 "conf_parser.c" /* yacc.c:1646  */
3918 >    break;
3919  
3920 <    BIO_set_close(file, BIO_CLOSE);
3921 <    BIO_free(file);
3922 <  }
3923 < #endif /* HAVE_LIBCRYPTO */
3920 >  case 199:
3921 > #line 1195 "conf_parser.y" /* yacc.c:1646  */
3922 >    {
3923 >  if (conf_parser_ctx.pass == 2)
3924 >    block_state.modes.value |= UMODE_HIDEIDLE;
3925   }
3926 + #line 3927 "conf_parser.c" /* yacc.c:1646  */
3927      break;
3928  
3929 <  case 147:
3930 < /* Line 1787 of yacc.c  */
4022 < #line 1087 "conf_parser.y"
3929 >  case 200:
3930 > #line 1199 "conf_parser.y" /* yacc.c:1646  */
3931      {
3932    if (conf_parser_ctx.pass == 2)
3933 <  {
4026 <    MyFree(class_name);
4027 <    DupString(class_name, yylval.string);
4028 <  }
3933 >    block_state.modes.value |= UMODE_SKILL;
3934   }
3935 + #line 3936 "conf_parser.c" /* yacc.c:1646  */
3936      break;
3937  
3938 <  case 148:
3939 < /* Line 1787 of yacc.c  */
4034 < #line 1096 "conf_parser.y"
3938 >  case 201:
3939 > #line 1203 "conf_parser.y" /* yacc.c:1646  */
3940      {
3941    if (conf_parser_ctx.pass == 2)
3942 <    yy_aconf->modes = 0;
3942 >    block_state.modes.value |= UMODE_NCHANGE;
3943   }
3944 + #line 3945 "conf_parser.c" /* yacc.c:1646  */
3945      break;
3946  
3947 <  case 152:
3948 < /* Line 1787 of yacc.c  */
4043 < #line 1103 "conf_parser.y"
3947 >  case 202:
3948 > #line 1207 "conf_parser.y" /* yacc.c:1646  */
3949      {
3950    if (conf_parser_ctx.pass == 2)
3951 <    yy_aconf->modes |= UMODE_BOTS;
3951 >    block_state.modes.value |= UMODE_REJ;
3952   }
3953 + #line 3954 "conf_parser.c" /* yacc.c:1646  */
3954      break;
3955  
3956 <  case 153:
3957 < /* Line 1787 of yacc.c  */
4052 < #line 1107 "conf_parser.y"
3956 >  case 203:
3957 > #line 1211 "conf_parser.y" /* yacc.c:1646  */
3958      {
3959    if (conf_parser_ctx.pass == 2)
3960 <    yy_aconf->modes |= UMODE_CCONN;
3960 >    block_state.modes.value |= UMODE_UNAUTH;
3961   }
3962 + #line 3963 "conf_parser.c" /* yacc.c:1646  */
3963      break;
3964  
3965 <  case 154:
3966 < /* Line 1787 of yacc.c  */
4061 < #line 1111 "conf_parser.y"
3965 >  case 204:
3966 > #line 1215 "conf_parser.y" /* yacc.c:1646  */
3967      {
3968    if (conf_parser_ctx.pass == 2)
3969 <    yy_aconf->modes |= UMODE_CCONN_FULL;
3969 >    block_state.modes.value |= UMODE_SPY;
3970   }
3971 + #line 3972 "conf_parser.c" /* yacc.c:1646  */
3972      break;
3973  
3974 <  case 155:
3975 < /* Line 1787 of yacc.c  */
4070 < #line 1115 "conf_parser.y"
3974 >  case 205:
3975 > #line 1219 "conf_parser.y" /* yacc.c:1646  */
3976      {
3977    if (conf_parser_ctx.pass == 2)
3978 <    yy_aconf->modes |= UMODE_DEAF;
3978 >    block_state.modes.value |= UMODE_EXTERNAL;
3979   }
3980 + #line 3981 "conf_parser.c" /* yacc.c:1646  */
3981      break;
3982  
3983 <  case 156:
3984 < /* Line 1787 of yacc.c  */
4079 < #line 1119 "conf_parser.y"
3983 >  case 206:
3984 > #line 1223 "conf_parser.y" /* yacc.c:1646  */
3985      {
3986    if (conf_parser_ctx.pass == 2)
3987 <    yy_aconf->modes |= UMODE_DEBUG;
3987 >    block_state.modes.value |= UMODE_SERVNOTICE;
3988   }
3989 + #line 3990 "conf_parser.c" /* yacc.c:1646  */
3990      break;
3991  
3992 <  case 157:
3993 < /* Line 1787 of yacc.c  */
4088 < #line 1123 "conf_parser.y"
3992 >  case 207:
3993 > #line 1227 "conf_parser.y" /* yacc.c:1646  */
3994      {
3995    if (conf_parser_ctx.pass == 2)
3996 <    yy_aconf->modes |= UMODE_FULL;
3996 >    block_state.modes.value |= UMODE_INVISIBLE;
3997   }
3998 + #line 3999 "conf_parser.c" /* yacc.c:1646  */
3999      break;
4000  
4001 <  case 158:
4002 < /* Line 1787 of yacc.c  */
4097 < #line 1127 "conf_parser.y"
4001 >  case 208:
4002 > #line 1231 "conf_parser.y" /* yacc.c:1646  */
4003      {
4004    if (conf_parser_ctx.pass == 2)
4005 <    yy_aconf->modes |= UMODE_HIDDEN;
4005 >    block_state.modes.value |= UMODE_WALLOP;
4006   }
4007 + #line 4008 "conf_parser.c" /* yacc.c:1646  */
4008      break;
4009  
4010 <  case 159:
4011 < /* Line 1787 of yacc.c  */
4106 < #line 1131 "conf_parser.y"
4010 >  case 209:
4011 > #line 1235 "conf_parser.y" /* yacc.c:1646  */
4012      {
4013    if (conf_parser_ctx.pass == 2)
4014 <    yy_aconf->modes |= UMODE_SKILL;
4014 >    block_state.modes.value |= UMODE_SOFTCALLERID;
4015   }
4016 + #line 4017 "conf_parser.c" /* yacc.c:1646  */
4017      break;
4018  
4019 <  case 160:
4020 < /* Line 1787 of yacc.c  */
4115 < #line 1135 "conf_parser.y"
4019 >  case 210:
4020 > #line 1239 "conf_parser.y" /* yacc.c:1646  */
4021      {
4022    if (conf_parser_ctx.pass == 2)
4023 <    yy_aconf->modes |= UMODE_NCHANGE;
4023 >    block_state.modes.value |= UMODE_CALLERID;
4024   }
4025 + #line 4026 "conf_parser.c" /* yacc.c:1646  */
4026      break;
4027  
4028 <  case 161:
4029 < /* Line 1787 of yacc.c  */
4124 < #line 1139 "conf_parser.y"
4028 >  case 211:
4029 > #line 1243 "conf_parser.y" /* yacc.c:1646  */
4030      {
4031    if (conf_parser_ctx.pass == 2)
4032 <    yy_aconf->modes |= UMODE_REJ;
4032 >    block_state.modes.value |= UMODE_LOCOPS;
4033   }
4034 + #line 4035 "conf_parser.c" /* yacc.c:1646  */
4035      break;
4036  
4037 <  case 162:
4038 < /* Line 1787 of yacc.c  */
4133 < #line 1143 "conf_parser.y"
4037 >  case 212:
4038 > #line 1247 "conf_parser.y" /* yacc.c:1646  */
4039      {
4040    if (conf_parser_ctx.pass == 2)
4041 <    yy_aconf->modes |= UMODE_UNAUTH;
4041 >    block_state.modes.value |= UMODE_REGONLY;
4042   }
4043 + #line 4044 "conf_parser.c" /* yacc.c:1646  */
4044      break;
4045  
4046 <  case 163:
4047 < /* Line 1787 of yacc.c  */
4142 < #line 1147 "conf_parser.y"
4046 >  case 213:
4047 > #line 1251 "conf_parser.y" /* yacc.c:1646  */
4048      {
4049    if (conf_parser_ctx.pass == 2)
4050 <    yy_aconf->modes |= UMODE_SPY;
4050 >    block_state.modes.value |= UMODE_FARCONNECT;
4051   }
4052 + #line 4053 "conf_parser.c" /* yacc.c:1646  */
4053      break;
4054  
4055 <  case 164:
4056 < /* Line 1787 of yacc.c  */
4151 < #line 1151 "conf_parser.y"
4055 >  case 214:
4056 > #line 1257 "conf_parser.y" /* yacc.c:1646  */
4057      {
4058    if (conf_parser_ctx.pass == 2)
4059 <    yy_aconf->modes |= UMODE_EXTERNAL;
4059 >    block_state.port.value = 0;
4060   }
4061 + #line 4062 "conf_parser.c" /* yacc.c:1646  */
4062      break;
4063  
4064 <  case 165:
4065 < /* Line 1787 of yacc.c  */
4160 < #line 1155 "conf_parser.y"
4064 >  case 218:
4065 > #line 1264 "conf_parser.y" /* yacc.c:1646  */
4066      {
4067    if (conf_parser_ctx.pass == 2)
4068 <    yy_aconf->modes |= UMODE_OPERWALL;
4068 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4069   }
4070 + #line 4071 "conf_parser.c" /* yacc.c:1646  */
4071      break;
4072  
4073 <  case 166:
4074 < /* Line 1787 of yacc.c  */
4169 < #line 1159 "conf_parser.y"
4073 >  case 219:
4074 > #line 1268 "conf_parser.y" /* yacc.c:1646  */
4075      {
4076    if (conf_parser_ctx.pass == 2)
4077 <    yy_aconf->modes |= UMODE_SERVNOTICE;
4077 >    block_state.port.value |= OPER_FLAG_KILL;
4078   }
4079 + #line 4080 "conf_parser.c" /* yacc.c:1646  */
4080      break;
4081  
4082 <  case 167:
4083 < /* Line 1787 of yacc.c  */
4178 < #line 1163 "conf_parser.y"
4082 >  case 220:
4083 > #line 1272 "conf_parser.y" /* yacc.c:1646  */
4084      {
4085    if (conf_parser_ctx.pass == 2)
4086 <    yy_aconf->modes |= UMODE_INVISIBLE;
4086 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4087   }
4088 + #line 4089 "conf_parser.c" /* yacc.c:1646  */
4089      break;
4090  
4091 <  case 168:
4092 < /* Line 1787 of yacc.c  */
4187 < #line 1167 "conf_parser.y"
4091 >  case 221:
4092 > #line 1276 "conf_parser.y" /* yacc.c:1646  */
4093      {
4094    if (conf_parser_ctx.pass == 2)
4095 <    yy_aconf->modes |= UMODE_WALLOP;
4095 >    block_state.port.value |= OPER_FLAG_CONNECT;
4096   }
4097 + #line 4098 "conf_parser.c" /* yacc.c:1646  */
4098      break;
4099  
4100 <  case 169:
4101 < /* Line 1787 of yacc.c  */
4196 < #line 1171 "conf_parser.y"
4100 >  case 222:
4101 > #line 1280 "conf_parser.y" /* yacc.c:1646  */
4102      {
4103    if (conf_parser_ctx.pass == 2)
4104 <    yy_aconf->modes |= UMODE_SOFTCALLERID;
4104 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4105   }
4106 + #line 4107 "conf_parser.c" /* yacc.c:1646  */
4107      break;
4108  
4109 <  case 170:
4110 < /* Line 1787 of yacc.c  */
4205 < #line 1175 "conf_parser.y"
4109 >  case 223:
4110 > #line 1284 "conf_parser.y" /* yacc.c:1646  */
4111      {
4112    if (conf_parser_ctx.pass == 2)
4113 <    yy_aconf->modes |= UMODE_CALLERID;
4113 >    block_state.port.value |= OPER_FLAG_SQUIT;
4114   }
4115 + #line 4116 "conf_parser.c" /* yacc.c:1646  */
4116      break;
4117  
4118 <  case 171:
4119 < /* Line 1787 of yacc.c  */
4214 < #line 1179 "conf_parser.y"
4118 >  case 224:
4119 > #line 1288 "conf_parser.y" /* yacc.c:1646  */
4120      {
4121    if (conf_parser_ctx.pass == 2)
4122 <    yy_aconf->modes |= UMODE_LOCOPS;
4122 >    block_state.port.value |= OPER_FLAG_KLINE;
4123   }
4124 + #line 4125 "conf_parser.c" /* yacc.c:1646  */
4125      break;
4126  
4127 <  case 172:
4128 < /* Line 1787 of yacc.c  */
4223 < #line 1185 "conf_parser.y"
4127 >  case 225:
4128 > #line 1292 "conf_parser.y" /* yacc.c:1646  */
4129      {
4130    if (conf_parser_ctx.pass == 2)
4131 <    yy_aconf->port = 0;
4131 >    block_state.port.value |= OPER_FLAG_UNKLINE;
4132   }
4133 + #line 4134 "conf_parser.c" /* yacc.c:1646  */
4134      break;
4135  
4136 <  case 176:
4137 < /* Line 1787 of yacc.c  */
4232 < #line 1192 "conf_parser.y"
4136 >  case 226:
4137 > #line 1296 "conf_parser.y" /* yacc.c:1646  */
4138      {
4139    if (conf_parser_ctx.pass == 2)
4140 <    yy_aconf->port |= OPER_FLAG_GLOBAL_KILL;
4140 >    block_state.port.value |= OPER_FLAG_DLINE;
4141   }
4142 + #line 4143 "conf_parser.c" /* yacc.c:1646  */
4143      break;
4144  
4145 <  case 177:
4146 < /* Line 1787 of yacc.c  */
4241 < #line 1196 "conf_parser.y"
4145 >  case 227:
4146 > #line 1300 "conf_parser.y" /* yacc.c:1646  */
4147      {
4148    if (conf_parser_ctx.pass == 2)
4149 <    yy_aconf->port |= OPER_FLAG_REMOTE;
4149 >    block_state.port.value |= OPER_FLAG_UNDLINE;
4150   }
4151 + #line 4152 "conf_parser.c" /* yacc.c:1646  */
4152      break;
4153  
4154 <  case 178:
4155 < /* Line 1787 of yacc.c  */
4250 < #line 1200 "conf_parser.y"
4154 >  case 228:
4155 > #line 1304 "conf_parser.y" /* yacc.c:1646  */
4156      {
4157    if (conf_parser_ctx.pass == 2)
4158 <    yy_aconf->port |= OPER_FLAG_K;
4158 >    block_state.port.value |= OPER_FLAG_XLINE;
4159   }
4160 + #line 4161 "conf_parser.c" /* yacc.c:1646  */
4161      break;
4162  
4163 <  case 179:
4164 < /* Line 1787 of yacc.c  */
4259 < #line 1204 "conf_parser.y"
4163 >  case 229:
4164 > #line 1308 "conf_parser.y" /* yacc.c:1646  */
4165      {
4166    if (conf_parser_ctx.pass == 2)
4167 <    yy_aconf->port |= OPER_FLAG_UNKLINE;
4167 >    block_state.port.value |= OPER_FLAG_UNXLINE;
4168   }
4169 + #line 4170 "conf_parser.c" /* yacc.c:1646  */
4170      break;
4171  
4172 <  case 180:
4173 < /* Line 1787 of yacc.c  */
4268 < #line 1208 "conf_parser.y"
4172 >  case 230:
4173 > #line 1312 "conf_parser.y" /* yacc.c:1646  */
4174      {
4175    if (conf_parser_ctx.pass == 2)
4176 <    yy_aconf->port |= OPER_FLAG_DLINE;
4176 >    block_state.port.value |= OPER_FLAG_DIE;
4177   }
4178 + #line 4179 "conf_parser.c" /* yacc.c:1646  */
4179      break;
4180  
4181 <  case 181:
4182 < /* Line 1787 of yacc.c  */
4277 < #line 1212 "conf_parser.y"
4181 >  case 231:
4182 > #line 1316 "conf_parser.y" /* yacc.c:1646  */
4183      {
4184    if (conf_parser_ctx.pass == 2)
4185 <    yy_aconf->port |= OPER_FLAG_UNDLINE;
4185 >    block_state.port.value |= OPER_FLAG_RESTART;
4186   }
4187 + #line 4188 "conf_parser.c" /* yacc.c:1646  */
4188      break;
4189  
4190 <  case 182:
4191 < /* Line 1787 of yacc.c  */
4286 < #line 1216 "conf_parser.y"
4190 >  case 232:
4191 > #line 1320 "conf_parser.y" /* yacc.c:1646  */
4192      {
4193    if (conf_parser_ctx.pass == 2)
4194 <    yy_aconf->port |= OPER_FLAG_X;
4194 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
4195   }
4196 + #line 4197 "conf_parser.c" /* yacc.c:1646  */
4197      break;
4198  
4199 <  case 183:
4200 < /* Line 1787 of yacc.c  */
4295 < #line 1220 "conf_parser.y"
4199 >  case 233:
4200 > #line 1324 "conf_parser.y" /* yacc.c:1646  */
4201      {
4202    if (conf_parser_ctx.pass == 2)
4203 <    yy_aconf->port |= OPER_FLAG_GLINE;
4203 >    block_state.port.value |= OPER_FLAG_REHASH;
4204   }
4205 + #line 4206 "conf_parser.c" /* yacc.c:1646  */
4206      break;
4207  
4208 <  case 184:
4209 < /* Line 1787 of yacc.c  */
4304 < #line 1224 "conf_parser.y"
4208 >  case 234:
4209 > #line 1328 "conf_parser.y" /* yacc.c:1646  */
4210      {
4211    if (conf_parser_ctx.pass == 2)
4212 <    yy_aconf->port |= OPER_FLAG_DIE;
4212 >    block_state.port.value |= OPER_FLAG_ADMIN;
4213   }
4214 + #line 4215 "conf_parser.c" /* yacc.c:1646  */
4215      break;
4216  
4217 <  case 185:
4218 < /* Line 1787 of yacc.c  */
4313 < #line 1228 "conf_parser.y"
4217 >  case 235:
4218 > #line 1332 "conf_parser.y" /* yacc.c:1646  */
4219      {
4220    if (conf_parser_ctx.pass == 2)
4221 <    yy_aconf->port |= OPER_FLAG_RESTART;
4221 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4222   }
4223 + #line 4224 "conf_parser.c" /* yacc.c:1646  */
4224      break;
4225  
4226 <  case 186:
4227 < /* Line 1787 of yacc.c  */
4322 < #line 1232 "conf_parser.y"
4226 >  case 236:
4227 > #line 1336 "conf_parser.y" /* yacc.c:1646  */
4228      {
4229    if (conf_parser_ctx.pass == 2)
4230 <    yy_aconf->port |= OPER_FLAG_REHASH;
4230 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4231   }
4232 + #line 4233 "conf_parser.c" /* yacc.c:1646  */
4233      break;
4234  
4235 <  case 187:
4236 < /* Line 1787 of yacc.c  */
4331 < #line 1236 "conf_parser.y"
4235 >  case 237:
4236 > #line 1340 "conf_parser.y" /* yacc.c:1646  */
4237      {
4238    if (conf_parser_ctx.pass == 2)
4239 <    yy_aconf->port |= OPER_FLAG_ADMIN;
4239 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4240   }
4241 + #line 4242 "conf_parser.c" /* yacc.c:1646  */
4242      break;
4243  
4244 <  case 188:
4245 < /* Line 1787 of yacc.c  */
4340 < #line 1240 "conf_parser.y"
4244 >  case 238:
4245 > #line 1344 "conf_parser.y" /* yacc.c:1646  */
4246      {
4247    if (conf_parser_ctx.pass == 2)
4248 <    yy_aconf->port |= OPER_FLAG_N;
4248 >    block_state.port.value |= OPER_FLAG_REMOTEBAN;
4249   }
4250 + #line 4251 "conf_parser.c" /* yacc.c:1646  */
4251      break;
4252  
4253 <  case 189:
4254 < /* Line 1787 of yacc.c  */
4349 < #line 1244 "conf_parser.y"
4253 >  case 239:
4254 > #line 1348 "conf_parser.y" /* yacc.c:1646  */
4255      {
4256    if (conf_parser_ctx.pass == 2)
4257 <    yy_aconf->port |= OPER_FLAG_OPERWALL;
4257 >    block_state.port.value |= OPER_FLAG_SET;
4258   }
4259 + #line 4260 "conf_parser.c" /* yacc.c:1646  */
4260      break;
4261  
4262 <  case 190:
4263 < /* Line 1787 of yacc.c  */
4358 < #line 1248 "conf_parser.y"
4262 >  case 240:
4263 > #line 1352 "conf_parser.y" /* yacc.c:1646  */
4264      {
4265    if (conf_parser_ctx.pass == 2)
4266 <    yy_aconf->port |= OPER_FLAG_GLOBOPS;
4266 >    block_state.port.value |= OPER_FLAG_MODULE;
4267   }
4268 + #line 4269 "conf_parser.c" /* yacc.c:1646  */
4269      break;
4270  
4271 <  case 191:
4272 < /* Line 1787 of yacc.c  */
4367 < #line 1252 "conf_parser.y"
4271 >  case 241:
4272 > #line 1356 "conf_parser.y" /* yacc.c:1646  */
4273      {
4274    if (conf_parser_ctx.pass == 2)
4275 <    yy_aconf->port |= OPER_FLAG_OPER_SPY;
4275 >    block_state.port.value |= OPER_FLAG_OPME;
4276   }
4277 + #line 4278 "conf_parser.c" /* yacc.c:1646  */
4278      break;
4279  
4280 <  case 192:
4281 < /* Line 1787 of yacc.c  */
4376 < #line 1256 "conf_parser.y"
4280 >  case 242:
4281 > #line 1360 "conf_parser.y" /* yacc.c:1646  */
4282      {
4283    if (conf_parser_ctx.pass == 2)
4284 <    yy_aconf->port |= OPER_FLAG_REMOTEBAN;
4284 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4285   }
4286 + #line 4287 "conf_parser.c" /* yacc.c:1646  */
4287      break;
4288  
4289 <  case 193:
4290 < /* Line 1787 of yacc.c  */
4385 < #line 1260 "conf_parser.y"
4289 >  case 243:
4290 > #line 1364 "conf_parser.y" /* yacc.c:1646  */
4291      {
4292    if (conf_parser_ctx.pass == 2)
4293 <    yy_aconf->port |= OPER_FLAG_SET;
4293 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4294   }
4295 + #line 4296 "conf_parser.c" /* yacc.c:1646  */
4296      break;
4297  
4298 <  case 194:
4299 < /* Line 1787 of yacc.c  */
4394 < #line 1264 "conf_parser.y"
4298 >  case 244:
4299 > #line 1368 "conf_parser.y" /* yacc.c:1646  */
4300      {
4301    if (conf_parser_ctx.pass == 2)
4302 <    yy_aconf->port |= OPER_FLAG_MODULE;
4302 >    block_state.port.value |= OPER_FLAG_RESV;
4303   }
4304 + #line 4305 "conf_parser.c" /* yacc.c:1646  */
4305      break;
4306  
4307 <  case 195:
4308 < /* Line 1787 of yacc.c  */
4403 < #line 1274 "conf_parser.y"
4307 >  case 245:
4308 > #line 1372 "conf_parser.y" /* yacc.c:1646  */
4309      {
4310 <  if (conf_parser_ctx.pass == 1)
4311 <  {
4407 <    yy_conf = make_conf_item(CLASS_TYPE);
4408 <    yy_class = map_to_conf(yy_conf);
4409 <  }
4310 >  if (conf_parser_ctx.pass == 2)
4311 >    block_state.port.value |= OPER_FLAG_UNRESV;
4312   }
4313 + #line 4314 "conf_parser.c" /* yacc.c:1646  */
4314      break;
4315  
4316 <  case 196:
4317 < /* Line 1787 of yacc.c  */
4415 < #line 1281 "conf_parser.y"
4316 >  case 246:
4317 > #line 1376 "conf_parser.y" /* yacc.c:1646  */
4318      {
4319 <  if (conf_parser_ctx.pass == 1)
4320 <  {
4321 <    struct ConfItem *cconf = NULL;
4322 <    struct ClassItem *class = NULL;
4319 >  if (conf_parser_ctx.pass == 2)
4320 >    block_state.port.value |= OPER_FLAG_CLOSE;
4321 > }
4322 > #line 4323 "conf_parser.c" /* yacc.c:1646  */
4323 >    break;
4324  
4325 <    if (yy_class_name == NULL)
4326 <      delete_conf_item(yy_conf);
4424 <    else
4325 >  case 247:
4326 > #line 1386 "conf_parser.y" /* yacc.c:1646  */
4327      {
4328 <      cconf = find_exact_name_conf(CLASS_TYPE, NULL, yy_class_name, NULL, NULL);
4328 >  if (conf_parser_ctx.pass != 1)
4329 >    break;
4330  
4331 <      if (cconf != NULL)                /* The class existed already */
4332 <      {
4333 <        int user_count = 0;
4331 >  reset_block_state();
4332 >
4333 >  block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4334 >  block_state.con_freq.value  = DEFAULT_CONNECTFREQUENCY;
4335 >  block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4336 >  block_state.max_sendq.value = DEFAULT_SENDQ;
4337 >  block_state.max_recvq.value = DEFAULT_RECVQ;
4338 > }
4339 > #line 4340 "conf_parser.c" /* yacc.c:1646  */
4340 >    break;
4341  
4342 <        rebuild_cidr_class(cconf, yy_class);
4342 >  case 248:
4343 > #line 1398 "conf_parser.y" /* yacc.c:1646  */
4344 >    {
4345 >  struct ClassItem *class = NULL;
4346  
4347 <        class = map_to_conf(cconf);
4347 >  if (conf_parser_ctx.pass != 1)
4348 >    break;
4349  
4350 <        user_count = class->curr_user_count;
4351 <        memcpy(class, yy_class, sizeof(*class));
4438 <        class->curr_user_count = user_count;
4439 <        class->active = 1;
4350 >  if (!block_state.class.buf[0])
4351 >    break;
4352  
4353 <        delete_conf_item(yy_conf);
4353 >  if (!(class = class_find(block_state.class.buf, 0)))
4354 >    class = class_make();
4355  
4356 <        MyFree(cconf->name);            /* Allows case change of class name */
4357 <        cconf->name = yy_class_name;
4358 <      }
4359 <      else      /* Brand new class */
4360 <      {
4361 <        MyFree(yy_conf->name);          /* just in case it was allocated */
4362 <        yy_conf->name = yy_class_name;
4363 <        yy_class->active = 1;
4364 <      }
4365 <    }
4356 >  class->active = 1;
4357 >  xfree(class->name);
4358 >  class->name = xstrdup(block_state.class.buf);
4359 >  class->ping_freq = block_state.ping_freq.value;
4360 >  class->max_perip = block_state.max_perip.value;
4361 >  class->con_freq = block_state.con_freq.value;
4362 >  class->max_total = block_state.max_total.value;
4363 >  class->max_global = block_state.max_global.value;
4364 >  class->max_local = block_state.max_local.value;
4365 >  class->max_sendq = block_state.max_sendq.value;
4366 >  class->max_recvq = block_state.max_recvq.value;
4367 >  class->max_channels = block_state.max_channels.value;
4368  
4369 <    yy_class_name = NULL;
4369 >  if (block_state.min_idle.value > block_state.max_idle.value)
4370 >  {
4371 >    block_state.min_idle.value = 0;
4372 >    block_state.max_idle.value = 0;
4373 >    block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4374    }
4375 +
4376 +  class->flags = block_state.flags.value;
4377 +  class->min_idle = block_state.min_idle.value;
4378 +  class->max_idle = block_state.max_idle.value;
4379 +
4380 +  rebuild_cidr_list(class);
4381 +
4382 +  class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4383 +  class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4384 +  class->number_per_cidr = block_state.number_per_cidr.value;
4385   }
4386 + #line 4387 "conf_parser.c" /* yacc.c:1646  */
4387      break;
4388  
4389 <  case 214:
4390 < /* Line 1787 of yacc.c  */
4461 < #line 1339 "conf_parser.y"
4389 >  case 268:
4390 > #line 1461 "conf_parser.y" /* yacc.c:1646  */
4391      {
4392    if (conf_parser_ctx.pass == 1)
4393 <  {
4465 <    MyFree(yy_class_name);
4466 <    DupString(yy_class_name, yylval.string);
4467 <  }
4393 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4394   }
4395 + #line 4396 "conf_parser.c" /* yacc.c:1646  */
4396      break;
4397  
4398 <  case 215:
4399 < /* Line 1787 of yacc.c  */
4473 < #line 1348 "conf_parser.y"
4398 >  case 269:
4399 > #line 1467 "conf_parser.y" /* yacc.c:1646  */
4400      {
4401    if (conf_parser_ctx.pass == 1)
4402 <    yy_class->ping_freq = (yyvsp[(3) - (4)].number);
4402 >    block_state.ping_freq.value = (yyvsp[-1].number);
4403   }
4404 + #line 4405 "conf_parser.c" /* yacc.c:1646  */
4405      break;
4406  
4407 <  case 216:
4408 < /* Line 1787 of yacc.c  */
4482 < #line 1354 "conf_parser.y"
4407 >  case 270:
4408 > #line 1473 "conf_parser.y" /* yacc.c:1646  */
4409      {
4410    if (conf_parser_ctx.pass == 1)
4411 <    yy_class->ping_warning = (yyvsp[(3) - (4)].number);
4411 >    block_state.max_perip.value = (yyvsp[-1].number);
4412   }
4413 + #line 4414 "conf_parser.c" /* yacc.c:1646  */
4414      break;
4415  
4416 <  case 217:
4417 < /* Line 1787 of yacc.c  */
4491 < #line 1360 "conf_parser.y"
4416 >  case 271:
4417 > #line 1479 "conf_parser.y" /* yacc.c:1646  */
4418      {
4419    if (conf_parser_ctx.pass == 1)
4420 <    yy_class->max_perip = (yyvsp[(3) - (4)].number);
4420 >    block_state.con_freq.value = (yyvsp[-1].number);
4421   }
4422 + #line 4423 "conf_parser.c" /* yacc.c:1646  */
4423      break;
4424  
4425 <  case 218:
4426 < /* Line 1787 of yacc.c  */
4500 < #line 1366 "conf_parser.y"
4425 >  case 272:
4426 > #line 1485 "conf_parser.y" /* yacc.c:1646  */
4427      {
4428    if (conf_parser_ctx.pass == 1)
4429 <    yy_class->con_freq = (yyvsp[(3) - (4)].number);
4429 >    block_state.max_channels.value = (yyvsp[-1].number);
4430   }
4431 + #line 4432 "conf_parser.c" /* yacc.c:1646  */
4432      break;
4433  
4434 <  case 219:
4435 < /* Line 1787 of yacc.c  */
4509 < #line 1372 "conf_parser.y"
4434 >  case 273:
4435 > #line 1491 "conf_parser.y" /* yacc.c:1646  */
4436      {
4437    if (conf_parser_ctx.pass == 1)
4438 <    yy_class->max_total = (yyvsp[(3) - (4)].number);
4438 >    block_state.max_total.value = (yyvsp[-1].number);
4439   }
4440 + #line 4441 "conf_parser.c" /* yacc.c:1646  */
4441      break;
4442  
4443 <  case 220:
4444 < /* Line 1787 of yacc.c  */
4518 < #line 1378 "conf_parser.y"
4443 >  case 274:
4444 > #line 1497 "conf_parser.y" /* yacc.c:1646  */
4445      {
4446    if (conf_parser_ctx.pass == 1)
4447 <    yy_class->max_global = (yyvsp[(3) - (4)].number);
4447 >    block_state.max_global.value = (yyvsp[-1].number);
4448   }
4449 + #line 4450 "conf_parser.c" /* yacc.c:1646  */
4450      break;
4451  
4452 <  case 221:
4453 < /* Line 1787 of yacc.c  */
4527 < #line 1384 "conf_parser.y"
4452 >  case 275:
4453 > #line 1503 "conf_parser.y" /* yacc.c:1646  */
4454      {
4455    if (conf_parser_ctx.pass == 1)
4456 <    yy_class->max_local = (yyvsp[(3) - (4)].number);
4456 >    block_state.max_local.value = (yyvsp[-1].number);
4457   }
4458 + #line 4459 "conf_parser.c" /* yacc.c:1646  */
4459      break;
4460  
4461 <  case 222:
4462 < /* Line 1787 of yacc.c  */
4536 < #line 1390 "conf_parser.y"
4461 >  case 276:
4462 > #line 1509 "conf_parser.y" /* yacc.c:1646  */
4463      {
4464    if (conf_parser_ctx.pass == 1)
4465 <    yy_class->max_ident = (yyvsp[(3) - (4)].number);
4465 >    block_state.max_sendq.value = (yyvsp[-1].number);
4466   }
4467 + #line 4468 "conf_parser.c" /* yacc.c:1646  */
4468      break;
4469  
4470 <  case 223:
4471 < /* Line 1787 of yacc.c  */
4545 < #line 1396 "conf_parser.y"
4470 >  case 277:
4471 > #line 1515 "conf_parser.y" /* yacc.c:1646  */
4472      {
4473    if (conf_parser_ctx.pass == 1)
4474 <    yy_class->max_sendq = (yyvsp[(3) - (4)].number);
4474 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4475 >      block_state.max_recvq.value = (yyvsp[-1].number);
4476   }
4477 + #line 4478 "conf_parser.c" /* yacc.c:1646  */
4478      break;
4479  
4480 <  case 224:
4481 < /* Line 1787 of yacc.c  */
4554 < #line 1402 "conf_parser.y"
4480 >  case 278:
4481 > #line 1522 "conf_parser.y" /* yacc.c:1646  */
4482      {
4483    if (conf_parser_ctx.pass == 1)
4484 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4558 <      yy_class->max_recvq = (yyvsp[(3) - (4)].number);
4484 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4485   }
4486 + #line 4487 "conf_parser.c" /* yacc.c:1646  */
4487      break;
4488  
4489 <  case 225:
4490 < /* Line 1787 of yacc.c  */
4564 < #line 1409 "conf_parser.y"
4489 >  case 279:
4490 > #line 1528 "conf_parser.y" /* yacc.c:1646  */
4491      {
4492    if (conf_parser_ctx.pass == 1)
4493 <    yy_class->cidr_bitlen_ipv4 = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4493 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4494   }
4495 + #line 4496 "conf_parser.c" /* yacc.c:1646  */
4496      break;
4497  
4498 <  case 226:
4499 < /* Line 1787 of yacc.c  */
4573 < #line 1415 "conf_parser.y"
4498 >  case 280:
4499 > #line 1534 "conf_parser.y" /* yacc.c:1646  */
4500      {
4501    if (conf_parser_ctx.pass == 1)
4502 <    yy_class->cidr_bitlen_ipv6 = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4502 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4503   }
4504 + #line 4505 "conf_parser.c" /* yacc.c:1646  */
4505      break;
4506  
4507 <  case 227:
4508 < /* Line 1787 of yacc.c  */
4509 < #line 1421 "conf_parser.y"
4507 >  case 281:
4508 > #line 1540 "conf_parser.y" /* yacc.c:1646  */
4509 >    {
4510 >  if (conf_parser_ctx.pass != 1)
4511 >    break;
4512 >
4513 >  block_state.min_idle.value = (yyvsp[-1].number);
4514 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4515 > }
4516 > #line 4517 "conf_parser.c" /* yacc.c:1646  */
4517 >    break;
4518 >
4519 >  case 282:
4520 > #line 1549 "conf_parser.y" /* yacc.c:1646  */
4521 >    {
4522 >  if (conf_parser_ctx.pass != 1)
4523 >    break;
4524 >
4525 >  block_state.max_idle.value = (yyvsp[-1].number);
4526 >  block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4527 > }
4528 > #line 4529 "conf_parser.c" /* yacc.c:1646  */
4529 >    break;
4530 >
4531 >  case 283:
4532 > #line 1558 "conf_parser.y" /* yacc.c:1646  */
4533      {
4534    if (conf_parser_ctx.pass == 1)
4535 <    yy_class->number_per_cidr = (yyvsp[(3) - (4)].number);
4535 >    block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4536   }
4537 + #line 4538 "conf_parser.c" /* yacc.c:1646  */
4538      break;
4539  
4540 <  case 228:
4541 < /* Line 1787 of yacc.c  */
4591 < #line 1430 "conf_parser.y"
4540 >  case 287:
4541 > #line 1565 "conf_parser.y" /* yacc.c:1646  */
4542      {
4543 <  if (conf_parser_ctx.pass == 2)
4544 <  {
4595 <    listener_address = NULL;
4596 <    listener_flags = 0;
4597 <  }
4543 >  if (conf_parser_ctx.pass == 1)
4544 >    block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4545   }
4546 + #line 4547 "conf_parser.c" /* yacc.c:1646  */
4547      break;
4548  
4549 <  case 229:
4550 < /* Line 1787 of yacc.c  */
4551 < #line 1437 "conf_parser.y"
4549 >  case 288:
4550 > #line 1569 "conf_parser.y" /* yacc.c:1646  */
4551 >    {
4552 >  if (conf_parser_ctx.pass == 1)
4553 >    block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4554 > }
4555 > #line 4556 "conf_parser.c" /* yacc.c:1646  */
4556 >    break;
4557 >
4558 >  case 289:
4559 > #line 1579 "conf_parser.y" /* yacc.c:1646  */
4560      {
4561    if (conf_parser_ctx.pass == 2)
4562 <  {
4607 <    MyFree(listener_address);
4608 <    listener_address = NULL;
4609 <  }
4562 >    reset_block_state();
4563   }
4564 + #line 4565 "conf_parser.c" /* yacc.c:1646  */
4565      break;
4566  
4567 <  case 230:
4568 < /* Line 1787 of yacc.c  */
4615 < #line 1446 "conf_parser.y"
4567 >  case 291:
4568 > #line 1585 "conf_parser.y" /* yacc.c:1646  */
4569      {
4570 <  listener_flags = 0;
4570 >  block_state.flags.value = 0;
4571   }
4572 + #line 4573 "conf_parser.c" /* yacc.c:1646  */
4573      break;
4574  
4575 <  case 234:
4576 < /* Line 1787 of yacc.c  */
4623 < #line 1452 "conf_parser.y"
4575 >  case 295:
4576 > #line 1591 "conf_parser.y" /* yacc.c:1646  */
4577      {
4578    if (conf_parser_ctx.pass == 2)
4579 <    listener_flags |= LISTENER_SSL;
4579 >    block_state.flags.value |= LISTENER_SSL;
4580   }
4581 + #line 4582 "conf_parser.c" /* yacc.c:1646  */
4582      break;
4583  
4584 <  case 235:
4585 < /* Line 1787 of yacc.c  */
4632 < #line 1456 "conf_parser.y"
4584 >  case 296:
4585 > #line 1595 "conf_parser.y" /* yacc.c:1646  */
4586      {
4587    if (conf_parser_ctx.pass == 2)
4588 <    listener_flags |= LISTENER_HIDDEN;
4588 >    block_state.flags.value |= LISTENER_HIDDEN;
4589   }
4590 + #line 4591 "conf_parser.c" /* yacc.c:1646  */
4591      break;
4592  
4593 <  case 236:
4594 < /* Line 1787 of yacc.c  */
4641 < #line 1460 "conf_parser.y"
4593 >  case 297:
4594 > #line 1599 "conf_parser.y" /* yacc.c:1646  */
4595      {
4596    if (conf_parser_ctx.pass == 2)
4597 <    listener_flags |= LISTENER_SERVER;
4597 >   block_state.flags.value |= LISTENER_SERVER;
4598   }
4599 + #line 4600 "conf_parser.c" /* yacc.c:1646  */
4600      break;
4601  
4602 <  case 244:
4603 < /* Line 1787 of yacc.c  */
4604 < #line 1470 "conf_parser.y"
4605 <    { listener_flags = 0; }
4602 >  case 305:
4603 > #line 1607 "conf_parser.y" /* yacc.c:1646  */
4604 >    { block_state.flags.value = 0; }
4605 > #line 4606 "conf_parser.c" /* yacc.c:1646  */
4606      break;
4607  
4608 <  case 248:
4609 < /* Line 1787 of yacc.c  */
4656 < #line 1475 "conf_parser.y"
4608 >  case 309:
4609 > #line 1612 "conf_parser.y" /* yacc.c:1646  */
4610      {
4611    if (conf_parser_ctx.pass == 2)
4612    {
4613 <    if ((listener_flags & LISTENER_SSL))
4614 < #ifdef HAVE_LIBCRYPTO
4615 <      if (!ServerInfo.server_ctx)
4613 > #ifndef HAVE_TLS
4614 >    if (block_state.flags.value & LISTENER_SSL)
4615 >    {
4616 >      conf_error_report("TLS not available - port closed");
4617 >      break;
4618 >    }
4619   #endif
4620 <      {
4665 <        yyerror("SSL not available - port closed");
4666 <        break;
4667 <      }
4668 <    add_listener((yyvsp[(1) - (1)].number), listener_address, listener_flags);
4620 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4621    }
4622   }
4623 + #line 4624 "conf_parser.c" /* yacc.c:1646  */
4624      break;
4625  
4626 <  case 249:
4627 < /* Line 1787 of yacc.c  */
4675 < #line 1489 "conf_parser.y"
4626 >  case 310:
4627 > #line 1625 "conf_parser.y" /* yacc.c:1646  */
4628      {
4629    if (conf_parser_ctx.pass == 2)
4630    {
4631 <    int i;
4632 <
4633 <    if ((listener_flags & LISTENER_SSL))
4634 < #ifdef HAVE_LIBCRYPTO
4635 <      if (!ServerInfo.server_ctx)
4631 > #ifndef HAVE_TLS
4632 >    if (block_state.flags.value & LISTENER_SSL)
4633 >    {
4634 >      conf_error_report("TLS not available - port closed");
4635 >      break;
4636 >    }
4637   #endif
4685      {
4686        yyerror("SSL not available - port closed");
4687        break;
4688      }
4638  
4639 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4640 <      add_listener(i, listener_address, listener_flags);
4639 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4640 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4641    }
4642   }
4643 + #line 4644 "conf_parser.c" /* yacc.c:1646  */
4644      break;
4645  
4646 <  case 250:
4647 < /* Line 1787 of yacc.c  */
4698 < #line 1509 "conf_parser.y"
4646 >  case 311:
4647 > #line 1642 "conf_parser.y" /* yacc.c:1646  */
4648      {
4649    if (conf_parser_ctx.pass == 2)
4650 <  {
4702 <    MyFree(listener_address);
4703 <    DupString(listener_address, yylval.string);
4704 <  }
4650 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4651   }
4652 + #line 4653 "conf_parser.c" /* yacc.c:1646  */
4653      break;
4654  
4655 <  case 251:
4656 < /* Line 1787 of yacc.c  */
4710 < #line 1518 "conf_parser.y"
4655 >  case 312:
4656 > #line 1648 "conf_parser.y" /* yacc.c:1646  */
4657      {
4658    if (conf_parser_ctx.pass == 2)
4659 <  {
4714 <    MyFree(listener_address);
4715 <    DupString(listener_address, yylval.string);
4716 <  }
4659 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4660   }
4661 + #line 4662 "conf_parser.c" /* yacc.c:1646  */
4662      break;
4663  
4664 <  case 252:
4665 < /* Line 1787 of yacc.c  */
4722 < #line 1530 "conf_parser.y"
4664 >  case 313:
4665 > #line 1658 "conf_parser.y" /* yacc.c:1646  */
4666      {
4667    if (conf_parser_ctx.pass == 2)
4668 <  {
4726 <    yy_conf = make_conf_item(CLIENT_TYPE);
4727 <    yy_aconf = map_to_conf(yy_conf);
4728 <  }
4729 <  else
4730 <  {
4731 <    MyFree(class_name);
4732 <    class_name = NULL;
4733 <  }
4668 >    reset_block_state();
4669   }
4670 + #line 4671 "conf_parser.c" /* yacc.c:1646  */
4671      break;
4672  
4673 <  case 253:
4674 < /* Line 1787 of yacc.c  */
4739 < #line 1542 "conf_parser.y"
4740 <    {
4741 <  if (conf_parser_ctx.pass == 2)
4742 <  {
4743 <    struct CollectItem *yy_tmp = NULL;
4744 <    dlink_node *ptr = NULL, *next_ptr = NULL;
4745 <
4746 <    if (yy_aconf->user && yy_aconf->host)
4747 <    {
4748 <      conf_add_class_to_conf(yy_conf, class_name);
4749 <      add_conf_by_address(CONF_CLIENT, yy_aconf);
4750 <    }
4751 <    else
4752 <      delete_conf_item(yy_conf);
4753 <
4754 <    /* copy over settings from first struct */
4755 <    DLINK_FOREACH_SAFE(ptr, next_ptr, col_conf_list.head)
4673 >  case 314:
4674 > #line 1662 "conf_parser.y" /* yacc.c:1646  */
4675      {
4676 <      struct AccessItem *new_aconf;
4758 <      struct ConfItem *new_conf;
4759 <
4760 <      new_conf = make_conf_item(CLIENT_TYPE);
4761 <      new_aconf = map_to_conf(new_conf);
4762 <
4763 <      yy_tmp = ptr->data;
4764 <
4765 <      assert(yy_tmp->user && yy_tmp->host);
4676 >  dlink_node *node = NULL;
4677  
4678 <      if (yy_aconf->passwd != NULL)
4768 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4769 <      if (yy_conf->name != NULL)
4770 <        DupString(new_conf->name, yy_conf->name);
4771 <      if (yy_aconf->passwd != NULL)
4772 <        DupString(new_aconf->passwd, yy_aconf->passwd);
4773 <
4774 <      new_aconf->flags = yy_aconf->flags;
4775 <      new_aconf->port  = yy_aconf->port;
4776 <
4777 <      DupString(new_aconf->user, yy_tmp->user);
4778 <      collapse(new_aconf->user);
4779 <
4780 <      DupString(new_aconf->host, yy_tmp->host);
4781 <      collapse(new_aconf->host);
4782 <
4783 <      conf_add_class_to_conf(new_conf, class_name);
4784 <      add_conf_by_address(CONF_CLIENT, new_aconf);
4785 <      dlinkDelete(&yy_tmp->node, &col_conf_list);
4786 <      free_collect_item(yy_tmp);
4787 <    }
4788 <
4789 <    MyFree(class_name);
4790 <    class_name = NULL;
4791 <    yy_conf = NULL;
4792 <    yy_aconf = NULL;
4793 <  }
4794 < }
4678 >  if (conf_parser_ctx.pass != 2)
4679      break;
4680  
4681 <  case 265:
4798 < /* Line 1787 of yacc.c  */
4799 < #line 1604 "conf_parser.y"
4800 <    {
4801 <  if (conf_parser_ctx.pass == 2)
4681 >  DLINK_FOREACH(node, block_state.mask.list.head)
4682    {
4683 <    struct CollectItem *yy_tmp = NULL;
4683 >    struct MaskItem *conf = NULL;
4684      struct split_nuh_item nuh;
4685 +    char *s = node->data;
4686  
4687 <    nuh.nuhmask  = yylval.string;
4688 <    nuh.nickptr  = NULL;
4808 <    nuh.userptr  = userbuf;
4809 <    nuh.hostptr  = hostbuf;
4687 >    if (EmptyString(s))
4688 >      continue;
4689  
4690 +    nuh.nuhmask  = s;
4691 +    nuh.nickptr  = NULL;
4692 +    nuh.userptr  = block_state.user.buf;
4693 +    nuh.hostptr  = block_state.host.buf;
4694      nuh.nicksize = 0;
4695 <    nuh.usersize = sizeof(userbuf);
4696 <    nuh.hostsize = sizeof(hostbuf);
4814 <
4695 >    nuh.usersize = sizeof(block_state.user.buf);
4696 >    nuh.hostsize = sizeof(block_state.host.buf);
4697      split_nuh(&nuh);
4698  
4699 <    if (yy_aconf->user == NULL)
4700 <    {
4701 <      DupString(yy_aconf->user, userbuf);
4820 <      DupString(yy_aconf->host, hostbuf);
4821 <    }
4822 <    else
4823 <    {
4824 <      yy_tmp = MyMalloc(sizeof(struct CollectItem));
4699 >    conf        = conf_make(CONF_CLIENT);
4700 >    conf->user  = xstrdup(block_state.user.buf);
4701 >    conf->host  = xstrdup(block_state.host.buf);
4702  
4703 <      DupString(yy_tmp->user, userbuf);
4704 <      DupString(yy_tmp->host, hostbuf);
4703 >    if (block_state.rpass.buf[0])
4704 >      conf->passwd = xstrdup(block_state.rpass.buf);
4705 >    if (block_state.name.buf[0])
4706 >      conf->name = xstrdup(block_state.name.buf);
4707  
4708 <      dlinkAdd(yy_tmp, &yy_tmp->node, &col_conf_list);
4709 <    }
4708 >    conf->flags = block_state.flags.value;
4709 >    conf->port  = block_state.port.value;
4710 >
4711 >    conf_add_class_to_conf(conf, block_state.class.buf);
4712 >    add_conf_by_address(CONF_CLIENT, conf);
4713    }
4714   }
4715 + #line 4716 "conf_parser.c" /* yacc.c:1646  */
4716      break;
4717  
4718 <  case 266:
4719 < /* Line 1787 of yacc.c  */
4837 < #line 1639 "conf_parser.y"
4718 >  case 326:
4719 > #line 1715 "conf_parser.y" /* yacc.c:1646  */
4720      {
4721    if (conf_parser_ctx.pass == 2)
4722 <  {
4723 <    /* be paranoid */
4724 <    if (yy_aconf->passwd != NULL)
4725 <      memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
4722 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4723 > }
4724 > #line 4725 "conf_parser.c" /* yacc.c:1646  */
4725 >    break;
4726  
4727 <    MyFree(yy_aconf->passwd);
4728 <    DupString(yy_aconf->passwd, yylval.string);
4729 <  }
4727 >  case 327:
4728 > #line 1721 "conf_parser.y" /* yacc.c:1646  */
4729 >    {
4730 >  if (conf_parser_ctx.pass == 2)
4731 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4732   }
4733 + #line 4734 "conf_parser.c" /* yacc.c:1646  */
4734      break;
4735  
4736 <  case 267:
4737 < /* Line 1787 of yacc.c  */
4853 < #line 1652 "conf_parser.y"
4736 >  case 328:
4737 > #line 1727 "conf_parser.y" /* yacc.c:1646  */
4738      {
4739    if (conf_parser_ctx.pass == 2)
4740 <  {
4857 <    MyFree(class_name);
4858 <    DupString(class_name, yylval.string);
4859 <  }
4740 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4741   }
4742 + #line 4743 "conf_parser.c" /* yacc.c:1646  */
4743      break;
4744  
4745 <  case 268:
4746 < /* Line 1787 of yacc.c  */
4865 < #line 1661 "conf_parser.y"
4745 >  case 329:
4746 > #line 1733 "conf_parser.y" /* yacc.c:1646  */
4747      {
4748    if (conf_parser_ctx.pass == 2)
4749    {
4750      if (yylval.number)
4751 <      SetConfEncrypted(yy_aconf);
4751 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4752      else
4753 <      ClearConfEncrypted(yy_aconf);
4753 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4754    }
4755   }
4756 + #line 4757 "conf_parser.c" /* yacc.c:1646  */
4757      break;
4758  
4759 <  case 269:
4760 < /* Line 1787 of yacc.c  */
4879 < #line 1672 "conf_parser.y"
4759 >  case 330:
4760 > #line 1744 "conf_parser.y" /* yacc.c:1646  */
4761      {
4762 +  if (conf_parser_ctx.pass == 2)
4763 +    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4764   }
4765 + #line 4766 "conf_parser.c" /* yacc.c:1646  */
4766      break;
4767  
4768 <  case 273:
4769 < /* Line 1787 of yacc.c  */
4886 < #line 1677 "conf_parser.y"
4768 >  case 334:
4769 > #line 1751 "conf_parser.y" /* yacc.c:1646  */
4770      {
4771    if (conf_parser_ctx.pass == 2)
4772 <    yy_aconf->flags |= CONF_FLAGS_SPOOF_NOTICE;
4772 >    block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4773   }
4774 + #line 4775 "conf_parser.c" /* yacc.c:1646  */
4775      break;
4776  
4777 <  case 274:
4778 < /* Line 1787 of yacc.c  */
4895 < #line 1681 "conf_parser.y"
4777 >  case 335:
4778 > #line 1755 "conf_parser.y" /* yacc.c:1646  */
4779      {
4780    if (conf_parser_ctx.pass == 2)
4781 <    yy_aconf->flags |= CONF_FLAGS_NOLIMIT;
4781 >    block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4782   }
4783 + #line 4784 "conf_parser.c" /* yacc.c:1646  */
4784      break;
4785  
4786 <  case 275:
4787 < /* Line 1787 of yacc.c  */
4904 < #line 1685 "conf_parser.y"
4786 >  case 336:
4787 > #line 1759 "conf_parser.y" /* yacc.c:1646  */
4788      {
4789    if (conf_parser_ctx.pass == 2)
4790 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTKLINE;
4790 >    block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4791   }
4792 + #line 4793 "conf_parser.c" /* yacc.c:1646  */
4793      break;
4794  
4795 <  case 276:
4796 < /* Line 1787 of yacc.c  */
4913 < #line 1689 "conf_parser.y"
4795 >  case 337:
4796 > #line 1763 "conf_parser.y" /* yacc.c:1646  */
4797      {
4798    if (conf_parser_ctx.pass == 2)
4799 <    yy_aconf->flags |= CONF_FLAGS_NEED_IDENTD;
4799 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4800   }
4801 + #line 4802 "conf_parser.c" /* yacc.c:1646  */
4802      break;
4803  
4804 <  case 277:
4805 < /* Line 1787 of yacc.c  */
4922 < #line 1693 "conf_parser.y"
4804 >  case 338:
4805 > #line 1767 "conf_parser.y" /* yacc.c:1646  */
4806      {
4807    if (conf_parser_ctx.pass == 2)
4808 <    yy_aconf->flags |= CONF_FLAGS_CAN_FLOOD;
4808 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4809   }
4810 + #line 4811 "conf_parser.c" /* yacc.c:1646  */
4811      break;
4812  
4813 <  case 278:
4814 < /* Line 1787 of yacc.c  */
4931 < #line 1697 "conf_parser.y"
4813 >  case 339:
4814 > #line 1771 "conf_parser.y" /* yacc.c:1646  */
4815      {
4816    if (conf_parser_ctx.pass == 2)
4817 <    yy_aconf->flags |= CONF_FLAGS_NO_TILDE;
4817 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4818   }
4819 + #line 4820 "conf_parser.c" /* yacc.c:1646  */
4820      break;
4821  
4822 <  case 279:
4823 < /* Line 1787 of yacc.c  */
4940 < #line 1701 "conf_parser.y"
4822 >  case 340:
4823 > #line 1775 "conf_parser.y" /* yacc.c:1646  */
4824      {
4825    if (conf_parser_ctx.pass == 2)
4826 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTGLINE;
4826 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4827   }
4828 + #line 4829 "conf_parser.c" /* yacc.c:1646  */
4829      break;
4830  
4831 <  case 280:
4832 < /* Line 1787 of yacc.c  */
4949 < #line 1705 "conf_parser.y"
4831 >  case 341:
4832 > #line 1779 "conf_parser.y" /* yacc.c:1646  */
4833      {
4834    if (conf_parser_ctx.pass == 2)
4835 <    yy_aconf->flags |= CONF_FLAGS_EXEMPTRESV;
4835 >    block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4836   }
4837 + #line 4838 "conf_parser.c" /* yacc.c:1646  */
4838      break;
4839  
4840 <  case 281:
4841 < /* Line 1787 of yacc.c  */
4958 < #line 1709 "conf_parser.y"
4840 >  case 342:
4841 > #line 1783 "conf_parser.y" /* yacc.c:1646  */
4842      {
4843    if (conf_parser_ctx.pass == 2)
4844 <    yy_aconf->flags |= CONF_FLAGS_NEED_PASSWORD;
4844 >    block_state.flags.value |= CONF_FLAGS_WEBIRC;
4845   }
4846 + #line 4847 "conf_parser.c" /* yacc.c:1646  */
4847      break;
4848  
4849 <  case 282:
4850 < /* Line 1787 of yacc.c  */
4967 < #line 1716 "conf_parser.y"
4849 >  case 343:
4850 > #line 1787 "conf_parser.y" /* yacc.c:1646  */
4851      {
4852    if (conf_parser_ctx.pass == 2)
4853 <  {
4854 <    MyFree(yy_conf->name);
4853 >    block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4854 > }
4855 > #line 4856 "conf_parser.c" /* yacc.c:1646  */
4856 >    break;
4857  
4858 <    if (strlen(yylval.string) < HOSTLEN)
4859 <    {    
4975 <      DupString(yy_conf->name, yylval.string);
4976 <      yy_aconf->flags |= CONF_FLAGS_SPOOF_IP;
4977 <    }
4978 <    else
4858 >  case 344:
4859 > #line 1793 "conf_parser.y" /* yacc.c:1646  */
4860      {
4861 <      ilog(LOG_TYPE_IRCD, "Spoofs must be less than %d..ignoring it", HOSTLEN);
4862 <      yy_conf->name = NULL;
4863 <    }
4861 >  if (conf_parser_ctx.pass != 2)
4862 >    break;
4863 >
4864 >  if (valid_hostname(yylval.string))
4865 >  {
4866 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4867 >    block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
4868    }
4869 +  else
4870 +    ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4871   }
4872 + #line 4873 "conf_parser.c" /* yacc.c:1646  */
4873      break;
4874  
4875 <  case 283:
4876 < /* Line 1787 of yacc.c  */
4989 < #line 1735 "conf_parser.y"
4875 >  case 345:
4876 > #line 1807 "conf_parser.y" /* yacc.c:1646  */
4877      {
4878 <  if (conf_parser_ctx.pass == 2)
4879 <  {
4880 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4881 <    MyFree(yy_conf->name);
4882 <    DupString(yy_conf->name, yylval.string);
4996 <  }
4878 >  if (conf_parser_ctx.pass != 2)
4879 >    break;
4880 >
4881 >  strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4882 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4883   }
4884 + #line 4885 "conf_parser.c" /* yacc.c:1646  */
4885      break;
4886  
4887 <  case 284:
4888 < /* Line 1787 of yacc.c  */
5002 < #line 1745 "conf_parser.y"
4887 >  case 346:
4888 > #line 1816 "conf_parser.y" /* yacc.c:1646  */
4889      {
4890 <  if (conf_parser_ctx.pass == 2)
4891 <  {
4892 <    yy_aconf->flags |= CONF_FLAGS_REDIR;
4893 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
4894 <  }
4890 >  if (conf_parser_ctx.pass != 2)
4891 >    break;
4892 >
4893 >  block_state.flags.value |= CONF_FLAGS_REDIR;
4894 >  block_state.port.value = (yyvsp[-1].number);
4895   }
4896 + #line 4897 "conf_parser.c" /* yacc.c:1646  */
4897      break;
4898  
4899 <  case 285:
4900 < /* Line 1787 of yacc.c  */
5014 < #line 1758 "conf_parser.y"
4899 >  case 347:
4900 > #line 1829 "conf_parser.y" /* yacc.c:1646  */
4901      {
4902 <  if (conf_parser_ctx.pass == 2)
4903 <  {
4904 <    MyFree(resv_reason);
4905 <    resv_reason = NULL;
4906 <  }
4902 >  if (conf_parser_ctx.pass != 2)
4903 >    break;
4904 >
4905 >  reset_block_state();
4906 >  strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4907   }
4908 + #line 4909 "conf_parser.c" /* yacc.c:1646  */
4909      break;
4910  
4911 <  case 286:
4912 < /* Line 1787 of yacc.c  */
5026 < #line 1765 "conf_parser.y"
4911 >  case 348:
4912 > #line 1836 "conf_parser.y" /* yacc.c:1646  */
4913      {
4914 <  if (conf_parser_ctx.pass == 2)
4915 <  {
4916 <    MyFree(resv_reason);
4917 <    resv_reason = NULL;
5032 <  }
4914 >  if (conf_parser_ctx.pass != 2)
4915 >    break;
4916 >
4917 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4918   }
4919 + #line 4920 "conf_parser.c" /* yacc.c:1646  */
4920      break;
4921  
4922 <  case 293:
4923 < /* Line 1787 of yacc.c  */
5038 < #line 1777 "conf_parser.y"
4922 >  case 355:
4923 > #line 1847 "conf_parser.y" /* yacc.c:1646  */
4924      {
4925    if (conf_parser_ctx.pass == 2)
4926 <  {
5042 <    MyFree(resv_reason);
5043 <    DupString(resv_reason, yylval.string);
5044 <  }
4926 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4927   }
4928 + #line 4929 "conf_parser.c" /* yacc.c:1646  */
4929      break;
4930  
4931 <  case 294:
4932 < /* Line 1787 of yacc.c  */
5050 < #line 1786 "conf_parser.y"
4931 >  case 356:
4932 > #line 1853 "conf_parser.y" /* yacc.c:1646  */
4933      {
4934    if (conf_parser_ctx.pass == 2)
4935 <  {
5054 <    if (IsChanPrefix(*yylval.string))
5055 <    {
5056 <      char def_reason[] = "No reason";
5057 <
5058 <      create_channel_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5059 <    }
5060 <  }
5061 <  /* ignore it for now.. but we really should make a warning if
5062 <   * its an erroneous name --fl_ */
4935 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4936   }
4937 + #line 4938 "conf_parser.c" /* yacc.c:1646  */
4938      break;
4939  
4940 <  case 295:
4941 < /* Line 1787 of yacc.c  */
5068 < #line 1801 "conf_parser.y"
4940 >  case 357:
4941 > #line 1859 "conf_parser.y" /* yacc.c:1646  */
4942      {
4943    if (conf_parser_ctx.pass == 2)
4944 <  {
5072 <    char def_reason[] = "No reason";
5073 <
5074 <    create_nick_resv(yylval.string, resv_reason != NULL ? resv_reason : def_reason, 1);
5075 <  }
4944 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4945   }
4946 + #line 4947 "conf_parser.c" /* yacc.c:1646  */
4947      break;
4948  
4949 <  case 301:
4950 < /* Line 1787 of yacc.c  */
5081 < #line 1819 "conf_parser.y"
4949 >  case 363:
4950 > #line 1874 "conf_parser.y" /* yacc.c:1646  */
4951      {
4952 <  if (conf_parser_ctx.pass == 2)
4952 >  if (conf_parser_ctx.pass != 2)
4953 >    break;
4954 >
4955 >  if (valid_servname(yylval.string))
4956    {
4957 <    if (valid_servname(yylval.string))
4958 <    {
5087 <      yy_conf = make_conf_item(SERVICE_TYPE);
5088 <      DupString(yy_conf->name, yylval.string);
5089 <    }
4957 >    struct ServiceItem *service = service_make();
4958 >    service->name = xstrdup(yylval.string);
4959    }
4960   }
4961 + #line 4962 "conf_parser.c" /* yacc.c:1646  */
4962      break;
4963  
4964 <  case 302:
4965 < /* Line 1787 of yacc.c  */
5096 < #line 1834 "conf_parser.y"
4964 >  case 364:
4965 > #line 1890 "conf_parser.y" /* yacc.c:1646  */
4966      {
4967 <  if (conf_parser_ctx.pass == 2)
4968 <  {
4969 <    yy_conf = make_conf_item(ULINE_TYPE);
4970 <    yy_match_item = map_to_conf(yy_conf);
4971 <    yy_match_item->action = SHARED_ALL;
4972 <  }
4967 >  if (conf_parser_ctx.pass != 2)
4968 >    break;
4969 >
4970 >  reset_block_state();
4971 >
4972 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4973 >  strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
4974 >  strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4975 >  block_state.flags.value = SHARED_ALL;
4976   }
4977 + #line 4978 "conf_parser.c" /* yacc.c:1646  */
4978      break;
4979  
4980 <  case 303:
4981 < /* Line 1787 of yacc.c  */
5109 < #line 1842 "conf_parser.y"
4980 >  case 365:
4981 > #line 1901 "conf_parser.y" /* yacc.c:1646  */
4982      {
4983 <  if (conf_parser_ctx.pass == 2)
4984 <  {
4985 <    yy_conf = NULL;
4986 <  }
4983 >  if (conf_parser_ctx.pass != 2)
4984 >    break;
4985 >
4986 >  struct SharedItem *shared = shared_make();
4987 >  shared->type = block_state.flags.value;
4988 >  shared->server = xstrdup(block_state.name.buf);
4989 >  shared->user = xstrdup(block_state.user.buf);
4990 >  shared->host = xstrdup(block_state.host.buf);
4991   }
4992 + #line 4993 "conf_parser.c" /* yacc.c:1646  */
4993      break;
4994  
4995 <  case 310:
4996 < /* Line 1787 of yacc.c  */
5120 < #line 1853 "conf_parser.y"
4995 >  case 372:
4996 > #line 1916 "conf_parser.y" /* yacc.c:1646  */
4997      {
4998    if (conf_parser_ctx.pass == 2)
4999 <  {
5124 <    MyFree(yy_conf->name);
5125 <    DupString(yy_conf->name, yylval.string);
5126 <  }
4999 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5000   }
5001 + #line 5002 "conf_parser.c" /* yacc.c:1646  */
5002      break;
5003  
5004 <  case 311:
5005 < /* Line 1787 of yacc.c  */
5132 < #line 1862 "conf_parser.y"
5004 >  case 373:
5005 > #line 1922 "conf_parser.y" /* yacc.c:1646  */
5006      {
5007    if (conf_parser_ctx.pass == 2)
5008    {
# Line 5137 | Line 5010 | yyreduce:
5010  
5011      nuh.nuhmask  = yylval.string;
5012      nuh.nickptr  = NULL;
5013 <    nuh.userptr  = userbuf;
5014 <    nuh.hostptr  = hostbuf;
5013 >    nuh.userptr  = block_state.user.buf;
5014 >    nuh.hostptr  = block_state.host.buf;
5015  
5016      nuh.nicksize = 0;
5017 <    nuh.usersize = sizeof(userbuf);
5018 <    nuh.hostsize = sizeof(hostbuf);
5017 >    nuh.usersize = sizeof(block_state.user.buf);
5018 >    nuh.hostsize = sizeof(block_state.host.buf);
5019  
5020      split_nuh(&nuh);
5148
5149    DupString(yy_match_item->user, userbuf);
5150    DupString(yy_match_item->host, hostbuf);
5021    }
5022   }
5023 + #line 5024 "conf_parser.c" /* yacc.c:1646  */
5024      break;
5025  
5026 <  case 312:
5027 < /* Line 1787 of yacc.c  */
5157 < #line 1884 "conf_parser.y"
5026 >  case 374:
5027 > #line 1941 "conf_parser.y" /* yacc.c:1646  */
5028      {
5029    if (conf_parser_ctx.pass == 2)
5030 <    yy_match_item->action = 0;
5030 >    block_state.flags.value = 0;
5031   }
5032 + #line 5033 "conf_parser.c" /* yacc.c:1646  */
5033      break;
5034  
5035 <  case 316:
5036 < /* Line 1787 of yacc.c  */
5166 < #line 1891 "conf_parser.y"
5035 >  case 378:
5036 > #line 1948 "conf_parser.y" /* yacc.c:1646  */
5037      {
5038    if (conf_parser_ctx.pass == 2)
5039 <    yy_match_item->action |= SHARED_KLINE;
5039 >    block_state.flags.value |= SHARED_KLINE;
5040   }
5041 + #line 5042 "conf_parser.c" /* yacc.c:1646  */
5042      break;
5043  
5044 <  case 317:
5045 < /* Line 1787 of yacc.c  */
5175 < #line 1895 "conf_parser.y"
5044 >  case 379:
5045 > #line 1952 "conf_parser.y" /* yacc.c:1646  */
5046      {
5047    if (conf_parser_ctx.pass == 2)
5048 <    yy_match_item->action |= SHARED_UNKLINE;
5048 >    block_state.flags.value |= SHARED_UNKLINE;
5049   }
5050 + #line 5051 "conf_parser.c" /* yacc.c:1646  */
5051      break;
5052  
5053 <  case 318:
5054 < /* Line 1787 of yacc.c  */
5184 < #line 1899 "conf_parser.y"
5053 >  case 380:
5054 > #line 1956 "conf_parser.y" /* yacc.c:1646  */
5055      {
5056    if (conf_parser_ctx.pass == 2)
5057 <    yy_match_item->action |= SHARED_DLINE;
5057 >    block_state.flags.value |= SHARED_DLINE;
5058   }
5059 + #line 5060 "conf_parser.c" /* yacc.c:1646  */
5060      break;
5061  
5062 <  case 319:
5063 < /* Line 1787 of yacc.c  */
5193 < #line 1903 "conf_parser.y"
5062 >  case 381:
5063 > #line 1960 "conf_parser.y" /* yacc.c:1646  */
5064      {
5065    if (conf_parser_ctx.pass == 2)
5066 <    yy_match_item->action |= SHARED_UNDLINE;
5066 >    block_state.flags.value |= SHARED_UNDLINE;
5067   }
5068 + #line 5069 "conf_parser.c" /* yacc.c:1646  */
5069      break;
5070  
5071 <  case 320:
5072 < /* Line 1787 of yacc.c  */
5202 < #line 1907 "conf_parser.y"
5071 >  case 382:
5072 > #line 1964 "conf_parser.y" /* yacc.c:1646  */
5073      {
5074    if (conf_parser_ctx.pass == 2)
5075 <    yy_match_item->action |= SHARED_XLINE;
5075 >    block_state.flags.value |= SHARED_XLINE;
5076   }
5077 + #line 5078 "conf_parser.c" /* yacc.c:1646  */
5078      break;
5079  
5080 <  case 321:
5081 < /* Line 1787 of yacc.c  */
5211 < #line 1911 "conf_parser.y"
5080 >  case 383:
5081 > #line 1968 "conf_parser.y" /* yacc.c:1646  */
5082      {
5083    if (conf_parser_ctx.pass == 2)
5084 <    yy_match_item->action |= SHARED_UNXLINE;
5084 >    block_state.flags.value |= SHARED_UNXLINE;
5085   }
5086 + #line 5087 "conf_parser.c" /* yacc.c:1646  */
5087      break;
5088  
5089 <  case 322:
5090 < /* Line 1787 of yacc.c  */
5220 < #line 1915 "conf_parser.y"
5089 >  case 384:
5090 > #line 1972 "conf_parser.y" /* yacc.c:1646  */
5091      {
5092    if (conf_parser_ctx.pass == 2)
5093 <    yy_match_item->action |= SHARED_RESV;
5093 >    block_state.flags.value |= SHARED_RESV;
5094   }
5095 + #line 5096 "conf_parser.c" /* yacc.c:1646  */
5096      break;
5097  
5098 <  case 323:
5099 < /* Line 1787 of yacc.c  */
5229 < #line 1919 "conf_parser.y"
5098 >  case 385:
5099 > #line 1976 "conf_parser.y" /* yacc.c:1646  */
5100      {
5101    if (conf_parser_ctx.pass == 2)
5102 <    yy_match_item->action |= SHARED_UNRESV;
5102 >    block_state.flags.value |= SHARED_UNRESV;
5103   }
5104 + #line 5105 "conf_parser.c" /* yacc.c:1646  */
5105      break;
5106  
5107 <  case 324:
5108 < /* Line 1787 of yacc.c  */
5238 < #line 1923 "conf_parser.y"
5107 >  case 386:
5108 > #line 1980 "conf_parser.y" /* yacc.c:1646  */
5109      {
5110    if (conf_parser_ctx.pass == 2)
5111 <    yy_match_item->action |= SHARED_LOCOPS;
5111 >    block_state.flags.value |= SHARED_LOCOPS;
5112   }
5113 + #line 5114 "conf_parser.c" /* yacc.c:1646  */
5114      break;
5115  
5116 <  case 325:
5117 < /* Line 1787 of yacc.c  */
5247 < #line 1927 "conf_parser.y"
5116 >  case 387:
5117 > #line 1984 "conf_parser.y" /* yacc.c:1646  */
5118      {
5119    if (conf_parser_ctx.pass == 2)
5120 <    yy_match_item->action = SHARED_ALL;
5120 >    block_state.flags.value = SHARED_ALL;
5121   }
5122 + #line 5123 "conf_parser.c" /* yacc.c:1646  */
5123      break;
5124  
5125 <  case 326:
5126 < /* Line 1787 of yacc.c  */
5256 < #line 1936 "conf_parser.y"
5125 >  case 388:
5126 > #line 1994 "conf_parser.y" /* yacc.c:1646  */
5127      {
5128 <  if (conf_parser_ctx.pass == 2)
5129 <  {
5130 <    yy_conf = make_conf_item(CLUSTER_TYPE);
5131 <    yy_conf->flags = SHARED_ALL;
5132 <  }
5128 >  if (conf_parser_ctx.pass != 2)
5129 >    break;
5130 >
5131 >  reset_block_state();
5132 >
5133 >  strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5134 >  block_state.flags.value = CLUSTER_ALL;
5135   }
5136 + #line 5137 "conf_parser.c" /* yacc.c:1646  */
5137      break;
5138  
5139 <  case 327:
5140 < /* Line 1787 of yacc.c  */
5268 < #line 1943 "conf_parser.y"
5139 >  case 389:
5140 > #line 2003 "conf_parser.y" /* yacc.c:1646  */
5141      {
5142 <  if (conf_parser_ctx.pass == 2)
5143 <  {
5144 <    if (yy_conf->name == NULL)
5145 <      DupString(yy_conf->name, "*");
5146 <    yy_conf = NULL;
5147 <  }
5142 >  if (conf_parser_ctx.pass != 2)
5143 >    break;
5144 >
5145 >  struct ClusterItem *cluster = cluster_make();
5146 >  cluster->type = block_state.flags.value;
5147 >  cluster->server = xstrdup(block_state.name.buf);
5148   }
5149 + #line 5150 "conf_parser.c" /* yacc.c:1646  */
5150      break;
5151  
5152 <  case 333:
5153 < /* Line 1787 of yacc.c  */
5281 < #line 1956 "conf_parser.y"
5152 >  case 395:
5153 > #line 2016 "conf_parser.y" /* yacc.c:1646  */
5154      {
5155    if (conf_parser_ctx.pass == 2)
5156 <    DupString(yy_conf->name, yylval.string);
5156 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5157   }
5158 + #line 5159 "conf_parser.c" /* yacc.c:1646  */
5159      break;
5160  
5161 <  case 334:
5162 < /* Line 1787 of yacc.c  */
5290 < #line 1962 "conf_parser.y"
5161 >  case 396:
5162 > #line 2022 "conf_parser.y" /* yacc.c:1646  */
5163      {
5164    if (conf_parser_ctx.pass == 2)
5165 <    yy_conf->flags = 0;
5165 >    block_state.flags.value = 0;
5166   }
5167 + #line 5168 "conf_parser.c" /* yacc.c:1646  */
5168      break;
5169  
5170 <  case 338:
5171 < /* Line 1787 of yacc.c  */
5299 < #line 1969 "conf_parser.y"
5170 >  case 400:
5171 > #line 2029 "conf_parser.y" /* yacc.c:1646  */
5172      {
5173    if (conf_parser_ctx.pass == 2)
5174 <    yy_conf->flags |= SHARED_KLINE;
5174 >    block_state.flags.value |= CLUSTER_KLINE;
5175   }
5176 + #line 5177 "conf_parser.c" /* yacc.c:1646  */
5177      break;
5178  
5179 <  case 339:
5180 < /* Line 1787 of yacc.c  */
5308 < #line 1973 "conf_parser.y"
5179 >  case 401:
5180 > #line 2033 "conf_parser.y" /* yacc.c:1646  */
5181      {
5182    if (conf_parser_ctx.pass == 2)
5183 <    yy_conf->flags |= SHARED_UNKLINE;
5183 >    block_state.flags.value |= CLUSTER_UNKLINE;
5184   }
5185 + #line 5186 "conf_parser.c" /* yacc.c:1646  */
5186      break;
5187  
5188 <  case 340:
5189 < /* Line 1787 of yacc.c  */
5317 < #line 1977 "conf_parser.y"
5188 >  case 402:
5189 > #line 2037 "conf_parser.y" /* yacc.c:1646  */
5190      {
5191    if (conf_parser_ctx.pass == 2)
5192 <    yy_conf->flags |= SHARED_DLINE;
5192 >    block_state.flags.value |= CLUSTER_DLINE;
5193   }
5194 + #line 5195 "conf_parser.c" /* yacc.c:1646  */
5195      break;
5196  
5197 <  case 341:
5198 < /* Line 1787 of yacc.c  */
5326 < #line 1981 "conf_parser.y"
5197 >  case 403:
5198 > #line 2041 "conf_parser.y" /* yacc.c:1646  */
5199      {
5200    if (conf_parser_ctx.pass == 2)
5201 <    yy_conf->flags |= SHARED_UNDLINE;
5201 >    block_state.flags.value |= CLUSTER_UNDLINE;
5202   }
5203 + #line 5204 "conf_parser.c" /* yacc.c:1646  */
5204      break;
5205  
5206 <  case 342:
5207 < /* Line 1787 of yacc.c  */
5335 < #line 1985 "conf_parser.y"
5206 >  case 404:
5207 > #line 2045 "conf_parser.y" /* yacc.c:1646  */
5208      {
5209    if (conf_parser_ctx.pass == 2)
5210 <    yy_conf->flags |= SHARED_XLINE;
5210 >    block_state.flags.value |= CLUSTER_XLINE;
5211   }
5212 + #line 5213 "conf_parser.c" /* yacc.c:1646  */
5213      break;
5214  
5215 <  case 343:
5216 < /* Line 1787 of yacc.c  */
5344 < #line 1989 "conf_parser.y"
5215 >  case 405:
5216 > #line 2049 "conf_parser.y" /* yacc.c:1646  */
5217      {
5218    if (conf_parser_ctx.pass == 2)
5219 <    yy_conf->flags |= SHARED_UNXLINE;
5219 >    block_state.flags.value |= CLUSTER_UNXLINE;
5220   }
5221 + #line 5222 "conf_parser.c" /* yacc.c:1646  */
5222      break;
5223  
5224 <  case 344:
5225 < /* Line 1787 of yacc.c  */
5353 < #line 1993 "conf_parser.y"
5224 >  case 406:
5225 > #line 2053 "conf_parser.y" /* yacc.c:1646  */
5226      {
5227    if (conf_parser_ctx.pass == 2)
5228 <    yy_conf->flags |= SHARED_RESV;
5228 >    block_state.flags.value |= CLUSTER_RESV;
5229   }
5230 + #line 5231 "conf_parser.c" /* yacc.c:1646  */
5231      break;
5232  
5233 <  case 345:
5234 < /* Line 1787 of yacc.c  */
5362 < #line 1997 "conf_parser.y"
5233 >  case 407:
5234 > #line 2057 "conf_parser.y" /* yacc.c:1646  */
5235      {
5236    if (conf_parser_ctx.pass == 2)
5237 <    yy_conf->flags |= SHARED_UNRESV;
5237 >    block_state.flags.value |= CLUSTER_UNRESV;
5238   }
5239 + #line 5240 "conf_parser.c" /* yacc.c:1646  */
5240      break;
5241  
5242 <  case 346:
5243 < /* Line 1787 of yacc.c  */
5371 < #line 2001 "conf_parser.y"
5242 >  case 408:
5243 > #line 2061 "conf_parser.y" /* yacc.c:1646  */
5244      {
5245    if (conf_parser_ctx.pass == 2)
5246 <    yy_conf->flags |= SHARED_LOCOPS;
5246 >    block_state.flags.value |= CLUSTER_LOCOPS;
5247   }
5248 + #line 5249 "conf_parser.c" /* yacc.c:1646  */
5249      break;
5250  
5251 <  case 347:
5252 < /* Line 1787 of yacc.c  */
5380 < #line 2005 "conf_parser.y"
5251 >  case 409:
5252 > #line 2065 "conf_parser.y" /* yacc.c:1646  */
5253      {
5254    if (conf_parser_ctx.pass == 2)
5255 <    yy_conf->flags = SHARED_ALL;
5255 >    block_state.flags.value = CLUSTER_ALL;
5256   }
5257 + #line 5258 "conf_parser.c" /* yacc.c:1646  */
5258      break;
5259  
5260 <  case 348:
5261 < /* Line 1787 of yacc.c  */
5389 < #line 2014 "conf_parser.y"
5260 >  case 410:
5261 > #line 2075 "conf_parser.y" /* yacc.c:1646  */
5262      {
5391  if (conf_parser_ctx.pass == 2)
5392  {
5393    yy_conf = make_conf_item(SERVER_TYPE);
5394    yy_aconf = map_to_conf(yy_conf);
5263  
5264 <    /* defaults */
5265 <    yy_aconf->port = PORTNUM;
5266 <  }
5267 <  else
5268 <  {
5269 <    MyFree(class_name);
5402 <    class_name = NULL;
5403 <  }
5264 >  if (conf_parser_ctx.pass != 2)
5265 >    break;
5266 >
5267 >  reset_block_state();
5268 >  block_state.aftype.value = AF_INET;
5269 >  block_state.port.value = PORTNUM;
5270   }
5271 + #line 5272 "conf_parser.c" /* yacc.c:1646  */
5272      break;
5273  
5274 <  case 349:
5275 < /* Line 1787 of yacc.c  */
5409 < #line 2029 "conf_parser.y"
5274 >  case 411:
5275 > #line 2084 "conf_parser.y" /* yacc.c:1646  */
5276      {
5277 <  if (conf_parser_ctx.pass == 2)
5277 >  struct MaskItem *conf = NULL;
5278 >  struct addrinfo hints, *res;
5279 >
5280 >  if (conf_parser_ctx.pass != 2)
5281 >    break;
5282 >
5283 >  if (!block_state.name.buf[0] ||
5284 >      !block_state.host.buf[0])
5285 >    break;
5286 >
5287 >  if (!block_state.rpass.buf[0] ||
5288 >      !block_state.spass.buf[0])
5289 >    break;
5290 >
5291 >  if (has_wildcards(block_state.name.buf) ||
5292 >      has_wildcards(block_state.host.buf))
5293 >    break;
5294 >
5295 >  conf = conf_make(CONF_SERVER);
5296 >  conf->port = block_state.port.value;
5297 >  conf->flags = block_state.flags.value;
5298 >  conf->aftype = block_state.aftype.value;
5299 >  conf->host = xstrdup(block_state.host.buf);
5300 >  conf->name = xstrdup(block_state.name.buf);
5301 >  conf->passwd = xstrdup(block_state.rpass.buf);
5302 >  conf->spasswd = xstrdup(block_state.spass.buf);
5303 >
5304 >  if (block_state.cert.buf[0])
5305 >    conf->certfp = xstrdup(block_state.cert.buf);
5306 >
5307 >  if (block_state.ciph.buf[0])
5308 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5309 >
5310 >  dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5311 >  dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5312 >
5313 >  if (block_state.bind.buf[0])
5314    {
5315 <    if (yy_aconf->host && yy_aconf->passwd && yy_aconf->spasswd)
5316 <    {
5317 <      if (conf_add_server(yy_conf, class_name) == -1)
5318 <        delete_conf_item(yy_conf);
5319 <    }
5315 >    memset(&hints, 0, sizeof(hints));
5316 >
5317 >    hints.ai_family   = AF_UNSPEC;
5318 >    hints.ai_socktype = SOCK_STREAM;
5319 >    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5320 >
5321 >    if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5322 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5323      else
5324      {
5325 <      if (yy_conf->name != NULL)
5421 <      {
5422 <        if (yy_aconf->host == NULL)
5423 <          yyerror("Ignoring connect block -- missing host");
5424 <        else if (!yy_aconf->passwd || !yy_aconf->spasswd)
5425 <          yyerror("Ignoring connect block -- missing password");
5426 <      }
5325 >      assert(res);
5326  
5327 <      /* XXX
5328 <       * This fixes a try_connections() core (caused by invalid class_ptr
5329 <       * pointers) reported by metalrock. That's an ugly fix, but there
5330 <       * is currently no better way. The entire config subsystem needs an
5432 <       * rewrite ASAP. make_conf_item() shouldn't really add things onto
5433 <       * a doubly linked list immediately without any sanity checks!  -Michael
5434 <       */
5435 <      delete_conf_item(yy_conf);
5327 >      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5328 >      conf->bind.ss.ss_family = res->ai_family;
5329 >      conf->bind.ss_len = res->ai_addrlen;
5330 >      freeaddrinfo(res);
5331      }
5437
5438    MyFree(class_name);
5439    class_name = NULL;
5440    yy_conf = NULL;
5441    yy_aconf = NULL;
5332    }
5333 +
5334 +  conf_add_class_to_conf(conf, block_state.class.buf);
5335 +  lookup_confhost(conf);
5336   }
5337 + #line 5338 "conf_parser.c" /* yacc.c:1646  */
5338      break;
5339  
5340 <  case 366:
5341 < /* Line 1787 of yacc.c  */
5448 < #line 2073 "conf_parser.y"
5340 >  case 429:
5341 > #line 2164 "conf_parser.y" /* yacc.c:1646  */
5342      {
5343    if (conf_parser_ctx.pass == 2)
5344 <  {
5452 <    MyFree(yy_conf->name);
5453 <    DupString(yy_conf->name, yylval.string);
5454 <  }
5344 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5345   }
5346 + #line 5347 "conf_parser.c" /* yacc.c:1646  */
5347      break;
5348  
5349 <  case 367:
5350 < /* Line 1787 of yacc.c  */
5460 < #line 2082 "conf_parser.y"
5349 >  case 430:
5350 > #line 2170 "conf_parser.y" /* yacc.c:1646  */
5351      {
5352    if (conf_parser_ctx.pass == 2)
5353 <  {
5464 <    MyFree(yy_aconf->host);
5465 <    DupString(yy_aconf->host, yylval.string);
5466 <  }
5353 >    strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5354   }
5355 + #line 5356 "conf_parser.c" /* yacc.c:1646  */
5356      break;
5357  
5358 <  case 368:
5359 < /* Line 1787 of yacc.c  */
5472 < #line 2091 "conf_parser.y"
5358 >  case 431:
5359 > #line 2176 "conf_parser.y" /* yacc.c:1646  */
5360      {
5361    if (conf_parser_ctx.pass == 2)
5362 <  {
5363 <    struct addrinfo hints, *res;
5364 <
5365 <    memset(&hints, 0, sizeof(hints));
5479 <
5480 <    hints.ai_family   = AF_UNSPEC;
5481 <    hints.ai_socktype = SOCK_STREAM;
5482 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5362 >    strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5363 > }
5364 > #line 5365 "conf_parser.c" /* yacc.c:1646  */
5365 >    break;
5366  
5367 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
5368 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
5486 <    else
5367 >  case 432:
5368 > #line 2182 "conf_parser.y" /* yacc.c:1646  */
5369      {
5370 <      assert(res != NULL);
5370 >  if (conf_parser_ctx.pass != 2)
5371 >    break;
5372  
5373 <      memcpy(&yy_aconf->bind, res->ai_addr, res->ai_addrlen);
5374 <      yy_aconf->bind.ss.ss_family = res->ai_family;
5375 <      yy_aconf->bind.ss_len = res->ai_addrlen;
5376 <      freeaddrinfo(res);
5377 <    }
5378 <  }
5373 >  if ((yyvsp[-1].string)[0] == ':')
5374 >    conf_error_report("Server passwords cannot begin with a colon");
5375 >  else if (strchr((yyvsp[-1].string), ' '))
5376 >    conf_error_report("Server passwords cannot contain spaces");
5377 >  else
5378 >    strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5379   }
5380 + #line 5381 "conf_parser.c" /* yacc.c:1646  */
5381      break;
5382  
5383 <  case 369:
5384 < /* Line 1787 of yacc.c  */
5501 < #line 2117 "conf_parser.y"
5383 >  case 433:
5384 > #line 2195 "conf_parser.y" /* yacc.c:1646  */
5385      {
5386 <  if (conf_parser_ctx.pass == 2)
5387 <  {
5505 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5506 <      yyerror("Server passwords cannot begin with a colon");
5507 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5508 <      yyerror("Server passwords cannot contain spaces");
5509 <    else {
5510 <      if (yy_aconf->spasswd != NULL)
5511 <        memset(yy_aconf->spasswd, 0, strlen(yy_aconf->spasswd));
5386 >  if (conf_parser_ctx.pass != 2)
5387 >    break;
5388  
5389 <      MyFree(yy_aconf->spasswd);
5390 <      DupString(yy_aconf->spasswd, yylval.string);
5391 <    }
5392 <  }
5389 >  if ((yyvsp[-1].string)[0] == ':')
5390 >    conf_error_report("Server passwords cannot begin with a colon");
5391 >  else if (strchr((yyvsp[-1].string), ' '))
5392 >    conf_error_report("Server passwords cannot contain spaces");
5393 >  else
5394 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5395   }
5396 + #line 5397 "conf_parser.c" /* yacc.c:1646  */
5397      break;
5398  
5399 <  case 370:
5400 < /* Line 1787 of yacc.c  */
5522 < #line 2135 "conf_parser.y"
5399 >  case 434:
5400 > #line 2208 "conf_parser.y" /* yacc.c:1646  */
5401      {
5402    if (conf_parser_ctx.pass == 2)
5403 <  {
5526 <    if ((yyvsp[(3) - (4)].string)[0] == ':')
5527 <      yyerror("Server passwords cannot begin with a colon");
5528 <    else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5529 <      yyerror("Server passwords cannot contain spaces");
5530 <    else {
5531 <      if (yy_aconf->passwd != NULL)
5532 <        memset(yy_aconf->passwd, 0, strlen(yy_aconf->passwd));
5533 <
5534 <      MyFree(yy_aconf->passwd);
5535 <      DupString(yy_aconf->passwd, yylval.string);
5536 <    }
5537 <  }
5403 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5404   }
5405 + #line 5406 "conf_parser.c" /* yacc.c:1646  */
5406      break;
5407  
5408 <  case 371:
5409 < /* Line 1787 of yacc.c  */
5543 < #line 2153 "conf_parser.y"
5408 >  case 435:
5409 > #line 2214 "conf_parser.y" /* yacc.c:1646  */
5410      {
5411    if (conf_parser_ctx.pass == 2)
5412 <    yy_aconf->port = (yyvsp[(3) - (4)].number);
5412 >    block_state.port.value = (yyvsp[-1].number);
5413   }
5414 + #line 5415 "conf_parser.c" /* yacc.c:1646  */
5415      break;
5416  
5417 <  case 372:
5418 < /* Line 1787 of yacc.c  */
5552 < #line 2159 "conf_parser.y"
5417 >  case 436:
5418 > #line 2220 "conf_parser.y" /* yacc.c:1646  */
5419      {
5420    if (conf_parser_ctx.pass == 2)
5421 <    yy_aconf->aftype = AF_INET;
5421 >    block_state.aftype.value = AF_INET;
5422   }
5423 + #line 5424 "conf_parser.c" /* yacc.c:1646  */
5424      break;
5425  
5426 <  case 373:
5427 < /* Line 1787 of yacc.c  */
5561 < #line 2163 "conf_parser.y"
5426 >  case 437:
5427 > #line 2224 "conf_parser.y" /* yacc.c:1646  */
5428      {
5563 #ifdef IPV6
5429    if (conf_parser_ctx.pass == 2)
5430 <    yy_aconf->aftype = AF_INET6;
5566 < #endif
5430 >    block_state.aftype.value = AF_INET6;
5431   }
5432 + #line 5433 "conf_parser.c" /* yacc.c:1646  */
5433      break;
5434  
5435 <  case 374:
5436 < /* Line 1787 of yacc.c  */
5572 < #line 2171 "conf_parser.y"
5435 >  case 438:
5436 > #line 2230 "conf_parser.y" /* yacc.c:1646  */
5437      {
5438 +  block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5439   }
5440 + #line 5441 "conf_parser.c" /* yacc.c:1646  */
5441      break;
5442  
5443 <  case 378:
5444 < /* Line 1787 of yacc.c  */
5579 < #line 2176 "conf_parser.y"
5443 >  case 442:
5444 > #line 2236 "conf_parser.y" /* yacc.c:1646  */
5445      {
5446    if (conf_parser_ctx.pass == 2)
5447 <    SetConfAllowAutoConn(yy_aconf);
5447 >    block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5448   }
5449 + #line 5450 "conf_parser.c" /* yacc.c:1646  */
5450      break;
5451  
5452 <  case 379:
5453 < /* Line 1787 of yacc.c  */
5588 < #line 2180 "conf_parser.y"
5452 >  case 443:
5453 > #line 2240 "conf_parser.y" /* yacc.c:1646  */
5454      {
5455    if (conf_parser_ctx.pass == 2)
5456 <    SetConfSSL(yy_aconf);
5456 >    block_state.flags.value |= CONF_FLAGS_SSL;
5457   }
5458 + #line 5459 "conf_parser.c" /* yacc.c:1646  */
5459      break;
5460  
5461 <  case 380:
5462 < /* Line 1787 of yacc.c  */
5597 < #line 2186 "conf_parser.y"
5461 >  case 444:
5462 > #line 2246 "conf_parser.y" /* yacc.c:1646  */
5463      {
5464    if (conf_parser_ctx.pass == 2)
5465    {
5466      if (yylval.number)
5467 <      yy_aconf->flags |= CONF_FLAGS_ENCRYPTED;
5467 >      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5468      else
5469 <      yy_aconf->flags &= ~CONF_FLAGS_ENCRYPTED;
5469 >      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5470    }
5471   }
5472 + #line 5473 "conf_parser.c" /* yacc.c:1646  */
5473      break;
5474  
5475 <  case 381:
5476 < /* Line 1787 of yacc.c  */
5611 < #line 2197 "conf_parser.y"
5475 >  case 445:
5476 > #line 2257 "conf_parser.y" /* yacc.c:1646  */
5477      {
5478    if (conf_parser_ctx.pass == 2)
5479 <  {
5615 <    char *mask;
5616 <
5617 <    DupString(mask, yylval.string);
5618 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->hub_list);
5619 <  }
5479 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5480   }
5481 + #line 5482 "conf_parser.c" /* yacc.c:1646  */
5482      break;
5483  
5484 <  case 382:
5485 < /* Line 1787 of yacc.c  */
5625 < #line 2208 "conf_parser.y"
5484 >  case 446:
5485 > #line 2263 "conf_parser.y" /* yacc.c:1646  */
5486      {
5487    if (conf_parser_ctx.pass == 2)
5488 <  {
5629 <    char *mask;
5630 <
5631 <    DupString(mask, yylval.string);
5632 <    dlinkAdd(mask, make_dlink_node(), &yy_aconf->leaf_list);
5633 <  }
5488 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5489   }
5490 + #line 5491 "conf_parser.c" /* yacc.c:1646  */
5491      break;
5492  
5493 <  case 383:
5494 < /* Line 1787 of yacc.c  */
5639 < #line 2219 "conf_parser.y"
5493 >  case 447:
5494 > #line 2269 "conf_parser.y" /* yacc.c:1646  */
5495      {
5496    if (conf_parser_ctx.pass == 2)
5497 <  {
5643 <    MyFree(class_name);
5644 <    DupString(class_name, yylval.string);
5645 <  }
5497 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5498   }
5499 + #line 5500 "conf_parser.c" /* yacc.c:1646  */
5500      break;
5501  
5502 <  case 384:
5503 < /* Line 1787 of yacc.c  */
5651 < #line 2228 "conf_parser.y"
5502 >  case 448:
5503 > #line 2275 "conf_parser.y" /* yacc.c:1646  */
5504      {
5505 < #ifdef HAVE_LIBCRYPTO
5505 > #ifdef HAVE_TLS
5506    if (conf_parser_ctx.pass == 2)
5507 <  {
5656 <    MyFree(yy_aconf->cipher_list);
5657 <    DupString(yy_aconf->cipher_list, yylval.string);
5658 <  }
5507 >    strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5508   #else
5509    if (conf_parser_ctx.pass == 2)
5510 <    yyerror("Ignoring connect::ciphers -- no OpenSSL support");
5510 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5511   #endif
5512   }
5513 + #line 5514 "conf_parser.c" /* yacc.c:1646  */
5514      break;
5515  
5516 <  case 385:
5517 < /* Line 1787 of yacc.c  */
5668 < #line 2246 "conf_parser.y"
5516 >  case 449:
5517 > #line 2290 "conf_parser.y" /* yacc.c:1646  */
5518      {
5519    if (conf_parser_ctx.pass == 2)
5520 <  {
5672 <    userbuf[0] = hostbuf[0] = reasonbuf[0] = '\0';
5673 <    regex_ban = 0;
5674 <  }
5520 >    reset_block_state();
5521   }
5522 + #line 5523 "conf_parser.c" /* yacc.c:1646  */
5523      break;
5524  
5525 <  case 386:
5526 < /* Line 1787 of yacc.c  */
5680 < #line 2253 "conf_parser.y"
5681 <    {
5682 <  if (conf_parser_ctx.pass == 2)
5683 <  {
5684 <    if (userbuf[0] && hostbuf[0])
5525 >  case 450:
5526 > #line 2294 "conf_parser.y" /* yacc.c:1646  */
5527      {
5528 <      if (regex_ban)
5687 <      {
5688 < #ifdef HAVE_LIBPCRE
5689 <        void *exp_user = NULL;
5690 <        void *exp_host = NULL;
5691 <        const char *errptr = NULL;
5528 >  struct MaskItem *conf = NULL;
5529  
5530 <        if (!(exp_user = ircd_pcre_compile(userbuf, &errptr)) ||
5694 <            !(exp_host = ircd_pcre_compile(hostbuf, &errptr)))
5695 <        {
5696 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5697 <               errptr);
5698 <          break;
5699 <        }
5700 <
5701 <        yy_aconf = map_to_conf(make_conf_item(RKLINE_TYPE));
5702 <        yy_aconf->regexuser = exp_user;
5703 <        yy_aconf->regexhost = exp_host;
5704 <
5705 <        DupString(yy_aconf->user, userbuf);
5706 <        DupString(yy_aconf->host, hostbuf);
5707 <
5708 <        if (reasonbuf[0])
5709 <          DupString(yy_aconf->reason, reasonbuf);
5710 <        else
5711 <          DupString(yy_aconf->reason, "No reason");
5712 < #else
5713 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5714 <        break;
5715 < #endif
5716 <      }
5717 <      else
5718 <      {
5719 <        find_and_delete_temporary(userbuf, hostbuf, CONF_KLINE);
5720 <
5721 <        yy_aconf = map_to_conf(make_conf_item(KLINE_TYPE));
5722 <
5723 <        DupString(yy_aconf->user, userbuf);
5724 <        DupString(yy_aconf->host, hostbuf);
5725 <
5726 <        if (reasonbuf[0])
5727 <          DupString(yy_aconf->reason, reasonbuf);
5728 <        else
5729 <          DupString(yy_aconf->reason, "No reason");
5730 <        add_conf_by_address(CONF_KLINE, yy_aconf);
5731 <      }
5732 <    }
5733 <
5734 <    yy_aconf = NULL;
5735 <  }
5736 < }
5530 >  if (conf_parser_ctx.pass != 2)
5531      break;
5532  
5533 <  case 387:
5534 < /* Line 1787 of yacc.c  */
5741 < #line 2311 "conf_parser.y"
5742 <    {
5743 < }
5533 >  if (!block_state.user.buf[0] ||
5534 >      !block_state.host.buf[0])
5535      break;
5536  
5537 <  case 391:
5538 < /* Line 1787 of yacc.c  */
5539 < #line 2316 "conf_parser.y"
5540 <    {
5541 <  if (conf_parser_ctx.pass == 2)
5542 <    regex_ban = 1;
5537 >  conf = conf_make(CONF_KLINE);
5538 >  conf->user = xstrdup(block_state.user.buf);
5539 >  conf->host = xstrdup(block_state.host.buf);
5540 >
5541 >  if (block_state.rpass.buf[0])
5542 >    conf->reason = xstrdup(block_state.rpass.buf);
5543 >  else
5544 >    conf->reason = xstrdup(CONF_NOREASON);
5545 >  add_conf_by_address(CONF_KLINE, conf);
5546   }
5547 + #line 5548 "conf_parser.c" /* yacc.c:1646  */
5548      break;
5549  
5550 <  case 398:
5551 < /* Line 1787 of yacc.c  */
5757 < #line 2325 "conf_parser.y"
5550 >  case 456:
5551 > #line 2319 "conf_parser.y" /* yacc.c:1646  */
5552      {
5553 +
5554    if (conf_parser_ctx.pass == 2)
5555    {
5556      struct split_nuh_item nuh;
5557  
5558      nuh.nuhmask  = yylval.string;
5559      nuh.nickptr  = NULL;
5560 <    nuh.userptr  = userbuf;
5561 <    nuh.hostptr  = hostbuf;
5560 >    nuh.userptr  = block_state.user.buf;
5561 >    nuh.hostptr  = block_state.host.buf;
5562  
5563      nuh.nicksize = 0;
5564 <    nuh.usersize = sizeof(userbuf);
5565 <    nuh.hostsize = sizeof(hostbuf);
5564 >    nuh.usersize = sizeof(block_state.user.buf);
5565 >    nuh.hostsize = sizeof(block_state.host.buf);
5566  
5567      split_nuh(&nuh);
5568    }
5569   }
5570 + #line 5571 "conf_parser.c" /* yacc.c:1646  */
5571      break;
5572  
5573 <  case 399:
5574 < /* Line 1787 of yacc.c  */
5779 < #line 2344 "conf_parser.y"
5573 >  case 457:
5574 > #line 2339 "conf_parser.y" /* yacc.c:1646  */
5575      {
5576    if (conf_parser_ctx.pass == 2)
5577 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5577 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5578   }
5579 + #line 5580 "conf_parser.c" /* yacc.c:1646  */
5580      break;
5581  
5582 <  case 400:
5583 < /* Line 1787 of yacc.c  */
5788 < #line 2353 "conf_parser.y"
5582 >  case 458:
5583 > #line 2349 "conf_parser.y" /* yacc.c:1646  */
5584      {
5585    if (conf_parser_ctx.pass == 2)
5586 <    hostbuf[0] = reasonbuf[0] = '\0';
5586 >    reset_block_state();
5587   }
5588 + #line 5589 "conf_parser.c" /* yacc.c:1646  */
5589      break;
5590  
5591 <  case 401:
5592 < /* Line 1787 of yacc.c  */
5797 < #line 2357 "conf_parser.y"
5591 >  case 459:
5592 > #line 2353 "conf_parser.y" /* yacc.c:1646  */
5593      {
5594 <  if (conf_parser_ctx.pass == 2)
5595 <  {
5596 <    if (hostbuf[0] && parse_netmask(hostbuf, NULL, NULL) != HM_HOST)
5597 <    {
5803 <      find_and_delete_temporary(NULL, hostbuf, CONF_DLINE);
5594 >  struct MaskItem *conf = NULL;
5595 >
5596 >  if (conf_parser_ctx.pass != 2)
5597 >    break;
5598  
5599 <      yy_aconf = map_to_conf(make_conf_item(DLINE_TYPE));
5600 <      DupString(yy_aconf->host, hostbuf);
5599 >  if (!block_state.addr.buf[0])
5600 >    break;
5601  
5602 <      if (reasonbuf[0])
5603 <        DupString(yy_aconf->reason, reasonbuf);
5604 <      else
5605 <        DupString(yy_aconf->reason, "No reason");
5606 <      add_conf_by_address(CONF_DLINE, yy_aconf);
5607 <      yy_aconf = NULL;
5608 <    }
5602 >  if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5603 >  {
5604 >    conf = conf_make(CONF_DLINE);
5605 >    conf->host = xstrdup(block_state.addr.buf);
5606 >
5607 >    if (block_state.rpass.buf[0])
5608 >      conf->reason = xstrdup(block_state.rpass.buf);
5609 >    else
5610 >      conf->reason = xstrdup(CONF_NOREASON);
5611 >    add_conf_by_address(CONF_DLINE, conf);
5612    }
5613   }
5614 + #line 5615 "conf_parser.c" /* yacc.c:1646  */
5615      break;
5616  
5617 <  case 407:
5618 < /* Line 1787 of yacc.c  */
5821 < #line 2381 "conf_parser.y"
5617 >  case 465:
5618 > #line 2379 "conf_parser.y" /* yacc.c:1646  */
5619      {
5620    if (conf_parser_ctx.pass == 2)
5621 <    strlcpy(hostbuf, yylval.string, sizeof(hostbuf));
5621 >    strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5622   }
5623 + #line 5624 "conf_parser.c" /* yacc.c:1646  */
5624      break;
5625  
5626 <  case 408:
5627 < /* Line 1787 of yacc.c  */
5830 < #line 2387 "conf_parser.y"
5626 >  case 466:
5627 > #line 2385 "conf_parser.y" /* yacc.c:1646  */
5628      {
5629    if (conf_parser_ctx.pass == 2)
5630 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5630 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5631   }
5632 + #line 5633 "conf_parser.c" /* yacc.c:1646  */
5633      break;
5634  
5635 <  case 414:
5636 < /* Line 1787 of yacc.c  */
5839 < #line 2401 "conf_parser.y"
5635 >  case 472:
5636 > #line 2400 "conf_parser.y" /* yacc.c:1646  */
5637      {
5638    if (conf_parser_ctx.pass == 2)
5639    {
5640 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5640 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5641      {
5642 <      yy_aconf = map_to_conf(make_conf_item(EXEMPTDLINE_TYPE));
5643 <      DupString(yy_aconf->host, yylval.string);
5642 >      struct MaskItem *conf = conf_make(CONF_EXEMPT);
5643 >      conf->host = xstrdup(yylval.string);
5644  
5645 <      add_conf_by_address(CONF_EXEMPTDLINE, yy_aconf);
5849 <      yy_aconf = NULL;
5645 >      add_conf_by_address(CONF_EXEMPT, conf);
5646      }
5647    }
5648   }
5649 + #line 5650 "conf_parser.c" /* yacc.c:1646  */
5650      break;
5651  
5652 <  case 415:
5653 < /* Line 1787 of yacc.c  */
5857 < #line 2419 "conf_parser.y"
5652 >  case 473:
5653 > #line 2417 "conf_parser.y" /* yacc.c:1646  */
5654      {
5655    if (conf_parser_ctx.pass == 2)
5656 <  {
5861 <    regex_ban = 0;
5862 <    reasonbuf[0] = gecos_name[0] = '\0';
5863 <  }
5656 >    reset_block_state();
5657   }
5658 + #line 5659 "conf_parser.c" /* yacc.c:1646  */
5659      break;
5660  
5661 <  case 416:
5662 < /* Line 1787 of yacc.c  */
5869 < #line 2426 "conf_parser.y"
5661 >  case 474:
5662 > #line 2421 "conf_parser.y" /* yacc.c:1646  */
5663      {
5664 <  if (conf_parser_ctx.pass == 2)
5665 <  {
5873 <    if (gecos_name[0])
5874 <    {
5875 <      if (regex_ban)
5876 <      {
5877 < #ifdef HAVE_LIBPCRE
5878 <        void *exp_p = NULL;
5879 <        const char *errptr = NULL;
5880 <
5881 <        if (!(exp_p = ircd_pcre_compile(gecos_name, &errptr)))
5882 <        {
5883 <          ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5884 <               errptr);
5885 <          break;
5886 <        }
5887 <
5888 <        yy_conf = make_conf_item(RXLINE_TYPE);
5889 <        yy_conf->regexpname = exp_p;
5890 < #else
5891 <        ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: no PCRE support");
5892 <        break;
5893 < #endif
5894 <      }
5895 <      else
5896 <        yy_conf = make_conf_item(XLINE_TYPE);
5897 <
5898 <      yy_match_item = map_to_conf(yy_conf);
5899 <      DupString(yy_conf->name, gecos_name);
5664 >  if (conf_parser_ctx.pass != 2)
5665 >    break;
5666  
5667 <      if (reasonbuf[0])
5902 <        DupString(yy_match_item->reason, reasonbuf);
5903 <      else
5904 <        DupString(yy_match_item->reason, "No reason");
5905 <    }
5906 <  }
5907 < }
5667 >  if (!block_state.name.buf[0])
5668      break;
5669  
5670 <  case 417:
5671 < /* Line 1787 of yacc.c  */
5672 < #line 2466 "conf_parser.y"
5673 <    {
5670 >  struct GecosItem *gecos = gecos_make();
5671 >  gecos->mask = xstrdup(block_state.name.buf);
5672 >
5673 >  if (block_state.rpass.buf[0])
5674 >    gecos->reason = xstrdup(block_state.rpass.buf);
5675 >  else
5676 >    gecos->reason = xstrdup(CONF_NOREASON);
5677   }
5678 + #line 5679 "conf_parser.c" /* yacc.c:1646  */
5679      break;
5680  
5681 <  case 421:
5682 < /* Line 1787 of yacc.c  */
5919 < #line 2471 "conf_parser.y"
5681 >  case 480:
5682 > #line 2441 "conf_parser.y" /* yacc.c:1646  */
5683      {
5684    if (conf_parser_ctx.pass == 2)
5685 <    regex_ban = 1;
5685 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5686   }
5687 + #line 5688 "conf_parser.c" /* yacc.c:1646  */
5688      break;
5689  
5690 <  case 428:
5691 < /* Line 1787 of yacc.c  */
5928 < #line 2480 "conf_parser.y"
5690 >  case 481:
5691 > #line 2447 "conf_parser.y" /* yacc.c:1646  */
5692      {
5693    if (conf_parser_ctx.pass == 2)
5694 <    strlcpy(gecos_name, yylval.string, sizeof(gecos_name));
5694 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5695   }
5696 + #line 5697 "conf_parser.c" /* yacc.c:1646  */
5697      break;
5698  
5699 <  case 429:
5700 < /* Line 1787 of yacc.c  */
5937 < #line 2486 "conf_parser.y"
5699 >  case 533:
5700 > #line 2510 "conf_parser.y" /* yacc.c:1646  */
5701      {
5702 <  if (conf_parser_ctx.pass == 2)
5940 <    strlcpy(reasonbuf, yylval.string, sizeof(reasonbuf));
5702 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5703   }
5704 + #line 5705 "conf_parser.c" /* yacc.c:1646  */
5705      break;
5706  
5707 <  case 487:
5708 < /* Line 1787 of yacc.c  */
5946 < #line 2531 "conf_parser.y"
5707 >  case 534:
5708 > #line 2515 "conf_parser.y" /* yacc.c:1646  */
5709      {
5710 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5710 >  ConfigGeneral.away_time = (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  */
5954 < #line 2536 "conf_parser.y"
5715 >  case 535:
5716 > #line 2520 "conf_parser.y" /* yacc.c:1646  */
5717      {
5718 <  if (conf_parser_ctx.pass == 2)
5957 <    ConfigFileEntry.glines = yylval.number;
5718 >  ConfigGeneral.max_watch = (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  */
5963 < #line 2542 "conf_parser.y"
5723 >  case 536:
5724 > #line 2525 "conf_parser.y" /* yacc.c:1646  */
5725      {
5726 <  if (conf_parser_ctx.pass == 2)
5966 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5726 >  ConfigGeneral.whowas_history_length = (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  */
5972 < #line 2548 "conf_parser.y"
5731 >  case 537:
5732 > #line 2530 "conf_parser.y" /* yacc.c:1646  */
5733      {
5734    if (conf_parser_ctx.pass == 2)
5735 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5735 >    ConfigGeneral.cycle_on_host_change = yylval.number;
5736   }
5737 + #line 5738 "conf_parser.c" /* yacc.c:1646  */
5738      break;
5739  
5740 <  case 491:
5741 < /* Line 1787 of yacc.c  */
5981 < #line 2554 "conf_parser.y"
5740 >  case 538:
5741 > #line 2536 "conf_parser.y" /* yacc.c:1646  */
5742      {
5743 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5743 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5744   }
5745 + #line 5746 "conf_parser.c" /* yacc.c:1646  */
5746      break;
5747  
5748 <  case 492:
5749 < /* Line 1787 of yacc.c  */
5989 < #line 2559 "conf_parser.y"
5748 >  case 539:
5749 > #line 2541 "conf_parser.y" /* yacc.c:1646  */
5750      {
5751 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5751 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5752   }
5753 + #line 5754 "conf_parser.c" /* yacc.c:1646  */
5754      break;
5755  
5756 <  case 493:
5757 < /* Line 1787 of yacc.c  */
5997 < #line 2564 "conf_parser.y"
5756 >  case 540:
5757 > #line 2546 "conf_parser.y" /* yacc.c:1646  */
5758      {
5759 <  ConfigFileEntry.use_whois_actually = yylval.number;
5759 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5760   }
5761 + #line 5762 "conf_parser.c" /* yacc.c:1646  */
5762      break;
5763  
5764 <  case 494:
5765 < /* Line 1787 of yacc.c  */
6005 < #line 2569 "conf_parser.y"
5764 >  case 541:
5765 > #line 2551 "conf_parser.y" /* yacc.c:1646  */
5766      {
5767 <  GlobalSetOptions.rejecttime = yylval.number;
5767 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5768   }
5769 + #line 5770 "conf_parser.c" /* yacc.c:1646  */
5770      break;
5771  
5772 <  case 495:
5773 < /* Line 1787 of yacc.c  */
6013 < #line 2574 "conf_parser.y"
5772 >  case 542:
5773 > #line 2556 "conf_parser.y" /* yacc.c:1646  */
5774      {
5775 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5775 >  ConfigGeneral.tkline_expire_notices = yylval.number;
5776   }
5777 + #line 5778 "conf_parser.c" /* yacc.c:1646  */
5778      break;
5779  
5780 <  case 496:
5781 < /* Line 1787 of yacc.c  */
6021 < #line 2579 "conf_parser.y"
5780 >  case 543:
5781 > #line 2561 "conf_parser.y" /* yacc.c:1646  */
5782      {
5783 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5783 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5784   }
5785 + #line 5786 "conf_parser.c" /* yacc.c:1646  */
5786      break;
5787  
5788 <  case 497:
5789 < /* Line 1787 of yacc.c  */
6029 < #line 2584 "conf_parser.y"
5788 >  case 544:
5789 > #line 2566 "conf_parser.y" /* yacc.c:1646  */
5790      {
5791 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5791 >  ConfigGeneral.ignore_bogus_ts = yylval.number;
5792   }
5793 + #line 5794 "conf_parser.c" /* yacc.c:1646  */
5794      break;
5795  
5796 <  case 498:
5797 < /* Line 1787 of yacc.c  */
6037 < #line 2589 "conf_parser.y"
5796 >  case 545:
5797 > #line 2571 "conf_parser.y" /* yacc.c:1646  */
5798      {
5799 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5799 >  ConfigGeneral.failed_oper_notice = yylval.number;
5800   }
5801 + #line 5802 "conf_parser.c" /* yacc.c:1646  */
5802      break;
5803  
5804 <  case 499:
5805 < /* Line 1787 of yacc.c  */
6045 < #line 2594 "conf_parser.y"
5804 >  case 546:
5805 > #line 2576 "conf_parser.y" /* yacc.c:1646  */
5806      {
5807 <  ConfigFileEntry.disable_remote = yylval.number;
5807 >  ConfigGeneral.anti_nick_flood = yylval.number;
5808   }
5809 + #line 5810 "conf_parser.c" /* yacc.c:1646  */
5810      break;
5811  
5812 <  case 500:
5813 < /* Line 1787 of yacc.c  */
6053 < #line 2599 "conf_parser.y"
5812 >  case 547:
5813 > #line 2581 "conf_parser.y" /* yacc.c:1646  */
5814      {
5815 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5815 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5816   }
5817 + #line 5818 "conf_parser.c" /* yacc.c:1646  */
5818      break;
5819  
5820 <  case 501:
5821 < /* Line 1787 of yacc.c  */
6061 < #line 2604 "conf_parser.y"
5820 >  case 548:
5821 > #line 2586 "conf_parser.y" /* yacc.c:1646  */
5822      {
5823 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5823 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5824   }
5825 + #line 5826 "conf_parser.c" /* yacc.c:1646  */
5826      break;
5827  
5828 <  case 502:
5829 < /* Line 1787 of yacc.c  */
6069 < #line 2609 "conf_parser.y"
5828 >  case 549:
5829 > #line 2591 "conf_parser.y" /* yacc.c:1646  */
5830      {
5831 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5831 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5832   }
5833 + #line 5834 "conf_parser.c" /* yacc.c:1646  */
5834      break;
5835  
5836 <  case 503:
5837 < /* Line 1787 of yacc.c  */
6077 < #line 2614 "conf_parser.y"
5836 >  case 550:
5837 > #line 2596 "conf_parser.y" /* yacc.c:1646  */
5838      {
5839 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5839 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5840   }
5841 + #line 5842 "conf_parser.c" /* yacc.c:1646  */
5842      break;
5843  
5844 <  case 504:
5845 < /* Line 1787 of yacc.c  */
6085 < #line 2619 "conf_parser.y"
5844 >  case 551:
5845 > #line 2601 "conf_parser.y" /* yacc.c:1646  */
5846      {
5847 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5847 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5848   }
5849 + #line 5850 "conf_parser.c" /* yacc.c:1646  */
5850      break;
5851  
5852 <  case 505:
5853 < /* Line 1787 of yacc.c  */
6093 < #line 2624 "conf_parser.y"
5852 >  case 552:
5853 > #line 2606 "conf_parser.y" /* yacc.c:1646  */
5854      {
5855 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5855 >  if (conf_parser_ctx.pass == 2)
5856 >    ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5857   }
5858 + #line 5859 "conf_parser.c" /* yacc.c:1646  */
5859      break;
5860  
5861 <  case 506:
5862 < /* Line 1787 of yacc.c  */
6101 < #line 2629 "conf_parser.y"
5861 >  case 553:
5862 > #line 2612 "conf_parser.y" /* yacc.c:1646  */
5863      {
5864 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5864 >  ConfigGeneral.invisible_on_connect = yylval.number;
5865   }
5866 + #line 5867 "conf_parser.c" /* yacc.c:1646  */
5867      break;
5868  
5869 <  case 507:
5870 < /* Line 1787 of yacc.c  */
6109 < #line 2634 "conf_parser.y"
5869 >  case 554:
5870 > #line 2617 "conf_parser.y" /* yacc.c:1646  */
5871      {
5872 <  if (conf_parser_ctx.pass == 2)
6112 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5872 >  ConfigGeneral.warn_no_connect_block = yylval.number;
5873   }
5874 + #line 5875 "conf_parser.c" /* yacc.c:1646  */
5875      break;
5876  
5877 <  case 508:
5878 < /* Line 1787 of yacc.c  */
6118 < #line 2640 "conf_parser.y"
5877 >  case 555:
5878 > #line 2622 "conf_parser.y" /* yacc.c:1646  */
5879      {
5880 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6121 <  {
6122 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6123 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6124 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6125 <    exit(0);
6126 <  }
5880 >  ConfigGeneral.stats_e_disabled = yylval.number;
5881   }
5882 + #line 5883 "conf_parser.c" /* yacc.c:1646  */
5883      break;
5884  
5885 <  case 509:
5886 < /* Line 1787 of yacc.c  */
6132 < #line 2651 "conf_parser.y"
5885 >  case 556:
5886 > #line 2627 "conf_parser.y" /* yacc.c:1646  */
5887      {
5888 <  ConfigFileEntry.kline_with_reason = yylval.number;
5888 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5889   }
5890 + #line 5891 "conf_parser.c" /* yacc.c:1646  */
5891      break;
5892  
5893 <  case 510:
5894 < /* Line 1787 of yacc.c  */
6140 < #line 2656 "conf_parser.y"
5893 >  case 557:
5894 > #line 2632 "conf_parser.y" /* yacc.c:1646  */
5895      {
5896 <  if (conf_parser_ctx.pass == 2)
6143 <  {
6144 <    MyFree(ConfigFileEntry.kline_reason);
6145 <    DupString(ConfigFileEntry.kline_reason, yylval.string);
6146 <  }
5896 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5897   }
5898 + #line 5899 "conf_parser.c" /* yacc.c:1646  */
5899      break;
5900  
5901 <  case 511:
5902 < /* Line 1787 of yacc.c  */
6152 < #line 2665 "conf_parser.y"
5901 >  case 558:
5902 > #line 2637 "conf_parser.y" /* yacc.c:1646  */
5903      {
5904 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5904 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5905   }
5906 + #line 5907 "conf_parser.c" /* yacc.c:1646  */
5907      break;
5908  
5909 <  case 512:
5910 < /* Line 1787 of yacc.c  */
6160 < #line 2670 "conf_parser.y"
5909 >  case 559:
5910 > #line 2642 "conf_parser.y" /* yacc.c:1646  */
5911      {
5912 <  ConfigFileEntry.warn_no_nline = yylval.number;
5912 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5913   }
5914 + #line 5915 "conf_parser.c" /* yacc.c:1646  */
5915      break;
5916  
5917 <  case 513:
5918 < /* Line 1787 of yacc.c  */
6168 < #line 2675 "conf_parser.y"
5917 >  case 560:
5918 > #line 2647 "conf_parser.y" /* yacc.c:1646  */
5919      {
5920 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5920 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5921   }
5922 + #line 5923 "conf_parser.c" /* yacc.c:1646  */
5923      break;
5924  
5925 <  case 514:
5926 < /* Line 1787 of yacc.c  */
6176 < #line 2680 "conf_parser.y"
5925 >  case 561:
5926 > #line 2650 "conf_parser.y" /* yacc.c:1646  */
5927      {
5928 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5928 >  ConfigGeneral.stats_k_oper_only = 1;
5929   }
5930 + #line 5931 "conf_parser.c" /* yacc.c:1646  */
5931      break;
5932  
5933 <  case 515:
5934 < /* Line 1787 of yacc.c  */
6184 < #line 2685 "conf_parser.y"
5933 >  case 562:
5934 > #line 2655 "conf_parser.y" /* yacc.c:1646  */
5935      {
5936 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5936 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5937   }
5938 + #line 5939 "conf_parser.c" /* yacc.c:1646  */
5939      break;
5940  
5941 <  case 516:
5942 < /* Line 1787 of yacc.c  */
6192 < #line 2690 "conf_parser.y"
5941 >  case 563:
5942 > #line 2658 "conf_parser.y" /* yacc.c:1646  */
5943      {
5944 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5944 >  ConfigGeneral.stats_i_oper_only = 1;
5945   }
5946 + #line 5947 "conf_parser.c" /* yacc.c:1646  */
5947      break;
5948  
5949 <  case 517:
5950 < /* Line 1787 of yacc.c  */
6200 < #line 2693 "conf_parser.y"
5949 >  case 564:
5950 > #line 2663 "conf_parser.y" /* yacc.c:1646  */
5951      {
5952 <  ConfigFileEntry.stats_k_oper_only = 1;
5952 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5953   }
5954 + #line 5955 "conf_parser.c" /* yacc.c:1646  */
5955      break;
5956  
5957 <  case 518:
5958 < /* Line 1787 of yacc.c  */
6208 < #line 2698 "conf_parser.y"
5957 >  case 565:
5958 > #line 2668 "conf_parser.y" /* yacc.c:1646  */
5959      {
5960 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5960 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5961   }
5962 + #line 5963 "conf_parser.c" /* yacc.c:1646  */
5963      break;
5964  
5965 <  case 519:
5966 < /* Line 1787 of yacc.c  */
6216 < #line 2701 "conf_parser.y"
5965 >  case 566:
5966 > #line 2673 "conf_parser.y" /* yacc.c:1646  */
5967      {
5968 <  ConfigFileEntry.stats_i_oper_only = 1;
5968 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5969   }
5970 + #line 5971 "conf_parser.c" /* yacc.c:1646  */
5971      break;
5972  
5973 <  case 520:
5974 < /* Line 1787 of yacc.c  */
6224 < #line 2706 "conf_parser.y"
5973 >  case 567:
5974 > #line 2678 "conf_parser.y" /* yacc.c:1646  */
5975      {
5976 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5976 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5977   }
5978 + #line 5979 "conf_parser.c" /* yacc.c:1646  */
5979      break;
5980  
5981 <  case 521:
5982 < /* Line 1787 of yacc.c  */
6232 < #line 2711 "conf_parser.y"
5981 >  case 568:
5982 > #line 2683 "conf_parser.y" /* yacc.c:1646  */
5983      {
5984 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5984 >  ConfigGeneral.short_motd = yylval.number;
5985   }
5986 + #line 5987 "conf_parser.c" /* yacc.c:1646  */
5987      break;
5988  
5989 <  case 522:
5990 < /* Line 1787 of yacc.c  */
6240 < #line 2716 "conf_parser.y"
5989 >  case 569:
5990 > #line 2688 "conf_parser.y" /* yacc.c:1646  */
5991      {
5992 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5992 >  ConfigGeneral.no_oper_flood = yylval.number;
5993   }
5994 + #line 5995 "conf_parser.c" /* yacc.c:1646  */
5995      break;
5996  
5997 <  case 523:
5998 < /* Line 1787 of yacc.c  */
6248 < #line 2721 "conf_parser.y"
5997 >  case 570:
5998 > #line 2693 "conf_parser.y" /* yacc.c:1646  */
5999      {
6000 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6000 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
6001   }
6002 + #line 6003 "conf_parser.c" /* yacc.c:1646  */
6003      break;
6004  
6005 <  case 524:
6006 < /* Line 1787 of yacc.c  */
6256 < #line 2726 "conf_parser.y"
6005 >  case 571:
6006 > #line 2698 "conf_parser.y" /* yacc.c:1646  */
6007      {
6008 <  ConfigFileEntry.short_motd = yylval.number;
6008 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
6009   }
6010 + #line 6011 "conf_parser.c" /* yacc.c:1646  */
6011      break;
6012  
6013 <  case 525:
6014 < /* Line 1787 of yacc.c  */
6264 < #line 2731 "conf_parser.y"
6013 >  case 572:
6014 > #line 2703 "conf_parser.y" /* yacc.c:1646  */
6015      {
6016 <  ConfigFileEntry.no_oper_flood = yylval.number;
6016 >  ConfigGeneral.ping_cookie = yylval.number;
6017   }
6018 + #line 6019 "conf_parser.c" /* yacc.c:1646  */
6019      break;
6020  
6021 <  case 526:
6022 < /* Line 1787 of yacc.c  */
6272 < #line 2736 "conf_parser.y"
6021 >  case 573:
6022 > #line 2708 "conf_parser.y" /* yacc.c:1646  */
6023      {
6024 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
6024 >  ConfigGeneral.disable_auth = yylval.number;
6025   }
6026 + #line 6027 "conf_parser.c" /* yacc.c:1646  */
6027      break;
6028  
6029 <  case 527:
6030 < /* Line 1787 of yacc.c  */
6280 < #line 2741 "conf_parser.y"
6029 >  case 574:
6030 > #line 2713 "conf_parser.y" /* yacc.c:1646  */
6031      {
6032 <  ConfigFileEntry.oper_pass_resv = yylval.number;
6032 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
6033   }
6034 + #line 6035 "conf_parser.c" /* yacc.c:1646  */
6035      break;
6036  
6037 <  case 528:
6038 < /* Line 1787 of yacc.c  */
6288 < #line 2746 "conf_parser.y"
6037 >  case 575:
6038 > #line 2718 "conf_parser.y" /* yacc.c:1646  */
6039      {
6040 <  if (conf_parser_ctx.pass == 2)
6291 <  {
6292 <    if (strlen(yylval.string) > LOCALE_LENGTH-2)
6293 <      yylval.string[LOCALE_LENGTH-1] = '\0';
6294 <
6295 <    set_locale(yylval.string);
6296 <  }
6040 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
6041   }
6042 + #line 6043 "conf_parser.c" /* yacc.c:1646  */
6043      break;
6044  
6045 <  case 529:
6046 < /* Line 1787 of yacc.c  */
6302 < #line 2757 "conf_parser.y"
6045 >  case 576:
6046 > #line 2723 "conf_parser.y" /* yacc.c:1646  */
6047      {
6048 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6048 >  ConfigGeneral.oper_umodes = 0;
6049   }
6050 + #line 6051 "conf_parser.c" /* yacc.c:1646  */
6051      break;
6052  
6053 <  case 530:
6054 < /* Line 1787 of yacc.c  */
6310 < #line 2762 "conf_parser.y"
6053 >  case 580:
6054 > #line 2729 "conf_parser.y" /* yacc.c:1646  */
6055      {
6056 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6056 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
6057   }
6058 + #line 6059 "conf_parser.c" /* yacc.c:1646  */
6059      break;
6060  
6061 <  case 531:
6062 < /* Line 1787 of yacc.c  */
6318 < #line 2767 "conf_parser.y"
6061 >  case 581:
6062 > #line 2732 "conf_parser.y" /* yacc.c:1646  */
6063      {
6064 <  ConfigFileEntry.use_egd = yylval.number;
6064 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
6065   }
6066 + #line 6067 "conf_parser.c" /* yacc.c:1646  */
6067      break;
6068  
6069 <  case 532:
6070 < /* Line 1787 of yacc.c  */
6326 < #line 2772 "conf_parser.y"
6069 >  case 582:
6070 > #line 2735 "conf_parser.y" /* yacc.c:1646  */
6071      {
6072 <  if (conf_parser_ctx.pass == 2)
6329 <  {
6330 <    MyFree(ConfigFileEntry.egdpool_path);
6331 <    DupString(ConfigFileEntry.egdpool_path, yylval.string);
6332 <  }
6072 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
6073   }
6074 + #line 6075 "conf_parser.c" /* yacc.c:1646  */
6075      break;
6076  
6077 <  case 533:
6078 < /* Line 1787 of yacc.c  */
6338 < #line 2781 "conf_parser.y"
6077 >  case 583:
6078 > #line 2738 "conf_parser.y" /* yacc.c:1646  */
6079      {
6080 <  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6341 <  {
6342 <    MyFree(ConfigFileEntry.service_name);
6343 <    DupString(ConfigFileEntry.service_name, yylval.string);
6344 <  }
6080 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
6081   }
6082 + #line 6083 "conf_parser.c" /* yacc.c:1646  */
6083      break;
6084  
6085 <  case 534:
6086 < /* Line 1787 of yacc.c  */
6350 < #line 2790 "conf_parser.y"
6085 >  case 584:
6086 > #line 2741 "conf_parser.y" /* yacc.c:1646  */
6087      {
6088 <  ConfigFileEntry.ping_cookie = yylval.number;
6088 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
6089   }
6090 + #line 6091 "conf_parser.c" /* yacc.c:1646  */
6091      break;
6092  
6093 <  case 535:
6094 < /* Line 1787 of yacc.c  */
6358 < #line 2795 "conf_parser.y"
6093 >  case 585:
6094 > #line 2744 "conf_parser.y" /* yacc.c:1646  */
6095      {
6096 <  ConfigFileEntry.disable_auth = yylval.number;
6096 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
6097   }
6098 + #line 6099 "conf_parser.c" /* yacc.c:1646  */
6099      break;
6100  
6101 <  case 536:
6102 < /* Line 1787 of yacc.c  */
6366 < #line 2800 "conf_parser.y"
6101 >  case 586:
6102 > #line 2747 "conf_parser.y" /* yacc.c:1646  */
6103      {
6104 <  ConfigFileEntry.throttle_time = yylval.number;
6104 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
6105   }
6106 + #line 6107 "conf_parser.c" /* yacc.c:1646  */
6107      break;
6108  
6109 <  case 537:
6110 < /* Line 1787 of yacc.c  */
6374 < #line 2805 "conf_parser.y"
6109 >  case 587:
6110 > #line 2750 "conf_parser.y" /* yacc.c:1646  */
6111      {
6112 <  ConfigFileEntry.oper_umodes = 0;
6112 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
6113   }
6114 + #line 6115 "conf_parser.c" /* yacc.c:1646  */
6115      break;
6116  
6117 <  case 541:
6118 < /* Line 1787 of yacc.c  */
6382 < #line 2811 "conf_parser.y"
6117 >  case 588:
6118 > #line 2753 "conf_parser.y" /* yacc.c:1646  */
6119      {
6120 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6120 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
6121   }
6122 + #line 6123 "conf_parser.c" /* yacc.c:1646  */
6123      break;
6124  
6125 <  case 542:
6126 < /* Line 1787 of yacc.c  */
6390 < #line 2814 "conf_parser.y"
6125 >  case 589:
6126 > #line 2756 "conf_parser.y" /* yacc.c:1646  */
6127      {
6128 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6128 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
6129   }
6130 + #line 6131 "conf_parser.c" /* yacc.c:1646  */
6131      break;
6132  
6133 <  case 543:
6134 < /* Line 1787 of yacc.c  */
6398 < #line 2817 "conf_parser.y"
6133 >  case 590:
6134 > #line 2759 "conf_parser.y" /* yacc.c:1646  */
6135      {
6136 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
6136 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
6137   }
6138 + #line 6139 "conf_parser.c" /* yacc.c:1646  */
6139      break;
6140  
6141 <  case 544:
6142 < /* Line 1787 of yacc.c  */
6406 < #line 2820 "conf_parser.y"
6141 >  case 591:
6142 > #line 2762 "conf_parser.y" /* yacc.c:1646  */
6143      {
6144 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6144 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
6145   }
6146 + #line 6147 "conf_parser.c" /* yacc.c:1646  */
6147      break;
6148  
6149 <  case 545:
6150 < /* Line 1787 of yacc.c  */
6414 < #line 2823 "conf_parser.y"
6149 >  case 592:
6150 > #line 2765 "conf_parser.y" /* yacc.c:1646  */
6151      {
6152 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6152 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
6153   }
6154 + #line 6155 "conf_parser.c" /* yacc.c:1646  */
6155      break;
6156  
6157 <  case 546:
6158 < /* Line 1787 of yacc.c  */
6422 < #line 2826 "conf_parser.y"
6157 >  case 593:
6158 > #line 2768 "conf_parser.y" /* yacc.c:1646  */
6159      {
6160 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
6160 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
6161   }
6162 + #line 6163 "conf_parser.c" /* yacc.c:1646  */
6163      break;
6164  
6165 <  case 547:
6166 < /* Line 1787 of yacc.c  */
6430 < #line 2829 "conf_parser.y"
6165 >  case 594:
6166 > #line 2771 "conf_parser.y" /* yacc.c:1646  */
6167      {
6168 <  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6168 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
6169   }
6170 + #line 6171 "conf_parser.c" /* yacc.c:1646  */
6171      break;
6172  
6173 <  case 548:
6174 < /* Line 1787 of yacc.c  */
6438 < #line 2832 "conf_parser.y"
6173 >  case 595:
6174 > #line 2774 "conf_parser.y" /* yacc.c:1646  */
6175      {
6176 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6176 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
6177   }
6178 + #line 6179 "conf_parser.c" /* yacc.c:1646  */
6179      break;
6180  
6181 <  case 549:
6182 < /* Line 1787 of yacc.c  */
6446 < #line 2835 "conf_parser.y"
6181 >  case 596:
6182 > #line 2777 "conf_parser.y" /* yacc.c:1646  */
6183      {
6184 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6184 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
6185   }
6186 + #line 6187 "conf_parser.c" /* yacc.c:1646  */
6187      break;
6188  
6189 <  case 550:
6190 < /* Line 1787 of yacc.c  */
6454 < #line 2838 "conf_parser.y"
6189 >  case 597:
6190 > #line 2780 "conf_parser.y" /* yacc.c:1646  */
6191      {
6192 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
6192 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
6193   }
6194 + #line 6195 "conf_parser.c" /* yacc.c:1646  */
6195      break;
6196  
6197 <  case 551:
6198 < /* Line 1787 of yacc.c  */
6462 < #line 2841 "conf_parser.y"
6197 >  case 598:
6198 > #line 2783 "conf_parser.y" /* yacc.c:1646  */
6199      {
6200 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6200 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
6201   }
6202 + #line 6203 "conf_parser.c" /* yacc.c:1646  */
6203      break;
6204  
6205 <  case 552:
6206 < /* Line 1787 of yacc.c  */
6470 < #line 2844 "conf_parser.y"
6205 >  case 599:
6206 > #line 2786 "conf_parser.y" /* yacc.c:1646  */
6207      {
6208 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
6208 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
6209   }
6210 + #line 6211 "conf_parser.c" /* yacc.c:1646  */
6211      break;
6212  
6213 <  case 553:
6214 < /* Line 1787 of yacc.c  */
6478 < #line 2847 "conf_parser.y"
6213 >  case 600:
6214 > #line 2789 "conf_parser.y" /* yacc.c:1646  */
6215      {
6216 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6216 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
6217   }
6218 + #line 6219 "conf_parser.c" /* yacc.c:1646  */
6219      break;
6220  
6221 <  case 554:
6222 < /* Line 1787 of yacc.c  */
6486 < #line 2850 "conf_parser.y"
6221 >  case 601:
6222 > #line 2792 "conf_parser.y" /* yacc.c:1646  */
6223      {
6224 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6224 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
6225   }
6226 + #line 6227 "conf_parser.c" /* yacc.c:1646  */
6227      break;
6228  
6229 <  case 555:
6230 < /* Line 1787 of yacc.c  */
6494 < #line 2853 "conf_parser.y"
6229 >  case 602:
6230 > #line 2797 "conf_parser.y" /* yacc.c:1646  */
6231      {
6232 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6232 >  ConfigGeneral.oper_only_umodes = 0;
6233   }
6234 + #line 6235 "conf_parser.c" /* yacc.c:1646  */
6235      break;
6236  
6237 <  case 556:
6238 < /* Line 1787 of yacc.c  */
6502 < #line 2856 "conf_parser.y"
6237 >  case 606:
6238 > #line 2803 "conf_parser.y" /* yacc.c:1646  */
6239      {
6240 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6240 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6241   }
6242 + #line 6243 "conf_parser.c" /* yacc.c:1646  */
6243      break;
6244  
6245 <  case 557:
6246 < /* Line 1787 of yacc.c  */
6510 < #line 2859 "conf_parser.y"
6245 >  case 607:
6246 > #line 2806 "conf_parser.y" /* yacc.c:1646  */
6247      {
6248 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6248 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6249   }
6250 + #line 6251 "conf_parser.c" /* yacc.c:1646  */
6251      break;
6252  
6253 <  case 558:
6254 < /* Line 1787 of yacc.c  */
6518 < #line 2862 "conf_parser.y"
6253 >  case 608:
6254 > #line 2809 "conf_parser.y" /* yacc.c:1646  */
6255      {
6256 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6256 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6257   }
6258 + #line 6259 "conf_parser.c" /* yacc.c:1646  */
6259      break;
6260  
6261 <  case 559:
6262 < /* Line 1787 of yacc.c  */
6526 < #line 2865 "conf_parser.y"
6261 >  case 609:
6262 > #line 2812 "conf_parser.y" /* yacc.c:1646  */
6263      {
6264 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6264 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6265   }
6266 + #line 6267 "conf_parser.c" /* yacc.c:1646  */
6267      break;
6268  
6269 <  case 560:
6270 < /* Line 1787 of yacc.c  */
6534 < #line 2868 "conf_parser.y"
6269 >  case 610:
6270 > #line 2815 "conf_parser.y" /* yacc.c:1646  */
6271      {
6272 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6272 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6273   }
6274 + #line 6275 "conf_parser.c" /* yacc.c:1646  */
6275      break;
6276  
6277 <  case 561:
6278 < /* Line 1787 of yacc.c  */
6542 < #line 2873 "conf_parser.y"
6277 >  case 611:
6278 > #line 2818 "conf_parser.y" /* yacc.c:1646  */
6279      {
6280 <  ConfigFileEntry.oper_only_umodes = 0;
6280 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6281   }
6282 + #line 6283 "conf_parser.c" /* yacc.c:1646  */
6283      break;
6284  
6285 <  case 565:
6286 < /* Line 1787 of yacc.c  */
6550 < #line 2879 "conf_parser.y"
6285 >  case 612:
6286 > #line 2821 "conf_parser.y" /* yacc.c:1646  */
6287      {
6288 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6288 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6289   }
6290 + #line 6291 "conf_parser.c" /* yacc.c:1646  */
6291      break;
6292  
6293 <  case 566:
6294 < /* Line 1787 of yacc.c  */
6558 < #line 2882 "conf_parser.y"
6293 >  case 613:
6294 > #line 2824 "conf_parser.y" /* yacc.c:1646  */
6295      {
6296 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6296 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6297   }
6298 + #line 6299 "conf_parser.c" /* yacc.c:1646  */
6299      break;
6300  
6301 <  case 567:
6302 < /* Line 1787 of yacc.c  */
6566 < #line 2885 "conf_parser.y"
6301 >  case 614:
6302 > #line 2827 "conf_parser.y" /* yacc.c:1646  */
6303      {
6304 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6304 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6305   }
6306 + #line 6307 "conf_parser.c" /* yacc.c:1646  */
6307      break;
6308  
6309 <  case 568:
6310 < /* Line 1787 of yacc.c  */
6574 < #line 2888 "conf_parser.y"
6309 >  case 615:
6310 > #line 2830 "conf_parser.y" /* yacc.c:1646  */
6311      {
6312 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6312 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6313   }
6314 + #line 6315 "conf_parser.c" /* yacc.c:1646  */
6315      break;
6316  
6317 <  case 569:
6318 < /* Line 1787 of yacc.c  */
6582 < #line 2891 "conf_parser.y"
6317 >  case 616:
6318 > #line 2833 "conf_parser.y" /* yacc.c:1646  */
6319      {
6320 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6585 < }
6586 <    break;
6587 <
6588 <  case 570:
6589 < /* Line 1787 of yacc.c  */
6590 < #line 2894 "conf_parser.y"
6591 <    {
6592 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6320 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6321   }
6322 + #line 6323 "conf_parser.c" /* yacc.c:1646  */
6323      break;
6324  
6325 <  case 571:
6326 < /* Line 1787 of yacc.c  */
6598 < #line 2897 "conf_parser.y"
6325 >  case 617:
6326 > #line 2836 "conf_parser.y" /* yacc.c:1646  */
6327      {
6328 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6328 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6329   }
6330 + #line 6331 "conf_parser.c" /* yacc.c:1646  */
6331      break;
6332  
6333 <  case 572:
6334 < /* Line 1787 of yacc.c  */
6606 < #line 2900 "conf_parser.y"
6333 >  case 618:
6334 > #line 2839 "conf_parser.y" /* yacc.c:1646  */
6335      {
6336 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6336 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6337   }
6338 + #line 6339 "conf_parser.c" /* yacc.c:1646  */
6339      break;
6340  
6341 <  case 573:
6342 < /* Line 1787 of yacc.c  */
6614 < #line 2903 "conf_parser.y"
6341 >  case 619:
6342 > #line 2842 "conf_parser.y" /* yacc.c:1646  */
6343      {
6344 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6344 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6345   }
6346 + #line 6347 "conf_parser.c" /* yacc.c:1646  */
6347      break;
6348  
6349 <  case 574:
6350 < /* Line 1787 of yacc.c  */
6622 < #line 2906 "conf_parser.y"
6349 >  case 620:
6350 > #line 2845 "conf_parser.y" /* yacc.c:1646  */
6351      {
6352 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6352 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6353   }
6354 + #line 6355 "conf_parser.c" /* yacc.c:1646  */
6355      break;
6356  
6357 <  case 575:
6358 < /* Line 1787 of yacc.c  */
6630 < #line 2909 "conf_parser.y"
6357 >  case 621:
6358 > #line 2848 "conf_parser.y" /* yacc.c:1646  */
6359      {
6360 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6360 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6361   }
6362 + #line 6363 "conf_parser.c" /* yacc.c:1646  */
6363      break;
6364  
6365 <  case 576:
6366 < /* Line 1787 of yacc.c  */
6638 < #line 2912 "conf_parser.y"
6365 >  case 622:
6366 > #line 2851 "conf_parser.y" /* yacc.c:1646  */
6367      {
6368 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6368 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6369   }
6370 + #line 6371 "conf_parser.c" /* yacc.c:1646  */
6371      break;
6372  
6373 <  case 577:
6374 < /* Line 1787 of yacc.c  */
6646 < #line 2915 "conf_parser.y"
6373 >  case 623:
6374 > #line 2854 "conf_parser.y" /* yacc.c:1646  */
6375      {
6376 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6376 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6377   }
6378 + #line 6379 "conf_parser.c" /* yacc.c:1646  */
6379      break;
6380  
6381 <  case 578:
6382 < /* Line 1787 of yacc.c  */
6654 < #line 2918 "conf_parser.y"
6381 >  case 624:
6382 > #line 2857 "conf_parser.y" /* yacc.c:1646  */
6383      {
6384 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6384 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6385   }
6386 + #line 6387 "conf_parser.c" /* yacc.c:1646  */
6387      break;
6388  
6389 <  case 579:
6390 < /* Line 1787 of yacc.c  */
6662 < #line 2921 "conf_parser.y"
6389 >  case 625:
6390 > #line 2860 "conf_parser.y" /* yacc.c:1646  */
6391      {
6392 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6392 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6393   }
6394 + #line 6395 "conf_parser.c" /* yacc.c:1646  */
6395      break;
6396  
6397 <  case 580:
6398 < /* Line 1787 of yacc.c  */
6670 < #line 2924 "conf_parser.y"
6397 >  case 626:
6398 > #line 2865 "conf_parser.y" /* yacc.c:1646  */
6399      {
6400 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6400 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6401   }
6402 + #line 6403 "conf_parser.c" /* yacc.c:1646  */
6403      break;
6404  
6405 <  case 581:
6406 < /* Line 1787 of yacc.c  */
6678 < #line 2927 "conf_parser.y"
6405 >  case 627:
6406 > #line 2870 "conf_parser.y" /* yacc.c:1646  */
6407      {
6408 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6408 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6409   }
6410 + #line 6411 "conf_parser.c" /* yacc.c:1646  */
6411      break;
6412  
6413 <  case 582:
6414 < /* Line 1787 of yacc.c  */
6686 < #line 2930 "conf_parser.y"
6413 >  case 628:
6414 > #line 2875 "conf_parser.y" /* yacc.c:1646  */
6415      {
6416 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6416 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6417   }
6418 + #line 6419 "conf_parser.c" /* yacc.c:1646  */
6419      break;
6420  
6421 <  case 583:
6422 < /* Line 1787 of yacc.c  */
6694 < #line 2933 "conf_parser.y"
6421 >  case 629:
6422 > #line 2880 "conf_parser.y" /* yacc.c:1646  */
6423      {
6424 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6424 >  ConfigGeneral.default_floodtime = (yyvsp[-1].number);
6425   }
6426 + #line 6427 "conf_parser.c" /* yacc.c:1646  */
6427      break;
6428  
6429 <  case 584:
6430 < /* Line 1787 of yacc.c  */
6702 < #line 2936 "conf_parser.y"
6429 >  case 647:
6430 > #line 2907 "conf_parser.y" /* yacc.c:1646  */
6431      {
6432 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6432 >  ConfigChannel.disable_fake_channels = yylval.number;
6433   }
6434 + #line 6435 "conf_parser.c" /* yacc.c:1646  */
6435      break;
6436  
6437 <  case 585:
6438 < /* Line 1787 of yacc.c  */
6710 < #line 2941 "conf_parser.y"
6437 >  case 648:
6438 > #line 2912 "conf_parser.y" /* yacc.c:1646  */
6439      {
6440 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6440 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6441   }
6442 + #line 6443 "conf_parser.c" /* yacc.c:1646  */
6443      break;
6444  
6445 <  case 586:
6446 < /* Line 1787 of yacc.c  */
6718 < #line 2946 "conf_parser.y"
6445 >  case 649:
6446 > #line 2917 "conf_parser.y" /* yacc.c:1646  */
6447      {
6448 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6448 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6449   }
6450 + #line 6451 "conf_parser.c" /* yacc.c:1646  */
6451      break;
6452  
6453 <  case 587:
6454 < /* Line 1787 of yacc.c  */
6726 < #line 2951 "conf_parser.y"
6453 >  case 650:
6454 > #line 2922 "conf_parser.y" /* yacc.c:1646  */
6455      {
6456 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6456 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6457   }
6458 + #line 6459 "conf_parser.c" /* yacc.c:1646  */
6459      break;
6460  
6461 <  case 606:
6462 < /* Line 1787 of yacc.c  */
6734 < #line 2974 "conf_parser.y"
6461 >  case 651:
6462 > #line 2927 "conf_parser.y" /* yacc.c:1646  */
6463      {
6464 <  ConfigChannel.disable_fake_channels = yylval.number;
6464 >  ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6465   }
6466 + #line 6467 "conf_parser.c" /* yacc.c:1646  */
6467      break;
6468  
6469 <  case 607:
6470 < /* Line 1787 of yacc.c  */
6742 < #line 2979 "conf_parser.y"
6469 >  case 652:
6470 > #line 2932 "conf_parser.y" /* yacc.c:1646  */
6471      {
6472 <  ConfigChannel.restrict_channels = yylval.number;
6472 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6473   }
6474 + #line 6475 "conf_parser.c" /* yacc.c:1646  */
6475      break;
6476  
6477 <  case 608:
6478 < /* Line 1787 of yacc.c  */
6750 < #line 2984 "conf_parser.y"
6477 >  case 653:
6478 > #line 2937 "conf_parser.y" /* yacc.c:1646  */
6479      {
6480 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6480 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6481   }
6482 + #line 6483 "conf_parser.c" /* yacc.c:1646  */
6483      break;
6484  
6485 <  case 609:
6486 < /* Line 1787 of yacc.c  */
6758 < #line 2989 "conf_parser.y"
6485 >  case 654:
6486 > #line 2942 "conf_parser.y" /* yacc.c:1646  */
6487      {
6488 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6488 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6489   }
6490 + #line 6491 "conf_parser.c" /* yacc.c:1646  */
6491      break;
6492  
6493 <  case 610:
6494 < /* Line 1787 of yacc.c  */
6766 < #line 2994 "conf_parser.y"
6493 >  case 655:
6494 > #line 2947 "conf_parser.y" /* yacc.c:1646  */
6495      {
6496 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6496 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6497   }
6498 + #line 6499 "conf_parser.c" /* yacc.c:1646  */
6499      break;
6500  
6501 <  case 611:
6502 < /* Line 1787 of yacc.c  */
6774 < #line 2999 "conf_parser.y"
6501 >  case 656:
6502 > #line 2952 "conf_parser.y" /* yacc.c:1646  */
6503      {
6504 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6504 >  ConfigChannel.max_invites = (yyvsp[-1].number);
6505   }
6506 + #line 6507 "conf_parser.c" /* yacc.c:1646  */
6507      break;
6508  
6509 <  case 612:
6510 < /* Line 1787 of yacc.c  */
6782 < #line 3004 "conf_parser.y"
6509 >  case 657:
6510 > #line 2957 "conf_parser.y" /* yacc.c:1646  */
6511      {
6512 <  ConfigChannel.quiet_on_ban = yylval.number;
6512 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6513   }
6514 + #line 6515 "conf_parser.c" /* yacc.c:1646  */
6515      break;
6516  
6517 <  case 613:
6518 < /* Line 1787 of yacc.c  */
6790 < #line 3009 "conf_parser.y"
6517 >  case 658:
6518 > #line 2962 "conf_parser.y" /* yacc.c:1646  */
6519      {
6520 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6520 >  ConfigChannel.default_join_flood_count = yylval.number;
6521   }
6522 + #line 6523 "conf_parser.c" /* yacc.c:1646  */
6523      break;
6524  
6525 <  case 614:
6526 < /* Line 1787 of yacc.c  */
6798 < #line 3014 "conf_parser.y"
6525 >  case 659:
6526 > #line 2967 "conf_parser.y" /* yacc.c:1646  */
6527      {
6528 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6528 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6529   }
6530 + #line 6531 "conf_parser.c" /* yacc.c:1646  */
6531      break;
6532  
6533 <  case 615:
6534 < /* Line 1787 of yacc.c  */
6806 < #line 3019 "conf_parser.y"
6533 >  case 673:
6534 > #line 2990 "conf_parser.y" /* yacc.c:1646  */
6535      {
6536 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6536 >  if (conf_parser_ctx.pass == 2)
6537 >    ConfigServerHide.flatten_links = yylval.number;
6538   }
6539 + #line 6540 "conf_parser.c" /* yacc.c:1646  */
6540      break;
6541  
6542 <  case 616:
6543 < /* Line 1787 of yacc.c  */
6814 < #line 3024 "conf_parser.y"
6542 >  case 674:
6543 > #line 2996 "conf_parser.y" /* yacc.c:1646  */
6544      {
6545 <  ConfigChannel.no_create_on_split = yylval.number;
6546 < }
6547 <    break;
6819 <
6820 <  case 617:
6821 < /* Line 1787 of yacc.c  */
6822 < #line 3029 "conf_parser.y"
6545 >  if (conf_parser_ctx.pass == 2)
6546 >  {
6547 >    if ((yyvsp[-1].number) > 0)
6548      {
6549 <  ConfigChannel.no_join_on_split = yylval.number;
6550 < }
6551 <    break;
6549 >      event_write_links_file.when = (yyvsp[-1].number);
6550 >      event_add(&event_write_links_file, NULL);
6551 >    }
6552 >    else
6553 >     event_delete(&event_write_links_file);
6554  
6555 <  case 618:
6556 < /* Line 1787 of yacc.c  */
6830 < #line 3034 "conf_parser.y"
6831 <    {
6832 <  GlobalSetOptions.joinfloodcount = yylval.number;
6555 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6556 >  }
6557   }
6558 + #line 6559 "conf_parser.c" /* yacc.c:1646  */
6559      break;
6560  
6561 <  case 619:
6562 < /* Line 1787 of yacc.c  */
6838 < #line 3039 "conf_parser.y"
6561 >  case 675:
6562 > #line 3012 "conf_parser.y" /* yacc.c:1646  */
6563      {
6564 <  GlobalSetOptions.joinfloodtime = yylval.number;
6564 >  if (conf_parser_ctx.pass == 2)
6565 >  {
6566 >    xfree(ConfigServerHide.flatten_links_file);
6567 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6568 >  }
6569   }
6570 + #line 6571 "conf_parser.c" /* yacc.c:1646  */
6571      break;
6572  
6573 <  case 630:
6574 < /* Line 1787 of yacc.c  */
6846 < #line 3057 "conf_parser.y"
6573 >  case 676:
6574 > #line 3021 "conf_parser.y" /* yacc.c:1646  */
6575      {
6576    if (conf_parser_ctx.pass == 2)
6577 <    ConfigServerHide.flatten_links = yylval.number;
6577 >    ConfigServerHide.disable_remote_commands = yylval.number;
6578   }
6579 + #line 6580 "conf_parser.c" /* yacc.c:1646  */
6580      break;
6581  
6582 <  case 631:
6583 < /* Line 1787 of yacc.c  */
6855 < #line 3063 "conf_parser.y"
6582 >  case 677:
6583 > #line 3027 "conf_parser.y" /* yacc.c:1646  */
6584      {
6585    if (conf_parser_ctx.pass == 2)
6586      ConfigServerHide.hide_servers = yylval.number;
6587   }
6588 + #line 6589 "conf_parser.c" /* yacc.c:1646  */
6589      break;
6590  
6591 <  case 632:
6592 < /* Line 1787 of yacc.c  */
6864 < #line 3069 "conf_parser.y"
6591 >  case 678:
6592 > #line 3033 "conf_parser.y" /* yacc.c:1646  */
6593      {
6594    if (conf_parser_ctx.pass == 2)
6595 <  {
6868 <    MyFree(ConfigServerHide.hidden_name);
6869 <    DupString(ConfigServerHide.hidden_name, yylval.string);
6870 <  }
6595 >    ConfigServerHide.hide_services = yylval.number;
6596   }
6597 + #line 6598 "conf_parser.c" /* yacc.c:1646  */
6598      break;
6599  
6600 <  case 633:
6601 < /* Line 1787 of yacc.c  */
6876 < #line 3078 "conf_parser.y"
6600 >  case 679:
6601 > #line 3039 "conf_parser.y" /* yacc.c:1646  */
6602      {
6603    if (conf_parser_ctx.pass == 2)
6604    {
6605 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6606 <    {
6882 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6883 <      ConfigServerHide.links_disabled = 0;
6884 <    }
6885 <
6886 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6605 >    xfree(ConfigServerHide.hidden_name);
6606 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6607    }
6608   }
6609 + #line 6610 "conf_parser.c" /* yacc.c:1646  */
6610      break;
6611  
6612 <  case 634:
6613 < /* Line 1787 of yacc.c  */
6893 < #line 3092 "conf_parser.y"
6612 >  case 680:
6613 > #line 3048 "conf_parser.y" /* yacc.c:1646  */
6614      {
6615    if (conf_parser_ctx.pass == 2)
6616      ConfigServerHide.hidden = yylval.number;
6617   }
6618 + #line 6619 "conf_parser.c" /* yacc.c:1646  */
6619      break;
6620  
6621 <  case 635:
6622 < /* Line 1787 of yacc.c  */
6902 < #line 3098 "conf_parser.y"
6621 >  case 681:
6622 > #line 3054 "conf_parser.y" /* yacc.c:1646  */
6623      {
6624    if (conf_parser_ctx.pass == 2)
6625      ConfigServerHide.hide_server_ips = yylval.number;
6626   }
6627 + #line 6628 "conf_parser.c" /* yacc.c:1646  */
6628      break;
6629  
6630  
6631 < /* Line 1787 of yacc.c  */
6911 < #line 6912 "conf_parser.c"
6631 > #line 6632 "conf_parser.c" /* yacc.c:1646  */
6632        default: break;
6633      }
6634    /* User semantic actions sometimes alter yychar, and that requires
# Line 6930 | Line 6650 | yyreduce:
6650  
6651    *++yyvsp = yyval;
6652  
6653 <  /* Now `shift' the result of the reduction.  Determine what state
6653 >  /* Now 'shift' the result of the reduction.  Determine what state
6654       that goes to, based on the state we popped back to and the rule
6655       number reduced by.  */
6656  
# Line 6945 | Line 6665 | yyreduce:
6665    goto yynewstate;
6666  
6667  
6668 < /*------------------------------------.
6669 < | yyerrlab -- here on detecting error |
6670 < `------------------------------------*/
6668 > /*--------------------------------------.
6669 > | yyerrlab -- here on detecting error.  |
6670 > `--------------------------------------*/
6671   yyerrlab:
6672    /* Make sure we have latest lookahead translation.  See comments at
6673       user semantic actions for why this is necessary.  */
# Line 6998 | Line 6718 | yyerrlab:
6718    if (yyerrstatus == 3)
6719      {
6720        /* If just tried and failed to reuse lookahead token after an
6721 <         error, discard it.  */
6721 >         error, discard it.  */
6722  
6723        if (yychar <= YYEOF)
6724 <        {
6725 <          /* Return failure if at end of input.  */
6726 <          if (yychar == YYEOF)
6727 <            YYABORT;
6728 <        }
6724 >        {
6725 >          /* Return failure if at end of input.  */
6726 >          if (yychar == YYEOF)
6727 >            YYABORT;
6728 >        }
6729        else
6730 <        {
6731 <          yydestruct ("Error: discarding",
6732 <                      yytoken, &yylval);
6733 <          yychar = YYEMPTY;
6734 <        }
6730 >        {
6731 >          yydestruct ("Error: discarding",
6732 >                      yytoken, &yylval);
6733 >          yychar = YYEMPTY;
6734 >        }
6735      }
6736  
6737    /* Else will try to reuse lookahead token after shifting the error
# Line 7030 | Line 6750 | yyerrorlab:
6750    if (/*CONSTCOND*/ 0)
6751       goto yyerrorlab;
6752  
6753 <  /* Do not reclaim the symbols of the rule which action triggered
6753 >  /* Do not reclaim the symbols of the rule whose action triggered
6754       this YYERROR.  */
6755    YYPOPSTACK (yylen);
6756    yylen = 0;
# Line 7043 | Line 6763 | yyerrorlab:
6763   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6764   `-------------------------------------------------------------*/
6765   yyerrlab1:
6766 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6766 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6767  
6768    for (;;)
6769      {
6770        yyn = yypact[yystate];
6771        if (!yypact_value_is_default (yyn))
6772 <        {
6773 <          yyn += YYTERROR;
6774 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6775 <            {
6776 <              yyn = yytable[yyn];
6777 <              if (0 < yyn)
6778 <                break;
6779 <            }
6780 <        }
6772 >        {
6773 >          yyn += YYTERROR;
6774 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6775 >            {
6776 >              yyn = yytable[yyn];
6777 >              if (0 < yyn)
6778 >                break;
6779 >            }
6780 >        }
6781  
6782        /* Pop the current state because it cannot handle the error token.  */
6783        if (yyssp == yyss)
6784 <        YYABORT;
6784 >        YYABORT;
6785  
6786  
6787        yydestruct ("Error: popping",
6788 <                  yystos[yystate], yyvsp);
6788 >                  yystos[yystate], yyvsp);
6789        YYPOPSTACK (1);
6790        yystate = *yyssp;
6791        YY_STACK_PRINT (yyss, yyssp);
6792      }
6793  
6794 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6795    *++yyvsp = yylval;
6796 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
6797  
6798  
6799    /* Shift the error token.  */
# Line 7114 | Line 6836 | yyreturn:
6836        yydestruct ("Cleanup: discarding lookahead",
6837                    yytoken, &yylval);
6838      }
6839 <  /* Do not reclaim the symbols of the rule which action triggered
6839 >  /* Do not reclaim the symbols of the rule whose action triggered
6840       this YYABORT or YYACCEPT.  */
6841    YYPOPSTACK (yylen);
6842    YY_STACK_PRINT (yyss, yyssp);
6843    while (yyssp != yyss)
6844      {
6845        yydestruct ("Cleanup: popping",
6846 <                  yystos[*yyssp], yyvsp);
6846 >                  yystos[*yyssp], yyvsp);
6847        YYPOPSTACK (1);
6848      }
6849   #ifndef yyoverflow
# Line 7132 | Line 6854 | yyreturn:
6854    if (yymsg != yymsgbuf)
6855      YYSTACK_FREE (yymsg);
6856   #endif
6857 <  /* Make sure YYID is used.  */
7136 <  return YYID (yyresult);
6857 >  return yyresult;
6858   }
7138
7139

Diff Legend

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