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/trunk/src/conf_parser.c (file contents):
Revision 1855 by michael, Wed Apr 24 19:26:23 2013 UTC vs.
Revision 9127 by michael, Mon Jan 6 16:08:01 2020 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 2.7.12-4996.  */
1 > /* A Bison parser, made by GNU Bison 3.3.2.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4 <  
5 <      Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 <  
4 >
5 >   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6 >   Inc.
7 >
8     This program is free software: you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by
10     the Free Software Foundation, either version 3 of the License, or
11     (at your option) any later version.
12 <  
12 >
13     This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     GNU General Public License for more details.
17 <  
17 >
18     You should have received a copy of the GNU General Public License
19     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20  
# Line 26 | Line 27
27     special exception, which will cause the skeleton and the resulting
28     Bison output files to be licensed under the GNU General Public
29     License without this special exception.
30 <  
30 >
31     This special exception was added by the Free Software Foundation in
32     version 2.2 of Bison.  */
33  
# Line 40 | Line 41
41     define necessary library symbols; they are noted "INFRINGES ON
42     USER NAME SPACE" below.  */
43  
44 + /* Undocumented macros, especially those whose name start with YY_,
45 +   are private implementation details.  Do not rely on them.  */
46 +
47   /* Identify Bison output.  */
48   #define YYBISON 1
49  
50   /* Bison version.  */
51 < #define YYBISON_VERSION "2.7.12-4996"
51 > #define YYBISON_VERSION "3.3.2"
52  
53   /* Skeleton name.  */
54   #define YYSKELETON_NAME "yacc.c"
# Line 61 | Line 65
65  
66  
67  
68 < /* Copy the first part of user declarations.  */
69 < /* Line 371 of yacc.c  */
66 < #line 25 "conf_parser.y"
67 <
68 > /* First part of user prologue.  */
69 > #line 28 "conf_parser.y" /* yacc.c:337  */
70  
69 #define YY_NO_UNPUT
70 #include <sys/types.h>
71 #include <string.h>
71  
72   #include "config.h"
73   #include "stdinc.h"
74   #include "ircd.h"
75   #include "list.h"
76 + #include "parse.h"
77   #include "conf.h"
78   #include "conf_class.h"
79 + #include "conf_cluster.h"
80 + #include "conf_gecos.h"
81 + #include "conf_pseudo.h"
82 + #include "conf_resv.h"
83 + #include "conf_service.h"
84 + #include "conf_shared.h"
85   #include "event.h"
86 + #include "id.h"
87   #include "log.h"
81 #include "client.h"     /* for UMODE_ALL only */
88   #include "irc_string.h"
89   #include "memory.h"
90   #include "modules.h"
91 < #include "s_serv.h"
91 > #include "server.h"
92   #include "hostmask.h"
87 #include "send.h"
93   #include "listener.h"
94 < #include "resv.h"
95 < #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
99 <
100 < #include "rsa.h"
94 > #include "user.h"
95 > #include "motd.h"
96  
97   int yylex(void);
98  
99   static struct
100   {
101 <  struct {
101 >  struct
102 >  {
103      dlink_list list;
104    } mask,
105      leaf,
106      hub;
107  
108 <  struct {
108 >  struct
109 >  {
110      char buf[IRCD_BUFSIZE];
111    } name,
112 +    nick,
113      user,
114      host,
115      addr,
116      bind,
117      file,
118      ciph,
119 +    cert,
120      rpass,
121      spass,
122 <    class;
122 >    whois,
123 >    class,
124 >    target,
125 >    prepend,
126 >    command;
127  
128 <  struct {
128 >  struct
129 >  {
130      unsigned int value;
131    } flags,
132      modes,
133      size,
134      type,
135      port,
136 +    timeout,
137      aftype,
138      ping_freq,
139 <    max_perip,
139 >    max_perip_local,
140 >    max_perip_global,
141      con_freq,
142      min_idle,
143      max_idle,
144      max_total,
139    max_global,
140    max_local,
141    max_ident,
145      max_sendq,
146      max_recvq,
147 +    max_channels,
148      cidr_bitlen_ipv4,
149      cidr_bitlen_ipv6,
150      number_per_cidr;
# Line 149 | Line 153 | static struct
153   static void
154   reset_block_state(void)
155   {
156 <  dlink_node *ptr = NULL, *ptr_next = NULL;
157 <
158 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
155 <  {
156 <    MyFree(ptr->data);
157 <    dlinkDelete(ptr, &block_state.mask.list);
158 <    free_dlink_node(ptr);
159 <  }
156 >  dlink_node *node, *node_next;
157 >  dlink_list *tab[] = { &block_state.mask.list,
158 >                        &block_state.leaf.list, &block_state.hub.list, NULL };
159  
160 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
160 >  for (dlink_list **list = tab; *list; ++list)
161    {
162 <    MyFree(ptr->data);
163 <    dlinkDelete(ptr, &block_state.leaf.list);
164 <    free_dlink_node(ptr);
165 <  }
166 <
167 <  DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
169 <  {
170 <    MyFree(ptr->data);
171 <    dlinkDelete(ptr, &block_state.hub.list);
172 <    free_dlink_node(ptr);
162 >    DLINK_FOREACH_SAFE(node, node_next, (*list)->head)
163 >    {
164 >      xfree(node->data);
165 >      dlinkDelete(node, *list);
166 >      free_dlink_node(node);
167 >    }
168    }
169  
170    memset(&block_state, 0, sizeof(block_state));
171   }
172  
173  
174 < /* Line 371 of yacc.c  */
175 < #line 181 "conf_parser.c"
176 <
177 < # ifndef YY_NULL
178 < #  if defined __cplusplus && 201103L <= __cplusplus
179 < #   define YY_NULL nullptr
174 > #line 175 "conf_parser.c" /* yacc.c:337  */
175 > # ifndef YY_NULLPTR
176 > #  if defined __cplusplus
177 > #   if 201103L <= __cplusplus
178 > #    define YY_NULLPTR nullptr
179 > #   else
180 > #    define YY_NULLPTR 0
181 > #   endif
182   #  else
183 < #   define YY_NULL 0
183 > #   define YY_NULLPTR ((void*)0)
184   #  endif
185   # endif
186  
# Line 199 | Line 196 | reset_block_state(void)
196     by #include "y.tab.h".  */
197   #ifndef YY_YY_CONF_PARSER_H_INCLUDED
198   # define YY_YY_CONF_PARSER_H_INCLUDED
199 < /* Enabling traces.  */
199 > /* Debug traces.  */
200   #ifndef YYDEBUG
201   # define YYDEBUG 0
202   #endif
# Line 207 | Line 204 | reset_block_state(void)
204   extern int yydebug;
205   #endif
206  
207 < /* Tokens.  */
207 > /* Token type.  */
208   #ifndef YYTOKENTYPE
209   # define YYTOKENTYPE
210 <   /* Put the tokens into the symbol table, so that GDB and other debuggers
211 <      know about them.  */
212 <   enum yytokentype {
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 <     BYTES = 264,
220 <     KBYTES = 265,
221 <     MBYTES = 266,
222 <     CALLER_ID_WAIT = 267,
223 <     CAN_FLOOD = 268,
224 <     CHANNEL = 269,
225 <     CIDR_BITLEN_IPV4 = 270,
226 <     CIDR_BITLEN_IPV6 = 271,
227 <     CLASS = 272,
228 <     CONNECT = 273,
229 <     CONNECTFREQ = 274,
230 <     DEFAULT_FLOODCOUNT = 275,
231 <     DEFAULT_SPLIT_SERVER_COUNT = 276,
232 <     DEFAULT_SPLIT_USER_COUNT = 277,
233 <     DENY = 278,
234 <     DESCRIPTION = 279,
235 <     DIE = 280,
236 <     DISABLE_AUTH = 281,
237 <     DISABLE_FAKE_CHANNELS = 282,
238 <     DISABLE_REMOTE_COMMANDS = 283,
239 <     DOTS_IN_IDENT = 284,
240 <     EGDPOOL_PATH = 285,
241 <     EMAIL = 286,
242 <     ENCRYPTED = 287,
243 <     EXCEED_LIMIT = 288,
244 <     EXEMPT = 289,
245 <     FAILED_OPER_NOTICE = 290,
246 <     IRCD_FLAGS = 291,
247 <     FLATTEN_LINKS = 292,
248 <     GECOS = 293,
249 <     GENERAL = 294,
250 <     GLINE = 295,
251 <     GLINE_DURATION = 296,
252 <     GLINE_ENABLE = 297,
253 <     GLINE_EXEMPT = 298,
254 <     GLINE_REQUEST_DURATION = 299,
255 <     GLINE_MIN_CIDR = 300,
256 <     GLINE_MIN_CIDR6 = 301,
257 <     GLOBAL_KILL = 302,
258 <     IRCD_AUTH = 303,
259 <     NEED_IDENT = 304,
260 <     HAVENT_READ_CONF = 305,
261 <     HIDDEN = 306,
262 <     HIDDEN_NAME = 307,
263 <     HIDE_SERVER_IPS = 308,
264 <     HIDE_SERVERS = 309,
265 <     HIDE_SERVICES = 310,
266 <     HIDE_SPOOF_IPS = 311,
267 <     HOST = 312,
268 <     HUB = 313,
269 <     HUB_MASK = 314,
270 <     IGNORE_BOGUS_TS = 315,
271 <     INVISIBLE_ON_CONNECT = 316,
272 <     IP = 317,
273 <     KILL = 318,
274 <     KILL_CHASE_TIME_LIMIT = 319,
275 <     KLINE = 320,
276 <     KLINE_EXEMPT = 321,
277 <     KNOCK_DELAY = 322,
278 <     KNOCK_DELAY_CHANNEL = 323,
279 <     LEAF_MASK = 324,
280 <     LINKS_DELAY = 325,
281 <     LISTEN = 326,
282 <     T_LOG = 327,
283 <     MAX_ACCEPT = 328,
284 <     MAX_BANS = 329,
285 <     MAX_CHANS_PER_OPER = 330,
286 <     MAX_CHANS_PER_USER = 331,
287 <     MAX_GLOBAL = 332,
288 <     MAX_IDENT = 333,
289 <     MAX_LOCAL = 334,
290 <     MAX_NICK_CHANGES = 335,
291 <     MAX_NICK_LENGTH = 336,
292 <     MAX_NICK_TIME = 337,
293 <     MAX_NUMBER = 338,
294 <     MAX_TARGETS = 339,
295 <     MAX_TOPIC_LENGTH = 340,
296 <     MAX_WATCH = 341,
297 <     MIN_NONWILDCARD = 342,
298 <     MIN_NONWILDCARD_SIMPLE = 343,
299 <     MIN_IDLE = 344,
300 <     MAX_IDLE = 345,
301 <     RANDOM_IDLE = 346,
302 <     HIDE_IDLE_FROM_OPERS = 347,
303 <     MODULE = 348,
304 <     MODULES = 349,
305 <     NAME = 350,
306 <     NEED_PASSWORD = 351,
307 <     NETWORK_DESC = 352,
308 <     NETWORK_NAME = 353,
309 <     NICK = 354,
310 <     NICK_CHANGES = 355,
311 <     NO_CREATE_ON_SPLIT = 356,
312 <     NO_JOIN_ON_SPLIT = 357,
313 <     NO_OPER_FLOOD = 358,
314 <     NO_TILDE = 359,
315 <     NUMBER = 360,
316 <     NUMBER_PER_CIDR = 361,
317 <     NUMBER_PER_IP = 362,
318 <     OPERATOR = 363,
319 <     OPERS_BYPASS_CALLERID = 364,
320 <     OPER_ONLY_UMODES = 365,
321 <     OPER_PASS_RESV = 366,
322 <     OPER_SPY_T = 367,
323 <     OPER_UMODES = 368,
324 <     JOIN_FLOOD_COUNT = 369,
325 <     JOIN_FLOOD_TIME = 370,
326 <     PACE_WAIT = 371,
327 <     PACE_WAIT_SIMPLE = 372,
328 <     PASSWORD = 373,
329 <     PATH = 374,
330 <     PING_COOKIE = 375,
331 <     PING_TIME = 376,
332 <     PORT = 377,
333 <     QSTRING = 378,
334 <     QUIET_ON_BAN = 379,
335 <     REASON = 380,
336 <     REDIRPORT = 381,
337 <     REDIRSERV = 382,
338 <     REGEX_T = 383,
339 <     REHASH = 384,
340 <     REMOTE = 385,
341 <     REMOTEBAN = 386,
342 <     RESTRICT_CHANNELS = 387,
343 <     RSA_PRIVATE_KEY_FILE = 388,
344 <     RSA_PUBLIC_KEY_FILE = 389,
345 <     SSL_CERTIFICATE_FILE = 390,
346 <     SSL_DH_PARAM_FILE = 391,
347 <     T_SSL_CLIENT_METHOD = 392,
348 <     T_SSL_SERVER_METHOD = 393,
349 <     T_SSLV3 = 394,
350 <     T_TLSV1 = 395,
351 <     RESV = 396,
352 <     RESV_EXEMPT = 397,
353 <     SECONDS = 398,
354 <     MINUTES = 399,
355 <     HOURS = 400,
356 <     DAYS = 401,
357 <     WEEKS = 402,
358 <     MONTHS = 403,
359 <     YEARS = 404,
360 <     SENDQ = 405,
361 <     SEND_PASSWORD = 406,
362 <     SERVERHIDE = 407,
363 <     SERVERINFO = 408,
364 <     IRCD_SID = 409,
365 <     TKLINE_EXPIRE_NOTICES = 410,
366 <     T_SHARED = 411,
367 <     T_CLUSTER = 412,
368 <     TYPE = 413,
369 <     SHORT_MOTD = 414,
370 <     SPOOF = 415,
371 <     SPOOF_NOTICE = 416,
372 <     STATS_E_DISABLED = 417,
373 <     STATS_I_OPER_ONLY = 418,
374 <     STATS_K_OPER_ONLY = 419,
375 <     STATS_O_OPER_ONLY = 420,
376 <     STATS_P_OPER_ONLY = 421,
377 <     TBOOL = 422,
378 <     TMASKED = 423,
379 <     TS_MAX_DELTA = 424,
380 <     TS_WARN_DELTA = 425,
381 <     TWODOTS = 426,
382 <     T_ALL = 427,
383 <     T_BOTS = 428,
384 <     T_SOFTCALLERID = 429,
385 <     T_CALLERID = 430,
386 <     T_CCONN = 431,
387 <     T_CCONN_FULL = 432,
388 <     T_SSL_CIPHER_LIST = 433,
389 <     T_DEAF = 434,
390 <     T_DEBUG = 435,
391 <     T_DLINE = 436,
392 <     T_EXTERNAL = 437,
393 <     T_FULL = 438,
394 <     T_INVISIBLE = 439,
395 <     T_IPV4 = 440,
396 <     T_IPV6 = 441,
397 <     T_LOCOPS = 442,
398 <     T_MAX_CLIENTS = 443,
399 <     T_NCHANGE = 444,
400 <     T_NONONREG = 445,
401 <     T_OPERWALL = 446,
402 <     T_RECVQ = 447,
403 <     T_REJ = 448,
404 <     T_SERVER = 449,
405 <     T_SERVNOTICE = 450,
406 <     T_SET = 451,
407 <     T_SKILL = 452,
408 <     T_SPY = 453,
409 <     T_SSL = 454,
410 <     T_UMODES = 455,
411 <     T_UNAUTH = 456,
412 <     T_UNDLINE = 457,
413 <     T_UNLIMITED = 458,
414 <     T_UNRESV = 459,
415 <     T_UNXLINE = 460,
416 <     T_GLOBOPS = 461,
417 <     T_WALLOP = 462,
418 <     T_WEBIRC = 463,
419 <     T_RESTART = 464,
420 <     T_SERVICE = 465,
421 <     T_SERVICES_NAME = 466,
422 <     THROTTLE_TIME = 467,
423 <     TRUE_NO_OPER_FLOOD = 468,
424 <     UNKLINE = 469,
425 <     USER = 470,
426 <     USE_EGD = 471,
427 <     USE_LOGGING = 472,
428 <     VHOST = 473,
429 <     VHOST6 = 474,
430 <     XLINE = 475,
431 <     WARN_NO_NLINE = 476,
432 <     T_SIZE = 477,
433 <     T_FILE = 478
434 <   };
210 >  enum yytokentype
211 >  {
212 >    ACCEPT_PASSWORD = 258,
213 >    ADMIN = 259,
214 >    AFTYPE = 260,
215 >    ANTI_NICK_FLOOD = 261,
216 >    ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
217 >    AUTOCONN = 263,
218 >    AWAY_COUNT = 264,
219 >    AWAY_TIME = 265,
220 >    BYTES = 266,
221 >    KBYTES = 267,
222 >    MBYTES = 268,
223 >    CALLER_ID_WAIT = 269,
224 >    CAN_FLOOD = 270,
225 >    CHANNEL = 271,
226 >    CIDR_BITLEN_IPV4 = 272,
227 >    CIDR_BITLEN_IPV6 = 273,
228 >    CLASS = 274,
229 >    CLOSE = 275,
230 >    CONNECT = 276,
231 >    CONNECTFREQ = 277,
232 >    CYCLE_ON_HOST_CHANGE = 278,
233 >    DEFAULT_FLOODCOUNT = 279,
234 >    DEFAULT_FLOODTIME = 280,
235 >    DEFAULT_JOIN_FLOOD_COUNT = 281,
236 >    DEFAULT_JOIN_FLOOD_TIME = 282,
237 >    DEFAULT_MAX_CLIENTS = 283,
238 >    DENY = 284,
239 >    DESCRIPTION = 285,
240 >    DIE = 286,
241 >    DISABLE_AUTH = 287,
242 >    DISABLE_FAKE_CHANNELS = 288,
243 >    DISABLE_REMOTE_COMMANDS = 289,
244 >    DLINE_MIN_CIDR = 290,
245 >    DLINE_MIN_CIDR6 = 291,
246 >    DOTS_IN_IDENT = 292,
247 >    EMAIL = 293,
248 >    ENCRYPTED = 294,
249 >    EXCEED_LIMIT = 295,
250 >    EXEMPT = 296,
251 >    EXPIRATION = 297,
252 >    FAILED_OPER_NOTICE = 298,
253 >    FLATTEN_LINKS = 299,
254 >    FLATTEN_LINKS_DELAY = 300,
255 >    FLATTEN_LINKS_FILE = 301,
256 >    GECOS = 302,
257 >    GENERAL = 303,
258 >    HIDDEN = 304,
259 >    HIDDEN_NAME = 305,
260 >    HIDE_CHANS = 306,
261 >    HIDE_IDLE = 307,
262 >    HIDE_IDLE_FROM_OPERS = 308,
263 >    HIDE_SERVER_IPS = 309,
264 >    HIDE_SERVERS = 310,
265 >    HIDE_SERVICES = 311,
266 >    HOST = 312,
267 >    HUB = 313,
268 >    HUB_MASK = 314,
269 >    INVISIBLE_ON_CONNECT = 315,
270 >    INVITE_CLIENT_COUNT = 316,
271 >    INVITE_CLIENT_TIME = 317,
272 >    INVITE_DELAY_CHANNEL = 318,
273 >    INVITE_EXPIRE_TIME = 319,
274 >    IP = 320,
275 >    IRCD_AUTH = 321,
276 >    IRCD_FLAGS = 322,
277 >    IRCD_SID = 323,
278 >    JOIN = 324,
279 >    KILL = 325,
280 >    KILL_CHASE_TIME_LIMIT = 326,
281 >    KLINE = 327,
282 >    KLINE_EXEMPT = 328,
283 >    KLINE_MIN_CIDR = 329,
284 >    KLINE_MIN_CIDR6 = 330,
285 >    KNOCK_CLIENT_COUNT = 331,
286 >    KNOCK_CLIENT_TIME = 332,
287 >    KNOCK_DELAY_CHANNEL = 333,
288 >    LEAF_MASK = 334,
289 >    LISTEN = 335,
290 >    MASK = 336,
291 >    MAX_ACCEPT = 337,
292 >    MAX_BANS = 338,
293 >    MAX_BANS_LARGE = 339,
294 >    MAX_CHANNELS = 340,
295 >    MAX_IDLE = 341,
296 >    MAX_INVITES = 342,
297 >    MAX_NICK_CHANGES = 343,
298 >    MAX_NICK_LENGTH = 344,
299 >    MAX_NICK_TIME = 345,
300 >    MAX_NUMBER = 346,
301 >    MAX_TARGETS = 347,
302 >    MAX_TOPIC_LENGTH = 348,
303 >    MAX_WATCH = 349,
304 >    MIN_IDLE = 350,
305 >    MIN_NONWILDCARD = 351,
306 >    MIN_NONWILDCARD_SIMPLE = 352,
307 >    MODULE = 353,
308 >    MODULES = 354,
309 >    MOTD = 355,
310 >    NAME = 356,
311 >    NEED_IDENT = 357,
312 >    NEED_PASSWORD = 358,
313 >    NETWORK_DESC = 359,
314 >    NETWORK_NAME = 360,
315 >    NICK = 361,
316 >    NO_OPER_FLOOD = 362,
317 >    NO_TILDE = 363,
318 >    NUMBER = 364,
319 >    NUMBER_PER_CIDR = 365,
320 >    NUMBER_PER_IP_GLOBAL = 366,
321 >    NUMBER_PER_IP_LOCAL = 367,
322 >    OPER_ONLY_UMODES = 368,
323 >    OPER_UMODES = 369,
324 >    OPERATOR = 370,
325 >    OPERS_BYPASS_CALLERID = 371,
326 >    PACE_WAIT = 372,
327 >    PACE_WAIT_SIMPLE = 373,
328 >    PASSWORD = 374,
329 >    PATH = 375,
330 >    PING_COOKIE = 376,
331 >    PING_TIME = 377,
332 >    PORT = 378,
333 >    QSTRING = 379,
334 >    RANDOM_IDLE = 380,
335 >    REASON = 381,
336 >    REDIRPORT = 382,
337 >    REDIRSERV = 383,
338 >    REHASH = 384,
339 >    REMOTE = 385,
340 >    REMOTEBAN = 386,
341 >    RESV = 387,
342 >    RESV_EXEMPT = 388,
343 >    RSA_PRIVATE_KEY_FILE = 389,
344 >    SECONDS = 390,
345 >    MINUTES = 391,
346 >    HOURS = 392,
347 >    DAYS = 393,
348 >    WEEKS = 394,
349 >    MONTHS = 395,
350 >    YEARS = 396,
351 >    SEND_PASSWORD = 397,
352 >    SENDQ = 398,
353 >    SERVERHIDE = 399,
354 >    SERVERINFO = 400,
355 >    SHORT_MOTD = 401,
356 >    SPOOF = 402,
357 >    SPOOF_NOTICE = 403,
358 >    SQUIT = 404,
359 >    SSL_CERTIFICATE_FILE = 405,
360 >    SSL_CERTIFICATE_FINGERPRINT = 406,
361 >    SSL_CONNECTION_REQUIRED = 407,
362 >    SSL_DH_ELLIPTIC_CURVE = 408,
363 >    SSL_DH_PARAM_FILE = 409,
364 >    SSL_MESSAGE_DIGEST_ALGORITHM = 410,
365 >    STATS_E_DISABLED = 411,
366 >    STATS_I_OPER_ONLY = 412,
367 >    STATS_K_OPER_ONLY = 413,
368 >    STATS_M_OPER_ONLY = 414,
369 >    STATS_O_OPER_ONLY = 415,
370 >    STATS_P_OPER_ONLY = 416,
371 >    STATS_U_OPER_ONLY = 417,
372 >    T_ALL = 418,
373 >    T_BIND = 419,
374 >    T_BOTS = 420,
375 >    T_CALLERID = 421,
376 >    T_CCONN = 422,
377 >    T_COMMAND = 423,
378 >    T_CLUSTER = 424,
379 >    T_DEAF = 425,
380 >    T_DEBUG = 426,
381 >    T_DLINE = 427,
382 >    T_EXTERNAL = 428,
383 >    T_FARCONNECT = 429,
384 >    T_FILE = 430,
385 >    T_FULL = 431,
386 >    T_GLOBOPS = 432,
387 >    T_INVISIBLE = 433,
388 >    T_IPV4 = 434,
389 >    T_IPV6 = 435,
390 >    T_LOCOPS = 436,
391 >    T_LOG = 437,
392 >    T_NCHANGE = 438,
393 >    T_NONONREG = 439,
394 >    T_OPME = 440,
395 >    T_PREPEND = 441,
396 >    T_PSEUDO = 442,
397 >    T_RECVQ = 443,
398 >    T_REJ = 444,
399 >    T_RESTART = 445,
400 >    T_SERVER = 446,
401 >    T_SERVICE = 447,
402 >    T_SERVNOTICE = 448,
403 >    T_SET = 449,
404 >    T_SHARED = 450,
405 >    T_SIZE = 451,
406 >    T_SKILL = 452,
407 >    T_SOFTCALLERID = 453,
408 >    T_SPY = 454,
409 >    T_SSL = 455,
410 >    T_SSL_CIPHER_LIST = 456,
411 >    T_TARGET = 457,
412 >    T_UMODES = 458,
413 >    T_UNAUTH = 459,
414 >    T_UNDLINE = 460,
415 >    T_UNLIMITED = 461,
416 >    T_UNRESV = 462,
417 >    T_UNXLINE = 463,
418 >    T_WALLOP = 464,
419 >    T_WALLOPS = 465,
420 >    T_WEBIRC = 466,
421 >    TBOOL = 467,
422 >    THROTTLE_COUNT = 468,
423 >    THROTTLE_TIME = 469,
424 >    TIMEOUT = 470,
425 >    TMASKED = 471,
426 >    TS_MAX_DELTA = 472,
427 >    TS_WARN_DELTA = 473,
428 >    TWODOTS = 474,
429 >    TYPE = 475,
430 >    UNKLINE = 476,
431 >    USE_LOGGING = 477,
432 >    USER = 478,
433 >    VHOST = 479,
434 >    VHOST6 = 480,
435 >    WARN_NO_CONNECT_BLOCK = 481,
436 >    WHOIS = 482,
437 >    WHOWAS_HISTORY_LENGTH = 483,
438 >    XLINE = 484,
439 >    XLINE_EXEMPT = 485
440 >  };
441   #endif
442   /* Tokens.  */
443   #define ACCEPT_PASSWORD 258
# Line 443 | Line 446 | extern int yydebug;
446   #define ANTI_NICK_FLOOD 261
447   #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
448   #define AUTOCONN 263
449 < #define BYTES 264
450 < #define KBYTES 265
451 < #define MBYTES 266
452 < #define CALLER_ID_WAIT 267
453 < #define CAN_FLOOD 268
454 < #define CHANNEL 269
455 < #define CIDR_BITLEN_IPV4 270
456 < #define CIDR_BITLEN_IPV6 271
457 < #define CLASS 272
458 < #define CONNECT 273
459 < #define CONNECTFREQ 274
460 < #define DEFAULT_FLOODCOUNT 275
461 < #define DEFAULT_SPLIT_SERVER_COUNT 276
462 < #define DEFAULT_SPLIT_USER_COUNT 277
463 < #define DENY 278
464 < #define DESCRIPTION 279
465 < #define DIE 280
466 < #define DISABLE_AUTH 281
467 < #define DISABLE_FAKE_CHANNELS 282
468 < #define DISABLE_REMOTE_COMMANDS 283
469 < #define DOTS_IN_IDENT 284
470 < #define EGDPOOL_PATH 285
471 < #define EMAIL 286
472 < #define ENCRYPTED 287
473 < #define EXCEED_LIMIT 288
474 < #define EXEMPT 289
475 < #define FAILED_OPER_NOTICE 290
476 < #define IRCD_FLAGS 291
477 < #define FLATTEN_LINKS 292
478 < #define GECOS 293
479 < #define GENERAL 294
480 < #define GLINE 295
481 < #define GLINE_DURATION 296
482 < #define GLINE_ENABLE 297
483 < #define GLINE_EXEMPT 298
484 < #define GLINE_REQUEST_DURATION 299
485 < #define GLINE_MIN_CIDR 300
486 < #define GLINE_MIN_CIDR6 301
487 < #define GLOBAL_KILL 302
488 < #define IRCD_AUTH 303
489 < #define NEED_IDENT 304
490 < #define HAVENT_READ_CONF 305
491 < #define HIDDEN 306
492 < #define HIDDEN_NAME 307
493 < #define HIDE_SERVER_IPS 308
494 < #define HIDE_SERVERS 309
495 < #define HIDE_SERVICES 310
496 < #define HIDE_SPOOF_IPS 311
449 > #define AWAY_COUNT 264
450 > #define AWAY_TIME 265
451 > #define BYTES 266
452 > #define KBYTES 267
453 > #define MBYTES 268
454 > #define CALLER_ID_WAIT 269
455 > #define CAN_FLOOD 270
456 > #define CHANNEL 271
457 > #define CIDR_BITLEN_IPV4 272
458 > #define CIDR_BITLEN_IPV6 273
459 > #define CLASS 274
460 > #define CLOSE 275
461 > #define CONNECT 276
462 > #define CONNECTFREQ 277
463 > #define CYCLE_ON_HOST_CHANGE 278
464 > #define DEFAULT_FLOODCOUNT 279
465 > #define DEFAULT_FLOODTIME 280
466 > #define DEFAULT_JOIN_FLOOD_COUNT 281
467 > #define DEFAULT_JOIN_FLOOD_TIME 282
468 > #define DEFAULT_MAX_CLIENTS 283
469 > #define DENY 284
470 > #define DESCRIPTION 285
471 > #define DIE 286
472 > #define DISABLE_AUTH 287
473 > #define DISABLE_FAKE_CHANNELS 288
474 > #define DISABLE_REMOTE_COMMANDS 289
475 > #define DLINE_MIN_CIDR 290
476 > #define DLINE_MIN_CIDR6 291
477 > #define DOTS_IN_IDENT 292
478 > #define EMAIL 293
479 > #define ENCRYPTED 294
480 > #define EXCEED_LIMIT 295
481 > #define EXEMPT 296
482 > #define EXPIRATION 297
483 > #define FAILED_OPER_NOTICE 298
484 > #define FLATTEN_LINKS 299
485 > #define FLATTEN_LINKS_DELAY 300
486 > #define FLATTEN_LINKS_FILE 301
487 > #define GECOS 302
488 > #define GENERAL 303
489 > #define HIDDEN 304
490 > #define HIDDEN_NAME 305
491 > #define HIDE_CHANS 306
492 > #define HIDE_IDLE 307
493 > #define HIDE_IDLE_FROM_OPERS 308
494 > #define HIDE_SERVER_IPS 309
495 > #define HIDE_SERVERS 310
496 > #define HIDE_SERVICES 311
497   #define HOST 312
498   #define HUB 313
499   #define HUB_MASK 314
500 < #define IGNORE_BOGUS_TS 315
501 < #define INVISIBLE_ON_CONNECT 316
502 < #define IP 317
503 < #define KILL 318
504 < #define KILL_CHASE_TIME_LIMIT 319
505 < #define KLINE 320
506 < #define KLINE_EXEMPT 321
507 < #define KNOCK_DELAY 322
508 < #define KNOCK_DELAY_CHANNEL 323
509 < #define LEAF_MASK 324
510 < #define LINKS_DELAY 325
511 < #define LISTEN 326
512 < #define T_LOG 327
513 < #define MAX_ACCEPT 328
514 < #define MAX_BANS 329
515 < #define MAX_CHANS_PER_OPER 330
516 < #define MAX_CHANS_PER_USER 331
517 < #define MAX_GLOBAL 332
518 < #define MAX_IDENT 333
519 < #define MAX_LOCAL 334
520 < #define MAX_NICK_CHANGES 335
521 < #define MAX_NICK_LENGTH 336
522 < #define MAX_NICK_TIME 337
523 < #define MAX_NUMBER 338
524 < #define MAX_TARGETS 339
525 < #define MAX_TOPIC_LENGTH 340
526 < #define MAX_WATCH 341
527 < #define MIN_NONWILDCARD 342
528 < #define MIN_NONWILDCARD_SIMPLE 343
529 < #define MIN_IDLE 344
530 < #define MAX_IDLE 345
531 < #define RANDOM_IDLE 346
532 < #define HIDE_IDLE_FROM_OPERS 347
533 < #define MODULE 348
534 < #define MODULES 349
535 < #define NAME 350
536 < #define NEED_PASSWORD 351
537 < #define NETWORK_DESC 352
538 < #define NETWORK_NAME 353
539 < #define NICK 354
540 < #define NICK_CHANGES 355
541 < #define NO_CREATE_ON_SPLIT 356
542 < #define NO_JOIN_ON_SPLIT 357
543 < #define NO_OPER_FLOOD 358
544 < #define NO_TILDE 359
545 < #define NUMBER 360
546 < #define NUMBER_PER_CIDR 361
547 < #define NUMBER_PER_IP 362
548 < #define OPERATOR 363
549 < #define OPERS_BYPASS_CALLERID 364
550 < #define OPER_ONLY_UMODES 365
551 < #define OPER_PASS_RESV 366
552 < #define OPER_SPY_T 367
553 < #define OPER_UMODES 368
554 < #define JOIN_FLOOD_COUNT 369
555 < #define JOIN_FLOOD_TIME 370
556 < #define PACE_WAIT 371
557 < #define PACE_WAIT_SIMPLE 372
558 < #define PASSWORD 373
559 < #define PATH 374
560 < #define PING_COOKIE 375
561 < #define PING_TIME 376
562 < #define PORT 377
563 < #define QSTRING 378
564 < #define QUIET_ON_BAN 379
565 < #define REASON 380
566 < #define REDIRPORT 381
567 < #define REDIRSERV 382
568 < #define REGEX_T 383
500 > #define INVISIBLE_ON_CONNECT 315
501 > #define INVITE_CLIENT_COUNT 316
502 > #define INVITE_CLIENT_TIME 317
503 > #define INVITE_DELAY_CHANNEL 318
504 > #define INVITE_EXPIRE_TIME 319
505 > #define IP 320
506 > #define IRCD_AUTH 321
507 > #define IRCD_FLAGS 322
508 > #define IRCD_SID 323
509 > #define JOIN 324
510 > #define KILL 325
511 > #define KILL_CHASE_TIME_LIMIT 326
512 > #define KLINE 327
513 > #define KLINE_EXEMPT 328
514 > #define KLINE_MIN_CIDR 329
515 > #define KLINE_MIN_CIDR6 330
516 > #define KNOCK_CLIENT_COUNT 331
517 > #define KNOCK_CLIENT_TIME 332
518 > #define KNOCK_DELAY_CHANNEL 333
519 > #define LEAF_MASK 334
520 > #define LISTEN 335
521 > #define MASK 336
522 > #define MAX_ACCEPT 337
523 > #define MAX_BANS 338
524 > #define MAX_BANS_LARGE 339
525 > #define MAX_CHANNELS 340
526 > #define MAX_IDLE 341
527 > #define MAX_INVITES 342
528 > #define MAX_NICK_CHANGES 343
529 > #define MAX_NICK_LENGTH 344
530 > #define MAX_NICK_TIME 345
531 > #define MAX_NUMBER 346
532 > #define MAX_TARGETS 347
533 > #define MAX_TOPIC_LENGTH 348
534 > #define MAX_WATCH 349
535 > #define MIN_IDLE 350
536 > #define MIN_NONWILDCARD 351
537 > #define MIN_NONWILDCARD_SIMPLE 352
538 > #define MODULE 353
539 > #define MODULES 354
540 > #define MOTD 355
541 > #define NAME 356
542 > #define NEED_IDENT 357
543 > #define NEED_PASSWORD 358
544 > #define NETWORK_DESC 359
545 > #define NETWORK_NAME 360
546 > #define NICK 361
547 > #define NO_OPER_FLOOD 362
548 > #define NO_TILDE 363
549 > #define NUMBER 364
550 > #define NUMBER_PER_CIDR 365
551 > #define NUMBER_PER_IP_GLOBAL 366
552 > #define NUMBER_PER_IP_LOCAL 367
553 > #define OPER_ONLY_UMODES 368
554 > #define OPER_UMODES 369
555 > #define OPERATOR 370
556 > #define OPERS_BYPASS_CALLERID 371
557 > #define PACE_WAIT 372
558 > #define PACE_WAIT_SIMPLE 373
559 > #define PASSWORD 374
560 > #define PATH 375
561 > #define PING_COOKIE 376
562 > #define PING_TIME 377
563 > #define PORT 378
564 > #define QSTRING 379
565 > #define RANDOM_IDLE 380
566 > #define REASON 381
567 > #define REDIRPORT 382
568 > #define REDIRSERV 383
569   #define REHASH 384
570   #define REMOTE 385
571   #define REMOTEBAN 386
572 < #define RESTRICT_CHANNELS 387
573 < #define RSA_PRIVATE_KEY_FILE 388
574 < #define RSA_PUBLIC_KEY_FILE 389
575 < #define SSL_CERTIFICATE_FILE 390
576 < #define SSL_DH_PARAM_FILE 391
577 < #define T_SSL_CLIENT_METHOD 392
578 < #define T_SSL_SERVER_METHOD 393
579 < #define T_SSLV3 394
580 < #define T_TLSV1 395
581 < #define RESV 396
582 < #define RESV_EXEMPT 397
583 < #define SECONDS 398
584 < #define MINUTES 399
585 < #define HOURS 400
586 < #define DAYS 401
587 < #define WEEKS 402
588 < #define MONTHS 403
589 < #define YEARS 404
590 < #define SENDQ 405
591 < #define SEND_PASSWORD 406
592 < #define SERVERHIDE 407
593 < #define SERVERINFO 408
594 < #define IRCD_SID 409
595 < #define TKLINE_EXPIRE_NOTICES 410
596 < #define T_SHARED 411
597 < #define T_CLUSTER 412
598 < #define TYPE 413
599 < #define SHORT_MOTD 414
600 < #define SPOOF 415
601 < #define SPOOF_NOTICE 416
602 < #define STATS_E_DISABLED 417
603 < #define STATS_I_OPER_ONLY 418
604 < #define STATS_K_OPER_ONLY 419
605 < #define STATS_O_OPER_ONLY 420
606 < #define STATS_P_OPER_ONLY 421
607 < #define TBOOL 422
608 < #define TMASKED 423
609 < #define TS_MAX_DELTA 424
610 < #define TS_WARN_DELTA 425
611 < #define TWODOTS 426
612 < #define T_ALL 427
613 < #define T_BOTS 428
614 < #define T_SOFTCALLERID 429
615 < #define T_CALLERID 430
616 < #define T_CCONN 431
617 < #define T_CCONN_FULL 432
618 < #define T_SSL_CIPHER_LIST 433
619 < #define T_DEAF 434
620 < #define T_DEBUG 435
621 < #define T_DLINE 436
622 < #define T_EXTERNAL 437
623 < #define T_FULL 438
624 < #define T_INVISIBLE 439
625 < #define T_IPV4 440
626 < #define T_IPV6 441
627 < #define T_LOCOPS 442
628 < #define T_MAX_CLIENTS 443
629 < #define T_NCHANGE 444
630 < #define T_NONONREG 445
631 < #define T_OPERWALL 446
632 < #define T_RECVQ 447
633 < #define T_REJ 448
634 < #define T_SERVER 449
635 < #define T_SERVNOTICE 450
636 < #define T_SET 451
572 > #define RESV 387
573 > #define RESV_EXEMPT 388
574 > #define RSA_PRIVATE_KEY_FILE 389
575 > #define SECONDS 390
576 > #define MINUTES 391
577 > #define HOURS 392
578 > #define DAYS 393
579 > #define WEEKS 394
580 > #define MONTHS 395
581 > #define YEARS 396
582 > #define SEND_PASSWORD 397
583 > #define SENDQ 398
584 > #define SERVERHIDE 399
585 > #define SERVERINFO 400
586 > #define SHORT_MOTD 401
587 > #define SPOOF 402
588 > #define SPOOF_NOTICE 403
589 > #define SQUIT 404
590 > #define SSL_CERTIFICATE_FILE 405
591 > #define SSL_CERTIFICATE_FINGERPRINT 406
592 > #define SSL_CONNECTION_REQUIRED 407
593 > #define SSL_DH_ELLIPTIC_CURVE 408
594 > #define SSL_DH_PARAM_FILE 409
595 > #define SSL_MESSAGE_DIGEST_ALGORITHM 410
596 > #define STATS_E_DISABLED 411
597 > #define STATS_I_OPER_ONLY 412
598 > #define STATS_K_OPER_ONLY 413
599 > #define STATS_M_OPER_ONLY 414
600 > #define STATS_O_OPER_ONLY 415
601 > #define STATS_P_OPER_ONLY 416
602 > #define STATS_U_OPER_ONLY 417
603 > #define T_ALL 418
604 > #define T_BIND 419
605 > #define T_BOTS 420
606 > #define T_CALLERID 421
607 > #define T_CCONN 422
608 > #define T_COMMAND 423
609 > #define T_CLUSTER 424
610 > #define T_DEAF 425
611 > #define T_DEBUG 426
612 > #define T_DLINE 427
613 > #define T_EXTERNAL 428
614 > #define T_FARCONNECT 429
615 > #define T_FILE 430
616 > #define T_FULL 431
617 > #define T_GLOBOPS 432
618 > #define T_INVISIBLE 433
619 > #define T_IPV4 434
620 > #define T_IPV6 435
621 > #define T_LOCOPS 436
622 > #define T_LOG 437
623 > #define T_NCHANGE 438
624 > #define T_NONONREG 439
625 > #define T_OPME 440
626 > #define T_PREPEND 441
627 > #define T_PSEUDO 442
628 > #define T_RECVQ 443
629 > #define T_REJ 444
630 > #define T_RESTART 445
631 > #define T_SERVER 446
632 > #define T_SERVICE 447
633 > #define T_SERVNOTICE 448
634 > #define T_SET 449
635 > #define T_SHARED 450
636 > #define T_SIZE 451
637   #define T_SKILL 452
638 < #define T_SPY 453
639 < #define T_SSL 454
640 < #define T_UMODES 455
641 < #define T_UNAUTH 456
642 < #define T_UNDLINE 457
643 < #define T_UNLIMITED 458
644 < #define T_UNRESV 459
645 < #define T_UNXLINE 460
646 < #define T_GLOBOPS 461
647 < #define T_WALLOP 462
648 < #define T_WEBIRC 463
649 < #define T_RESTART 464
650 < #define T_SERVICE 465
651 < #define T_SERVICES_NAME 466
652 < #define THROTTLE_TIME 467
653 < #define TRUE_NO_OPER_FLOOD 468
654 < #define UNKLINE 469
655 < #define USER 470
656 < #define USE_EGD 471
657 < #define USE_LOGGING 472
658 < #define VHOST 473
659 < #define VHOST6 474
660 < #define XLINE 475
661 < #define WARN_NO_NLINE 476
662 < #define T_SIZE 477
663 < #define T_FILE 478
664 <
665 <
638 > #define T_SOFTCALLERID 453
639 > #define T_SPY 454
640 > #define T_SSL 455
641 > #define T_SSL_CIPHER_LIST 456
642 > #define T_TARGET 457
643 > #define T_UMODES 458
644 > #define T_UNAUTH 459
645 > #define T_UNDLINE 460
646 > #define T_UNLIMITED 461
647 > #define T_UNRESV 462
648 > #define T_UNXLINE 463
649 > #define T_WALLOP 464
650 > #define T_WALLOPS 465
651 > #define T_WEBIRC 466
652 > #define TBOOL 467
653 > #define THROTTLE_COUNT 468
654 > #define THROTTLE_TIME 469
655 > #define TIMEOUT 470
656 > #define TMASKED 471
657 > #define TS_MAX_DELTA 472
658 > #define TS_WARN_DELTA 473
659 > #define TWODOTS 474
660 > #define TYPE 475
661 > #define UNKLINE 476
662 > #define USE_LOGGING 477
663 > #define USER 478
664 > #define VHOST 479
665 > #define VHOST6 480
666 > #define WARN_NO_CONNECT_BLOCK 481
667 > #define WHOIS 482
668 > #define WHOWAS_HISTORY_LENGTH 483
669 > #define XLINE 484
670 > #define XLINE_EXEMPT 485
671  
672 + /* Value type.  */
673   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
674 < typedef union YYSTYPE
674 >
675 > union YYSTYPE
676   {
677 < /* Line 387 of yacc.c  */
668 < #line 138 "conf_parser.y"
677 > #line 133 "conf_parser.y" /* yacc.c:352  */
678  
679    int number;
680    char *string;
681  
682 + #line 683 "conf_parser.c" /* yacc.c:352  */
683 + };
684  
685 < /* Line 387 of yacc.c  */
675 < #line 676 "conf_parser.c"
676 < } YYSTYPE;
685 > typedef union YYSTYPE YYSTYPE;
686   # define YYSTYPE_IS_TRIVIAL 1
678 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
687   # define YYSTYPE_IS_DECLARED 1
688   #endif
689  
690 +
691   extern YYSTYPE yylval;
692  
684 #ifdef YYPARSE_PARAM
685 #if defined __STDC__ || defined __cplusplus
686 int yyparse (void *YYPARSE_PARAM);
687 #else
688 int yyparse ();
689 #endif
690 #else /* ! YYPARSE_PARAM */
691 #if defined __STDC__ || defined __cplusplus
693   int yyparse (void);
693 #else
694 int yyparse ();
695 #endif
696 #endif /* ! YYPARSE_PARAM */
694  
695   #endif /* !YY_YY_CONF_PARSER_H_INCLUDED  */
696  
700 /* Copy the second part of user declarations.  */
697  
702 /* Line 390 of yacc.c  */
703 #line 704 "conf_parser.c"
698  
699   #ifdef short
700   # undef short
# Line 714 | Line 708 | typedef unsigned char yytype_uint8;
708  
709   #ifdef YYTYPE_INT8
710   typedef YYTYPE_INT8 yytype_int8;
717 #elif (defined __STDC__ || defined __C99__FUNC__ \
718     || defined __cplusplus || defined _MSC_VER)
719 typedef signed char yytype_int8;
711   #else
712 < typedef short int yytype_int8;
712 > typedef signed char yytype_int8;
713   #endif
714  
715   #ifdef YYTYPE_UINT16
716   typedef YYTYPE_UINT16 yytype_uint16;
717   #else
718 < typedef unsigned short int yytype_uint16;
718 > typedef unsigned short yytype_uint16;
719   #endif
720  
721   #ifdef YYTYPE_INT16
722   typedef YYTYPE_INT16 yytype_int16;
723   #else
724 < typedef short int yytype_int16;
724 > typedef short yytype_int16;
725   #endif
726  
727   #ifndef YYSIZE_T
# Line 738 | Line 729 | typedef short int yytype_int16;
729   #  define YYSIZE_T __SIZE_TYPE__
730   # elif defined size_t
731   #  define YYSIZE_T size_t
732 < # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
742 <     || defined __cplusplus || defined _MSC_VER)
732 > # elif ! defined YYSIZE_T
733   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
734   #  define YYSIZE_T size_t
735   # else
736 < #  define YYSIZE_T unsigned int
736 > #  define YYSIZE_T unsigned
737   # endif
738   #endif
739  
# Line 761 | Line 751 | typedef short int yytype_int16;
751   # endif
752   #endif
753  
754 < #ifndef __attribute__
755 < /* This feature is available in gcc versions 2.5 and later.  */
756 < # if (! defined __GNUC__ || __GNUC__ < 2 \
757 <      || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
758 < #  define __attribute__(Spec) /* empty */
754 > #ifndef YY_ATTRIBUTE
755 > # if (defined __GNUC__                                               \
756 >      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
757 >     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
758 > #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
759 > # else
760 > #  define YY_ATTRIBUTE(Spec) /* empty */
761   # endif
762   #endif
763  
764 + #ifndef YY_ATTRIBUTE_PURE
765 + # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
766 + #endif
767 +
768 + #ifndef YY_ATTRIBUTE_UNUSED
769 + # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
770 + #endif
771 +
772   /* Suppress unused-variable warnings by "using" E.  */
773   #if ! defined lint || defined __GNUC__
774   # define YYUSE(E) ((void) (E))
# Line 776 | Line 776 | typedef short int yytype_int16;
776   # define YYUSE(E) /* empty */
777   #endif
778  
779 <
780 < /* Identity function, used to suppress warnings about constant conditions.  */
781 < #ifndef lint
782 < # define YYID(N) (N)
783 < #else
784 < #if (defined __STDC__ || defined __C99__FUNC__ \
785 <     || defined __cplusplus || defined _MSC_VER)
786 < static int
787 < YYID (int yyi)
779 > #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
780 > /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
781 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
782 >    _Pragma ("GCC diagnostic push") \
783 >    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
784 >    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
785 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
786 >    _Pragma ("GCC diagnostic pop")
787   #else
788 < static int
790 < YYID (yyi)
791 <    int yyi;
788 > # define YY_INITIAL_VALUE(Value) Value
789   #endif
790 < {
791 <  return yyi;
792 < }
790 > #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
791 > # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
792 > # define YY_IGNORE_MAYBE_UNINITIALIZED_END
793 > #endif
794 > #ifndef YY_INITIAL_VALUE
795 > # define YY_INITIAL_VALUE(Value) /* Nothing. */
796   #endif
797  
798 +
799   #if ! defined yyoverflow || YYERROR_VERBOSE
800  
801   /* The parser invokes alloca or malloc; define the necessary symbols.  */
# Line 812 | Line 813 | YYID (yyi)
813   #    define alloca _alloca
814   #   else
815   #    define YYSTACK_ALLOC alloca
816 < #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
816 <     || defined __cplusplus || defined _MSC_VER)
816 > #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
817   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
818        /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
819   #     ifndef EXIT_SUCCESS
# Line 825 | Line 825 | YYID (yyi)
825   # endif
826  
827   # ifdef YYSTACK_ALLOC
828 <   /* Pacify GCC's `empty if-body' warning.  */
829 < #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
828 >   /* Pacify GCC's 'empty if-body' warning.  */
829 > #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
830   #  ifndef YYSTACK_ALLOC_MAXIMUM
831      /* The OS might guarantee only one guard page at the bottom of the stack,
832         and a page size can be as small as 4096 bytes.  So we cannot safely
# Line 842 | Line 842 | YYID (yyi)
842   #  endif
843   #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
844         && ! ((defined YYMALLOC || defined malloc) \
845 <             && (defined YYFREE || defined free)))
845 >             && (defined YYFREE || defined free)))
846   #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
847   #   ifndef EXIT_SUCCESS
848   #    define EXIT_SUCCESS 0
# Line 850 | Line 850 | YYID (yyi)
850   #  endif
851   #  ifndef YYMALLOC
852   #   define YYMALLOC malloc
853 < #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
854 <     || defined __cplusplus || defined _MSC_VER)
853 > #   if ! defined malloc && ! defined EXIT_SUCCESS
854   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
855   #   endif
856   #  endif
857   #  ifndef YYFREE
858   #   define YYFREE free
859 < #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
861 <     || defined __cplusplus || defined _MSC_VER)
859 > #   if ! defined free && ! defined EXIT_SUCCESS
860   void free (void *); /* INFRINGES ON USER NAME SPACE */
861   #   endif
862   #  endif
# Line 868 | Line 866 | void free (void *); /* INFRINGES ON USER
866  
867   #if (! defined yyoverflow \
868       && (! defined __cplusplus \
869 <         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
869 >         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
870  
871   /* A type that is properly aligned for any stack member.  */
872   union yyalloc
# Line 893 | Line 891 | union yyalloc
891     elements in the stack, and YYPTR gives the new location of the
892     stack.  Advance YYPTR to a properly aligned location for the next
893     stack.  */
894 < # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
895 <    do                                                                  \
896 <      {                                                                 \
897 <        YYSIZE_T yynewbytes;                                            \
898 <        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
899 <        Stack = &yyptr->Stack_alloc;                                    \
900 <        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
901 <        yyptr += yynewbytes / sizeof (*yyptr);                          \
902 <      }                                                                 \
903 <    while (YYID (0))
894 > # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
895 >    do                                                                  \
896 >      {                                                                 \
897 >        YYSIZE_T yynewbytes;                                            \
898 >        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
899 >        Stack = &yyptr->Stack_alloc;                                    \
900 >        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
901 >        yyptr += yynewbytes / sizeof (*yyptr);                          \
902 >      }                                                                 \
903 >    while (0)
904  
905   #endif
906  
# Line 921 | Line 919 | union yyalloc
919            for (yyi = 0; yyi < (Count); yyi++)   \
920              (Dst)[yyi] = (Src)[yyi];            \
921          }                                       \
922 <      while (YYID (0))
922 >      while (0)
923   #  endif
924   # endif
925   #endif /* !YYCOPY_NEEDED */
# Line 929 | Line 927 | union yyalloc
927   /* YYFINAL -- State number of the termination state.  */
928   #define YYFINAL  2
929   /* YYLAST -- Last index in YYTABLE.  */
930 < #define YYLAST   1281
930 > #define YYLAST   1252
931  
932   /* YYNTOKENS -- Number of terminals.  */
933 < #define YYNTOKENS  229
933 > #define YYNTOKENS  237
934   /* YYNNTS -- Number of nonterminals.  */
935 < #define YYNNTS  290
935 > #define YYNNTS  292
936   /* YYNRULES -- Number of rules.  */
937 < #define YYNRULES  645
938 < /* YYNRULES -- Number of states.  */
939 < #define YYNSTATES  1261
937 > #define YYNRULES  665
938 > /* YYNSTATES -- Number of states.  */
939 > #define YYNSTATES  1307
940  
943 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
941   #define YYUNDEFTOK  2
942 < #define YYMAXUTOK   478
942 > #define YYMAXUTOK   485
943  
944 < #define YYTRANSLATE(YYX)                                                \
945 <  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
944 > /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
945 >   as returned by yylex, with out-of-bounds checking.  */
946 > #define YYTRANSLATE(YYX)                                                \
947 >  ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
948  
949 < /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
949 > /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
950 >   as returned by yylex.  */
951   static const yytype_uint8 yytranslate[] =
952   {
953         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
954         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
955         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
956         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
957 <       2,     2,     2,     2,   228,     2,     2,     2,     2,     2,
958 <       2,     2,     2,     2,     2,     2,     2,     2,     2,   224,
959 <       2,   227,     2,     2,     2,     2,     2,     2,     2,     2,
957 >       2,     2,     2,     2,   235,     2,     2,     2,     2,     2,
958 >       2,     2,     2,     2,     2,     2,     2,     2,   236,   231,
959 >       2,   234,     2,     2,     2,     2,     2,     2,     2,     2,
960         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
961         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
962         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
963         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
964         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
965 <       2,     2,     2,   226,     2,   225,     2,     2,     2,     2,
965 >       2,     2,     2,   233,     2,   232,     2,     2,     2,     2,
966         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
967         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
968         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 997 | Line 997 | static const yytype_uint8 yytranslate[]
997       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
998       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
999       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1000 <     215,   216,   217,   218,   219,   220,   221,   222,   223
1000 >     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1001 >     225,   226,   227,   228,   229,   230
1002   };
1003  
1004   #if YYDEBUG
1005 < /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1005 <   YYRHS.  */
1006 < static const yytype_uint16 yyprhs[] =
1007 < {
1008 <       0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
1009 <      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
1010 <      39,    41,    43,    45,    47,    50,    53,    54,    56,    59,
1011 <      63,    67,    71,    75,    79,    83,    87,    88,    90,    93,
1012 <      97,   101,   105,   111,   114,   116,   118,   120,   123,   128,
1013 <     133,   139,   142,   144,   146,   148,   150,   152,   154,   156,
1014 <     158,   160,   162,   164,   166,   168,   170,   172,   174,   176,
1015 <     178,   181,   186,   191,   195,   197,   199,   201,   205,   207,
1016 <     209,   211,   216,   221,   226,   231,   236,   241,   246,   251,
1017 <     256,   261,   266,   271,   276,   281,   286,   292,   295,   297,
1018 <     299,   301,   303,   306,   311,   316,   321,   327,   330,   332,
1019 <     334,   336,   339,   344,   345,   352,   355,   357,   359,   361,
1020 <     363,   366,   371,   376,   381,   382,   388,   392,   394,   396,
1021 <     398,   400,   402,   404,   406,   408,   409,   416,   419,   421,
1022 <     423,   425,   427,   429,   431,   433,   435,   437,   440,   445,
1023 <     450,   455,   460,   465,   470,   471,   477,   481,   483,   485,
1024 <     487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
1025 <     507,   509,   511,   513,   515,   517,   519,   521,   523,   525,
1026 <     526,   532,   536,   538,   540,   542,   544,   546,   548,   550,
1027 <     552,   554,   556,   558,   560,   562,   564,   566,   568,   570,
1028 <     572,   574,   576,   577,   584,   587,   589,   591,   593,   595,
1029 <     597,   599,   601,   603,   605,   607,   609,   611,   613,   615,
1030 <     617,   619,   621,   624,   629,   634,   639,   644,   649,   654,
1031 <     659,   664,   669,   674,   679,   684,   689,   694,   699,   700,
1032 <     706,   710,   712,   714,   716,   717,   724,   725,   731,   735,
1033 <     737,   739,   741,   743,   746,   748,   750,   752,   754,   756,
1034 <     759,   760,   766,   770,   772,   774,   778,   783,   788,   789,
1035 <     796,   799,   801,   803,   805,   807,   809,   811,   813,   815,
1036 <     817,   820,   825,   830,   835,   840,   841,   847,   851,   853,
1037 <     855,   857,   859,   861,   863,   865,   867,   869,   871,   873,
1038 <     878,   883,   888,   889,   896,   899,   901,   903,   905,   907,
1039 <     910,   915,   920,   925,   931,   934,   936,   938,   940,   945,
1040 <     946,   953,   956,   958,   960,   962,   964,   967,   972,   977,
1041 <     978,   984,   988,   990,   992,   994,   996,   998,  1000,  1002,
1042 <    1004,  1006,  1008,  1010,  1011,  1018,  1021,  1023,  1025,  1027,
1043 <    1030,  1035,  1036,  1042,  1046,  1048,  1050,  1052,  1054,  1056,
1044 <    1058,  1060,  1062,  1064,  1066,  1068,  1069,  1076,  1079,  1081,
1045 <    1083,  1085,  1087,  1089,  1091,  1093,  1095,  1097,  1099,  1101,
1046 <    1103,  1105,  1107,  1110,  1115,  1120,  1125,  1130,  1135,  1140,
1047 <    1145,  1150,  1151,  1157,  1161,  1163,  1165,  1167,  1172,  1177,
1048 <    1182,  1187,  1192,  1193,  1200,  1201,  1207,  1211,  1213,  1215,
1049 <    1218,  1220,  1222,  1224,  1226,  1228,  1233,  1238,  1239,  1246,
1050 <    1249,  1251,  1253,  1255,  1257,  1262,  1267,  1273,  1276,  1278,
1051 <    1280,  1282,  1287,  1288,  1295,  1296,  1302,  1306,  1308,  1310,
1052 <    1313,  1315,  1317,  1319,  1321,  1323,  1328,  1333,  1339,  1342,
1053 <    1344,  1346,  1348,  1350,  1352,  1354,  1356,  1358,  1360,  1362,
1054 <    1364,  1366,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,
1055 <    1384,  1386,  1388,  1390,  1392,  1394,  1396,  1398,  1400,  1402,
1056 <    1404,  1406,  1408,  1410,  1412,  1414,  1416,  1418,  1420,  1422,
1057 <    1424,  1426,  1428,  1430,  1432,  1434,  1436,  1438,  1440,  1442,
1058 <    1447,  1452,  1457,  1462,  1467,  1472,  1477,  1482,  1487,  1492,
1059 <    1497,  1502,  1507,  1512,  1517,  1522,  1527,  1532,  1537,  1542,
1060 <    1547,  1552,  1557,  1562,  1567,  1572,  1577,  1582,  1587,  1592,
1061 <    1597,  1602,  1607,  1612,  1617,  1622,  1627,  1632,  1637,  1642,
1062 <    1647,  1652,  1657,  1662,  1667,  1668,  1674,  1678,  1680,  1682,
1063 <    1684,  1686,  1688,  1690,  1692,  1694,  1696,  1698,  1700,  1702,
1064 <    1704,  1706,  1708,  1710,  1712,  1714,  1716,  1718,  1720,  1721,
1065 <    1727,  1731,  1733,  1735,  1737,  1739,  1741,  1743,  1745,  1747,
1066 <    1749,  1751,  1753,  1755,  1757,  1759,  1761,  1763,  1765,  1767,
1067 <    1769,  1771,  1773,  1775,  1780,  1785,  1790,  1796,  1799,  1801,
1068 <    1803,  1805,  1807,  1809,  1811,  1813,  1815,  1817,  1819,  1821,
1069 <    1823,  1825,  1827,  1829,  1831,  1836,  1841,  1846,  1851,  1856,
1070 <    1861,  1866,  1871,  1876,  1881,  1886,  1891,  1896,  1901,  1907,
1071 <    1910,  1912,  1914,  1916,  1918,  1920,  1922,  1924,  1926,  1928,
1072 <    1933,  1938,  1943,  1948,  1953,  1958
1073 < };
1074 <
1075 < /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
1076 < static const yytype_int16 yyrhs[] =
1077 < {
1078 <     230,     0,    -1,    -1,   230,   231,    -1,   265,    -1,   271,
1079 <      -1,   285,    -1,   492,    -1,   303,    -1,   326,    -1,   340,
1080 <      -1,   241,    -1,   509,    -1,   355,    -1,   362,    -1,   366,
1081 <      -1,   376,    -1,   385,    -1,   405,    -1,   415,    -1,   421,
1082 <      -1,   435,    -1,   425,    -1,   236,    -1,     1,   224,    -1,
1083 <       1,   225,    -1,    -1,   233,    -1,   105,   232,    -1,   105,
1084 <     143,   232,    -1,   105,   144,   232,    -1,   105,   145,   232,
1085 <      -1,   105,   146,   232,    -1,   105,   147,   232,    -1,   105,
1086 <     148,   232,    -1,   105,   149,   232,    -1,    -1,   235,    -1,
1087 <     105,   234,    -1,   105,     9,   234,    -1,   105,    10,   234,
1088 <      -1,   105,    11,   234,    -1,    94,   226,   237,   225,   224,
1089 <      -1,   237,   238,    -1,   238,    -1,   239,    -1,   240,    -1,
1090 <       1,   224,    -1,    93,   227,   123,   224,    -1,   119,   227,
1091 <     123,   224,    -1,   153,   226,   242,   225,   224,    -1,   242,
1092 <     243,    -1,   243,    -1,   254,    -1,   259,    -1,   264,    -1,
1093 <     256,    -1,   257,    -1,   258,    -1,   261,    -1,   262,    -1,
1094 <     263,    -1,   252,    -1,   251,    -1,   260,    -1,   255,    -1,
1095 <     250,    -1,   244,    -1,   245,    -1,   253,    -1,     1,   224,
1096 <      -1,   137,   227,   246,   224,    -1,   138,   227,   248,   224,
1097 <      -1,   246,   228,   247,    -1,   247,    -1,   139,    -1,   140,
1098 <      -1,   248,   228,   249,    -1,   249,    -1,   139,    -1,   140,
1099 <      -1,   135,   227,   123,   224,    -1,   133,   227,   123,   224,
1100 <      -1,   136,   227,   123,   224,    -1,   178,   227,   123,   224,
1101 <      -1,    95,   227,   123,   224,    -1,   154,   227,   123,   224,
1102 <      -1,    24,   227,   123,   224,    -1,    98,   227,   123,   224,
1103 <      -1,    97,   227,   123,   224,    -1,   218,   227,   123,   224,
1104 <      -1,   219,   227,   123,   224,    -1,   188,   227,   105,   224,
1105 <      -1,    81,   227,   105,   224,    -1,    85,   227,   105,   224,
1106 <      -1,    58,   227,   167,   224,    -1,     4,   226,   266,   225,
1107 <     224,    -1,   266,   267,    -1,   267,    -1,   268,    -1,   270,
1108 <      -1,   269,    -1,     1,   224,    -1,    95,   227,   123,   224,
1109 <      -1,    31,   227,   123,   224,    -1,    24,   227,   123,   224,
1110 <      -1,    72,   226,   272,   225,   224,    -1,   272,   273,    -1,
1111 <     273,    -1,   274,    -1,   275,    -1,     1,   224,    -1,   217,
1112 <     227,   167,   224,    -1,    -1,   276,   223,   226,   277,   225,
1113 <     224,    -1,   277,   278,    -1,   278,    -1,   279,    -1,   281,
1114 <      -1,   280,    -1,     1,   224,    -1,    95,   227,   123,   224,
1115 <      -1,   222,   227,   235,   224,    -1,   222,   227,   203,   224,
1116 <      -1,    -1,   158,   282,   227,   283,   224,    -1,   283,   228,
1117 <     284,    -1,   284,    -1,   215,    -1,   108,    -1,    40,    -1,
1118 <     181,    -1,    65,    -1,    63,    -1,   180,    -1,    -1,   108,
1119 <     286,   226,   287,   225,   224,    -1,   287,   288,    -1,   288,
1120 <      -1,   289,    -1,   290,    -1,   291,    -1,   295,    -1,   294,
1121 <      -1,   292,    -1,   293,    -1,   299,    -1,     1,   224,    -1,
1122 <      95,   227,   123,   224,    -1,   215,   227,   123,   224,    -1,
1123 <     118,   227,   123,   224,    -1,    32,   227,   167,   224,    -1,
1124 <     134,   227,   123,   224,    -1,    17,   227,   123,   224,    -1,
1125 <      -1,   200,   296,   227,   297,   224,    -1,   297,   228,   298,
1126 <      -1,   298,    -1,   173,    -1,   176,    -1,   177,    -1,   179,
1127 <      -1,   180,    -1,   183,    -1,    51,    -1,   197,    -1,   189,
1128 <      -1,   193,    -1,   201,    -1,   198,    -1,   182,    -1,   191,
1129 <      -1,   195,    -1,   184,    -1,   207,    -1,   174,    -1,   175,
1130 <      -1,   187,    -1,   190,    -1,    -1,    36,   300,   227,   301,
1131 <     224,    -1,   301,   228,   302,    -1,   302,    -1,    47,    -1,
1132 <     130,    -1,    65,    -1,   214,    -1,   181,    -1,   202,    -1,
1133 <     220,    -1,    40,    -1,    25,    -1,   209,    -1,   129,    -1,
1134 <       4,    -1,   100,    -1,   191,    -1,   206,    -1,   112,    -1,
1135 <     131,    -1,   196,    -1,    93,    -1,    -1,    17,   304,   226,
1136 <     305,   225,   224,    -1,   305,   306,    -1,   306,    -1,   307,
1137 <      -1,   317,    -1,   318,    -1,   308,    -1,   319,    -1,   309,
1138 <      -1,   310,    -1,   311,    -1,   312,    -1,   313,    -1,   314,
1139 <      -1,   315,    -1,   316,    -1,   320,    -1,   321,    -1,   322,
1140 <      -1,     1,   224,    -1,    95,   227,   123,   224,    -1,   121,
1141 <     227,   233,   224,    -1,   107,   227,   105,   224,    -1,    19,
1142 <     227,   233,   224,    -1,    83,   227,   105,   224,    -1,    77,
1143 <     227,   105,   224,    -1,    79,   227,   105,   224,    -1,    78,
1144 <     227,   105,   224,    -1,   150,   227,   235,   224,    -1,   192,
1145 <     227,   235,   224,    -1,    15,   227,   105,   224,    -1,    16,
1146 <     227,   105,   224,    -1,   106,   227,   105,   224,    -1,    89,
1147 <     227,   233,   224,    -1,    90,   227,   233,   224,    -1,    -1,
1148 <      36,   323,   227,   324,   224,    -1,   324,   228,   325,    -1,
1149 <     325,    -1,    91,    -1,    92,    -1,    -1,    71,   327,   226,
1150 <     332,   225,   224,    -1,    -1,    36,   329,   227,   330,   224,
1151 <      -1,   330,   228,   331,    -1,   331,    -1,   199,    -1,    51,
1152 <      -1,   194,    -1,   332,   333,    -1,   333,    -1,   334,    -1,
1153 <     328,    -1,   338,    -1,   339,    -1,     1,   224,    -1,    -1,
1154 <     122,   227,   336,   335,   224,    -1,   336,   228,   337,    -1,
1155 <     337,    -1,   105,    -1,   105,   171,   105,    -1,    62,   227,
1156 <     123,   224,    -1,    57,   227,   123,   224,    -1,    -1,    48,
1157 <     341,   226,   342,   225,   224,    -1,   342,   343,    -1,   343,
1158 <      -1,   344,    -1,   345,    -1,   346,    -1,   348,    -1,   352,
1159 <      -1,   353,    -1,   354,    -1,   347,    -1,     1,   224,    -1,
1160 <     215,   227,   123,   224,    -1,   118,   227,   123,   224,    -1,
1161 <      17,   227,   123,   224,    -1,    32,   227,   167,   224,    -1,
1162 <      -1,    36,   349,   227,   350,   224,    -1,   350,   228,   351,
1163 <      -1,   351,    -1,   161,    -1,    33,    -1,    66,    -1,    49,
1164 <      -1,    13,    -1,   104,    -1,    43,    -1,   142,    -1,   208,
1165 <      -1,    96,    -1,   160,   227,   123,   224,    -1,   127,   227,
1166 <     123,   224,    -1,   126,   227,   105,   224,    -1,    -1,   141,
1167 <     356,   226,   357,   225,   224,    -1,   357,   358,    -1,   358,
1168 <      -1,   359,    -1,   360,    -1,   361,    -1,     1,   224,    -1,
1169 <     125,   227,   123,   224,    -1,    14,   227,   123,   224,    -1,
1170 <      99,   227,   123,   224,    -1,   210,   226,   363,   225,   224,
1171 <      -1,   363,   364,    -1,   364,    -1,   365,    -1,     1,    -1,
1172 <      95,   227,   123,   224,    -1,    -1,   156,   367,   226,   368,
1173 <     225,   224,    -1,   368,   369,    -1,   369,    -1,   370,    -1,
1174 <     371,    -1,   372,    -1,     1,   224,    -1,    95,   227,   123,
1175 <     224,    -1,   215,   227,   123,   224,    -1,    -1,   158,   373,
1176 <     227,   374,   224,    -1,   374,   228,   375,    -1,   375,    -1,
1177 <      65,    -1,   214,    -1,   181,    -1,   202,    -1,   220,    -1,
1178 <     205,    -1,   141,    -1,   204,    -1,   187,    -1,   172,    -1,
1179 <      -1,   157,   377,   226,   378,   225,   224,    -1,   378,   379,
1180 <      -1,   379,    -1,   380,    -1,   381,    -1,     1,   224,    -1,
1181 <      95,   227,   123,   224,    -1,    -1,   158,   382,   227,   383,
1182 <     224,    -1,   383,   228,   384,    -1,   384,    -1,    65,    -1,
1183 <     214,    -1,   181,    -1,   202,    -1,   220,    -1,   205,    -1,
1184 <     141,    -1,   204,    -1,   187,    -1,   172,    -1,    -1,    18,
1185 <     386,   226,   387,   225,   224,    -1,   387,   388,    -1,   388,
1186 <      -1,   389,    -1,   390,    -1,   391,    -1,   392,    -1,   393,
1187 <      -1,   395,    -1,   394,    -1,   404,    -1,   396,    -1,   401,
1188 <      -1,   402,    -1,   403,    -1,   400,    -1,     1,   224,    -1,
1189 <      95,   227,   123,   224,    -1,    57,   227,   123,   224,    -1,
1190 <     218,   227,   123,   224,    -1,   151,   227,   123,   224,    -1,
1191 <       3,   227,   123,   224,    -1,   122,   227,   105,   224,    -1,
1192 <       5,   227,   185,   224,    -1,     5,   227,   186,   224,    -1,
1193 <      -1,    36,   397,   227,   398,   224,    -1,   398,   228,   399,
1194 <      -1,   399,    -1,     8,    -1,   199,    -1,    32,   227,   167,
1195 <     224,    -1,    59,   227,   123,   224,    -1,    69,   227,   123,
1196 <     224,    -1,    17,   227,   123,   224,    -1,   178,   227,   123,
1197 <     224,    -1,    -1,    63,   406,   226,   411,   225,   224,    -1,
1198 <      -1,   158,   408,   227,   409,   224,    -1,   409,   228,   410,
1199 <      -1,   410,    -1,   128,    -1,   411,   412,    -1,   412,    -1,
1200 <     413,    -1,   414,    -1,   407,    -1,     1,    -1,   215,   227,
1201 <     123,   224,    -1,   125,   227,   123,   224,    -1,    -1,    23,
1202 <     416,   226,   417,   225,   224,    -1,   417,   418,    -1,   418,
1203 <      -1,   419,    -1,   420,    -1,     1,    -1,    62,   227,   123,
1204 <     224,    -1,   125,   227,   123,   224,    -1,    34,   226,   422,
1205 <     225,   224,    -1,   422,   423,    -1,   423,    -1,   424,    -1,
1206 <       1,    -1,    62,   227,   123,   224,    -1,    -1,    38,   426,
1207 <     226,   431,   225,   224,    -1,    -1,   158,   428,   227,   429,
1208 <     224,    -1,   429,   228,   430,    -1,   430,    -1,   128,    -1,
1209 <     431,   432,    -1,   432,    -1,   433,    -1,   434,    -1,   427,
1210 <      -1,     1,    -1,    95,   227,   123,   224,    -1,   125,   227,
1211 <     123,   224,    -1,    39,   226,   436,   225,   224,    -1,   436,
1212 <     437,    -1,   437,    -1,   446,    -1,   447,    -1,   449,    -1,
1213 <     450,    -1,   451,    -1,   452,    -1,   453,    -1,   454,    -1,
1214 <     455,    -1,   456,    -1,   445,    -1,   458,    -1,   459,    -1,
1215 <     473,    -1,   461,    -1,   463,    -1,   465,    -1,   464,    -1,
1216 <     468,    -1,   462,    -1,   469,    -1,   470,    -1,   471,    -1,
1217 <     472,    -1,   485,    -1,   474,    -1,   475,    -1,   476,    -1,
1218 <     481,    -1,   466,    -1,   467,    -1,   491,    -1,   489,    -1,
1219 <     490,    -1,   448,    -1,   480,    -1,   457,    -1,   478,    -1,
1220 <     479,    -1,   444,    -1,   439,    -1,   440,    -1,   441,    -1,
1221 <     442,    -1,   443,    -1,   460,    -1,   438,    -1,   477,    -1,
1222 <       1,    -1,    86,   227,   105,   224,    -1,    42,   227,   167,
1223 <     224,    -1,    41,   227,   233,   224,    -1,    44,   227,   233,
1224 <     224,    -1,    45,   227,   105,   224,    -1,    46,   227,   105,
1225 <     224,    -1,   155,   227,   167,   224,    -1,    64,   227,   233,
1226 <     224,    -1,    56,   227,   167,   224,    -1,    60,   227,   167,
1227 <     224,    -1,    28,   227,   167,   224,    -1,    35,   227,   167,
1228 <     224,    -1,     6,   227,   167,   224,    -1,    82,   227,   233,
1229 <     224,    -1,    80,   227,   105,   224,    -1,    73,   227,   105,
1230 <     224,    -1,     7,   227,   233,   224,    -1,   170,   227,   233,
1231 <     224,    -1,   169,   227,   233,   224,    -1,    50,   227,   105,
1232 <     224,    -1,    61,   227,   167,   224,    -1,   221,   227,   167,
1233 <     224,    -1,   162,   227,   167,   224,    -1,   165,   227,   167,
1234 <     224,    -1,   166,   227,   167,   224,    -1,   164,   227,   167,
1235 <     224,    -1,   164,   227,   168,   224,    -1,   163,   227,   167,
1236 <     224,    -1,   163,   227,   168,   224,    -1,   116,   227,   233,
1237 <     224,    -1,    12,   227,   233,   224,    -1,   109,   227,   167,
1238 <     224,    -1,   117,   227,   233,   224,    -1,   159,   227,   167,
1239 <     224,    -1,   103,   227,   167,   224,    -1,   213,   227,   167,
1240 <     224,    -1,   111,   227,   167,   224,    -1,    29,   227,   105,
1241 <     224,    -1,    84,   227,   105,   224,    -1,   216,   227,   167,
1242 <     224,    -1,    30,   227,   123,   224,    -1,   211,   227,   123,
1243 <     224,    -1,   120,   227,   167,   224,    -1,    26,   227,   167,
1244 <     224,    -1,   212,   227,   233,   224,    -1,    -1,   113,   482,
1245 <     227,   483,   224,    -1,   483,   228,   484,    -1,   484,    -1,
1246 <     173,    -1,   176,    -1,   177,    -1,   179,    -1,   180,    -1,
1247 <     183,    -1,    51,    -1,   197,    -1,   189,    -1,   193,    -1,
1248 <     201,    -1,   198,    -1,   182,    -1,   191,    -1,   195,    -1,
1249 <     184,    -1,   207,    -1,   174,    -1,   175,    -1,   187,    -1,
1250 <      -1,   110,   486,   227,   487,   224,    -1,   487,   228,   488,
1251 <      -1,   488,    -1,   173,    -1,   176,    -1,   177,    -1,   179,
1252 <      -1,   180,    -1,   183,    -1,   197,    -1,    51,    -1,   189,
1253 <      -1,   193,    -1,   201,    -1,   198,    -1,   182,    -1,   191,
1254 <      -1,   195,    -1,   184,    -1,   207,    -1,   174,    -1,   175,
1255 <      -1,   187,    -1,   190,    -1,    87,   227,   105,   224,    -1,
1256 <      88,   227,   105,   224,    -1,    20,   227,   105,   224,    -1,
1257 <      14,   226,   493,   225,   224,    -1,   493,   494,    -1,   494,
1258 <      -1,   502,    -1,   497,    -1,   498,    -1,   499,    -1,   500,
1259 <      -1,   501,    -1,   503,    -1,   504,    -1,   505,    -1,   496,
1260 <      -1,   506,    -1,   507,    -1,   508,    -1,   495,    -1,     1,
1261 <      -1,    27,   227,   167,   224,    -1,   132,   227,   167,   224,
1262 <      -1,    67,   227,   233,   224,    -1,    68,   227,   233,   224,
1263 <      -1,    76,   227,   105,   224,    -1,    75,   227,   105,   224,
1264 <      -1,   124,   227,   167,   224,    -1,    74,   227,   105,   224,
1265 <      -1,    22,   227,   105,   224,    -1,    21,   227,   105,   224,
1266 <      -1,   101,   227,   167,   224,    -1,   102,   227,   167,   224,
1267 <      -1,   114,   227,   105,   224,    -1,   115,   227,   233,   224,
1268 <      -1,   152,   226,   510,   225,   224,    -1,   510,   511,    -1,
1269 <     511,    -1,   512,    -1,   513,    -1,   514,    -1,   516,    -1,
1270 <     517,    -1,   515,    -1,   518,    -1,     1,    -1,    37,   227,
1271 <     167,   224,    -1,    54,   227,   167,   224,    -1,    55,   227,
1272 <     167,   224,    -1,    52,   227,   123,   224,    -1,    70,   227,
1273 <     233,   224,    -1,    51,   227,   167,   224,    -1,    53,   227,
1274 <     167,   224,    -1
1275 < };
1276 <
1277 < /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1005 >  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1006   static const yytype_uint16 yyrline[] =
1007   {
1008 <       0,   365,   365,   366,   369,   370,   371,   372,   373,   374,
1009 <     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1010 <     385,   386,   387,   388,   389,   390,   394,   394,   395,   399,
1011 <     403,   407,   411,   415,   419,   423,   429,   429,   430,   431,
1012 <     432,   433,   440,   443,   443,   444,   444,   444,   446,   452,
1013 <     459,   461,   461,   462,   462,   463,   463,   464,   464,   465,
1014 <     465,   466,   466,   467,   467,   468,   468,   469,   469,   470,
1015 <     471,   474,   475,   477,   477,   478,   484,   492,   492,   493,
1016 <     499,   507,   549,   608,   636,   644,   659,   674,   683,   697,
1017 <     706,   734,   764,   789,   811,   833,   842,   844,   844,   845,
1018 <     845,   846,   846,   848,   857,   866,   878,   879,   879,   881,
1019 <     881,   882,   884,   891,   891,   904,   905,   907,   907,   908,
1020 <     908,   910,   918,   921,   927,   926,   932,   932,   933,   937,
1021 <     941,   945,   949,   953,   957,   968,   967,  1044,  1044,  1045,
1022 <    1045,  1045,  1046,  1046,  1046,  1047,  1047,  1047,  1049,  1055,
1023 <    1061,  1067,  1078,  1084,  1091,  1090,  1096,  1096,  1097,  1101,
1024 <    1105,  1109,  1113,  1117,  1121,  1125,  1129,  1133,  1137,  1141,
1025 <    1145,  1149,  1153,  1157,  1161,  1165,  1169,  1173,  1177,  1184,
1026 <    1183,  1189,  1189,  1190,  1194,  1198,  1202,  1206,  1210,  1214,
1027 <    1218,  1222,  1226,  1230,  1234,  1238,  1242,  1246,  1250,  1254,
1028 <    1258,  1262,  1273,  1272,  1333,  1333,  1334,  1335,  1335,  1336,
1029 <    1337,  1338,  1339,  1340,  1341,  1342,  1343,  1344,  1344,  1345,
1030 <    1346,  1347,  1348,  1350,  1356,  1362,  1368,  1374,  1380,  1386,
1031 <    1392,  1398,  1404,  1411,  1417,  1423,  1429,  1438,  1448,  1447,
1032 <    1453,  1453,  1454,  1458,  1469,  1468,  1475,  1474,  1479,  1479,
1033 <    1480,  1484,  1488,  1494,  1494,  1495,  1495,  1495,  1495,  1495,
1034 <    1497,  1497,  1499,  1499,  1501,  1515,  1535,  1541,  1551,  1550,
1035 <    1592,  1592,  1593,  1593,  1593,  1593,  1594,  1594,  1594,  1595,
1036 <    1595,  1597,  1603,  1609,  1615,  1627,  1626,  1632,  1632,  1633,
1037 <    1637,  1641,  1645,  1649,  1653,  1657,  1661,  1665,  1669,  1675,
1038 <    1689,  1698,  1712,  1711,  1726,  1726,  1727,  1727,  1727,  1727,
1039 <    1729,  1735,  1741,  1750,  1752,  1752,  1753,  1753,  1755,  1771,
1040 <    1770,  1795,  1795,  1796,  1796,  1796,  1796,  1798,  1804,  1824,
1041 <    1823,  1829,  1829,  1830,  1834,  1838,  1842,  1846,  1850,  1854,
1042 <    1858,  1862,  1866,  1876,  1875,  1896,  1896,  1897,  1897,  1897,
1043 <    1899,  1906,  1905,  1911,  1911,  1912,  1916,  1920,  1924,  1928,
1044 <    1932,  1936,  1940,  1944,  1948,  1958,  1957,  2023,  2023,  2024,
1045 <    2024,  2024,  2025,  2025,  2026,  2026,  2026,  2027,  2027,  2027,
1046 <    2028,  2028,  2029,  2031,  2037,  2043,  2049,  2062,  2075,  2081,
1047 <    2085,  2094,  2093,  2098,  2098,  2099,  2103,  2109,  2120,  2126,
1048 <    2132,  2138,  2154,  2153,  2216,  2215,  2221,  2221,  2222,  2228,
1049 <    2228,  2229,  2229,  2229,  2229,  2231,  2251,  2261,  2260,  2287,
1050 <    2287,  2288,  2288,  2288,  2290,  2296,  2305,  2307,  2307,  2308,
1051 <    2308,  2310,  2328,  2327,  2373,  2372,  2378,  2378,  2379,  2385,
1052 <    2385,  2386,  2386,  2386,  2386,  2388,  2394,  2403,  2406,  2406,
1053 <    2407,  2407,  2408,  2408,  2409,  2409,  2410,  2410,  2411,  2411,
1054 <    2412,  2413,  2414,  2414,  2415,  2415,  2416,  2416,  2417,  2417,
1055 <    2418,  2418,  2419,  2419,  2420,  2420,  2421,  2421,  2422,  2422,
1056 <    2423,  2423,  2424,  2424,  2425,  2426,  2426,  2427,  2428,  2429,
1057 <    2429,  2430,  2430,  2431,  2432,  2433,  2434,  2434,  2435,  2438,
1058 <    2443,  2449,  2455,  2461,  2466,  2471,  2476,  2481,  2486,  2491,
1059 <    2496,  2501,  2506,  2511,  2516,  2521,  2526,  2531,  2537,  2548,
1060 <    2553,  2558,  2563,  2568,  2573,  2576,  2581,  2584,  2589,  2594,
1061 <    2599,  2604,  2609,  2614,  2619,  2624,  2629,  2634,  2639,  2644,
1062 <    2653,  2662,  2667,  2672,  2678,  2677,  2682,  2682,  2683,  2686,
1063 <    2689,  2692,  2695,  2698,  2701,  2704,  2707,  2710,  2713,  2716,
1064 <    2719,  2722,  2725,  2728,  2731,  2734,  2737,  2740,  2746,  2745,
1065 <    2750,  2750,  2751,  2754,  2757,  2760,  2763,  2766,  2769,  2772,
1066 <    2775,  2778,  2781,  2784,  2787,  2790,  2793,  2796,  2799,  2802,
1067 <    2805,  2808,  2811,  2816,  2821,  2826,  2835,  2838,  2838,  2839,
1068 <    2840,  2840,  2841,  2841,  2842,  2842,  2843,  2844,  2844,  2845,
1069 <    2846,  2846,  2847,  2847,  2849,  2854,  2859,  2864,  2869,  2874,
1070 <    2879,  2884,  2889,  2894,  2899,  2904,  2909,  2914,  2922,  2925,
1071 <    2925,  2926,  2926,  2927,  2928,  2929,  2929,  2930,  2931,  2933,
1072 <    2939,  2945,  2951,  2960,  2974,  2980
1008 >       0,   367,   367,   368,   371,   372,   373,   374,   375,   376,
1009 >     377,   378,   379,   380,   381,   382,   383,   384,   385,   386,
1010 >     387,   388,   389,   390,   391,   392,   393,   394,   398,   398,
1011 >     399,   400,   401,   402,   403,   404,   405,   406,   409,   409,
1012 >     410,   411,   412,   413,   420,   422,   422,   423,   423,   423,
1013 >     425,   431,   441,   443,   443,   444,   445,   446,   447,   448,
1014 >     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
1015 >     459,   462,   471,   480,   489,   498,   507,   516,   531,   546,
1016 >     556,   570,   579,   602,   625,   648,   658,   660,   660,   661,
1017 >     662,   663,   664,   666,   675,   684,   698,   697,   715,   715,
1018 >     716,   716,   716,   718,   724,   735,   734,   753,   753,   754,
1019 >     754,   754,   754,   754,   756,   762,   768,   774,   796,   797,
1020 >     797,   799,   799,   800,   802,   809,   809,   822,   823,   825,
1021 >     825,   826,   826,   828,   836,   839,   845,   844,   850,   850,
1022 >     851,   855,   859,   863,   867,   871,   875,   879,   890,   889,
1023 >     952,   952,   953,   954,   955,   956,   957,   958,   959,   960,
1024 >     961,   962,   963,   965,   971,   977,   983,   989,  1000,  1006,
1025 >    1017,  1024,  1023,  1029,  1029,  1030,  1034,  1038,  1042,  1046,
1026 >    1050,  1054,  1058,  1062,  1066,  1070,  1074,  1078,  1082,  1086,
1027 >    1090,  1094,  1098,  1102,  1106,  1110,  1114,  1118,  1125,  1124,
1028 >    1130,  1130,  1131,  1135,  1139,  1143,  1147,  1151,  1155,  1159,
1029 >    1163,  1167,  1171,  1175,  1179,  1183,  1187,  1191,  1195,  1199,
1030 >    1203,  1207,  1211,  1215,  1219,  1223,  1227,  1231,  1235,  1239,
1031 >    1243,  1254,  1253,  1310,  1310,  1311,  1312,  1313,  1314,  1315,
1032 >    1316,  1317,  1318,  1319,  1320,  1321,  1322,  1323,  1324,  1325,
1033 >    1326,  1328,  1334,  1340,  1346,  1352,  1358,  1364,  1370,  1376,
1034 >    1383,  1389,  1395,  1401,  1410,  1420,  1419,  1425,  1425,  1426,
1035 >    1430,  1441,  1440,  1447,  1446,  1451,  1451,  1452,  1456,  1460,
1036 >    1466,  1466,  1467,  1467,  1467,  1467,  1467,  1469,  1469,  1471,
1037 >    1471,  1473,  1486,  1503,  1509,  1520,  1519,  1566,  1566,  1567,
1038 >    1568,  1569,  1570,  1571,  1572,  1573,  1574,  1575,  1577,  1583,
1039 >    1589,  1595,  1607,  1606,  1612,  1612,  1613,  1617,  1621,  1625,
1040 >    1629,  1633,  1637,  1641,  1645,  1649,  1655,  1669,  1678,  1692,
1041 >    1691,  1706,  1706,  1707,  1707,  1707,  1707,  1709,  1715,  1721,
1042 >    1731,  1733,  1733,  1734,  1734,  1736,  1753,  1752,  1775,  1775,
1043 >    1776,  1776,  1776,  1776,  1778,  1784,  1804,  1803,  1809,  1809,
1044 >    1810,  1814,  1818,  1822,  1826,  1830,  1834,  1838,  1842,  1846,
1045 >    1857,  1856,  1875,  1875,  1876,  1876,  1876,  1878,  1885,  1884,
1046 >    1890,  1890,  1891,  1895,  1899,  1903,  1907,  1911,  1915,  1919,
1047 >    1923,  1927,  1938,  1937,  2015,  2015,  2016,  2017,  2018,  2019,
1048 >    2020,  2021,  2022,  2023,  2024,  2025,  2026,  2027,  2028,  2029,
1049 >    2030,  2031,  2033,  2039,  2045,  2051,  2057,  2070,  2083,  2089,
1050 >    2095,  2099,  2106,  2105,  2110,  2110,  2111,  2115,  2121,  2132,
1051 >    2138,  2144,  2150,  2166,  2165,  2189,  2189,  2190,  2190,  2190,
1052 >    2192,  2212,  2223,  2222,  2247,  2247,  2248,  2248,  2248,  2250,
1053 >    2256,  2266,  2268,  2268,  2269,  2269,  2271,  2289,  2288,  2309,
1054 >    2309,  2310,  2310,  2310,  2312,  2318,  2328,  2330,  2330,  2331,
1055 >    2332,  2333,  2334,  2335,  2336,  2337,  2338,  2339,  2340,  2341,
1056 >    2342,  2343,  2344,  2345,  2346,  2347,  2348,  2349,  2350,  2351,
1057 >    2352,  2353,  2354,  2355,  2356,  2357,  2358,  2359,  2360,  2361,
1058 >    2362,  2363,  2364,  2365,  2366,  2367,  2368,  2369,  2370,  2371,
1059 >    2372,  2373,  2374,  2375,  2376,  2379,  2384,  2389,  2394,  2399,
1060 >    2404,  2409,  2414,  2419,  2424,  2429,  2434,  2439,  2444,  2449,
1061 >    2454,  2459,  2464,  2469,  2474,  2479,  2484,  2489,  2494,  2499,
1062 >    2504,  2507,  2512,  2515,  2520,  2525,  2530,  2535,  2540,  2545,
1063 >    2550,  2555,  2560,  2565,  2570,  2575,  2581,  2580,  2585,  2585,
1064 >    2586,  2589,  2592,  2595,  2598,  2601,  2604,  2607,  2610,  2613,
1065 >    2616,  2619,  2622,  2625,  2628,  2631,  2634,  2637,  2640,  2643,
1066 >    2646,  2649,  2652,  2658,  2657,  2662,  2662,  2663,  2666,  2669,
1067 >    2672,  2675,  2678,  2681,  2684,  2687,  2690,  2693,  2696,  2699,
1068 >    2702,  2705,  2708,  2711,  2714,  2717,  2720,  2723,  2728,  2733,
1069 >    2738,  2743,  2752,  2754,  2754,  2755,  2756,  2757,  2758,  2759,
1070 >    2760,  2761,  2762,  2763,  2764,  2765,  2766,  2767,  2768,  2769,
1071 >    2771,  2776,  2781,  2786,  2791,  2796,  2801,  2806,  2811,  2816,
1072 >    2821,  2826,  2831,  2836,  2845,  2847,  2847,  2848,  2849,  2850,
1073 >    2851,  2852,  2853,  2854,  2855,  2856,  2857,  2859,  2865,  2881,
1074 >    2890,  2896,  2902,  2908,  2917,  2923
1075   };
1076   #endif
1077  
# Line 1351 | Line 1081 | static const yytype_uint16 yyrline[] =
1081   static const char *const yytname[] =
1082   {
1083    "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1084 <  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1085 <  "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1086 <  "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1087 <  "CONNECTFREQ", "DEFAULT_FLOODCOUNT", "DEFAULT_SPLIT_SERVER_COUNT",
1088 <  "DEFAULT_SPLIT_USER_COUNT", "DENY", "DESCRIPTION", "DIE", "DISABLE_AUTH",
1089 <  "DISABLE_FAKE_CHANNELS", "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT",
1090 <  "EGDPOOL_PATH", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1091 <  "FAILED_OPER_NOTICE", "IRCD_FLAGS", "FLATTEN_LINKS", "GECOS", "GENERAL",
1092 <  "GLINE", "GLINE_DURATION", "GLINE_ENABLE", "GLINE_EXEMPT",
1093 <  "GLINE_REQUEST_DURATION", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1094 <  "GLOBAL_KILL", "IRCD_AUTH", "NEED_IDENT", "HAVENT_READ_CONF", "HIDDEN",
1095 <  "HIDDEN_NAME", "HIDE_SERVER_IPS", "HIDE_SERVERS", "HIDE_SERVICES",
1096 <  "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK", "IGNORE_BOGUS_TS",
1097 <  "INVISIBLE_ON_CONNECT", "IP", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE",
1098 <  "KLINE_EXEMPT", "KNOCK_DELAY", "KNOCK_DELAY_CHANNEL", "LEAF_MASK",
1099 <  "LINKS_DELAY", "LISTEN", "T_LOG", "MAX_ACCEPT", "MAX_BANS",
1100 <  "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER", "MAX_GLOBAL", "MAX_IDENT",
1101 <  "MAX_LOCAL", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH", "MAX_NICK_TIME",
1102 <  "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH", "MAX_WATCH",
1103 <  "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE", "MIN_IDLE", "MAX_IDLE",
1104 <  "RANDOM_IDLE", "HIDE_IDLE_FROM_OPERS", "MODULE", "MODULES", "NAME",
1105 <  "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK", "NICK_CHANGES",
1106 <  "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1107 <  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPERATOR",
1108 <  "OPERS_BYPASS_CALLERID", "OPER_ONLY_UMODES", "OPER_PASS_RESV",
1109 <  "OPER_SPY_T", "OPER_UMODES", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME",
1110 <  "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1111 <  "PING_TIME", "PORT", "QSTRING", "QUIET_ON_BAN", "REASON", "REDIRPORT",
1112 <  "REDIRSERV", "REGEX_T", "REHASH", "REMOTE", "REMOTEBAN",
1113 <  "RESTRICT_CHANNELS", "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE",
1114 <  "SSL_CERTIFICATE_FILE", "SSL_DH_PARAM_FILE", "T_SSL_CLIENT_METHOD",
1115 <  "T_SSL_SERVER_METHOD", "T_SSLV3", "T_TLSV1", "RESV", "RESV_EXEMPT",
1116 <  "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS",
1117 <  "SENDQ", "SEND_PASSWORD", "SERVERHIDE", "SERVERINFO", "IRCD_SID",
1118 <  "TKLINE_EXPIRE_NOTICES", "T_SHARED", "T_CLUSTER", "TYPE", "SHORT_MOTD",
1119 <  "SPOOF", "SPOOF_NOTICE", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1120 <  "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY", "STATS_P_OPER_ONLY", "TBOOL",
1121 <  "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "T_ALL", "T_BOTS",
1122 <  "T_SOFTCALLERID", "T_CALLERID", "T_CCONN", "T_CCONN_FULL",
1123 <  "T_SSL_CIPHER_LIST", "T_DEAF", "T_DEBUG", "T_DLINE", "T_EXTERNAL",
1124 <  "T_FULL", "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_MAX_CLIENTS",
1125 <  "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_SERVER",
1126 <  "T_SERVNOTICE", "T_SET", "T_SKILL", "T_SPY", "T_SSL", "T_UMODES",
1127 <  "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED", "T_UNRESV", "T_UNXLINE",
1128 <  "T_GLOBOPS", "T_WALLOP", "T_WEBIRC", "T_RESTART", "T_SERVICE",
1129 <  "T_SERVICES_NAME", "THROTTLE_TIME", "TRUE_NO_OPER_FLOOD", "UNKLINE",
1130 <  "USER", "USE_EGD", "USE_LOGGING", "VHOST", "VHOST6", "XLINE",
1131 <  "WARN_NO_NLINE", "T_SIZE", "T_FILE", "';'", "'}'", "'{'", "'='", "','",
1132 <  "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1133 <  "sizespec", "modules_entry", "modules_items", "modules_item",
1134 <  "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1135 <  "serverinfo_item", "serverinfo_ssl_client_method",
1136 <  "serverinfo_ssl_server_method", "client_method_types",
1137 <  "client_method_type_item", "server_method_types",
1408 <  "server_method_type_item", "serverinfo_ssl_certificate_file",
1084 >  "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN",
1085 >  "AWAY_COUNT", "AWAY_TIME", "BYTES", "KBYTES", "MBYTES", "CALLER_ID_WAIT",
1086 >  "CAN_FLOOD", "CHANNEL", "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS",
1087 >  "CLOSE", "CONNECT", "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE",
1088 >  "DEFAULT_FLOODCOUNT", "DEFAULT_FLOODTIME", "DEFAULT_JOIN_FLOOD_COUNT",
1089 >  "DEFAULT_JOIN_FLOOD_TIME", "DEFAULT_MAX_CLIENTS", "DENY", "DESCRIPTION",
1090 >  "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1091 >  "DISABLE_REMOTE_COMMANDS", "DLINE_MIN_CIDR", "DLINE_MIN_CIDR6",
1092 >  "DOTS_IN_IDENT", "EMAIL", "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT",
1093 >  "EXPIRATION", "FAILED_OPER_NOTICE", "FLATTEN_LINKS",
1094 >  "FLATTEN_LINKS_DELAY", "FLATTEN_LINKS_FILE", "GECOS", "GENERAL",
1095 >  "HIDDEN", "HIDDEN_NAME", "HIDE_CHANS", "HIDE_IDLE",
1096 >  "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", "HIDE_SERVERS",
1097 >  "HIDE_SERVICES", "HOST", "HUB", "HUB_MASK", "INVISIBLE_ON_CONNECT",
1098 >  "INVITE_CLIENT_COUNT", "INVITE_CLIENT_TIME", "INVITE_DELAY_CHANNEL",
1099 >  "INVITE_EXPIRE_TIME", "IP", "IRCD_AUTH", "IRCD_FLAGS", "IRCD_SID",
1100 >  "JOIN", "KILL", "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT",
1101 >  "KLINE_MIN_CIDR", "KLINE_MIN_CIDR6", "KNOCK_CLIENT_COUNT",
1102 >  "KNOCK_CLIENT_TIME", "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LISTEN",
1103 >  "MASK", "MAX_ACCEPT", "MAX_BANS", "MAX_BANS_LARGE", "MAX_CHANNELS",
1104 >  "MAX_IDLE", "MAX_INVITES", "MAX_NICK_CHANGES", "MAX_NICK_LENGTH",
1105 >  "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS", "MAX_TOPIC_LENGTH",
1106 >  "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD", "MIN_NONWILDCARD_SIMPLE",
1107 >  "MODULE", "MODULES", "MOTD", "NAME", "NEED_IDENT", "NEED_PASSWORD",
1108 >  "NETWORK_DESC", "NETWORK_NAME", "NICK", "NO_OPER_FLOOD", "NO_TILDE",
1109 >  "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP_GLOBAL",
1110 >  "NUMBER_PER_IP_LOCAL", "OPER_ONLY_UMODES", "OPER_UMODES", "OPERATOR",
1111 >  "OPERS_BYPASS_CALLERID", "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD",
1112 >  "PATH", "PING_COOKIE", "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE",
1113 >  "REASON", "REDIRPORT", "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN",
1114 >  "RESV", "RESV_EXEMPT", "RSA_PRIVATE_KEY_FILE", "SECONDS", "MINUTES",
1115 >  "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1116 >  "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1117 >  "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1118 >  "SSL_CONNECTION_REQUIRED", "SSL_DH_ELLIPTIC_CURVE", "SSL_DH_PARAM_FILE",
1119 >  "SSL_MESSAGE_DIGEST_ALGORITHM", "STATS_E_DISABLED", "STATS_I_OPER_ONLY",
1120 >  "STATS_K_OPER_ONLY", "STATS_M_OPER_ONLY", "STATS_O_OPER_ONLY",
1121 >  "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BIND", "T_BOTS",
1122 >  "T_CALLERID", "T_CCONN", "T_COMMAND", "T_CLUSTER", "T_DEAF", "T_DEBUG",
1123 >  "T_DLINE", "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1124 >  "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_NCHANGE",
1125 >  "T_NONONREG", "T_OPME", "T_PREPEND", "T_PSEUDO", "T_RECVQ", "T_REJ",
1126 >  "T_RESTART", "T_SERVER", "T_SERVICE", "T_SERVNOTICE", "T_SET",
1127 >  "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1128 >  "T_SSL_CIPHER_LIST", "T_TARGET", "T_UMODES", "T_UNAUTH", "T_UNDLINE",
1129 >  "T_UNLIMITED", "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS",
1130 >  "T_WEBIRC", "TBOOL", "THROTTLE_COUNT", "THROTTLE_TIME", "TIMEOUT",
1131 >  "TMASKED", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE", "UNKLINE",
1132 >  "USE_LOGGING", "USER", "VHOST", "VHOST6", "WARN_NO_CONNECT_BLOCK",
1133 >  "WHOIS", "WHOWAS_HISTORY_LENGTH", "XLINE", "XLINE_EXEMPT", "';'", "'}'",
1134 >  "'{'", "'='", "','", "':'", "$accept", "conf", "conf_item", "timespec_",
1135 >  "timespec", "sizespec_", "sizespec", "modules_entry", "modules_items",
1136 >  "modules_item", "modules_module", "modules_path", "serverinfo_entry",
1137 >  "serverinfo_items", "serverinfo_item", "serverinfo_ssl_certificate_file",
1138    "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1139 <  "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1139 >  "serverinfo_ssl_cipher_list", "serverinfo_ssl_message_digest_algorithm",
1140 >  "serverinfo_ssl_dh_elliptic_curve", "serverinfo_name", "serverinfo_sid",
1141    "serverinfo_description", "serverinfo_network_name",
1142 <  "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1143 <  "serverinfo_max_clients", "serverinfo_max_nick_length",
1144 <  "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1145 <  "admin_items", "admin_item", "admin_name", "admin_email",
1146 <  "admin_description", "logging_entry", "logging_items", "logging_item",
1147 <  "logging_use_logging", "logging_file_entry", "$@1", "logging_file_items",
1148 <  "logging_file_item", "logging_file_name", "logging_file_size",
1149 <  "logging_file_type", "$@2", "logging_file_type_items",
1150 <  "logging_file_type_item", "oper_entry", "$@3", "oper_items", "oper_item",
1151 <  "oper_name", "oper_user", "oper_password", "oper_encrypted",
1152 <  "oper_rsa_public_key_file", "oper_class", "oper_umodes", "$@4",
1153 <  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@5",
1154 <  "oper_flags_items", "oper_flags_item", "class_entry", "$@6",
1142 >  "serverinfo_network_desc", "serverinfo_default_max_clients",
1143 >  "serverinfo_max_nick_length", "serverinfo_max_topic_length",
1144 >  "serverinfo_hub", "admin_entry", "admin_items", "admin_item",
1145 >  "admin_name", "admin_email", "admin_description", "motd_entry", "$@1",
1146 >  "motd_items", "motd_item", "motd_mask", "motd_file", "pseudo_entry",
1147 >  "$@2", "pseudo_items", "pseudo_item", "pseudo_command", "pseudo_name",
1148 >  "pseudo_prepend", "pseudo_target", "logging_entry", "logging_items",
1149 >  "logging_item", "logging_use_logging", "logging_file_entry", "$@3",
1150 >  "logging_file_items", "logging_file_item", "logging_file_name",
1151 >  "logging_file_size", "logging_file_type", "$@4",
1152 >  "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@5",
1153 >  "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1154 >  "oper_whois", "oper_encrypted", "oper_ssl_certificate_fingerprint",
1155 >  "oper_ssl_connection_required", "oper_class", "oper_umodes", "$@6",
1156 >  "oper_umodes_items", "oper_umodes_item", "oper_flags", "$@7",
1157 >  "oper_flags_items", "oper_flags_item", "class_entry", "$@8",
1158    "class_items", "class_item", "class_name", "class_ping_time",
1159 <  "class_number_per_ip", "class_connectfreq", "class_max_number",
1160 <  "class_max_global", "class_max_local", "class_max_ident", "class_sendq",
1161 <  "class_recvq", "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1162 <  "class_number_per_cidr", "class_min_idle", "class_max_idle",
1163 <  "class_flags", "$@7", "class_flags_items", "class_flags_item",
1164 <  "listen_entry", "$@8", "listen_flags", "$@9", "listen_flags_items",
1165 <  "listen_flags_item", "listen_items", "listen_item", "listen_port",
1166 <  "$@10", "port_items", "port_item", "listen_address", "listen_host",
1167 <  "auth_entry", "$@11", "auth_items", "auth_item", "auth_user",
1168 <  "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@12",
1169 <  "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1170 <  "auth_redir_port", "resv_entry", "$@13", "resv_items", "resv_item",
1171 <  "resv_reason", "resv_channel", "resv_nick", "service_entry",
1172 <  "service_items", "service_item", "service_name", "shared_entry", "$@14",
1159 >  "class_number_per_ip_local", "class_number_per_ip_global",
1160 >  "class_connectfreq", "class_max_channels", "class_max_number",
1161 >  "class_sendq", "class_recvq", "class_cidr_bitlen_ipv4",
1162 >  "class_cidr_bitlen_ipv6", "class_number_per_cidr", "class_min_idle",
1163 >  "class_max_idle", "class_flags", "$@9", "class_flags_items",
1164 >  "class_flags_item", "listen_entry", "$@10", "listen_flags", "$@11",
1165 >  "listen_flags_items", "listen_flags_item", "listen_items", "listen_item",
1166 >  "listen_port", "$@12", "port_items", "port_item", "listen_address",
1167 >  "listen_host", "auth_entry", "$@13", "auth_items", "auth_item",
1168 >  "auth_user", "auth_passwd", "auth_class", "auth_encrypted", "auth_flags",
1169 >  "$@14", "auth_flags_items", "auth_flags_item", "auth_spoof",
1170 >  "auth_redir_serv", "auth_redir_port", "resv_entry", "$@15", "resv_items",
1171 >  "resv_item", "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1172 >  "service_items", "service_item", "service_name", "shared_entry", "$@16",
1173    "shared_items", "shared_item", "shared_name", "shared_user",
1174 <  "shared_type", "$@15", "shared_types", "shared_type_item",
1175 <  "cluster_entry", "$@16", "cluster_items", "cluster_item", "cluster_name",
1176 <  "cluster_type", "$@17", "cluster_types", "cluster_type_item",
1177 <  "connect_entry", "$@18", "connect_items", "connect_item", "connect_name",
1178 <  "connect_host", "connect_vhost", "connect_send_password",
1179 <  "connect_accept_password", "connect_port", "connect_aftype",
1180 <  "connect_flags", "$@19", "connect_flags_items", "connect_flags_item",
1174 >  "shared_type", "$@17", "shared_types", "shared_type_item",
1175 >  "cluster_entry", "$@18", "cluster_items", "cluster_item", "cluster_name",
1176 >  "cluster_type", "$@19", "cluster_types", "cluster_type_item",
1177 >  "connect_entry", "$@20", "connect_items", "connect_item", "connect_name",
1178 >  "connect_host", "connect_timeout", "connect_bind",
1179 >  "connect_send_password", "connect_accept_password",
1180 >  "connect_ssl_certificate_fingerprint", "connect_port", "connect_aftype",
1181 >  "connect_flags", "$@21", "connect_flags_items", "connect_flags_item",
1182    "connect_encrypted", "connect_hub_mask", "connect_leaf_mask",
1183 <  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@20",
1184 <  "kill_type", "$@21", "kill_type_items", "kill_type_item", "kill_items",
1185 <  "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1186 <  "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1187 <  "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1188 <  "gecos_flags", "$@24", "gecos_flags_items", "gecos_flags_item",
1189 <  "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1190 <  "general_entry", "general_items", "general_item", "general_max_watch",
1191 <  "general_gline_enable", "general_gline_duration",
1192 <  "general_gline_request_duration", "general_gline_min_cidr",
1193 <  "general_gline_min_cidr6", "general_tkline_expire_notices",
1194 <  "general_kill_chase_time_limit", "general_hide_spoof_ips",
1195 <  "general_ignore_bogus_ts", "general_disable_remote_commands",
1196 <  "general_failed_oper_notice", "general_anti_nick_flood",
1197 <  "general_max_nick_time", "general_max_nick_changes",
1198 <  "general_max_accept", "general_anti_spam_exit_message_time",
1199 <  "general_ts_warn_delta", "general_ts_max_delta",
1200 <  "general_havent_read_conf", "general_invisible_on_connect",
1467 <  "general_warn_no_nline", "general_stats_e_disabled",
1468 <  "general_stats_o_oper_only", "general_stats_P_oper_only",
1183 >  "connect_class", "connect_ssl_cipher_list", "kill_entry", "$@22",
1184 >  "kill_items", "kill_item", "kill_user", "kill_reason", "deny_entry",
1185 >  "$@23", "deny_items", "deny_item", "deny_ip", "deny_reason",
1186 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_ip",
1187 >  "gecos_entry", "$@24", "gecos_items", "gecos_item", "gecos_name",
1188 >  "gecos_reason", "general_entry", "general_items", "general_item",
1189 >  "general_away_count", "general_away_time", "general_max_watch",
1190 >  "general_whowas_history_length", "general_cycle_on_host_change",
1191 >  "general_dline_min_cidr", "general_dline_min_cidr6",
1192 >  "general_kline_min_cidr", "general_kline_min_cidr6",
1193 >  "general_kill_chase_time_limit", "general_failed_oper_notice",
1194 >  "general_anti_nick_flood", "general_max_nick_time",
1195 >  "general_max_nick_changes", "general_max_accept",
1196 >  "general_anti_spam_exit_message_time", "general_ts_warn_delta",
1197 >  "general_ts_max_delta", "general_invisible_on_connect",
1198 >  "general_warn_no_connect_block", "general_stats_e_disabled",
1199 >  "general_stats_m_oper_only", "general_stats_o_oper_only",
1200 >  "general_stats_P_oper_only", "general_stats_u_oper_only",
1201    "general_stats_k_oper_only", "general_stats_i_oper_only",
1202    "general_pace_wait", "general_caller_id_wait",
1203    "general_opers_bypass_callerid", "general_pace_wait_simple",
1204 <  "general_short_motd", "general_no_oper_flood",
1205 <  "general_true_no_oper_flood", "general_oper_pass_resv",
1206 <  "general_dots_in_ident", "general_max_targets", "general_use_egd",
1475 <  "general_egdpool_path", "general_services_name", "general_ping_cookie",
1476 <  "general_disable_auth", "general_throttle_time", "general_oper_umodes",
1204 >  "general_short_motd", "general_no_oper_flood", "general_dots_in_ident",
1205 >  "general_max_targets", "general_ping_cookie", "general_disable_auth",
1206 >  "general_throttle_count", "general_throttle_time", "general_oper_umodes",
1207    "$@25", "umode_oitems", "umode_oitem", "general_oper_only_umodes",
1208    "$@26", "umode_items", "umode_item", "general_min_nonwildcard",
1209    "general_min_nonwildcard_simple", "general_default_floodcount",
1210 <  "channel_entry", "channel_items", "channel_item",
1211 <  "channel_disable_fake_channels", "channel_restrict_channels",
1212 <  "channel_knock_delay", "channel_knock_delay_channel",
1213 <  "channel_max_chans_per_user", "channel_max_chans_per_oper",
1214 <  "channel_quiet_on_ban", "channel_max_bans",
1215 <  "channel_default_split_user_count", "channel_default_split_server_count",
1216 <  "channel_no_create_on_split", "channel_no_join_on_split",
1217 <  "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1218 <  "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1210 >  "general_default_floodtime", "channel_entry", "channel_items",
1211 >  "channel_item", "channel_disable_fake_channels",
1212 >  "channel_invite_client_count", "channel_invite_client_time",
1213 >  "channel_invite_delay_channel", "channel_invite_expire_time",
1214 >  "channel_knock_client_count", "channel_knock_client_time",
1215 >  "channel_knock_delay_channel", "channel_max_channels",
1216 >  "channel_max_invites", "channel_max_bans", "channel_max_bans_large",
1217 >  "channel_default_join_flood_count", "channel_default_join_flood_time",
1218 >  "serverhide_entry", "serverhide_items", "serverhide_item",
1219 >  "serverhide_flatten_links", "serverhide_flatten_links_delay",
1220 >  "serverhide_flatten_links_file", "serverhide_disable_remote_commands",
1221    "serverhide_hide_servers", "serverhide_hide_services",
1222 <  "serverhide_hidden_name", "serverhide_links_delay", "serverhide_hidden",
1223 <  "serverhide_hide_server_ips", YY_NULL
1222 >  "serverhide_hidden_name", "serverhide_hidden",
1223 >  "serverhide_hide_server_ips", YY_NULLPTR
1224   };
1225   #endif
1226  
1227   # ifdef YYPRINT
1228 < /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1229 <   token YYLEX-NUM.  */
1228 > /* YYTOKNUM[NUM] -- (External) token number corresponding to the
1229 >   (internal) symbol number NUM (which must be that of a token).  */
1230   static const yytype_uint16 yytoknum[] =
1231   {
1232         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
# Line 1519 | Line 1251 | static const yytype_uint16 yytoknum[] =
1251       445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
1252       455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
1253       465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
1254 <     475,   476,   477,   478,    59,   125,   123,    61,    44
1254 >     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
1255 >     485,    59,   125,   123,    61,    44,    58
1256   };
1257   # endif
1258  
1259 < /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1527 < static const yytype_uint16 yyr1[] =
1528 < {
1529 <       0,   229,   230,   230,   231,   231,   231,   231,   231,   231,
1530 <     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1531 <     231,   231,   231,   231,   231,   231,   232,   232,   233,   233,
1532 <     233,   233,   233,   233,   233,   233,   234,   234,   235,   235,
1533 <     235,   235,   236,   237,   237,   238,   238,   238,   239,   240,
1534 <     241,   242,   242,   243,   243,   243,   243,   243,   243,   243,
1535 <     243,   243,   243,   243,   243,   243,   243,   243,   243,   243,
1536 <     243,   244,   245,   246,   246,   247,   247,   248,   248,   249,
1537 <     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1538 <     259,   260,   261,   262,   263,   264,   265,   266,   266,   267,
1539 <     267,   267,   267,   268,   269,   270,   271,   272,   272,   273,
1540 <     273,   273,   274,   276,   275,   277,   277,   278,   278,   278,
1541 <     278,   279,   280,   280,   282,   281,   283,   283,   284,   284,
1542 <     284,   284,   284,   284,   284,   286,   285,   287,   287,   288,
1543 <     288,   288,   288,   288,   288,   288,   288,   288,   289,   290,
1544 <     291,   292,   293,   294,   296,   295,   297,   297,   298,   298,
1545 <     298,   298,   298,   298,   298,   298,   298,   298,   298,   298,
1546 <     298,   298,   298,   298,   298,   298,   298,   298,   298,   300,
1547 <     299,   301,   301,   302,   302,   302,   302,   302,   302,   302,
1548 <     302,   302,   302,   302,   302,   302,   302,   302,   302,   302,
1549 <     302,   302,   304,   303,   305,   305,   306,   306,   306,   306,
1550 <     306,   306,   306,   306,   306,   306,   306,   306,   306,   306,
1551 <     306,   306,   306,   307,   308,   309,   310,   311,   312,   313,
1552 <     314,   315,   316,   317,   318,   319,   320,   321,   323,   322,
1553 <     324,   324,   325,   325,   327,   326,   329,   328,   330,   330,
1554 <     331,   331,   331,   332,   332,   333,   333,   333,   333,   333,
1555 <     335,   334,   336,   336,   337,   337,   338,   339,   341,   340,
1556 <     342,   342,   343,   343,   343,   343,   343,   343,   343,   343,
1557 <     343,   344,   345,   346,   347,   349,   348,   350,   350,   351,
1558 <     351,   351,   351,   351,   351,   351,   351,   351,   351,   352,
1559 <     353,   354,   356,   355,   357,   357,   358,   358,   358,   358,
1560 <     359,   360,   361,   362,   363,   363,   364,   364,   365,   367,
1561 <     366,   368,   368,   369,   369,   369,   369,   370,   371,   373,
1562 <     372,   374,   374,   375,   375,   375,   375,   375,   375,   375,
1563 <     375,   375,   375,   377,   376,   378,   378,   379,   379,   379,
1564 <     380,   382,   381,   383,   383,   384,   384,   384,   384,   384,
1565 <     384,   384,   384,   384,   384,   386,   385,   387,   387,   388,
1566 <     388,   388,   388,   388,   388,   388,   388,   388,   388,   388,
1567 <     388,   388,   388,   389,   390,   391,   392,   393,   394,   395,
1568 <     395,   397,   396,   398,   398,   399,   399,   400,   401,   402,
1569 <     403,   404,   406,   405,   408,   407,   409,   409,   410,   411,
1570 <     411,   412,   412,   412,   412,   413,   414,   416,   415,   417,
1571 <     417,   418,   418,   418,   419,   420,   421,   422,   422,   423,
1572 <     423,   424,   426,   425,   428,   427,   429,   429,   430,   431,
1573 <     431,   432,   432,   432,   432,   433,   434,   435,   436,   436,
1574 <     437,   437,   437,   437,   437,   437,   437,   437,   437,   437,
1575 <     437,   437,   437,   437,   437,   437,   437,   437,   437,   437,
1576 <     437,   437,   437,   437,   437,   437,   437,   437,   437,   437,
1577 <     437,   437,   437,   437,   437,   437,   437,   437,   437,   437,
1578 <     437,   437,   437,   437,   437,   437,   437,   437,   437,   438,
1579 <     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
1580 <     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
1581 <     459,   460,   461,   462,   463,   463,   464,   464,   465,   466,
1582 <     467,   468,   469,   470,   471,   472,   473,   474,   475,   476,
1583 <     477,   478,   479,   480,   482,   481,   483,   483,   484,   484,
1584 <     484,   484,   484,   484,   484,   484,   484,   484,   484,   484,
1585 <     484,   484,   484,   484,   484,   484,   484,   484,   486,   485,
1586 <     487,   487,   488,   488,   488,   488,   488,   488,   488,   488,
1587 <     488,   488,   488,   488,   488,   488,   488,   488,   488,   488,
1588 <     488,   488,   488,   489,   490,   491,   492,   493,   493,   494,
1589 <     494,   494,   494,   494,   494,   494,   494,   494,   494,   494,
1590 <     494,   494,   494,   494,   495,   496,   497,   498,   499,   500,
1591 <     501,   502,   503,   504,   505,   506,   507,   508,   509,   510,
1592 <     510,   511,   511,   511,   511,   511,   511,   511,   511,   512,
1593 <     513,   514,   515,   516,   517,   518
1594 < };
1259 > #define YYPACT_NINF -868
1260  
1261 < /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
1262 < static const yytype_uint8 yyr2[] =
1261 > #define yypact_value_is_default(Yystate) \
1262 >  (!!((Yystate) == (-868)))
1263 >
1264 > #define YYTABLE_NINF -126
1265 >
1266 > #define yytable_value_is_error(Yytable_value) \
1267 >  0
1268 >
1269 >  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1270 >     STATE-NUM.  */
1271 > static const yytype_int16 yypact[] =
1272   {
1273 <       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
1274 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1275 <       1,     1,     1,     1,     2,     2,     0,     1,     2,     3,
1276 <       3,     3,     3,     3,     3,     3,     0,     1,     2,     3,
1277 <       3,     3,     5,     2,     1,     1,     1,     2,     4,     4,
1278 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1279 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1280 <       2,     4,     4,     3,     1,     1,     1,     3,     1,     1,
1281 <       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1282 <       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
1283 <       1,     1,     2,     4,     4,     4,     5,     2,     1,     1,
1284 <       1,     2,     4,     0,     6,     2,     1,     1,     1,     1,
1285 <       2,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1286 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1287 <       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
1288 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1289 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1290 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1291 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1292 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1293 <       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
1294 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1295 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1296 <       4,     4,     4,     4,     4,     4,     4,     4,     0,     5,
1297 <       3,     1,     1,     1,     0,     6,     0,     5,     3,     1,
1298 <       1,     1,     1,     2,     1,     1,     1,     1,     1,     2,
1299 <       0,     5,     3,     1,     1,     3,     4,     4,     0,     6,
1300 <       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1301 <       2,     4,     4,     4,     4,     0,     5,     3,     1,     1,
1302 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1303 <       4,     4,     0,     6,     2,     1,     1,     1,     1,     2,
1304 <       4,     4,     4,     5,     2,     1,     1,     1,     4,     0,
1305 <       6,     2,     1,     1,     1,     1,     2,     4,     4,     0,
1306 <       5,     3,     1,     1,     1,     1,     1,     1,     1,     1,
1307 <       1,     1,     1,     0,     6,     2,     1,     1,     1,     2,
1308 <       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
1309 <       1,     1,     1,     1,     1,     0,     6,     2,     1,     1,
1310 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1311 <       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
1312 <       4,     0,     5,     3,     1,     1,     1,     4,     4,     4,
1313 <       4,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1314 <       1,     1,     1,     1,     1,     4,     4,     0,     6,     2,
1315 <       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
1316 <       1,     4,     0,     6,     0,     5,     3,     1,     1,     2,
1317 <       1,     1,     1,     1,     1,     4,     4,     5,     2,     1,
1318 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1319 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1320 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1321 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1322 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1323 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1324 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1325 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1326 <       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
1327 <       4,     4,     4,     4,     0,     5,     3,     1,     1,     1,
1328 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1329 <       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
1330 <       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1331 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1332 <       1,     1,     1,     4,     4,     4,     5,     2,     1,     1,
1333 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1334 <       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
1335 <       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
1336 <       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
1337 <       4,     4,     4,     4,     4,     4
1273 >    -868,   655,  -868,  -141,  -211,  -206,  -868,  -868,  -868,  -197,
1274 >    -868,  -194,  -868,  -868,  -868,  -192,  -868,  -868,  -868,  -189,
1275 >    -163,  -868,  -137,  -868,  -115,  -868,  -868,  -868,  -868,  -868,
1276 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1277 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1278 >    -868,   364,   879,  -112,   -72,   -71,    15,   -69,   353,   -50,
1279 >     -49,   -15,    37,   -12,   -11,   -10,   575,   544,    -7,    54,
1280 >      -5,    10,    49,  -169,  -161,    38,    60,     7,  -868,  -868,
1281 >    -868,  -868,  -868,    62,    64,    69,    73,    75,    77,    79,
1282 >      80,    83,    99,   100,   101,   102,   106,   266,  -868,  -868,
1283 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1284 >    -868,  -868,  -868,   651,   549,    19,  -868,   107,    34,  -868,
1285 >    -868,    93,  -868,   118,   121,   122,   123,   124,   127,   130,
1286 >     137,   141,   146,   153,   159,   163,   165,   167,   170,   172,
1287 >     173,   174,   175,   176,   180,   181,   183,   184,  -868,  -868,
1288 >     186,   187,   188,   189,   191,   196,   197,   199,   200,   202,
1289 >     204,   210,   214,   221,   222,   223,   224,   225,    42,  -868,
1290 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1291 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1292 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1293 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1294 >    -868,  -868,  -868,  -868,  -868,   373,   149,   338,    52,   228,
1295 >     229,     2,  -868,  -868,  -868,   151,   372,    28,  -868,   238,
1296 >     241,   242,   243,   253,   254,   255,   256,   260,   136,  -868,
1297 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,   139,
1298 >     261,   262,   263,   270,   272,   273,   274,   282,   283,   284,
1299 >     285,   287,   288,   291,   293,   147,  -868,  -868,  -868,  -868,
1300 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1301 >    -868,  -868,    24,   150,   294,    31,  -868,  -868,  -868,   354,
1302 >     230,  -868,   296,    46,  -868,  -868,    67,  -868,   408,   409,
1303 >     410,   304,  -868,   427,   429,   328,   432,   429,   429,   429,
1304 >     435,   429,   429,   437,   438,   439,   440,   311,  -868,   320,
1305 >     319,   323,   324,  -868,   325,   326,   329,   335,   339,   344,
1306 >     346,   349,   350,   351,   355,   194,  -868,  -868,  -868,  -868,
1307 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1308 >    -868,  -868,   356,   357,   359,   360,   363,   366,   369,  -868,
1309 >     370,   377,   379,   381,   383,   388,   392,   398,   168,  -868,
1310 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1311 >    -868,  -868,  -868,  -868,  -868,  -868,   400,   401,    18,  -868,
1312 >    -868,  -868,   466,   367,  -868,  -868,   402,   405,    25,  -868,
1313 >    -868,  -868,   365,   429,   498,   429,   429,   430,   535,   429,
1314 >     434,   538,   542,   551,   441,   446,   429,   552,   554,   556,
1315 >     557,   429,   558,   561,   566,   568,   468,   447,   448,   473,
1316 >     429,   429,   475,   478,   480,  -195,  -188,   481,   483,   489,
1317 >     499,   603,   429,   429,   429,   502,   606,   485,  -868,   488,
1318 >     490,   492,  -868,   494,   497,   500,   504,   505,   219,  -868,
1319 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,   506,
1320 >     507,    41,  -868,  -868,  -868,   491,   509,   510,  -868,   513,
1321 >    -868,    30,  -868,  -868,  -868,  -868,  -868,   599,   608,   518,
1322 >    -868,   520,   519,   522,    39,  -868,  -868,  -868,   527,   525,
1323 >     531,  -868,   534,   537,   540,   541,  -868,   543,   545,    14,
1324 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1325 >    -868,   547,   546,   548,   550,    17,  -868,  -868,  -868,  -868,
1326 >     521,   560,   429,   645,   564,   657,   571,   573,   574,   565,
1327 >    -868,  -868,   679,   665,   579,   673,   689,   692,   681,   685,
1328 >     688,   693,   695,   698,   699,   701,   703,   597,  -868,   598,
1329 >     582,  -868,    45,  -868,  -868,  -868,  -868,   619,   601,  -868,
1330 >     600,   607,   623,   624,   626,   629,    11,  -868,  -868,  -868,
1331 >    -868,  -868,   716,   622,  -868,   633,   631,  -868,   632,    22,
1332 >    -868,  -868,  -868,  -868,   638,   639,   641,  -868,   642,   343,
1333 >     643,   647,   648,   650,   659,   662,   666,   667,   669,   672,
1334 >     677,   682,   683,  -868,  -868,   759,   800,   429,   676,   809,
1335 >     429,   810,   429,   796,   812,   814,   815,   429,   816,   816,
1336 >     702,  -868,  -868,   802,   -74,   805,   720,   811,   813,   700,
1337 >     821,   822,   827,   823,   824,   825,   826,   429,   707,  -868,
1338 >     829,   830,   708,  -868,   727,  -868,   835,   836,   730,  -868,
1339 >     734,   736,   737,   738,   739,   740,   741,   742,   743,   744,
1340 >     745,   746,   747,   748,   749,   750,   751,   752,   753,   754,
1341 >     755,   756,   757,   758,   760,   718,   637,   761,   762,   763,
1342 >     764,   765,   766,   767,   768,   769,   770,   771,   772,   773,
1343 >     774,   775,   776,   777,   778,   779,   780,  -868,  -868,   866,
1344 >     801,   717,   888,   905,   891,   892,   893,   787,  -868,   895,
1345 >     896,   790,  -868,  -868,   898,   899,   791,   915,   795,  -868,
1346 >     797,   798,  -868,  -868,   903,   906,   803,  -868,  -868,   907,
1347 >     820,   799,   911,   912,   913,   828,   804,   917,   918,   808,
1348 >    -868,  -868,   919,   920,   921,   817,  -868,   818,   819,   831,
1349 >     832,   833,   834,   837,   838,   839,  -868,   840,   841,   842,
1350 >     843,   844,   845,   846,   847,   848,   849,   850,   851,   852,
1351 >     853,   854,  -868,  -868,   922,   855,   856,  -868,   857,  -868,
1352 >      88,  -868,   923,   927,   928,   929,   859,  -868,   860,  -868,
1353 >    -868,   930,   858,   931,   862,  -868,  -868,  -868,  -868,  -868,
1354 >     429,   429,   429,   429,   429,   429,   429,  -868,  -868,  -868,
1355 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1356 >    -868,  -868,   863,   864,   865,   -39,   867,   868,   869,   870,
1357 >     871,   872,   873,   874,   875,   310,   876,   877,  -868,   878,
1358 >     880,   881,   882,   883,   884,   885,    -4,   886,   887,   889,
1359 >     890,   894,   897,   900,   901,  -868,   902,   904,  -868,  -868,
1360 >     908,   909,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1361 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1362 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1363 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1364 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -201,
1365 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1366 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1367 >    -868,  -868,  -868,  -868,  -181,  -868,  -868,  -868,  -868,  -868,
1368 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1369 >    -868,  -868,  -868,  -868,  -868,  -868,   910,   914,   453,   916,
1370 >     924,   925,   926,   932,  -868,   933,   934,  -868,   935,   936,
1371 >      33,   939,   937,  -868,  -868,  -868,  -868,   938,   940,  -868,
1372 >     942,   943,   433,   944,   945,   946,   947,   678,   948,   949,
1373 >    -868,   950,   951,   952,  -868,  -868,  -868,  -868,  -868,  -868,
1374 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1375 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,   953,
1376 >     585,  -868,  -868,   954,   955,   956,  -868,    92,  -868,  -868,
1377 >    -868,  -868,   957,   960,   961,   962,  -868,  -868,   963,   723,
1378 >     964,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1379 >    -868,  -868,  -868,  -868,  -174,  -868,  -868,  -868,  -868,  -868,
1380 >    -868,  -868,  -868,  -868,  -868,   816,   816,   816,  -868,  -868,
1381 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1382 >    -868,  -172,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1383 >    -868,  -868,  -868,  -868,  -868,  -868,   718,  -868,   637,  -868,
1384 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1385 >    -868,  -171,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1386 >    -868,  -868,  -868,  -868,  -868,  -160,  -868,   958,   915,   965,
1387 >    -868,  -868,  -868,  -868,  -868,  -868,   861,  -868,   966,   967,
1388 >    -868,  -868,   968,   969,  -868,  -868,   970,  -868,  -868,  -868,
1389 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -159,
1390 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1391 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1392 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -143,  -868,
1393 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1394 >    -868,  -868,  -868,  -868,  -868,  -868,  -104,  -868,  -868,   986,
1395 >     -96,   973,   977,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1396 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,   -59,
1397 >    -868,  -868,  -868,   -39,  -868,  -868,  -868,  -868,    -4,  -868,
1398 >    -868,  -868,   453,  -868,    33,  -868,  -868,  -868,   989,   990,
1399 >     993,   992,   996,   997,  -868,   433,  -868,   678,  -868,   585,
1400 >     978,   979,   980,   314,  -868,  -868,   723,  -868,  -868,  -868,
1401 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1402 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1403 >    -868,   -57,  -868,  -868,  -868,   314,  -868
1404   };
1405  
1406 < /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1407 <   Performed when YYTABLE doesn't specify something else to do.  Zero
1408 <   means the default is an error.  */
1406 >  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1407 >     Performed when YYTABLE does not specify something else to do.  Zero
1408 >     means the default is an error.  */
1409   static const yytype_uint16 yydefact[] =
1410   {
1411 <       2,     0,     1,     0,     0,     0,   202,   365,   417,     0,
1412 <     432,     0,   268,   402,   244,     0,     0,   135,   302,     0,
1413 <       0,   319,   343,     0,     3,    23,    11,     4,     5,     6,
1414 <       8,     9,    10,    13,    14,    15,    16,    17,    18,    19,
1415 <      20,    22,    21,     7,    12,    24,    25,     0,     0,     0,
1411 >       2,     0,     1,     0,     0,     0,   231,   392,   442,     0,
1412 >     457,     0,   295,   433,   271,     0,    96,   148,   329,     0,
1413 >       0,   370,     0,   105,     0,   346,     3,    23,    11,     4,
1414 >      24,    25,     5,     6,     8,     9,    10,    13,    14,    15,
1415 >      16,    17,    18,    19,    20,    22,    21,     7,    12,    26,
1416 >      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1417         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1418 +       0,     0,     0,     0,     0,     0,     0,     0,    88,    89,
1419 +      91,    90,   629,     0,     0,     0,     0,     0,     0,     0,
1420 +       0,     0,     0,     0,     0,     0,     0,     0,   614,   628,
1421 +     617,   618,   619,   620,   621,   622,   623,   624,   625,   615,
1422 +     616,   626,   627,     0,     0,     0,   455,     0,     0,   453,
1423 +     454,     0,   514,     0,     0,     0,     0,     0,     0,     0,
1424         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1425 <       0,     0,    98,    99,   101,   100,   613,     0,     0,     0,
1425 >       0,     0,     0,     0,     0,     0,     0,     0,   583,   556,
1426         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1427 <       0,     0,   598,   612,   608,   600,   601,   602,   603,   604,
1428 <     599,   605,   606,   607,   609,   610,   611,     0,     0,     0,
1429 <     430,     0,     0,   428,   429,     0,   498,     0,     0,     0,
1427 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   468,
1428 >     469,   470,   512,   476,   513,   507,   508,   509,   510,   480,
1429 >     471,   472,   473,   474,   475,   477,   478,   479,   481,   482,
1430 >     511,   486,   487,   488,   489,   485,   484,   490,   497,   498,
1431 >     491,   492,   493,   483,   495,   505,   506,   503,   504,   496,
1432 >     494,   501,   502,   499,   500,     0,     0,     0,     0,     0,
1433 >       0,     0,    46,    47,    48,     0,     0,     0,   656,     0,
1434 >       0,     0,     0,     0,     0,     0,     0,     0,     0,   646,
1435 >     647,   648,   649,   650,   651,   652,   654,   653,   655,     0,
1436         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1437 +       0,     0,     0,     0,     0,     0,    54,    67,    65,    63,
1438 +      68,    69,    64,    55,    66,    57,    58,    59,    60,    61,
1439 +      62,    56,     0,     0,     0,     0,   120,   121,   122,     0,
1440 +       0,   344,     0,     0,   342,   343,     0,    92,     0,     0,
1441 +       0,     0,    87,     0,     0,     0,     0,     0,     0,     0,
1442 +       0,     0,     0,     0,     0,     0,     0,     0,   613,     0,
1443 +       0,     0,     0,   265,     0,     0,     0,     0,     0,     0,
1444 +       0,     0,     0,     0,     0,     0,   234,   235,   238,   240,
1445 +     241,   242,   243,   244,   245,   246,   236,   237,   239,   247,
1446 +     248,   249,     0,     0,     0,     0,     0,     0,     0,   422,
1447 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   395,
1448 +     396,   397,   398,   399,   400,   401,   402,   404,   403,   406,
1449 +     410,   407,   408,   409,   405,   448,     0,     0,     0,   445,
1450 +     446,   447,     0,     0,   452,   463,     0,     0,     0,   460,
1451 +     461,   462,     0,     0,     0,     0,     0,     0,     0,     0,
1452         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1685       0,     0,     0,     0,     0,   568,     0,   544,     0,     0,
1453         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1687       0,     0,     0,     0,     0,     0,   449,   496,   490,   491,
1688     492,   493,   494,   489,   460,   450,   451,   484,   452,   453,
1689     454,   455,   456,   457,   458,   459,   486,   461,   462,   495,
1690     464,   469,   465,   467,   466,   479,   480,   468,   470,   471,
1691     472,   473,   463,   475,   476,   477,   497,   487,   488,   485,
1692     478,   474,   482,   483,   481,     0,     0,     0,     0,     0,
1693       0,   108,   109,   110,     0,     0,     0,     0,     0,    44,
1694      45,    46,     0,     0,   638,     0,     0,     0,     0,     0,
1695       0,     0,     0,   630,   631,   632,   633,   636,   634,   635,
1696     637,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1454         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1455 <      52,    67,    68,    66,    63,    62,    69,    53,    65,    56,
1456 <      57,    58,    54,    64,    59,    60,    61,    55,     0,     0,
1457 <     317,     0,     0,   315,   316,   102,     0,     0,     0,     0,
1458 <      97,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1459 <       0,     0,     0,     0,     0,     0,   597,     0,     0,     0,
1460 <       0,   238,     0,     0,     0,     0,     0,     0,     0,     0,
1461 <       0,     0,     0,     0,     0,   205,   206,   209,   211,   212,
1462 <     213,   214,   215,   216,   217,   218,   207,   208,   210,   219,
1463 <     220,   221,     0,     0,     0,     0,     0,   391,     0,     0,
1707 <       0,     0,     0,     0,     0,     0,     0,   368,   369,   370,
1708 <     371,   372,   373,   375,   374,   377,   381,   378,   379,   380,
1709 <     376,   423,     0,     0,     0,   420,   421,   422,     0,     0,
1710 <     427,   444,     0,     0,   434,   443,     0,   440,   441,   442,
1455 >       0,     0,     0,     0,     0,     0,     0,     0,   467,     0,
1456 >       0,     0,   312,     0,     0,     0,     0,     0,     0,   298,
1457 >     299,   300,   301,   306,   302,   303,   304,   305,   439,     0,
1458 >       0,     0,   436,   437,   438,     0,     0,     0,   273,     0,
1459 >     283,     0,   281,   282,   284,   285,    49,     0,     0,     0,
1460 >      45,     0,     0,     0,     0,    99,   100,   101,     0,     0,
1461 >       0,   198,     0,     0,     0,     0,   171,     0,     0,     0,
1462 >     151,   152,   153,   154,   155,   158,   159,   160,   157,   156,
1463 >     161,     0,     0,     0,     0,     0,   332,   333,   334,   335,
1464         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1465 +     645,    70,     0,     0,     0,     0,     0,     0,     0,     0,
1466 +       0,     0,     0,     0,     0,     0,     0,     0,    53,     0,
1467 +       0,   378,     0,   373,   374,   375,   123,     0,     0,   119,
1468 +       0,     0,     0,     0,     0,     0,     0,   108,   109,   111,
1469 +     110,   112,     0,     0,   341,     0,     0,   356,     0,     0,
1470 +     349,   350,   351,   352,     0,     0,     0,    86,     0,    28,
1471         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1472 +       0,     0,     0,   612,   250,     0,     0,     0,     0,     0,
1473         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1474 +       0,   233,   411,     0,     0,     0,     0,     0,     0,     0,
1475 +       0,     0,     0,     0,     0,     0,     0,     0,     0,   394,
1476 +       0,     0,     0,   444,     0,   451,     0,     0,     0,   459,
1477         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1715       0,     0,     0,     0,     0,     0,     0,     0,     0,   448,
1716       0,     0,     0,   285,     0,     0,     0,     0,     0,     0,
1717     271,   272,   273,   274,   279,   275,   276,   277,   278,   414,
1718       0,   404,     0,   413,     0,   410,   411,   412,     0,   246,
1719       0,     0,     0,   256,     0,   254,   255,   257,   258,   111,
1720       0,     0,   107,     0,    47,     0,     0,     0,    43,     0,
1721       0,     0,   179,     0,     0,     0,   154,     0,     0,   138,
1722     139,   140,   141,   144,   145,   143,   142,   146,     0,     0,
1723       0,     0,     0,   305,   306,   307,   308,     0,     0,     0,
1724       0,     0,     0,     0,     0,   629,    70,     0,     0,     0,
1478         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1726       0,     0,     0,     0,     0,    51,     0,     0,   329,     0,
1727       0,   322,   323,   324,   325,     0,     0,   351,     0,   346,
1728     347,   348,     0,     0,   314,     0,     0,     0,    96,     0,
1729       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
1730       0,     0,     0,     0,   596,   222,     0,     0,     0,     0,
1479         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1732       0,     0,     0,   204,   382,     0,     0,     0,     0,     0,
1733       0,     0,     0,     0,     0,     0,     0,     0,     0,   367,
1734       0,     0,     0,   419,     0,   426,     0,     0,     0,     0,
1735     439,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1480         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1481 +       0,     0,     0,     0,     0,     0,     0,   466,   307,     0,
1482 +       0,     0,     0,     0,     0,     0,     0,     0,   297,     0,
1483 +       0,     0,   435,   286,     0,     0,     0,     0,     0,   280,
1484 +       0,     0,    44,   102,     0,     0,     0,    98,   162,     0,
1485         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1486 +     150,   336,     0,     0,     0,     0,   331,     0,     0,     0,
1487 +       0,     0,     0,     0,     0,     0,   644,     0,     0,     0,
1488         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1489 +       0,     0,    52,   376,     0,     0,     0,   372,     0,   118,
1490 +       0,   113,     0,     0,     0,     0,     0,   107,     0,   340,
1491 +     353,     0,     0,     0,     0,   348,    95,    94,    93,   642,
1492 +      28,    28,    28,    28,    28,    28,    28,    30,    29,   643,
1493 +     630,   631,   632,   633,   634,   635,   636,   637,   640,   641,
1494 +     638,   639,     0,     0,     0,     0,     0,     0,     0,     0,
1495 +       0,     0,     0,     0,     0,    38,     0,     0,   232,     0,
1496         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1497 <       0,   447,   280,     0,     0,     0,     0,     0,     0,     0,
1498 <       0,     0,   270,     0,     0,     0,     0,   409,   259,     0,
1499 <       0,     0,     0,     0,   253,     0,   106,     0,     0,     0,
1500 <      42,   147,     0,     0,     0,     0,     0,     0,     0,     0,
1501 <       0,   137,   309,     0,     0,     0,     0,   304,     0,     0,
1502 <       0,     0,     0,     0,     0,   628,     0,     0,     0,     0,
1503 <       0,     0,     0,     0,     0,     0,    75,    76,     0,    74,
1504 <      79,    80,     0,    78,     0,     0,     0,     0,     0,    50,
1505 <     326,     0,     0,     0,     0,   321,   349,     0,     0,     0,
1506 <     345,     0,   313,   105,   104,   103,   623,   622,   614,    26,
1507 <      26,    26,    26,    26,    26,    26,    28,    27,   616,   617,
1508 <     621,   619,   618,   624,   625,   626,   627,   620,   615,     0,
1497 >       0,     0,     0,     0,     0,   393,     0,     0,   443,   456,
1498 >       0,     0,   458,   526,   530,   515,   516,   545,   519,   610,
1499 >     611,   553,   520,   521,   550,   525,   533,   524,   522,   523,
1500 >     529,   528,   527,   551,   517,   608,   609,   549,   607,   593,
1501 >     587,   603,   588,   589,   590,   598,   606,   591,   600,   604,
1502 >     594,   605,   595,   599,   592,   602,   597,   596,   601,     0,
1503 >     586,   582,   565,   566,   567,   560,   578,   561,   562,   563,
1504 >     573,   581,   564,   575,   579,   569,   580,   570,   574,   568,
1505 >     577,   572,   571,   576,     0,   559,   546,   544,   547,   552,
1506 >     548,   535,   542,   543,   540,   541,   536,   537,   538,   539,
1507 >     554,   555,   532,   531,   534,   518,     0,     0,     0,     0,
1508 >       0,     0,     0,     0,   296,     0,     0,   434,     0,     0,
1509 >       0,   291,   287,   290,   272,    50,    51,     0,     0,    97,
1510         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1511 <       0,     0,     0,    36,     0,     0,   203,     0,     0,     0,
1512 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1513 <       0,   366,     0,     0,   418,   431,     0,     0,     0,   433,
1514 <     511,   515,   529,   595,   542,   509,   536,   539,   510,   501,
1515 <     500,   502,   503,   504,   518,   507,   508,   519,   506,   514,
1516 <     513,   512,   537,   499,   593,   594,   533,   530,   579,   572,
1517 <     589,   590,   573,   574,   575,   576,   584,   577,   587,   591,
1518 <     580,   592,   585,   581,   586,   578,   583,   582,   588,     0,
1519 <     571,   535,   554,   548,   565,   566,   549,   550,   551,   552,
1520 <     560,   553,   563,   567,   556,   561,   557,   562,   555,   559,
1521 <     558,   564,     0,   547,   528,   531,   541,   505,   532,   521,
1522 <     526,   527,   524,   525,   522,   523,   517,   516,   540,   543,
1523 <     534,   538,   520,     0,     0,     0,     0,     0,     0,     0,
1524 <       0,   269,     0,     0,     0,   403,     0,     0,     0,   264,
1525 <     260,   263,   245,   112,     0,     0,   124,     0,     0,   116,
1526 <     117,   119,   118,    48,    49,     0,     0,     0,     0,     0,
1527 <       0,     0,     0,   136,     0,     0,     0,   303,   639,   644,
1528 <     642,   645,   640,   641,   643,    87,    95,    93,    94,    85,
1529 <      89,    88,    82,    81,    83,    71,     0,    72,     0,    86,
1530 <      84,    92,    90,    91,     0,     0,     0,   320,     0,     0,
1531 <     344,   318,    29,    30,    31,    32,    33,    34,    35,   233,
1532 <     234,   226,   242,   243,     0,   241,   228,   230,   229,   227,
1533 <     236,   237,   223,   235,   225,   224,    36,    36,    36,    38,
1534 <      37,   231,   232,   387,   389,   390,   400,   397,   395,   396,
1535 <       0,   394,   384,   398,   399,   383,   388,   386,   401,   385,
1536 <     424,   425,   445,   446,   438,     0,   437,   569,     0,   545,
1537 <       0,   283,   284,   293,   290,   295,   292,   291,   298,   294,
1538 <     296,   289,   297,     0,   288,   282,   301,   300,   299,   281,
1539 <     416,   408,     0,   407,   415,   251,   252,   250,     0,   249,
1540 <     267,   266,     0,     0,     0,   120,     0,     0,     0,     0,
1541 <     115,   153,   151,   194,   191,   190,   183,   185,   201,   195,
1784 <     198,   193,   184,   199,   187,   196,   200,   188,   197,   192,
1785 <     186,   189,     0,   182,   148,   150,   152,   164,   158,   175,
1786 <     176,   159,   160,   161,   162,   170,   163,   173,   177,   166,
1787 <     178,   171,   167,   172,   165,   169,   168,   174,     0,   157,
1788 <     149,   311,   312,   310,    73,    77,   327,   333,   339,   342,
1789 <     335,   341,   336,   340,   338,   334,   337,     0,   332,   328,
1790 <     350,   355,   361,   364,   357,   363,   358,   362,   360,   356,
1791 <     359,     0,   354,   239,     0,    39,    40,    41,   392,     0,
1792 <     435,     0,   570,   546,   286,     0,   405,     0,   247,     0,
1793 <     265,   262,   261,     0,     0,     0,     0,   114,   180,     0,
1794 <     155,     0,   330,     0,   352,     0,   240,   393,   436,   287,
1795 <     406,   248,   121,   130,   133,   132,   129,   134,   131,   128,
1796 <       0,   127,   123,   122,   181,   156,   331,   353,   125,     0,
1797 <     126
1511 >     149,     0,     0,     0,   330,   660,   657,   658,   659,   664,
1512 >     663,   665,   661,   662,    82,    79,    85,    78,    83,    84,
1513 >      77,    81,    80,    72,    71,    76,    73,    75,    74,     0,
1514 >       0,   371,   124,     0,     0,     0,   136,     0,   128,   129,
1515 >     131,   130,     0,     0,     0,     0,   106,   345,     0,     0,
1516 >       0,   347,    31,    32,    33,    34,    35,    36,    37,   260,
1517 >     261,   255,   270,   269,     0,   268,   256,   264,   257,   263,
1518 >     251,   262,   254,   253,   252,    38,    38,    38,    40,    39,
1519 >     258,   259,   417,   420,   421,   431,   428,   413,   429,   426,
1520 >     427,     0,   425,   430,   412,   419,   416,   418,   415,   432,
1521 >     414,   449,   450,   464,   465,   584,     0,   557,     0,   310,
1522 >     311,   321,   317,   318,   320,   325,   322,   323,   316,   324,
1523 >     319,     0,   315,   309,   328,   327,   326,   308,   441,   440,
1524 >     294,   293,   278,   279,   277,     0,   276,     0,     0,     0,
1525 >     103,   104,   170,   167,   218,   230,   205,   214,     0,   203,
1526 >     208,   224,     0,   217,   222,   228,   207,   210,   219,   221,
1527 >     225,   215,   223,   211,   229,   213,   220,   209,   212,     0,
1528 >     201,   163,   165,   168,   169,   197,   180,   181,   182,   175,
1529 >     193,   176,   177,   178,   188,   196,   179,   190,   194,   184,
1530 >     195,   185,   189,   183,   192,   187,   186,   191,     0,   174,
1531 >     164,   166,   339,   337,   338,   377,   382,   388,   391,   384,
1532 >     390,   385,   389,   387,   383,   386,     0,   381,   132,     0,
1533 >       0,     0,     0,   127,   115,   114,   116,   117,   354,   360,
1534 >     366,   369,   362,   368,   363,   367,   365,   361,   364,     0,
1535 >     359,   355,   266,     0,    41,    42,    43,   423,     0,   585,
1536 >     558,   313,     0,   274,     0,   292,   289,   288,     0,     0,
1537 >       0,     0,     0,     0,   199,     0,   172,     0,   379,     0,
1538 >       0,     0,     0,     0,   126,   357,     0,   267,   424,   314,
1539 >     275,   204,   227,   202,   226,   216,   206,   200,   173,   380,
1540 >     133,   135,   134,   146,   145,   141,   143,   147,   144,   140,
1541 >     142,     0,   139,   358,   137,     0,   138
1542   };
1543  
1544 < /* YYDEFGOTO[NTERM-NUM].  */
1544 >  /* YYPGOTO[NTERM-NUM].  */
1545 > static const yytype_int16 yypgoto[] =
1546 > {
1547 >    -868,  -868,  -868,  -106,  -302,  -867,  -628,  -868,  -868,   941,
1548 >    -868,  -868,  -868,  -868,   792,  -868,  -868,  -868,  -868,  -868,
1549 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1550 >    -868,  -868,   981,  -868,  -868,  -868,  -868,  -868,  -868,   562,
1551 >    -868,  -868,  -868,  -868,  -868,   484,  -868,  -868,  -868,  -868,
1552 >    -868,  -868,   781,  -868,  -868,  -868,  -868,    97,  -868,  -868,
1553 >    -868,  -868,  -868,  -246,  -868,  -868,  -868,   577,  -868,  -868,
1554 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -138,
1555 >    -868,  -868,  -868,  -204,  -868,  -868,  -868,   807,  -868,  -868,
1556 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1557 >    -868,  -868,  -868,  -868,  -868,  -113,  -868,  -868,  -868,  -868,
1558 >    -868,  -118,  -868,   656,  -868,  -868,  -868,     0,  -868,  -868,
1559 >    -868,  -868,  -868,   686,  -868,  -868,  -868,  -868,  -868,  -868,
1560 >    -868,  -109,  -868,  -868,  -868,  -868,  -868,  -868,   621,  -868,
1561 >    -868,  -868,  -868,  -868,   959,  -868,  -868,  -868,  -868,   559,
1562 >    -868,  -868,  -868,  -868,  -868,  -127,  -868,  -868,  -868,   588,
1563 >    -868,  -868,  -868,  -868,  -117,  -868,  -868,  -868,   783,  -868,
1564 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1565 >    -868,   -95,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1566 >     690,  -868,  -868,  -868,  -868,  -868,   782,  -868,  -868,  -868,
1567 >    -868,  1036,  -868,  -868,  -868,  -868,   788,  -868,  -868,  -868,
1568 >    -868,   991,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1569 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1570 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1571 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1572 >    -868,  -868,  -868,  -868,    89,  -868,  -868,  -868,    81,  -868,
1573 >    -868,  -868,  -868,  -868,  -868,  1063,  -868,  -868,  -868,  -868,
1574 >    -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1575 >    -868,  -868,   974,  -868,  -868,  -868,  -868,  -868,  -868,  -868,
1576 >    -868,  -868
1577 > };
1578 >
1579 >  /* YYDEFGOTO[NTERM-NUM].  */
1580   static const yytype_int16 yydefgoto[] =
1581   {
1582 <      -1,     1,    24,   796,   797,  1049,  1050,    25,   228,   229,
1583 <     230,   231,    26,   269,   270,   271,   272,   758,   759,   762,
1584 <     763,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1585 <     282,   283,   284,   285,   286,   287,    27,    71,    72,    73,
1586 <      74,    75,    28,   220,   221,   222,   223,   224,   968,   969,
1587 <     970,   971,   972,  1117,  1250,  1251,    29,    60,   508,   509,
1588 <     510,   511,   512,   513,   514,   515,   516,   728,  1168,  1169,
1589 <     517,   724,  1142,  1143,    30,    49,   334,   335,   336,   337,
1590 <     338,   339,   340,   341,   342,   343,   344,   345,   346,   347,
1591 <     348,   349,   350,   351,   599,  1034,  1035,    31,    57,   483,
1592 <     709,  1108,  1109,   484,   485,   486,  1114,   960,   961,   487,
1593 <     488,    32,    55,   459,   460,   461,   462,   463,   464,   465,
1594 <     695,  1093,  1094,   466,   467,   468,    33,    61,   522,   523,
1595 <     524,   525,   526,    34,   292,   293,   294,    35,    64,   560,
1596 <     561,   562,   563,   564,   772,  1187,  1188,    36,    65,   568,
1597 <     569,   570,   571,   778,  1201,  1202,    37,    50,   366,   367,
1598 <     368,   369,   370,   371,   372,   373,   374,   375,   619,  1060,
1599 <    1061,   376,   377,   378,   379,   380,    38,    56,   473,   704,
1600 <    1102,  1103,   474,   475,   476,   477,    39,    51,   384,   385,
1601 <     386,   387,    40,   112,   113,   114,    41,    53,   395,   638,
1602 <    1075,  1076,   396,   397,   398,   399,    42,   165,   166,   167,
1582 >      -1,     1,    26,   817,   818,  1078,  1079,    27,   221,   222,
1583 >     223,   224,    28,   265,   266,   267,   268,   269,   270,   271,
1584 >     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
1585 >      29,    77,    78,    79,    80,    81,    30,    63,   494,   495,
1586 >     496,   497,    31,    70,   576,   577,   578,   579,   580,   581,
1587 >      32,   285,   286,   287,   288,   289,  1037,  1038,  1039,  1040,
1588 >    1041,  1221,  1301,  1302,    33,    64,   509,   510,   511,   512,
1589 >     513,   514,   515,   516,   517,   518,   519,   746,  1198,  1199,
1590 >     520,   741,  1169,  1170,    34,    53,   335,   336,   337,   338,
1591 >     339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
1592 >     349,   350,   351,   618,  1064,  1065,    35,    61,   480,   726,
1593 >    1135,  1136,   481,   482,   483,  1139,   982,   983,   484,   485,
1594 >      36,    59,   458,   459,   460,   461,   462,   463,   464,   711,
1595 >    1121,  1122,   465,   466,   467,    37,    65,   525,   526,   527,
1596 >     528,   529,    38,   293,   294,   295,    39,    72,   589,   590,
1597 >     591,   592,   593,   802,  1239,  1240,    40,    68,   562,   563,
1598 >     564,   565,   785,  1216,  1217,    41,    54,   368,   369,   370,
1599 >     371,   372,   373,   374,   375,   376,   377,   378,   379,   639,
1600 >    1091,  1092,   380,   381,   382,   383,   384,    42,    60,   471,
1601 >     472,   473,   474,    43,    55,   388,   389,   390,   391,    44,
1602 >     118,   119,   120,    45,    57,   398,   399,   400,   401,    46,
1603       168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1604       178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1605       188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1606       198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1607 <     208,   209,   210,   430,   922,   923,   211,   428,   899,   900,
1608 <     212,   213,   214,    43,    91,    92,    93,    94,    95,    96,
1609 <      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1610 <      44,   242,   243,   244,   245,   246,   247,   248,   249,   250
1607 >     208,   209,   428,   944,   945,   210,   427,   919,   920,   211,
1608 >     212,   213,   214,    47,    97,    98,    99,   100,   101,   102,
1609 >     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1610 >      48,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1611 >     247,   248
1612   };
1613  
1614 < /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1615 <   STATE-NUM.  */
1616 < #define YYPACT_NINF -705
1837 < static const yytype_int16 yypact[] =
1838 < {
1839 <    -705,   647,  -705,  -134,  -212,  -173,  -705,  -705,  -705,  -155,
1840 <    -705,  -133,  -705,  -705,  -705,  -128,  -114,  -705,  -705,  -108,
1841 <    -101,  -705,  -705,   -90,  -705,  -705,  -705,  -705,  -705,  -705,
1842 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1843 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,   338,   848,   -80,
1844 <     -69,   -54,    16,   -48,   402,   -16,    -9,    -4,     3,     8,
1845 <       6,    31,   550,   444,    38,    59,    33,  -186,  -159,    42,
1846 <      79,    18,  -705,  -705,  -705,  -705,  -705,    82,    91,    93,
1847 <     104,   113,   118,   120,   124,   138,   139,   140,   141,   145,
1848 <     147,   303,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1849 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,   610,   316,    10,
1850 <    -705,   149,    14,  -705,  -705,   203,  -705,   153,   154,   155,
1851 <     157,   159,   160,   161,   162,   168,   169,   171,   174,   180,
1852 <     183,   185,   186,   188,   192,   194,   196,   197,   199,   202,
1853 <     207,   212,   213,   214,   215,  -705,   222,  -705,   226,   227,
1854 <     229,   232,   233,   234,   237,   238,   242,   243,   244,   245,
1855 <     246,   247,   249,   250,   251,   125,  -705,  -705,  -705,  -705,
1856 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1857 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1858 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1859 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1860 <    -705,  -705,  -705,  -705,  -705,   265,   191,    81,   178,   252,
1861 <       4,  -705,  -705,  -705,    60,   257,   256,   258,    22,  -705,
1862 <    -705,  -705,   419,   291,  -705,   264,   266,   276,   277,   279,
1863 <     282,   283,   110,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1864 <    -705,   268,   289,   293,   294,   297,   299,   300,   304,   305,
1865 <     306,   308,   309,   311,   317,   318,   319,   320,   322,   175,
1866 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1867 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   119,    26,
1868 <    -705,   323,    29,  -705,  -705,  -705,   327,   407,   420,   328,
1869 <    -705,   449,   450,   389,   453,   453,   454,   455,   457,   396,
1870 <     406,   469,   453,   408,   409,   359,  -705,   361,   362,   363,
1871 <     365,  -705,   366,   367,   368,   369,   370,   372,   373,   379,
1872 <     380,   383,   385,   390,   172,  -705,  -705,  -705,  -705,  -705,
1873 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1874 <    -705,  -705,   364,   394,   397,   400,   401,  -705,   403,   404,
1875 <     411,   412,   413,   414,   415,   416,    28,  -705,  -705,  -705,
1876 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1877 <    -705,  -705,   422,   423,    27,  -705,  -705,  -705,   463,   428,
1878 <    -705,  -705,   426,   427,  -705,  -705,    19,  -705,  -705,  -705,
1879 <     466,   453,   453,   531,   488,   490,   553,   536,   493,   453,
1880 <     499,   453,   562,   563,   564,   504,   505,   509,   453,   572,
1881 <     573,   453,   574,   575,   585,   586,   525,   527,   470,   529,
1882 <     471,   453,   453,   534,   535,   537,   539,   -64,    57,   540,
1883 <     541,   453,   453,   580,   453,   542,   546,   547,   487,  -705,
1884 <     496,   494,   495,  -705,   500,   501,   502,   506,   507,    56,
1885 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1886 <     510,  -705,   511,  -705,    43,  -705,  -705,  -705,   508,  -705,
1887 <     512,   515,   516,  -705,    12,  -705,  -705,  -705,  -705,  -705,
1888 <     556,   528,  -705,   173,  -705,   603,   613,   530,  -705,   532,
1889 <     522,   524,  -705,   538,   545,   548,  -705,   552,    15,  -705,
1890 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   558,   559,
1891 <     566,   567,    23,  -705,  -705,  -705,  -705,   592,   595,   638,
1892 <     599,   623,   629,   453,   589,  -705,  -705,   657,   630,   693,
1893 <     705,   694,   695,   701,   703,   708,   709,    55,   135,   719,
1894 <     723,   742,   730,   732,   604,  -705,   637,   636,  -705,   640,
1895 <      61,  -705,  -705,  -705,  -705,   641,   644,  -705,   107,  -705,
1896 <    -705,  -705,   741,   648,  -705,   649,   650,   652,  -705,   653,
1897 <     654,   655,   352,   656,   658,   662,   663,   664,   665,   666,
1898 <     667,   668,   670,   671,  -705,  -705,   780,   791,   453,   673,
1899 <     792,   793,   796,   797,   453,   453,   781,   798,   800,   453,
1900 <     801,   801,   683,  -705,  -705,   785,   114,   786,   743,   684,
1901 <     789,   790,   794,   795,   809,   802,   803,   804,   696,  -705,
1902 <     805,   806,   697,  -705,   706,  -705,   808,   810,   692,   710,
1903 <    -705,   711,   712,   713,   714,   715,   716,   717,   718,   720,
1904 <     721,   722,   724,   727,   728,   729,   731,   733,   734,   735,
1905 <     736,   737,   740,   744,   745,   746,   747,   749,   750,   594,
1906 <     751,   661,   752,   753,   754,   755,   757,   758,   759,   760,
1907 <     761,   762,   763,   764,   765,   766,   767,   768,   769,   770,
1908 <     771,  -705,  -705,   820,   787,   738,   824,   827,   833,   843,
1909 <     844,   772,  -705,   874,   773,   875,   775,  -705,  -705,   774,
1910 <     879,   880,   899,   782,  -705,   783,  -705,   105,   784,   788,
1911 <    -705,  -705,   882,   842,   799,   887,   888,   890,   807,   891,
1912 <     811,  -705,  -705,   892,   893,   894,   812,  -705,   813,   814,
1913 <     815,   816,   817,   818,   819,  -705,   821,   822,   823,   825,
1914 <     826,   828,   829,   830,   831,   832,  -705,  -705,  -216,  -705,
1915 <    -705,  -705,  -203,  -705,   834,   835,   836,   837,   838,  -705,
1916 <    -705,   895,   839,   896,   840,  -705,  -705,   897,   841,   845,
1917 <    -705,   846,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   453,
1918 <     453,   453,   453,   453,   453,   453,  -705,  -705,  -705,  -705,
1919 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   847,
1920 <     849,   850,   223,   851,   852,   853,   854,   855,   856,   857,
1921 <     858,   859,   860,    85,   861,   862,  -705,   863,   864,   865,
1922 <     866,   867,    -2,   868,   869,   870,   871,   872,   873,   876,
1923 <     877,  -705,   878,   881,  -705,  -705,   883,   884,   900,  -705,
1924 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1925 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1926 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1927 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1928 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -202,
1929 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1930 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1931 <    -705,  -705,  -189,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1932 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1933 <    -705,  -705,  -705,   885,   886,   474,   889,   898,   901,   902,
1934 <     903,  -705,   904,   905,   906,  -705,    24,   907,   908,   927,
1935 <     909,  -705,  -705,  -705,   910,   911,  -705,   912,   101,  -705,
1936 <    -705,  -705,  -705,  -705,  -705,   916,   917,   544,   918,   919,
1937 <     920,   632,   921,  -705,   922,   923,   924,  -705,  -705,  -705,
1938 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1939 <    -705,  -705,  -705,  -705,  -705,  -705,    55,  -705,   135,  -705,
1940 <    -705,  -705,  -705,  -705,   925,   543,   926,  -705,   928,   679,
1941 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1942 <    -705,  -705,  -705,  -705,  -188,  -705,  -705,  -705,  -705,  -705,
1943 <    -705,  -705,  -705,  -705,  -705,  -705,   801,   801,   801,  -705,
1944 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1945 <    -178,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1946 <    -705,  -705,  -705,  -705,  -705,  -172,  -705,  -705,   594,  -705,
1947 <     661,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1948 <    -705,  -705,  -705,  -170,  -705,  -705,  -705,  -705,  -705,  -705,
1949 <    -705,  -705,  -169,  -705,  -705,  -705,  -705,  -705,  -163,  -705,
1950 <    -705,  -705,   939,   899,   929,  -705,   934,   930,   -98,   931,
1951 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1952 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1953 <    -705,  -705,  -161,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1954 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1955 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -158,  -705,
1956 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1957 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -147,  -705,  -705,
1958 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1959 <    -705,  -145,  -705,  -705,   223,  -705,  -705,  -705,  -705,    -2,
1960 <    -705,   900,  -705,  -705,  -705,   474,  -705,   905,  -705,    24,
1961 <    -705,  -705,  -705,   932,   -22,   935,   936,  -705,  -705,   544,
1962 <    -705,   632,  -705,   543,  -705,   679,  -705,  -705,  -705,  -705,
1963 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1964 <    -144,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   -22,
1965 <    -705
1966 < };
1967 <
1968 < /* YYPGOTO[NTERM-NUM].  */
1969 < static const yytype_int16 yypgoto[] =
1970 < {
1971 <    -705,  -705,  -705,  -435,  -302,  -704,  -610,  -705,  -705,   933,
1972 <    -705,  -705,  -705,  -705,   756,  -705,  -705,  -705,    17,  -705,
1973 <      13,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1974 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   951,  -705,
1975 <    -705,  -705,  -705,  -705,   913,  -705,  -705,  -705,  -705,    62,
1976 <    -705,  -705,  -705,  -705,  -705,  -235,  -705,  -705,  -705,   519,
1977 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -200,
1978 <    -705,  -705,  -705,  -197,  -705,  -705,  -705,   777,  -705,  -705,
1979 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1980 <    -705,  -705,  -705,  -705,  -705,  -705,  -175,  -705,  -705,  -705,
1981 <    -705,  -705,  -171,  -705,   579,  -705,  -705,  -705,   -62,  -705,
1982 <    -705,  -705,  -705,  -705,   606,  -705,  -705,  -705,  -705,  -705,
1983 <    -705,  -705,  -148,  -705,  -705,  -705,  -705,  -705,  -705,   577,
1984 <    -705,  -705,  -705,  -705,  -705,   914,  -705,  -705,  -705,  -705,
1985 <     554,  -705,  -705,  -705,  -705,  -705,  -130,  -705,  -705,  -705,
1986 <     549,  -705,  -705,  -705,  -705,  -131,  -705,  -705,  -705,   915,
1987 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1988 <    -137,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1989 <    -705,  -111,  -705,   642,  -705,  -705,  -705,  -705,  -705,   739,
1990 <    -705,  -705,  -705,  -705,  1000,  -705,  -705,  -705,  -705,  -705,
1991 <    -705,   -96,  -705,   725,  -705,  -705,  -705,  -705,   953,  -705,
1992 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1993 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1994 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1995 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1996 <    -705,  -705,  -705,  -705,  -705,    39,  -705,  -705,  -705,    46,
1997 <    -705,  -705,  -705,  -705,  -705,  1029,  -705,  -705,  -705,  -705,
1998 <    -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
1999 <    -705,  -705,   937,  -705,  -705,  -705,  -705,  -705,  -705,  -705
2000 < };
2001 <
2002 < /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
2003 <   positive, shift that token.  If negative, reduce the rule which
2004 <   number is the opposite.  If YYTABLE_NINF, syntax error.  */
2005 < #define YYTABLE_NINF -114
1614 >  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1615 >     positive, shift that token.  If negative, reduce the rule whose
1616 >     number is the opposite.  If YYTABLE_NINF, syntax error.  */
1617   static const yytype_int16 yytable[] =
1618   {
1619 <     824,   825,   583,   584,   218,   218,  1058,   823,  1005,   225,
1620 <     591,   381,  1006,   478,    47,   110,   499,   110,  1243,    67,
1621 <     391,  1007,  1077,   225,   518,  1008,  1078,   565,   381,   352,
1622 <     290,   353,   500,   354,   290,  1079,  1203,   519,   295,  1080,
1623 <    1204,  1244,    68,  1245,   469,   355,  1208,   501,   479,    69,
1624 <    1209,   502,  1210,    48,  1214,  1216,  1211,   450,  1215,  1217,
1625 <     356,  1218,   556,  1228,   357,  1219,  1230,  1229,   296,   480,
1626 <    1231,    52,   382,   451,   481,  1105,   111,  1232,   111,  1234,
1627 <    1258,  1233,   478,  1235,  1259,   358,  1246,   359,   452,   382,
1628 <      45,    46,   453,    54,  1046,  1047,  1048,   360,    58,   642,
1629 <     643,   226,   964,   678,   679,  1225,   964,   650,   565,   652,
1630 <     503,   234,    59,    70,   392,   226,   659,   479,    62,   662,
1631 <     556,   566,   520,   361,   291,    63,   116,   227,   291,   672,
1632 <     673,   117,   118,   504,   482,   383,    66,   119,   480,   684,
1633 <     685,   227,   687,   481,   393,   120,   107,   235,   521,   505,
1634 <     362,   121,   383,   122,   123,   124,   557,   108,  1247,  1248,
1635 <     125,   236,   237,   238,   239,   240,   126,   127,   470,   128,
1636 <     129,   130,   109,   317,   454,   131,   251,   394,   115,   363,
1637 <     241,   132,   455,   456,   567,   133,   134,   318,   319,   135,
1638 <     823,   320,   469,  1249,   756,   757,   965,  1059,   136,   252,
1639 <     965,   471,   566,   482,   391,   137,   364,   138,   321,   139,
1640 <     215,   140,   141,   142,   557,   506,   457,   216,  1106,   558,
1641 <     219,   219,   217,  1107,   680,   681,  -113,  -113,   143,   491,
1642 <     507,   744,   232,   253,   144,   145,   146,   713,   147,   389,
1643 <     730,   148,   149,   299,   639,   150,   365,   497,   736,   322,
1644 <     323,   324,   632,   628,   573,   325,   254,   233,   472,   966,
1645 <     255,   326,   327,   966,   288,   567,   450,   328,   706,   297,
1646 <     256,   458,   257,   258,   760,   761,   559,   558,   329,   330,
1647 <     151,   701,   451,   493,   152,   289,   774,   153,   154,   155,
1648 <     156,   157,   518,   331,   158,   159,   811,   452,   392,   828,
1649 <     829,   453,   817,   818,    76,   519,   298,   822,   259,   301,
1650 <     260,   261,   262,   263,  1032,  1033,   470,   352,   302,   353,
1651 <     303,   354,   332,   967,    77,    78,  1119,   967,   393,   264,
1652 <      79,   304,   779,   355,   559,   534,   160,   161,   162,    67,
1653 <     305,   163,  1205,  1206,  1207,   306,   164,   307,   356,   471,
1654 <     448,   308,   357,   265,  1022,  1023,  1024,  1025,  1026,  1027,
1655 <    1028,   394,    68,   266,   333,   309,   310,   311,   312,    69,
1656 <      80,    81,   313,   358,   314,   359,   388,    82,    83,    84,
1657 <     400,   401,   402,   454,   403,   360,   404,   405,   406,   407,
1658 <     520,   455,   456,   267,   268,   408,   409,   612,   410,   717,
1659 <     554,   411,   489,   116,    85,    86,   472,   412,   117,   118,
1660 <     413,   361,   414,   415,   119,   416,   521,    87,    88,   417,
1661 <     499,   418,   120,   419,   420,   457,   421,    89,   121,   422,
1662 <     122,   123,   124,    70,   423,    90,   500,   125,   362,   424,
1663 <     425,   426,   427,   126,   127,   251,   128,   129,   130,   429,
1664 <     575,   501,   131,   431,   432,   502,   433,   582,   132,   434,
1665 <     435,   436,   133,   134,   437,   438,   135,   363,   252,   439,
1666 <     440,   441,   442,   443,   444,   136,   445,   446,   447,   490,
1667 <     458,   494,   137,   495,   138,   496,   139,  1083,   140,   141,
1668 <     142,   527,   536,   528,   364,   789,   790,   791,   792,   793,
1669 <     794,   795,   253,   529,   530,   143,   531,  1084,  1226,   532,
1670 <     533,   144,   145,   146,   503,   147,   537,  1085,   148,   149,
1671 <     538,   539,   150,  1086,   540,   254,   541,   542,   315,   255,
1672 <     576,   543,   544,   545,   365,   546,   547,   504,   548,   256,
1673 <    1087,   257,   258,   577,   549,   550,   551,   552,  1123,   553,
1674 <     572,   234,   578,   505,   579,   580,   581,   151,   582,   585,
1675 <     586,   152,   587,   588,   153,   154,   155,   156,   157,  1124,
1676 <    1088,   158,   159,   589,   590,   592,   593,   259,  1089,   260,
1677 <     261,   262,   263,   594,  1125,   595,   634,   235,   614,   596,
1678 <     597,  1126,   598,   600,   601,   602,   603,   604,   264,   605,
1679 <     606,   236,   237,   238,   239,   240,   607,   608,  1177,  1127,
1680 <     609,   317,   610,   160,   161,   162,  1090,   611,   163,   506,
1681 <     241,   615,   265,   164,   616,   318,   319,   617,   618,   320,
1682 <     620,   621,   266,   641,   507,  1091,   644,  1128,   622,   623,
1683 <     624,   625,   626,   627,  1129,   878,   321,     2,     3,   630,
1684 <     631,     4,   635,   636,   637,   645,  1130,   646,   647,   648,
1685 <     649,     5,   267,   268,     6,     7,   651,   653,   654,   655,
1686 <       8,   656,   657,  1131,  1132,  1133,   658,   660,   661,   663,
1687 <     664,     9,  1092,  1147,  1178,    10,    11,   322,   323,   324,
1688 <     665,   666,   667,   325,   668,    12,   670,   669,   671,   326,
1689 <     327,   674,   675,   686,   676,   328,   677,   682,   683,   688,
1690 <      13,   691,   902,   689,   690,  1179,   329,   330,    14,    15,
1691 <     692,   693,   694,   715,  1180,  1134,   718,   696,   697,   698,
1692 <    1181,   331,   708,   699,   700,  1135,   719,   703,   705,   710,
1693 <    1136,    16,   711,   712,  1191,  1182,  1137,  1183,  1184,   722,
1694 <    1138,   723,   716,  1139,   720,    17,   721,  1185,  1140,   738,
1695 <     332,   740,   739,  1186,  1141,   725,   741,   879,   880,   881,
1696 <     882,   883,   726,   884,   885,   727,   886,   887,   888,   729,
1697 <     746,   889,   732,   890,   891,   892,   733,   893,    18,   894,
1698 <     742,   895,   896,   734,   735,   897,   743,   747,   748,    19,
1699 <      20,   898,   333,    21,    22,  1148,  1149,  1150,  1151,  1152,
1700 <     749,  1153,  1154,   745,  1155,  1156,  1157,   750,   751,  1158,
1701 <    1192,  1159,  1160,  1161,   752,  1162,   753,  1163,   769,  1164,
1702 <    1165,   754,   755,  1166,   903,   904,   905,   906,   907,  1167,
1703 <     908,   909,   764,   910,   911,   912,   765,   766,   913,    76,
1704 <     914,  1193,   915,   767,   916,   768,   917,    23,   918,   919,
1705 <    1194,   770,   920,   771,   781,   776,  1195,   773,   921,    77,
1706 <      78,   777,   782,   783,   784,    79,   785,   786,   787,   788,
1707 <     798,  1196,   799,  1197,  1198,   809,   800,   801,   802,   803,
1708 <     804,   805,   806,  1199,   807,   808,   810,   813,   814,  1200,
1709 <     812,   815,   816,   820,   819,   821,   823,   826,   827,   830,
1710 <     831,   832,   833,   834,   837,    80,    81,   835,   836,   848,
1711 <     841,   844,    82,    83,    84,   838,   839,   840,   842,   843,
1712 <     845,   846,   947,   847,   849,   850,   851,   852,   853,   854,
1713 <     855,   856,   857,   943,   858,   859,   860,   946,   861,    85,
1714 <      86,   862,   863,   864,   944,   865,   948,   866,   867,   868,
1715 <     869,   870,    87,    88,   871,   945,   949,   950,   872,   873,
1716 <     874,   875,    89,   876,   877,   901,   924,   925,   926,   927,
1717 <      90,   928,   929,   930,   931,   932,   933,   934,   935,   936,
1718 <     937,   938,   939,   940,   941,   942,   951,   952,   954,   955,
1719 <     953,   956,   957,   958,   959,   975,   962,   963,   973,   976,
1720 <     978,   979,   974,   980,   982,   984,   985,   986,  1014,  1016,
1721 <    1018,  1175,   300,  1174,  1260,   555,   977,   731,  1074,  1236,
1722 <    1120,  1255,  1254,  1101,   981,   983,   987,   988,   989,   990,
1723 <     991,   992,   993,   994,  1220,   995,   996,   997,  1241,   998,
1724 <     999,  1221,  1000,  1001,  1002,  1003,  1004,  1223,  1009,  1010,
1725 <    1011,  1012,  1013,   714,  1017,   702,  1015,  1239,  1019,  1020,
1726 <    1021,  1029,  1237,  1030,  1031,  1036,  1037,  1038,  1039,  1040,
1727 <    1041,  1042,  1043,  1044,  1045,  1051,  1052,  1053,  1054,  1055,
1728 <    1056,  1057,  1062,  1063,  1064,  1065,  1066,  1067,  1112,   737,
1729 <    1068,  1069,  1070,  1256,  1257,  1071,  1240,  1072,  1073,  1081,
1730 <    1082,   613,   390,  1095,   775,  1238,   707,   780,   449,  1213,
1731 <     316,   640,  1096,   633,  1212,  1097,  1098,  1099,  1100,     0,
1732 <    1104,  1110,  1111,   492,  1115,     0,     0,  1113,  1116,  1118,
1733 <    1121,  1122,  1144,  1145,  1146,  1170,  1171,  1172,  1173,  1176,
1734 <    1189,     0,  1190,  1222,     0,  1227,  1242,  1224,     0,  1252,
1735 <    1253,   498,     0,     0,     0,     0,     0,     0,     0,     0,
1736 <       0,     0,     0,     0,     0,     0,     0,     0,     0,   535,
1737 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1738 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1739 <       0,     0,     0,     0,     0,     0,   574,     0,     0,     0,
1740 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1619 >     846,   847,   600,   218,  1089,   603,   604,   605,    73,   607,
1620 >     608,   291,   571,   845,  1062,   498,   116,   693,   521,   385,
1621 >     385,   694,    51,   585,   695,   559,   395,    52,   696,   521,
1622 >    1105,   475,   283,   499,  1106,   116,    56,    74,   218,    58,
1623 >     491,    62,   468,   122,    66,    75,   559,   291,   123,   124,
1624 >    1107,   125,   126,   500,  1108,   283,   127,  1242,   522,  1247,
1625 >    1251,  1243,   297,  1248,  1252,   128,   129,   130,   585,   522,
1626 >      67,  1253,  1264,   298,   131,  1254,  1265,   132,   133,   134,
1627 >     117,   501,  1132,   386,   386,   135,  1063,   476,  1266,  1033,
1628 >      49,    50,  1267,  1033,   395,   477,    69,   478,   523,   117,
1629 >     219,   661,   136,   663,   664,   850,   851,   667,    76,   523,
1630 >    1271,   292,   572,   137,   674,   502,   138,   139,    71,   679,
1631 >     492,   113,   220,   586,   140,   560,   396,  1268,   688,   689,
1632 >     141,  1269,   142,   503,   143,   219,   144,   228,   145,   146,
1633 >     702,   703,   704,   524,   387,   387,   560,   292,   249,   147,
1634 >     468,   397,   491,   479,   524,   148,   149,   220,   150,   151,
1635 >     152,   114,   115,   153,   121,   504,   505,   469,   586,   352,
1636 >     229,   353,  1275,   354,  1304,   250,  1276,   251,  1305,   573,
1637 >     230,   231,   232,   215,   216,   233,   234,   355,   154,  1034,
1638 >     235,   236,   237,  1034,   396,   319,  1090,   574,   155,   156,
1639 >     157,   158,   159,   160,   161,   252,  -125,   356,  1244,  1245,
1640 >    1246,   320,   321,   575,   493,   253,   322,   506,   217,   397,
1641 >     449,   225,   226,   227,  1133,   357,   282,   358,   290,  -125,
1642 >     759,   571,   492,  1134,   489,   359,   254,   507,   450,   301,
1643 >     255,   508,   587,   796,   561,   588,   749,   360,   256,   755,
1644 >     652,   257,   258,   284,   804,   162,   163,   658,   451,   164,
1645 >     165,   323,   728,   568,   470,   561,   393,    82,   166,   361,
1646 >     167,   736,   299,   721,   447,   469,   284,   786,   583,   324,
1647 >     325,   259,   296,   486,  1035,   326,   452,   587,  1035,   327,
1648 >     588,   362,    83,    84,   300,   328,   303,   260,   304,    85,
1649 >     261,   262,   263,   305,   329,   330,   331,   306,  1036,   307,
1650 >     363,   308,  1036,   309,   310,   834,   332,   311,   837,   364,
1651 >     839,  1075,  1076,  1077,  1222,   844,   493,    86,    87,    88,
1652 >      89,   572,   365,   312,   313,   314,   315,   333,   453,   475,
1653 >     316,   392,    90,    91,    92,   864,   454,   455,   264,    93,
1654 >      94,    95,   402,    96,   122,   403,   404,   405,   406,   123,
1655 >     124,   407,   125,   126,   408,    73,   456,   127,   539,   366,
1656 >     541,   409,   470,   498,   449,   410,   128,   129,   130,   557,
1657 >     411,   566,   334,   367,  1293,   131,  1294,   412,   132,   133,
1658 >     134,   499,   450,   413,    74,   476,   135,   414,   573,   415,
1659 >     648,   416,    75,   477,   417,   478,   418,   419,   420,   421,
1660 >     422,   500,   451,   136,   423,   424,   574,   425,   426,   845,
1661 >     429,   430,   431,   432,   137,   433,   630,   138,   139,  1295,
1662 >     434,   435,   575,   436,   437,   140,   438,  1144,   439,   501,
1663 >     452,   141,   457,   142,   440,   143,  1296,   144,   441,   145,
1664 >     146,   717,   599,  1145,  1146,   442,   443,   444,   445,   446,
1665 >     147,   479,   487,   488,  1147,    76,   148,   149,  1111,   150,
1666 >     151,   152,   530,   502,   153,   531,   532,   533,   810,   811,
1667 >     812,   813,   814,   815,   816,  1297,  1298,   534,   535,   536,
1668 >     537,   503,   453,  1112,   538,   542,   543,   544,   317,   154,
1669 >     454,   455,  1148,  1149,   545,  1150,   546,   547,   548,   155,
1670 >     156,   157,   158,   159,   160,   161,   549,   550,   551,   552,
1671 >     456,   553,   554,   504,   505,   555,  1113,   556,   567,   570,
1672 >     582,  1151,   594,   595,   596,   597,   598,  1299,   599,  1152,
1673 >     601,   602,   613,  1300,   606,   249,   609,   610,   611,   612,
1674 >     352,   614,   353,   615,   354,  1114,  1115,   616,   617,   619,
1675 >     620,  1116,  1153,   621,  1154,  1155,   162,   163,   355,   622,
1676 >     164,   165,   250,   623,   251,   506,   228,   660,   624,   166,
1677 >     625,   167,  1156,   626,   627,   628,  1117,   632,   356,   629,
1678 >     654,   633,  1272,   634,   635,   507,   457,   636,   655,   508,
1679 >     637,  1118,   252,   638,   640,  1157,   357,   662,   358,   229,
1680 >    1158,   641,   253,   642,  1159,   643,   359,   644,  1160,   230,
1681 >     231,   232,   645,  1161,   233,   234,   646,  1162,   360,   235,
1682 >     236,   237,   647,   254,   650,   651,   656,   255,  1163,   657,
1683 >    1164,  1165,   665,  1166,   666,   256,   668,   669,   257,   258,
1684 >     361,   670,   319,   672,  1167,     2,     3,  1206,   673,     4,
1685 >     671,   675,  1168,   676,  1119,   677,   678,   680,   320,   321,
1686 >     681,     5,   362,   322,     6,   682,     7,   683,   259,   921,
1687 >     684,   685,   686,  1120,     8,   687,   922,   690,   923,   924,
1688 >     691,   363,   692,   697,   260,   698,     9,   261,   262,   263,
1689 >     364,   699,    10,    11,  1052,  1053,  1054,  1055,  1056,  1057,
1690 >    1058,   700,   701,   365,   705,   706,   707,  1207,   323,   708,
1691 >    1175,    12,   723,   730,   709,    13,   710,  1176,   712,  1177,
1692 >    1178,   713,   731,   757,   714,    14,   324,   325,   715,   716,
1693 >     719,   720,   326,   724,   725,   264,   327,   727,  1208,   732,
1694 >     366,   733,   328,   734,    15,    16,   735,  1209,   738,   739,
1695 >     898,   329,   330,   331,   367,   740,  1210,   899,   742,   760,
1696 >      17,   743,   758,   332,   744,   745,   761,   747,   751,   748,
1697 >     752,   762,   753,   763,   754,   764,   765,    18,   767,   768,
1698 >    1211,   769,  1212,  1213,   333,  1229,   766,   770,   771,    19,
1699 >      20,   772,   925,   926,   927,   773,  1214,   928,   929,   774,
1700 >     930,   931,   775,   932,  1215,   933,   784,   776,   934,   777,
1701 >     935,   936,   778,   779,    21,   780,   937,   781,   782,   783,
1702 >     938,   788,   789,   790,   939,   940,   941,    22,   791,   334,
1703 >     798,   942,    23,  1179,  1180,  1181,   943,    24,  1182,  1183,
1704 >      25,  1184,  1185,   799,  1186,  1230,  1187,   792,   793,  1188,
1705 >     794,  1189,  1190,   795,   800,   801,   803,  1191,   832,   806,
1706 >     807,  1192,   808,   809,   819,  1193,  1194,  1195,   820,   821,
1707 >      82,   822,  1196,   900,   901,   902,  1231,  1197,   903,   904,
1708 >     823,   905,   906,   824,   907,  1232,   908,   825,   826,   909,
1709 >     827,   910,   911,   828,  1233,    83,    84,   912,   829,   833,
1710 >     835,   913,    85,   830,   831,   914,   915,   916,   836,   838,
1711 >     840,   841,   917,   842,   843,   845,   849,   918,  1234,   852,
1712 >    1235,  1236,   853,   848,   856,   854,   859,   855,   865,   868,
1713 >      86,    87,    88,    89,  1237,   857,   858,   860,   861,   862,
1714 >     863,   968,  1238,   866,   867,    90,    91,    92,   869,   870,
1715 >     871,   872,    93,    94,    95,   873,    96,   874,   875,   876,
1716 >     877,   878,   879,   880,   881,   882,   883,   884,   885,   886,
1717 >     887,   888,   889,   890,   891,   892,   893,   894,   895,   896,
1718 >     966,   897,   946,   947,   948,   949,   950,   951,   952,   953,
1719 >     954,   955,   956,   957,   958,   959,   960,   961,   962,   963,
1720 >     964,   965,   969,   967,   970,   971,   972,   973,   974,   975,
1721 >     976,   977,   978,   979,   981,   980,   984,   987,   985,   986,
1722 >     988,   990,   991,   992,   989,   993,   994,   995,   997,  1000,
1723 >     996,   998,   999,  1001,  1002,  1003,  1029,  1042,  1004,  1005,
1724 >    1006,  1043,  1044,  1045,  1048,  1050,   737,   558,   302,  1306,
1725 >     797,  1287,  1007,  1008,  1009,  1010,   569,  1255,  1011,  1012,
1726 >    1013,  1014,  1015,  1016,  1017,  1018,  1019,  1020,  1021,  1022,
1727 >    1023,  1024,  1025,  1026,  1027,  1028,   750,  1031,  1032,  1030,
1728 >    1046,  1047,  1049,  1051,  1059,  1060,  1061,  1258,  1066,  1067,
1729 >    1068,  1069,  1070,  1071,  1072,  1073,  1074,  1080,  1081,  1082,
1730 >    1270,  1083,  1084,  1085,  1086,  1087,  1088,  1093,  1094,  1281,
1731 >    1095,  1096,  1282,  1283,  1284,  1097,  1285,  1286,  1098,  1288,
1732 >    1277,  1099,  1100,  1101,  1223,  1102,  1280,   729,  1256,  1103,
1733 >    1104,  1109,   631,  1279,   718,  1110,   756,  1123,   805,  1303,
1734 >     787,   649,  1289,  1278,   394,  1124,  1125,  1126,  1137,   448,
1735 >     318,   722,   490,  1127,  1128,  1129,  1130,  1131,     0,  1140,
1736 >     653,  1141,  1138,  1142,  1143,  1171,  1172,  1173,  1174,  1200,
1737 >    1201,  1202,  1203,  1204,  1205,  1218,   659,  1249,  1224,  1219,
1738 >    1220,  1225,  1226,  1227,  1228,  1241,  1257,  1250,     0,     0,
1739 >       0,     0,  1259,  1260,  1261,  1262,  1263,  1273,  1274,  1290,
1740 >    1291,  1292,   540,     0,     0,     0,     0,     0,     0,     0,
1741         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1742         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1743         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1744 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2134 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2135 <       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2136 <       0,   629
1744 >       0,     0,   584
1745   };
1746  
2139 #define yypact_value_is_default(Yystate) \
2140  (!!((Yystate) == (-705)))
2141
2142 #define yytable_value_is_error(Yytable_value) \
2143  YYID (0)
2144
1747   static const yytype_int16 yycheck[] =
1748   {
1749 <     610,   611,   304,   305,     1,     1,     8,   105,   224,     1,
1750 <     312,     1,   228,     1,   226,     1,     1,     1,    40,     1,
1751 <       1,   224,   224,     1,     1,   228,   228,     1,     1,     1,
1752 <       1,     3,    17,     5,     1,   224,   224,    14,   224,   228,
1753 <     228,    63,    24,    65,     1,    17,   224,    32,    36,    31,
1754 <     228,    36,   224,   226,   224,   224,   228,     1,   228,   228,
1755 <      32,   224,     1,   224,    36,   228,   224,   228,   227,    57,
1756 <     228,   226,    62,    17,    62,    51,    62,   224,    62,   224,
1757 <     224,   228,     1,   228,   228,    57,   108,    59,    32,    62,
1758 <     224,   225,    36,   226,     9,    10,    11,    69,   226,   401,
1759 <     402,    93,     1,   167,   168,   203,     1,   409,     1,   411,
1760 <      95,     1,   226,    95,    95,    93,   418,    36,   226,   421,
1761 <       1,    95,    99,    95,    95,   226,     1,   119,    95,   431,
1762 <     432,     6,     7,   118,   122,   125,   226,    12,    57,   441,
1763 <     442,   119,   444,    62,   125,    20,   226,    37,   125,   134,
1764 <     122,    26,   125,    28,    29,    30,    95,   226,   180,   181,
1765 <      35,    51,    52,    53,    54,    55,    41,    42,   125,    44,
1766 <      45,    46,   226,     1,   118,    50,     1,   158,   226,   151,
1767 <      70,    56,   126,   127,   158,    60,    61,    15,    16,    64,
1768 <     105,    19,     1,   215,   139,   140,    95,   199,    73,    24,
1769 <      95,   158,    95,   122,     1,    80,   178,    82,    36,    84,
1770 <     226,    86,    87,    88,    95,   200,   160,   226,   194,   158,
1771 <     217,   217,   226,   199,   167,   168,   223,   223,   103,   225,
1772 <     215,   533,   226,    58,   109,   110,   111,   225,   113,   225,
1773 <     225,   116,   117,   225,   225,   120,   218,   225,   225,    77,
1774 <      78,    79,   225,   225,   225,    83,    81,   226,   215,   158,
1775 <      85,    89,    90,   158,   226,   158,     1,    95,   225,   227,
1776 <      95,   215,    97,    98,   139,   140,   215,   158,   106,   107,
1777 <     155,   225,    17,   223,   159,   226,   225,   162,   163,   164,
1778 <     165,   166,     1,   121,   169,   170,   598,    32,    95,   185,
1779 <     186,    36,   604,   605,     1,    14,   227,   609,   133,   227,
1780 <     135,   136,   137,   138,    91,    92,   125,     1,   227,     3,
1781 <     227,     5,   150,   222,    21,    22,   225,   222,   125,   154,
1782 <      27,   227,   225,    17,   215,   225,   211,   212,   213,     1,
1783 <     227,   216,  1046,  1047,  1048,   227,   221,   227,    32,   158,
1784 <     225,   227,    36,   178,   789,   790,   791,   792,   793,   794,
1785 <     795,   158,    24,   188,   192,   227,   227,   227,   227,    31,
1786 <      67,    68,   227,    57,   227,    59,   227,    74,    75,    76,
1787 <     227,   227,   227,   118,   227,    69,   227,   227,   227,   227,
1788 <      99,   126,   127,   218,   219,   227,   227,   225,   227,   226,
1789 <     225,   227,   224,     1,   101,   102,   215,   227,     6,     7,
1790 <     227,    95,   227,   227,    12,   227,   125,   114,   115,   227,
1791 <       1,   227,    20,   227,   227,   160,   227,   124,    26,   227,
1792 <      28,    29,    30,    95,   227,   132,    17,    35,   122,   227,
1793 <     227,   227,   227,    41,    42,     1,    44,    45,    46,   227,
1794 <     123,    32,    50,   227,   227,    36,   227,   105,    56,   227,
1795 <     227,   227,    60,    61,   227,   227,    64,   151,    24,   227,
1796 <     227,   227,   227,   227,   227,    73,   227,   227,   227,   227,
1797 <     215,   224,    80,   227,    82,   227,    84,    13,    86,    87,
1798 <      88,   227,   224,   227,   178,   143,   144,   145,   146,   147,
1799 <     148,   149,    58,   227,   227,   103,   227,    33,  1118,   227,
1800 <     227,   109,   110,   111,    95,   113,   227,    43,   116,   117,
1801 <     227,   227,   120,    49,   227,    81,   227,   227,   225,    85,
1802 <     123,   227,   227,   227,   218,   227,   227,   118,   227,    95,
1803 <      66,    97,    98,   123,   227,   227,   227,   227,     4,   227,
1804 <     227,     1,   224,   134,   105,   105,   167,   155,   105,   105,
1805 <     105,   159,   105,   167,   162,   163,   164,   165,   166,    25,
1806 <      96,   169,   170,   167,   105,   167,   167,   133,   104,   135,
1807 <     136,   137,   138,   224,    40,   224,   123,    37,   224,   227,
1808 <     227,    47,   227,   227,   227,   227,   227,   227,   154,   227,
1809 <     227,    51,    52,    53,    54,    55,   227,   227,    65,    65,
1810 <     227,     1,   227,   211,   212,   213,   142,   227,   216,   200,
1811 <      70,   227,   178,   221,   227,    15,    16,   227,   227,    19,
1812 <     227,   227,   188,   167,   215,   161,   105,    93,   227,   227,
1813 <     227,   227,   227,   227,   100,    51,    36,     0,     1,   227,
1814 <     227,     4,   224,   227,   227,   167,   112,   167,   105,   123,
1815 <     167,    14,   218,   219,    17,    18,   167,   105,   105,   105,
1816 <      23,   167,   167,   129,   130,   131,   167,   105,   105,   105,
1817 <     105,    34,   208,    51,   141,    38,    39,    77,    78,    79,
1818 <     105,   105,   167,    83,   167,    48,   167,   227,   227,    89,
1819 <      90,   167,   167,   123,   167,    95,   167,   167,   167,   167,
1820 <      63,   224,    51,   167,   167,   172,   106,   107,    71,    72,
1821 <     224,   227,   227,   167,   181,   181,   123,   227,   227,   227,
1822 <     187,   121,   224,   227,   227,   191,   123,   227,   227,   227,
1823 <     196,    94,   227,   227,    65,   202,   202,   204,   205,   227,
1824 <     206,   227,   224,   209,   224,   108,   224,   214,   214,   167,
1825 <     150,   123,   167,   220,   220,   227,   167,   173,   174,   175,
1826 <     176,   177,   227,   179,   180,   227,   182,   183,   184,   227,
1827 <     123,   187,   224,   189,   190,   191,   227,   193,   141,   195,
1828 <     167,   197,   198,   227,   227,   201,   167,   167,   105,   152,
1829 <     153,   207,   192,   156,   157,   173,   174,   175,   176,   177,
1830 <     105,   179,   180,   224,   182,   183,   184,   123,   123,   187,
1831 <     141,   189,   190,   191,   123,   193,   123,   195,   224,   197,
1832 <     198,   123,   123,   201,   173,   174,   175,   176,   177,   207,
1833 <     179,   180,   123,   182,   183,   184,   123,   105,   187,     1,
1834 <     189,   172,   191,   123,   193,   123,   195,   210,   197,   198,
1835 <     181,   224,   201,   227,   123,   224,   187,   227,   207,    21,
1836 <      22,   227,   224,   224,   224,    27,   224,   224,   224,   224,
1837 <     224,   202,   224,   204,   205,   105,   224,   224,   224,   224,
1838 <     224,   224,   224,   214,   224,   224,   105,   105,   105,   220,
1839 <     227,   105,   105,   105,   123,   105,   105,   224,   123,   123,
1840 <     167,   227,   123,   123,   105,    67,    68,   123,   123,   227,
1841 <     224,   224,    74,    75,    76,   123,   123,   123,   123,   123,
1842 <     224,   123,   105,   123,   224,   224,   224,   224,   224,   224,
1843 <     224,   224,   224,   123,   224,   224,   224,   123,   224,   101,
1844 <     102,   224,   224,   224,   167,   224,   123,   224,   224,   224,
1845 <     224,   224,   114,   115,   224,   227,   123,   123,   224,   224,
1846 <     224,   224,   124,   224,   224,   224,   224,   224,   224,   224,
1847 <     132,   224,   224,   224,   224,   224,   224,   224,   224,   224,
1848 <     224,   224,   224,   224,   224,   224,   224,   123,   123,   224,
1849 <     227,   227,   123,   123,   105,   123,   224,   224,   224,   167,
1850 <     123,   123,   224,   123,   123,   123,   123,   123,   123,   123,
1851 <     123,  1008,    71,  1006,  1259,   269,   227,   508,   128,  1204,
1852 <     968,  1231,  1229,   128,   227,   224,   224,   224,   224,   224,
1853 <     224,   224,   224,   224,   105,   224,   224,   224,  1219,   224,
1854 <     224,  1113,   224,   224,   224,   224,   224,   123,   224,   224,
1855 <     224,   224,   224,   484,   224,   459,   227,  1215,   227,   224,
1856 <     224,   224,  1209,   224,   224,   224,   224,   224,   224,   224,
1857 <     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
1858 <     224,   224,   224,   224,   224,   224,   224,   224,   171,   522,
1859 <     224,   224,   224,  1233,  1235,   224,  1217,   224,   224,   224,
1860 <     224,   334,   112,   224,   560,  1211,   474,   568,   165,  1080,
1861 <      91,   396,   224,   384,  1078,   224,   224,   224,   224,    -1,
1862 <     224,   224,   224,   220,   224,    -1,    -1,   228,   227,   227,
1863 <     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
1864 <     224,    -1,   224,   224,    -1,   224,   224,   227,    -1,   224,
1865 <     224,   228,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1866 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   242,
1867 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1868 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1869 <      -1,    -1,    -1,    -1,    -1,    -1,   292,    -1,    -1,    -1,
1870 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2269 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2270 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2271 <      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1749 >     628,   629,   304,     1,     8,   307,   308,   309,     1,   311,
1750 >     312,     1,     1,   109,    53,     1,     1,   212,     1,     1,
1751 >       1,   216,   233,     1,   212,     1,     1,   233,   216,     1,
1752 >     231,     1,     1,    19,   235,     1,   233,    30,     1,   233,
1753 >       1,   233,     1,     1,   233,    38,     1,     1,     6,     7,
1754 >     231,     9,    10,    39,   235,     1,    14,   231,    41,   231,
1755 >     231,   235,   231,   235,   235,    23,    24,    25,     1,    41,
1756 >     233,   231,   231,   234,    32,   235,   235,    35,    36,    37,
1757 >      65,    67,    49,    65,    65,    43,   125,    57,   231,     1,
1758 >     231,   232,   235,     1,     1,    65,   233,    67,    81,    65,
1759 >      98,   403,    60,   405,   406,   179,   180,   409,   101,    81,
1760 >     206,   101,   101,    71,   416,   101,    74,    75,   233,   421,
1761 >      81,   233,   120,   101,    82,   101,   101,   231,   430,   431,
1762 >      88,   235,    90,   119,    92,    98,    94,     1,    96,    97,
1763 >     442,   443,   444,   126,   126,   126,   101,   101,     1,   107,
1764 >       1,   126,     1,   123,   126,   113,   114,   120,   116,   117,
1765 >     118,   233,   233,   121,   233,   151,   152,   126,   101,     1,
1766 >      34,     3,   231,     5,   231,    28,   235,    30,   235,   168,
1767 >      44,    45,    46,   233,   233,    49,    50,    19,   146,   101,
1768 >      54,    55,    56,   101,   101,     1,   200,   186,   156,   157,
1769 >     158,   159,   160,   161,   162,    58,   175,    39,  1075,  1076,
1770 >    1077,    17,    18,   202,   175,    68,    22,   203,   233,   126,
1771 >       1,   233,   233,   233,   191,    57,   233,    59,   233,   175,
1772 >     532,     1,    81,   200,   232,    67,    89,   223,    19,   232,
1773 >      93,   227,   220,   232,   220,   223,   232,    79,   101,   232,
1774 >     232,   104,   105,   222,   232,   213,   214,   232,    39,   217,
1775 >     218,    67,   232,   232,   223,   220,   232,     1,   226,   101,
1776 >     228,   232,   234,   232,   232,   126,   222,   232,   232,    85,
1777 >      86,   134,   233,   231,   196,    91,    67,   220,   196,    95,
1778 >     223,   123,    26,    27,   234,   101,   234,   150,   234,    33,
1779 >     153,   154,   155,   234,   110,   111,   112,   234,   220,   234,
1780 >     142,   234,   220,   234,   234,   617,   122,   234,   620,   151,
1781 >     622,    11,    12,    13,   232,   627,   175,    61,    62,    63,
1782 >      64,   101,   164,   234,   234,   234,   234,   143,   119,     1,
1783 >     234,   234,    76,    77,    78,   647,   127,   128,   201,    83,
1784 >      84,    85,   234,    87,     1,   234,   234,   234,   234,     6,
1785 >       7,   234,     9,    10,   234,     1,   147,    14,   232,   201,
1786 >     231,   234,   223,     1,     1,   234,    23,    24,    25,   232,
1787 >     234,   231,   188,   215,    70,    32,    72,   234,    35,    36,
1788 >      37,    19,    19,   234,    30,    57,    43,   234,   168,   234,
1789 >     232,   234,    38,    65,   234,    67,   234,   234,   234,   234,
1790 >     234,    39,    39,    60,   234,   234,   186,   234,   234,   109,
1791 >     234,   234,   234,   234,    71,   234,   232,    74,    75,   115,
1792 >     234,   234,   202,   234,   234,    82,   234,     4,   234,    67,
1793 >      67,    88,   223,    90,   234,    92,   132,    94,   234,    96,
1794 >      97,   232,   109,    20,    21,   234,   234,   234,   234,   234,
1795 >     107,   123,   234,   234,    31,   101,   113,   114,    15,   116,
1796 >     117,   118,   234,   101,   121,   234,   234,   234,   135,   136,
1797 >     137,   138,   139,   140,   141,   171,   172,   234,   234,   234,
1798 >     234,   119,   119,    40,   234,   234,   234,   234,   232,   146,
1799 >     127,   128,    69,    70,   234,    72,   234,   234,   234,   156,
1800 >     157,   158,   159,   160,   161,   162,   234,   234,   234,   234,
1801 >     147,   234,   234,   151,   152,   234,    73,   234,   234,   175,
1802 >     234,    98,   124,   124,   124,   231,   109,   223,   109,   106,
1803 >     212,   109,   231,   229,   109,     1,   109,   109,   109,   109,
1804 >       1,   231,     3,   234,     5,   102,   103,   234,   234,   234,
1805 >     234,   108,   129,   234,   131,   132,   213,   214,    19,   234,
1806 >     217,   218,    28,   234,    30,   203,     1,   212,   234,   226,
1807 >     234,   228,   149,   234,   234,   234,   133,   231,    39,   234,
1808 >     124,   234,  1220,   234,   234,   223,   223,   234,   231,   227,
1809 >     234,   148,    58,   234,   234,   172,    57,   109,    59,    34,
1810 >     177,   234,    68,   234,   181,   234,    67,   234,   185,    44,
1811 >      45,    46,   234,   190,    49,    50,   234,   194,    79,    54,
1812 >      55,    56,   234,    89,   234,   234,   234,    93,   205,   234,
1813 >     207,   208,   212,   210,   109,   101,   212,   109,   104,   105,
1814 >     101,   109,     1,   212,   221,     0,     1,    72,   212,     4,
1815 >     109,   109,   229,   109,   211,   109,   109,   109,    17,    18,
1816 >     109,    16,   123,    22,    19,   109,    21,   109,   134,    42,
1817 >     212,   234,   234,   230,    29,   212,    49,   212,    51,    52,
1818 >     212,   142,   212,   212,   150,   212,    41,   153,   154,   155,
1819 >     151,   212,    47,    48,   810,   811,   812,   813,   814,   815,
1820 >     816,   212,   109,   164,   212,   109,   231,   132,    67,   231,
1821 >      42,    66,   231,   124,   234,    70,   234,    49,   234,    51,
1822 >      52,   234,   124,   212,   234,    80,    85,    86,   234,   234,
1823 >     234,   234,    91,   234,   234,   201,    95,   234,   163,   231,
1824 >     201,   231,   101,   234,    99,   100,   234,   172,   231,   234,
1825 >      42,   110,   111,   112,   215,   234,   181,    49,   234,   124,
1826 >     115,   234,   212,   122,   234,   234,   212,   234,   231,   234,
1827 >     234,   124,   234,   212,   234,   212,   212,   132,   109,   124,
1828 >     205,   212,   207,   208,   143,    72,   231,   124,   109,   144,
1829 >     145,   109,   165,   166,   167,   124,   221,   170,   171,   124,
1830 >     173,   174,   124,   176,   229,   178,   234,   124,   181,   124,
1831 >     183,   184,   124,   124,   169,   124,   189,   124,   231,   231,
1832 >     193,   212,   231,   233,   197,   198,   199,   182,   231,   188,
1833 >     124,   204,   187,   165,   166,   167,   209,   192,   170,   171,
1834 >     195,   173,   174,   231,   176,   132,   178,   234,   234,   181,
1835 >     234,   183,   184,   234,   231,   234,   234,   189,   109,   231,
1836 >     231,   193,   231,   231,   231,   197,   198,   199,   231,   231,
1837 >       1,   231,   204,   165,   166,   167,   163,   209,   170,   171,
1838 >     231,   173,   174,   231,   176,   172,   178,   231,   231,   181,
1839 >     231,   183,   184,   231,   181,    26,    27,   189,   231,   109,
1840 >     234,   193,    33,   231,   231,   197,   198,   199,   109,   109,
1841 >     124,   109,   204,   109,   109,   109,   124,   209,   205,   124,
1842 >     207,   208,   212,   231,   234,   124,   109,   124,   231,   231,
1843 >      61,    62,    63,    64,   221,   124,   124,   124,   124,   124,
1844 >     124,   234,   229,   124,   124,    76,    77,    78,   231,   124,
1845 >     124,   231,    83,    84,    85,   231,    87,   231,   231,   231,
1846 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1847 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1848 >     124,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1849 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1850 >     231,   231,   124,   212,   109,   124,   124,   124,   231,   124,
1851 >     124,   231,   124,   124,   109,   234,   231,   124,   231,   231,
1852 >     124,   124,   212,   234,   231,   124,   124,   124,   234,   231,
1853 >     212,   124,   124,   124,   124,   124,   124,   124,   231,   231,
1854 >     231,   124,   124,   124,   124,   124,   494,   265,    77,  1305,
1855 >     576,  1265,   231,   231,   231,   231,   285,   109,   231,   231,
1856 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1857 >     231,   231,   231,   231,   231,   231,   509,   231,   231,   234,
1858 >     231,   231,   234,   231,   231,   231,   231,   236,   231,   231,
1859 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1860 >     124,   231,   231,   231,   231,   231,   231,   231,   231,   130,
1861 >     231,   231,   132,   130,   132,   231,   130,   130,   231,  1267,
1862 >    1243,   231,   231,   231,  1037,   231,  1254,   481,  1138,   231,
1863 >     231,   231,   335,  1252,   458,   231,   525,   231,   589,  1276,
1864 >     562,   368,  1269,  1248,   118,   231,   231,   231,   219,   168,
1865 >      97,   471,   221,   231,   231,   231,   231,   231,    -1,   231,
1866 >     388,   231,   235,   231,   231,   231,   231,   231,   231,   231,
1867 >     231,   231,   231,   231,   231,   231,   398,  1106,   231,   234,
1868 >     234,   231,   231,   231,   231,   231,   231,  1108,    -1,    -1,
1869 >      -1,    -1,   236,   236,   236,   236,   236,   234,   231,   231,
1870 >     231,   231,   238,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1871        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1872        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1873        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1874 <      -1,   366
1874 >      -1,    -1,   293
1875   };
1876  
1877 < /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1878 <   symbol of state STATE-NUM.  */
1877 >  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1878 >     symbol of state STATE-NUM.  */
1879   static const yytype_uint16 yystos[] =
1880   {
1881 <       0,   230,     0,     1,     4,    14,    17,    18,    23,    34,
1882 <      38,    39,    48,    63,    71,    72,    94,   108,   141,   152,
1883 <     153,   156,   157,   210,   231,   236,   241,   265,   271,   285,
1884 <     303,   326,   340,   355,   362,   366,   376,   385,   405,   415,
1885 <     421,   425,   435,   492,   509,   224,   225,   226,   226,   304,
1886 <     386,   416,   226,   426,   226,   341,   406,   327,   226,   226,
1887 <     286,   356,   226,   226,   367,   377,   226,     1,    24,    31,
1888 <      95,   266,   267,   268,   269,   270,     1,    21,    22,    27,
1889 <      67,    68,    74,    75,    76,   101,   102,   114,   115,   124,
1890 <     132,   493,   494,   495,   496,   497,   498,   499,   500,   501,
1891 <     502,   503,   504,   505,   506,   507,   508,   226,   226,   226,
1892 <       1,    62,   422,   423,   424,   226,     1,     6,     7,    12,
1893 <      20,    26,    28,    29,    30,    35,    41,    42,    44,    45,
1894 <      46,    50,    56,    60,    61,    64,    73,    80,    82,    84,
1895 <      86,    87,    88,   103,   109,   110,   111,   113,   116,   117,
1896 <     120,   155,   159,   162,   163,   164,   165,   166,   169,   170,
1897 <     211,   212,   213,   216,   221,   436,   437,   438,   439,   440,
1898 <     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
1899 <     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
1900 <     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
1901 <     471,   472,   473,   474,   475,   476,   477,   478,   479,   480,
1902 <     481,   485,   489,   490,   491,   226,   226,   226,     1,   217,
1903 <     272,   273,   274,   275,   276,     1,    93,   119,   237,   238,
1904 <     239,   240,   226,   226,     1,    37,    51,    52,    53,    54,
1905 <      55,    70,   510,   511,   512,   513,   514,   515,   516,   517,
1906 <     518,     1,    24,    58,    81,    85,    95,    97,    98,   133,
1907 <     135,   136,   137,   138,   154,   178,   188,   218,   219,   242,
1908 <     243,   244,   245,   250,   251,   252,   253,   254,   255,   256,
1909 <     257,   258,   259,   260,   261,   262,   263,   264,   226,   226,
1910 <       1,    95,   363,   364,   365,   224,   227,   227,   227,   225,
1911 <     267,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1912 <     227,   227,   227,   227,   227,   225,   494,     1,    15,    16,
1913 <      19,    36,    77,    78,    79,    83,    89,    90,    95,   106,
1914 <     107,   121,   150,   192,   305,   306,   307,   308,   309,   310,
1915 <     311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
1916 <     321,   322,     1,     3,     5,    17,    32,    36,    57,    59,
1917 <      69,    95,   122,   151,   178,   218,   387,   388,   389,   390,
1918 <     391,   392,   393,   394,   395,   396,   400,   401,   402,   403,
1919 <     404,     1,    62,   125,   417,   418,   419,   420,   227,   225,
1920 <     423,     1,    95,   125,   158,   427,   431,   432,   433,   434,
1921 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1922 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1923 <     227,   227,   227,   227,   227,   227,   227,   227,   486,   227,
1924 <     482,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1925 <     227,   227,   227,   227,   227,   227,   227,   227,   225,   437,
1926 <       1,    17,    32,    36,   118,   126,   127,   160,   215,   342,
1927 <     343,   344,   345,   346,   347,   348,   352,   353,   354,     1,
1928 <     125,   158,   215,   407,   411,   412,   413,   414,     1,    36,
1929 <      57,    62,   122,   328,   332,   333,   334,   338,   339,   224,
1930 <     227,   225,   273,   223,   224,   227,   227,   225,   238,     1,
1931 <      17,    32,    36,    95,   118,   134,   200,   215,   287,   288,
1932 <     289,   290,   291,   292,   293,   294,   295,   299,     1,    14,
1933 <      99,   125,   357,   358,   359,   360,   361,   227,   227,   227,
1934 <     227,   227,   227,   227,   225,   511,   224,   227,   227,   227,
1935 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1936 <     227,   227,   227,   227,   225,   243,     1,    95,   158,   215,
1937 <     368,   369,   370,   371,   372,     1,    95,   158,   378,   379,
1938 <     380,   381,   227,   225,   364,   123,   123,   123,   224,   105,
1939 <     105,   167,   105,   233,   233,   105,   105,   105,   167,   167,
1940 <     105,   233,   167,   167,   224,   224,   227,   227,   227,   323,
1941 <     227,   227,   227,   227,   227,   227,   227,   227,   227,   227,
1942 <     227,   227,   225,   306,   224,   227,   227,   227,   227,   397,
1943 <     227,   227,   227,   227,   227,   227,   227,   227,   225,   388,
1944 <     227,   227,   225,   418,   123,   224,   227,   227,   428,   225,
1945 <     432,   167,   233,   233,   105,   167,   167,   105,   123,   167,
1946 <     233,   167,   233,   105,   105,   105,   167,   167,   167,   233,
1947 <     105,   105,   233,   105,   105,   105,   105,   167,   167,   227,
1948 <     167,   227,   233,   233,   167,   167,   167,   167,   167,   168,
1949 <     167,   168,   167,   167,   233,   233,   123,   233,   167,   167,
1950 <     167,   224,   224,   227,   227,   349,   227,   227,   227,   227,
1951 <     227,   225,   343,   227,   408,   227,   225,   412,   224,   329,
1952 <     227,   227,   227,   225,   333,   167,   224,   226,   123,   123,
1953 <     224,   224,   227,   227,   300,   227,   227,   227,   296,   227,
1954 <     225,   288,   224,   227,   227,   227,   225,   358,   167,   167,
1955 <     123,   167,   167,   167,   233,   224,   123,   167,   105,   105,
1956 <     123,   123,   123,   123,   123,   123,   139,   140,   246,   247,
1957 <     139,   140,   248,   249,   123,   123,   105,   123,   123,   224,
1958 <     224,   227,   373,   227,   225,   369,   224,   227,   382,   225,
1959 <     379,   123,   224,   224,   224,   224,   224,   224,   224,   143,
1960 <     144,   145,   146,   147,   148,   149,   232,   233,   224,   224,
1961 <     224,   224,   224,   224,   224,   224,   224,   224,   224,   105,
1962 <     105,   233,   227,   105,   105,   105,   105,   233,   233,   123,
1963 <     105,   105,   233,   105,   235,   235,   224,   123,   185,   186,
1964 <     123,   167,   227,   123,   123,   123,   123,   105,   123,   123,
1965 <     123,   224,   123,   123,   224,   224,   123,   123,   227,   224,
1966 <     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
1967 <     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
1968 <     224,   224,   224,   224,   224,   224,   224,   224,    51,   173,
1969 <     174,   175,   176,   177,   179,   180,   182,   183,   184,   187,
1970 <     189,   190,   191,   193,   195,   197,   198,   201,   207,   487,
1971 <     488,   224,    51,   173,   174,   175,   176,   177,   179,   180,
1972 <     182,   183,   184,   187,   189,   191,   193,   195,   197,   198,
1973 <     201,   207,   483,   484,   224,   224,   224,   224,   224,   224,
1974 <     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
1975 <     224,   224,   224,   123,   167,   227,   123,   105,   123,   123,
1976 <     123,   224,   123,   227,   123,   224,   227,   123,   123,   105,
1977 <     336,   337,   224,   224,     1,    95,   158,   222,   277,   278,
1978 <     279,   280,   281,   224,   224,   123,   167,   227,   123,   123,
1979 <     123,   227,   123,   224,   123,   123,   123,   224,   224,   224,
1980 <     224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
1981 <     224,   224,   224,   224,   224,   224,   228,   224,   228,   224,
1982 <     224,   224,   224,   224,   123,   227,   123,   224,   123,   227,
1983 <     224,   224,   232,   232,   232,   232,   232,   232,   232,   224,
1984 <     224,   224,    91,    92,   324,   325,   224,   224,   224,   224,
1985 <     224,   224,   224,   224,   224,   224,     9,    10,    11,   234,
1986 <     235,   224,   224,   224,   224,   224,   224,   224,     8,   199,
1987 <     398,   399,   224,   224,   224,   224,   224,   224,   224,   224,
1988 <     224,   224,   224,   224,   128,   429,   430,   224,   228,   224,
1989 <     228,   224,   224,    13,    33,    43,    49,    66,    96,   104,
1990 <     142,   161,   208,   350,   351,   224,   224,   224,   224,   224,
1991 <     224,   128,   409,   410,   224,    51,   194,   199,   330,   331,
1992 <     224,   224,   171,   228,   335,   224,   227,   282,   227,   225,
1993 <     278,   224,   224,     4,    25,    40,    47,    65,    93,   100,
1994 <     112,   129,   130,   131,   181,   191,   196,   202,   206,   209,
1995 <     214,   220,   301,   302,   224,   224,   224,    51,   173,   174,
1996 <     175,   176,   177,   179,   180,   182,   183,   184,   187,   189,
1997 <     190,   191,   193,   195,   197,   198,   201,   207,   297,   298,
1998 <     224,   224,   224,   224,   247,   249,   224,    65,   141,   172,
1999 <     181,   187,   202,   204,   205,   214,   220,   374,   375,   224,
2000 <     224,    65,   141,   172,   181,   187,   202,   204,   205,   214,
2001 <     220,   383,   384,   224,   228,   234,   234,   234,   224,   228,
2002 <     224,   228,   488,   484,   224,   228,   224,   228,   224,   228,
2003 <     105,   337,   224,   123,   227,   203,   235,   224,   224,   228,
2004 <     224,   228,   224,   228,   224,   228,   325,   399,   430,   351,
2005 <     410,   331,   224,    40,    63,    65,   108,   180,   181,   215,
2006 <     283,   284,   224,   224,   302,   298,   375,   384,   224,   228,
2007 <     284
1881 >       0,   238,     0,     1,     4,    16,    19,    21,    29,    41,
1882 >      47,    48,    66,    70,    80,    99,   100,   115,   132,   144,
1883 >     145,   169,   182,   187,   192,   195,   239,   244,   249,   267,
1884 >     273,   279,   287,   301,   321,   343,   357,   372,   379,   383,
1885 >     393,   402,   424,   430,   436,   440,   446,   500,   517,   231,
1886 >     232,   233,   233,   322,   403,   431,   233,   441,   233,   358,
1887 >     425,   344,   233,   274,   302,   373,   233,   233,   394,   233,
1888 >     280,   233,   384,     1,    30,    38,   101,   268,   269,   270,
1889 >     271,   272,     1,    26,    27,    33,    61,    62,    63,    64,
1890 >      76,    77,    78,    83,    84,    85,    87,   501,   502,   503,
1891 >     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
1892 >     514,   515,   516,   233,   233,   233,     1,    65,   437,   438,
1893 >     439,   233,     1,     6,     7,     9,    10,    14,    23,    24,
1894 >      25,    32,    35,    36,    37,    43,    60,    71,    74,    75,
1895 >      82,    88,    90,    92,    94,    96,    97,   107,   113,   114,
1896 >     116,   117,   118,   121,   146,   156,   157,   158,   159,   160,
1897 >     161,   162,   213,   214,   217,   218,   226,   228,   447,   448,
1898 >     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
1899 >     459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
1900 >     469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
1901 >     479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
1902 >     492,   496,   497,   498,   499,   233,   233,   233,     1,    98,
1903 >     120,   245,   246,   247,   248,   233,   233,   233,     1,    34,
1904 >      44,    45,    46,    49,    50,    54,    55,    56,   518,   519,
1905 >     520,   521,   522,   523,   524,   525,   526,   527,   528,     1,
1906 >      28,    30,    58,    68,    89,    93,   101,   104,   105,   134,
1907 >     150,   153,   154,   155,   201,   250,   251,   252,   253,   254,
1908 >     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1909 >     265,   266,   233,     1,   222,   288,   289,   290,   291,   292,
1910 >     233,     1,   101,   380,   381,   382,   233,   231,   234,   234,
1911 >     234,   232,   269,   234,   234,   234,   234,   234,   234,   234,
1912 >     234,   234,   234,   234,   234,   234,   234,   232,   502,     1,
1913 >      17,    18,    22,    67,    85,    86,    91,    95,   101,   110,
1914 >     111,   112,   122,   143,   188,   323,   324,   325,   326,   327,
1915 >     328,   329,   330,   331,   332,   333,   334,   335,   336,   337,
1916 >     338,   339,     1,     3,     5,    19,    39,    57,    59,    67,
1917 >      79,   101,   123,   142,   151,   164,   201,   215,   404,   405,
1918 >     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
1919 >     419,   420,   421,   422,   423,     1,    65,   126,   432,   433,
1920 >     434,   435,   234,   232,   438,     1,   101,   126,   442,   443,
1921 >     444,   445,   234,   234,   234,   234,   234,   234,   234,   234,
1922 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1923 >     234,   234,   234,   234,   234,   234,   234,   493,   489,   234,
1924 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1925 >     234,   234,   234,   234,   234,   234,   234,   232,   448,     1,
1926 >      19,    39,    67,   119,   127,   128,   147,   223,   359,   360,
1927 >     361,   362,   363,   364,   365,   369,   370,   371,     1,   126,
1928 >     223,   426,   427,   428,   429,     1,    57,    65,    67,   123,
1929 >     345,   349,   350,   351,   355,   356,   231,   234,   234,   232,
1930 >     246,     1,    81,   175,   275,   276,   277,   278,     1,    19,
1931 >      39,    67,   101,   119,   151,   152,   203,   223,   227,   303,
1932 >     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
1933 >     317,     1,    41,    81,   126,   374,   375,   376,   377,   378,
1934 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   232,
1935 >     519,   231,   234,   234,   234,   234,   234,   234,   234,   234,
1936 >     234,   234,   234,   234,   234,   234,   234,   232,   251,     1,
1937 >     101,   220,   395,   396,   397,   398,   231,   234,   232,   289,
1938 >     175,     1,   101,   168,   186,   202,   281,   282,   283,   284,
1939 >     285,   286,   234,   232,   381,     1,   101,   220,   223,   385,
1940 >     386,   387,   388,   389,   124,   124,   124,   231,   109,   109,
1941 >     241,   212,   109,   241,   241,   241,   109,   241,   241,   109,
1942 >     109,   109,   109,   231,   231,   234,   234,   234,   340,   234,
1943 >     234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
1944 >     232,   324,   231,   234,   234,   234,   234,   234,   234,   416,
1945 >     234,   234,   234,   234,   234,   234,   234,   234,   232,   405,
1946 >     234,   234,   232,   433,   124,   231,   234,   234,   232,   443,
1947 >     212,   241,   109,   241,   241,   212,   109,   241,   212,   109,
1948 >     109,   109,   212,   212,   241,   109,   109,   109,   109,   241,
1949 >     109,   109,   109,   109,   212,   234,   234,   212,   241,   241,
1950 >     212,   212,   212,   212,   216,   212,   216,   212,   212,   212,
1951 >     212,   109,   241,   241,   241,   212,   109,   231,   231,   234,
1952 >     234,   366,   234,   234,   234,   234,   234,   232,   360,   234,
1953 >     234,   232,   427,   231,   234,   234,   346,   234,   232,   350,
1954 >     124,   124,   231,   231,   234,   234,   232,   276,   231,   234,
1955 >     234,   318,   234,   234,   234,   234,   314,   234,   234,   232,
1956 >     304,   231,   234,   234,   234,   232,   375,   212,   212,   241,
1957 >     124,   212,   124,   212,   212,   212,   231,   109,   124,   212,
1958 >     124,   109,   109,   124,   124,   124,   124,   124,   124,   124,
1959 >     124,   124,   231,   231,   234,   399,   232,   396,   212,   231,
1960 >     233,   231,   234,   234,   234,   234,   232,   282,   124,   231,
1961 >     231,   234,   390,   234,   232,   386,   231,   231,   231,   231,
1962 >     135,   136,   137,   138,   139,   140,   141,   240,   241,   231,
1963 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1964 >     231,   231,   109,   109,   241,   234,   109,   241,   109,   241,
1965 >     124,   109,   109,   109,   241,   109,   243,   243,   231,   124,
1966 >     179,   180,   124,   212,   124,   124,   234,   124,   124,   109,
1967 >     124,   124,   124,   124,   241,   231,   124,   124,   231,   231,
1968 >     124,   124,   231,   231,   231,   231,   231,   231,   231,   231,
1969 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1970 >     231,   231,   231,   231,   231,   231,   231,   231,    42,    49,
1971 >     165,   166,   167,   170,   171,   173,   174,   176,   178,   181,
1972 >     183,   184,   189,   193,   197,   198,   199,   204,   209,   494,
1973 >     495,    42,    49,    51,    52,   165,   166,   167,   170,   171,
1974 >     173,   174,   176,   178,   181,   183,   184,   189,   193,   197,
1975 >     198,   199,   204,   209,   490,   491,   231,   231,   231,   231,
1976 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1977 >     231,   231,   231,   231,   231,   231,   124,   212,   234,   124,
1978 >     109,   124,   124,   124,   231,   124,   124,   231,   124,   124,
1979 >     234,   109,   353,   354,   231,   231,   231,   124,   124,   231,
1980 >     124,   212,   234,   124,   124,   124,   212,   234,   124,   124,
1981 >     231,   124,   124,   124,   231,   231,   231,   231,   231,   231,
1982 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   231,
1983 >     231,   231,   231,   231,   231,   231,   231,   231,   231,   124,
1984 >     234,   231,   231,     1,   101,   196,   220,   293,   294,   295,
1985 >     296,   297,   124,   124,   124,   124,   231,   231,   124,   234,
1986 >     124,   231,   240,   240,   240,   240,   240,   240,   240,   231,
1987 >     231,   231,    53,   125,   341,   342,   231,   231,   231,   231,
1988 >     231,   231,   231,   231,   231,    11,    12,    13,   242,   243,
1989 >     231,   231,   231,   231,   231,   231,   231,   231,   231,     8,
1990 >     200,   417,   418,   231,   231,   231,   231,   231,   231,   231,
1991 >     231,   231,   231,   231,   231,   231,   235,   231,   235,   231,
1992 >     231,    15,    40,    73,   102,   103,   108,   133,   148,   211,
1993 >     230,   367,   368,   231,   231,   231,   231,   231,   231,   231,
1994 >     231,   231,    49,   191,   200,   347,   348,   219,   235,   352,
1995 >     231,   231,   231,   231,     4,    20,    21,    31,    69,    70,
1996 >      72,    98,   106,   129,   131,   132,   149,   172,   177,   181,
1997 >     185,   190,   194,   205,   207,   208,   210,   221,   229,   319,
1998 >     320,   231,   231,   231,   231,    42,    49,    51,    52,   165,
1999 >     166,   167,   170,   171,   173,   174,   176,   178,   181,   183,
2000 >     184,   189,   193,   197,   198,   199,   204,   209,   315,   316,
2001 >     231,   231,   231,   231,   231,   231,    72,   132,   163,   172,
2002 >     181,   205,   207,   208,   221,   229,   400,   401,   231,   234,
2003 >     234,   298,   232,   294,   231,   231,   231,   231,   231,    72,
2004 >     132,   163,   172,   181,   205,   207,   208,   221,   229,   391,
2005 >     392,   231,   231,   235,   242,   242,   242,   231,   235,   495,
2006 >     491,   231,   235,   231,   235,   109,   354,   231,   236,   236,
2007 >     236,   236,   236,   236,   231,   235,   231,   235,   231,   235,
2008 >     124,   206,   243,   234,   231,   231,   235,   342,   418,   368,
2009 >     348,   130,   132,   130,   132,   130,   130,   320,   316,   401,
2010 >     231,   231,   231,    70,    72,   115,   132,   171,   172,   223,
2011 >     229,   299,   300,   392,   231,   235,   300
2012   };
2013  
2014 < #define yyerrok         (yyerrstatus = 0)
2015 < #define yyclearin       (yychar = YYEMPTY)
2016 < #define YYEMPTY         (-2)
2017 < #define YYEOF           0
2018 <
2019 < #define YYACCEPT        goto yyacceptlab
2020 < #define YYABORT         goto yyabortlab
2021 < #define YYERROR         goto yyerrorlab
2022 <
2023 <
2024 < /* Like YYERROR except do call yyerror.  This remains here temporarily
2025 <   to ease the transition to the new meaning of YYERROR, for GCC.
2026 <   Once GCC version 2 has supplanted version 1, this can go.  However,
2027 <   YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
2028 <   in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2029 <   discussed.  */
2030 <
2031 < #define YYFAIL          goto yyerrlab
2032 < #if defined YYFAIL
2033 <  /* This is here to suppress warnings from the GCC cpp's
2034 <     -Wunused-macros.  Normally we don't worry about that warning, but
2035 <     some users do, and we want to make it easy for users to remove
2036 <     YYFAIL uses, which will produce warnings from Bison 2.5.  */
2037 < #endif
2014 >  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2015 > static const yytype_uint16 yyr1[] =
2016 > {
2017 >       0,   237,   238,   238,   239,   239,   239,   239,   239,   239,
2018 >     239,   239,   239,   239,   239,   239,   239,   239,   239,   239,
2019 >     239,   239,   239,   239,   239,   239,   239,   239,   240,   240,
2020 >     241,   241,   241,   241,   241,   241,   241,   241,   242,   242,
2021 >     243,   243,   243,   243,   244,   245,   245,   246,   246,   246,
2022 >     247,   248,   249,   250,   250,   251,   251,   251,   251,   251,
2023 >     251,   251,   251,   251,   251,   251,   251,   251,   251,   251,
2024 >     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
2025 >     261,   262,   263,   264,   265,   266,   267,   268,   268,   269,
2026 >     269,   269,   269,   270,   271,   272,   274,   273,   275,   275,
2027 >     276,   276,   276,   277,   278,   280,   279,   281,   281,   282,
2028 >     282,   282,   282,   282,   283,   284,   285,   286,   287,   288,
2029 >     288,   289,   289,   289,   290,   292,   291,   293,   293,   294,
2030 >     294,   294,   294,   295,   296,   296,   298,   297,   299,   299,
2031 >     300,   300,   300,   300,   300,   300,   300,   300,   302,   301,
2032 >     303,   303,   304,   304,   304,   304,   304,   304,   304,   304,
2033 >     304,   304,   304,   305,   306,   307,   308,   309,   310,   311,
2034 >     312,   314,   313,   315,   315,   316,   316,   316,   316,   316,
2035 >     316,   316,   316,   316,   316,   316,   316,   316,   316,   316,
2036 >     316,   316,   316,   316,   316,   316,   316,   316,   318,   317,
2037 >     319,   319,   320,   320,   320,   320,   320,   320,   320,   320,
2038 >     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
2039 >     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
2040 >     320,   322,   321,   323,   323,   324,   324,   324,   324,   324,
2041 >     324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
2042 >     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
2043 >     334,   335,   336,   337,   338,   340,   339,   341,   341,   342,
2044 >     342,   344,   343,   346,   345,   347,   347,   348,   348,   348,
2045 >     349,   349,   350,   350,   350,   350,   350,   352,   351,   353,
2046 >     353,   354,   354,   355,   356,   358,   357,   359,   359,   360,
2047 >     360,   360,   360,   360,   360,   360,   360,   360,   361,   362,
2048 >     363,   364,   366,   365,   367,   367,   368,   368,   368,   368,
2049 >     368,   368,   368,   368,   368,   368,   369,   370,   371,   373,
2050 >     372,   374,   374,   375,   375,   375,   375,   376,   377,   378,
2051 >     379,   380,   380,   381,   381,   382,   384,   383,   385,   385,
2052 >     386,   386,   386,   386,   387,   388,   390,   389,   391,   391,
2053 >     392,   392,   392,   392,   392,   392,   392,   392,   392,   392,
2054 >     394,   393,   395,   395,   396,   396,   396,   397,   399,   398,
2055 >     400,   400,   401,   401,   401,   401,   401,   401,   401,   401,
2056 >     401,   401,   403,   402,   404,   404,   405,   405,   405,   405,
2057 >     405,   405,   405,   405,   405,   405,   405,   405,   405,   405,
2058 >     405,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2059 >     414,   414,   416,   415,   417,   417,   418,   418,   419,   420,
2060 >     421,   422,   423,   425,   424,   426,   426,   427,   427,   427,
2061 >     428,   429,   431,   430,   432,   432,   433,   433,   433,   434,
2062 >     435,   436,   437,   437,   438,   438,   439,   441,   440,   442,
2063 >     442,   443,   443,   443,   444,   445,   446,   447,   447,   448,
2064 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2065 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2066 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2067 >     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
2068 >     448,   448,   448,   448,   448,   449,   450,   451,   452,   453,
2069 >     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2070 >     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2071 >     474,   474,   475,   475,   476,   477,   478,   479,   480,   481,
2072 >     482,   483,   484,   485,   486,   487,   489,   488,   490,   490,
2073 >     491,   491,   491,   491,   491,   491,   491,   491,   491,   491,
2074 >     491,   491,   491,   491,   491,   491,   491,   491,   491,   491,
2075 >     491,   491,   491,   493,   492,   494,   494,   495,   495,   495,
2076 >     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
2077 >     495,   495,   495,   495,   495,   495,   495,   495,   496,   497,
2078 >     498,   499,   500,   501,   501,   502,   502,   502,   502,   502,
2079 >     502,   502,   502,   502,   502,   502,   502,   502,   502,   502,
2080 >     503,   504,   505,   506,   507,   508,   509,   510,   511,   512,
2081 >     513,   514,   515,   516,   517,   518,   518,   519,   519,   519,
2082 >     519,   519,   519,   519,   519,   519,   519,   520,   521,   522,
2083 >     523,   524,   525,   526,   527,   528
2084 > };
2085  
2086 < #define YYRECOVERING()  (!!yyerrstatus)
2086 >  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
2087 > static const yytype_uint8 yyr2[] =
2088 > {
2089 >       0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
2090 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2091 >       1,     1,     1,     1,     1,     1,     2,     2,     0,     1,
2092 >       2,     3,     3,     3,     3,     3,     3,     3,     0,     1,
2093 >       2,     3,     3,     3,     5,     2,     1,     1,     1,     2,
2094 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2095 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2096 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2097 >       4,     4,     4,     4,     4,     4,     5,     2,     1,     1,
2098 >       1,     1,     2,     4,     4,     4,     0,     6,     2,     1,
2099 >       1,     1,     2,     4,     4,     0,     6,     2,     1,     1,
2100 >       1,     1,     1,     2,     4,     4,     4,     4,     5,     2,
2101 >       1,     1,     1,     2,     4,     0,     6,     2,     1,     1,
2102 >       1,     1,     2,     4,     4,     4,     0,     5,     3,     1,
2103 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     6,
2104 >       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2105 >       1,     1,     2,     4,     4,     4,     4,     4,     4,     4,
2106 >       4,     0,     5,     3,     1,     1,     1,     1,     1,     1,
2107 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2108 >       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
2109 >       3,     1,     3,     1,     3,     1,     3,     1,     1,     1,
2110 >       1,     1,     1,     1,     1,     1,     3,     1,     1,     1,
2111 >       1,     1,     1,     1,     1,     1,     3,     3,     1,     1,
2112 >       1,     0,     6,     2,     1,     1,     1,     1,     1,     1,
2113 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2114 >       2,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2115 >       4,     4,     4,     4,     4,     0,     5,     3,     1,     1,
2116 >       1,     0,     6,     0,     5,     3,     1,     1,     1,     1,
2117 >       2,     1,     1,     1,     1,     1,     2,     0,     5,     3,
2118 >       1,     1,     3,     4,     4,     0,     6,     2,     1,     1,
2119 >       1,     1,     1,     1,     1,     1,     1,     2,     4,     4,
2120 >       4,     4,     0,     5,     3,     1,     1,     1,     1,     1,
2121 >       1,     1,     1,     1,     1,     1,     4,     4,     4,     0,
2122 >       6,     2,     1,     1,     1,     1,     2,     4,     4,     4,
2123 >       5,     2,     1,     1,     1,     4,     0,     6,     2,     1,
2124 >       1,     1,     1,     2,     4,     4,     0,     5,     3,     1,
2125 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2126 >       0,     6,     2,     1,     1,     1,     2,     4,     0,     5,
2127 >       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2128 >       1,     1,     0,     6,     2,     1,     1,     1,     1,     1,
2129 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2130 >       1,     2,     4,     4,     4,     4,     4,     4,     4,     4,
2131 >       4,     4,     0,     5,     3,     1,     1,     1,     4,     4,
2132 >       4,     4,     4,     0,     6,     2,     1,     1,     1,     1,
2133 >       4,     4,     0,     6,     2,     1,     1,     1,     1,     4,
2134 >       4,     5,     2,     1,     1,     1,     4,     0,     6,     2,
2135 >       1,     1,     1,     1,     4,     4,     5,     2,     1,     1,
2136 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2137 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2138 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2139 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2140 >       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
2141 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2142 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2143 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2144 >       4,     4,     4,     4,     4,     4,     0,     5,     3,     1,
2145 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2146 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2147 >       1,     1,     1,     0,     5,     3,     1,     1,     1,     1,
2148 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2149 >       1,     1,     1,     1,     1,     1,     1,     1,     4,     4,
2150 >       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
2151 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
2152 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
2153 >       4,     4,     4,     4,     5,     2,     1,     1,     1,     1,
2154 >       1,     1,     1,     1,     1,     1,     1,     4,     4,     4,
2155 >       4,     4,     4,     4,     4,     4
2156 > };
2157  
2438 #define YYBACKUP(Token, Value)                                  \
2439 do                                                              \
2440  if (yychar == YYEMPTY)                                        \
2441    {                                                           \
2442      yychar = (Token);                                         \
2443      yylval = (Value);                                         \
2444      YYPOPSTACK (yylen);                                       \
2445      yystate = *yyssp;                                         \
2446      goto yybackup;                                            \
2447    }                                                           \
2448  else                                                          \
2449    {                                                           \
2450      yyerror (YY_("syntax error: cannot back up")); \
2451      YYERROR;                                                  \
2452    }                                                           \
2453 while (YYID (0))
2158  
2159 < /* Error token number */
2160 < #define YYTERROR        1
2161 < #define YYERRCODE       256
2159 > #define yyerrok         (yyerrstatus = 0)
2160 > #define yyclearin       (yychar = YYEMPTY)
2161 > #define YYEMPTY         (-2)
2162 > #define YYEOF           0
2163 >
2164 > #define YYACCEPT        goto yyacceptlab
2165 > #define YYABORT         goto yyabortlab
2166 > #define YYERROR         goto yyerrorlab
2167  
2168  
2169 < /* This macro is provided for backward compatibility. */
2170 < #ifndef YY_LOCATION_PRINT
2171 < # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2172 < #endif
2169 > #define YYRECOVERING()  (!!yyerrstatus)
2170 >
2171 > #define YYBACKUP(Token, Value)                                    \
2172 >  do                                                              \
2173 >    if (yychar == YYEMPTY)                                        \
2174 >      {                                                           \
2175 >        yychar = (Token);                                         \
2176 >        yylval = (Value);                                         \
2177 >        YYPOPSTACK (yylen);                                       \
2178 >        yystate = *yyssp;                                         \
2179 >        goto yybackup;                                            \
2180 >      }                                                           \
2181 >    else                                                          \
2182 >      {                                                           \
2183 >        yyerror (YY_("syntax error: cannot back up")); \
2184 >        YYERROR;                                                  \
2185 >      }                                                           \
2186 >  while (0)
2187 >
2188 > /* Error token number */
2189 > #define YYTERROR        1
2190 > #define YYERRCODE       256
2191  
2192  
2466 /* YYLEX -- calling `yylex' with the right arguments.  */
2467 #ifdef YYLEX_PARAM
2468 # define YYLEX yylex (YYLEX_PARAM)
2469 #else
2470 # define YYLEX yylex ()
2471 #endif
2193  
2194   /* Enable debugging if requested.  */
2195   #if YYDEBUG
# Line 2478 | Line 2199 | while (YYID (0))
2199   #  define YYFPRINTF fprintf
2200   # endif
2201  
2202 < # define YYDPRINTF(Args)                        \
2203 < do {                                            \
2204 <  if (yydebug)                                  \
2205 <    YYFPRINTF Args;                             \
2206 < } while (YYID (0))
2207 <
2208 < # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2209 < do {                                                                      \
2210 <  if (yydebug)                                                            \
2490 <    {                                                                     \
2491 <      YYFPRINTF (stderr, "%s ", Title);                                   \
2492 <      yy_symbol_print (stderr,                                            \
2493 <                  Type, Value); \
2494 <      YYFPRINTF (stderr, "\n");                                           \
2495 <    }                                                                     \
2496 < } while (YYID (0))
2497 <
2498 <
2499 < /*--------------------------------.
2500 < | Print this symbol on YYOUTPUT.  |
2501 < `--------------------------------*/
2502 <
2503 < /*ARGSUSED*/
2504 < #if (defined __STDC__ || defined __C99__FUNC__ \
2505 <     || defined __cplusplus || defined _MSC_VER)
2506 < static void
2507 < yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2508 < #else
2509 < static void
2510 < yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2511 <    FILE *yyoutput;
2512 <    int yytype;
2513 <    YYSTYPE const * const yyvaluep;
2202 > # define YYDPRINTF(Args)                        \
2203 > do {                                            \
2204 >  if (yydebug)                                  \
2205 >    YYFPRINTF Args;                             \
2206 > } while (0)
2207 >
2208 > /* This macro is provided for backward compatibility. */
2209 > #ifndef YY_LOCATION_PRINT
2210 > # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2211   #endif
2212 +
2213 +
2214 + # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
2215 + do {                                                                      \
2216 +  if (yydebug)                                                            \
2217 +    {                                                                     \
2218 +      YYFPRINTF (stderr, "%s ", Title);                                   \
2219 +      yy_symbol_print (stderr,                                            \
2220 +                  Type, Value); \
2221 +      YYFPRINTF (stderr, "\n");                                           \
2222 +    }                                                                     \
2223 + } while (0)
2224 +
2225 +
2226 + /*-----------------------------------.
2227 + | Print this symbol's value on YYO.  |
2228 + `-----------------------------------*/
2229 +
2230 + static void
2231 + yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2232   {
2233 <  FILE *yyo = yyoutput;
2234 <  YYUSE (yyo);
2233 >  FILE *yyoutput = yyo;
2234 >  YYUSE (yyoutput);
2235    if (!yyvaluep)
2236      return;
2237   # ifdef YYPRINT
2238    if (yytype < YYNTOKENS)
2239 <    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2523 < # else
2524 <  YYUSE (yyoutput);
2239 >    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2240   # endif
2241    YYUSE (yytype);
2242   }
2243  
2244  
2245 < /*--------------------------------.
2246 < | Print this symbol on YYOUTPUT.  |
2247 < `--------------------------------*/
2245 > /*---------------------------.
2246 > | Print this symbol on YYO.  |
2247 > `---------------------------*/
2248  
2534 #if (defined __STDC__ || defined __C99__FUNC__ \
2535     || defined __cplusplus || defined _MSC_VER)
2249   static void
2250 < yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2538 < #else
2539 < static void
2540 < yy_symbol_print (yyoutput, yytype, yyvaluep)
2541 <    FILE *yyoutput;
2542 <    int yytype;
2543 <    YYSTYPE const * const yyvaluep;
2544 < #endif
2250 > yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
2251   {
2252 <  if (yytype < YYNTOKENS)
2253 <    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2548 <  else
2549 <    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2252 >  YYFPRINTF (yyo, "%s %s (",
2253 >             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2254  
2255 <  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2256 <  YYFPRINTF (yyoutput, ")");
2255 >  yy_symbol_value_print (yyo, yytype, yyvaluep);
2256 >  YYFPRINTF (yyo, ")");
2257   }
2258  
2259   /*------------------------------------------------------------------.
# Line 2557 | Line 2261 | yy_symbol_print (yyoutput, yytype, yyval
2261   | TOP (included).                                                   |
2262   `------------------------------------------------------------------*/
2263  
2560 #if (defined __STDC__ || defined __C99__FUNC__ \
2561     || defined __cplusplus || defined _MSC_VER)
2264   static void
2265   yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2564 #else
2565 static void
2566 yy_stack_print (yybottom, yytop)
2567    yytype_int16 *yybottom;
2568    yytype_int16 *yytop;
2569 #endif
2266   {
2267    YYFPRINTF (stderr, "Stack now");
2268    for (; yybottom <= yytop; yybottom++)
# Line 2577 | Line 2273 | yy_stack_print (yybottom, yytop)
2273    YYFPRINTF (stderr, "\n");
2274   }
2275  
2276 < # define YY_STACK_PRINT(Bottom, Top)                            \
2277 < do {                                                            \
2278 <  if (yydebug)                                                  \
2279 <    yy_stack_print ((Bottom), (Top));                           \
2280 < } while (YYID (0))
2276 > # define YY_STACK_PRINT(Bottom, Top)                            \
2277 > do {                                                            \
2278 >  if (yydebug)                                                  \
2279 >    yy_stack_print ((Bottom), (Top));                           \
2280 > } while (0)
2281  
2282  
2283   /*------------------------------------------------.
2284   | Report that the YYRULE is going to be reduced.  |
2285   `------------------------------------------------*/
2286  
2591 #if (defined __STDC__ || defined __C99__FUNC__ \
2592     || defined __cplusplus || defined _MSC_VER)
2593 static void
2594 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2595 #else
2287   static void
2288 < yy_reduce_print (yyvsp, yyrule)
2598 <    YYSTYPE *yyvsp;
2599 <    int yyrule;
2600 < #endif
2288 > yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
2289   {
2290 +  unsigned long yylno = yyrline[yyrule];
2291    int yynrhs = yyr2[yyrule];
2292    int yyi;
2604  unsigned long int yylno = yyrline[yyrule];
2293    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2294 <             yyrule - 1, yylno);
2294 >             yyrule - 1, yylno);
2295    /* The symbols being reduced.  */
2296    for (yyi = 0; yyi < yynrhs; yyi++)
2297      {
2298        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
2299 <      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2300 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
2301 <                                       );
2299 >      yy_symbol_print (stderr,
2300 >                       yystos[yyssp[yyi + 1 - yynrhs]],
2301 >                       &yyvsp[(yyi + 1) - (yynrhs)]
2302 >                                              );
2303        YYFPRINTF (stderr, "\n");
2304      }
2305   }
2306  
2307 < # define YY_REDUCE_PRINT(Rule)          \
2308 < do {                                    \
2309 <  if (yydebug)                          \
2310 <    yy_reduce_print (yyvsp, Rule); \
2311 < } while (YYID (0))
2307 > # define YY_REDUCE_PRINT(Rule)          \
2308 > do {                                    \
2309 >  if (yydebug)                          \
2310 >    yy_reduce_print (yyssp, yyvsp, Rule); \
2311 > } while (0)
2312  
2313   /* Nonzero means print parse trace.  It is left uninitialized so that
2314     multiple parsers can coexist.  */
# Line 2633 | Line 2322 | int yydebug;
2322  
2323  
2324   /* YYINITDEPTH -- initial size of the parser's stacks.  */
2325 < #ifndef YYINITDEPTH
2325 > #ifndef YYINITDEPTH
2326   # define YYINITDEPTH 200
2327   #endif
2328  
# Line 2656 | Line 2345 | int yydebug;
2345   #   define yystrlen strlen
2346   #  else
2347   /* Return the length of YYSTR.  */
2659 #if (defined __STDC__ || defined __C99__FUNC__ \
2660     || defined __cplusplus || defined _MSC_VER)
2348   static YYSIZE_T
2349   yystrlen (const char *yystr)
2663 #else
2664 static YYSIZE_T
2665 yystrlen (yystr)
2666    const char *yystr;
2667 #endif
2350   {
2351    YYSIZE_T yylen;
2352    for (yylen = 0; yystr[yylen]; yylen++)
# Line 2680 | Line 2362 | yystrlen (yystr)
2362   #  else
2363   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2364     YYDEST.  */
2683 #if (defined __STDC__ || defined __C99__FUNC__ \
2684     || defined __cplusplus || defined _MSC_VER)
2365   static char *
2366   yystpcpy (char *yydest, const char *yysrc)
2687 #else
2688 static char *
2689 yystpcpy (yydest, yysrc)
2690    char *yydest;
2691    const char *yysrc;
2692 #endif
2367   {
2368    char *yyd = yydest;
2369    const char *yys = yysrc;
# Line 2719 | Line 2393 | yytnamerr (char *yyres, const char *yyst
2393        char const *yyp = yystr;
2394  
2395        for (;;)
2396 <        switch (*++yyp)
2397 <          {
2398 <          case '\'':
2399 <          case ',':
2400 <            goto do_not_strip_quotes;
2401 <
2402 <          case '\\':
2403 <            if (*++yyp != '\\')
2404 <              goto do_not_strip_quotes;
2405 <            /* Fall through.  */
2406 <          default:
2407 <            if (yyres)
2408 <              yyres[yyn] = *yyp;
2409 <            yyn++;
2410 <            break;
2411 <
2412 <          case '"':
2413 <            if (yyres)
2414 <              yyres[yyn] = '\0';
2415 <            return yyn;
2416 <          }
2396 >        switch (*++yyp)
2397 >          {
2398 >          case '\'':
2399 >          case ',':
2400 >            goto do_not_strip_quotes;
2401 >
2402 >          case '\\':
2403 >            if (*++yyp != '\\')
2404 >              goto do_not_strip_quotes;
2405 >            else
2406 >              goto append;
2407 >
2408 >          append:
2409 >          default:
2410 >            if (yyres)
2411 >              yyres[yyn] = *yyp;
2412 >            yyn++;
2413 >            break;
2414 >
2415 >          case '"':
2416 >            if (yyres)
2417 >              yyres[yyn] = '\0';
2418 >            return yyn;
2419 >          }
2420      do_not_strip_quotes: ;
2421      }
2422  
2423    if (! yyres)
2424      return yystrlen (yystr);
2425  
2426 <  return yystpcpy (yyres, yystr) - yyres;
2426 >  return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
2427   }
2428   # endif
2429  
# Line 2762 | Line 2439 | static int
2439   yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2440                  yytype_int16 *yyssp, int yytoken)
2441   {
2442 <  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2442 >  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2443    YYSIZE_T yysize = yysize0;
2444    enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2445    /* Internationalized format string. */
2446 <  const char *yyformat = YY_NULL;
2446 >  const char *yyformat = YY_NULLPTR;
2447    /* Arguments of yyformat. */
2448    char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2449    /* Number of reported tokens (one for the "unexpected", one per
# Line 2774 | Line 2451 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2451    int yycount = 0;
2452  
2453    /* There are many possibilities here to consider:
2777     - Assume YYFAIL is not used.  It's too flawed to consider.  See
2778       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2779       for details.  YYERROR is fine as it does not invoke this
2780       function.
2454       - If this state is a consistent state with a default action, then
2455         the only way this function was invoked is if the default action
2456         is an error action.  In that case, don't check for expected
# Line 2827 | Line 2500 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2500                    }
2501                  yyarg[yycount++] = yytname[yyx];
2502                  {
2503 <                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2504 <                  if (! (yysize <= yysize1
2505 <                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2503 >                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2504 >                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2505 >                    yysize = yysize1;
2506 >                  else
2507                      return 2;
2834                  yysize = yysize1;
2508                  }
2509                }
2510          }
# Line 2843 | Line 2516 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2516        case N:                               \
2517          yyformat = S;                       \
2518        break
2519 +    default: /* Avoid compiler warnings. */
2520        YYCASE_(0, YY_("syntax error"));
2521        YYCASE_(1, YY_("syntax error, unexpected %s"));
2522        YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
# Line 2854 | Line 2528 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2528  
2529    {
2530      YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2531 <    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2531 >    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2532 >      yysize = yysize1;
2533 >    else
2534        return 2;
2859    yysize = yysize1;
2535    }
2536  
2537    if (*yymsg_alloc < yysize)
# Line 2894 | Line 2569 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
2569   | Release the memory associated to this symbol.  |
2570   `-----------------------------------------------*/
2571  
2897 /*ARGSUSED*/
2898 #if (defined __STDC__ || defined __C99__FUNC__ \
2899     || defined __cplusplus || defined _MSC_VER)
2572   static void
2573   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2902 #else
2903 static void
2904 yydestruct (yymsg, yytype, yyvaluep)
2905    const char *yymsg;
2906    int yytype;
2907    YYSTYPE *yyvaluep;
2908 #endif
2574   {
2575    YYUSE (yyvaluep);
2911
2576    if (!yymsg)
2577      yymsg = "Deleting";
2578    YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2579  
2580 +  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2581    YYUSE (yytype);
2582 +  YY_IGNORE_MAYBE_UNINITIALIZED_END
2583   }
2584  
2585  
# Line 2922 | Line 2588 | yydestruct (yymsg, yytype, yyvaluep)
2588   /* The lookahead symbol.  */
2589   int yychar;
2590  
2925
2926 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2927 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2928 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2929 #endif
2930 #ifndef YY_INITIAL_VALUE
2931 # define YY_INITIAL_VALUE(Value) /* Nothing. */
2932 #endif
2933
2591   /* The semantic value of the lookahead symbol.  */
2592 < YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2936 <
2592 > YYSTYPE yylval;
2593   /* Number of syntax errors so far.  */
2594   int yynerrs;
2595  
# Line 2942 | Line 2598 | int yynerrs;
2598   | yyparse.  |
2599   `----------*/
2600  
2945 #ifdef YYPARSE_PARAM
2946 #if (defined __STDC__ || defined __C99__FUNC__ \
2947     || defined __cplusplus || defined _MSC_VER)
2948 int
2949 yyparse (void *YYPARSE_PARAM)
2950 #else
2951 int
2952 yyparse (YYPARSE_PARAM)
2953    void *YYPARSE_PARAM;
2954 #endif
2955 #else /* ! YYPARSE_PARAM */
2956 #if (defined __STDC__ || defined __C99__FUNC__ \
2957     || defined __cplusplus || defined _MSC_VER)
2601   int
2602   yyparse (void)
2960 #else
2961 int
2962 yyparse ()
2963
2964 #endif
2965 #endif
2603   {
2604      int yystate;
2605      /* Number of tokens to shift before error messages enabled.  */
2606      int yyerrstatus;
2607  
2608      /* The stacks and their tools:
2609 <       `yyss': related to states.
2610 <       `yyvs': related to semantic values.
2609 >       'yyss': related to states.
2610 >       'yyvs': related to semantic values.
2611  
2612         Refer to the stacks through separate pointers, to allow yyoverflow
2613         to reallocate them elsewhere.  */
# Line 3020 | Line 2657 | yyparse ()
2657    yychar = YYEMPTY; /* Cause a token to be read.  */
2658    goto yysetstate;
2659  
2660 +
2661   /*------------------------------------------------------------.
2662 < | yynewstate -- Push a new state, which is found in yystate.  |
2662 > | yynewstate -- push a new state, which is found in yystate.  |
2663   `------------------------------------------------------------*/
2664 < yynewstate:
2664 > yynewstate:
2665    /* In all cases, when you get here, the value and location stacks
2666       have just been pushed.  So pushing a state here evens the stacks.  */
2667    yyssp++;
2668  
2669 < yysetstate:
2670 <  *yyssp = yystate;
2669 >
2670 > /*--------------------------------------------------------------------.
2671 > | yynewstate -- set current state (the top of the stack) to yystate.  |
2672 > `--------------------------------------------------------------------*/
2673 > yysetstate:
2674 >  *yyssp = (yytype_int16) yystate;
2675  
2676    if (yyss + yystacksize - 1 <= yyssp)
2677 + #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2678 +    goto yyexhaustedlab;
2679 + #else
2680      {
2681        /* Get the current used size of the three stacks, in elements.  */
2682 <      YYSIZE_T yysize = yyssp - yyss + 1;
2682 >      YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
2683  
2684 < #ifdef yyoverflow
2684 > # if defined yyoverflow
2685        {
2686 <        /* Give user a chance to reallocate the stack.  Use copies of
2687 <           these so that the &'s don't force the real ones into
2688 <           memory.  */
2689 <        YYSTYPE *yyvs1 = yyvs;
2690 <        yytype_int16 *yyss1 = yyss;
2691 <
2692 <        /* Each stack pointer address is followed by the size of the
2693 <           data in use in that stack, in bytes.  This used to be a
2694 <           conditional around just the two extra args, but that might
2695 <           be undefined if yyoverflow is a macro.  */
2696 <        yyoverflow (YY_("memory exhausted"),
2697 <                    &yyss1, yysize * sizeof (*yyssp),
2698 <                    &yyvs1, yysize * sizeof (*yyvsp),
2699 <                    &yystacksize);
2700 <
2701 <        yyss = yyss1;
3057 <        yyvs = yyvs1;
2686 >        /* Give user a chance to reallocate the stack.  Use copies of
2687 >           these so that the &'s don't force the real ones into
2688 >           memory.  */
2689 >        YYSTYPE *yyvs1 = yyvs;
2690 >        yytype_int16 *yyss1 = yyss;
2691 >
2692 >        /* Each stack pointer address is followed by the size of the
2693 >           data in use in that stack, in bytes.  This used to be a
2694 >           conditional around just the two extra args, but that might
2695 >           be undefined if yyoverflow is a macro.  */
2696 >        yyoverflow (YY_("memory exhausted"),
2697 >                    &yyss1, yysize * sizeof (*yyssp),
2698 >                    &yyvs1, yysize * sizeof (*yyvsp),
2699 >                    &yystacksize);
2700 >        yyss = yyss1;
2701 >        yyvs = yyvs1;
2702        }
2703 < #else /* no yyoverflow */
3060 < # ifndef YYSTACK_RELOCATE
3061 <      goto yyexhaustedlab;
3062 < # else
2703 > # else /* defined YYSTACK_RELOCATE */
2704        /* Extend the stack our own way.  */
2705        if (YYMAXDEPTH <= yystacksize)
2706 <        goto yyexhaustedlab;
2706 >        goto yyexhaustedlab;
2707        yystacksize *= 2;
2708        if (YYMAXDEPTH < yystacksize)
2709 <        yystacksize = YYMAXDEPTH;
2709 >        yystacksize = YYMAXDEPTH;
2710  
2711        {
2712 <        yytype_int16 *yyss1 = yyss;
2713 <        union yyalloc *yyptr =
2714 <          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2715 <        if (! yyptr)
2716 <          goto yyexhaustedlab;
2717 <        YYSTACK_RELOCATE (yyss_alloc, yyss);
2718 <        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2719 < #  undef YYSTACK_RELOCATE
2720 <        if (yyss1 != yyssa)
2721 <          YYSTACK_FREE (yyss1);
2712 >        yytype_int16 *yyss1 = yyss;
2713 >        union yyalloc *yyptr =
2714 >          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2715 >        if (! yyptr)
2716 >          goto yyexhaustedlab;
2717 >        YYSTACK_RELOCATE (yyss_alloc, yyss);
2718 >        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2719 > # undef YYSTACK_RELOCATE
2720 >        if (yyss1 != yyssa)
2721 >          YYSTACK_FREE (yyss1);
2722        }
2723   # endif
3083 #endif /* no yyoverflow */
2724  
2725        yyssp = yyss + yysize - 1;
2726        yyvsp = yyvs + yysize - 1;
2727  
2728        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2729 <                  (unsigned long int) yystacksize));
2729 >                  (unsigned long) yystacksize));
2730  
2731        if (yyss + yystacksize - 1 <= yyssp)
2732 <        YYABORT;
2732 >        YYABORT;
2733      }
2734 + #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2735  
2736    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2737  
# Line 3099 | Line 2740 | yyparse ()
2740  
2741    goto yybackup;
2742  
2743 +
2744   /*-----------.
2745   | yybackup.  |
2746   `-----------*/
2747   yybackup:
3106
2748    /* Do appropriate processing given the current state.  Read a
2749       lookahead token if we need one and don't already have one.  */
2750  
# Line 3118 | Line 2759 | yybackup:
2759    if (yychar == YYEMPTY)
2760      {
2761        YYDPRINTF ((stderr, "Reading a token: "));
2762 <      yychar = YYLEX;
2762 >      yychar = yylex ();
2763      }
2764  
2765    if (yychar <= YYEOF)
# Line 3176 | Line 2817 | yydefault:
2817  
2818  
2819   /*-----------------------------.
2820 < | yyreduce -- Do a reduction.  |
2820 > | yyreduce -- do a reduction.  |
2821   `-----------------------------*/
2822   yyreduce:
2823    /* yyn is the number of a rule to reduce with.  */
2824    yylen = yyr2[yyn];
2825  
2826    /* If YYLEN is nonzero, implement the default value of the action:
2827 <     `$$ = $1'.
2827 >     '$$ = $1'.
2828  
2829       Otherwise, the following line sets YYVAL to garbage.
2830       This behavior is undocumented and Bison
# Line 3196 | Line 2837 | yyreduce:
2837    YY_REDUCE_PRINT (yyn);
2838    switch (yyn)
2839      {
2840 <        case 26:
2841 < /* Line 1787 of yacc.c  */
3201 < #line 394 "conf_parser.y"
2840 >        case 28:
2841 > #line 398 "conf_parser.y" /* yacc.c:1652  */
2842      { (yyval.number) = 0; }
2843 <    break;
3204 <
3205 <  case 28:
3206 < /* Line 1787 of yacc.c  */
3207 < #line 396 "conf_parser.y"
3208 <    {
3209 <                        (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3210 <                }
3211 <    break;
3212 <
3213 <  case 29:
3214 < /* Line 1787 of yacc.c  */
3215 < #line 400 "conf_parser.y"
3216 <    {
3217 <                        (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3218 <                }
2843 > #line 2844 "conf_parser.c" /* yacc.c:1652  */
2844      break;
2845  
2846    case 30:
2847 < /* Line 1787 of yacc.c  */
2848 < #line 404 "conf_parser.y"
2849 <    {
3225 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3226 <                }
2847 > #line 399 "conf_parser.y" /* yacc.c:1652  */
2848 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2849 > #line 2850 "conf_parser.c" /* yacc.c:1652  */
2850      break;
2851  
2852    case 31:
2853 < /* Line 1787 of yacc.c  */
2854 < #line 408 "conf_parser.y"
2855 <    {
3233 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3234 <                }
2853 > #line 400 "conf_parser.y" /* yacc.c:1652  */
2854 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2855 > #line 2856 "conf_parser.c" /* yacc.c:1652  */
2856      break;
2857  
2858    case 32:
2859 < /* Line 1787 of yacc.c  */
2860 < #line 412 "conf_parser.y"
2861 <    {
3241 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3242 <                }
2859 > #line 401 "conf_parser.y" /* yacc.c:1652  */
2860 >    { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
2861 > #line 2862 "conf_parser.c" /* yacc.c:1652  */
2862      break;
2863  
2864    case 33:
2865 < /* Line 1787 of yacc.c  */
2866 < #line 416 "conf_parser.y"
2867 <    {
3249 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3250 <                }
2865 > #line 402 "conf_parser.y" /* yacc.c:1652  */
2866 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
2867 > #line 2868 "conf_parser.c" /* yacc.c:1652  */
2868      break;
2869  
2870    case 34:
2871 < /* Line 1787 of yacc.c  */
2872 < #line 420 "conf_parser.y"
2873 <    {
3257 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3258 <                }
2871 > #line 403 "conf_parser.y" /* yacc.c:1652  */
2872 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
2873 > #line 2874 "conf_parser.c" /* yacc.c:1652  */
2874      break;
2875  
2876    case 35:
2877 < /* Line 1787 of yacc.c  */
2878 < #line 424 "conf_parser.y"
2879 <    {
3265 <                        (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3266 <                }
2877 > #line 404 "conf_parser.y" /* yacc.c:1652  */
2878 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
2879 > #line 2880 "conf_parser.c" /* yacc.c:1652  */
2880      break;
2881  
2882    case 36:
2883 < /* Line 1787 of yacc.c  */
2884 < #line 429 "conf_parser.y"
2885 <    { (yyval.number) = 0; }
2883 > #line 405 "conf_parser.y" /* yacc.c:1652  */
2884 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
2885 > #line 2886 "conf_parser.c" /* yacc.c:1652  */
2886      break;
2887  
2888 <  case 38:
2889 < /* Line 1787 of yacc.c  */
2890 < #line 430 "conf_parser.y"
2891 <    { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
2888 >  case 37:
2889 > #line 406 "conf_parser.y" /* yacc.c:1652  */
2890 >    { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
2891 > #line 2892 "conf_parser.c" /* yacc.c:1652  */
2892      break;
2893  
2894 <  case 39:
2895 < /* Line 1787 of yacc.c  */
2896 < #line 431 "conf_parser.y"
2897 <    { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
2894 >  case 38:
2895 > #line 409 "conf_parser.y" /* yacc.c:1652  */
2896 >    { (yyval.number) = 0; }
2897 > #line 2898 "conf_parser.c" /* yacc.c:1652  */
2898      break;
2899  
2900    case 40:
2901 < /* Line 1787 of yacc.c  */
2902 < #line 432 "conf_parser.y"
2903 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
2901 > #line 410 "conf_parser.y" /* yacc.c:1652  */
2902 >    { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
2903 > #line 2904 "conf_parser.c" /* yacc.c:1652  */
2904      break;
2905  
2906    case 41:
2907 < /* Line 1787 of yacc.c  */
2908 < #line 433 "conf_parser.y"
2909 <    { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
2907 > #line 411 "conf_parser.y" /* yacc.c:1652  */
2908 >    { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
2909 > #line 2910 "conf_parser.c" /* yacc.c:1652  */
2910      break;
2911  
2912 <  case 48:
2913 < /* Line 1787 of yacc.c  */
2914 < #line 447 "conf_parser.y"
2915 <    {
3303 <  if (conf_parser_ctx.pass == 2)
3304 <    add_conf_module(libio_basename(yylval.string));
3305 < }
2912 >  case 42:
2913 > #line 412 "conf_parser.y" /* yacc.c:1652  */
2914 >    { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
2915 > #line 2916 "conf_parser.c" /* yacc.c:1652  */
2916      break;
2917  
2918 <  case 49:
2919 < /* Line 1787 of yacc.c  */
2920 < #line 453 "conf_parser.y"
2921 <    {
3312 <  if (conf_parser_ctx.pass == 2)
3313 <    mod_add_path(yylval.string);
3314 < }
2918 >  case 43:
2919 > #line 413 "conf_parser.y" /* yacc.c:1652  */
2920 >    { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
2921 > #line 2922 "conf_parser.c" /* yacc.c:1652  */
2922      break;
2923  
2924 <  case 75:
2925 < /* Line 1787 of yacc.c  */
3319 < #line 479 "conf_parser.y"
2924 >  case 50:
2925 > #line 426 "conf_parser.y" /* yacc.c:1652  */
2926      {
2927 < #ifdef HAVE_LIBCRYPTO
2928 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3323 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3324 < #endif
2927 >  if (conf_parser_ctx.pass == 2)
2928 >    add_conf_module(libio_basename(yylval.string));
2929   }
2930 + #line 2931 "conf_parser.c" /* yacc.c:1652  */
2931      break;
2932  
2933 <  case 76:
2934 < /* Line 1787 of yacc.c  */
3330 < #line 485 "conf_parser.y"
2933 >  case 51:
2934 > #line 432 "conf_parser.y" /* yacc.c:1652  */
2935      {
2936 < #ifdef HAVE_LIBCRYPTO
2937 <  if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3334 <    SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3335 < #endif
2936 >  if (conf_parser_ctx.pass == 2)
2937 >    mod_add_path(yylval.string);
2938   }
2939 + #line 2940 "conf_parser.c" /* yacc.c:1652  */
2940      break;
2941  
2942 <  case 79:
2943 < /* Line 1787 of yacc.c  */
3341 < #line 494 "conf_parser.y"
2942 >  case 71:
2943 > #line 463 "conf_parser.y" /* yacc.c:1652  */
2944      {
2945 < #ifdef HAVE_LIBCRYPTO
2946 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2947 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
2948 < #endif
2945 >  if (conf_parser_ctx.pass == 2)
2946 >  {
2947 >    xfree(ConfigServerInfo.ssl_certificate_file);
2948 >    ConfigServerInfo.ssl_certificate_file = xstrdup(yylval.string);
2949 >  }
2950   }
2951 + #line 2952 "conf_parser.c" /* yacc.c:1652  */
2952      break;
2953  
2954 <  case 80:
2955 < /* Line 1787 of yacc.c  */
3352 < #line 500 "conf_parser.y"
2954 >  case 72:
2955 > #line 472 "conf_parser.y" /* yacc.c:1652  */
2956      {
2957 < #ifdef HAVE_LIBCRYPTO
2958 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2959 <    SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
2960 < #endif
2957 >  if (conf_parser_ctx.pass == 2)
2958 >  {
2959 >    xfree(ConfigServerInfo.rsa_private_key_file);
2960 >    ConfigServerInfo.rsa_private_key_file = xstrdup(yylval.string);
2961 >  }
2962   }
2963 + #line 2964 "conf_parser.c" /* yacc.c:1652  */
2964      break;
2965  
2966 <  case 81:
2967 < /* Line 1787 of yacc.c  */
3363 < #line 508 "conf_parser.y"
2966 >  case 73:
2967 > #line 481 "conf_parser.y" /* yacc.c:1652  */
2968      {
2969 < #ifdef HAVE_LIBCRYPTO
3366 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2969 >  if (conf_parser_ctx.pass == 2)
2970    {
2971 <    if (!ServerInfo.rsa_private_key_file)
2972 <    {
3370 <      conf_error_report("No rsa_private_key_file specified, SSL disabled");
3371 <      break;
3372 <    }
3373 <
3374 <    if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3375 <                                     SSL_FILETYPE_PEM) <= 0 ||
3376 <        SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3377 <                                     SSL_FILETYPE_PEM) <= 0)
3378 <    {
3379 <      report_crypto_errors();
3380 <      conf_error_report("Could not open/read certificate file");
3381 <      break;
3382 <    }
3383 <
3384 <    if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3385 <                                    SSL_FILETYPE_PEM) <= 0 ||
3386 <        SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3387 <                                    SSL_FILETYPE_PEM) <= 0)
3388 <    {
3389 <      report_crypto_errors();
3390 <      conf_error_report("Could not read RSA private key");
3391 <      break;
3392 <    }
3393 <
3394 <    if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3395 <        !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3396 <    {
3397 <      report_crypto_errors();
3398 <      conf_error_report("Could not read RSA private key");
3399 <      break;
3400 <    }
2971 >    xfree(ConfigServerInfo.ssl_dh_param_file);
2972 >    ConfigServerInfo.ssl_dh_param_file = xstrdup(yylval.string);
2973    }
3402 #endif
2974   }
2975 + #line 2976 "conf_parser.c" /* yacc.c:1652  */
2976      break;
2977  
2978 <  case 82:
2979 < /* Line 1787 of yacc.c  */
3408 < #line 550 "conf_parser.y"
2978 >  case 74:
2979 > #line 490 "conf_parser.y" /* yacc.c:1652  */
2980      {
2981 < #ifdef HAVE_LIBCRYPTO
3411 <  if (conf_parser_ctx.pass == 1)
2981 >  if (conf_parser_ctx.pass == 2)
2982    {
2983 <    BIO *file;
2984 <
3415 <    if (ServerInfo.rsa_private_key)
3416 <    {
3417 <      RSA_free(ServerInfo.rsa_private_key);
3418 <      ServerInfo.rsa_private_key = NULL;
3419 <    }
3420 <
3421 <    if (ServerInfo.rsa_private_key_file)
3422 <    {
3423 <      MyFree(ServerInfo.rsa_private_key_file);
3424 <      ServerInfo.rsa_private_key_file = NULL;
3425 <    }
3426 <
3427 <    ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3428 <
3429 <    if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3430 <    {
3431 <      conf_error_report("File open failed, ignoring");
3432 <      break;
3433 <    }
3434 <
3435 <    ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3436 <
3437 <    BIO_set_close(file, BIO_CLOSE);
3438 <    BIO_free(file);
3439 <
3440 <    if (ServerInfo.rsa_private_key == NULL)
3441 <    {
3442 <      conf_error_report("Couldn't extract key, ignoring");
3443 <      break;
3444 <    }
3445 <
3446 <    if (!RSA_check_key(ServerInfo.rsa_private_key))
3447 <    {
3448 <      RSA_free(ServerInfo.rsa_private_key);
3449 <      ServerInfo.rsa_private_key = NULL;
3450 <
3451 <      conf_error_report("Invalid key, ignoring");
3452 <      break;
3453 <    }
3454 <
3455 <    /* require 2048 bit (256 byte) key */
3456 <    if (RSA_size(ServerInfo.rsa_private_key) != 256)
3457 <    {
3458 <      RSA_free(ServerInfo.rsa_private_key);
3459 <      ServerInfo.rsa_private_key = NULL;
3460 <
3461 <      conf_error_report("Not a 2048 bit key, ignoring");
3462 <    }
2983 >    xfree(ConfigServerInfo.ssl_cipher_list);
2984 >    ConfigServerInfo.ssl_cipher_list = xstrdup(yylval.string);
2985    }
3464 #endif
2986   }
2987 + #line 2988 "conf_parser.c" /* yacc.c:1652  */
2988      break;
2989  
2990 <  case 83:
2991 < /* Line 1787 of yacc.c  */
3470 < #line 609 "conf_parser.y"
2990 >  case 75:
2991 > #line 499 "conf_parser.y" /* yacc.c:1652  */
2992      {
2993 < /* TBD - XXX: error reporting */
3473 < #ifdef HAVE_LIBCRYPTO
3474 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
2993 >  if (conf_parser_ctx.pass == 2)
2994    {
2995 <    BIO *file = BIO_new_file(yylval.string, "r");
2996 <
3478 <    if (file)
3479 <    {
3480 <      DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3481 <
3482 <      BIO_free(file);
3483 <
3484 <      if (dh)
3485 <      {
3486 <        if (DH_size(dh) < 128)
3487 <          conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3488 <        else
3489 <          SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3490 <
3491 <        DH_free(dh);
3492 <      }
3493 <    }
2995 >    xfree(ConfigServerInfo.ssl_message_digest_algorithm);
2996 >    ConfigServerInfo.ssl_message_digest_algorithm = xstrdup(yylval.string);
2997    }
3495 #endif
2998   }
2999 + #line 3000 "conf_parser.c" /* yacc.c:1652  */
3000      break;
3001  
3002 <  case 84:
3003 < /* Line 1787 of yacc.c  */
3501 < #line 637 "conf_parser.y"
3002 >  case 76:
3003 > #line 508 "conf_parser.y" /* yacc.c:1652  */
3004      {
3005 < #ifdef HAVE_LIBCRYPTO
3006 <  if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3007 <    SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3008 < #endif
3005 >  if (conf_parser_ctx.pass == 2)
3006 >  {
3007 >    xfree(ConfigServerInfo.ssl_dh_elliptic_curve);
3008 >    ConfigServerInfo.ssl_dh_elliptic_curve = xstrdup(yylval.string);
3009 >  }
3010   }
3011 + #line 3012 "conf_parser.c" /* yacc.c:1652  */
3012      break;
3013  
3014 <  case 85:
3015 < /* Line 1787 of yacc.c  */
3512 < #line 645 "conf_parser.y"
3014 >  case 77:
3015 > #line 517 "conf_parser.y" /* yacc.c:1652  */
3016      {
3017 <  /* this isn't rehashable */
3018 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3017 >  /* This isn't rehashable */
3018 >  if (conf_parser_ctx.pass == 2 && ConfigServerInfo.name == NULL)
3019    {
3020 <    if (valid_servname(yylval.string))
3021 <      ServerInfo.name = xstrdup(yylval.string);
3020 >    if (server_valid_name(yylval.string) == true)
3021 >      ConfigServerInfo.name = xstrdup(yylval.string);
3022      else
3023      {
3024        conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3025 <      exit(0);
3025 >      exit(EXIT_FAILURE);
3026      }
3027    }
3028   }
3029 + #line 3030 "conf_parser.c" /* yacc.c:1652  */
3030      break;
3031  
3032 <  case 86:
3033 < /* Line 1787 of yacc.c  */
3530 < #line 660 "conf_parser.y"
3032 >  case 78:
3033 > #line 532 "conf_parser.y" /* yacc.c:1652  */
3034      {
3035 <  /* this isn't rehashable */
3036 <  if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3035 >  /* This isn't rehashable */
3036 >  if (conf_parser_ctx.pass == 2 && ConfigServerInfo.sid == NULL)
3037    {
3038      if (valid_sid(yylval.string))
3039 <      ServerInfo.sid = xstrdup(yylval.string);
3039 >      ConfigServerInfo.sid = xstrdup(yylval.string);
3040      else
3041      {
3042        conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3043 <      exit(0);
3043 >      exit(EXIT_FAILURE);
3044      }
3045    }
3046   }
3047 + #line 3048 "conf_parser.c" /* yacc.c:1652  */
3048      break;
3049  
3050 <  case 87:
3051 < /* Line 1787 of yacc.c  */
3548 < #line 675 "conf_parser.y"
3050 >  case 79:
3051 > #line 547 "conf_parser.y" /* yacc.c:1652  */
3052      {
3053    if (conf_parser_ctx.pass == 2)
3054    {
3055 <    MyFree(ServerInfo.description);
3056 <    ServerInfo.description = xstrdup(yylval.string);
3055 >    xfree(ConfigServerInfo.description);
3056 >    ConfigServerInfo.description = xstrdup(yylval.string);
3057 >    strlcpy(me.info, ConfigServerInfo.description, sizeof(me.info));
3058    }
3059   }
3060 + #line 3061 "conf_parser.c" /* yacc.c:1652  */
3061      break;
3062  
3063 <  case 88:
3064 < /* Line 1787 of yacc.c  */
3560 < #line 684 "conf_parser.y"
3063 >  case 80:
3064 > #line 557 "conf_parser.y" /* yacc.c:1652  */
3065      {
3066    if (conf_parser_ctx.pass == 2)
3067    {
3068      char *p;
3069  
3070 <    if ((p = strchr(yylval.string, ' ')) != NULL)
3071 <      p = '\0';
3070 >    if ((p = strchr(yylval.string, ' ')))
3071 >      *p = '\0';
3072  
3073 <    MyFree(ServerInfo.network_name);
3074 <    ServerInfo.network_name = xstrdup(yylval.string);
3073 >    xfree(ConfigServerInfo.network_name);
3074 >    ConfigServerInfo.network_name = xstrdup(yylval.string);
3075    }
3076   }
3077 + #line 3078 "conf_parser.c" /* yacc.c:1652  */
3078      break;
3079  
3080 <  case 89:
3081 < /* Line 1787 of yacc.c  */
3577 < #line 698 "conf_parser.y"
3080 >  case 81:
3081 > #line 571 "conf_parser.y" /* yacc.c:1652  */
3082      {
3083 <  if (conf_parser_ctx.pass == 2)
3580 <  {
3581 <    MyFree(ServerInfo.network_desc);
3582 <    ServerInfo.network_desc = xstrdup(yylval.string);
3583 <  }
3584 < }
3083 >  if (conf_parser_ctx.pass != 2)
3084      break;
3085  
3086 <  case 90:
3087 < /* Line 1787 of yacc.c  */
3589 < #line 707 "conf_parser.y"
3590 <    {
3591 <  if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3592 <  {
3593 <    struct addrinfo hints, *res;
3594 <
3595 <    memset(&hints, 0, sizeof(hints));
3596 <
3597 <    hints.ai_family   = AF_UNSPEC;
3598 <    hints.ai_socktype = SOCK_STREAM;
3599 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3600 <
3601 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3602 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3603 <    else
3604 <    {
3605 <      assert(res != NULL);
3606 <
3607 <      memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3608 <      ServerInfo.ip.ss.ss_family = res->ai_family;
3609 <      ServerInfo.ip.ss_len = res->ai_addrlen;
3610 <      freeaddrinfo(res);
3611 <
3612 <      ServerInfo.specific_ipv4_vhost = 1;
3613 <    }
3614 <  }
3086 >  xfree(ConfigServerInfo.network_desc);
3087 >  ConfigServerInfo.network_desc = xstrdup(yylval.string);
3088   }
3089 + #line 3090 "conf_parser.c" /* yacc.c:1652  */
3090      break;
3091  
3092 <  case 91:
3093 < /* Line 1787 of yacc.c  */
3620 < #line 735 "conf_parser.y"
3621 <    {
3622 < #ifdef IPV6
3623 <  if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3624 <  {
3625 <    struct addrinfo hints, *res;
3626 <
3627 <    memset(&hints, 0, sizeof(hints));
3628 <
3629 <    hints.ai_family   = AF_UNSPEC;
3630 <    hints.ai_socktype = SOCK_STREAM;
3631 <    hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
3632 <
3633 <    if (getaddrinfo(yylval.string, NULL, &hints, &res))
3634 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3635 <    else
3636 <    {
3637 <      assert(res != NULL);
3638 <
3639 <      memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3640 <      ServerInfo.ip6.ss.ss_family = res->ai_family;
3641 <      ServerInfo.ip6.ss_len = res->ai_addrlen;
3642 <      freeaddrinfo(res);
3643 <
3644 <      ServerInfo.specific_ipv6_vhost = 1;
3645 <    }
3646 <  }
3647 < #endif
3648 < }
3649 <    break;
3650 <
3651 <  case 92:
3652 < /* Line 1787 of yacc.c  */
3653 < #line 765 "conf_parser.y"
3092 >  case 82:
3093 > #line 580 "conf_parser.y" /* yacc.c:1652  */
3094      {
3095    if (conf_parser_ctx.pass != 2)
3096      break;
3097  
3098 <  if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3098 >  if ((yyvsp[-1].number) < 1)
3099    {
3100 <    char buf[IRCD_BUFSIZE];
3101 <
3662 <    snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3663 <    conf_error_report(buf);
3664 <    ServerInfo.max_clients = MAXCLIENTS_MIN;
3100 >    conf_error_report("default_max_clients too low, setting to 1");
3101 >    ConfigServerInfo.default_max_clients = 1;
3102    }
3103 <  else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3103 >  else if ((yyvsp[-1].number) > MAXCLIENTS_MAX)
3104    {
3105 <    char buf[IRCD_BUFSIZE];
3105 >    char buf[IRCD_BUFSIZE] = "";
3106  
3107 <    snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3107 >    snprintf(buf, sizeof(buf), "default_max_clients too high, setting to %d", MAXCLIENTS_MAX);
3108      conf_error_report(buf);
3109 <    ServerInfo.max_clients = MAXCLIENTS_MAX;
3109 >
3110 >    ConfigServerInfo.default_max_clients = MAXCLIENTS_MAX;
3111    }
3112    else
3113 <    ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3113 >    ConfigServerInfo.default_max_clients = (yyvsp[-1].number);
3114   }
3115 + #line 3116 "conf_parser.c" /* yacc.c:1652  */
3116      break;
3117  
3118 <  case 93:
3119 < /* Line 1787 of yacc.c  */
3681 < #line 790 "conf_parser.y"
3118 >  case 83:
3119 > #line 603 "conf_parser.y" /* yacc.c:1652  */
3120      {
3121    if (conf_parser_ctx.pass != 2)
3122      break;
3123  
3124 <  if ((yyvsp[(3) - (4)].number) < 9)
3124 >  if ((yyvsp[-1].number) < 9)
3125    {
3126      conf_error_report("max_nick_length too low, setting to 9");
3127 <    ServerInfo.max_nick_length = 9;
3127 >    ConfigServerInfo.max_nick_length = 9;
3128    }
3129 <  else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3129 >  else if ((yyvsp[-1].number) > NICKLEN)
3130    {
3131 <    char buf[IRCD_BUFSIZE];
3131 >    char buf[IRCD_BUFSIZE] = "";
3132  
3133      snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3134      conf_error_report(buf);
3135 <    ServerInfo.max_nick_length = NICKLEN;
3135 >
3136 >    ConfigServerInfo.max_nick_length = NICKLEN;
3137    }
3138    else
3139 <    ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3139 >    ConfigServerInfo.max_nick_length = (yyvsp[-1].number);
3140   }
3141 + #line 3142 "conf_parser.c" /* yacc.c:1652  */
3142      break;
3143  
3144 <  case 94:
3145 < /* Line 1787 of yacc.c  */
3706 < #line 812 "conf_parser.y"
3144 >  case 84:
3145 > #line 626 "conf_parser.y" /* yacc.c:1652  */
3146      {
3147    if (conf_parser_ctx.pass != 2)
3148      break;
3149  
3150 <  if ((yyvsp[(3) - (4)].number) < 80)
3150 >  if ((yyvsp[-1].number) < 80)
3151    {
3152      conf_error_report("max_topic_length too low, setting to 80");
3153 <    ServerInfo.max_topic_length = 80;
3153 >    ConfigServerInfo.max_topic_length = 80;
3154    }
3155 <  else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3155 >  else if ((yyvsp[-1].number) > TOPICLEN)
3156    {
3157 <    char buf[IRCD_BUFSIZE];
3157 >    char buf[IRCD_BUFSIZE] = "";
3158  
3159      snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3160      conf_error_report(buf);
3161 <    ServerInfo.max_topic_length = TOPICLEN;
3161 >
3162 >    ConfigServerInfo.max_topic_length = TOPICLEN;
3163    }
3164    else
3165 <    ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3165 >    ConfigServerInfo.max_topic_length = (yyvsp[-1].number);
3166 > }
3167 > #line 3168 "conf_parser.c" /* yacc.c:1652  */
3168 >    break;
3169 >
3170 >  case 85:
3171 > #line 649 "conf_parser.y" /* yacc.c:1652  */
3172 >    {
3173 >  if (conf_parser_ctx.pass == 2)
3174 >    ConfigServerInfo.hub = yylval.number;
3175 > }
3176 > #line 3177 "conf_parser.c" /* yacc.c:1652  */
3177 >    break;
3178 >
3179 >  case 93:
3180 > #line 667 "conf_parser.y" /* yacc.c:1652  */
3181 >    {
3182 >  if (conf_parser_ctx.pass != 2)
3183 >    break;
3184 >
3185 >  xfree(ConfigAdminInfo.name);
3186 >  ConfigAdminInfo.name = xstrdup(yylval.string);
3187 > }
3188 > #line 3189 "conf_parser.c" /* yacc.c:1652  */
3189 >    break;
3190 >
3191 >  case 94:
3192 > #line 676 "conf_parser.y" /* yacc.c:1652  */
3193 >    {
3194 >  if (conf_parser_ctx.pass != 2)
3195 >    break;
3196 >
3197 >  xfree(ConfigAdminInfo.email);
3198 >  ConfigAdminInfo.email = xstrdup(yylval.string);
3199   }
3200 + #line 3201 "conf_parser.c" /* yacc.c:1652  */
3201      break;
3202  
3203    case 95:
3204 < /* Line 1787 of yacc.c  */
3205 < #line 834 "conf_parser.y"
3204 > #line 685 "conf_parser.y" /* yacc.c:1652  */
3205 >    {
3206 >  if (conf_parser_ctx.pass != 2)
3207 >    break;
3208 >
3209 >  xfree(ConfigAdminInfo.description);
3210 >  ConfigAdminInfo.description = xstrdup(yylval.string);
3211 > }
3212 > #line 3213 "conf_parser.c" /* yacc.c:1652  */
3213 >    break;
3214 >
3215 >  case 96:
3216 > #line 698 "conf_parser.y" /* yacc.c:1652  */
3217      {
3218    if (conf_parser_ctx.pass == 2)
3219 <    ServerInfo.hub = yylval.number;
3219 >    reset_block_state();
3220 > }
3221 > #line 3222 "conf_parser.c" /* yacc.c:1652  */
3222 >    break;
3223 >
3224 >  case 97:
3225 > #line 702 "conf_parser.y" /* yacc.c:1652  */
3226 >    {
3227 >  dlink_node *node = NULL;
3228 >
3229 >  if (conf_parser_ctx.pass != 2)
3230 >    break;
3231 >
3232 >  if (!block_state.file.buf[0])
3233 >    break;
3234 >
3235 >  DLINK_FOREACH(node, block_state.mask.list.head)
3236 >    motd_add(node->data, block_state.file.buf);
3237   }
3238 + #line 3239 "conf_parser.c" /* yacc.c:1652  */
3239      break;
3240  
3241    case 103:
3242 < /* Line 1787 of yacc.c  */
3740 < #line 849 "conf_parser.y"
3242 > #line 719 "conf_parser.y" /* yacc.c:1652  */
3243      {
3244    if (conf_parser_ctx.pass == 2)
3245 <  {
3744 <    MyFree(AdminInfo.name);
3745 <    AdminInfo.name = xstrdup(yylval.string);
3746 <  }
3245 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3246   }
3247 + #line 3248 "conf_parser.c" /* yacc.c:1652  */
3248      break;
3249  
3250    case 104:
3251 < /* Line 1787 of yacc.c  */
3752 < #line 858 "conf_parser.y"
3251 > #line 725 "conf_parser.y" /* yacc.c:1652  */
3252      {
3253    if (conf_parser_ctx.pass == 2)
3254 <  {
3756 <    MyFree(AdminInfo.email);
3757 <    AdminInfo.email = xstrdup(yylval.string);
3758 <  }
3254 >    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3255   }
3256 + #line 3257 "conf_parser.c" /* yacc.c:1652  */
3257      break;
3258  
3259    case 105:
3260 < /* Line 1787 of yacc.c  */
3261 < #line 867 "conf_parser.y"
3260 > #line 735 "conf_parser.y" /* yacc.c:1652  */
3261 >    {
3262 >  if (conf_parser_ctx.pass == 2)
3263 >    reset_block_state();
3264 > }
3265 > #line 3266 "conf_parser.c" /* yacc.c:1652  */
3266 >    break;
3267 >
3268 >  case 106:
3269 > #line 739 "conf_parser.y" /* yacc.c:1652  */
3270 >    {
3271 >  if (conf_parser_ctx.pass != 2)
3272 >    break;
3273 >
3274 >  if (!block_state.command.buf[0] ||
3275 >      !block_state.name.buf[0] ||
3276 >      !block_state.nick.buf[0] ||
3277 >      !block_state.host.buf[0])
3278 >    break;
3279 >
3280 >  pseudo_register(block_state.name.buf, block_state.nick.buf, block_state.host.buf,
3281 >                  block_state.prepend.buf, block_state.command.buf);
3282 > }
3283 > #line 3284 "conf_parser.c" /* yacc.c:1652  */
3284 >    break;
3285 >
3286 >  case 114:
3287 > #line 757 "conf_parser.y" /* yacc.c:1652  */
3288 >    {
3289 >  if (conf_parser_ctx.pass == 2)
3290 >    strlcpy(block_state.command.buf, yylval.string, sizeof(block_state.command.buf));
3291 > }
3292 > #line 3293 "conf_parser.c" /* yacc.c:1652  */
3293 >    break;
3294 >
3295 >  case 115:
3296 > #line 763 "conf_parser.y" /* yacc.c:1652  */
3297 >    {
3298 >  if (conf_parser_ctx.pass == 2)
3299 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3300 > }
3301 > #line 3302 "conf_parser.c" /* yacc.c:1652  */
3302 >    break;
3303 >
3304 >  case 116:
3305 > #line 769 "conf_parser.y" /* yacc.c:1652  */
3306 >    {
3307 >  if (conf_parser_ctx.pass == 2)
3308 >    strlcpy(block_state.prepend.buf, yylval.string, sizeof(block_state.prepend.buf));
3309 > }
3310 > #line 3311 "conf_parser.c" /* yacc.c:1652  */
3311 >    break;
3312 >
3313 >  case 117:
3314 > #line 775 "conf_parser.y" /* yacc.c:1652  */
3315      {
3316    if (conf_parser_ctx.pass == 2)
3317    {
3318 <    MyFree(AdminInfo.description);
3319 <    AdminInfo.description = xstrdup(yylval.string);
3318 >    struct split_nuh_item nuh;
3319 >
3320 >    nuh.nuhmask  = yylval.string;
3321 >    nuh.nickptr  = NULL;
3322 >    nuh.userptr  = block_state.nick.buf;
3323 >    nuh.hostptr  = block_state.host.buf;
3324 >    nuh.nicksize = 0;
3325 >    nuh.usersize = sizeof(block_state.nick.buf);
3326 >    nuh.hostsize = sizeof(block_state.host.buf);
3327 >
3328 >    split_nuh(&nuh);
3329    }
3330   }
3331 + #line 3332 "conf_parser.c" /* yacc.c:1652  */
3332      break;
3333  
3334 <  case 112:
3335 < /* Line 1787 of yacc.c  */
3776 < #line 885 "conf_parser.y"
3334 >  case 124:
3335 > #line 803 "conf_parser.y" /* yacc.c:1652  */
3336      {
3337    if (conf_parser_ctx.pass == 2)
3338 <    ConfigLoggingEntry.use_logging = yylval.number;
3338 >    ConfigLog.use_logging = yylval.number;
3339   }
3340 + #line 3341 "conf_parser.c" /* yacc.c:1652  */
3341      break;
3342  
3343 <  case 113:
3344 < /* Line 1787 of yacc.c  */
3785 < #line 891 "conf_parser.y"
3343 >  case 125:
3344 > #line 809 "conf_parser.y" /* yacc.c:1652  */
3345      {
3346    if (conf_parser_ctx.pass == 2)
3347      reset_block_state();
3348   }
3349 + #line 3350 "conf_parser.c" /* yacc.c:1652  */
3350      break;
3351  
3352 <  case 114:
3353 < /* Line 1787 of yacc.c  */
3794 < #line 895 "conf_parser.y"
3352 >  case 126:
3353 > #line 813 "conf_parser.y" /* yacc.c:1652  */
3354      {
3355    if (conf_parser_ctx.pass != 2)
3356      break;
# Line 3800 | Line 3359 | yyreduce:
3359      log_set_file(block_state.type.value, block_state.size.value,
3360                   block_state.file.buf);
3361   }
3362 + #line 3363 "conf_parser.c" /* yacc.c:1652  */
3363      break;
3364  
3365 <  case 121:
3366 < /* Line 1787 of yacc.c  */
3807 < #line 911 "conf_parser.y"
3365 >  case 133:
3366 > #line 829 "conf_parser.y" /* yacc.c:1652  */
3367      {
3368    if (conf_parser_ctx.pass != 2)
3369      break;
3370  
3371    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3372   }
3373 + #line 3374 "conf_parser.c" /* yacc.c:1652  */
3374      break;
3375  
3376 <  case 122:
3377 < /* Line 1787 of yacc.c  */
3818 < #line 919 "conf_parser.y"
3376 >  case 134:
3377 > #line 837 "conf_parser.y" /* yacc.c:1652  */
3378      {
3379 <  block_state.size.value = (yyvsp[(3) - (4)].number);
3379 >  block_state.size.value = (yyvsp[-1].number);
3380   }
3381 + #line 3382 "conf_parser.c" /* yacc.c:1652  */
3382      break;
3383  
3384 <  case 123:
3385 < /* Line 1787 of yacc.c  */
3826 < #line 922 "conf_parser.y"
3384 >  case 135:
3385 > #line 840 "conf_parser.y" /* yacc.c:1652  */
3386      {
3387    block_state.size.value = 0;
3388   }
3389 + #line 3390 "conf_parser.c" /* yacc.c:1652  */
3390      break;
3391  
3392 <  case 124:
3393 < /* Line 1787 of yacc.c  */
3834 < #line 927 "conf_parser.y"
3392 >  case 136:
3393 > #line 845 "conf_parser.y" /* yacc.c:1652  */
3394      {
3395    if (conf_parser_ctx.pass == 2)
3396      block_state.type.value = 0;
3397   }
3398 + #line 3399 "conf_parser.c" /* yacc.c:1652  */
3399      break;
3400  
3401 <  case 128:
3402 < /* Line 1787 of yacc.c  */
3843 < #line 934 "conf_parser.y"
3401 >  case 140:
3402 > #line 852 "conf_parser.y" /* yacc.c:1652  */
3403      {
3404    if (conf_parser_ctx.pass == 2)
3405      block_state.type.value = LOG_TYPE_USER;
3406   }
3407 + #line 3408 "conf_parser.c" /* yacc.c:1652  */
3408      break;
3409  
3410 <  case 129:
3411 < /* Line 1787 of yacc.c  */
3852 < #line 938 "conf_parser.y"
3410 >  case 141:
3411 > #line 856 "conf_parser.y" /* yacc.c:1652  */
3412      {
3413    if (conf_parser_ctx.pass == 2)
3414      block_state.type.value = LOG_TYPE_OPER;
3415   }
3416 + #line 3417 "conf_parser.c" /* yacc.c:1652  */
3417 +    break;
3418 +
3419 +  case 142:
3420 + #line 860 "conf_parser.y" /* yacc.c:1652  */
3421 +    {
3422 +  if (conf_parser_ctx.pass == 2)
3423 +    block_state.type.value = LOG_TYPE_XLINE;
3424 + }
3425 + #line 3426 "conf_parser.c" /* yacc.c:1652  */
3426      break;
3427  
3428 <  case 130:
3429 < /* Line 1787 of yacc.c  */
3861 < #line 942 "conf_parser.y"
3428 >  case 143:
3429 > #line 864 "conf_parser.y" /* yacc.c:1652  */
3430      {
3431    if (conf_parser_ctx.pass == 2)
3432 <    block_state.type.value = LOG_TYPE_GLINE;
3432 >    block_state.type.value = LOG_TYPE_RESV;
3433   }
3434 + #line 3435 "conf_parser.c" /* yacc.c:1652  */
3435      break;
3436  
3437 <  case 131:
3438 < /* Line 1787 of yacc.c  */
3870 < #line 946 "conf_parser.y"
3437 >  case 144:
3438 > #line 868 "conf_parser.y" /* yacc.c:1652  */
3439      {
3440    if (conf_parser_ctx.pass == 2)
3441      block_state.type.value = LOG_TYPE_DLINE;
3442   }
3443 + #line 3444 "conf_parser.c" /* yacc.c:1652  */
3444      break;
3445  
3446 <  case 132:
3447 < /* Line 1787 of yacc.c  */
3879 < #line 950 "conf_parser.y"
3446 >  case 145:
3447 > #line 872 "conf_parser.y" /* yacc.c:1652  */
3448      {
3449    if (conf_parser_ctx.pass == 2)
3450      block_state.type.value = LOG_TYPE_KLINE;
3451   }
3452 + #line 3453 "conf_parser.c" /* yacc.c:1652  */
3453      break;
3454  
3455 <  case 133:
3456 < /* Line 1787 of yacc.c  */
3888 < #line 954 "conf_parser.y"
3455 >  case 146:
3456 > #line 876 "conf_parser.y" /* yacc.c:1652  */
3457      {
3458    if (conf_parser_ctx.pass == 2)
3459      block_state.type.value = LOG_TYPE_KILL;
3460   }
3461 + #line 3462 "conf_parser.c" /* yacc.c:1652  */
3462      break;
3463  
3464 <  case 134:
3465 < /* Line 1787 of yacc.c  */
3897 < #line 958 "conf_parser.y"
3464 >  case 147:
3465 > #line 880 "conf_parser.y" /* yacc.c:1652  */
3466      {
3467    if (conf_parser_ctx.pass == 2)
3468      block_state.type.value = LOG_TYPE_DEBUG;
3469   }
3470 + #line 3471 "conf_parser.c" /* yacc.c:1652  */
3471      break;
3472  
3473 <  case 135:
3474 < /* Line 1787 of yacc.c  */
3906 < #line 968 "conf_parser.y"
3473 >  case 148:
3474 > #line 890 "conf_parser.y" /* yacc.c:1652  */
3475      {
3476    if (conf_parser_ctx.pass != 2)
3477      break;
# Line 3911 | Line 3479 | yyreduce:
3479    reset_block_state();
3480    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3481   }
3482 + #line 3483 "conf_parser.c" /* yacc.c:1652  */
3483      break;
3484  
3485 <  case 136:
3486 < /* Line 1787 of yacc.c  */
3918 < #line 975 "conf_parser.y"
3485 >  case 149:
3486 > #line 897 "conf_parser.y" /* yacc.c:1652  */
3487      {
3488 <  dlink_node *ptr = NULL;
3488 >  dlink_node *node = NULL;
3489  
3490    if (conf_parser_ctx.pass != 2)
3491      break;
3492  
3493    if (!block_state.name.buf[0])
3494      break;
3495 < #ifdef HAVE_LIBCRYPTO
3928 <  if (!(block_state.file.buf[0] ||
3929 <        block_state.rpass.buf[0]))
3930 <    break;
3931 < #else
3495 >
3496    if (!block_state.rpass.buf[0])
3497      break;
3934 #endif
3498  
3499 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
3499 >  DLINK_FOREACH(node, block_state.mask.list.head)
3500    {
3938    struct MaskItem *conf = NULL;
3501      struct split_nuh_item nuh;
3502 +    char *s = node->data;
3503  
3504 <    nuh.nuhmask  = ptr->data;
3504 >    if (EmptyString(s))
3505 >      continue;
3506 >
3507 >    nuh.nuhmask  = s;
3508      nuh.nickptr  = NULL;
3509      nuh.userptr  = block_state.user.buf;
3510      nuh.hostptr  = block_state.host.buf;
3511 +
3512      nuh.nicksize = 0;
3513      nuh.usersize = sizeof(block_state.user.buf);
3514      nuh.hostsize = sizeof(block_state.host.buf);
3515 +
3516      split_nuh(&nuh);
3517  
3518 <    conf        = conf_make(CONF_OPER);
3519 <    conf->name  = xstrdup(block_state.name.buf);
3520 <    conf->user  = xstrdup(block_state.user.buf);
3521 <    conf->host  = xstrdup(block_state.host.buf);
3518 >    struct MaskItem *conf = conf_make(CONF_OPER);
3519 >    conf->addr = xcalloc(sizeof(*conf->addr));
3520 >    conf->name = xstrdup(block_state.name.buf);
3521 >    conf->user = xstrdup(block_state.user.buf);
3522 >    conf->host = xstrdup(block_state.host.buf);
3523 >
3524 >    if (block_state.cert.buf[0])
3525 >      conf->certfp = xstrdup(block_state.cert.buf);
3526  
3527      if (block_state.rpass.buf[0])
3528        conf->passwd = xstrdup(block_state.rpass.buf);
3529  
3530 +    if (block_state.whois.buf[0])
3531 +      conf->whois = xstrdup(block_state.whois.buf);
3532 +
3533      conf->flags = block_state.flags.value;
3534      conf->modes = block_state.modes.value;
3535      conf->port  = block_state.port.value;
3536 <    conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
3536 >    conf->htype = parse_netmask(conf->host, conf->addr, &conf->bits);
3537  
3538      conf_add_class_to_conf(conf, block_state.class.buf);
3964
3965 #ifdef HAVE_LIBCRYPTO
3966    if (block_state.file.buf[0])
3967    {
3968      BIO *file = NULL;
3969      RSA *pkey = NULL;
3970
3971      if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
3972      {
3973        conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
3974        break;
3975      }
3976
3977      if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
3978        conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
3979
3980      conf->rsa_public_key = pkey;
3981      BIO_set_close(file, BIO_CLOSE);
3982      BIO_free(file);
3983    }
3984 #endif /* HAVE_LIBCRYPTO */
3539    }
3540   }
3541 + #line 3542 "conf_parser.c" /* yacc.c:1652  */
3542      break;
3543  
3544 <  case 148:
3545 < /* Line 1787 of yacc.c  */
3991 < #line 1050 "conf_parser.y"
3544 >  case 163:
3545 > #line 966 "conf_parser.y" /* yacc.c:1652  */
3546      {
3547    if (conf_parser_ctx.pass == 2)
3548      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
3549   }
3550 + #line 3551 "conf_parser.c" /* yacc.c:1652  */
3551      break;
3552  
3553 <  case 149:
3554 < /* Line 1787 of yacc.c  */
4000 < #line 1056 "conf_parser.y"
3553 >  case 164:
3554 > #line 972 "conf_parser.y" /* yacc.c:1652  */
3555      {
3556    if (conf_parser_ctx.pass == 2)
3557      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3558   }
3559 + #line 3560 "conf_parser.c" /* yacc.c:1652  */
3560      break;
3561  
3562 <  case 150:
3563 < /* Line 1787 of yacc.c  */
4009 < #line 1062 "conf_parser.y"
3562 >  case 165:
3563 > #line 978 "conf_parser.y" /* yacc.c:1652  */
3564      {
3565    if (conf_parser_ctx.pass == 2)
3566      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
3567   }
3568 + #line 3569 "conf_parser.c" /* yacc.c:1652  */
3569      break;
3570  
3571 <  case 151:
3572 < /* Line 1787 of yacc.c  */
4018 < #line 1068 "conf_parser.y"
3571 >  case 166:
3572 > #line 984 "conf_parser.y" /* yacc.c:1652  */
3573      {
3574    if (conf_parser_ctx.pass == 2)
3575 <  {
4022 <    if (yylval.number)
4023 <      block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4024 <    else
4025 <      block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4026 <  }
3575 >    strlcpy(block_state.whois.buf, yylval.string, sizeof(block_state.whois.buf));
3576   }
3577 + #line 3578 "conf_parser.c" /* yacc.c:1652  */
3578      break;
3579  
3580 <  case 152:
3581 < /* Line 1787 of yacc.c  */
3582 < #line 1079 "conf_parser.y"
3580 >  case 167:
3581 > #line 990 "conf_parser.y" /* yacc.c:1652  */
3582 >    {
3583 >  if (conf_parser_ctx.pass != 2)
3584 >    break;
3585 >
3586 >  if (yylval.number)
3587 >    block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3588 >  else
3589 >    block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
3590 > }
3591 > #line 3592 "conf_parser.c" /* yacc.c:1652  */
3592 >    break;
3593 >
3594 >  case 168:
3595 > #line 1001 "conf_parser.y" /* yacc.c:1652  */
3596      {
3597    if (conf_parser_ctx.pass == 2)
3598 <    strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3598 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
3599   }
3600 + #line 3601 "conf_parser.c" /* yacc.c:1652  */
3601      break;
3602  
3603 <  case 153:
3604 < /* Line 1787 of yacc.c  */
3605 < #line 1085 "conf_parser.y"
3603 >  case 169:
3604 > #line 1007 "conf_parser.y" /* yacc.c:1652  */
3605 >    {
3606 >  if (conf_parser_ctx.pass != 2)
3607 >    break;
3608 >
3609 >  if (yylval.number)
3610 >    block_state.flags.value |= CONF_FLAGS_SSL;
3611 >  else
3612 >    block_state.flags.value &= ~CONF_FLAGS_SSL;
3613 > }
3614 > #line 3615 "conf_parser.c" /* yacc.c:1652  */
3615 >    break;
3616 >
3617 >  case 170:
3618 > #line 1018 "conf_parser.y" /* yacc.c:1652  */
3619      {
3620    if (conf_parser_ctx.pass == 2)
3621      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
3622   }
3623 + #line 3624 "conf_parser.c" /* yacc.c:1652  */
3624      break;
3625  
3626 <  case 154:
3627 < /* Line 1787 of yacc.c  */
4050 < #line 1091 "conf_parser.y"
3626 >  case 171:
3627 > #line 1024 "conf_parser.y" /* yacc.c:1652  */
3628      {
3629    if (conf_parser_ctx.pass == 2)
3630      block_state.modes.value = 0;
3631   }
3632 + #line 3633 "conf_parser.c" /* yacc.c:1652  */
3633      break;
3634  
3635 <  case 158:
3636 < /* Line 1787 of yacc.c  */
4059 < #line 1098 "conf_parser.y"
3635 >  case 175:
3636 > #line 1031 "conf_parser.y" /* yacc.c:1652  */
3637      {
3638    if (conf_parser_ctx.pass == 2)
3639      block_state.modes.value |= UMODE_BOTS;
3640   }
3641 + #line 3642 "conf_parser.c" /* yacc.c:1652  */
3642      break;
3643  
3644 <  case 159:
3645 < /* Line 1787 of yacc.c  */
4068 < #line 1102 "conf_parser.y"
3644 >  case 176:
3645 > #line 1035 "conf_parser.y" /* yacc.c:1652  */
3646      {
3647    if (conf_parser_ctx.pass == 2)
3648      block_state.modes.value |= UMODE_CCONN;
3649   }
3650 + #line 3651 "conf_parser.c" /* yacc.c:1652  */
3651      break;
3652  
3653 <  case 160:
3654 < /* Line 1787 of yacc.c  */
4077 < #line 1106 "conf_parser.y"
3653 >  case 177:
3654 > #line 1039 "conf_parser.y" /* yacc.c:1652  */
3655      {
3656    if (conf_parser_ctx.pass == 2)
3657 <    block_state.modes.value |= UMODE_CCONN_FULL;
3657 >    block_state.modes.value |= UMODE_DEAF;
3658   }
3659 + #line 3660 "conf_parser.c" /* yacc.c:1652  */
3660      break;
3661  
3662 <  case 161:
3663 < /* Line 1787 of yacc.c  */
4086 < #line 1110 "conf_parser.y"
3662 >  case 178:
3663 > #line 1043 "conf_parser.y" /* yacc.c:1652  */
3664      {
3665    if (conf_parser_ctx.pass == 2)
3666 <    block_state.modes.value |= UMODE_DEAF;
3666 >    block_state.modes.value |= UMODE_DEBUG;
3667 > }
3668 > #line 3669 "conf_parser.c" /* yacc.c:1652  */
3669 >    break;
3670 >
3671 >  case 179:
3672 > #line 1047 "conf_parser.y" /* yacc.c:1652  */
3673 >    {
3674 >  if (conf_parser_ctx.pass == 2)
3675 >    block_state.modes.value |= UMODE_FULL;
3676   }
3677 + #line 3678 "conf_parser.c" /* yacc.c:1652  */
3678      break;
3679  
3680 <  case 162:
3681 < /* Line 1787 of yacc.c  */
4095 < #line 1114 "conf_parser.y"
3680 >  case 180:
3681 > #line 1051 "conf_parser.y" /* yacc.c:1652  */
3682      {
3683    if (conf_parser_ctx.pass == 2)
3684 <    block_state.modes.value |= UMODE_DEBUG;
3684 >    block_state.modes.value |= UMODE_HIDDEN;
3685   }
3686 + #line 3687 "conf_parser.c" /* yacc.c:1652  */
3687      break;
3688  
3689 <  case 163:
3690 < /* Line 1787 of yacc.c  */
4104 < #line 1118 "conf_parser.y"
3689 >  case 181:
3690 > #line 1055 "conf_parser.y" /* yacc.c:1652  */
3691      {
3692    if (conf_parser_ctx.pass == 2)
3693 <    block_state.modes.value |= UMODE_FULL;
3693 >    block_state.modes.value |= UMODE_HIDECHANS;
3694   }
3695 + #line 3696 "conf_parser.c" /* yacc.c:1652  */
3696      break;
3697  
3698 <  case 164:
3699 < /* Line 1787 of yacc.c  */
4113 < #line 1122 "conf_parser.y"
3698 >  case 182:
3699 > #line 1059 "conf_parser.y" /* yacc.c:1652  */
3700      {
3701    if (conf_parser_ctx.pass == 2)
3702 <    block_state.modes.value |= UMODE_HIDDEN;
3702 >    block_state.modes.value |= UMODE_HIDEIDLE;
3703   }
3704 + #line 3705 "conf_parser.c" /* yacc.c:1652  */
3705      break;
3706  
3707 <  case 165:
3708 < /* Line 1787 of yacc.c  */
4122 < #line 1126 "conf_parser.y"
3707 >  case 183:
3708 > #line 1063 "conf_parser.y" /* yacc.c:1652  */
3709      {
3710    if (conf_parser_ctx.pass == 2)
3711      block_state.modes.value |= UMODE_SKILL;
3712   }
3713 + #line 3714 "conf_parser.c" /* yacc.c:1652  */
3714      break;
3715  
3716 <  case 166:
3717 < /* Line 1787 of yacc.c  */
4131 < #line 1130 "conf_parser.y"
3716 >  case 184:
3717 > #line 1067 "conf_parser.y" /* yacc.c:1652  */
3718      {
3719    if (conf_parser_ctx.pass == 2)
3720      block_state.modes.value |= UMODE_NCHANGE;
3721   }
3722 + #line 3723 "conf_parser.c" /* yacc.c:1652  */
3723      break;
3724  
3725 <  case 167:
3726 < /* Line 1787 of yacc.c  */
4140 < #line 1134 "conf_parser.y"
3725 >  case 185:
3726 > #line 1071 "conf_parser.y" /* yacc.c:1652  */
3727      {
3728    if (conf_parser_ctx.pass == 2)
3729      block_state.modes.value |= UMODE_REJ;
3730   }
3731 + #line 3732 "conf_parser.c" /* yacc.c:1652  */
3732      break;
3733  
3734 <  case 168:
3735 < /* Line 1787 of yacc.c  */
4149 < #line 1138 "conf_parser.y"
3734 >  case 186:
3735 > #line 1075 "conf_parser.y" /* yacc.c:1652  */
3736      {
3737    if (conf_parser_ctx.pass == 2)
3738      block_state.modes.value |= UMODE_UNAUTH;
3739   }
3740 + #line 3741 "conf_parser.c" /* yacc.c:1652  */
3741      break;
3742  
3743 <  case 169:
3744 < /* Line 1787 of yacc.c  */
4158 < #line 1142 "conf_parser.y"
3743 >  case 187:
3744 > #line 1079 "conf_parser.y" /* yacc.c:1652  */
3745      {
3746    if (conf_parser_ctx.pass == 2)
3747      block_state.modes.value |= UMODE_SPY;
3748   }
3749 + #line 3750 "conf_parser.c" /* yacc.c:1652  */
3750      break;
3751  
3752 <  case 170:
3753 < /* Line 1787 of yacc.c  */
4167 < #line 1146 "conf_parser.y"
3752 >  case 188:
3753 > #line 1083 "conf_parser.y" /* yacc.c:1652  */
3754      {
3755    if (conf_parser_ctx.pass == 2)
3756      block_state.modes.value |= UMODE_EXTERNAL;
3757   }
3758 + #line 3759 "conf_parser.c" /* yacc.c:1652  */
3759      break;
3760  
3761 <  case 171:
3762 < /* Line 1787 of yacc.c  */
4176 < #line 1150 "conf_parser.y"
4177 <    {
4178 <  if (conf_parser_ctx.pass == 2)
4179 <    block_state.modes.value |= UMODE_OPERWALL;
4180 < }
4181 <    break;
4182 <
4183 <  case 172:
4184 < /* Line 1787 of yacc.c  */
4185 < #line 1154 "conf_parser.y"
3761 >  case 189:
3762 > #line 1087 "conf_parser.y" /* yacc.c:1652  */
3763      {
3764    if (conf_parser_ctx.pass == 2)
3765      block_state.modes.value |= UMODE_SERVNOTICE;
3766   }
3767 + #line 3768 "conf_parser.c" /* yacc.c:1652  */
3768      break;
3769  
3770 <  case 173:
3771 < /* Line 1787 of yacc.c  */
4194 < #line 1158 "conf_parser.y"
3770 >  case 190:
3771 > #line 1091 "conf_parser.y" /* yacc.c:1652  */
3772      {
3773    if (conf_parser_ctx.pass == 2)
3774      block_state.modes.value |= UMODE_INVISIBLE;
3775   }
3776 + #line 3777 "conf_parser.c" /* yacc.c:1652  */
3777      break;
3778  
3779 <  case 174:
3780 < /* Line 1787 of yacc.c  */
4203 < #line 1162 "conf_parser.y"
3779 >  case 191:
3780 > #line 1095 "conf_parser.y" /* yacc.c:1652  */
3781      {
3782    if (conf_parser_ctx.pass == 2)
3783      block_state.modes.value |= UMODE_WALLOP;
3784   }
3785 + #line 3786 "conf_parser.c" /* yacc.c:1652  */
3786      break;
3787  
3788 <  case 175:
3789 < /* Line 1787 of yacc.c  */
4212 < #line 1166 "conf_parser.y"
3788 >  case 192:
3789 > #line 1099 "conf_parser.y" /* yacc.c:1652  */
3790      {
3791    if (conf_parser_ctx.pass == 2)
3792      block_state.modes.value |= UMODE_SOFTCALLERID;
3793   }
3794 + #line 3795 "conf_parser.c" /* yacc.c:1652  */
3795      break;
3796  
3797 <  case 176:
3798 < /* Line 1787 of yacc.c  */
4221 < #line 1170 "conf_parser.y"
3797 >  case 193:
3798 > #line 1103 "conf_parser.y" /* yacc.c:1652  */
3799      {
3800    if (conf_parser_ctx.pass == 2)
3801      block_state.modes.value |= UMODE_CALLERID;
3802   }
3803 + #line 3804 "conf_parser.c" /* yacc.c:1652  */
3804      break;
3805  
3806 <  case 177:
3807 < /* Line 1787 of yacc.c  */
4230 < #line 1174 "conf_parser.y"
3806 >  case 194:
3807 > #line 1107 "conf_parser.y" /* yacc.c:1652  */
3808      {
3809    if (conf_parser_ctx.pass == 2)
3810      block_state.modes.value |= UMODE_LOCOPS;
3811   }
3812 + #line 3813 "conf_parser.c" /* yacc.c:1652  */
3813      break;
3814  
3815 <  case 178:
3816 < /* Line 1787 of yacc.c  */
4239 < #line 1178 "conf_parser.y"
3815 >  case 195:
3816 > #line 1111 "conf_parser.y" /* yacc.c:1652  */
3817      {
3818    if (conf_parser_ctx.pass == 2)
3819      block_state.modes.value |= UMODE_REGONLY;
3820   }
3821 + #line 3822 "conf_parser.c" /* yacc.c:1652  */
3822      break;
3823  
3824 <  case 179:
3825 < /* Line 1787 of yacc.c  */
3826 < #line 1184 "conf_parser.y"
3824 >  case 196:
3825 > #line 1115 "conf_parser.y" /* yacc.c:1652  */
3826 >    {
3827 >  if (conf_parser_ctx.pass == 2)
3828 >    block_state.modes.value |= UMODE_FARCONNECT;
3829 > }
3830 > #line 3831 "conf_parser.c" /* yacc.c:1652  */
3831 >    break;
3832 >
3833 >  case 197:
3834 > #line 1119 "conf_parser.y" /* yacc.c:1652  */
3835 >    {
3836 >  if (conf_parser_ctx.pass == 2)
3837 >    block_state.modes.value |= UMODE_EXPIRATION;
3838 > }
3839 > #line 3840 "conf_parser.c" /* yacc.c:1652  */
3840 >    break;
3841 >
3842 >  case 198:
3843 > #line 1125 "conf_parser.y" /* yacc.c:1652  */
3844      {
3845    if (conf_parser_ctx.pass == 2)
3846      block_state.port.value = 0;
3847   }
3848 + #line 3849 "conf_parser.c" /* yacc.c:1652  */
3849      break;
3850  
3851 <  case 183:
3852 < /* Line 1787 of yacc.c  */
4257 < #line 1191 "conf_parser.y"
3851 >  case 202:
3852 > #line 1132 "conf_parser.y" /* yacc.c:1652  */
3853      {
3854    if (conf_parser_ctx.pass == 2)
3855 <    block_state.port.value |= OPER_FLAG_GLOBAL_KILL;
3855 >    block_state.port.value |= OPER_FLAG_KILL_REMOTE;
3856   }
3857 + #line 3858 "conf_parser.c" /* yacc.c:1652  */
3858      break;
3859  
3860 <  case 184:
3861 < /* Line 1787 of yacc.c  */
4266 < #line 1195 "conf_parser.y"
3860 >  case 203:
3861 > #line 1136 "conf_parser.y" /* yacc.c:1652  */
3862      {
3863    if (conf_parser_ctx.pass == 2)
3864 <    block_state.port.value |= OPER_FLAG_REMOTE;
3864 >    block_state.port.value |= OPER_FLAG_KILL;
3865   }
3866 + #line 3867 "conf_parser.c" /* yacc.c:1652  */
3867      break;
3868  
3869 <  case 185:
3870 < /* Line 1787 of yacc.c  */
4275 < #line 1199 "conf_parser.y"
3869 >  case 204:
3870 > #line 1140 "conf_parser.y" /* yacc.c:1652  */
3871      {
3872    if (conf_parser_ctx.pass == 2)
3873 <    block_state.port.value |= OPER_FLAG_K;
3873 >    block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
3874   }
3875 + #line 3876 "conf_parser.c" /* yacc.c:1652  */
3876      break;
3877  
3878 <  case 186:
3879 < /* Line 1787 of yacc.c  */
3880 < #line 1203 "conf_parser.y"
3878 >  case 205:
3879 > #line 1144 "conf_parser.y" /* yacc.c:1652  */
3880 >    {
3881 >  if (conf_parser_ctx.pass == 2)
3882 >    block_state.port.value |= OPER_FLAG_CONNECT;
3883 > }
3884 > #line 3885 "conf_parser.c" /* yacc.c:1652  */
3885 >    break;
3886 >
3887 >  case 206:
3888 > #line 1148 "conf_parser.y" /* yacc.c:1652  */
3889 >    {
3890 >  if (conf_parser_ctx.pass == 2)
3891 >    block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
3892 > }
3893 > #line 3894 "conf_parser.c" /* yacc.c:1652  */
3894 >    break;
3895 >
3896 >  case 207:
3897 > #line 1152 "conf_parser.y" /* yacc.c:1652  */
3898 >    {
3899 >  if (conf_parser_ctx.pass == 2)
3900 >    block_state.port.value |= OPER_FLAG_SQUIT;
3901 > }
3902 > #line 3903 "conf_parser.c" /* yacc.c:1652  */
3903 >    break;
3904 >
3905 >  case 208:
3906 > #line 1156 "conf_parser.y" /* yacc.c:1652  */
3907 >    {
3908 >  if (conf_parser_ctx.pass == 2)
3909 >    block_state.port.value |= OPER_FLAG_KLINE;
3910 > }
3911 > #line 3912 "conf_parser.c" /* yacc.c:1652  */
3912 >    break;
3913 >
3914 >  case 209:
3915 > #line 1160 "conf_parser.y" /* yacc.c:1652  */
3916      {
3917    if (conf_parser_ctx.pass == 2)
3918      block_state.port.value |= OPER_FLAG_UNKLINE;
3919   }
3920 + #line 3921 "conf_parser.c" /* yacc.c:1652  */
3921      break;
3922  
3923 <  case 187:
3924 < /* Line 1787 of yacc.c  */
4293 < #line 1207 "conf_parser.y"
3923 >  case 210:
3924 > #line 1164 "conf_parser.y" /* yacc.c:1652  */
3925      {
3926    if (conf_parser_ctx.pass == 2)
3927      block_state.port.value |= OPER_FLAG_DLINE;
3928   }
3929 + #line 3930 "conf_parser.c" /* yacc.c:1652  */
3930      break;
3931  
3932 <  case 188:
3933 < /* Line 1787 of yacc.c  */
4302 < #line 1211 "conf_parser.y"
3932 >  case 211:
3933 > #line 1168 "conf_parser.y" /* yacc.c:1652  */
3934      {
3935    if (conf_parser_ctx.pass == 2)
3936      block_state.port.value |= OPER_FLAG_UNDLINE;
3937   }
3938 + #line 3939 "conf_parser.c" /* yacc.c:1652  */
3939      break;
3940  
3941 <  case 189:
3942 < /* Line 1787 of yacc.c  */
4311 < #line 1215 "conf_parser.y"
3941 >  case 212:
3942 > #line 1172 "conf_parser.y" /* yacc.c:1652  */
3943      {
3944    if (conf_parser_ctx.pass == 2)
3945 <    block_state.port.value |= OPER_FLAG_X;
3945 >    block_state.port.value |= OPER_FLAG_XLINE;
3946   }
3947 + #line 3948 "conf_parser.c" /* yacc.c:1652  */
3948      break;
3949  
3950 <  case 190:
3951 < /* Line 1787 of yacc.c  */
4320 < #line 1219 "conf_parser.y"
3950 >  case 213:
3951 > #line 1176 "conf_parser.y" /* yacc.c:1652  */
3952      {
3953    if (conf_parser_ctx.pass == 2)
3954 <    block_state.port.value |= OPER_FLAG_GLINE;
3954 >    block_state.port.value |= OPER_FLAG_UNXLINE;
3955   }
3956 + #line 3957 "conf_parser.c" /* yacc.c:1652  */
3957      break;
3958  
3959 <  case 191:
3960 < /* Line 1787 of yacc.c  */
4329 < #line 1223 "conf_parser.y"
3959 >  case 214:
3960 > #line 1180 "conf_parser.y" /* yacc.c:1652  */
3961      {
3962    if (conf_parser_ctx.pass == 2)
3963      block_state.port.value |= OPER_FLAG_DIE;
3964   }
3965 + #line 3966 "conf_parser.c" /* yacc.c:1652  */
3966      break;
3967  
3968 <  case 192:
3969 < /* Line 1787 of yacc.c  */
4338 < #line 1227 "conf_parser.y"
3968 >  case 215:
3969 > #line 1184 "conf_parser.y" /* yacc.c:1652  */
3970      {
3971    if (conf_parser_ctx.pass == 2)
3972      block_state.port.value |= OPER_FLAG_RESTART;
3973   }
3974 + #line 3975 "conf_parser.c" /* yacc.c:1652  */
3975      break;
3976  
3977 <  case 193:
3978 < /* Line 1787 of yacc.c  */
4347 < #line 1231 "conf_parser.y"
3977 >  case 216:
3978 > #line 1188 "conf_parser.y" /* yacc.c:1652  */
3979      {
3980    if (conf_parser_ctx.pass == 2)
3981 <    block_state.port.value |= OPER_FLAG_REHASH;
3981 >    block_state.port.value |= OPER_FLAG_REHASH_REMOTE;
3982   }
3983 + #line 3984 "conf_parser.c" /* yacc.c:1652  */
3984      break;
3985  
3986 <  case 194:
3987 < /* Line 1787 of yacc.c  */
4356 < #line 1235 "conf_parser.y"
3986 >  case 217:
3987 > #line 1192 "conf_parser.y" /* yacc.c:1652  */
3988      {
3989    if (conf_parser_ctx.pass == 2)
3990 <    block_state.port.value |= OPER_FLAG_ADMIN;
3990 >    block_state.port.value |= OPER_FLAG_REHASH;
3991   }
3992 + #line 3993 "conf_parser.c" /* yacc.c:1652  */
3993      break;
3994  
3995 <  case 195:
3996 < /* Line 1787 of yacc.c  */
4365 < #line 1239 "conf_parser.y"
3995 >  case 218:
3996 > #line 1196 "conf_parser.y" /* yacc.c:1652  */
3997      {
3998    if (conf_parser_ctx.pass == 2)
3999 <    block_state.port.value |= OPER_FLAG_N;
3999 >    block_state.port.value |= OPER_FLAG_ADMIN;
4000   }
4001 + #line 4002 "conf_parser.c" /* yacc.c:1652  */
4002      break;
4003  
4004 <  case 196:
4005 < /* Line 1787 of yacc.c  */
4374 < #line 1243 "conf_parser.y"
4004 >  case 219:
4005 > #line 1200 "conf_parser.y" /* yacc.c:1652  */
4006      {
4007    if (conf_parser_ctx.pass == 2)
4008 <    block_state.port.value |= OPER_FLAG_OPERWALL;
4008 >    block_state.port.value |= OPER_FLAG_GLOBOPS;
4009   }
4010 + #line 4011 "conf_parser.c" /* yacc.c:1652  */
4011      break;
4012  
4013 <  case 197:
4014 < /* Line 1787 of yacc.c  */
4383 < #line 1247 "conf_parser.y"
4013 >  case 220:
4014 > #line 1204 "conf_parser.y" /* yacc.c:1652  */
4015      {
4016    if (conf_parser_ctx.pass == 2)
4017 <    block_state.port.value |= OPER_FLAG_GLOBOPS;
4017 >    block_state.port.value |= OPER_FLAG_WALLOPS;
4018   }
4019 + #line 4020 "conf_parser.c" /* yacc.c:1652  */
4020      break;
4021  
4022 <  case 198:
4023 < /* Line 1787 of yacc.c  */
4392 < #line 1251 "conf_parser.y"
4022 >  case 221:
4023 > #line 1208 "conf_parser.y" /* yacc.c:1652  */
4024      {
4025    if (conf_parser_ctx.pass == 2)
4026 <    block_state.port.value |= OPER_FLAG_OPER_SPY;
4026 >    block_state.port.value |= OPER_FLAG_LOCOPS;
4027   }
4028 + #line 4029 "conf_parser.c" /* yacc.c:1652  */
4029      break;
4030  
4031 <  case 199:
4032 < /* Line 1787 of yacc.c  */
4401 < #line 1255 "conf_parser.y"
4031 >  case 222:
4032 > #line 1212 "conf_parser.y" /* yacc.c:1652  */
4033      {
4034    if (conf_parser_ctx.pass == 2)
4035      block_state.port.value |= OPER_FLAG_REMOTEBAN;
4036   }
4037 + #line 4038 "conf_parser.c" /* yacc.c:1652  */
4038      break;
4039  
4040 <  case 200:
4041 < /* Line 1787 of yacc.c  */
4410 < #line 1259 "conf_parser.y"
4040 >  case 223:
4041 > #line 1216 "conf_parser.y" /* yacc.c:1652  */
4042      {
4043    if (conf_parser_ctx.pass == 2)
4044      block_state.port.value |= OPER_FLAG_SET;
4045   }
4046 + #line 4047 "conf_parser.c" /* yacc.c:1652  */
4047      break;
4048  
4049 <  case 201:
4050 < /* Line 1787 of yacc.c  */
4419 < #line 1263 "conf_parser.y"
4049 >  case 224:
4050 > #line 1220 "conf_parser.y" /* yacc.c:1652  */
4051      {
4052    if (conf_parser_ctx.pass == 2)
4053      block_state.port.value |= OPER_FLAG_MODULE;
4054   }
4055 + #line 4056 "conf_parser.c" /* yacc.c:1652  */
4056      break;
4057  
4058 <  case 202:
4059 < /* Line 1787 of yacc.c  */
4060 < #line 1273 "conf_parser.y"
4058 >  case 225:
4059 > #line 1224 "conf_parser.y" /* yacc.c:1652  */
4060 >    {
4061 >  if (conf_parser_ctx.pass == 2)
4062 >    block_state.port.value |= OPER_FLAG_OPME;
4063 > }
4064 > #line 4065 "conf_parser.c" /* yacc.c:1652  */
4065 >    break;
4066 >
4067 >  case 226:
4068 > #line 1228 "conf_parser.y" /* yacc.c:1652  */
4069 >    {
4070 >  if (conf_parser_ctx.pass == 2)
4071 >    block_state.port.value |= OPER_FLAG_NICK_RESV;
4072 > }
4073 > #line 4074 "conf_parser.c" /* yacc.c:1652  */
4074 >    break;
4075 >
4076 >  case 227:
4077 > #line 1232 "conf_parser.y" /* yacc.c:1652  */
4078 >    {
4079 >  if (conf_parser_ctx.pass == 2)
4080 >    block_state.port.value |= OPER_FLAG_JOIN_RESV;
4081 > }
4082 > #line 4083 "conf_parser.c" /* yacc.c:1652  */
4083 >    break;
4084 >
4085 >  case 228:
4086 > #line 1236 "conf_parser.y" /* yacc.c:1652  */
4087 >    {
4088 >  if (conf_parser_ctx.pass == 2)
4089 >    block_state.port.value |= OPER_FLAG_RESV;
4090 > }
4091 > #line 4092 "conf_parser.c" /* yacc.c:1652  */
4092 >    break;
4093 >
4094 >  case 229:
4095 > #line 1240 "conf_parser.y" /* yacc.c:1652  */
4096 >    {
4097 >  if (conf_parser_ctx.pass == 2)
4098 >    block_state.port.value |= OPER_FLAG_UNRESV;
4099 > }
4100 > #line 4101 "conf_parser.c" /* yacc.c:1652  */
4101 >    break;
4102 >
4103 >  case 230:
4104 > #line 1244 "conf_parser.y" /* yacc.c:1652  */
4105 >    {
4106 >  if (conf_parser_ctx.pass == 2)
4107 >    block_state.port.value |= OPER_FLAG_CLOSE;
4108 > }
4109 > #line 4110 "conf_parser.c" /* yacc.c:1652  */
4110 >    break;
4111 >
4112 >  case 231:
4113 > #line 1254 "conf_parser.y" /* yacc.c:1652  */
4114      {
4115    if (conf_parser_ctx.pass != 1)
4116      break;
# Line 4438 | Line 4123 | yyreduce:
4123    block_state.max_sendq.value = DEFAULT_SENDQ;
4124    block_state.max_recvq.value = DEFAULT_RECVQ;
4125   }
4126 + #line 4127 "conf_parser.c" /* yacc.c:1652  */
4127      break;
4128  
4129 <  case 203:
4130 < /* Line 1787 of yacc.c  */
4445 < #line 1285 "conf_parser.y"
4129 >  case 232:
4130 > #line 1266 "conf_parser.y" /* yacc.c:1652  */
4131      {
4447  struct ClassItem *class = NULL;
4448
4132    if (conf_parser_ctx.pass != 1)
4133      break;
4134  
4135    if (!block_state.class.buf[0])
4136      break;
4137  
4138 <  if (!(class = class_find(block_state.class.buf, 0)))
4138 >  struct ClassItem *class = class_find(block_state.class.buf, false);
4139 >  if (class == NULL)
4140      class = class_make();
4141  
4142 <  class->active = 1;
4143 <  MyFree(class->name);
4142 >  class->active = true;
4143 >  xfree(class->name);
4144    class->name = xstrdup(block_state.class.buf);
4145    class->ping_freq = block_state.ping_freq.value;
4146 <  class->max_perip = block_state.max_perip.value;
4146 >  class->max_perip_local = block_state.max_perip_local.value;
4147 >  class->max_perip_global = block_state.max_perip_global.value;
4148    class->con_freq = block_state.con_freq.value;
4149    class->max_total = block_state.max_total.value;
4465  class->max_global = block_state.max_global.value;
4466  class->max_local = block_state.max_local.value;
4467  class->max_ident = block_state.max_ident.value;
4150    class->max_sendq = block_state.max_sendq.value;
4151    class->max_recvq = block_state.max_recvq.value;
4152 +  class->max_channels = block_state.max_channels.value;
4153  
4154    if (block_state.min_idle.value > block_state.max_idle.value)
4155    {
# Line 4479 | Line 4162 | yyreduce:
4162    class->min_idle = block_state.min_idle.value;
4163    class->max_idle = block_state.max_idle.value;
4164  
4165 <  if (class->number_per_cidr && block_state.number_per_cidr.value)
4166 <    if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4484 <        (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4485 <      if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4486 <          (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4487 <        rebuild_cidr_list(class);
4488 <
4165 >  bool diff = (class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value ||
4166 >               class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value);
4167    class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4168    class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4169    class->number_per_cidr = block_state.number_per_cidr.value;
4492 }
4493    break;
4170  
4171 <  case 223:
4172 < /* Line 1787 of yacc.c  */
4497 < #line 1351 "conf_parser.y"
4498 <    {
4499 <  if (conf_parser_ctx.pass == 1)
4500 <    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4171 >  if (diff)
4172 >    class_ip_limit_rebuild(class);
4173   }
4174 + #line 4175 "conf_parser.c" /* yacc.c:1652  */
4175      break;
4176  
4177 <  case 224:
4178 < /* Line 1787 of yacc.c  */
4506 < #line 1357 "conf_parser.y"
4177 >  case 251:
4178 > #line 1329 "conf_parser.y" /* yacc.c:1652  */
4179      {
4180    if (conf_parser_ctx.pass == 1)
4181 <    block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4181 >    strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4182   }
4183 + #line 4184 "conf_parser.c" /* yacc.c:1652  */
4184      break;
4185  
4186 <  case 225:
4187 < /* Line 1787 of yacc.c  */
4515 < #line 1363 "conf_parser.y"
4186 >  case 252:
4187 > #line 1335 "conf_parser.y" /* yacc.c:1652  */
4188      {
4189    if (conf_parser_ctx.pass == 1)
4190 <    block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4190 >    block_state.ping_freq.value = (yyvsp[-1].number);
4191   }
4192 + #line 4193 "conf_parser.c" /* yacc.c:1652  */
4193      break;
4194  
4195 <  case 226:
4196 < /* Line 1787 of yacc.c  */
4524 < #line 1369 "conf_parser.y"
4195 >  case 253:
4196 > #line 1341 "conf_parser.y" /* yacc.c:1652  */
4197      {
4198    if (conf_parser_ctx.pass == 1)
4199 <    block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4199 >    block_state.max_perip_local.value = (yyvsp[-1].number);
4200   }
4201 + #line 4202 "conf_parser.c" /* yacc.c:1652  */
4202      break;
4203  
4204 <  case 227:
4205 < /* Line 1787 of yacc.c  */
4533 < #line 1375 "conf_parser.y"
4204 >  case 254:
4205 > #line 1347 "conf_parser.y" /* yacc.c:1652  */
4206      {
4207    if (conf_parser_ctx.pass == 1)
4208 <    block_state.max_total.value = (yyvsp[(3) - (4)].number);
4208 >    block_state.max_perip_global.value = (yyvsp[-1].number);
4209   }
4210 + #line 4211 "conf_parser.c" /* yacc.c:1652  */
4211      break;
4212  
4213 <  case 228:
4214 < /* Line 1787 of yacc.c  */
4542 < #line 1381 "conf_parser.y"
4213 >  case 255:
4214 > #line 1353 "conf_parser.y" /* yacc.c:1652  */
4215      {
4216    if (conf_parser_ctx.pass == 1)
4217 <    block_state.max_global.value = (yyvsp[(3) - (4)].number);
4217 >    block_state.con_freq.value = (yyvsp[-1].number);
4218   }
4219 + #line 4220 "conf_parser.c" /* yacc.c:1652  */
4220      break;
4221  
4222 <  case 229:
4223 < /* Line 1787 of yacc.c  */
4551 < #line 1387 "conf_parser.y"
4222 >  case 256:
4223 > #line 1359 "conf_parser.y" /* yacc.c:1652  */
4224      {
4225    if (conf_parser_ctx.pass == 1)
4226 <    block_state.max_local.value = (yyvsp[(3) - (4)].number);
4226 >    block_state.max_channels.value = (yyvsp[-1].number);
4227   }
4228 + #line 4229 "conf_parser.c" /* yacc.c:1652  */
4229      break;
4230  
4231 <  case 230:
4232 < /* Line 1787 of yacc.c  */
4560 < #line 1393 "conf_parser.y"
4231 >  case 257:
4232 > #line 1365 "conf_parser.y" /* yacc.c:1652  */
4233      {
4234    if (conf_parser_ctx.pass == 1)
4235 <    block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4235 >    block_state.max_total.value = (yyvsp[-1].number);
4236   }
4237 + #line 4238 "conf_parser.c" /* yacc.c:1652  */
4238      break;
4239  
4240 <  case 231:
4241 < /* Line 1787 of yacc.c  */
4569 < #line 1399 "conf_parser.y"
4240 >  case 258:
4241 > #line 1371 "conf_parser.y" /* yacc.c:1652  */
4242      {
4243    if (conf_parser_ctx.pass == 1)
4244 <    block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4244 >    block_state.max_sendq.value = (yyvsp[-1].number);
4245   }
4246 + #line 4247 "conf_parser.c" /* yacc.c:1652  */
4247      break;
4248  
4249 <  case 232:
4250 < /* Line 1787 of yacc.c  */
4578 < #line 1405 "conf_parser.y"
4249 >  case 259:
4250 > #line 1377 "conf_parser.y" /* yacc.c:1652  */
4251      {
4252    if (conf_parser_ctx.pass == 1)
4253 <    if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4254 <      block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4253 >    if ((yyvsp[-1].number) >= CLIENT_FLOOD_MIN && (yyvsp[-1].number) <= CLIENT_FLOOD_MAX)
4254 >      block_state.max_recvq.value = (yyvsp[-1].number);
4255   }
4256 + #line 4257 "conf_parser.c" /* yacc.c:1652  */
4257      break;
4258  
4259 <  case 233:
4260 < /* Line 1787 of yacc.c  */
4588 < #line 1412 "conf_parser.y"
4259 >  case 260:
4260 > #line 1384 "conf_parser.y" /* yacc.c:1652  */
4261      {
4262    if (conf_parser_ctx.pass == 1)
4263 <    block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4263 >    block_state.cidr_bitlen_ipv4.value = (yyvsp[-1].number) > 32 ? 32 : (yyvsp[-1].number);
4264   }
4265 + #line 4266 "conf_parser.c" /* yacc.c:1652  */
4266      break;
4267  
4268 <  case 234:
4269 < /* Line 1787 of yacc.c  */
4597 < #line 1418 "conf_parser.y"
4268 >  case 261:
4269 > #line 1390 "conf_parser.y" /* yacc.c:1652  */
4270      {
4271    if (conf_parser_ctx.pass == 1)
4272 <    block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4272 >    block_state.cidr_bitlen_ipv6.value = (yyvsp[-1].number) > 128 ? 128 : (yyvsp[-1].number);
4273   }
4274 + #line 4275 "conf_parser.c" /* yacc.c:1652  */
4275      break;
4276  
4277 <  case 235:
4278 < /* Line 1787 of yacc.c  */
4606 < #line 1424 "conf_parser.y"
4277 >  case 262:
4278 > #line 1396 "conf_parser.y" /* yacc.c:1652  */
4279      {
4280    if (conf_parser_ctx.pass == 1)
4281 <    block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4281 >    block_state.number_per_cidr.value = (yyvsp[-1].number);
4282   }
4283 + #line 4284 "conf_parser.c" /* yacc.c:1652  */
4284      break;
4285  
4286 <  case 236:
4287 < /* Line 1787 of yacc.c  */
4615 < #line 1430 "conf_parser.y"
4286 >  case 263:
4287 > #line 1402 "conf_parser.y" /* yacc.c:1652  */
4288      {
4289    if (conf_parser_ctx.pass != 1)
4290      break;
4291  
4292 <  block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4292 >  block_state.min_idle.value = (yyvsp[-1].number);
4293    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4294   }
4295 + #line 4296 "conf_parser.c" /* yacc.c:1652  */
4296      break;
4297  
4298 <  case 237:
4299 < /* Line 1787 of yacc.c  */
4627 < #line 1439 "conf_parser.y"
4298 >  case 264:
4299 > #line 1411 "conf_parser.y" /* yacc.c:1652  */
4300      {
4301    if (conf_parser_ctx.pass != 1)
4302      break;
4303  
4304 <  block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4304 >  block_state.max_idle.value = (yyvsp[-1].number);
4305    block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4306   }
4307 + #line 4308 "conf_parser.c" /* yacc.c:1652  */
4308      break;
4309  
4310 <  case 238:
4311 < /* Line 1787 of yacc.c  */
4639 < #line 1448 "conf_parser.y"
4310 >  case 265:
4311 > #line 1420 "conf_parser.y" /* yacc.c:1652  */
4312      {
4313    if (conf_parser_ctx.pass == 1)
4314      block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4315   }
4316 + #line 4317 "conf_parser.c" /* yacc.c:1652  */
4317      break;
4318  
4319 <  case 242:
4320 < /* Line 1787 of yacc.c  */
4648 < #line 1455 "conf_parser.y"
4319 >  case 269:
4320 > #line 1427 "conf_parser.y" /* yacc.c:1652  */
4321      {
4322    if (conf_parser_ctx.pass == 1)
4323      block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4324   }
4325 + #line 4326 "conf_parser.c" /* yacc.c:1652  */
4326      break;
4327  
4328 <  case 243:
4329 < /* Line 1787 of yacc.c  */
4657 < #line 1459 "conf_parser.y"
4328 >  case 270:
4329 > #line 1431 "conf_parser.y" /* yacc.c:1652  */
4330      {
4331    if (conf_parser_ctx.pass == 1)
4332      block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4333   }
4334 + #line 4335 "conf_parser.c" /* yacc.c:1652  */
4335      break;
4336  
4337 <  case 244:
4338 < /* Line 1787 of yacc.c  */
4666 < #line 1469 "conf_parser.y"
4337 >  case 271:
4338 > #line 1441 "conf_parser.y" /* yacc.c:1652  */
4339      {
4340    if (conf_parser_ctx.pass == 2)
4341      reset_block_state();
4342   }
4343 + #line 4344 "conf_parser.c" /* yacc.c:1652  */
4344      break;
4345  
4346 <  case 246:
4347 < /* Line 1787 of yacc.c  */
4675 < #line 1475 "conf_parser.y"
4346 >  case 273:
4347 > #line 1447 "conf_parser.y" /* yacc.c:1652  */
4348      {
4349    block_state.flags.value = 0;
4350   }
4351 + #line 4352 "conf_parser.c" /* yacc.c:1652  */
4352      break;
4353  
4354 <  case 250:
4355 < /* Line 1787 of yacc.c  */
4683 < #line 1481 "conf_parser.y"
4354 >  case 277:
4355 > #line 1453 "conf_parser.y" /* yacc.c:1652  */
4356      {
4357    if (conf_parser_ctx.pass == 2)
4358      block_state.flags.value |= LISTENER_SSL;
4359   }
4360 + #line 4361 "conf_parser.c" /* yacc.c:1652  */
4361      break;
4362  
4363 <  case 251:
4364 < /* Line 1787 of yacc.c  */
4692 < #line 1485 "conf_parser.y"
4363 >  case 278:
4364 > #line 1457 "conf_parser.y" /* yacc.c:1652  */
4365      {
4366    if (conf_parser_ctx.pass == 2)
4367      block_state.flags.value |= LISTENER_HIDDEN;
4368   }
4369 + #line 4370 "conf_parser.c" /* yacc.c:1652  */
4370      break;
4371  
4372 <  case 252:
4373 < /* Line 1787 of yacc.c  */
4701 < #line 1489 "conf_parser.y"
4372 >  case 279:
4373 > #line 1461 "conf_parser.y" /* yacc.c:1652  */
4374      {
4375    if (conf_parser_ctx.pass == 2)
4376     block_state.flags.value |= LISTENER_SERVER;
4377   }
4378 + #line 4379 "conf_parser.c" /* yacc.c:1652  */
4379      break;
4380  
4381 <  case 260:
4382 < /* Line 1787 of yacc.c  */
4710 < #line 1497 "conf_parser.y"
4381 >  case 287:
4382 > #line 1469 "conf_parser.y" /* yacc.c:1652  */
4383      { block_state.flags.value = 0; }
4384 + #line 4385 "conf_parser.c" /* yacc.c:1652  */
4385      break;
4386  
4387 <  case 264:
4388 < /* Line 1787 of yacc.c  */
4716 < #line 1502 "conf_parser.y"
4387 >  case 291:
4388 > #line 1474 "conf_parser.y" /* yacc.c:1652  */
4389      {
4390    if (conf_parser_ctx.pass == 2)
4391    {
4392 + #ifndef HAVE_TLS
4393      if (block_state.flags.value & LISTENER_SSL)
4394 < #ifdef HAVE_LIBCRYPTO
4395 <      if (!ServerInfo.server_ctx)
4394 >    {
4395 >      conf_error_report("TLS not available - port closed");
4396 >      break;
4397 >    }
4398   #endif
4399 <      {
4725 <        conf_error_report("SSL not available - port closed");
4726 <        break;
4727 <      }
4728 <    add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4399 >    listener_add((yyvsp[0].number), block_state.addr.buf, block_state.flags.value);
4400    }
4401   }
4402 + #line 4403 "conf_parser.c" /* yacc.c:1652  */
4403      break;
4404  
4405 <  case 265:
4406 < /* Line 1787 of yacc.c  */
4735 < #line 1516 "conf_parser.y"
4405 >  case 292:
4406 > #line 1487 "conf_parser.y" /* yacc.c:1652  */
4407      {
4408    if (conf_parser_ctx.pass == 2)
4409    {
4410 <    int i;
4740 <
4410 > #ifndef HAVE_TLS
4411      if (block_state.flags.value & LISTENER_SSL)
4412 < #ifdef HAVE_LIBCRYPTO
4413 <      if (!ServerInfo.server_ctx)
4412 >    {
4413 >      conf_error_report("TLS not available - port closed");
4414 >      break;
4415 >    }
4416   #endif
4745      {
4746        conf_error_report("SSL not available - port closed");
4747        break;
4748      }
4417  
4418 <    for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4419 <      add_listener(i, block_state.addr.buf, block_state.flags.value);
4418 >    for (int i = (yyvsp[-2].number); i <= (yyvsp[0].number); ++i)
4419 >      listener_add(i, block_state.addr.buf, block_state.flags.value);
4420    }
4421   }
4422 + #line 4423 "conf_parser.c" /* yacc.c:1652  */
4423      break;
4424  
4425 <  case 266:
4426 < /* Line 1787 of yacc.c  */
4758 < #line 1536 "conf_parser.y"
4425 >  case 293:
4426 > #line 1504 "conf_parser.y" /* yacc.c:1652  */
4427      {
4428    if (conf_parser_ctx.pass == 2)
4429      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4430   }
4431 + #line 4432 "conf_parser.c" /* yacc.c:1652  */
4432      break;
4433  
4434 <  case 267:
4435 < /* Line 1787 of yacc.c  */
4767 < #line 1542 "conf_parser.y"
4434 >  case 294:
4435 > #line 1510 "conf_parser.y" /* yacc.c:1652  */
4436      {
4437    if (conf_parser_ctx.pass == 2)
4438      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4439   }
4440 + #line 4441 "conf_parser.c" /* yacc.c:1652  */
4441      break;
4442  
4443 <  case 268:
4444 < /* Line 1787 of yacc.c  */
4776 < #line 1551 "conf_parser.y"
4443 >  case 295:
4444 > #line 1520 "conf_parser.y" /* yacc.c:1652  */
4445      {
4446    if (conf_parser_ctx.pass == 2)
4447      reset_block_state();
4448   }
4449 + #line 4450 "conf_parser.c" /* yacc.c:1652  */
4450      break;
4451  
4452 <  case 269:
4453 < /* Line 1787 of yacc.c  */
4785 < #line 1555 "conf_parser.y"
4452 >  case 296:
4453 > #line 1524 "conf_parser.y" /* yacc.c:1652  */
4454      {
4455 <  dlink_node *ptr = NULL;
4455 >  dlink_node *node = NULL;
4456  
4457    if (conf_parser_ctx.pass != 2)
4458      break;
4459  
4460 <  DLINK_FOREACH(ptr, block_state.mask.list.head)
4460 >  DLINK_FOREACH(node, block_state.mask.list.head)
4461    {
4794    struct MaskItem *conf = NULL;
4462      struct split_nuh_item nuh;
4463 +    char *s = node->data;
4464 +
4465 +    if (EmptyString(s))
4466 +      continue;
4467  
4468 <    nuh.nuhmask  = ptr->data;
4468 >    nuh.nuhmask  = s;
4469      nuh.nickptr  = NULL;
4470      nuh.userptr  = block_state.user.buf;
4471      nuh.hostptr  = block_state.host.buf;
4472 +
4473      nuh.nicksize = 0;
4474      nuh.usersize = sizeof(block_state.user.buf);
4475      nuh.hostsize = sizeof(block_state.host.buf);
4476 +
4477      split_nuh(&nuh);
4478  
4479 <    conf        = conf_make(CONF_CLIENT);
4480 <    conf->user  = xstrdup(collapse(block_state.user.buf));
4481 <    conf->host  = xstrdup(collapse(block_state.host.buf));
4479 >    struct MaskItem *conf = conf_make(CONF_CLIENT);
4480 >    conf->user = xstrdup(block_state.user.buf);
4481 >    conf->host = xstrdup(block_state.host.buf);
4482  
4483      if (block_state.rpass.buf[0])
4484        conf->passwd = xstrdup(block_state.rpass.buf);
4485      if (block_state.name.buf[0])
4486 <      conf->passwd = xstrdup(block_state.name.buf);
4486 >      conf->name = xstrdup(block_state.name.buf);
4487  
4488      conf->flags = block_state.flags.value;
4489      conf->port  = block_state.port.value;
# Line 4819 | Line 4492 | yyreduce:
4492      add_conf_by_address(CONF_CLIENT, conf);
4493    }
4494   }
4495 + #line 4496 "conf_parser.c" /* yacc.c:1652  */
4496      break;
4497  
4498 <  case 281:
4499 < /* Line 1787 of yacc.c  */
4826 < #line 1598 "conf_parser.y"
4498 >  case 308:
4499 > #line 1578 "conf_parser.y" /* yacc.c:1652  */
4500      {
4501    if (conf_parser_ctx.pass == 2)
4502      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4503   }
4504 + #line 4505 "conf_parser.c" /* yacc.c:1652  */
4505      break;
4506  
4507 <  case 282:
4508 < /* Line 1787 of yacc.c  */
4835 < #line 1604 "conf_parser.y"
4507 >  case 309:
4508 > #line 1584 "conf_parser.y" /* yacc.c:1652  */
4509      {
4510    if (conf_parser_ctx.pass == 2)
4511      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4512   }
4513 + #line 4514 "conf_parser.c" /* yacc.c:1652  */
4514      break;
4515  
4516 <  case 283:
4517 < /* Line 1787 of yacc.c  */
4844 < #line 1610 "conf_parser.y"
4516 >  case 310:
4517 > #line 1590 "conf_parser.y" /* yacc.c:1652  */
4518      {
4519    if (conf_parser_ctx.pass == 2)
4520      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4521   }
4522 + #line 4523 "conf_parser.c" /* yacc.c:1652  */
4523      break;
4524  
4525 <  case 284:
4526 < /* Line 1787 of yacc.c  */
4853 < #line 1616 "conf_parser.y"
4525 >  case 311:
4526 > #line 1596 "conf_parser.y" /* yacc.c:1652  */
4527      {
4528    if (conf_parser_ctx.pass == 2)
4529    {
# Line 4860 | Line 4533 | yyreduce:
4533        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4534    }
4535   }
4536 + #line 4537 "conf_parser.c" /* yacc.c:1652  */
4537      break;
4538  
4539 <  case 285:
4540 < /* Line 1787 of yacc.c  */
4867 < #line 1627 "conf_parser.y"
4539 >  case 312:
4540 > #line 1607 "conf_parser.y" /* yacc.c:1652  */
4541      {
4542    if (conf_parser_ctx.pass == 2)
4543 <    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
4543 >    block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
4544   }
4545 + #line 4546 "conf_parser.c" /* yacc.c:1652  */
4546      break;
4547  
4548 <  case 289:
4549 < /* Line 1787 of yacc.c  */
4876 < #line 1634 "conf_parser.y"
4548 >  case 316:
4549 > #line 1614 "conf_parser.y" /* yacc.c:1652  */
4550      {
4551    if (conf_parser_ctx.pass == 2)
4552      block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
4553   }
4554 + #line 4555 "conf_parser.c" /* yacc.c:1652  */
4555      break;
4556  
4557 <  case 290:
4558 < /* Line 1787 of yacc.c  */
4885 < #line 1638 "conf_parser.y"
4557 >  case 317:
4558 > #line 1618 "conf_parser.y" /* yacc.c:1652  */
4559      {
4560    if (conf_parser_ctx.pass == 2)
4561      block_state.flags.value |= CONF_FLAGS_NOLIMIT;
4562   }
4563 + #line 4564 "conf_parser.c" /* yacc.c:1652  */
4564      break;
4565  
4566 <  case 291:
4567 < /* Line 1787 of yacc.c  */
4894 < #line 1642 "conf_parser.y"
4566 >  case 318:
4567 > #line 1622 "conf_parser.y" /* yacc.c:1652  */
4568      {
4569    if (conf_parser_ctx.pass == 2)
4570      block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
4571   }
4572 + #line 4573 "conf_parser.c" /* yacc.c:1652  */
4573      break;
4574  
4575 <  case 292:
4576 < /* Line 1787 of yacc.c  */
4903 < #line 1646 "conf_parser.y"
4575 >  case 319:
4576 > #line 1626 "conf_parser.y" /* yacc.c:1652  */
4577      {
4578    if (conf_parser_ctx.pass == 2)
4579 <    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4579 >    block_state.flags.value |= CONF_FLAGS_EXEMPTXLINE;
4580   }
4581 + #line 4582 "conf_parser.c" /* yacc.c:1652  */
4582      break;
4583  
4584 <  case 293:
4585 < /* Line 1787 of yacc.c  */
4912 < #line 1650 "conf_parser.y"
4584 >  case 320:
4585 > #line 1630 "conf_parser.y" /* yacc.c:1652  */
4586      {
4587    if (conf_parser_ctx.pass == 2)
4588 <    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4588 >    block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
4589   }
4590 + #line 4591 "conf_parser.c" /* yacc.c:1652  */
4591      break;
4592  
4593 <  case 294:
4594 < /* Line 1787 of yacc.c  */
4921 < #line 1654 "conf_parser.y"
4593 >  case 321:
4594 > #line 1634 "conf_parser.y" /* yacc.c:1652  */
4595      {
4596    if (conf_parser_ctx.pass == 2)
4597 <    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4597 >    block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
4598   }
4599 + #line 4600 "conf_parser.c" /* yacc.c:1652  */
4600      break;
4601  
4602 <  case 295:
4603 < /* Line 1787 of yacc.c  */
4930 < #line 1658 "conf_parser.y"
4602 >  case 322:
4603 > #line 1638 "conf_parser.y" /* yacc.c:1652  */
4604      {
4605    if (conf_parser_ctx.pass == 2)
4606 <    block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
4606 >    block_state.flags.value |= CONF_FLAGS_NO_TILDE;
4607   }
4608 + #line 4609 "conf_parser.c" /* yacc.c:1652  */
4609      break;
4610  
4611 <  case 296:
4612 < /* Line 1787 of yacc.c  */
4939 < #line 1662 "conf_parser.y"
4611 >  case 323:
4612 > #line 1642 "conf_parser.y" /* yacc.c:1652  */
4613      {
4614    if (conf_parser_ctx.pass == 2)
4615      block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
4616   }
4617 + #line 4618 "conf_parser.c" /* yacc.c:1652  */
4618      break;
4619  
4620 <  case 297:
4621 < /* Line 1787 of yacc.c  */
4948 < #line 1666 "conf_parser.y"
4620 >  case 324:
4621 > #line 1646 "conf_parser.y" /* yacc.c:1652  */
4622      {
4623    if (conf_parser_ctx.pass == 2)
4624      block_state.flags.value |= CONF_FLAGS_WEBIRC;
4625   }
4626 + #line 4627 "conf_parser.c" /* yacc.c:1652  */
4627      break;
4628  
4629 <  case 298:
4630 < /* Line 1787 of yacc.c  */
4957 < #line 1670 "conf_parser.y"
4629 >  case 325:
4630 > #line 1650 "conf_parser.y" /* yacc.c:1652  */
4631      {
4632    if (conf_parser_ctx.pass == 2)
4633      block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
4634   }
4635 + #line 4636 "conf_parser.c" /* yacc.c:1652  */
4636      break;
4637  
4638 <  case 299:
4639 < /* Line 1787 of yacc.c  */
4966 < #line 1676 "conf_parser.y"
4638 >  case 326:
4639 > #line 1656 "conf_parser.y" /* yacc.c:1652  */
4640      {
4641    if (conf_parser_ctx.pass != 2)
4642      break;
4643  
4644 <  if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
4644 >  if (valid_hostname(yylval.string))
4645    {
4646      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4647      block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
# Line 4976 | Line 4649 | yyreduce:
4649    else
4650      ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
4651   }
4652 + #line 4653 "conf_parser.c" /* yacc.c:1652  */
4653      break;
4654  
4655 <  case 300:
4656 < /* Line 1787 of yacc.c  */
4983 < #line 1690 "conf_parser.y"
4655 >  case 327:
4656 > #line 1670 "conf_parser.y" /* yacc.c:1652  */
4657      {
4658    if (conf_parser_ctx.pass != 2)
4659      break;
# Line 4988 | Line 4661 | yyreduce:
4661    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4662    block_state.flags.value |= CONF_FLAGS_REDIR;
4663   }
4664 + #line 4665 "conf_parser.c" /* yacc.c:1652  */
4665      break;
4666  
4667 <  case 301:
4668 < /* Line 1787 of yacc.c  */
4995 < #line 1699 "conf_parser.y"
4667 >  case 328:
4668 > #line 1679 "conf_parser.y" /* yacc.c:1652  */
4669      {
4670    if (conf_parser_ctx.pass != 2)
4671      break;
4672  
4673    block_state.flags.value |= CONF_FLAGS_REDIR;
4674 <  block_state.port.value = (yyvsp[(3) - (4)].number);
4674 >  block_state.port.value = (yyvsp[-1].number);
4675   }
4676 + #line 4677 "conf_parser.c" /* yacc.c:1652  */
4677      break;
4678  
4679 <  case 302:
4680 < /* Line 1787 of yacc.c  */
5007 < #line 1712 "conf_parser.y"
4679 >  case 329:
4680 > #line 1692 "conf_parser.y" /* yacc.c:1652  */
4681      {
4682    if (conf_parser_ctx.pass != 2)
4683      break;
# Line 5012 | Line 4685 | yyreduce:
4685    reset_block_state();
4686    strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
4687   }
4688 + #line 4689 "conf_parser.c" /* yacc.c:1652  */
4689 +    break;
4690 +
4691 +  case 330:
4692 + #line 1699 "conf_parser.y" /* yacc.c:1652  */
4693 +    {
4694 +  if (conf_parser_ctx.pass != 2)
4695      break;
4696  
4697 <  case 303:
5018 < /* Line 1787 of yacc.c  */
5019 < #line 1719 "conf_parser.y"
5020 <    {
5021 <  if (IsChanPrefix(block_state.name.buf[0]))
5022 <    create_channel_resv(block_state.name.buf, block_state.rpass.buf);
5023 <  else if (block_state.name.buf[0])
5024 <    create_nick_resv(block_state.name.buf, block_state.rpass.buf);
4697 >  resv_make(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
4698   }
4699 + #line 4700 "conf_parser.c" /* yacc.c:1652  */
4700      break;
4701  
4702 <  case 310:
4703 < /* Line 1787 of yacc.c  */
5030 < #line 1730 "conf_parser.y"
4702 >  case 337:
4703 > #line 1710 "conf_parser.y" /* yacc.c:1652  */
4704      {
4705    if (conf_parser_ctx.pass == 2)
4706 <    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4706 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4707   }
4708 + #line 4709 "conf_parser.c" /* yacc.c:1652  */
4709      break;
4710  
4711 <  case 311:
4712 < /* Line 1787 of yacc.c  */
5039 < #line 1736 "conf_parser.y"
4711 >  case 338:
4712 > #line 1716 "conf_parser.y" /* yacc.c:1652  */
4713      {
4714    if (conf_parser_ctx.pass == 2)
4715 <    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4715 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4716   }
4717 + #line 4718 "conf_parser.c" /* yacc.c:1652  */
4718      break;
4719  
4720 <  case 312:
4721 < /* Line 1787 of yacc.c  */
5048 < #line 1742 "conf_parser.y"
4720 >  case 339:
4721 > #line 1722 "conf_parser.y" /* yacc.c:1652  */
4722      {
4723    if (conf_parser_ctx.pass == 2)
4724 <    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4724 >    dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4725   }
4726 + #line 4727 "conf_parser.c" /* yacc.c:1652  */
4727      break;
4728  
4729 <  case 318:
4730 < /* Line 1787 of yacc.c  */
5057 < #line 1756 "conf_parser.y"
4729 >  case 345:
4730 > #line 1737 "conf_parser.y" /* yacc.c:1652  */
4731      {
4732 <  if (conf_parser_ctx.pass == 2)
4732 >  if (conf_parser_ctx.pass != 2)
4733 >    break;
4734 >
4735 >  if (server_valid_name(yylval.string) == true)
4736    {
4737 <    if (valid_servname(yylval.string))
4738 <    {
5063 <      struct MaskItem *conf = conf_make(CONF_SERVICE);
5064 <      conf->name = xstrdup(yylval.string);
5065 <    }
4737 >    struct ServiceItem *service = service_make();
4738 >    service->name = xstrdup(yylval.string);
4739    }
4740   }
4741 + #line 4742 "conf_parser.c" /* yacc.c:1652  */
4742      break;
4743  
4744 <  case 319:
4745 < /* Line 1787 of yacc.c  */
5072 < #line 1771 "conf_parser.y"
4744 >  case 346:
4745 > #line 1753 "conf_parser.y" /* yacc.c:1652  */
4746      {
4747    if (conf_parser_ctx.pass != 2)
4748      break;
# Line 5081 | Line 4754 | yyreduce:
4754    strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
4755    block_state.flags.value = SHARED_ALL;
4756   }
4757 + #line 4758 "conf_parser.c" /* yacc.c:1652  */
4758      break;
4759  
4760 <  case 320:
4761 < /* Line 1787 of yacc.c  */
5088 < #line 1782 "conf_parser.y"
4760 >  case 347:
4761 > #line 1764 "conf_parser.y" /* yacc.c:1652  */
4762      {
5090  struct MaskItem *conf = NULL;
5091
4763    if (conf_parser_ctx.pass != 2)
4764      break;
4765  
4766 <  conf = conf_make(CONF_ULINE);
4767 <  conf->flags = block_state.flags.value;
4768 <  conf->name = xstrdup(block_state.name.buf);
4769 <  conf->user = xstrdup(block_state.user.buf);
4770 <  conf->user = xstrdup(block_state.host.buf);
4766 >  struct SharedItem *shared = shared_make();
4767 >  shared->type = block_state.flags.value;
4768 >  shared->server = xstrdup(block_state.name.buf);
4769 >  shared->user = xstrdup(block_state.user.buf);
4770 >  shared->host = xstrdup(block_state.host.buf);
4771   }
4772 + #line 4773 "conf_parser.c" /* yacc.c:1652  */
4773      break;
4774  
4775 <  case 327:
4776 < /* Line 1787 of yacc.c  */
5105 < #line 1799 "conf_parser.y"
4775 >  case 354:
4776 > #line 1779 "conf_parser.y" /* yacc.c:1652  */
4777      {
4778    if (conf_parser_ctx.pass == 2)
4779      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4780   }
4781 + #line 4782 "conf_parser.c" /* yacc.c:1652  */
4782      break;
4783  
4784 <  case 328:
4785 < /* Line 1787 of yacc.c  */
5114 < #line 1805 "conf_parser.y"
4784 >  case 355:
4785 > #line 1785 "conf_parser.y" /* yacc.c:1652  */
4786      {
4787    if (conf_parser_ctx.pass == 2)
4788    {
# Line 5129 | Line 4800 | yyreduce:
4800      split_nuh(&nuh);
4801    }
4802   }
4803 + #line 4804 "conf_parser.c" /* yacc.c:1652  */
4804      break;
4805  
4806 <  case 329:
4807 < /* Line 1787 of yacc.c  */
5136 < #line 1824 "conf_parser.y"
4806 >  case 356:
4807 > #line 1804 "conf_parser.y" /* yacc.c:1652  */
4808      {
4809    if (conf_parser_ctx.pass == 2)
4810      block_state.flags.value = 0;
4811   }
4812 + #line 4813 "conf_parser.c" /* yacc.c:1652  */
4813      break;
4814  
4815 <  case 333:
4816 < /* Line 1787 of yacc.c  */
5145 < #line 1831 "conf_parser.y"
4815 >  case 360:
4816 > #line 1811 "conf_parser.y" /* yacc.c:1652  */
4817      {
4818    if (conf_parser_ctx.pass == 2)
4819      block_state.flags.value |= SHARED_KLINE;
4820   }
4821 + #line 4822 "conf_parser.c" /* yacc.c:1652  */
4822      break;
4823  
4824 <  case 334:
4825 < /* Line 1787 of yacc.c  */
5154 < #line 1835 "conf_parser.y"
4824 >  case 361:
4825 > #line 1815 "conf_parser.y" /* yacc.c:1652  */
4826      {
4827    if (conf_parser_ctx.pass == 2)
4828      block_state.flags.value |= SHARED_UNKLINE;
4829   }
4830 + #line 4831 "conf_parser.c" /* yacc.c:1652  */
4831      break;
4832  
4833 <  case 335:
4834 < /* Line 1787 of yacc.c  */
5163 < #line 1839 "conf_parser.y"
4833 >  case 362:
4834 > #line 1819 "conf_parser.y" /* yacc.c:1652  */
4835      {
4836    if (conf_parser_ctx.pass == 2)
4837      block_state.flags.value |= SHARED_DLINE;
4838   }
4839 + #line 4840 "conf_parser.c" /* yacc.c:1652  */
4840      break;
4841  
4842 <  case 336:
4843 < /* Line 1787 of yacc.c  */
5172 < #line 1843 "conf_parser.y"
4842 >  case 363:
4843 > #line 1823 "conf_parser.y" /* yacc.c:1652  */
4844      {
4845    if (conf_parser_ctx.pass == 2)
4846      block_state.flags.value |= SHARED_UNDLINE;
4847   }
4848 + #line 4849 "conf_parser.c" /* yacc.c:1652  */
4849      break;
4850  
4851 <  case 337:
4852 < /* Line 1787 of yacc.c  */
5181 < #line 1847 "conf_parser.y"
4851 >  case 364:
4852 > #line 1827 "conf_parser.y" /* yacc.c:1652  */
4853      {
4854    if (conf_parser_ctx.pass == 2)
4855      block_state.flags.value |= SHARED_XLINE;
4856   }
4857 + #line 4858 "conf_parser.c" /* yacc.c:1652  */
4858      break;
4859  
4860 <  case 338:
4861 < /* Line 1787 of yacc.c  */
5190 < #line 1851 "conf_parser.y"
4860 >  case 365:
4861 > #line 1831 "conf_parser.y" /* yacc.c:1652  */
4862      {
4863    if (conf_parser_ctx.pass == 2)
4864      block_state.flags.value |= SHARED_UNXLINE;
4865   }
4866 + #line 4867 "conf_parser.c" /* yacc.c:1652  */
4867      break;
4868  
4869 <  case 339:
4870 < /* Line 1787 of yacc.c  */
5199 < #line 1855 "conf_parser.y"
4869 >  case 366:
4870 > #line 1835 "conf_parser.y" /* yacc.c:1652  */
4871      {
4872    if (conf_parser_ctx.pass == 2)
4873      block_state.flags.value |= SHARED_RESV;
4874   }
4875 + #line 4876 "conf_parser.c" /* yacc.c:1652  */
4876      break;
4877  
4878 <  case 340:
4879 < /* Line 1787 of yacc.c  */
5208 < #line 1859 "conf_parser.y"
4878 >  case 367:
4879 > #line 1839 "conf_parser.y" /* yacc.c:1652  */
4880      {
4881    if (conf_parser_ctx.pass == 2)
4882      block_state.flags.value |= SHARED_UNRESV;
4883   }
4884 + #line 4885 "conf_parser.c" /* yacc.c:1652  */
4885      break;
4886  
4887 <  case 341:
4888 < /* Line 1787 of yacc.c  */
5217 < #line 1863 "conf_parser.y"
4887 >  case 368:
4888 > #line 1843 "conf_parser.y" /* yacc.c:1652  */
4889      {
4890    if (conf_parser_ctx.pass == 2)
4891      block_state.flags.value |= SHARED_LOCOPS;
4892   }
4893 + #line 4894 "conf_parser.c" /* yacc.c:1652  */
4894      break;
4895  
4896 <  case 342:
4897 < /* Line 1787 of yacc.c  */
5226 < #line 1867 "conf_parser.y"
4896 >  case 369:
4897 > #line 1847 "conf_parser.y" /* yacc.c:1652  */
4898      {
4899    if (conf_parser_ctx.pass == 2)
4900      block_state.flags.value = SHARED_ALL;
4901   }
4902 + #line 4903 "conf_parser.c" /* yacc.c:1652  */
4903      break;
4904  
4905 <  case 343:
4906 < /* Line 1787 of yacc.c  */
5235 < #line 1876 "conf_parser.y"
4905 >  case 370:
4906 > #line 1857 "conf_parser.y" /* yacc.c:1652  */
4907      {
4908    if (conf_parser_ctx.pass != 2)
4909      break;
# Line 5240 | Line 4911 | yyreduce:
4911    reset_block_state();
4912  
4913    strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
4914 <  block_state.flags.value = SHARED_ALL;
4914 >  block_state.flags.value = CLUSTER_ALL;
4915   }
4916 + #line 4917 "conf_parser.c" /* yacc.c:1652  */
4917      break;
4918  
4919 <  case 344:
4920 < /* Line 1787 of yacc.c  */
5249 < #line 1885 "conf_parser.y"
4919 >  case 371:
4920 > #line 1866 "conf_parser.y" /* yacc.c:1652  */
4921      {
5251  struct MaskItem *conf = NULL;
5252
4922    if (conf_parser_ctx.pass != 2)
4923      break;
4924  
4925 <  conf = conf_make(CONF_CLUSTER);
4926 <  conf->flags = block_state.flags.value;
4927 <  conf->name = xstrdup(block_state.name.buf);
4925 >  struct ClusterItem *cluster = cluster_make();
4926 >  cluster->type = block_state.flags.value;
4927 >  cluster->server = xstrdup(block_state.name.buf);
4928   }
4929 + #line 4930 "conf_parser.c" /* yacc.c:1652  */
4930      break;
4931  
4932 <  case 350:
4933 < /* Line 1787 of yacc.c  */
5264 < #line 1900 "conf_parser.y"
4932 >  case 377:
4933 > #line 1879 "conf_parser.y" /* yacc.c:1652  */
4934      {
4935    if (conf_parser_ctx.pass == 2)
4936      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4937   }
4938 + #line 4939 "conf_parser.c" /* yacc.c:1652  */
4939      break;
4940  
4941 <  case 351:
4942 < /* Line 1787 of yacc.c  */
5273 < #line 1906 "conf_parser.y"
4941 >  case 378:
4942 > #line 1885 "conf_parser.y" /* yacc.c:1652  */
4943      {
4944    if (conf_parser_ctx.pass == 2)
4945      block_state.flags.value = 0;
4946   }
4947 + #line 4948 "conf_parser.c" /* yacc.c:1652  */
4948      break;
4949  
4950 <  case 355:
4951 < /* Line 1787 of yacc.c  */
5282 < #line 1913 "conf_parser.y"
4950 >  case 382:
4951 > #line 1892 "conf_parser.y" /* yacc.c:1652  */
4952      {
4953    if (conf_parser_ctx.pass == 2)
4954 <    block_state.flags.value |= SHARED_KLINE;
4954 >    block_state.flags.value |= CLUSTER_KLINE;
4955   }
4956 + #line 4957 "conf_parser.c" /* yacc.c:1652  */
4957      break;
4958  
4959 <  case 356:
4960 < /* Line 1787 of yacc.c  */
5291 < #line 1917 "conf_parser.y"
4959 >  case 383:
4960 > #line 1896 "conf_parser.y" /* yacc.c:1652  */
4961      {
4962    if (conf_parser_ctx.pass == 2)
4963 <    block_state.flags.value |= SHARED_UNKLINE;
4963 >    block_state.flags.value |= CLUSTER_UNKLINE;
4964   }
4965 + #line 4966 "conf_parser.c" /* yacc.c:1652  */
4966      break;
4967  
4968 <  case 357:
4969 < /* Line 1787 of yacc.c  */
5300 < #line 1921 "conf_parser.y"
4968 >  case 384:
4969 > #line 1900 "conf_parser.y" /* yacc.c:1652  */
4970      {
4971    if (conf_parser_ctx.pass == 2)
4972 <    block_state.flags.value |= SHARED_DLINE;
4972 >    block_state.flags.value |= CLUSTER_DLINE;
4973   }
4974 + #line 4975 "conf_parser.c" /* yacc.c:1652  */
4975      break;
4976  
4977 <  case 358:
4978 < /* Line 1787 of yacc.c  */
5309 < #line 1925 "conf_parser.y"
4977 >  case 385:
4978 > #line 1904 "conf_parser.y" /* yacc.c:1652  */
4979      {
4980    if (conf_parser_ctx.pass == 2)
4981 <    block_state.flags.value |= SHARED_UNDLINE;
4981 >    block_state.flags.value |= CLUSTER_UNDLINE;
4982   }
4983 + #line 4984 "conf_parser.c" /* yacc.c:1652  */
4984      break;
4985  
4986 <  case 359:
4987 < /* Line 1787 of yacc.c  */
5318 < #line 1929 "conf_parser.y"
4986 >  case 386:
4987 > #line 1908 "conf_parser.y" /* yacc.c:1652  */
4988      {
4989    if (conf_parser_ctx.pass == 2)
4990 <    block_state.flags.value |= SHARED_XLINE;
4990 >    block_state.flags.value |= CLUSTER_XLINE;
4991   }
4992 + #line 4993 "conf_parser.c" /* yacc.c:1652  */
4993      break;
4994  
4995 <  case 360:
4996 < /* Line 1787 of yacc.c  */
5327 < #line 1933 "conf_parser.y"
4995 >  case 387:
4996 > #line 1912 "conf_parser.y" /* yacc.c:1652  */
4997      {
4998    if (conf_parser_ctx.pass == 2)
4999 <    block_state.flags.value |= SHARED_UNXLINE;
4999 >    block_state.flags.value |= CLUSTER_UNXLINE;
5000   }
5001 + #line 5002 "conf_parser.c" /* yacc.c:1652  */
5002      break;
5003  
5004 <  case 361:
5005 < /* Line 1787 of yacc.c  */
5336 < #line 1937 "conf_parser.y"
5004 >  case 388:
5005 > #line 1916 "conf_parser.y" /* yacc.c:1652  */
5006      {
5007    if (conf_parser_ctx.pass == 2)
5008 <    block_state.flags.value |= SHARED_RESV;
5008 >    block_state.flags.value |= CLUSTER_RESV;
5009   }
5010 + #line 5011 "conf_parser.c" /* yacc.c:1652  */
5011      break;
5012  
5013 <  case 362:
5014 < /* Line 1787 of yacc.c  */
5345 < #line 1941 "conf_parser.y"
5013 >  case 389:
5014 > #line 1920 "conf_parser.y" /* yacc.c:1652  */
5015      {
5016    if (conf_parser_ctx.pass == 2)
5017 <    block_state.flags.value |= SHARED_UNRESV;
5017 >    block_state.flags.value |= CLUSTER_UNRESV;
5018   }
5019 + #line 5020 "conf_parser.c" /* yacc.c:1652  */
5020      break;
5021  
5022 <  case 363:
5023 < /* Line 1787 of yacc.c  */
5354 < #line 1945 "conf_parser.y"
5022 >  case 390:
5023 > #line 1924 "conf_parser.y" /* yacc.c:1652  */
5024      {
5025    if (conf_parser_ctx.pass == 2)
5026 <    block_state.flags.value |= SHARED_LOCOPS;
5026 >    block_state.flags.value |= CLUSTER_LOCOPS;
5027   }
5028 + #line 5029 "conf_parser.c" /* yacc.c:1652  */
5029      break;
5030  
5031 <  case 364:
5032 < /* Line 1787 of yacc.c  */
5363 < #line 1949 "conf_parser.y"
5031 >  case 391:
5032 > #line 1928 "conf_parser.y" /* yacc.c:1652  */
5033      {
5034    if (conf_parser_ctx.pass == 2)
5035 <    block_state.flags.value = SHARED_ALL;
5035 >    block_state.flags.value = CLUSTER_ALL;
5036   }
5037 + #line 5038 "conf_parser.c" /* yacc.c:1652  */
5038      break;
5039  
5040 <  case 365:
5041 < /* Line 1787 of yacc.c  */
5372 < #line 1958 "conf_parser.y"
5040 >  case 392:
5041 > #line 1938 "conf_parser.y" /* yacc.c:1652  */
5042      {
5043  
5044    if (conf_parser_ctx.pass != 2)
5045      break;
5046  
5047    reset_block_state();
5048 +  block_state.aftype.value = AF_INET;
5049    block_state.port.value = PORTNUM;
5050 +  block_state.timeout.value = CONNECTTIMEOUT;
5051   }
5052 + #line 5053 "conf_parser.c" /* yacc.c:1652  */
5053      break;
5054  
5055 <  case 366:
5056 < /* Line 1787 of yacc.c  */
5385 < #line 1966 "conf_parser.y"
5055 >  case 393:
5056 > #line 1948 "conf_parser.y" /* yacc.c:1652  */
5057      {
5387  struct MaskItem *conf = NULL;
5058    struct addrinfo hints, *res;
5059  
5060    if (conf_parser_ctx.pass != 2)
# Line 5394 | Line 5064 | yyreduce:
5064        !block_state.host.buf[0])
5065      break;
5066  
5067 <  if (!(block_state.rpass.buf[0] ||
5068 <        block_state.spass.buf[0]))
5067 >  if (!block_state.rpass.buf[0] ||
5068 >      !block_state.spass.buf[0])
5069 >    break;
5070 >
5071 >  if (server_valid_name(block_state.name.buf) == false)
5072      break;
5073  
5074    if (has_wildcards(block_state.name.buf) ||
5075        has_wildcards(block_state.host.buf))
5076      break;
5077  
5078 <  conf = conf_make(CONF_SERVER);
5078 >  struct MaskItem *conf = conf_make(CONF_SERVER);
5079 >  conf->addr = xcalloc(sizeof(*conf->addr));
5080    conf->port = block_state.port.value;
5081 +  conf->timeout = block_state.timeout.value;
5082    conf->flags = block_state.flags.value;
5083    conf->aftype = block_state.aftype.value;
5084    conf->host = xstrdup(block_state.host.buf);
5085    conf->name = xstrdup(block_state.name.buf);
5086    conf->passwd = xstrdup(block_state.rpass.buf);
5087    conf->spasswd = xstrdup(block_state.spass.buf);
5088 <  conf->cipher_list = xstrdup(block_state.ciph.buf);
5088 >
5089 >  if (block_state.cert.buf[0])
5090 >    conf->certfp = xstrdup(block_state.cert.buf);
5091 >
5092 >  if (block_state.ciph.buf[0])
5093 >    conf->cipher_list = xstrdup(block_state.ciph.buf);
5094  
5095    dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5096    dlinkMoveList(&block_state.hub.list, &conf->hub_list);
# Line 5424 | Line 5104 | yyreduce:
5104      hints.ai_flags    = AI_PASSIVE | AI_NUMERICHOST;
5105  
5106      if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5107 <      ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5107 >      ilog(LOG_TYPE_IRCD, "Invalid netmask for server bind(%s)", block_state.bind.buf);
5108      else
5109      {
5110 <      assert(res != NULL);
5110 >      assert(res);
5111 >
5112 >      conf->bind = xcalloc(sizeof(*conf->bind));
5113  
5114 <      memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5115 <      conf->bind.ss.ss_family = res->ai_family;
5434 <      conf->bind.ss_len = res->ai_addrlen;
5114 >      memcpy(conf->bind, res->ai_addr, res->ai_addrlen);
5115 >      conf->bind->ss_len = res->ai_addrlen;
5116        freeaddrinfo(res);
5117      }
5118    }
5119  
5120    conf_add_class_to_conf(conf, block_state.class.buf);
5121 <  lookup_confhost(conf);
5121 >  conf_dns_lookup(conf);
5122   }
5123 + #line 5124 "conf_parser.c" /* yacc.c:1652  */
5124      break;
5125  
5126 <  case 383:
5127 < /* Line 1787 of yacc.c  */
5446 < #line 2032 "conf_parser.y"
5126 >  case 412:
5127 > #line 2034 "conf_parser.y" /* yacc.c:1652  */
5128      {
5129    if (conf_parser_ctx.pass == 2)
5130      strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5131   }
5132 + #line 5133 "conf_parser.c" /* yacc.c:1652  */
5133      break;
5134  
5135 <  case 384:
5136 < /* Line 1787 of yacc.c  */
5455 < #line 2038 "conf_parser.y"
5135 >  case 413:
5136 > #line 2040 "conf_parser.y" /* yacc.c:1652  */
5137      {
5138    if (conf_parser_ctx.pass == 2)
5139      strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5140   }
5141 + #line 5142 "conf_parser.c" /* yacc.c:1652  */
5142      break;
5143  
5144 <  case 385:
5145 < /* Line 1787 of yacc.c  */
5146 < #line 2044 "conf_parser.y"
5144 >  case 414:
5145 > #line 2046 "conf_parser.y" /* yacc.c:1652  */
5146 >    {
5147 >  if (conf_parser_ctx.pass == 2)
5148 >    block_state.timeout.value = (yyvsp[-1].number);
5149 > }
5150 > #line 5151 "conf_parser.c" /* yacc.c:1652  */
5151 >    break;
5152 >
5153 >  case 415:
5154 > #line 2052 "conf_parser.y" /* yacc.c:1652  */
5155      {
5156    if (conf_parser_ctx.pass == 2)
5157      strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5158   }
5159 + #line 5160 "conf_parser.c" /* yacc.c:1652  */
5160      break;
5161  
5162 <  case 386:
5163 < /* Line 1787 of yacc.c  */
5473 < #line 2050 "conf_parser.y"
5162 >  case 416:
5163 > #line 2058 "conf_parser.y" /* yacc.c:1652  */
5164      {
5165    if (conf_parser_ctx.pass != 2)
5166      break;
5167  
5168 <  if ((yyvsp[(3) - (4)].string)[0] == ':')
5168 >  if (*yylval.string == ':')
5169      conf_error_report("Server passwords cannot begin with a colon");
5170 <  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5170 >  else if (strchr(yylval.string, ' '))
5171      conf_error_report("Server passwords cannot contain spaces");
5172    else
5173      strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5174   }
5175 + #line 5176 "conf_parser.c" /* yacc.c:1652  */
5176      break;
5177  
5178 <  case 387:
5179 < /* Line 1787 of yacc.c  */
5489 < #line 2063 "conf_parser.y"
5178 >  case 417:
5179 > #line 2071 "conf_parser.y" /* yacc.c:1652  */
5180      {
5181    if (conf_parser_ctx.pass != 2)
5182      break;
5183  
5184 <  if ((yyvsp[(3) - (4)].string)[0] == ':')
5184 >  if (*yylval.string == ':')
5185      conf_error_report("Server passwords cannot begin with a colon");
5186 <  else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5186 >  else if (strchr(yylval.string, ' '))
5187      conf_error_report("Server passwords cannot contain spaces");
5188    else
5189      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5190   }
5191 + #line 5192 "conf_parser.c" /* yacc.c:1652  */
5192      break;
5193  
5194 <  case 388:
5195 < /* Line 1787 of yacc.c  */
5505 < #line 2076 "conf_parser.y"
5194 >  case 418:
5195 > #line 2084 "conf_parser.y" /* yacc.c:1652  */
5196      {
5197    if (conf_parser_ctx.pass == 2)
5198 <    block_state.port.value = (yyvsp[(3) - (4)].number);
5198 >    strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5199   }
5200 + #line 5201 "conf_parser.c" /* yacc.c:1652  */
5201      break;
5202  
5203 <  case 389:
5204 < /* Line 1787 of yacc.c  */
5205 < #line 2082 "conf_parser.y"
5203 >  case 419:
5204 > #line 2090 "conf_parser.y" /* yacc.c:1652  */
5205 >    {
5206 >  if (conf_parser_ctx.pass == 2)
5207 >    block_state.port.value = (yyvsp[-1].number);
5208 > }
5209 > #line 5210 "conf_parser.c" /* yacc.c:1652  */
5210 >    break;
5211 >
5212 >  case 420:
5213 > #line 2096 "conf_parser.y" /* yacc.c:1652  */
5214      {
5215    if (conf_parser_ctx.pass == 2)
5216      block_state.aftype.value = AF_INET;
5217   }
5218 + #line 5219 "conf_parser.c" /* yacc.c:1652  */
5219      break;
5220  
5221 <  case 390:
5222 < /* Line 1787 of yacc.c  */
5523 < #line 2086 "conf_parser.y"
5221 >  case 421:
5222 > #line 2100 "conf_parser.y" /* yacc.c:1652  */
5223      {
5525 #ifdef IPV6
5224    if (conf_parser_ctx.pass == 2)
5225      block_state.aftype.value = AF_INET6;
5528 #endif
5226   }
5227 + #line 5228 "conf_parser.c" /* yacc.c:1652  */
5228      break;
5229  
5230 <  case 391:
5231 < /* Line 1787 of yacc.c  */
5534 < #line 2094 "conf_parser.y"
5230 >  case 422:
5231 > #line 2106 "conf_parser.y" /* yacc.c:1652  */
5232      {
5233    block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5234   }
5235 + #line 5236 "conf_parser.c" /* yacc.c:1652  */
5236      break;
5237  
5238 <  case 395:
5239 < /* Line 1787 of yacc.c  */
5542 < #line 2100 "conf_parser.y"
5238 >  case 426:
5239 > #line 2112 "conf_parser.y" /* yacc.c:1652  */
5240      {
5241    if (conf_parser_ctx.pass == 2)
5242      block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5243   }
5244 + #line 5245 "conf_parser.c" /* yacc.c:1652  */
5245      break;
5246  
5247 <  case 396:
5248 < /* Line 1787 of yacc.c  */
5551 < #line 2104 "conf_parser.y"
5247 >  case 427:
5248 > #line 2116 "conf_parser.y" /* yacc.c:1652  */
5249      {
5250    if (conf_parser_ctx.pass == 2)
5251      block_state.flags.value |= CONF_FLAGS_SSL;
5252   }
5253 + #line 5254 "conf_parser.c" /* yacc.c:1652  */
5254      break;
5255  
5256 <  case 397:
5257 < /* Line 1787 of yacc.c  */
5560 < #line 2110 "conf_parser.y"
5256 >  case 428:
5257 > #line 2122 "conf_parser.y" /* yacc.c:1652  */
5258      {
5259    if (conf_parser_ctx.pass == 2)
5260    {
# Line 5567 | Line 5264 | yyreduce:
5264        block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5265    }
5266   }
5267 + #line 5268 "conf_parser.c" /* yacc.c:1652  */
5268      break;
5269  
5270 <  case 398:
5271 < /* Line 1787 of yacc.c  */
5574 < #line 2121 "conf_parser.y"
5270 >  case 429:
5271 > #line 2133 "conf_parser.y" /* yacc.c:1652  */
5272      {
5273    if (conf_parser_ctx.pass == 2)
5274      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5275   }
5276 + #line 5277 "conf_parser.c" /* yacc.c:1652  */
5277      break;
5278  
5279 <  case 399:
5280 < /* Line 1787 of yacc.c  */
5583 < #line 2127 "conf_parser.y"
5279 >  case 430:
5280 > #line 2139 "conf_parser.y" /* yacc.c:1652  */
5281      {
5282    if (conf_parser_ctx.pass == 2)
5283      dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5284   }
5285 + #line 5286 "conf_parser.c" /* yacc.c:1652  */
5286      break;
5287  
5288 <  case 400:
5289 < /* Line 1787 of yacc.c  */
5592 < #line 2133 "conf_parser.y"
5288 >  case 431:
5289 > #line 2145 "conf_parser.y" /* yacc.c:1652  */
5290      {
5291    if (conf_parser_ctx.pass == 2)
5292      strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5293   }
5294 + #line 5295 "conf_parser.c" /* yacc.c:1652  */
5295      break;
5296  
5297 <  case 401:
5298 < /* Line 1787 of yacc.c  */
5601 < #line 2139 "conf_parser.y"
5297 >  case 432:
5298 > #line 2151 "conf_parser.y" /* yacc.c:1652  */
5299      {
5300 < #ifdef HAVE_LIBCRYPTO
5300 > #ifdef HAVE_TLS
5301    if (conf_parser_ctx.pass == 2)
5302      strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5303   #else
5304    if (conf_parser_ctx.pass == 2)
5305 <    conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5305 >    conf_error_report("Ignoring connect::ciphers -- no TLS support");
5306   #endif
5307   }
5308 + #line 5309 "conf_parser.c" /* yacc.c:1652  */
5309      break;
5310  
5311 <  case 402:
5312 < /* Line 1787 of yacc.c  */
5615 < #line 2154 "conf_parser.y"
5311 >  case 433:
5312 > #line 2166 "conf_parser.y" /* yacc.c:1652  */
5313      {
5314    if (conf_parser_ctx.pass == 2)
5315      reset_block_state();
5316   }
5317 + #line 5318 "conf_parser.c" /* yacc.c:1652  */
5318      break;
5319  
5320 <  case 403:
5321 < /* Line 1787 of yacc.c  */
5624 < #line 2158 "conf_parser.y"
5320 >  case 434:
5321 > #line 2170 "conf_parser.y" /* yacc.c:1652  */
5322      {
5626  struct MaskItem *conf = NULL;
5627
5323    if (conf_parser_ctx.pass != 2)
5324      break;
5325  
# Line 5632 | Line 5327 | yyreduce:
5327        !block_state.host.buf[0])
5328      break;
5329  
5330 +  struct MaskItem *conf = conf_make(CONF_KLINE);
5331 +  conf->user = xstrdup(block_state.user.buf);
5332 +  conf->host = xstrdup(block_state.host.buf);
5333  
5334 <  if (block_state.port.value == 1)
5335 <  {
5638 < #ifdef HAVE_LIBPCRE
5639 <    void *exp_user = NULL;
5640 <    void *exp_host = NULL;
5641 <    const char *errptr = NULL;
5642 <
5643 <    if (!(exp_user = ircd_pcre_compile(block_state.user.buf, &errptr)) ||
5644 <        !(exp_host = ircd_pcre_compile(block_state.host.buf, &errptr)))
5645 <    {
5646 <      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: %s",
5647 <           errptr);
5648 <      break;
5649 <    }
5650 <
5651 <    conf = conf_make(CONF_RKLINE);
5652 <    conf->regexuser = exp_user;
5653 <    conf->regexhost = exp_host;
5654 <
5655 <    conf->user = xstrdup(block_state.user.buf);
5656 <    conf->host = xstrdup(block_state.host.buf);
5657 <
5658 <    if (block_state.rpass.buf[0])
5659 <      conf->reason = xstrdup(block_state.rpass.buf);
5660 <    else
5661 <      conf->reason = xstrdup(CONF_NOREASON);
5662 < #else
5663 <    ilog(LOG_TYPE_IRCD, "Failed to add regular expression based K-Line: no PCRE support");
5664 <    break;
5665 < #endif
5666 <  }
5334 >  if (block_state.rpass.buf[0])
5335 >    conf->reason = xstrdup(block_state.rpass.buf);
5336    else
5337 <  {
5338 <    conf = conf_make(CONF_KLINE);
5670 <
5671 <    conf->user = xstrdup(block_state.user.buf);
5672 <    conf->host = xstrdup(block_state.host.buf);
5673 <
5674 <    if (block_state.rpass.buf[0])
5675 <      conf->reason = xstrdup(block_state.rpass.buf);
5676 <    else
5677 <      conf->reason = xstrdup(CONF_NOREASON);
5678 <    add_conf_by_address(CONF_KLINE, conf);
5679 <  }
5680 < }
5681 <    break;
5682 <
5683 <  case 404:
5684 < /* Line 1787 of yacc.c  */
5685 < #line 2216 "conf_parser.y"
5686 <    {
5687 <  if (conf_parser_ctx.pass == 2)
5688 <    block_state.port.value = 0;
5689 < }
5690 <    break;
5691 <
5692 <  case 408:
5693 < /* Line 1787 of yacc.c  */
5694 < #line 2223 "conf_parser.y"
5695 <    {
5696 <  if (conf_parser_ctx.pass == 2)
5697 <    block_state.port.value = 1;
5337 >    conf->reason = xstrdup(CONF_NOREASON);
5338 >  add_conf_by_address(CONF_KLINE, conf);
5339   }
5340 + #line 5341 "conf_parser.c" /* yacc.c:1652  */
5341      break;
5342  
5343 <  case 415:
5344 < /* Line 1787 of yacc.c  */
5703 < #line 2232 "conf_parser.y"
5343 >  case 440:
5344 > #line 2193 "conf_parser.y" /* yacc.c:1652  */
5345      {
5346  
5347    if (conf_parser_ctx.pass == 2)
# Line 5719 | Line 5360 | yyreduce:
5360      split_nuh(&nuh);
5361    }
5362   }
5363 + #line 5364 "conf_parser.c" /* yacc.c:1652  */
5364      break;
5365  
5366 <  case 416:
5367 < /* Line 1787 of yacc.c  */
5726 < #line 2252 "conf_parser.y"
5366 >  case 441:
5367 > #line 2213 "conf_parser.y" /* yacc.c:1652  */
5368      {
5369    if (conf_parser_ctx.pass == 2)
5370      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5371   }
5372 + #line 5373 "conf_parser.c" /* yacc.c:1652  */
5373      break;
5374  
5375 <  case 417:
5376 < /* Line 1787 of yacc.c  */
5735 < #line 2261 "conf_parser.y"
5375 >  case 442:
5376 > #line 2223 "conf_parser.y" /* yacc.c:1652  */
5377      {
5378    if (conf_parser_ctx.pass == 2)
5379      reset_block_state();
5380   }
5381 + #line 5382 "conf_parser.c" /* yacc.c:1652  */
5382      break;
5383  
5384 <  case 418:
5385 < /* Line 1787 of yacc.c  */
5744 < #line 2265 "conf_parser.y"
5384 >  case 443:
5385 > #line 2227 "conf_parser.y" /* yacc.c:1652  */
5386      {
5746  struct MaskItem *conf = NULL;
5747
5387    if (conf_parser_ctx.pass != 2)
5388      break;
5389  
# Line 5753 | Line 5392 | yyreduce:
5392  
5393    if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5394    {
5395 <    conf = conf_make(CONF_DLINE);
5395 >    struct MaskItem *conf = conf_make(CONF_DLINE);
5396      conf->host = xstrdup(block_state.addr.buf);
5397  
5398      if (block_state.rpass.buf[0])
# Line 5763 | Line 5402 | yyreduce:
5402      add_conf_by_address(CONF_DLINE, conf);
5403    }
5404   }
5405 + #line 5406 "conf_parser.c" /* yacc.c:1652  */
5406      break;
5407  
5408 <  case 424:
5409 < /* Line 1787 of yacc.c  */
5770 < #line 2291 "conf_parser.y"
5408 >  case 449:
5409 > #line 2251 "conf_parser.y" /* yacc.c:1652  */
5410      {
5411    if (conf_parser_ctx.pass == 2)
5412      strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5413   }
5414 + #line 5415 "conf_parser.c" /* yacc.c:1652  */
5415      break;
5416  
5417 <  case 425:
5418 < /* Line 1787 of yacc.c  */
5779 < #line 2297 "conf_parser.y"
5417 >  case 450:
5418 > #line 2257 "conf_parser.y" /* yacc.c:1652  */
5419      {
5420    if (conf_parser_ctx.pass == 2)
5421      strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5422   }
5423 + #line 5424 "conf_parser.c" /* yacc.c:1652  */
5424      break;
5425  
5426 <  case 431:
5427 < /* Line 1787 of yacc.c  */
5788 < #line 2311 "conf_parser.y"
5426 >  case 456:
5427 > #line 2272 "conf_parser.y" /* yacc.c:1652  */
5428      {
5429    if (conf_parser_ctx.pass == 2)
5430    {
5431 <    if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5431 >    if (*yylval.string && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5432      {
5433        struct MaskItem *conf = conf_make(CONF_EXEMPT);
5434        conf->host = xstrdup(yylval.string);
# Line 5798 | Line 5437 | yyreduce:
5437      }
5438    }
5439   }
5440 + #line 5441 "conf_parser.c" /* yacc.c:1652  */
5441      break;
5442  
5443 <  case 432:
5444 < /* Line 1787 of yacc.c  */
5805 < #line 2328 "conf_parser.y"
5443 >  case 457:
5444 > #line 2289 "conf_parser.y" /* yacc.c:1652  */
5445      {
5446    if (conf_parser_ctx.pass == 2)
5447      reset_block_state();
5448   }
5449 + #line 5450 "conf_parser.c" /* yacc.c:1652  */
5450      break;
5451  
5452 <  case 433:
5453 < /* Line 1787 of yacc.c  */
5814 < #line 2332 "conf_parser.y"
5452 >  case 458:
5453 > #line 2293 "conf_parser.y" /* yacc.c:1652  */
5454      {
5816  struct MaskItem *conf = NULL;
5817
5455    if (conf_parser_ctx.pass != 2)
5456      break;
5457  
5458    if (!block_state.name.buf[0])
5459      break;
5460  
5461 <  if (block_state.port.value == 1)
5462 <  {
5826 < #ifdef HAVE_LIBPCRE
5827 <    void *exp_p = NULL;
5828 <    const char *errptr = NULL;
5829 <
5830 <    if (!(exp_p = ircd_pcre_compile(block_state.name.buf, &errptr)))
5831 <    {
5832 <      ilog(LOG_TYPE_IRCD, "Failed to add regular expression based X-Line: %s",
5833 <           errptr);
5834 <      break;
5835 <    }
5836 <
5837 <    conf = conf_make(CONF_RXLINE);
5838 <    conf->regexuser = exp_p;
5839 < #else
5840 <    conf_error_report("Failed to add regular expression based X-Line: no PCRE support");
5841 <    break;
5842 < #endif
5843 <  }
5844 <  else
5845 <    conf = conf_make(CONF_XLINE);
5846 <
5847 <  conf->name = xstrdup(block_state.name.buf);
5461 >  struct GecosItem *gecos = gecos_make();
5462 >  gecos->mask = xstrdup(block_state.name.buf);
5463  
5464    if (block_state.rpass.buf[0])
5465 <    conf->reason = xstrdup(block_state.rpass.buf);
5465 >    gecos->reason = xstrdup(block_state.rpass.buf);
5466    else
5467 <    conf->reason = xstrdup(CONF_NOREASON);
5467 >    gecos->reason = xstrdup(CONF_NOREASON);
5468   }
5469 + #line 5470 "conf_parser.c" /* yacc.c:1652  */
5470      break;
5471  
5472 <  case 434:
5473 < /* Line 1787 of yacc.c  */
5858 < #line 2373 "conf_parser.y"
5472 >  case 464:
5473 > #line 2313 "conf_parser.y" /* yacc.c:1652  */
5474      {
5475    if (conf_parser_ctx.pass == 2)
5476 <    block_state.port.value = 0;
5476 >    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5477   }
5478 + #line 5479 "conf_parser.c" /* yacc.c:1652  */
5479      break;
5480  
5481 <  case 438:
5482 < /* Line 1787 of yacc.c  */
5867 < #line 2380 "conf_parser.y"
5481 >  case 465:
5482 > #line 2319 "conf_parser.y" /* yacc.c:1652  */
5483      {
5484    if (conf_parser_ctx.pass == 2)
5485 <    block_state.port.value = 1;
5485 >    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5486   }
5487 + #line 5488 "conf_parser.c" /* yacc.c:1652  */
5488      break;
5489  
5490 <  case 445:
5491 < /* Line 1787 of yacc.c  */
5876 < #line 2389 "conf_parser.y"
5490 >  case 515:
5491 > #line 2380 "conf_parser.y" /* yacc.c:1652  */
5492      {
5493 <  if (conf_parser_ctx.pass == 2)
5879 <    strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5493 >  ConfigGeneral.away_count = (yyvsp[-1].number);
5494   }
5495 + #line 5496 "conf_parser.c" /* yacc.c:1652  */
5496      break;
5497  
5498 <  case 446:
5499 < /* Line 1787 of yacc.c  */
5885 < #line 2395 "conf_parser.y"
5498 >  case 516:
5499 > #line 2385 "conf_parser.y" /* yacc.c:1652  */
5500      {
5501 <  if (conf_parser_ctx.pass == 2)
5888 <    strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5501 >  ConfigGeneral.away_time = (yyvsp[-1].number);
5502   }
5503 + #line 5504 "conf_parser.c" /* yacc.c:1652  */
5504      break;
5505  
5506 <  case 499:
5507 < /* Line 1787 of yacc.c  */
5894 < #line 2439 "conf_parser.y"
5506 >  case 517:
5507 > #line 2390 "conf_parser.y" /* yacc.c:1652  */
5508      {
5509 <  ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5509 >  ConfigGeneral.max_watch = (yyvsp[-1].number);
5510   }
5511 + #line 5512 "conf_parser.c" /* yacc.c:1652  */
5512      break;
5513  
5514 <  case 500:
5515 < /* Line 1787 of yacc.c  */
5902 < #line 2444 "conf_parser.y"
5514 >  case 518:
5515 > #line 2395 "conf_parser.y" /* yacc.c:1652  */
5516      {
5517 <  if (conf_parser_ctx.pass == 2)
5905 <    ConfigFileEntry.glines = yylval.number;
5517 >  ConfigGeneral.whowas_history_length = (yyvsp[-1].number);
5518   }
5519 + #line 5520 "conf_parser.c" /* yacc.c:1652  */
5520      break;
5521  
5522 <  case 501:
5523 < /* Line 1787 of yacc.c  */
5911 < #line 2450 "conf_parser.y"
5522 >  case 519:
5523 > #line 2400 "conf_parser.y" /* yacc.c:1652  */
5524      {
5525 <  if (conf_parser_ctx.pass == 2)
5914 <    ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5525 >  ConfigGeneral.cycle_on_host_change = yylval.number;
5526   }
5527 + #line 5528 "conf_parser.c" /* yacc.c:1652  */
5528      break;
5529  
5530 <  case 502:
5531 < /* Line 1787 of yacc.c  */
5920 < #line 2456 "conf_parser.y"
5530 >  case 520:
5531 > #line 2405 "conf_parser.y" /* yacc.c:1652  */
5532      {
5533 <  if (conf_parser_ctx.pass == 2)
5923 <    ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5533 >  ConfigGeneral.dline_min_cidr = (yyvsp[-1].number);
5534   }
5535 + #line 5536 "conf_parser.c" /* yacc.c:1652  */
5536      break;
5537  
5538 <  case 503:
5539 < /* Line 1787 of yacc.c  */
5929 < #line 2462 "conf_parser.y"
5538 >  case 521:
5539 > #line 2410 "conf_parser.y" /* yacc.c:1652  */
5540      {
5541 <  ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5541 >  ConfigGeneral.dline_min_cidr6 = (yyvsp[-1].number);
5542   }
5543 + #line 5544 "conf_parser.c" /* yacc.c:1652  */
5544      break;
5545  
5546 <  case 504:
5547 < /* Line 1787 of yacc.c  */
5937 < #line 2467 "conf_parser.y"
5546 >  case 522:
5547 > #line 2415 "conf_parser.y" /* yacc.c:1652  */
5548      {
5549 <  ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
5549 >  ConfigGeneral.kline_min_cidr = (yyvsp[-1].number);
5550   }
5551 + #line 5552 "conf_parser.c" /* yacc.c:1652  */
5552      break;
5553  
5554 <  case 505:
5555 < /* Line 1787 of yacc.c  */
5945 < #line 2472 "conf_parser.y"
5554 >  case 523:
5555 > #line 2420 "conf_parser.y" /* yacc.c:1652  */
5556      {
5557 <  ConfigFileEntry.tkline_expire_notices = yylval.number;
5557 >  ConfigGeneral.kline_min_cidr6 = (yyvsp[-1].number);
5558   }
5559 + #line 5560 "conf_parser.c" /* yacc.c:1652  */
5560      break;
5561  
5562 <  case 506:
5563 < /* Line 1787 of yacc.c  */
5953 < #line 2477 "conf_parser.y"
5562 >  case 524:
5563 > #line 2425 "conf_parser.y" /* yacc.c:1652  */
5564      {
5565 <  ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
5565 >  ConfigGeneral.kill_chase_time_limit = (yyvsp[-1].number);
5566   }
5567 + #line 5568 "conf_parser.c" /* yacc.c:1652  */
5568      break;
5569  
5570 <  case 507:
5571 < /* Line 1787 of yacc.c  */
5961 < #line 2482 "conf_parser.y"
5570 >  case 525:
5571 > #line 2430 "conf_parser.y" /* yacc.c:1652  */
5572      {
5573 <  ConfigFileEntry.hide_spoof_ips = yylval.number;
5573 >  ConfigGeneral.failed_oper_notice = yylval.number;
5574   }
5575 + #line 5576 "conf_parser.c" /* yacc.c:1652  */
5576      break;
5577  
5578 <  case 508:
5579 < /* Line 1787 of yacc.c  */
5969 < #line 2487 "conf_parser.y"
5578 >  case 526:
5579 > #line 2435 "conf_parser.y" /* yacc.c:1652  */
5580      {
5581 <  ConfigFileEntry.ignore_bogus_ts = yylval.number;
5581 >  ConfigGeneral.anti_nick_flood = yylval.number;
5582   }
5583 + #line 5584 "conf_parser.c" /* yacc.c:1652  */
5584      break;
5585  
5586 <  case 509:
5587 < /* Line 1787 of yacc.c  */
5977 < #line 2492 "conf_parser.y"
5586 >  case 527:
5587 > #line 2440 "conf_parser.y" /* yacc.c:1652  */
5588      {
5589 <  ConfigFileEntry.disable_remote = yylval.number;
5589 >  ConfigGeneral.max_nick_time = (yyvsp[-1].number);
5590   }
5591 + #line 5592 "conf_parser.c" /* yacc.c:1652  */
5592      break;
5593  
5594 <  case 510:
5595 < /* Line 1787 of yacc.c  */
5985 < #line 2497 "conf_parser.y"
5594 >  case 528:
5595 > #line 2445 "conf_parser.y" /* yacc.c:1652  */
5596      {
5597 <  ConfigFileEntry.failed_oper_notice = yylval.number;
5597 >  ConfigGeneral.max_nick_changes = (yyvsp[-1].number);
5598   }
5599 + #line 5600 "conf_parser.c" /* yacc.c:1652  */
5600      break;
5601  
5602 <  case 511:
5603 < /* Line 1787 of yacc.c  */
5993 < #line 2502 "conf_parser.y"
5602 >  case 529:
5603 > #line 2450 "conf_parser.y" /* yacc.c:1652  */
5604      {
5605 <  ConfigFileEntry.anti_nick_flood = yylval.number;
5605 >  ConfigGeneral.max_accept = (yyvsp[-1].number);
5606   }
5607 + #line 5608 "conf_parser.c" /* yacc.c:1652  */
5608      break;
5609  
5610 <  case 512:
5611 < /* Line 1787 of yacc.c  */
6001 < #line 2507 "conf_parser.y"
5610 >  case 530:
5611 > #line 2455 "conf_parser.y" /* yacc.c:1652  */
5612      {
5613 <  ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
5613 >  ConfigGeneral.anti_spam_exit_message_time = (yyvsp[-1].number);
5614   }
5615 + #line 5616 "conf_parser.c" /* yacc.c:1652  */
5616      break;
5617  
5618 <  case 513:
5619 < /* Line 1787 of yacc.c  */
6009 < #line 2512 "conf_parser.y"
5618 >  case 531:
5619 > #line 2460 "conf_parser.y" /* yacc.c:1652  */
5620      {
5621 <  ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
5621 >  ConfigGeneral.ts_warn_delta = (yyvsp[-1].number);
5622   }
5623 + #line 5624 "conf_parser.c" /* yacc.c:1652  */
5624      break;
5625  
5626 <  case 514:
5627 < /* Line 1787 of yacc.c  */
6017 < #line 2517 "conf_parser.y"
5626 >  case 532:
5627 > #line 2465 "conf_parser.y" /* yacc.c:1652  */
5628      {
5629 <  ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
5629 >  ConfigGeneral.ts_max_delta = (yyvsp[-1].number);
5630   }
5631 + #line 5632 "conf_parser.c" /* yacc.c:1652  */
5632      break;
5633  
5634 <  case 515:
5635 < /* Line 1787 of yacc.c  */
6025 < #line 2522 "conf_parser.y"
5634 >  case 533:
5635 > #line 2470 "conf_parser.y" /* yacc.c:1652  */
5636      {
5637 <  ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
5637 >  ConfigGeneral.invisible_on_connect = yylval.number;
5638   }
5639 + #line 5640 "conf_parser.c" /* yacc.c:1652  */
5640      break;
5641  
5642 <  case 516:
5643 < /* Line 1787 of yacc.c  */
6033 < #line 2527 "conf_parser.y"
5642 >  case 534:
5643 > #line 2475 "conf_parser.y" /* yacc.c:1652  */
5644      {
5645 <  ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
5645 >  ConfigGeneral.warn_no_connect_block = yylval.number;
5646   }
5647 + #line 5648 "conf_parser.c" /* yacc.c:1652  */
5648      break;
5649  
5650 <  case 517:
5651 < /* Line 1787 of yacc.c  */
6041 < #line 2532 "conf_parser.y"
5650 >  case 535:
5651 > #line 2480 "conf_parser.y" /* yacc.c:1652  */
5652      {
5653 <  if (conf_parser_ctx.pass == 2)
6044 <    ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
5653 >  ConfigGeneral.stats_e_disabled = yylval.number;
5654   }
5655 + #line 5656 "conf_parser.c" /* yacc.c:1652  */
5656      break;
5657  
5658 <  case 518:
5659 < /* Line 1787 of yacc.c  */
6050 < #line 2538 "conf_parser.y"
5658 >  case 536:
5659 > #line 2485 "conf_parser.y" /* yacc.c:1652  */
5660      {
5661 <  if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6053 <  {
6054 <    ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6055 <    ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6056 <    ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6057 <    exit(0);
6058 <  }
5661 >  ConfigGeneral.stats_m_oper_only = yylval.number;
5662   }
5663 + #line 5664 "conf_parser.c" /* yacc.c:1652  */
5664      break;
5665  
5666 <  case 519:
5667 < /* Line 1787 of yacc.c  */
6064 < #line 2549 "conf_parser.y"
5666 >  case 537:
5667 > #line 2490 "conf_parser.y" /* yacc.c:1652  */
5668      {
5669 <  ConfigFileEntry.invisible_on_connect = yylval.number;
5669 >  ConfigGeneral.stats_o_oper_only = yylval.number;
5670   }
5671 + #line 5672 "conf_parser.c" /* yacc.c:1652  */
5672      break;
5673  
5674 <  case 520:
5675 < /* Line 1787 of yacc.c  */
6072 < #line 2554 "conf_parser.y"
5674 >  case 538:
5675 > #line 2495 "conf_parser.y" /* yacc.c:1652  */
5676      {
5677 <  ConfigFileEntry.warn_no_nline = yylval.number;
5677 >  ConfigGeneral.stats_P_oper_only = yylval.number;
5678   }
5679 + #line 5680 "conf_parser.c" /* yacc.c:1652  */
5680      break;
5681  
5682 <  case 521:
5683 < /* Line 1787 of yacc.c  */
6080 < #line 2559 "conf_parser.y"
5682 >  case 539:
5683 > #line 2500 "conf_parser.y" /* yacc.c:1652  */
5684      {
5685 <  ConfigFileEntry.stats_e_disabled = yylval.number;
5685 >  ConfigGeneral.stats_u_oper_only = yylval.number;
5686   }
5687 + #line 5688 "conf_parser.c" /* yacc.c:1652  */
5688      break;
5689  
5690 <  case 522:
5691 < /* Line 1787 of yacc.c  */
6088 < #line 2564 "conf_parser.y"
5690 >  case 540:
5691 > #line 2505 "conf_parser.y" /* yacc.c:1652  */
5692      {
5693 <  ConfigFileEntry.stats_o_oper_only = yylval.number;
5693 >  ConfigGeneral.stats_k_oper_only = 2 * yylval.number;
5694   }
5695 + #line 5696 "conf_parser.c" /* yacc.c:1652  */
5696      break;
5697  
5698 <  case 523:
5699 < /* Line 1787 of yacc.c  */
6096 < #line 2569 "conf_parser.y"
5698 >  case 541:
5699 > #line 2508 "conf_parser.y" /* yacc.c:1652  */
5700      {
5701 <  ConfigFileEntry.stats_P_oper_only = yylval.number;
5701 >  ConfigGeneral.stats_k_oper_only = 1;
5702   }
5703 + #line 5704 "conf_parser.c" /* yacc.c:1652  */
5704      break;
5705  
5706 <  case 524:
5707 < /* Line 1787 of yacc.c  */
6104 < #line 2574 "conf_parser.y"
5706 >  case 542:
5707 > #line 2513 "conf_parser.y" /* yacc.c:1652  */
5708      {
5709 <  ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
5709 >  ConfigGeneral.stats_i_oper_only = 2 * yylval.number;
5710   }
5711 + #line 5712 "conf_parser.c" /* yacc.c:1652  */
5712      break;
5713  
5714 <  case 525:
5715 < /* Line 1787 of yacc.c  */
6112 < #line 2577 "conf_parser.y"
5714 >  case 543:
5715 > #line 2516 "conf_parser.y" /* yacc.c:1652  */
5716      {
5717 <  ConfigFileEntry.stats_k_oper_only = 1;
5717 >  ConfigGeneral.stats_i_oper_only = 1;
5718   }
5719 + #line 5720 "conf_parser.c" /* yacc.c:1652  */
5720      break;
5721  
5722 <  case 526:
5723 < /* Line 1787 of yacc.c  */
6120 < #line 2582 "conf_parser.y"
5722 >  case 544:
5723 > #line 2521 "conf_parser.y" /* yacc.c:1652  */
5724      {
5725 <  ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
5725 >  ConfigGeneral.pace_wait = (yyvsp[-1].number);
5726   }
5727 + #line 5728 "conf_parser.c" /* yacc.c:1652  */
5728      break;
5729  
5730 <  case 527:
5731 < /* Line 1787 of yacc.c  */
6128 < #line 2585 "conf_parser.y"
5730 >  case 545:
5731 > #line 2526 "conf_parser.y" /* yacc.c:1652  */
5732      {
5733 <  ConfigFileEntry.stats_i_oper_only = 1;
5733 >  ConfigGeneral.caller_id_wait = (yyvsp[-1].number);
5734   }
5735 + #line 5736 "conf_parser.c" /* yacc.c:1652  */
5736      break;
5737  
5738 <  case 528:
5739 < /* Line 1787 of yacc.c  */
6136 < #line 2590 "conf_parser.y"
5738 >  case 546:
5739 > #line 2531 "conf_parser.y" /* yacc.c:1652  */
5740      {
5741 <  ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
5741 >  ConfigGeneral.opers_bypass_callerid = yylval.number;
5742   }
5743 + #line 5744 "conf_parser.c" /* yacc.c:1652  */
5744      break;
5745  
5746 <  case 529:
5747 < /* Line 1787 of yacc.c  */
6144 < #line 2595 "conf_parser.y"
5746 >  case 547:
5747 > #line 2536 "conf_parser.y" /* yacc.c:1652  */
5748      {
5749 <  ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
5749 >  ConfigGeneral.pace_wait_simple = (yyvsp[-1].number);
5750   }
5751 + #line 5752 "conf_parser.c" /* yacc.c:1652  */
5752      break;
5753  
5754 <  case 530:
5755 < /* Line 1787 of yacc.c  */
6152 < #line 2600 "conf_parser.y"
5754 >  case 548:
5755 > #line 2541 "conf_parser.y" /* yacc.c:1652  */
5756      {
5757 <  ConfigFileEntry.opers_bypass_callerid = yylval.number;
5757 >  ConfigGeneral.short_motd = yylval.number;
5758   }
5759 + #line 5760 "conf_parser.c" /* yacc.c:1652  */
5760      break;
5761  
5762 <  case 531:
5763 < /* Line 1787 of yacc.c  */
6160 < #line 2605 "conf_parser.y"
5762 >  case 549:
5763 > #line 2546 "conf_parser.y" /* yacc.c:1652  */
5764      {
5765 <  ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
5765 >  ConfigGeneral.no_oper_flood = yylval.number;
5766   }
5767 + #line 5768 "conf_parser.c" /* yacc.c:1652  */
5768      break;
5769  
5770 <  case 532:
5771 < /* Line 1787 of yacc.c  */
6168 < #line 2610 "conf_parser.y"
5770 >  case 550:
5771 > #line 2551 "conf_parser.y" /* yacc.c:1652  */
5772      {
5773 <  ConfigFileEntry.short_motd = yylval.number;
5773 >  ConfigGeneral.dots_in_ident = (yyvsp[-1].number);
5774   }
5775 + #line 5776 "conf_parser.c" /* yacc.c:1652  */
5776      break;
5777  
5778 <  case 533:
5779 < /* Line 1787 of yacc.c  */
6176 < #line 2615 "conf_parser.y"
5778 >  case 551:
5779 > #line 2556 "conf_parser.y" /* yacc.c:1652  */
5780      {
5781 <  ConfigFileEntry.no_oper_flood = yylval.number;
5781 >  ConfigGeneral.max_targets = (yyvsp[-1].number);
5782   }
5783 + #line 5784 "conf_parser.c" /* yacc.c:1652  */
5784      break;
5785  
5786 <  case 534:
5787 < /* Line 1787 of yacc.c  */
6184 < #line 2620 "conf_parser.y"
5786 >  case 552:
5787 > #line 2561 "conf_parser.y" /* yacc.c:1652  */
5788      {
5789 <  ConfigFileEntry.true_no_oper_flood = yylval.number;
5789 >  ConfigGeneral.ping_cookie = yylval.number;
5790   }
5791 + #line 5792 "conf_parser.c" /* yacc.c:1652  */
5792      break;
5793  
5794 <  case 535:
5795 < /* Line 1787 of yacc.c  */
6192 < #line 2625 "conf_parser.y"
5794 >  case 553:
5795 > #line 2566 "conf_parser.y" /* yacc.c:1652  */
5796      {
5797 <  ConfigFileEntry.oper_pass_resv = yylval.number;
5797 >  ConfigGeneral.disable_auth = yylval.number;
5798   }
5799 + #line 5800 "conf_parser.c" /* yacc.c:1652  */
5800      break;
5801  
5802 <  case 536:
5803 < /* Line 1787 of yacc.c  */
6200 < #line 2630 "conf_parser.y"
5802 >  case 554:
5803 > #line 2571 "conf_parser.y" /* yacc.c:1652  */
5804      {
5805 <  ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
5805 >  ConfigGeneral.throttle_count = (yyvsp[-1].number);
5806   }
5807 + #line 5808 "conf_parser.c" /* yacc.c:1652  */
5808      break;
5809  
5810 <  case 537:
5811 < /* Line 1787 of yacc.c  */
6208 < #line 2635 "conf_parser.y"
5810 >  case 555:
5811 > #line 2576 "conf_parser.y" /* yacc.c:1652  */
5812      {
5813 <  ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
5813 >  ConfigGeneral.throttle_time = (yyvsp[-1].number);
5814   }
5815 + #line 5816 "conf_parser.c" /* yacc.c:1652  */
5816      break;
5817  
5818 <  case 538:
5819 < /* Line 1787 of yacc.c  */
6216 < #line 2640 "conf_parser.y"
5818 >  case 556:
5819 > #line 2581 "conf_parser.y" /* yacc.c:1652  */
5820      {
5821 <  ConfigFileEntry.use_egd = yylval.number;
5821 >  ConfigGeneral.oper_umodes = 0;
5822   }
5823 + #line 5824 "conf_parser.c" /* yacc.c:1652  */
5824      break;
5825  
5826 <  case 539:
5827 < /* Line 1787 of yacc.c  */
6224 < #line 2645 "conf_parser.y"
5826 >  case 560:
5827 > #line 2587 "conf_parser.y" /* yacc.c:1652  */
5828      {
5829 <  if (conf_parser_ctx.pass == 2)
6227 <  {
6228 <    MyFree(ConfigFileEntry.egdpool_path);
6229 <    ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6230 <  }
5829 >  ConfigGeneral.oper_umodes |= UMODE_BOTS;
5830   }
5831 + #line 5832 "conf_parser.c" /* yacc.c:1652  */
5832      break;
5833  
5834 <  case 540:
5835 < /* Line 1787 of yacc.c  */
6236 < #line 2654 "conf_parser.y"
5834 >  case 561:
5835 > #line 2590 "conf_parser.y" /* yacc.c:1652  */
5836      {
5837 <  if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6239 <  {
6240 <    MyFree(ConfigFileEntry.service_name);
6241 <    ConfigFileEntry.service_name = xstrdup(yylval.string);
6242 <  }
5837 >  ConfigGeneral.oper_umodes |= UMODE_CCONN;
5838   }
5839 + #line 5840 "conf_parser.c" /* yacc.c:1652  */
5840      break;
5841  
5842 <  case 541:
5843 < /* Line 1787 of yacc.c  */
6248 < #line 2663 "conf_parser.y"
5842 >  case 562:
5843 > #line 2593 "conf_parser.y" /* yacc.c:1652  */
5844      {
5845 <  ConfigFileEntry.ping_cookie = yylval.number;
5845 >  ConfigGeneral.oper_umodes |= UMODE_DEAF;
5846   }
5847 + #line 5848 "conf_parser.c" /* yacc.c:1652  */
5848      break;
5849  
5850 <  case 542:
5851 < /* Line 1787 of yacc.c  */
6256 < #line 2668 "conf_parser.y"
5850 >  case 563:
5851 > #line 2596 "conf_parser.y" /* yacc.c:1652  */
5852      {
5853 <  ConfigFileEntry.disable_auth = yylval.number;
5853 >  ConfigGeneral.oper_umodes |= UMODE_DEBUG;
5854   }
5855 + #line 5856 "conf_parser.c" /* yacc.c:1652  */
5856      break;
5857  
5858 <  case 543:
5859 < /* Line 1787 of yacc.c  */
6264 < #line 2673 "conf_parser.y"
5858 >  case 564:
5859 > #line 2599 "conf_parser.y" /* yacc.c:1652  */
5860      {
5861 <  ConfigFileEntry.throttle_time = yylval.number;
5861 >  ConfigGeneral.oper_umodes |= UMODE_FULL;
5862   }
5863 + #line 5864 "conf_parser.c" /* yacc.c:1652  */
5864      break;
5865  
5866 <  case 544:
5867 < /* Line 1787 of yacc.c  */
6272 < #line 2678 "conf_parser.y"
5866 >  case 565:
5867 > #line 2602 "conf_parser.y" /* yacc.c:1652  */
5868      {
5869 <  ConfigFileEntry.oper_umodes = 0;
5869 >  ConfigGeneral.oper_umodes |= UMODE_HIDDEN;
5870   }
5871 + #line 5872 "conf_parser.c" /* yacc.c:1652  */
5872      break;
5873  
5874 <  case 548:
5875 < /* Line 1787 of yacc.c  */
6280 < #line 2684 "conf_parser.y"
5874 >  case 566:
5875 > #line 2605 "conf_parser.y" /* yacc.c:1652  */
5876      {
5877 <  ConfigFileEntry.oper_umodes |= UMODE_BOTS;
5877 >  ConfigGeneral.oper_umodes |= UMODE_HIDECHANS;
5878   }
5879 + #line 5880 "conf_parser.c" /* yacc.c:1652  */
5880      break;
5881  
5882 <  case 549:
5883 < /* Line 1787 of yacc.c  */
6288 < #line 2687 "conf_parser.y"
5882 >  case 567:
5883 > #line 2608 "conf_parser.y" /* yacc.c:1652  */
5884      {
5885 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN;
5885 >  ConfigGeneral.oper_umodes |= UMODE_HIDEIDLE;
5886   }
5887 + #line 5888 "conf_parser.c" /* yacc.c:1652  */
5888      break;
5889  
5890 <  case 550:
5891 < /* Line 1787 of yacc.c  */
6296 < #line 2690 "conf_parser.y"
5890 >  case 568:
5891 > #line 2611 "conf_parser.y" /* yacc.c:1652  */
5892      {
5893 <  ConfigFileEntry.oper_umodes |= UMODE_CCONN_FULL;
5893 >  ConfigGeneral.oper_umodes |= UMODE_SKILL;
5894   }
5895 + #line 5896 "conf_parser.c" /* yacc.c:1652  */
5896      break;
5897  
5898 <  case 551:
5899 < /* Line 1787 of yacc.c  */
6304 < #line 2693 "conf_parser.y"
5898 >  case 569:
5899 > #line 2614 "conf_parser.y" /* yacc.c:1652  */
5900      {
5901 <  ConfigFileEntry.oper_umodes |= UMODE_DEAF;
5901 >  ConfigGeneral.oper_umodes |= UMODE_NCHANGE;
5902   }
5903 + #line 5904 "conf_parser.c" /* yacc.c:1652  */
5904      break;
5905  
5906 <  case 552:
5907 < /* Line 1787 of yacc.c  */
6312 < #line 2696 "conf_parser.y"
5906 >  case 570:
5907 > #line 2617 "conf_parser.y" /* yacc.c:1652  */
5908      {
5909 <  ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
5909 >  ConfigGeneral.oper_umodes |= UMODE_REJ;
5910   }
5911 + #line 5912 "conf_parser.c" /* yacc.c:1652  */
5912      break;
5913  
5914 <  case 553:
5915 < /* Line 1787 of yacc.c  */
6320 < #line 2699 "conf_parser.y"
5914 >  case 571:
5915 > #line 2620 "conf_parser.y" /* yacc.c:1652  */
5916      {
5917 <  ConfigFileEntry.oper_umodes |= UMODE_FULL;
5917 >  ConfigGeneral.oper_umodes |= UMODE_UNAUTH;
5918   }
5919 + #line 5920 "conf_parser.c" /* yacc.c:1652  */
5920      break;
5921  
5922 <  case 554:
5923 < /* Line 1787 of yacc.c  */
6328 < #line 2702 "conf_parser.y"
5922 >  case 572:
5923 > #line 2623 "conf_parser.y" /* yacc.c:1652  */
5924      {
5925 <  ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
5925 >  ConfigGeneral.oper_umodes |= UMODE_SPY;
5926   }
5927 + #line 5928 "conf_parser.c" /* yacc.c:1652  */
5928      break;
5929  
5930 <  case 555:
5931 < /* Line 1787 of yacc.c  */
6336 < #line 2705 "conf_parser.y"
5930 >  case 573:
5931 > #line 2626 "conf_parser.y" /* yacc.c:1652  */
5932      {
5933 <  ConfigFileEntry.oper_umodes |= UMODE_SKILL;
5933 >  ConfigGeneral.oper_umodes |= UMODE_EXTERNAL;
5934   }
5935 + #line 5936 "conf_parser.c" /* yacc.c:1652  */
5936      break;
5937  
5938 <  case 556:
5939 < /* Line 1787 of yacc.c  */
6344 < #line 2708 "conf_parser.y"
5938 >  case 574:
5939 > #line 2629 "conf_parser.y" /* yacc.c:1652  */
5940      {
5941 <  ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
5941 >  ConfigGeneral.oper_umodes |= UMODE_SERVNOTICE;
5942   }
5943 + #line 5944 "conf_parser.c" /* yacc.c:1652  */
5944      break;
5945  
5946 <  case 557:
5947 < /* Line 1787 of yacc.c  */
6352 < #line 2711 "conf_parser.y"
5946 >  case 575:
5947 > #line 2632 "conf_parser.y" /* yacc.c:1652  */
5948      {
5949 <  ConfigFileEntry.oper_umodes |= UMODE_REJ;
5949 >  ConfigGeneral.oper_umodes |= UMODE_INVISIBLE;
5950   }
5951 + #line 5952 "conf_parser.c" /* yacc.c:1652  */
5952      break;
5953  
5954 <  case 558:
5955 < /* Line 1787 of yacc.c  */
6360 < #line 2714 "conf_parser.y"
5954 >  case 576:
5955 > #line 2635 "conf_parser.y" /* yacc.c:1652  */
5956      {
5957 <  ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
5957 >  ConfigGeneral.oper_umodes |= UMODE_WALLOP;
5958   }
5959 + #line 5960 "conf_parser.c" /* yacc.c:1652  */
5960      break;
5961  
5962 <  case 559:
5963 < /* Line 1787 of yacc.c  */
6368 < #line 2717 "conf_parser.y"
5962 >  case 577:
5963 > #line 2638 "conf_parser.y" /* yacc.c:1652  */
5964      {
5965 <  ConfigFileEntry.oper_umodes |= UMODE_SPY;
5965 >  ConfigGeneral.oper_umodes |= UMODE_SOFTCALLERID;
5966   }
5967 + #line 5968 "conf_parser.c" /* yacc.c:1652  */
5968      break;
5969  
5970 <  case 560:
5971 < /* Line 1787 of yacc.c  */
6376 < #line 2720 "conf_parser.y"
5970 >  case 578:
5971 > #line 2641 "conf_parser.y" /* yacc.c:1652  */
5972      {
5973 <  ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
5973 >  ConfigGeneral.oper_umodes |= UMODE_CALLERID;
5974   }
5975 + #line 5976 "conf_parser.c" /* yacc.c:1652  */
5976      break;
5977  
5978 <  case 561:
5979 < /* Line 1787 of yacc.c  */
6384 < #line 2723 "conf_parser.y"
5978 >  case 579:
5979 > #line 2644 "conf_parser.y" /* yacc.c:1652  */
5980      {
5981 <  ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
5981 >  ConfigGeneral.oper_umodes |= UMODE_LOCOPS;
5982   }
5983 + #line 5984 "conf_parser.c" /* yacc.c:1652  */
5984      break;
5985  
5986 <  case 562:
5987 < /* Line 1787 of yacc.c  */
6392 < #line 2726 "conf_parser.y"
5986 >  case 580:
5987 > #line 2647 "conf_parser.y" /* yacc.c:1652  */
5988      {
5989 <  ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
5989 >  ConfigGeneral.oper_umodes |= UMODE_REGONLY;
5990   }
5991 + #line 5992 "conf_parser.c" /* yacc.c:1652  */
5992      break;
5993  
5994 <  case 563:
5995 < /* Line 1787 of yacc.c  */
6400 < #line 2729 "conf_parser.y"
5994 >  case 581:
5995 > #line 2650 "conf_parser.y" /* yacc.c:1652  */
5996      {
5997 <  ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
5997 >  ConfigGeneral.oper_umodes |= UMODE_FARCONNECT;
5998   }
5999 + #line 6000 "conf_parser.c" /* yacc.c:1652  */
6000      break;
6001  
6002 <  case 564:
6003 < /* Line 1787 of yacc.c  */
6408 < #line 2732 "conf_parser.y"
6002 >  case 582:
6003 > #line 2653 "conf_parser.y" /* yacc.c:1652  */
6004      {
6005 <  ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6005 >  ConfigGeneral.oper_umodes |= UMODE_EXPIRATION;
6006   }
6007 + #line 6008 "conf_parser.c" /* yacc.c:1652  */
6008      break;
6009  
6010 <  case 565:
6011 < /* Line 1787 of yacc.c  */
6416 < #line 2735 "conf_parser.y"
6010 >  case 583:
6011 > #line 2658 "conf_parser.y" /* yacc.c:1652  */
6012      {
6013 <  ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6013 >  ConfigGeneral.oper_only_umodes = 0;
6014   }
6015 + #line 6016 "conf_parser.c" /* yacc.c:1652  */
6016      break;
6017  
6018 <  case 566:
6019 < /* Line 1787 of yacc.c  */
6424 < #line 2738 "conf_parser.y"
6018 >  case 587:
6019 > #line 2664 "conf_parser.y" /* yacc.c:1652  */
6020      {
6021 <  ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6021 >  ConfigGeneral.oper_only_umodes |= UMODE_BOTS;
6022   }
6023 + #line 6024 "conf_parser.c" /* yacc.c:1652  */
6024      break;
6025  
6026 <  case 567:
6027 < /* Line 1787 of yacc.c  */
6432 < #line 2741 "conf_parser.y"
6026 >  case 588:
6027 > #line 2667 "conf_parser.y" /* yacc.c:1652  */
6028      {
6029 <  ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6029 >  ConfigGeneral.oper_only_umodes |= UMODE_CCONN;
6030   }
6031 + #line 6032 "conf_parser.c" /* yacc.c:1652  */
6032      break;
6033  
6034 <  case 568:
6035 < /* Line 1787 of yacc.c  */
6440 < #line 2746 "conf_parser.y"
6034 >  case 589:
6035 > #line 2670 "conf_parser.y" /* yacc.c:1652  */
6036      {
6037 <  ConfigFileEntry.oper_only_umodes = 0;
6037 >  ConfigGeneral.oper_only_umodes |= UMODE_DEAF;
6038   }
6039 + #line 6040 "conf_parser.c" /* yacc.c:1652  */
6040      break;
6041  
6042 <  case 572:
6043 < /* Line 1787 of yacc.c  */
6448 < #line 2752 "conf_parser.y"
6042 >  case 590:
6043 > #line 2673 "conf_parser.y" /* yacc.c:1652  */
6044      {
6045 <  ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6045 >  ConfigGeneral.oper_only_umodes |= UMODE_DEBUG;
6046   }
6047 + #line 6048 "conf_parser.c" /* yacc.c:1652  */
6048      break;
6049  
6050 <  case 573:
6051 < /* Line 1787 of yacc.c  */
6456 < #line 2755 "conf_parser.y"
6050 >  case 591:
6051 > #line 2676 "conf_parser.y" /* yacc.c:1652  */
6052      {
6053 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6053 >  ConfigGeneral.oper_only_umodes |= UMODE_FULL;
6054   }
6055 + #line 6056 "conf_parser.c" /* yacc.c:1652  */
6056      break;
6057  
6058 <  case 574:
6059 < /* Line 1787 of yacc.c  */
6464 < #line 2758 "conf_parser.y"
6058 >  case 592:
6059 > #line 2679 "conf_parser.y" /* yacc.c:1652  */
6060      {
6061 <  ConfigFileEntry.oper_only_umodes |= UMODE_CCONN_FULL;
6061 >  ConfigGeneral.oper_only_umodes |= UMODE_SKILL;
6062   }
6063 + #line 6064 "conf_parser.c" /* yacc.c:1652  */
6064      break;
6065  
6066 <  case 575:
6067 < /* Line 1787 of yacc.c  */
6472 < #line 2761 "conf_parser.y"
6066 >  case 593:
6067 > #line 2682 "conf_parser.y" /* yacc.c:1652  */
6068      {
6069 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6069 >  ConfigGeneral.oper_only_umodes |= UMODE_HIDDEN;
6070   }
6071 + #line 6072 "conf_parser.c" /* yacc.c:1652  */
6072      break;
6073  
6074 <  case 576:
6075 < /* Line 1787 of yacc.c  */
6480 < #line 2764 "conf_parser.y"
6074 >  case 594:
6075 > #line 2685 "conf_parser.y" /* yacc.c:1652  */
6076      {
6077 <  ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6077 >  ConfigGeneral.oper_only_umodes |= UMODE_NCHANGE;
6078   }
6079 + #line 6080 "conf_parser.c" /* yacc.c:1652  */
6080      break;
6081  
6082 <  case 577:
6083 < /* Line 1787 of yacc.c  */
6084 < #line 2767 "conf_parser.y"
6085 <    {
6490 <  ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6082 >  case 595:
6083 > #line 2688 "conf_parser.y" /* yacc.c:1652  */
6084 >    {
6085 >  ConfigGeneral.oper_only_umodes |= UMODE_REJ;
6086   }
6087 + #line 6088 "conf_parser.c" /* yacc.c:1652  */
6088      break;
6089  
6090 <  case 578:
6091 < /* Line 1787 of yacc.c  */
6496 < #line 2770 "conf_parser.y"
6090 >  case 596:
6091 > #line 2691 "conf_parser.y" /* yacc.c:1652  */
6092      {
6093 <  ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6093 >  ConfigGeneral.oper_only_umodes |= UMODE_UNAUTH;
6094   }
6095 + #line 6096 "conf_parser.c" /* yacc.c:1652  */
6096      break;
6097  
6098 <  case 579:
6099 < /* Line 1787 of yacc.c  */
6504 < #line 2773 "conf_parser.y"
6098 >  case 597:
6099 > #line 2694 "conf_parser.y" /* yacc.c:1652  */
6100      {
6101 <  ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6101 >  ConfigGeneral.oper_only_umodes |= UMODE_SPY;
6102   }
6103 + #line 6104 "conf_parser.c" /* yacc.c:1652  */
6104      break;
6105  
6106 <  case 580:
6107 < /* Line 1787 of yacc.c  */
6512 < #line 2776 "conf_parser.y"
6106 >  case 598:
6107 > #line 2697 "conf_parser.y" /* yacc.c:1652  */
6108      {
6109 <  ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6109 >  ConfigGeneral.oper_only_umodes |= UMODE_EXTERNAL;
6110   }
6111 + #line 6112 "conf_parser.c" /* yacc.c:1652  */
6112      break;
6113  
6114 <  case 581:
6115 < /* Line 1787 of yacc.c  */
6520 < #line 2779 "conf_parser.y"
6114 >  case 599:
6115 > #line 2700 "conf_parser.y" /* yacc.c:1652  */
6116      {
6117 <  ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6117 >  ConfigGeneral.oper_only_umodes |= UMODE_SERVNOTICE;
6118   }
6119 + #line 6120 "conf_parser.c" /* yacc.c:1652  */
6120      break;
6121  
6122 <  case 582:
6123 < /* Line 1787 of yacc.c  */
6528 < #line 2782 "conf_parser.y"
6122 >  case 600:
6123 > #line 2703 "conf_parser.y" /* yacc.c:1652  */
6124      {
6125 <  ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6125 >  ConfigGeneral.oper_only_umodes |= UMODE_INVISIBLE;
6126   }
6127 + #line 6128 "conf_parser.c" /* yacc.c:1652  */
6128      break;
6129  
6130 <  case 583:
6131 < /* Line 1787 of yacc.c  */
6536 < #line 2785 "conf_parser.y"
6130 >  case 601:
6131 > #line 2706 "conf_parser.y" /* yacc.c:1652  */
6132      {
6133 <  ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6133 >  ConfigGeneral.oper_only_umodes |= UMODE_WALLOP;
6134   }
6135 + #line 6136 "conf_parser.c" /* yacc.c:1652  */
6136      break;
6137  
6138 <  case 584:
6139 < /* Line 1787 of yacc.c  */
6544 < #line 2788 "conf_parser.y"
6138 >  case 602:
6139 > #line 2709 "conf_parser.y" /* yacc.c:1652  */
6140      {
6141 <  ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6141 >  ConfigGeneral.oper_only_umodes |= UMODE_SOFTCALLERID;
6142   }
6143 + #line 6144 "conf_parser.c" /* yacc.c:1652  */
6144      break;
6145  
6146 <  case 585:
6147 < /* Line 1787 of yacc.c  */
6552 < #line 2791 "conf_parser.y"
6146 >  case 603:
6147 > #line 2712 "conf_parser.y" /* yacc.c:1652  */
6148      {
6149 <  ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6149 >  ConfigGeneral.oper_only_umodes |= UMODE_CALLERID;
6150   }
6151 + #line 6152 "conf_parser.c" /* yacc.c:1652  */
6152      break;
6153  
6154 <  case 586:
6155 < /* Line 1787 of yacc.c  */
6560 < #line 2794 "conf_parser.y"
6154 >  case 604:
6155 > #line 2715 "conf_parser.y" /* yacc.c:1652  */
6156      {
6157 <  ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6157 >  ConfigGeneral.oper_only_umodes |= UMODE_LOCOPS;
6158   }
6159 + #line 6160 "conf_parser.c" /* yacc.c:1652  */
6160      break;
6161  
6162 <  case 587:
6163 < /* Line 1787 of yacc.c  */
6568 < #line 2797 "conf_parser.y"
6162 >  case 605:
6163 > #line 2718 "conf_parser.y" /* yacc.c:1652  */
6164      {
6165 <  ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6165 >  ConfigGeneral.oper_only_umodes |= UMODE_REGONLY;
6166   }
6167 + #line 6168 "conf_parser.c" /* yacc.c:1652  */
6168      break;
6169  
6170 <  case 588:
6171 < /* Line 1787 of yacc.c  */
6576 < #line 2800 "conf_parser.y"
6170 >  case 606:
6171 > #line 2721 "conf_parser.y" /* yacc.c:1652  */
6172      {
6173 <  ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6173 >  ConfigGeneral.oper_only_umodes |= UMODE_FARCONNECT;
6174   }
6175 + #line 6176 "conf_parser.c" /* yacc.c:1652  */
6176      break;
6177  
6178 <  case 589:
6179 < /* Line 1787 of yacc.c  */
6584 < #line 2803 "conf_parser.y"
6178 >  case 607:
6179 > #line 2724 "conf_parser.y" /* yacc.c:1652  */
6180      {
6181 <  ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6181 >  ConfigGeneral.oper_only_umodes |= UMODE_EXPIRATION;
6182   }
6183 + #line 6184 "conf_parser.c" /* yacc.c:1652  */
6184      break;
6185  
6186 <  case 590:
6187 < /* Line 1787 of yacc.c  */
6592 < #line 2806 "conf_parser.y"
6186 >  case 608:
6187 > #line 2729 "conf_parser.y" /* yacc.c:1652  */
6188      {
6189 <  ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6189 >  ConfigGeneral.min_nonwildcard = (yyvsp[-1].number);
6190   }
6191 + #line 6192 "conf_parser.c" /* yacc.c:1652  */
6192      break;
6193  
6194 <  case 591:
6195 < /* Line 1787 of yacc.c  */
6600 < #line 2809 "conf_parser.y"
6194 >  case 609:
6195 > #line 2734 "conf_parser.y" /* yacc.c:1652  */
6196      {
6197 <  ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6197 >  ConfigGeneral.min_nonwildcard_simple = (yyvsp[-1].number);
6198   }
6199 + #line 6200 "conf_parser.c" /* yacc.c:1652  */
6200      break;
6201  
6202 <  case 592:
6203 < /* Line 1787 of yacc.c  */
6608 < #line 2812 "conf_parser.y"
6202 >  case 610:
6203 > #line 2739 "conf_parser.y" /* yacc.c:1652  */
6204      {
6205 <  ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6205 >  ConfigGeneral.default_floodcount = (yyvsp[-1].number);
6206   }
6207 + #line 6208 "conf_parser.c" /* yacc.c:1652  */
6208      break;
6209  
6210 <  case 593:
6211 < /* Line 1787 of yacc.c  */
6616 < #line 2817 "conf_parser.y"
6210 >  case 611:
6211 > #line 2744 "conf_parser.y" /* yacc.c:1652  */
6212      {
6213 <  ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6213 >  ConfigGeneral.default_floodtime = (yyvsp[-1].number);
6214   }
6215 + #line 6216 "conf_parser.c" /* yacc.c:1652  */
6216      break;
6217  
6218 <  case 594:
6219 < /* Line 1787 of yacc.c  */
6624 < #line 2822 "conf_parser.y"
6218 >  case 630:
6219 > #line 2772 "conf_parser.y" /* yacc.c:1652  */
6220      {
6221 <  ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6221 >  ConfigChannel.disable_fake_channels = yylval.number;
6222   }
6223 + #line 6224 "conf_parser.c" /* yacc.c:1652  */
6224      break;
6225  
6226 <  case 595:
6227 < /* Line 1787 of yacc.c  */
6632 < #line 2827 "conf_parser.y"
6226 >  case 631:
6227 > #line 2777 "conf_parser.y" /* yacc.c:1652  */
6228      {
6229 <  ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6229 >  ConfigChannel.invite_client_count = (yyvsp[-1].number);
6230   }
6231 + #line 6232 "conf_parser.c" /* yacc.c:1652  */
6232      break;
6233  
6234 <  case 614:
6235 < /* Line 1787 of yacc.c  */
6640 < #line 2850 "conf_parser.y"
6234 >  case 632:
6235 > #line 2782 "conf_parser.y" /* yacc.c:1652  */
6236      {
6237 <  ConfigChannel.disable_fake_channels = yylval.number;
6237 >  ConfigChannel.invite_client_time = (yyvsp[-1].number);
6238   }
6239 + #line 6240 "conf_parser.c" /* yacc.c:1652  */
6240      break;
6241  
6242 <  case 615:
6243 < /* Line 1787 of yacc.c  */
6648 < #line 2855 "conf_parser.y"
6242 >  case 633:
6243 > #line 2787 "conf_parser.y" /* yacc.c:1652  */
6244      {
6245 <  ConfigChannel.restrict_channels = yylval.number;
6245 >  ConfigChannel.invite_delay_channel = (yyvsp[-1].number);
6246   }
6247 + #line 6248 "conf_parser.c" /* yacc.c:1652  */
6248      break;
6249  
6250 <  case 616:
6251 < /* Line 1787 of yacc.c  */
6656 < #line 2860 "conf_parser.y"
6250 >  case 634:
6251 > #line 2792 "conf_parser.y" /* yacc.c:1652  */
6252      {
6253 <  ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6253 >  ConfigChannel.invite_expire_time = (yyvsp[-1].number);
6254   }
6255 + #line 6256 "conf_parser.c" /* yacc.c:1652  */
6256      break;
6257  
6258 <  case 617:
6259 < /* Line 1787 of yacc.c  */
6664 < #line 2865 "conf_parser.y"
6258 >  case 635:
6259 > #line 2797 "conf_parser.y" /* yacc.c:1652  */
6260      {
6261 <  ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6261 >  ConfigChannel.knock_client_count = (yyvsp[-1].number);
6262   }
6263 + #line 6264 "conf_parser.c" /* yacc.c:1652  */
6264      break;
6265  
6266 <  case 618:
6267 < /* Line 1787 of yacc.c  */
6672 < #line 2870 "conf_parser.y"
6266 >  case 636:
6267 > #line 2802 "conf_parser.y" /* yacc.c:1652  */
6268      {
6269 <  ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6269 >  ConfigChannel.knock_client_time = (yyvsp[-1].number);
6270   }
6271 + #line 6272 "conf_parser.c" /* yacc.c:1652  */
6272      break;
6273  
6274 <  case 619:
6275 < /* Line 1787 of yacc.c  */
6680 < #line 2875 "conf_parser.y"
6274 >  case 637:
6275 > #line 2807 "conf_parser.y" /* yacc.c:1652  */
6276      {
6277 <  ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6277 >  ConfigChannel.knock_delay_channel = (yyvsp[-1].number);
6278   }
6279 + #line 6280 "conf_parser.c" /* yacc.c:1652  */
6280      break;
6281  
6282 <  case 620:
6283 < /* Line 1787 of yacc.c  */
6688 < #line 2880 "conf_parser.y"
6282 >  case 638:
6283 > #line 2812 "conf_parser.y" /* yacc.c:1652  */
6284      {
6285 <  ConfigChannel.quiet_on_ban = yylval.number;
6285 >  ConfigChannel.max_channels = (yyvsp[-1].number);
6286   }
6287 + #line 6288 "conf_parser.c" /* yacc.c:1652  */
6288      break;
6289  
6290 <  case 621:
6291 < /* Line 1787 of yacc.c  */
6696 < #line 2885 "conf_parser.y"
6290 >  case 639:
6291 > #line 2817 "conf_parser.y" /* yacc.c:1652  */
6292      {
6293 <  ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6293 >  ConfigChannel.max_invites = (yyvsp[-1].number);
6294   }
6295 + #line 6296 "conf_parser.c" /* yacc.c:1652  */
6296      break;
6297  
6298 <  case 622:
6299 < /* Line 1787 of yacc.c  */
6704 < #line 2890 "conf_parser.y"
6298 >  case 640:
6299 > #line 2822 "conf_parser.y" /* yacc.c:1652  */
6300      {
6301 <  ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6301 >  ConfigChannel.max_bans = (yyvsp[-1].number);
6302   }
6303 + #line 6304 "conf_parser.c" /* yacc.c:1652  */
6304      break;
6305  
6306 <  case 623:
6307 < /* Line 1787 of yacc.c  */
6712 < #line 2895 "conf_parser.y"
6306 >  case 641:
6307 > #line 2827 "conf_parser.y" /* yacc.c:1652  */
6308      {
6309 <  ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6309 >  ConfigChannel.max_bans_large = (yyvsp[-1].number);
6310   }
6311 + #line 6312 "conf_parser.c" /* yacc.c:1652  */
6312      break;
6313  
6314 <  case 624:
6315 < /* Line 1787 of yacc.c  */
6720 < #line 2900 "conf_parser.y"
6314 >  case 642:
6315 > #line 2832 "conf_parser.y" /* yacc.c:1652  */
6316      {
6317 <  ConfigChannel.no_create_on_split = yylval.number;
6317 >  ConfigChannel.default_join_flood_count = yylval.number;
6318   }
6319 + #line 6320 "conf_parser.c" /* yacc.c:1652  */
6320      break;
6321  
6322 <  case 625:
6323 < /* Line 1787 of yacc.c  */
6728 < #line 2905 "conf_parser.y"
6322 >  case 643:
6323 > #line 2837 "conf_parser.y" /* yacc.c:1652  */
6324      {
6325 <  ConfigChannel.no_join_on_split = yylval.number;
6325 >  ConfigChannel.default_join_flood_time = (yyvsp[-1].number);
6326   }
6327 + #line 6328 "conf_parser.c" /* yacc.c:1652  */
6328      break;
6329  
6330 <  case 626:
6331 < /* Line 1787 of yacc.c  */
6736 < #line 2910 "conf_parser.y"
6330 >  case 657:
6331 > #line 2860 "conf_parser.y" /* yacc.c:1652  */
6332      {
6333 <  GlobalSetOptions.joinfloodcount = yylval.number;
6333 >  if (conf_parser_ctx.pass == 2)
6334 >    ConfigServerHide.flatten_links = yylval.number;
6335   }
6336 + #line 6337 "conf_parser.c" /* yacc.c:1652  */
6337      break;
6338  
6339 <  case 627:
6340 < /* Line 1787 of yacc.c  */
6744 < #line 2915 "conf_parser.y"
6339 >  case 658:
6340 > #line 2866 "conf_parser.y" /* yacc.c:1652  */
6341      {
6342 <  GlobalSetOptions.joinfloodtime = yylval.number;
6342 >  if (conf_parser_ctx.pass == 2)
6343 >  {
6344 >    if ((yyvsp[-1].number) > 0)
6345 >    {
6346 >      event_write_links_file.when = (yyvsp[-1].number);
6347 >      event_add(&event_write_links_file, NULL);
6348 >    }
6349 >    else
6350 >     event_delete(&event_write_links_file);
6351 >
6352 >    ConfigServerHide.flatten_links_delay = (yyvsp[-1].number);
6353 >  }
6354   }
6355 + #line 6356 "conf_parser.c" /* yacc.c:1652  */
6356      break;
6357  
6358 <  case 639:
6359 < /* Line 1787 of yacc.c  */
6752 < #line 2934 "conf_parser.y"
6358 >  case 659:
6359 > #line 2882 "conf_parser.y" /* yacc.c:1652  */
6360      {
6361    if (conf_parser_ctx.pass == 2)
6362 <    ConfigServerHide.flatten_links = yylval.number;
6362 >  {
6363 >    xfree(ConfigServerHide.flatten_links_file);
6364 >    ConfigServerHide.flatten_links_file = xstrdup(yylval.string);
6365 >  }
6366   }
6367 + #line 6368 "conf_parser.c" /* yacc.c:1652  */
6368      break;
6369  
6370 <  case 640:
6371 < /* Line 1787 of yacc.c  */
6761 < #line 2940 "conf_parser.y"
6370 >  case 660:
6371 > #line 2891 "conf_parser.y" /* yacc.c:1652  */
6372      {
6373    if (conf_parser_ctx.pass == 2)
6374 <    ConfigServerHide.hide_servers = yylval.number;
6374 >    ConfigServerHide.disable_remote_commands = yylval.number;
6375   }
6376 + #line 6377 "conf_parser.c" /* yacc.c:1652  */
6377      break;
6378  
6379 <  case 641:
6380 < /* Line 1787 of yacc.c  */
6770 < #line 2946 "conf_parser.y"
6379 >  case 661:
6380 > #line 2897 "conf_parser.y" /* yacc.c:1652  */
6381      {
6382    if (conf_parser_ctx.pass == 2)
6383 <    ConfigServerHide.hide_services = yylval.number;
6383 >    ConfigServerHide.hide_servers = yylval.number;
6384   }
6385 + #line 6386 "conf_parser.c" /* yacc.c:1652  */
6386      break;
6387  
6388 <  case 642:
6389 < /* Line 1787 of yacc.c  */
6779 < #line 2952 "conf_parser.y"
6388 >  case 662:
6389 > #line 2903 "conf_parser.y" /* yacc.c:1652  */
6390      {
6391    if (conf_parser_ctx.pass == 2)
6392 <  {
6783 <    MyFree(ConfigServerHide.hidden_name);
6784 <    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6785 <  }
6392 >    ConfigServerHide.hide_services = yylval.number;
6393   }
6394 + #line 6395 "conf_parser.c" /* yacc.c:1652  */
6395      break;
6396  
6397 <  case 643:
6398 < /* Line 1787 of yacc.c  */
6791 < #line 2961 "conf_parser.y"
6397 >  case 663:
6398 > #line 2909 "conf_parser.y" /* yacc.c:1652  */
6399      {
6400    if (conf_parser_ctx.pass == 2)
6401    {
6402 <    if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6403 <    {
6797 <      eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6798 <      ConfigServerHide.links_disabled = 0;
6799 <    }
6800 <
6801 <    ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6402 >    xfree(ConfigServerHide.hidden_name);
6403 >    ConfigServerHide.hidden_name = xstrdup(yylval.string);
6404    }
6405   }
6406 + #line 6407 "conf_parser.c" /* yacc.c:1652  */
6407      break;
6408  
6409 <  case 644:
6410 < /* Line 1787 of yacc.c  */
6808 < #line 2975 "conf_parser.y"
6409 >  case 664:
6410 > #line 2918 "conf_parser.y" /* yacc.c:1652  */
6411      {
6412    if (conf_parser_ctx.pass == 2)
6413      ConfigServerHide.hidden = yylval.number;
6414   }
6415 + #line 6416 "conf_parser.c" /* yacc.c:1652  */
6416      break;
6417  
6418 <  case 645:
6419 < /* Line 1787 of yacc.c  */
6817 < #line 2981 "conf_parser.y"
6418 >  case 665:
6419 > #line 2924 "conf_parser.y" /* yacc.c:1652  */
6420      {
6421    if (conf_parser_ctx.pass == 2)
6422      ConfigServerHide.hide_server_ips = yylval.number;
6423   }
6424 + #line 6425 "conf_parser.c" /* yacc.c:1652  */
6425      break;
6426  
6427  
6428 < /* Line 1787 of yacc.c  */
6826 < #line 6827 "conf_parser.c"
6428 > #line 6429 "conf_parser.c" /* yacc.c:1652  */
6429        default: break;
6430      }
6431    /* User semantic actions sometimes alter yychar, and that requires
# Line 6845 | Line 6447 | yyreduce:
6447  
6448    *++yyvsp = yyval;
6449  
6450 <  /* Now `shift' the result of the reduction.  Determine what state
6450 >  /* Now 'shift' the result of the reduction.  Determine what state
6451       that goes to, based on the state we popped back to and the rule
6452       number reduced by.  */
6453 <
6454 <  yyn = yyr1[yyn];
6455 <
6456 <  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6457 <  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6458 <    yystate = yytable[yystate];
6459 <  else
6858 <    yystate = yydefgoto[yyn - YYNTOKENS];
6453 >  {
6454 >    const int yylhs = yyr1[yyn] - YYNTOKENS;
6455 >    const int yyi = yypgoto[yylhs] + *yyssp;
6456 >    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
6457 >               ? yytable[yyi]
6458 >               : yydefgoto[yylhs]);
6459 >  }
6460  
6461    goto yynewstate;
6462  
6463  
6464 < /*------------------------------------.
6465 < | yyerrlab -- here on detecting error |
6466 < `------------------------------------*/
6464 > /*--------------------------------------.
6465 > | yyerrlab -- here on detecting error.  |
6466 > `--------------------------------------*/
6467   yyerrlab:
6468    /* Make sure we have latest lookahead translation.  See comments at
6469       user semantic actions for why this is necessary.  */
# Line 6913 | Line 6514 | yyerrlab:
6514    if (yyerrstatus == 3)
6515      {
6516        /* If just tried and failed to reuse lookahead token after an
6517 <         error, discard it.  */
6517 >         error, discard it.  */
6518  
6519        if (yychar <= YYEOF)
6520 <        {
6521 <          /* Return failure if at end of input.  */
6522 <          if (yychar == YYEOF)
6523 <            YYABORT;
6524 <        }
6520 >        {
6521 >          /* Return failure if at end of input.  */
6522 >          if (yychar == YYEOF)
6523 >            YYABORT;
6524 >        }
6525        else
6526 <        {
6527 <          yydestruct ("Error: discarding",
6528 <                      yytoken, &yylval);
6529 <          yychar = YYEMPTY;
6530 <        }
6526 >        {
6527 >          yydestruct ("Error: discarding",
6528 >                      yytoken, &yylval);
6529 >          yychar = YYEMPTY;
6530 >        }
6531      }
6532  
6533    /* Else will try to reuse lookahead token after shifting the error
# Line 6938 | Line 6539 | yyerrlab:
6539   | yyerrorlab -- error raised explicitly by YYERROR.  |
6540   `---------------------------------------------------*/
6541   yyerrorlab:
6542 +  /* Pacify compilers when the user code never invokes YYERROR and the
6543 +     label yyerrorlab therefore never appears in user code.  */
6544 +  if (0)
6545 +    YYERROR;
6546  
6547 <  /* Pacify compilers like GCC when the user code never invokes
6943 <     YYERROR and the label yyerrorlab therefore never appears in user
6944 <     code.  */
6945 <  if (/*CONSTCOND*/ 0)
6946 <     goto yyerrorlab;
6947 <
6948 <  /* Do not reclaim the symbols of the rule which action triggered
6547 >  /* Do not reclaim the symbols of the rule whose action triggered
6548       this YYERROR.  */
6549    YYPOPSTACK (yylen);
6550    yylen = 0;
# Line 6958 | Line 6557 | yyerrorlab:
6557   | yyerrlab1 -- common code for both syntax error and YYERROR.  |
6558   `-------------------------------------------------------------*/
6559   yyerrlab1:
6560 <  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6560 >  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
6561  
6562    for (;;)
6563      {
6564        yyn = yypact[yystate];
6565        if (!yypact_value_is_default (yyn))
6566 <        {
6567 <          yyn += YYTERROR;
6568 <          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6569 <            {
6570 <              yyn = yytable[yyn];
6571 <              if (0 < yyn)
6572 <                break;
6573 <            }
6574 <        }
6566 >        {
6567 >          yyn += YYTERROR;
6568 >          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6569 >            {
6570 >              yyn = yytable[yyn];
6571 >              if (0 < yyn)
6572 >                break;
6573 >            }
6574 >        }
6575  
6576        /* Pop the current state because it cannot handle the error token.  */
6577        if (yyssp == yyss)
6578 <        YYABORT;
6578 >        YYABORT;
6579  
6580  
6581        yydestruct ("Error: popping",
6582 <                  yystos[yystate], yyvsp);
6582 >                  yystos[yystate], yyvsp);
6583        YYPOPSTACK (1);
6584        yystate = *yyssp;
6585        YY_STACK_PRINT (yyss, yyssp);
# Line 7005 | Line 6604 | yyacceptlab:
6604    yyresult = 0;
6605    goto yyreturn;
6606  
6607 +
6608   /*-----------------------------------.
6609   | yyabortlab -- YYABORT comes here.  |
6610   `-----------------------------------*/
# Line 7012 | Line 6612 | yyabortlab:
6612    yyresult = 1;
6613    goto yyreturn;
6614  
6615 +
6616   #if !defined yyoverflow || YYERROR_VERBOSE
6617   /*-------------------------------------------------.
6618   | yyexhaustedlab -- memory exhaustion comes here.  |
# Line 7022 | Line 6623 | yyexhaustedlab:
6623    /* Fall through.  */
6624   #endif
6625  
6626 +
6627 + /*-----------------------------------------------------.
6628 + | yyreturn -- parsing is finished, return the result.  |
6629 + `-----------------------------------------------------*/
6630   yyreturn:
6631    if (yychar != YYEMPTY)
6632      {
# Line 7031 | Line 6636 | yyreturn:
6636        yydestruct ("Cleanup: discarding lookahead",
6637                    yytoken, &yylval);
6638      }
6639 <  /* Do not reclaim the symbols of the rule which action triggered
6639 >  /* Do not reclaim the symbols of the rule whose action triggered
6640       this YYABORT or YYACCEPT.  */
6641    YYPOPSTACK (yylen);
6642    YY_STACK_PRINT (yyss, yyssp);
6643    while (yyssp != yyss)
6644      {
6645        yydestruct ("Cleanup: popping",
6646 <                  yystos[*yyssp], yyvsp);
6646 >                  yystos[*yyssp], yyvsp);
6647        YYPOPSTACK (1);
6648      }
6649   #ifndef yyoverflow
# Line 7049 | Line 6654 | yyreturn:
6654    if (yymsg != yymsgbuf)
6655      YYSTACK_FREE (yymsg);
6656   #endif
6657 <  /* Make sure YYID is used.  */
7053 <  return YYID (yyresult);
6657 >  return yyresult;
6658   }
7055
7056

Comparing ircd-hybrid/trunk/src/conf_parser.c (property svn:keywords):
Revision 1855 by michael, Wed Apr 24 19:26:23 2013 UTC vs.
Revision 9127 by michael, Mon Jan 6 16:08:01 2020 UTC

# Line 1 | Line 0
1 Id Revision

Diff Legend

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