aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMark Mitchell <mark@markmitchell.com>1999-03-09 23:02:42 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>1999-03-09 23:02:42 +0000
commitd6479fe772c6ab3191be8268ac658f309675bc28 (patch)
treeb19fb389204ade44a8b25a95fc03743a45c8d0e2 /gcc
parent8f96c7ac27203b9c74a1d244c52ce242b65e8681 (diff)
downloadgcc-d6479fe772c6ab3191be8268ac658f309675bc28.zip
gcc-d6479fe772c6ab3191be8268ac658f309675bc28.tar.gz
gcc-d6479fe772c6ab3191be8268ac658f309675bc28.tar.bz2
cp-tree.h (flag_access_control): Declare.
* cp-tree.h (flag_access_control): Declare. (TREE_VIA_PPUBLIC): Document. (DECL_NONSTATIC_MEMBER_P): New macro. (enforce_access): Return an indication of whether or not access was permitted. (build_self_reference): Change prototype. (compute_access): Replace with ... (accessible_p): New function. (dfs_walk): Change prototype. (dfs_unmark): Likewise. (markedp): Likewise. * call.c (enforce_access): Use accessible_p. * class.c (build_self_reference): Insert the declaration into the list of members for this type, and make it public. * decl.c (xref_basetypes): Avoid ill-timed recursion. * init.c (build_offset_ref): Use lookup_member, not three separate name-lookups. Call enforce_access rather than checking for illegal accesses here. (resolve_offset_ref): Likewise. * lex.c (do_identifier): Likewise. * method.c (hack_identifier): Likewise. * parse.y (self_reference): Remove. (opt_component_decl_list): Don't use it. * parse.c: Regenerated. * pt.c (print_candidates): Generalize to handle lists of overloaded functions. (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's not set. (get_template_base): Use new calling convention for dfs_walk. * search.c: Include varray.h. Add prototypes. (dfs_walk): Accept a data pointer to pass to the work functions. All callers changed. All work functions changed. (breadth_first_search): Rename to bfs_walk, and make consistent with dfs_walk. (dfs_walk_real): New function. (canonical_binfo): New function. (context_for_name_lookup): Likewise. (shared_marked_p): Likewise. (shared_unmarked_p): Likewise. (lokup_field_queue_p): Likewise. (lookup_field_r): Generalize to handle both functions and fields. (lookup_field): Just call lookup_member. (lookup_fnfields): Likewise. (lookup_member): Move body of lookup_field here and generalize. (dfs_accessible_queue_p): Likewise. (dfs_accessible_p): Likewise. (dfs_access_in_type): Likewise. (access_in_type): Likewise. (compute_access): Remove, and replace with ... (accessible_p): New function. (vbase_types): Remove. (vbase_decl_ptr_intermediate): Likewise. (vbase_decl_ptr): Likewise. (vbase_init_result): Likewise. (closed_envelopes): Likewise. (bvtable): Likewise. From-SVN: r25661
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog59
-rw-r--r--gcc/cp/call.c34
-rw-r--r--gcc/cp/class.c11
-rw-r--r--gcc/cp/cp-tree.h39
-rw-r--r--gcc/cp/decl.c13
-rw-r--r--gcc/cp/init.c50
-rw-r--r--gcc/cp/lex.c9
-rw-r--r--gcc/cp/method.c20
-rw-r--r--gcc/cp/parse.c6320
-rw-r--r--gcc/cp/parse.y10
-rw-r--r--gcc/cp/pt.c11
-rw-r--r--gcc/cp/search.c1840
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/crash11.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/crash19.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/enum6.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/access17.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.jason/access23.C18
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/arm14.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/union2.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility12.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility13.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility16.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility18.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility19.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility4.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility8.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.law/visibility9.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/p8785.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/access3.C5
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/access4.C11
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/access5.C22
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/access6.C17
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/ambig1.C12
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/crash7.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/friend1.C4
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/friend4.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/derived2.C35
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/friend11.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/friend21.C2
-rw-r--r--gcc/testsuite/g++.old-deja/g++.pt/friend3.C2
43 files changed, 4329 insertions, 4271 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 3ec99ad..7dcdfea 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,62 @@
+1999-03-09 Mark Mitchell <mark@markmitchell.com>
+
+ * cp-tree.h (flag_access_control): Declare.
+ (TREE_VIA_PPUBLIC): Document.
+ (DECL_NONSTATIC_MEMBER_P): New macro.
+ (enforce_access): Return an indication of whether or not access
+ was permitted.
+ (build_self_reference): Change prototype.
+ (compute_access): Replace with ...
+ (accessible_p): New function.
+ (dfs_walk): Change prototype.
+ (dfs_unmark): Likewise.
+ (markedp): Likewise.
+ * call.c (enforce_access): Use accessible_p.
+ * class.c (build_self_reference): Insert the declaration into the
+ list of members for this type, and make it public.
+ * decl.c (xref_basetypes): Avoid ill-timed recursion.
+ * init.c (build_offset_ref): Use lookup_member, not three separate
+ name-lookups. Call enforce_access rather than checking for
+ illegal accesses here.
+ (resolve_offset_ref): Likewise.
+ * lex.c (do_identifier): Likewise.
+ * method.c (hack_identifier): Likewise.
+ * parse.y (self_reference): Remove.
+ (opt_component_decl_list): Don't use it.
+ * parse.c: Regenerated.
+ * pt.c (print_candidates): Generalize to handle lists of
+ overloaded functions.
+ (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's
+ not set.
+ (get_template_base): Use new calling convention for dfs_walk.
+ * search.c: Include varray.h. Add prototypes.
+ (dfs_walk): Accept a data pointer to pass to the work functions.
+ All callers changed. All work functions changed.
+ (breadth_first_search): Rename to bfs_walk, and make consistent
+ with dfs_walk.
+ (dfs_walk_real): New function.
+ (canonical_binfo): New function.
+ (context_for_name_lookup): Likewise.
+ (shared_marked_p): Likewise.
+ (shared_unmarked_p): Likewise.
+ (lokup_field_queue_p): Likewise.
+ (lookup_field_r): Generalize to handle both functions and fields.
+ (lookup_field): Just call lookup_member.
+ (lookup_fnfields): Likewise.
+ (lookup_member): Move body of lookup_field here and generalize.
+ (dfs_accessible_queue_p): Likewise.
+ (dfs_accessible_p): Likewise.
+ (dfs_access_in_type): Likewise.
+ (access_in_type): Likewise.
+ (compute_access): Remove, and replace with ...
+ (accessible_p): New function.
+ (vbase_types): Remove.
+ (vbase_decl_ptr_intermediate): Likewise.
+ (vbase_decl_ptr): Likewise.
+ (vbase_init_result): Likewise.
+ (closed_envelopes): Likewise.
+ (bvtable): Likewise.
+
1999-03-09 Jason Merrill <jason@yorick.cygnus.com>
* call.c (add_function_candidate): Check for proper number of args
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index e6b1125..1376303 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -3029,28 +3029,30 @@ build_op_delete_call (code, addr, size, flags, placement)
}
/* If the current scope isn't allowed to access DECL along
- BASETYPE_PATH, give an error. */
+ BASETYPE_PATH, give an error. The most derived class in
+ BASETYPE_PATH is the one used to qualify DECL. */
-void
+int
enforce_access (basetype_path, decl)
- tree basetype_path, decl;
+ tree basetype_path;
+ tree decl;
{
- tree access = compute_access (basetype_path, decl);
+ int accessible;
- if (access == access_private_node)
- {
- cp_error_at ("`%+#D' is %s", decl,
- TREE_PRIVATE (decl) ? "private"
- : "from private base class");
- error ("within this context");
- }
- else if (access == access_protected_node)
+ accessible = accessible_p (basetype_path, decl);
+ if (!accessible)
{
- cp_error_at ("`%+#D' %s", decl,
- TREE_PROTECTED (decl) ? "is protected"
- : "has protected accessibility");
- error ("within this context");
+ if (TREE_PRIVATE (decl))
+ cp_error_at ("`%+#D' is private", decl);
+ else if (TREE_PROTECTED (decl))
+ cp_error_at ("`%+#D' is protected", decl);
+ else
+ cp_error_at ("`%+#D' is inaccessible", decl);
+ cp_error ("within this context");
+ return 0;
}
+
+ return 1;
}
/* Perform the conversions in CONVS on the expression EXPR. */
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 5e71c41..6d8a4d6 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -1440,7 +1440,6 @@ alter_access (t, binfo, fdecl, access)
else
{
enforce_access (binfo, fdecl);
-
DECL_ACCESS (fdecl) = tree_cons (t, access, DECL_ACCESS (fdecl));
return 1;
}
@@ -5548,18 +5547,24 @@ maybe_push_cache_obstack ()
into the scope of the class itself. For purposes of access checking,
the inserted class name is treated as if it were a public member name. */
-tree
+void
build_self_reference ()
{
tree name = constructor_name (current_class_type);
tree value = build_lang_decl (TYPE_DECL, name, current_class_type);
+ tree saved_cas;
+
DECL_NONLOCAL (value) = 1;
DECL_CONTEXT (value) = current_class_type;
DECL_CLASS_CONTEXT (value) = current_class_type;
DECL_ARTIFICIAL (value) = 1;
pushdecl_class_level (value);
- return value;
+
+ saved_cas = current_access_specifier;
+ current_access_specifier = access_public_node;
+ finish_member_declaration (value);
+ current_access_specifier = saved_cas;
}
/* Returns 1 if TYPE contains only padding bytes. */
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index a6f438b..551803b 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -549,6 +549,11 @@ extern int flag_vtable_gc;
/* Nonzero means make the default pedwarns warnings instead of errors.
The value of this flag is ignored if -pedantic is specified. */
extern int flag_permissive;
+
+/* Nonzero if we want to obey access control semantics. */
+
+extern int flag_access_control;
+
/* C++ language-specific tree codes. */
#define DEFTREECODE(SYM, NAME, TYPE, LENGTH) SYM,
@@ -1086,11 +1091,16 @@ struct lang_type
gcc/tree.h. In particular if D is derived from B then the BINFO
for B (in D) will have a BINFO_INHERITANCE_CHAIN pointing to
D. In tree.h, this pointer is described as pointing in other
- direction.
+ direction. There is a different BINFO for each path to a virtual
+ base; BINFOs for virtual bases are not shared. In addition, shared
+ versions of each of the virtual class BINFOs are stored in
+ CLASSTYPE_VBASECLASSES.
- After a call to get_vbase_types, the vbases are chained together in
- depth-first order via TREE_CHAIN. Other than that, TREE_CHAIN is
- unused. */
+ We use TREE_VIA_PROTECTED and TREE_VIA_PUBLIC, but private
+ inheritance is indicated by the absence of the other two flags, not
+ by TREE_VIAR_PRIVATE, which is unused.
+
+ The TREE_CHAIN is for scratch space in search.c. */
/* Nonzero means marked by DFS or BFS search, including searches
by `get_binfo' and `get_base_distance'. */
@@ -1299,6 +1309,12 @@ struct lang_decl
has `this' as volatile X *const. */
#define DECL_VOLATILE_MEMFUNC_P(NODE) (DECL_LANG_SPECIFIC(NODE)->decl_flags.volatile_memfunc)
+/* Nonzero for a DECL means that this member is a non-static member. */
+#define DECL_NONSTATIC_MEMBER_P(NODE) \
+ ((TREE_CODE (NODE) == FUNCTION_DECL \
+ && DECL_NONSTATIC_MEMBER_FUNCTION_P (NODE)) \
+ || TREE_CODE (NODE) == FIELD_DECL)
+
/* Nonzero for _DECL means that this member object type
is mutable. */
#define DECL_MUTABLE_P(NODE) (DECL_LANG_SPECIFIC(NODE)->decl_flags.mutable_flag)
@@ -2653,7 +2669,7 @@ extern tree build_op_new_call PROTO((enum tree_code, tree, tree, int));
extern tree build_op_delete_call PROTO((enum tree_code, tree, tree, int, tree));
extern int can_convert PROTO((tree, tree));
extern int can_convert_arg PROTO((tree, tree, tree));
-extern void enforce_access PROTO((tree, tree));
+extern int enforce_access PROTO((tree, tree));
extern tree convert_default_arg PROTO((tree, tree, tree));
extern tree convert_arg_to_ellipsis PROTO((tree));
@@ -2680,7 +2696,7 @@ extern tree instantiate_type PROTO((tree, tree, int));
extern void print_class_statistics PROTO((void));
extern void maybe_push_cache_obstack PROTO((void));
extern unsigned HOST_WIDE_INT skip_rtti_stuff PROTO((tree *));
-extern tree build_self_reference PROTO((void));
+extern void build_self_reference PROTO((void));
extern void warn_hidden PROTO((tree));
extern tree get_enclosing_class PROTO((tree));
int is_base_of_enclosing_class PROTO((tree, tree));
@@ -3128,7 +3144,7 @@ extern int types_overlap_p PROTO((tree, tree));
extern tree get_vbase PROTO((tree, tree));
extern tree get_binfo PROTO((tree, tree, int));
extern int get_base_distance PROTO((tree, tree, int, tree *));
-extern tree compute_access PROTO((tree, tree));
+extern int accessible_p PROTO((tree, tree));
extern tree lookup_field PROTO((tree, tree, int, int));
extern tree lookup_nested_field PROTO((tree, int));
extern int lookup_fnfields_1 PROTO((tree, tree));
@@ -3153,9 +3169,12 @@ extern void reinit_search_statistics PROTO((void));
extern tree current_scope PROTO((void));
extern tree lookup_conversions PROTO((tree));
extern tree binfo_for_vtable PROTO((tree));
-extern void dfs_walk PROTO((tree, void (*) (tree), int (*) (tree)));
-extern void dfs_unmark PROTO((tree));
-extern int markedp PROTO((tree));
+extern tree dfs_walk PROTO((tree,
+ tree (*)(tree, void *),
+ tree (*) (tree, void *),
+ void *));
+extern tree dfs_unmark PROTO((tree, void *));
+extern tree markedp PROTO((tree, void *));
/* in semantics.c */
extern void finish_expr_stmt PROTO((tree));
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index a386735..9a51e65 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -12383,6 +12383,8 @@ xref_basetypes (code_type_node, name, ref, binfo)
/* In the declaration `A : X, Y, ... Z' we mark all the types
(A, X, Y, ..., Z) so we can check for duplicates. */
tree binfos;
+ tree base;
+
int i, len;
enum tag_types tag_code = (enum tag_types) TREE_INT_CST_LOW (code_type_node);
@@ -12395,6 +12397,13 @@ xref_basetypes (code_type_node, name, ref, binfo)
len = list_length (binfo);
push_obstacks (TYPE_OBSTACK (ref), TYPE_OBSTACK (ref));
+ /* First, make sure that any templates in base-classes are
+ instantiated. This ensures that if we call ourselves recursively
+ we do not get confused about which classes are marked and which
+ are not. */
+ for (base = binfo; base; base = TREE_CHAIN (base))
+ complete_type (TREE_VALUE (base));
+
SET_CLASSTYPE_MARKED (ref);
BINFO_BASETYPES (TYPE_BINFO (ref)) = binfos = make_tree_vec (len);
@@ -12433,16 +12442,14 @@ xref_basetypes (code_type_node, name, ref, binfo)
GNU_xref_hier (name, basetype, via_public, via_virtual, 0);
-#if 1
/* This code replaces similar code in layout_basetypes.
We put the complete_type first for implicit `typename'. */
- if (TYPE_SIZE (complete_type (basetype)) == NULL_TREE
+ if (TYPE_SIZE (basetype) == NULL_TREE
&& ! (current_template_parms && uses_template_parms (basetype)))
{
cp_error ("base class `%T' has incomplete type", basetype);
continue;
}
-#endif
else
{
if (CLASSTYPE_MARKED (basetype))
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index ea424b6..98f26f5 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -1490,7 +1490,8 @@ tree
build_offset_ref (type, name)
tree type, name;
{
- tree decl, fnfields, fields, t = error_mark_node;
+ tree decl, t = error_mark_node;
+ tree member;
tree basebinfo = NULL_TREE;
tree orig_name = name;
@@ -1558,17 +1559,17 @@ build_offset_ref (type, name)
decl = maybe_dummy_object (type, &basebinfo);
- fnfields = lookup_fnfields (basebinfo, name, 1);
- fields = lookup_field (basebinfo, name, 0, 0);
+ member = lookup_member (basebinfo, name, 1, 0);
- if (fields == error_mark_node || fnfields == error_mark_node)
+ if (member == error_mark_node)
return error_mark_node;
/* A lot of this logic is now handled in lookup_field and
lookup_fnfield. */
- if (fnfields)
+ if (member && TREE_CODE (member) == TREE_LIST)
{
/* Go from the TREE_BASELINK to the member function info. */
+ tree fnfields = member;
t = TREE_VALUE (fnfields);
if (TREE_CODE (orig_name) == TEMPLATE_ID_EXPR)
@@ -1596,26 +1597,13 @@ build_offset_ref (type, name)
if (!really_overloaded_fn (t))
{
- tree access;
-
/* Get rid of a potential OVERLOAD around it */
t = OVL_CURRENT (t);
/* unique functions are handled easily. */
basebinfo = TREE_PURPOSE (fnfields);
- access = compute_access (basebinfo, t);
- if (access == access_protected_node)
- {
- cp_error_at ("member function `%#D' is protected", t);
- error ("in this context");
- return error_mark_node;
- }
- if (access == access_private_node)
- {
- cp_error_at ("member function `%#D' is private", t);
- error ("in this context");
- return error_mark_node;
- }
+ if (!enforce_access (basebinfo, t))
+ return error_mark_node;
mark_used (t);
if (DECL_STATIC_FUNCTION_P (t))
return t;
@@ -1638,14 +1626,7 @@ build_offset_ref (type, name)
return t;
}
- /* Now that we know we are looking for a field, see if we
- have access to that field. Lookup_field will give us the
- error message. */
-
- t = lookup_field (basebinfo, name, 1, 0);
-
- if (t == error_mark_node)
- return error_mark_node;
+ t = member;
if (t == NULL_TREE)
{
@@ -1754,7 +1735,6 @@ resolve_offset_ref (exp)
&& (base == current_class_ref || is_dummy_object (base)))
{
tree basetype_path;
- tree access;
tree expr;
if (TREE_CODE (exp) == OFFSET_REF && TREE_CODE (type) == OFFSET_TYPE)
@@ -1771,19 +1751,9 @@ resolve_offset_ref (exp)
}
/* Kludge: we need to use basetype_path now, because
convert_pointer_to will bash it. */
- access = compute_access (basetype_path, member);
+ enforce_access (basetype_path, member);
addr = convert_pointer_to (basetype, base);
- /* Issue errors if there was an access violation. */
- if (access != access_public_node)
- {
- cp_error_at ("member `%D' is %s",
- access == access_private_node
- ? "private" : "protected",
- member);
- cp_error ("in this context");
- }
-
/* Even in the case of illegal access, we form the
COMPONENT_REF; that will allow better error recovery than
just feeding back error_mark_node. */
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index cff3064..6d440f4 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -3043,14 +3043,9 @@ do_identifier (token, parsing, args)
/* TREE_USED is set in `hack_identifier'. */
if (TREE_CODE (id) == CONST_DECL)
{
+ /* Check access. */
if (IDENTIFIER_CLASS_VALUE (token) == id)
- {
- /* Check access. */
- tree access = compute_access (TYPE_BINFO (current_class_type), id);
- if (access == access_private_node)
- cp_error ("enum `%D' is private", id);
- /* protected is OK, since it's an enum of `this'. */
- }
+ enforce_access (current_class_type, id);
if (!processing_template_decl || DECL_TEMPLATE_PARM_P (id))
id = DECL_INITIAL (id);
}
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index f5958f2..c2ac3f4 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -1994,29 +1994,15 @@ hack_identifier (value, name)
if (DECL_LANG_SPECIFIC (value)
&& DECL_CLASS_CONTEXT (value) != current_class_type)
{
- tree path, access;
+ tree path;
register tree context
= (TREE_CODE (value) == FUNCTION_DECL && DECL_VIRTUAL_P (value))
? DECL_CLASS_CONTEXT (value)
: DECL_CONTEXT (value);
get_base_distance (context, current_class_type, 0, &path);
- if (path)
- {
- access = compute_access (path, value);
- if (access != access_public_node)
- {
- if (TREE_CODE (value) == VAR_DECL)
- error ("static member `%s' is %s",
- IDENTIFIER_POINTER (name),
- TREE_PRIVATE (value) ? "private"
- : "from a private base class");
- else
- error ("enum `%s' is from private base class",
- IDENTIFIER_POINTER (name));
- return error_mark_node;
- }
- }
+ if (path && !enforce_access (current_class_type, value))
+ return error_mark_node;
}
}
else if (TREE_CODE (value) == TREE_LIST && TREE_NONLOCAL_FLAG (value))
diff --git a/gcc/cp/parse.c b/gcc/cp/parse.c
index fe1c8f4..5e9600f 100644
--- a/gcc/cp/parse.c
+++ b/gcc/cp/parse.c
@@ -215,11 +215,11 @@ parse_decl(declarator, specs_attrs, attributes, initialized, decl)
-#define YYFINAL 1630
+#define YYFINAL 1629
#define YYFLAG -32768
#define YYNTBASE 112
-#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 400)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 399)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -313,42 +313,42 @@ static const short yyprhs[] = { 0,
1630, 1633, 1636, 1639, 1642, 1645, 1649, 1654, 1658, 1661,
1665, 1667, 1668, 1672, 1673, 1677, 1680, 1682, 1684, 1685,
1688, 1692, 1694, 1699, 1701, 1705, 1707, 1709, 1714, 1719,
- 1722, 1725, 1729, 1733, 1735, 1736, 1738, 1741, 1745, 1748,
- 1751, 1753, 1756, 1759, 1762, 1765, 1768, 1771, 1774, 1776,
- 1779, 1782, 1786, 1789, 1792, 1797, 1802, 1805, 1807, 1813,
- 1818, 1820, 1821, 1823, 1827, 1828, 1830, 1834, 1836, 1838,
- 1840, 1842, 1847, 1852, 1857, 1862, 1867, 1871, 1876, 1881,
- 1886, 1891, 1895, 1897, 1901, 1903, 1907, 1910, 1912, 1920,
- 1921, 1924, 1926, 1929, 1930, 1933, 1938, 1943, 1946, 1951,
- 1955, 1959, 1962, 1965, 1969, 1971, 1973, 1976, 1978, 1980,
- 1983, 1986, 1991, 1996, 2000, 2004, 2007, 2009, 2011, 2014,
- 2018, 2022, 2025, 2028, 2032, 2034, 2038, 2042, 2045, 2048,
- 2052, 2054, 2059, 2063, 2068, 2072, 2074, 2077, 2080, 2083,
- 2086, 2089, 2091, 2094, 2099, 2104, 2107, 2109, 2111, 2113,
- 2115, 2118, 2123, 2126, 2129, 2132, 2135, 2137, 2140, 2143,
- 2146, 2149, 2153, 2155, 2158, 2162, 2167, 2170, 2173, 2176,
- 2179, 2182, 2185, 2190, 2193, 2195, 2198, 2201, 2205, 2207,
- 2211, 2214, 2218, 2221, 2224, 2228, 2230, 2234, 2239, 2243,
- 2246, 2249, 2251, 2255, 2258, 2261, 2263, 2266, 2270, 2272,
- 2276, 2278, 2285, 2290, 2295, 2299, 2305, 2309, 2313, 2317,
- 2320, 2322, 2324, 2327, 2330, 2333, 2334, 2336, 2338, 2341,
- 2345, 2347, 2350, 2351, 2355, 2356, 2357, 2363, 2365, 2366,
- 2369, 2371, 2373, 2375, 2378, 2379, 2384, 2386, 2387, 2388,
- 2394, 2395, 2396, 2404, 2405, 2406, 2407, 2408, 2421, 2422,
- 2423, 2431, 2432, 2438, 2439, 2447, 2448, 2453, 2456, 2459,
- 2462, 2466, 2473, 2482, 2493, 2506, 2511, 2515, 2518, 2521,
- 2523, 2525, 2527, 2529, 2531, 2532, 2533, 2540, 2541, 2542,
- 2548, 2550, 2553, 2554, 2555, 2561, 2563, 2565, 2569, 2573,
- 2576, 2579, 2582, 2585, 2588, 2590, 2593, 2594, 2596, 2597,
- 2599, 2601, 2602, 2604, 2606, 2610, 2615, 2617, 2621, 2622,
- 2624, 2626, 2628, 2631, 2634, 2637, 2639, 2642, 2645, 2646,
- 2650, 2652, 2654, 2656, 2659, 2662, 2665, 2670, 2673, 2676,
- 2679, 2682, 2685, 2688, 2690, 2693, 2695, 2698, 2700, 2702,
- 2703, 2704, 2706, 2707, 2712, 2715, 2717, 2719, 2723, 2724,
- 2728, 2732, 2736, 2738, 2741, 2744, 2747, 2750, 2753, 2756,
+ 1722, 1725, 1729, 1733, 1735, 1736, 1738, 1742, 1745, 1748,
+ 1750, 1753, 1756, 1759, 1762, 1765, 1768, 1771, 1773, 1776,
+ 1779, 1783, 1786, 1789, 1794, 1799, 1802, 1804, 1810, 1815,
+ 1817, 1818, 1820, 1824, 1825, 1827, 1831, 1833, 1835, 1837,
+ 1839, 1844, 1849, 1854, 1859, 1864, 1868, 1873, 1878, 1883,
+ 1888, 1892, 1894, 1898, 1900, 1904, 1907, 1909, 1917, 1918,
+ 1921, 1923, 1926, 1927, 1930, 1935, 1940, 1943, 1948, 1952,
+ 1956, 1959, 1962, 1966, 1968, 1970, 1973, 1975, 1977, 1980,
+ 1983, 1988, 1993, 1997, 2001, 2004, 2006, 2008, 2011, 2015,
+ 2019, 2022, 2025, 2029, 2031, 2035, 2039, 2042, 2045, 2049,
+ 2051, 2056, 2060, 2065, 2069, 2071, 2074, 2077, 2080, 2083,
+ 2086, 2088, 2091, 2096, 2101, 2104, 2106, 2108, 2110, 2112,
+ 2115, 2120, 2123, 2126, 2129, 2132, 2134, 2137, 2140, 2143,
+ 2146, 2150, 2152, 2155, 2159, 2164, 2167, 2170, 2173, 2176,
+ 2179, 2182, 2187, 2190, 2192, 2195, 2198, 2202, 2204, 2208,
+ 2211, 2215, 2218, 2221, 2225, 2227, 2231, 2236, 2240, 2243,
+ 2246, 2248, 2252, 2255, 2258, 2260, 2263, 2267, 2269, 2273,
+ 2275, 2282, 2287, 2292, 2296, 2302, 2306, 2310, 2314, 2317,
+ 2319, 2321, 2324, 2327, 2330, 2331, 2333, 2335, 2338, 2342,
+ 2344, 2347, 2348, 2352, 2353, 2354, 2360, 2362, 2363, 2366,
+ 2368, 2370, 2372, 2375, 2376, 2381, 2383, 2384, 2385, 2391,
+ 2392, 2393, 2401, 2402, 2403, 2404, 2405, 2418, 2419, 2420,
+ 2428, 2429, 2435, 2436, 2444, 2445, 2450, 2453, 2456, 2459,
+ 2463, 2470, 2479, 2490, 2503, 2508, 2512, 2515, 2518, 2520,
+ 2522, 2524, 2526, 2528, 2529, 2530, 2537, 2538, 2539, 2545,
+ 2547, 2550, 2551, 2552, 2558, 2560, 2562, 2566, 2570, 2573,
+ 2576, 2579, 2582, 2585, 2587, 2590, 2591, 2593, 2594, 2596,
+ 2598, 2599, 2601, 2603, 2607, 2612, 2614, 2618, 2619, 2621,
+ 2623, 2625, 2628, 2631, 2634, 2636, 2639, 2642, 2643, 2647,
+ 2649, 2651, 2653, 2656, 2659, 2662, 2667, 2670, 2673, 2676,
+ 2679, 2682, 2685, 2687, 2690, 2692, 2695, 2697, 2699, 2700,
+ 2701, 2703, 2704, 2709, 2712, 2714, 2716, 2720, 2721, 2725,
+ 2729, 2733, 2735, 2738, 2741, 2744, 2747, 2750, 2753, 2756,
2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786,
- 2789, 2792, 2795, 2798, 2801, 2804, 2807, 2811, 2814, 2817,
- 2820, 2823, 2827, 2830, 2833, 2838, 2843, 2847
+ 2789, 2792, 2795, 2798, 2801, 2804, 2808, 2811, 2814, 2817,
+ 2820, 2824, 2827, 2830, 2835, 2840, 2844
};
static const short yyrhs[] = { -1,
@@ -360,16 +360,16 @@ static const short yyrhs[] = { -1,
0, 0, 44, 163, 58, 123, 115, 109, 0, 0,
44, 58, 124, 115, 109, 0, 125, 0, 127, 60,
0, 129, 0, 118, 122, 0, 0, 44, 163, 64,
- 126, 132, 60, 0, 46, 314, 0, 46, 328, 314,
- 0, 46, 328, 209, 0, 46, 131, 163, 0, 46,
- 328, 163, 0, 46, 328, 131, 163, 0, 0, 46,
+ 126, 132, 60, 0, 46, 313, 0, 46, 327, 313,
+ 0, 46, 327, 209, 0, 46, 131, 163, 0, 46,
+ 327, 163, 0, 46, 327, 131, 163, 0, 0, 46,
44, 130, 132, 60, 0, 57, 54, 0, 131, 57,
- 54, 0, 209, 0, 314, 0, 328, 314, 0, 328,
+ 54, 0, 209, 0, 313, 0, 327, 313, 0, 327,
209, 0, 98, 0, 133, 98, 0, 0, 48, 74,
135, 136, 75, 0, 48, 74, 75, 0, 140, 0,
136, 59, 140, 0, 163, 0, 0, 268, 137, 0,
45, 137, 0, 134, 268, 137, 0, 138, 0, 138,
- 64, 225, 0, 391, 0, 391, 64, 204, 0, 139,
+ 64, 225, 0, 390, 0, 390, 64, 204, 0, 139,
0, 139, 64, 184, 0, 134, 142, 0, 134, 1,
0, 148, 147, 0, 143, 0, 141, 0, 133, 116,
148, 117, 147, 0, 133, 116, 143, 117, 0, 118,
@@ -379,33 +379,33 @@ static const short yyrhs[] = { -1,
166, 60, 0, 226, 60, 0, 1, 60, 0, 1,
109, 0, 60, 0, 220, 0, 159, 0, 0, 158,
0, 158, 60, 0, 0, 107, 0, 154, 146, 145,
- 338, 0, 154, 146, 362, 0, 154, 146, 1, 0,
- 0, 319, 5, 93, 150, 382, 108, 300, 394, 0,
- 319, 5, 47, 300, 394, 0, 0, 328, 319, 5,
- 93, 151, 382, 108, 300, 394, 0, 328, 319, 5,
- 47, 300, 394, 0, 0, 319, 179, 93, 152, 382,
- 108, 300, 394, 0, 319, 179, 47, 300, 394, 0,
- 0, 328, 319, 179, 93, 153, 382, 108, 300, 394,
- 0, 328, 319, 179, 47, 300, 394, 0, 226, 223,
- 0, 229, 311, 0, 311, 0, 229, 149, 0, 149,
- 0, 5, 93, 382, 108, 300, 394, 0, 5, 47,
- 300, 394, 0, 179, 93, 382, 108, 300, 394, 0,
- 179, 47, 300, 394, 0, 229, 155, 0, 155, 0,
- 226, 223, 0, 229, 311, 0, 311, 0, 229, 149,
+ 337, 0, 154, 146, 361, 0, 154, 146, 1, 0,
+ 0, 318, 5, 93, 150, 381, 108, 299, 393, 0,
+ 318, 5, 47, 299, 393, 0, 0, 327, 318, 5,
+ 93, 151, 381, 108, 299, 393, 0, 327, 318, 5,
+ 47, 299, 393, 0, 0, 318, 179, 93, 152, 381,
+ 108, 299, 393, 0, 318, 179, 47, 299, 393, 0,
+ 0, 327, 318, 179, 93, 153, 381, 108, 299, 393,
+ 0, 327, 318, 179, 47, 299, 393, 0, 226, 223,
+ 0, 229, 310, 0, 310, 0, 229, 149, 0, 149,
+ 0, 5, 93, 381, 108, 299, 393, 0, 5, 47,
+ 299, 393, 0, 179, 93, 381, 108, 299, 393, 0,
+ 179, 47, 299, 393, 0, 229, 155, 0, 155, 0,
+ 226, 223, 0, 229, 310, 0, 310, 0, 229, 149,
0, 149, 0, 25, 3, 0, 157, 253, 0, 157,
93, 196, 108, 0, 157, 47, 0, 62, 160, 161,
0, 0, 0, 162, 0, 161, 59, 162, 0, 161,
1, 0, 93, 196, 108, 0, 47, 0, 164, 93,
- 196, 108, 0, 164, 47, 0, 306, 93, 196, 108,
- 0, 306, 47, 0, 321, 93, 196, 108, 0, 321,
+ 196, 108, 0, 164, 47, 0, 305, 93, 196, 108,
+ 0, 305, 47, 0, 320, 93, 196, 108, 0, 320,
47, 0, 3, 0, 4, 0, 5, 0, 56, 0,
57, 0, 3, 0, 56, 0, 57, 0, 104, 0,
103, 0, 105, 0, 0, 48, 175, 232, 60, 167,
176, 0, 0, 48, 175, 226, 223, 168, 176, 0,
- 0, 48, 175, 311, 169, 176, 0, 0, 48, 175,
+ 0, 48, 175, 310, 169, 176, 0, 0, 48, 175,
149, 170, 176, 0, 0, 7, 48, 175, 232, 60,
171, 176, 0, 0, 7, 48, 175, 226, 223, 172,
- 176, 0, 0, 7, 48, 175, 311, 173, 176, 0,
+ 176, 0, 0, 7, 48, 175, 310, 173, 176, 0,
0, 7, 48, 175, 149, 174, 176, 0, 0, 0,
56, 74, 182, 181, 180, 0, 4, 74, 182, 181,
180, 0, 179, 0, 177, 0, 163, 74, 182, 75,
@@ -415,17 +415,17 @@ static const short yyrhs[] = { -1,
78, 0, 86, 0, 87, 0, 110, 0, 195, 0,
204, 0, 47, 0, 93, 186, 108, 0, 47, 0,
93, 190, 108, 0, 0, 190, 0, 1, 0, 0,
- 372, 223, 237, 246, 64, 191, 254, 0, 186, 0,
- 109, 0, 335, 333, 109, 0, 335, 333, 1, 109,
- 0, 335, 1, 109, 0, 0, 58, 194, 192, 0,
- 347, 0, 204, 59, 204, 0, 204, 59, 1, 0,
+ 371, 223, 237, 246, 64, 191, 254, 0, 186, 0,
+ 109, 0, 334, 332, 109, 0, 334, 332, 1, 109,
+ 0, 334, 1, 109, 0, 0, 58, 194, 192, 0,
+ 346, 0, 204, 59, 204, 0, 204, 59, 1, 0,
195, 59, 204, 0, 195, 59, 1, 0, 204, 0,
195, 0, 214, 0, 118, 203, 0, 80, 203, 0,
70, 203, 0, 88, 203, 0, 185, 203, 0, 67,
163, 0, 13, 197, 0, 13, 93, 225, 108, 0,
- 29, 197, 0, 29, 93, 225, 108, 0, 216, 299,
- 0, 216, 299, 201, 0, 216, 200, 299, 0, 216,
- 200, 299, 201, 0, 216, 93, 199, 225, 198, 0,
+ 29, 197, 0, 29, 93, 225, 108, 0, 216, 298,
+ 0, 216, 298, 201, 0, 216, 200, 298, 0, 216,
+ 200, 298, 201, 0, 216, 93, 199, 225, 198, 0,
216, 93, 199, 225, 198, 201, 0, 216, 200, 93,
199, 225, 198, 0, 216, 200, 93, 199, 225, 198,
201, 0, 217, 203, 0, 217, 94, 111, 203, 0,
@@ -442,50 +442,50 @@ static const short yyrhs[] = { -1,
204, 74, 204, 0, 204, 75, 204, 0, 204, 72,
204, 0, 204, 71, 204, 0, 204, 70, 204, 0,
204, 68, 204, 0, 204, 69, 204, 0, 204, 67,
- 204, 0, 204, 66, 204, 0, 204, 65, 377, 62,
+ 204, 0, 204, 66, 204, 0, 204, 65, 376, 62,
204, 0, 204, 64, 204, 0, 204, 63, 204, 0,
- 61, 0, 61, 204, 0, 88, 392, 163, 0, 88,
- 392, 177, 0, 207, 0, 399, 0, 3, 0, 56,
+ 61, 0, 61, 204, 0, 88, 391, 163, 0, 88,
+ 391, 177, 0, 207, 0, 398, 0, 3, 0, 56,
0, 57, 0, 0, 6, 74, 206, 182, 181, 0,
- 399, 74, 206, 182, 181, 0, 48, 163, 74, 182,
- 181, 0, 48, 6, 74, 182, 181, 0, 48, 399,
+ 398, 74, 206, 182, 181, 0, 48, 163, 74, 182,
+ 181, 0, 48, 6, 74, 182, 181, 0, 48, 398,
74, 182, 181, 0, 205, 0, 4, 0, 5, 0,
211, 0, 247, 211, 0, 205, 0, 80, 210, 0,
70, 210, 0, 93, 210, 108, 0, 3, 74, 182,
- 181, 0, 57, 74, 183, 181, 0, 313, 0, 205,
+ 181, 0, 57, 74, 183, 181, 0, 312, 0, 205,
0, 212, 0, 93, 210, 108, 0, 205, 0, 10,
0, 218, 0, 219, 0, 93, 186, 108, 0, 93,
210, 108, 0, 93, 1, 108, 0, 0, 93, 215,
- 339, 108, 0, 205, 93, 196, 108, 0, 205, 47,
+ 338, 108, 0, 205, 93, 196, 108, 0, 205, 47,
0, 214, 93, 196, 108, 0, 214, 47, 0, 214,
94, 186, 111, 0, 214, 86, 0, 214, 87, 0,
- 40, 0, 9, 93, 196, 108, 0, 317, 0, 50,
+ 40, 0, 9, 93, 196, 108, 0, 316, 0, 50,
74, 225, 75, 93, 186, 108, 0, 51, 74, 225,
75, 93, 186, 108, 0, 52, 74, 225, 75, 93,
186, 108, 0, 53, 74, 225, 75, 93, 186, 108,
0, 49, 93, 186, 108, 0, 49, 93, 225, 108,
- 0, 328, 3, 0, 328, 207, 0, 328, 399, 0,
- 316, 0, 316, 93, 196, 108, 0, 316, 47, 0,
+ 0, 327, 3, 0, 327, 207, 0, 327, 398, 0,
+ 315, 0, 315, 93, 196, 108, 0, 315, 47, 0,
221, 208, 0, 221, 208, 93, 196, 108, 0, 221,
- 208, 47, 0, 221, 209, 0, 221, 316, 0, 221,
+ 208, 47, 0, 221, 209, 0, 221, 315, 0, 221,
209, 93, 196, 108, 0, 221, 209, 47, 0, 221,
- 316, 93, 196, 108, 0, 221, 316, 47, 0, 221,
+ 315, 93, 196, 108, 0, 221, 315, 47, 0, 221,
88, 8, 47, 0, 221, 8, 54, 88, 8, 47,
- 0, 221, 1, 0, 39, 0, 328, 39, 0, 38,
- 0, 328, 217, 0, 42, 0, 43, 0, 11, 0,
+ 0, 221, 1, 0, 39, 0, 327, 39, 0, 38,
+ 0, 327, 217, 0, 42, 0, 43, 0, 11, 0,
219, 11, 0, 0, 214, 92, 0, 214, 91, 0,
232, 234, 60, 0, 226, 234, 60, 0, 229, 235,
60, 0, 226, 60, 0, 229, 60, 0, 118, 222,
- 0, 305, 0, 311, 0, 47, 0, 224, 47, 0,
- 230, 331, 0, 301, 331, 0, 232, 331, 0, 230,
- 0, 301, 0, 230, 0, 227, 0, 229, 232, 0,
+ 0, 304, 0, 310, 0, 47, 0, 224, 47, 0,
+ 230, 330, 0, 300, 330, 0, 232, 330, 0, 230,
+ 0, 300, 0, 230, 0, 227, 0, 229, 232, 0,
232, 228, 0, 232, 231, 228, 0, 229, 232, 228,
0, 229, 232, 231, 0, 229, 232, 231, 228, 0,
7, 0, 228, 233, 0, 228, 7, 0, 228, 247,
- 0, 247, 0, 301, 0, 7, 0, 229, 9, 0,
+ 0, 247, 0, 300, 0, 7, 0, 229, 9, 0,
229, 7, 0, 229, 247, 0, 247, 0, 232, 0,
- 301, 232, 0, 232, 231, 0, 301, 232, 231, 0,
- 233, 0, 231, 233, 0, 261, 0, 8, 0, 307,
+ 300, 232, 0, 232, 231, 0, 300, 232, 231, 0,
+ 233, 0, 231, 233, 0, 261, 0, 8, 0, 306,
0, 28, 93, 186, 108, 0, 28, 93, 225, 108,
0, 30, 93, 186, 108, 0, 30, 93, 225, 108,
0, 8, 0, 9, 0, 261, 0, 242, 0, 234,
@@ -493,8 +493,8 @@ static const short yyrhs[] = { -1,
0, 236, 59, 238, 0, 0, 119, 93, 219, 108,
0, 0, 223, 237, 246, 64, 239, 254, 0, 223,
237, 246, 0, 0, 246, 64, 241, 254, 0, 246,
- 0, 223, 237, 240, 0, 311, 237, 240, 0, 0,
- 311, 237, 245, 240, 0, 149, 237, 246, 0, 0,
+ 0, 223, 237, 240, 0, 310, 237, 240, 0, 0,
+ 310, 237, 245, 240, 0, 149, 237, 246, 0, 0,
247, 0, 248, 0, 247, 248, 0, 31, 93, 93,
249, 108, 108, 0, 250, 0, 249, 59, 250, 0,
0, 251, 0, 251, 93, 3, 108, 0, 251, 93,
@@ -505,138 +505,138 @@ static const short yyrhs[] = { -1,
109, 0, 1, 0, 254, 0, 255, 59, 254, 0,
94, 204, 111, 254, 0, 163, 62, 254, 0, 255,
59, 163, 62, 254, 0, 97, 0, 256, 146, 145,
- 338, 0, 256, 146, 362, 0, 256, 146, 1, 0,
+ 337, 0, 256, 146, 361, 0, 256, 146, 1, 0,
0, 258, 257, 147, 0, 102, 204, 107, 0, 102,
1, 107, 0, 0, 260, 259, 0, 260, 1, 0,
- 0, 14, 163, 58, 262, 297, 267, 109, 0, 14,
- 163, 58, 109, 0, 0, 14, 58, 263, 297, 267,
+ 0, 14, 163, 58, 262, 296, 267, 109, 0, 14,
+ 163, 58, 109, 0, 0, 14, 58, 263, 296, 267,
109, 0, 14, 58, 109, 0, 14, 163, 0, 14,
- 326, 0, 45, 321, 0, 0, 0, 276, 282, 284,
+ 325, 0, 45, 320, 0, 0, 0, 276, 282, 283,
109, 246, 264, 260, 265, 258, 0, 276, 0, 0,
59, 0, 0, 59, 0, 36, 0, 268, 7, 0,
268, 8, 0, 268, 9, 0, 268, 36, 0, 268,
247, 0, 268, 163, 0, 268, 165, 0, 269, 58,
- 0, 269, 62, 0, 268, 319, 163, 0, 268, 328,
- 319, 163, 0, 268, 328, 163, 0, 268, 178, 0,
- 268, 319, 178, 0, 269, 0, 0, 270, 273, 277,
+ 0, 269, 62, 0, 268, 318, 163, 0, 268, 327,
+ 318, 163, 0, 268, 327, 163, 0, 268, 178, 0,
+ 268, 318, 178, 0, 269, 0, 0, 270, 273, 277,
0, 0, 271, 274, 277, 0, 268, 58, 0, 275,
- 0, 272, 0, 0, 62, 392, 0, 62, 392, 278,
- 0, 279, 0, 278, 59, 392, 279, 0, 280, 0,
- 281, 392, 280, 0, 321, 0, 306, 0, 30, 93,
- 186, 108, 0, 30, 93, 225, 108, 0, 37, 392,
- 0, 7, 392, 0, 281, 37, 392, 0, 281, 7,
- 392, 0, 58, 0, 0, 283, 0, 283, 286, 0,
- 284, 285, 286, 0, 284, 285, 0, 37, 62, 0,
- 287, 0, 286, 287, 0, 288, 60, 0, 288, 109,
- 0, 156, 62, 0, 156, 95, 0, 156, 25, 0,
- 156, 58, 0, 60, 0, 118, 287, 0, 134, 287,
- 0, 134, 226, 60, 0, 226, 289, 0, 229, 290,
- 0, 311, 237, 246, 253, 0, 149, 237, 246, 253,
- 0, 62, 204, 0, 1, 0, 229, 155, 237, 246,
- 253, 0, 155, 237, 246, 253, 0, 127, 0, 0,
- 291, 0, 289, 59, 292, 0, 0, 294, 0, 290,
- 59, 296, 0, 293, 0, 294, 0, 295, 0, 296,
- 0, 305, 237, 246, 253, 0, 4, 62, 204, 246,
- 0, 311, 237, 246, 253, 0, 149, 237, 246, 253,
- 0, 3, 62, 204, 246, 0, 62, 204, 246, 0,
- 305, 237, 246, 253, 0, 4, 62, 204, 246, 0,
- 311, 237, 246, 253, 0, 3, 62, 204, 246, 0,
- 62, 204, 246, 0, 298, 0, 297, 59, 298, 0,
- 163, 0, 163, 64, 204, 0, 372, 329, 0, 372,
- 0, 93, 199, 225, 198, 94, 186, 111, 0, 0,
- 300, 9, 0, 9, 0, 301, 9, 0, 0, 302,
- 186, 0, 302, 93, 196, 108, 0, 302, 93, 382,
- 108, 0, 302, 47, 0, 302, 93, 1, 108, 0,
- 80, 301, 305, 0, 70, 301, 305, 0, 80, 305,
- 0, 70, 305, 0, 327, 300, 305, 0, 309, 0,
- 318, 0, 328, 318, 0, 306, 0, 308, 0, 328,
- 308, 0, 319, 318, 0, 309, 304, 300, 394, 0,
- 309, 94, 303, 111, 0, 309, 94, 111, 0, 93,
- 305, 108, 0, 319, 318, 0, 318, 0, 311, 0,
- 247, 311, 0, 80, 301, 310, 0, 70, 301, 310,
- 0, 80, 310, 0, 70, 310, 0, 327, 300, 310,
- 0, 213, 0, 80, 301, 310, 0, 70, 301, 310,
- 0, 80, 312, 0, 70, 312, 0, 327, 300, 310,
- 0, 313, 0, 213, 304, 300, 394, 0, 93, 312,
- 108, 0, 213, 94, 303, 111, 0, 213, 94, 111,
- 0, 315, 0, 319, 212, 0, 319, 209, 0, 319,
- 208, 0, 319, 205, 0, 319, 208, 0, 315, 0,
- 328, 315, 0, 232, 93, 196, 108, 0, 232, 93,
- 210, 108, 0, 232, 224, 0, 4, 0, 5, 0,
- 177, 0, 320, 0, 319, 320, 0, 319, 48, 325,
- 54, 0, 4, 54, 0, 5, 54, 0, 57, 54,
- 0, 177, 54, 0, 322, 0, 328, 322, 0, 323,
- 163, 0, 323, 177, 0, 323, 325, 0, 323, 48,
- 325, 0, 324, 0, 323, 324, 0, 323, 325, 54,
- 0, 323, 48, 325, 54, 0, 4, 54, 0, 5,
- 54, 0, 177, 54, 0, 56, 54, 0, 3, 54,
- 0, 57, 54, 0, 163, 74, 182, 181, 0, 328,
- 318, 0, 308, 0, 328, 308, 0, 319, 80, 0,
- 328, 319, 80, 0, 54, 0, 80, 300, 329, 0,
- 80, 300, 0, 70, 300, 329, 0, 70, 300, 0,
- 327, 300, 0, 327, 300, 329, 0, 330, 0, 94,
- 186, 111, 0, 330, 94, 303, 111, 0, 80, 301,
- 331, 0, 80, 331, 0, 80, 301, 0, 80, 0,
- 70, 301, 331, 0, 70, 331, 0, 70, 301, 0,
- 70, 0, 327, 300, 0, 327, 300, 331, 0, 332,
- 0, 93, 331, 108, 0, 90, 0, 332, 93, 382,
- 108, 300, 394, 0, 332, 47, 300, 394, 0, 332,
- 94, 303, 111, 0, 332, 94, 111, 0, 93, 383,
- 108, 300, 394, 0, 202, 300, 394, 0, 224, 300,
- 394, 0, 94, 303, 111, 0, 94, 111, 0, 346,
- 0, 334, 0, 333, 346, 0, 333, 334, 0, 1,
- 60, 0, 0, 336, 0, 337, 0, 336, 337, 0,
- 33, 252, 60, 0, 339, 0, 1, 339, 0, 0,
- 58, 340, 192, 0, 0, 0, 15, 342, 188, 343,
- 344, 0, 339, 0, 0, 345, 347, 0, 339, 0,
- 347, 0, 222, 0, 186, 60, 0, 0, 341, 16,
- 348, 344, 0, 341, 0, 0, 0, 17, 349, 188,
- 350, 193, 0, 0, 0, 18, 351, 344, 17, 352,
- 187, 60, 0, 0, 0, 0, 0, 19, 353, 93,
- 375, 354, 189, 60, 355, 377, 108, 356, 193, 0,
- 0, 0, 20, 357, 93, 190, 108, 358, 344, 0,
- 0, 21, 204, 62, 359, 346, 0, 0, 21, 204,
- 12, 204, 62, 360, 346, 0, 0, 22, 62, 361,
- 346, 0, 23, 60, 0, 24, 60, 0, 25, 60,
- 0, 25, 186, 60, 0, 119, 376, 93, 219, 108,
- 60, 0, 119, 376, 93, 219, 62, 378, 108, 60,
- 0, 119, 376, 93, 219, 62, 378, 62, 378, 108,
- 60, 0, 119, 376, 93, 219, 62, 378, 62, 378,
- 62, 381, 108, 60, 0, 26, 80, 186, 60, 0,
- 26, 163, 60, 0, 374, 346, 0, 374, 109, 0,
- 60, 0, 365, 0, 129, 0, 128, 0, 125, 0,
- 0, 0, 95, 363, 145, 339, 364, 368, 0, 0,
- 0, 95, 366, 339, 367, 368, 0, 369, 0, 368,
- 369, 0, 0, 0, 96, 370, 373, 371, 339, 0,
- 230, 0, 301, 0, 93, 12, 108, 0, 93, 391,
- 108, 0, 3, 62, 0, 56, 62, 0, 4, 62,
- 0, 5, 62, 0, 377, 60, 0, 222, 0, 58,
- 192, 0, 0, 9, 0, 0, 186, 0, 1, 0,
- 0, 379, 0, 380, 0, 379, 59, 380, 0, 11,
- 93, 186, 108, 0, 11, 0, 381, 59, 11, 0,
- 0, 383, 0, 225, 0, 387, 0, 388, 12, 0,
- 387, 12, 0, 225, 12, 0, 12, 0, 387, 62,
- 0, 225, 62, 0, 0, 64, 385, 386, 0, 101,
- 0, 254, 0, 389, 0, 391, 384, 0, 388, 390,
- 0, 388, 393, 0, 388, 393, 64, 254, 0, 387,
- 59, 0, 225, 59, 0, 227, 223, 0, 230, 223,
- 0, 232, 223, 0, 227, 331, 0, 227, 0, 229,
- 311, 0, 391, 0, 391, 384, 0, 389, 0, 225,
- 0, 0, 0, 311, 0, 0, 61, 93, 396, 108,
- 0, 61, 47, 0, 225, 0, 395, 0, 396, 59,
- 395, 0, 0, 80, 300, 397, 0, 70, 300, 397,
- 0, 327, 300, 397, 0, 41, 0, 398, 80, 0,
- 398, 81, 0, 398, 82, 0, 398, 78, 0, 398,
- 79, 0, 398, 70, 0, 398, 68, 0, 398, 69,
- 0, 398, 88, 0, 398, 59, 0, 398, 73, 0,
- 398, 74, 0, 398, 75, 0, 398, 72, 0, 398,
- 63, 0, 398, 64, 0, 398, 76, 0, 398, 77,
- 0, 398, 86, 0, 398, 87, 0, 398, 67, 0,
- 398, 66, 0, 398, 110, 0, 398, 65, 62, 0,
- 398, 71, 0, 398, 91, 0, 398, 83, 0, 398,
- 47, 0, 398, 94, 111, 0, 398, 39, 0, 398,
- 38, 0, 398, 39, 94, 111, 0, 398, 38, 94,
- 111, 0, 398, 372, 397, 0, 398, 1, 0
+ 0, 272, 0, 0, 62, 391, 0, 62, 391, 278,
+ 0, 279, 0, 278, 59, 391, 279, 0, 280, 0,
+ 281, 391, 280, 0, 320, 0, 305, 0, 30, 93,
+ 186, 108, 0, 30, 93, 225, 108, 0, 37, 391,
+ 0, 7, 391, 0, 281, 37, 391, 0, 281, 7,
+ 391, 0, 58, 0, 0, 285, 0, 283, 284, 285,
+ 0, 283, 284, 0, 37, 62, 0, 286, 0, 285,
+ 286, 0, 287, 60, 0, 287, 109, 0, 156, 62,
+ 0, 156, 95, 0, 156, 25, 0, 156, 58, 0,
+ 60, 0, 118, 286, 0, 134, 286, 0, 134, 226,
+ 60, 0, 226, 288, 0, 229, 289, 0, 310, 237,
+ 246, 253, 0, 149, 237, 246, 253, 0, 62, 204,
+ 0, 1, 0, 229, 155, 237, 246, 253, 0, 155,
+ 237, 246, 253, 0, 127, 0, 0, 290, 0, 288,
+ 59, 291, 0, 0, 293, 0, 289, 59, 295, 0,
+ 292, 0, 293, 0, 294, 0, 295, 0, 304, 237,
+ 246, 253, 0, 4, 62, 204, 246, 0, 310, 237,
+ 246, 253, 0, 149, 237, 246, 253, 0, 3, 62,
+ 204, 246, 0, 62, 204, 246, 0, 304, 237, 246,
+ 253, 0, 4, 62, 204, 246, 0, 310, 237, 246,
+ 253, 0, 3, 62, 204, 246, 0, 62, 204, 246,
+ 0, 297, 0, 296, 59, 297, 0, 163, 0, 163,
+ 64, 204, 0, 371, 328, 0, 371, 0, 93, 199,
+ 225, 198, 94, 186, 111, 0, 0, 299, 9, 0,
+ 9, 0, 300, 9, 0, 0, 301, 186, 0, 301,
+ 93, 196, 108, 0, 301, 93, 381, 108, 0, 301,
+ 47, 0, 301, 93, 1, 108, 0, 80, 300, 304,
+ 0, 70, 300, 304, 0, 80, 304, 0, 70, 304,
+ 0, 326, 299, 304, 0, 308, 0, 317, 0, 327,
+ 317, 0, 305, 0, 307, 0, 327, 307, 0, 318,
+ 317, 0, 308, 303, 299, 393, 0, 308, 94, 302,
+ 111, 0, 308, 94, 111, 0, 93, 304, 108, 0,
+ 318, 317, 0, 317, 0, 310, 0, 247, 310, 0,
+ 80, 300, 309, 0, 70, 300, 309, 0, 80, 309,
+ 0, 70, 309, 0, 326, 299, 309, 0, 213, 0,
+ 80, 300, 309, 0, 70, 300, 309, 0, 80, 311,
+ 0, 70, 311, 0, 326, 299, 309, 0, 312, 0,
+ 213, 303, 299, 393, 0, 93, 311, 108, 0, 213,
+ 94, 302, 111, 0, 213, 94, 111, 0, 314, 0,
+ 318, 212, 0, 318, 209, 0, 318, 208, 0, 318,
+ 205, 0, 318, 208, 0, 314, 0, 327, 314, 0,
+ 232, 93, 196, 108, 0, 232, 93, 210, 108, 0,
+ 232, 224, 0, 4, 0, 5, 0, 177, 0, 319,
+ 0, 318, 319, 0, 318, 48, 324, 54, 0, 4,
+ 54, 0, 5, 54, 0, 57, 54, 0, 177, 54,
+ 0, 321, 0, 327, 321, 0, 322, 163, 0, 322,
+ 177, 0, 322, 324, 0, 322, 48, 324, 0, 323,
+ 0, 322, 323, 0, 322, 324, 54, 0, 322, 48,
+ 324, 54, 0, 4, 54, 0, 5, 54, 0, 177,
+ 54, 0, 56, 54, 0, 3, 54, 0, 57, 54,
+ 0, 163, 74, 182, 181, 0, 327, 317, 0, 307,
+ 0, 327, 307, 0, 318, 80, 0, 327, 318, 80,
+ 0, 54, 0, 80, 299, 328, 0, 80, 299, 0,
+ 70, 299, 328, 0, 70, 299, 0, 326, 299, 0,
+ 326, 299, 328, 0, 329, 0, 94, 186, 111, 0,
+ 329, 94, 302, 111, 0, 80, 300, 330, 0, 80,
+ 330, 0, 80, 300, 0, 80, 0, 70, 300, 330,
+ 0, 70, 330, 0, 70, 300, 0, 70, 0, 326,
+ 299, 0, 326, 299, 330, 0, 331, 0, 93, 330,
+ 108, 0, 90, 0, 331, 93, 381, 108, 299, 393,
+ 0, 331, 47, 299, 393, 0, 331, 94, 302, 111,
+ 0, 331, 94, 111, 0, 93, 382, 108, 299, 393,
+ 0, 202, 299, 393, 0, 224, 299, 393, 0, 94,
+ 302, 111, 0, 94, 111, 0, 345, 0, 333, 0,
+ 332, 345, 0, 332, 333, 0, 1, 60, 0, 0,
+ 335, 0, 336, 0, 335, 336, 0, 33, 252, 60,
+ 0, 338, 0, 1, 338, 0, 0, 58, 339, 192,
+ 0, 0, 0, 15, 341, 188, 342, 343, 0, 338,
+ 0, 0, 344, 346, 0, 338, 0, 346, 0, 222,
+ 0, 186, 60, 0, 0, 340, 16, 347, 343, 0,
+ 340, 0, 0, 0, 17, 348, 188, 349, 193, 0,
+ 0, 0, 18, 350, 343, 17, 351, 187, 60, 0,
+ 0, 0, 0, 0, 19, 352, 93, 374, 353, 189,
+ 60, 354, 376, 108, 355, 193, 0, 0, 0, 20,
+ 356, 93, 190, 108, 357, 343, 0, 0, 21, 204,
+ 62, 358, 345, 0, 0, 21, 204, 12, 204, 62,
+ 359, 345, 0, 0, 22, 62, 360, 345, 0, 23,
+ 60, 0, 24, 60, 0, 25, 60, 0, 25, 186,
+ 60, 0, 119, 375, 93, 219, 108, 60, 0, 119,
+ 375, 93, 219, 62, 377, 108, 60, 0, 119, 375,
+ 93, 219, 62, 377, 62, 377, 108, 60, 0, 119,
+ 375, 93, 219, 62, 377, 62, 377, 62, 380, 108,
+ 60, 0, 26, 80, 186, 60, 0, 26, 163, 60,
+ 0, 373, 345, 0, 373, 109, 0, 60, 0, 364,
+ 0, 129, 0, 128, 0, 125, 0, 0, 0, 95,
+ 362, 145, 338, 363, 367, 0, 0, 0, 95, 365,
+ 338, 366, 367, 0, 368, 0, 367, 368, 0, 0,
+ 0, 96, 369, 372, 370, 338, 0, 230, 0, 300,
+ 0, 93, 12, 108, 0, 93, 390, 108, 0, 3,
+ 62, 0, 56, 62, 0, 4, 62, 0, 5, 62,
+ 0, 376, 60, 0, 222, 0, 58, 192, 0, 0,
+ 9, 0, 0, 186, 0, 1, 0, 0, 378, 0,
+ 379, 0, 378, 59, 379, 0, 11, 93, 186, 108,
+ 0, 11, 0, 380, 59, 11, 0, 0, 382, 0,
+ 225, 0, 386, 0, 387, 12, 0, 386, 12, 0,
+ 225, 12, 0, 12, 0, 386, 62, 0, 225, 62,
+ 0, 0, 64, 384, 385, 0, 101, 0, 254, 0,
+ 388, 0, 390, 383, 0, 387, 389, 0, 387, 392,
+ 0, 387, 392, 64, 254, 0, 386, 59, 0, 225,
+ 59, 0, 227, 223, 0, 230, 223, 0, 232, 223,
+ 0, 227, 330, 0, 227, 0, 229, 310, 0, 390,
+ 0, 390, 383, 0, 388, 0, 225, 0, 0, 0,
+ 310, 0, 0, 61, 93, 395, 108, 0, 61, 47,
+ 0, 225, 0, 394, 0, 395, 59, 394, 0, 0,
+ 80, 299, 396, 0, 70, 299, 396, 0, 326, 299,
+ 396, 0, 41, 0, 397, 80, 0, 397, 81, 0,
+ 397, 82, 0, 397, 78, 0, 397, 79, 0, 397,
+ 70, 0, 397, 68, 0, 397, 69, 0, 397, 88,
+ 0, 397, 59, 0, 397, 73, 0, 397, 74, 0,
+ 397, 75, 0, 397, 72, 0, 397, 63, 0, 397,
+ 64, 0, 397, 76, 0, 397, 77, 0, 397, 86,
+ 0, 397, 87, 0, 397, 67, 0, 397, 66, 0,
+ 397, 110, 0, 397, 65, 62, 0, 397, 71, 0,
+ 397, 91, 0, 397, 83, 0, 397, 47, 0, 397,
+ 94, 111, 0, 397, 39, 0, 397, 38, 0, 397,
+ 39, 94, 111, 0, 397, 38, 94, 111, 0, 397,
+ 371, 396, 0, 397, 1, 0
};
#endif
@@ -695,42 +695,42 @@ static const short yyrline[] = { 0,
2189, 2193, 2201, 2204, 2206, 2210, 2216, 2221, 2226, 2228,
2232, 2235, 2239, 2245, 2248, 2270, 2276, 2278, 2281, 2284,
2286, 2290, 2292, 2296, 2301, 2307, 2310, 2311, 2332, 2355,
- 2357, 2361, 2372, 2386, 2391, 2398, 2400, 2401, 2402, 2405,
- 2420, 2425, 2431, 2433, 2438, 2440, 2442, 2444, 2446, 2448,
- 2451, 2461, 2468, 2493, 2499, 2502, 2505, 2507, 2518, 2523,
- 2526, 2531, 2534, 2541, 2551, 2554, 2561, 2571, 2573, 2576,
- 2578, 2581, 2588, 2596, 2603, 2609, 2615, 2623, 2627, 2632,
- 2636, 2639, 2648, 2650, 2654, 2657, 2662, 2666, 2672, 2683,
- 2686, 2690, 2694, 2702, 2707, 2713, 2716, 2718, 2720, 2726,
- 2729, 2731, 2733, 2735, 2739, 2742, 2760, 2770, 2772, 2773,
- 2777, 2782, 2785, 2787, 2789, 2791, 2795, 2801, 2803, 2811,
- 2814, 2816, 2818, 2820, 2824, 2827, 2830, 2832, 2834, 2836,
- 2840, 2843, 2846, 2848, 2850, 2852, 2854, 2861, 2865, 2870,
- 2874, 2879, 2881, 2885, 2888, 2890, 2893, 2895, 2896, 2899,
- 2901, 2903, 2909, 2924, 2930, 2936, 2950, 2952, 2956, 2970,
- 2972, 2974, 2978, 2984, 2997, 2999, 3003, 3016, 3022, 3024,
- 3025, 3026, 3034, 3039, 3048, 3049, 3053, 3056, 3062, 3068,
- 3071, 3073, 3075, 3077, 3081, 3085, 3089, 3092, 3097, 3100,
- 3102, 3104, 3106, 3108, 3110, 3112, 3114, 3118, 3122, 3126,
- 3130, 3131, 3133, 3135, 3137, 3139, 3141, 3143, 3145, 3147,
- 3155, 3157, 3158, 3159, 3162, 3168, 3170, 3175, 3177, 3180,
- 3194, 3197, 3200, 3204, 3207, 3214, 3216, 3219, 3221, 3223,
- 3226, 3229, 3232, 3235, 3237, 3240, 3244, 3246, 3252, 3254,
- 3255, 3257, 3262, 3264, 3266, 3268, 3270, 3273, 3274, 3276,
- 3279, 3280, 3283, 3283, 3286, 3286, 3289, 3289, 3291, 3293,
- 3295, 3297, 3303, 3309, 3312, 3315, 3321, 3323, 3325, 3329,
- 3331, 3332, 3333, 3335, 3338, 3345, 3350, 3356, 3360, 3362,
- 3365, 3367, 3370, 3374, 3376, 3379, 3381, 3384, 3401, 3407,
- 3415, 3417, 3419, 3423, 3426, 3427, 3435, 3439, 3443, 3446,
- 3447, 3453, 3456, 3459, 3461, 3465, 3470, 3473, 3483, 3488,
- 3489, 3496, 3499, 3502, 3504, 3507, 3509, 3519, 3533, 3537,
- 3540, 3542, 3546, 3550, 3553, 3556, 3558, 3562, 3564, 3571,
- 3578, 3581, 3584, 3588, 3592, 3598, 3602, 3607, 3609, 3612,
- 3617, 3623, 3634, 3637, 3639, 3643, 3648, 3650, 3657, 3660,
- 3662, 3664, 3670, 3675, 3678, 3680, 3682, 3684, 3686, 3688,
- 3690, 3692, 3694, 3696, 3698, 3700, 3702, 3704, 3706, 3708,
- 3710, 3712, 3714, 3716, 3718, 3720, 3722, 3724, 3726, 3728,
- 3730, 3732, 3734, 3736, 3738, 3740, 3743, 3745
+ 2357, 2361, 2372, 2386, 2391, 2392, 2393, 2394, 2397, 2412,
+ 2417, 2423, 2425, 2430, 2432, 2434, 2436, 2438, 2440, 2443,
+ 2453, 2460, 2485, 2491, 2494, 2497, 2499, 2510, 2515, 2518,
+ 2523, 2526, 2533, 2543, 2546, 2553, 2563, 2565, 2568, 2570,
+ 2573, 2580, 2588, 2595, 2601, 2607, 2615, 2619, 2624, 2628,
+ 2631, 2640, 2642, 2646, 2649, 2654, 2658, 2664, 2675, 2678,
+ 2682, 2686, 2694, 2699, 2705, 2708, 2710, 2712, 2718, 2721,
+ 2723, 2725, 2727, 2731, 2734, 2752, 2762, 2764, 2765, 2769,
+ 2774, 2777, 2779, 2781, 2783, 2787, 2793, 2795, 2803, 2806,
+ 2808, 2810, 2812, 2816, 2819, 2822, 2824, 2826, 2828, 2832,
+ 2835, 2838, 2840, 2842, 2844, 2846, 2853, 2857, 2862, 2866,
+ 2871, 2873, 2877, 2880, 2882, 2885, 2887, 2888, 2891, 2893,
+ 2895, 2901, 2916, 2922, 2928, 2942, 2944, 2948, 2962, 2964,
+ 2966, 2970, 2976, 2989, 2991, 2995, 3008, 3014, 3016, 3017,
+ 3018, 3026, 3031, 3040, 3041, 3045, 3048, 3054, 3060, 3063,
+ 3065, 3067, 3069, 3073, 3077, 3081, 3084, 3089, 3092, 3094,
+ 3096, 3098, 3100, 3102, 3104, 3106, 3110, 3114, 3118, 3122,
+ 3123, 3125, 3127, 3129, 3131, 3133, 3135, 3137, 3139, 3147,
+ 3149, 3150, 3151, 3154, 3160, 3162, 3167, 3169, 3172, 3186,
+ 3189, 3192, 3196, 3199, 3206, 3208, 3211, 3213, 3215, 3218,
+ 3221, 3224, 3227, 3229, 3232, 3236, 3238, 3244, 3246, 3247,
+ 3249, 3254, 3256, 3258, 3260, 3262, 3265, 3266, 3268, 3271,
+ 3272, 3275, 3275, 3278, 3278, 3281, 3281, 3283, 3285, 3287,
+ 3289, 3295, 3301, 3304, 3307, 3313, 3315, 3317, 3321, 3323,
+ 3324, 3325, 3327, 3330, 3337, 3342, 3348, 3352, 3354, 3357,
+ 3359, 3362, 3366, 3368, 3371, 3373, 3376, 3393, 3399, 3407,
+ 3409, 3411, 3415, 3418, 3419, 3427, 3431, 3435, 3438, 3439,
+ 3445, 3448, 3451, 3453, 3457, 3462, 3465, 3475, 3480, 3481,
+ 3488, 3491, 3494, 3496, 3499, 3501, 3511, 3525, 3529, 3532,
+ 3534, 3538, 3542, 3545, 3548, 3550, 3554, 3556, 3563, 3570,
+ 3573, 3576, 3580, 3584, 3590, 3594, 3599, 3601, 3604, 3609,
+ 3615, 3626, 3629, 3631, 3635, 3640, 3642, 3649, 3652, 3654,
+ 3656, 3662, 3667, 3670, 3672, 3674, 3676, 3678, 3680, 3682,
+ 3684, 3686, 3688, 3690, 3692, 3694, 3696, 3698, 3700, 3702,
+ 3704, 3706, 3708, 3710, 3712, 3714, 3716, 3718, 3720, 3722,
+ 3724, 3726, 3728, 3730, 3732, 3735, 3737
};
#endif
@@ -781,29 +781,28 @@ static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER"
"aggr","named_class_head_sans_basetype","named_class_head_sans_basetype_defn",
"named_complex_class_head_sans_basetype","named_class_head","@30","@31","unnamed_class_head",
"class_head","maybe_base_class_list","base_class_list","base_class","base_class.1",
-"base_class_access_list","left_curly","self_reference","opt.component_decl_list",
-"access_specifier","component_decl_list","component_decl","component_decl_1",
-"components","notype_components","component_declarator0","component_declarator",
-"after_type_component_declarator0","notype_component_declarator0","after_type_component_declarator",
-"notype_component_declarator","enumlist","enumerator","new_type_id","cv_qualifiers",
-"nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr","maybe_parmlist",
-"after_type_declarator","nonnested_type","complete_type_name","nested_type",
-"direct_after_type_declarator","notype_declarator_intern","notype_declarator",
-"complex_notype_declarator","complex_direct_notype_declarator","qualified_id",
-"notype_qualified_id","overqualified_id","functional_cast","type_name","nested_name_specifier",
-"nested_name_specifier_1","typename_sub","typename_sub0","typename_sub1","typename_sub2",
-"explicit_template_type","complex_type_name","ptr_to_mem","global_scope","new_declarator",
-"direct_new_declarator","absdcl","direct_abstract_declarator","stmts","errstmt",
-"maybe_label_decls","label_decls","label_decl","compstmt_or_error","compstmt",
-"@32","simple_if","@33","@34","implicitly_scoped_stmt","@35","stmt","simple_stmt",
-"@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","@46","@47","@48",
-"@49","function_try_block","@50","@51","try_block","@52","@53","handler_seq",
-"handler","@54","@55","type_specifier_seq","handler_args","label_colon","for.init.statement",
-"maybe_cv_qualifier","xexpr","asm_operands","nonnull_asm_operands","asm_operand",
-"asm_clobbers","parmlist","complex_parmlist","defarg","@56","defarg1","parms",
-"parms_comma","named_parm","full_parm","parm","see_typename","bad_parm","exception_specification_opt",
-"ansi_raise_identifier","ansi_raise_identifiers","conversion_declarator","operator",
-"operator_name", NULL
+"base_class_access_list","left_curly","opt.component_decl_list","access_specifier",
+"component_decl_list","component_decl","component_decl_1","components","notype_components",
+"component_declarator0","component_declarator","after_type_component_declarator0",
+"notype_component_declarator0","after_type_component_declarator","notype_component_declarator",
+"enumlist","enumerator","new_type_id","cv_qualifiers","nonempty_cv_qualifiers",
+"suspend_mom","nonmomentary_expr","maybe_parmlist","after_type_declarator","nonnested_type",
+"complete_type_name","nested_type","direct_after_type_declarator","notype_declarator_intern",
+"notype_declarator","complex_notype_declarator","complex_direct_notype_declarator",
+"qualified_id","notype_qualified_id","overqualified_id","functional_cast","type_name",
+"nested_name_specifier","nested_name_specifier_1","typename_sub","typename_sub0",
+"typename_sub1","typename_sub2","explicit_template_type","complex_type_name",
+"ptr_to_mem","global_scope","new_declarator","direct_new_declarator","absdcl",
+"direct_abstract_declarator","stmts","errstmt","maybe_label_decls","label_decls",
+"label_decl","compstmt_or_error","compstmt","@32","simple_if","@33","@34","implicitly_scoped_stmt",
+"@35","stmt","simple_stmt","@36","@37","@38","@39","@40","@41","@42","@43","@44",
+"@45","@46","@47","@48","@49","function_try_block","@50","@51","try_block","@52",
+"@53","handler_seq","handler","@54","@55","type_specifier_seq","handler_args",
+"label_colon","for.init.statement","maybe_cv_qualifier","xexpr","asm_operands",
+"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","complex_parmlist",
+"defarg","@56","defarg1","parms","parms_comma","named_parm","full_parm","parm",
+"see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier",
+"ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL
};
#endif
@@ -860,42 +859,42 @@ static const short yyr1[] = { 0,
268, 269, 270, 270, 270, 271, 271, 271, 271, 271,
272, 273, 272, 274, 272, 275, 276, 276, 277, 277,
277, 278, 278, 279, 279, 280, 280, 280, 280, 281,
- 281, 281, 281, 282, 283, 284, 284, 284, 284, 285,
- 286, 286, 287, 287, 287, 287, 287, 287, 287, 287,
- 287, 287, 288, 288, 288, 288, 288, 288, 288, 288,
- 288, 289, 289, 289, 290, 290, 290, 291, 291, 292,
- 292, 293, 293, 294, 294, 294, 294, 295, 295, 296,
- 296, 296, 297, 297, 298, 298, 299, 299, 299, 300,
- 300, 301, 301, 302, 303, 304, 304, 304, 304, 305,
- 305, 305, 305, 305, 305, 306, 306, 307, 307, 307,
- 308, 309, 309, 309, 309, 309, 309, 310, 310, 311,
- 311, 311, 311, 311, 311, 312, 312, 312, 312, 312,
- 312, 313, 313, 313, 313, 313, 313, 314, 314, 315,
- 315, 316, 316, 317, 317, 317, 318, 318, 318, 319,
- 319, 319, 320, 320, 320, 320, 321, 321, 322, 322,
- 322, 322, 323, 323, 323, 323, 324, 324, 324, 324,
- 324, 324, 325, 326, 326, 326, 327, 327, 328, 329,
- 329, 329, 329, 329, 329, 329, 330, 330, 331, 331,
+ 281, 281, 281, 282, 283, 283, 283, 283, 284, 285,
+ 285, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 287, 287, 287, 287, 287, 287, 287, 287, 287,
+ 288, 288, 288, 289, 289, 289, 290, 290, 291, 291,
+ 292, 292, 293, 293, 293, 293, 294, 294, 295, 295,
+ 295, 296, 296, 297, 297, 298, 298, 298, 299, 299,
+ 300, 300, 301, 302, 303, 303, 303, 303, 304, 304,
+ 304, 304, 304, 304, 305, 305, 306, 306, 306, 307,
+ 308, 308, 308, 308, 308, 308, 309, 309, 310, 310,
+ 310, 310, 310, 310, 311, 311, 311, 311, 311, 311,
+ 312, 312, 312, 312, 312, 312, 313, 313, 314, 314,
+ 315, 315, 316, 316, 316, 317, 317, 317, 318, 318,
+ 318, 319, 319, 319, 319, 320, 320, 321, 321, 321,
+ 321, 322, 322, 322, 322, 323, 323, 323, 323, 323,
+ 323, 324, 325, 325, 325, 326, 326, 327, 328, 328,
+ 328, 328, 328, 328, 328, 329, 329, 330, 330, 330,
+ 330, 330, 330, 330, 330, 330, 330, 330, 331, 331,
331, 331, 331, 331, 331, 331, 331, 331, 331, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 333, 333, 333, 333, 334, 335, 335, 336, 336, 337,
- 338, 338, 340, 339, 342, 343, 341, 344, 345, 344,
- 346, 346, 347, 347, 348, 347, 347, 349, 350, 347,
- 351, 352, 347, 353, 354, 355, 356, 347, 357, 358,
- 347, 359, 347, 360, 347, 361, 347, 347, 347, 347,
- 347, 347, 347, 347, 347, 347, 347, 347, 347, 347,
- 347, 347, 347, 347, 363, 364, 362, 366, 367, 365,
- 368, 368, 370, 371, 369, 372, 372, 373, 373, 374,
- 374, 374, 374, 375, 375, 375, 376, 376, 377, 377,
- 377, 378, 378, 379, 379, 380, 381, 381, 382, 382,
- 382, 383, 383, 383, 383, 383, 383, 383, 385, 384,
- 386, 386, 387, 387, 387, 387, 387, 388, 388, 389,
- 389, 389, 389, 389, 389, 390, 390, 391, 391, 392,
- 393, 393, 394, 394, 394, 395, 396, 396, 397, 397,
- 397, 397, 398, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399, 399, 399,
- 399, 399, 399, 399, 399, 399, 399, 399
+ 332, 332, 332, 333, 334, 334, 335, 335, 336, 337,
+ 337, 339, 338, 341, 342, 340, 343, 344, 343, 345,
+ 345, 346, 346, 347, 346, 346, 348, 349, 346, 350,
+ 351, 346, 352, 353, 354, 355, 346, 356, 357, 346,
+ 358, 346, 359, 346, 360, 346, 346, 346, 346, 346,
+ 346, 346, 346, 346, 346, 346, 346, 346, 346, 346,
+ 346, 346, 346, 362, 363, 361, 365, 366, 364, 367,
+ 367, 369, 370, 368, 371, 371, 372, 372, 373, 373,
+ 373, 373, 374, 374, 374, 375, 375, 376, 376, 376,
+ 377, 377, 378, 378, 379, 380, 380, 381, 381, 381,
+ 382, 382, 382, 382, 382, 382, 382, 384, 383, 385,
+ 385, 386, 386, 386, 386, 386, 387, 387, 388, 388,
+ 388, 388, 388, 388, 389, 389, 390, 390, 391, 392,
+ 392, 393, 393, 393, 394, 395, 395, 396, 396, 396,
+ 396, 397, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398
};
static const short yyr2[] = { 0,
@@ -951,1382 +950,1429 @@ static const short yyr2[] = { 0,
2, 2, 2, 2, 2, 3, 4, 3, 2, 3,
1, 0, 3, 0, 3, 2, 1, 1, 0, 2,
3, 1, 4, 1, 3, 1, 1, 4, 4, 2,
- 2, 3, 3, 1, 0, 1, 2, 3, 2, 2,
- 1, 2, 2, 2, 2, 2, 2, 2, 1, 2,
- 2, 3, 2, 2, 4, 4, 2, 1, 5, 4,
- 1, 0, 1, 3, 0, 1, 3, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 3, 4, 4, 4,
- 4, 3, 1, 3, 1, 3, 2, 1, 7, 0,
- 2, 1, 2, 0, 2, 4, 4, 2, 4, 3,
- 3, 2, 2, 3, 1, 1, 2, 1, 1, 2,
- 2, 4, 4, 3, 3, 2, 1, 1, 2, 3,
- 3, 2, 2, 3, 1, 3, 3, 2, 2, 3,
- 1, 4, 3, 4, 3, 1, 2, 2, 2, 2,
- 2, 1, 2, 4, 4, 2, 1, 1, 1, 1,
- 2, 4, 2, 2, 2, 2, 1, 2, 2, 2,
- 2, 3, 1, 2, 3, 4, 2, 2, 2, 2,
- 2, 2, 4, 2, 1, 2, 2, 3, 1, 3,
- 2, 3, 2, 2, 3, 1, 3, 4, 3, 2,
- 2, 1, 3, 2, 2, 1, 2, 3, 1, 3,
- 1, 6, 4, 4, 3, 5, 3, 3, 3, 2,
- 1, 1, 2, 2, 2, 0, 1, 1, 2, 3,
- 1, 2, 0, 3, 0, 0, 5, 1, 0, 2,
- 1, 1, 1, 2, 0, 4, 1, 0, 0, 5,
- 0, 0, 7, 0, 0, 0, 0, 12, 0, 0,
- 7, 0, 5, 0, 7, 0, 4, 2, 2, 2,
- 3, 6, 8, 10, 12, 4, 3, 2, 2, 1,
- 1, 1, 1, 1, 0, 0, 6, 0, 0, 5,
- 1, 2, 0, 0, 5, 1, 1, 3, 3, 2,
- 2, 2, 2, 2, 1, 2, 0, 1, 0, 1,
- 1, 0, 1, 1, 3, 4, 1, 3, 0, 1,
- 1, 1, 2, 2, 2, 1, 2, 2, 0, 3,
- 1, 1, 1, 2, 2, 2, 4, 2, 2, 2,
- 2, 2, 2, 1, 2, 1, 2, 1, 1, 0,
- 0, 1, 0, 4, 2, 1, 1, 3, 0, 3,
- 3, 3, 1, 2, 2, 2, 2, 2, 2, 2,
+ 2, 3, 3, 1, 0, 1, 3, 2, 2, 1,
+ 2, 2, 2, 2, 2, 2, 2, 1, 2, 2,
+ 3, 2, 2, 4, 4, 2, 1, 5, 4, 1,
+ 0, 1, 3, 0, 1, 3, 1, 1, 1, 1,
+ 4, 4, 4, 4, 4, 3, 4, 4, 4, 4,
+ 3, 1, 3, 1, 3, 2, 1, 7, 0, 2,
+ 1, 2, 0, 2, 4, 4, 2, 4, 3, 3,
+ 2, 2, 3, 1, 1, 2, 1, 1, 2, 2,
+ 4, 4, 3, 3, 2, 1, 1, 2, 3, 3,
+ 2, 2, 3, 1, 3, 3, 2, 2, 3, 1,
+ 4, 3, 4, 3, 1, 2, 2, 2, 2, 2,
+ 1, 2, 4, 4, 2, 1, 1, 1, 1, 2,
+ 4, 2, 2, 2, 2, 1, 2, 2, 2, 2,
+ 3, 1, 2, 3, 4, 2, 2, 2, 2, 2,
+ 2, 4, 2, 1, 2, 2, 3, 1, 3, 2,
+ 3, 2, 2, 3, 1, 3, 4, 3, 2, 2,
+ 1, 3, 2, 2, 1, 2, 3, 1, 3, 1,
+ 6, 4, 4, 3, 5, 3, 3, 3, 2, 1,
+ 1, 2, 2, 2, 0, 1, 1, 2, 3, 1,
+ 2, 0, 3, 0, 0, 5, 1, 0, 2, 1,
+ 1, 1, 2, 0, 4, 1, 0, 0, 5, 0,
+ 0, 7, 0, 0, 0, 0, 12, 0, 0, 7,
+ 0, 5, 0, 7, 0, 4, 2, 2, 2, 3,
+ 6, 8, 10, 12, 4, 3, 2, 2, 1, 1,
+ 1, 1, 1, 0, 0, 6, 0, 0, 5, 1,
+ 2, 0, 0, 5, 1, 1, 3, 3, 2, 2,
+ 2, 2, 2, 1, 2, 0, 1, 0, 1, 1,
+ 0, 1, 1, 3, 4, 1, 3, 0, 1, 1,
+ 1, 2, 2, 2, 1, 2, 2, 0, 3, 1,
+ 1, 1, 2, 2, 2, 4, 2, 2, 2, 2,
+ 2, 2, 1, 2, 1, 2, 1, 1, 0, 0,
+ 1, 0, 4, 2, 1, 1, 3, 0, 3, 3,
+ 3, 1, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,
- 2, 3, 2, 2, 4, 4, 3, 2
+ 2, 2, 2, 2, 2, 3, 2, 2, 2, 2,
+ 3, 2, 2, 4, 4, 3, 2
};
static const short yydefact[] = { 3,
- 12, 12, 5, 0, 4, 0, 281, 637, 638, 0,
- 388, 400, 582, 0, 11, 0, 0, 0, 10, 486,
- 843, 0, 0, 0, 167, 669, 282, 283, 83, 0,
- 0, 830, 0, 45, 0, 0, 13, 25, 0, 27,
- 8, 0, 16, 15, 89, 110, 86, 0, 639, 171,
- 302, 279, 303, 615, 0, 375, 0, 374, 393, 0,
+ 12, 12, 5, 0, 4, 0, 281, 636, 637, 0,
+ 388, 400, 581, 0, 11, 0, 0, 0, 10, 486,
+ 842, 0, 0, 0, 167, 668, 282, 283, 83, 0,
+ 0, 829, 0, 45, 0, 0, 13, 25, 0, 27,
+ 8, 0, 16, 15, 89, 110, 86, 0, 638, 171,
+ 302, 279, 303, 614, 0, 375, 0, 374, 393, 0,
413, 392, 430, 399, 0, 501, 502, 504, 508, 507,
- 481, 387, 598, 401, 599, 108, 301, 626, 596, 0,
- 640, 580, 0, 0, 280, 81, 82, 178, 643, 178,
- 644, 178, 284, 167, 140, 141, 142, 143, 144, 472,
- 475, 0, 665, 0, 476, 0, 0, 0, 0, 141,
+ 481, 387, 597, 401, 598, 108, 301, 625, 595, 0,
+ 639, 579, 0, 0, 280, 81, 82, 178, 642, 178,
+ 643, 178, 284, 167, 140, 141, 142, 143, 144, 472,
+ 475, 0, 664, 0, 476, 0, 0, 0, 0, 141,
142, 143, 144, 23, 0, 0, 0, 0, 0, 0,
- 0, 477, 647, 0, 653, 0, 0, 0, 37, 0,
- 0, 31, 0, 0, 47, 0, 178, 645, 0, 0,
- 0, 613, 608, 0, 0, 0, 612, 0, 0, 0,
- 0, 302, 0, 293, 584, 0, 0, 301, 580, 28,
+ 0, 477, 646, 0, 652, 0, 0, 0, 37, 0,
+ 0, 31, 0, 0, 47, 0, 178, 644, 0, 0,
+ 0, 612, 607, 0, 0, 0, 611, 0, 0, 0,
+ 0, 302, 0, 293, 583, 0, 0, 301, 579, 28,
0, 26, 3, 46, 0, 64, 388, 0, 0, 8,
67, 63, 66, 89, 0, 0, 0, 399, 90, 14,
- 0, 428, 0, 0, 446, 87, 79, 646, 584, 0,
- 580, 80, 0, 0, 0, 106, 0, 409, 365, 595,
- 366, 607, 0, 580, 390, 389, 78, 109, 376, 0,
+ 0, 428, 0, 0, 446, 87, 79, 645, 583, 0,
+ 579, 80, 0, 0, 0, 106, 0, 409, 365, 594,
+ 366, 606, 0, 579, 390, 389, 78, 109, 376, 0,
411, 391, 107, 382, 406, 407, 377, 395, 397, 386,
408, 0, 75, 431, 487, 488, 489, 490, 506, 149,
148, 150, 492, 493, 172, 499, 491, 0, 0, 494,
- 495, 509, 509, 524, 525, 583, 394, 0, 425, 638,
- 0, 667, 171, 630, 631, 627, 601, 641, 0, 600,
- 597, 0, 878, 874, 873, 871, 853, 858, 859, 0,
- 865, 864, 850, 851, 849, 868, 857, 854, 855, 856,
- 860, 861, 847, 848, 844, 845, 846, 870, 862, 863,
- 852, 869, 0, 866, 776, 393, 777, 839, 284, 281,
- 582, 306, 354, 0, 0, 0, 0, 350, 348, 321,
+ 495, 509, 509, 524, 0, 582, 394, 0, 425, 637,
+ 0, 666, 171, 629, 630, 626, 600, 640, 0, 599,
+ 596, 0, 877, 873, 872, 870, 852, 857, 858, 0,
+ 864, 863, 849, 850, 848, 867, 856, 853, 854, 855,
+ 859, 860, 846, 847, 843, 844, 845, 869, 861, 862,
+ 851, 868, 0, 865, 775, 393, 776, 838, 284, 281,
+ 581, 306, 354, 0, 0, 0, 0, 350, 348, 321,
352, 353, 0, 0, 0, 0, 0, 282, 283, 275,
0, 0, 186, 185, 0, 187, 188, 0, 0, 189,
0, 0, 179, 180, 0, 249, 0, 252, 184, 305,
215, 0, 0, 307, 308, 0, 182, 372, 393, 373,
- 632, 333, 323, 0, 0, 0, 0, 178, 0, 474,
- 0, 469, 0, 666, 664, 0, 190, 191, 0, 0,
- 0, 435, 3, 21, 29, 661, 657, 658, 660, 662,
- 659, 140, 141, 142, 0, 143, 144, 649, 650, 654,
- 651, 648, 0, 291, 292, 290, 629, 628, 33, 32,
- 49, 0, 157, 0, 0, 393, 155, 0, 0, 609,
- 611, 0, 610, 141, 142, 277, 278, 297, 0, 619,
- 296, 0, 618, 0, 304, 282, 283, 0, 0, 0,
- 295, 294, 623, 0, 0, 12, 0, 167, 9, 9,
+ 631, 333, 323, 0, 0, 0, 0, 178, 0, 474,
+ 0, 469, 0, 665, 663, 0, 190, 191, 0, 0,
+ 0, 435, 3, 21, 29, 660, 656, 657, 659, 661,
+ 658, 140, 141, 142, 0, 143, 144, 648, 649, 653,
+ 650, 647, 0, 291, 292, 290, 628, 627, 33, 32,
+ 49, 0, 157, 0, 0, 393, 155, 0, 0, 608,
+ 610, 0, 609, 141, 142, 277, 278, 297, 0, 618,
+ 296, 0, 617, 0, 304, 282, 283, 0, 0, 0,
+ 295, 294, 622, 0, 0, 12, 0, 167, 9, 9,
70, 0, 65, 0, 0, 71, 74, 0, 427, 429,
- 122, 93, 127, 765, 0, 85, 84, 92, 125, 0,
- 0, 123, 88, 625, 0, 0, 588, 0, 833, 0,
- 593, 0, 592, 0, 0, 0, 0, 580, 428, 0,
- 77, 584, 580, 606, 0, 379, 380, 0, 76, 428,
+ 122, 93, 127, 764, 0, 85, 84, 92, 125, 0,
+ 0, 123, 88, 624, 0, 0, 587, 0, 832, 0,
+ 592, 0, 591, 0, 0, 0, 0, 579, 428, 0,
+ 77, 583, 579, 605, 0, 379, 380, 0, 76, 428,
384, 383, 385, 378, 398, 415, 414, 178, 496, 500,
- 498, 0, 830, 503, 505, 0, 0, 396, 428, 580,
- 94, 0, 0, 0, 0, 580, 100, 581, 614, 638,
- 668, 171, 0, 0, 867, 872, 395, 580, 580, 0,
- 580, 877, 178, 0, 0, 0, 222, 0, 0, 224,
- 237, 238, 0, 0, 0, 0, 0, 276, 221, 218,
- 217, 219, 0, 0, 0, 0, 0, 305, 0, 0,
- 0, 216, 176, 177, 299, 0, 220, 0, 0, 250,
+ 498, 0, 829, 503, 505, 547, 637, 0, 538, 0,
+ 0, 550, 0, 121, 116, 0, 171, 551, 554, 0,
+ 0, 530, 0, 119, 396, 428, 579, 94, 0, 0,
+ 0, 0, 579, 100, 580, 613, 637, 667, 171, 0,
+ 0, 866, 871, 395, 579, 579, 0, 579, 876, 178,
+ 0, 0, 0, 222, 0, 0, 224, 237, 238, 0,
+ 0, 0, 0, 0, 276, 221, 218, 217, 219, 0,
+ 0, 0, 0, 0, 305, 0, 0, 0, 216, 176,
+ 177, 299, 0, 220, 0, 0, 250, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 315, 0, 317, 319, 320, 358, 357, 0,
- 0, 240, 240, 0, 226, 578, 0, 234, 355, 347,
- 0, 0, 830, 336, 339, 340, 0, 0, 367, 686,
- 682, 691, 0, 584, 580, 580, 580, 369, 689, 0,
- 636, 371, 0, 0, 370, 335, 0, 330, 349, 331,
- 351, 633, 0, 332, 175, 175, 0, 165, 0, 393,
- 163, 575, 484, 573, 471, 0, 0, 402, 0, 0,
- 403, 404, 405, 441, 442, 443, 440, 0, 433, 436,
- 0, 3, 0, 652, 178, 655, 0, 41, 42, 0,
- 53, 0, 0, 57, 61, 50, 829, 824, 0, 372,
- 393, 53, 373, 828, 59, 168, 153, 151, 168, 175,
- 300, 617, 616, 304, 0, 620, 0, 18, 20, 89,
- 9, 9, 73, 72, 0, 128, 356, 0, 713, 91,
- 711, 452, 0, 448, 447, 214, 0, 213, 585, 624,
- 0, 806, 0, 801, 393, 0, 800, 802, 831, 813,
- 0, 0, 622, 591, 590, 0, 0, 605, 0, 423,
- 422, 410, 604, 0, 833, 594, 381, 412, 424, 428,
- 0, 497, 510, 548, 638, 0, 539, 0, 0, 551,
- 0, 121, 116, 0, 171, 552, 555, 0, 531, 0,
- 119, 0, 428, 0, 426, 833, 799, 178, 178, 642,
- 178, 833, 799, 580, 97, 580, 103, 876, 875, 839,
- 839, 839, 0, 0, 0, 0, 636, 0, 0, 0,
- 0, 393, 0, 0, 0, 311, 0, 309, 310, 0,
- 247, 181, 281, 637, 638, 282, 283, 0, 0, 453,
- 482, 0, 274, 273, 791, 790, 0, 271, 270, 268,
- 269, 267, 266, 265, 262, 263, 264, 260, 261, 255,
- 256, 257, 258, 259, 253, 254, 0, 0, 0, 0,
- 0, 240, 228, 244, 0, 0, 227, 580, 580, 0,
- 580, 577, 676, 0, 0, 0, 0, 0, 338, 0,
- 342, 0, 344, 0, 685, 684, 681, 680, 829, 0,
- 0, 700, 0, 0, 833, 368, 833, 687, 580, 799,
- 584, 686, 682, 0, 0, 580, 0, 392, 0, 0,
- 0, 0, 170, 174, 285, 168, 161, 159, 168, 0,
- 485, 0, 484, 212, 211, 210, 209, 435, 0, 0,
- 24, 0, 0, 656, 0, 38, 44, 43, 55, 52,
- 53, 0, 48, 0, 0, 686, 682, 0, 820, 580,
- 823, 825, 0, 821, 822, 54, 492, 0, 158, 168,
- 168, 156, 169, 298, 17, 19, 69, 89, 416, 145,
- 637, 638, 133, 146, 147, 0, 126, 129, 0, 639,
- 0, 0, 0, 0, 712, 706, 449, 0, 124, 589,
- 586, 805, 819, 808, 0, 587, 804, 818, 807, 803,
- 832, 815, 826, 816, 809, 814, 835, 0, 420, 603,
- 602, 419, 175, 830, 0, 830, 511, 512, 514, 830,
- 517, 516, 580, 799, 547, 540, 552, 541, 428, 428,
- 537, 538, 535, 536, 580, 799, 281, 637, 0, 415,
- 117, 543, 553, 558, 559, 415, 415, 0, 0, 415,
- 115, 544, 556, 415, 532, 533, 534, 428, 530, 478,
- 0, 96, 0, 0, 0, 0, 102, 0, 833, 799,
- 833, 799, 841, 840, 842, 286, 322, 223, 225, 328,
- 329, 0, 0, 0, 0, 310, 313, 0, 0, 0,
- 0, 248, 0, 314, 316, 318, 0, 0, 0, 0,
- 229, 246, 0, 0, 673, 671, 0, 674, 584, 235,
- 0, 0, 178, 345, 0, 0, 0, 683, 679, 690,
- 580, 699, 697, 698, 688, 833, 0, 695, 0, 634,
- 635, 0, 334, 166, 168, 168, 164, 576, 574, 473,
- 0, 434, 432, 281, 0, 22, 30, 663, 56, 51,
- 58, 62, 685, 681, 686, 682, 0, 596, 0, 580,
- 687, 60, 154, 152, 68, 0, 131, 0, 135, 0,
- 137, 0, 139, 0, 766, 0, 202, 714, 0, 707,
- 708, 0, 450, 686, 682, 0, 305, 0, 632, 827,
- 0, 0, 836, 837, 0, 0, 417, 173, 521, 0,
- 520, 830, 830, 830, 0, 833, 0, 542, 446, 446,
- 833, 0, 0, 0, 428, 428, 0, 428, 428, 0,
- 428, 0, 446, 466, 580, 288, 287, 289, 580, 99,
- 0, 105, 0, 0, 0, 0, 0, 0, 456, 0,
- 454, 251, 272, 242, 241, 239, 230, 0, 243, 245,
- 672, 670, 677, 675, 0, 236, 0, 0, 337, 341,
- 343, 833, 693, 580, 694, 162, 160, 470, 0, 437,
- 439, 685, 681, 601, 687, 132, 130, 0, 0, 0,
- 0, 444, 0, 0, 281, 637, 638, 715, 728, 731,
- 734, 739, 0, 0, 0, 0, 0, 0, 0, 0,
- 282, 760, 768, 0, 787, 764, 763, 762, 0, 723,
- 0, 0, 393, 0, 702, 721, 727, 701, 722, 761,
- 0, 709, 451, 0, 635, 817, 811, 812, 810, 0,
- 834, 421, 0, 0, 0, 0, 523, 522, 515, 112,
- 580, 546, 550, 114, 580, 428, 428, 567, 446, 281,
- 637, 0, 554, 560, 561, 415, 415, 446, 446, 0,
- 446, 557, 545, 0, 833, 833, 580, 580, 0, 0,
- 0, 0, 455, 0, 0, 231, 232, 678, 346, 287,
- 696, 833, 0, 134, 136, 138, 773, 767, 771, 0,
- 710, 705, 205, 780, 782, 783, 0, 0, 719, 0,
- 0, 0, 746, 748, 749, 750, 0, 0, 0, 0,
- 0, 0, 0, 781, 0, 364, 788, 0, 724, 362,
- 415, 0, 363, 0, 415, 0, 0, 0, 203, 704,
- 703, 725, 759, 758, 310, 838, 418, 518, 519, 513,
- 833, 833, 566, 563, 565, 0, 0, 428, 428, 428,
- 562, 564, 549, 468, 0, 467, 462, 95, 101, 833,
- 833, 324, 325, 326, 327, 457, 0, 233, 692, 438,
- 0, 772, 445, 194, 0, 716, 729, 718, 0, 0,
- 0, 0, 0, 742, 0, 751, 0, 757, 39, 144,
- 34, 144, 0, 35, 769, 0, 360, 361, 0, 0,
- 0, 359, 204, 719, 111, 113, 428, 428, 572, 446,
- 446, 0, 0, 480, 98, 104, 579, 0, 774, 201,
- 0, 393, 0, 719, 0, 732, 720, 706, 785, 735,
- 0, 0, 0, 0, 747, 756, 40, 36, 0, 0,
- 726, 571, 569, 568, 570, 465, 464, 458, 86, 89,
- 0, 0, 0, 195, 415, 717, 206, 730, 208, 0,
- 786, 0, 784, 740, 744, 743, 770, 792, 0, 0,
- 463, 778, 779, 775, 428, 706, 192, 0, 0, 198,
- 0, 197, 719, 0, 0, 0, 793, 794, 752, 461,
- 0, 460, 0, 207, 0, 733, 736, 741, 745, 0,
- 792, 0, 0, 459, 199, 193, 0, 0, 0, 753,
- 795, 0, 0, 796, 0, 0, 200, 737, 797, 0,
- 754, 0, 0, 0, 738, 798, 755, 0, 0, 0
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 315,
+ 0, 317, 319, 320, 358, 357, 0, 0, 240, 240,
+ 0, 226, 577, 0, 234, 355, 347, 0, 0, 829,
+ 336, 339, 340, 0, 0, 367, 685, 681, 690, 0,
+ 583, 579, 579, 579, 369, 688, 0, 635, 371, 0,
+ 0, 370, 335, 0, 330, 349, 331, 351, 632, 0,
+ 332, 175, 175, 0, 165, 0, 393, 163, 574, 484,
+ 572, 471, 0, 0, 402, 0, 0, 403, 404, 405,
+ 441, 442, 443, 440, 0, 433, 436, 0, 3, 0,
+ 651, 178, 654, 0, 41, 42, 0, 53, 0, 0,
+ 57, 61, 50, 828, 823, 0, 372, 393, 53, 373,
+ 827, 59, 168, 153, 151, 168, 175, 300, 616, 615,
+ 304, 0, 619, 0, 18, 20, 89, 9, 9, 73,
+ 72, 0, 128, 356, 0, 712, 91, 710, 452, 0,
+ 448, 447, 214, 0, 213, 584, 623, 0, 805, 0,
+ 800, 393, 0, 799, 801, 830, 812, 0, 0, 621,
+ 590, 589, 0, 0, 604, 0, 423, 422, 410, 603,
+ 0, 832, 593, 381, 412, 424, 428, 0, 497, 510,
+ 579, 798, 546, 539, 551, 540, 428, 428, 536, 537,
+ 534, 535, 579, 798, 281, 636, 0, 415, 117, 542,
+ 552, 557, 558, 415, 415, 0, 0, 415, 115, 543,
+ 555, 415, 0, 428, 0, 531, 532, 533, 428, 426,
+ 832, 798, 178, 178, 641, 178, 832, 798, 579, 97,
+ 579, 103, 875, 874, 838, 838, 838, 0, 0, 0,
+ 0, 635, 0, 0, 0, 0, 393, 0, 0, 0,
+ 311, 0, 309, 310, 0, 247, 181, 281, 636, 637,
+ 282, 283, 0, 0, 453, 482, 0, 274, 273, 790,
+ 789, 0, 271, 270, 268, 269, 267, 266, 265, 262,
+ 263, 264, 260, 261, 255, 256, 257, 258, 259, 253,
+ 254, 0, 0, 0, 0, 0, 240, 228, 244, 0,
+ 0, 227, 579, 579, 0, 579, 576, 675, 0, 0,
+ 0, 0, 0, 338, 0, 342, 0, 344, 0, 684,
+ 683, 680, 679, 828, 0, 0, 699, 0, 0, 832,
+ 368, 832, 686, 579, 798, 583, 685, 681, 0, 0,
+ 579, 0, 392, 0, 0, 0, 0, 170, 174, 285,
+ 168, 161, 159, 168, 0, 485, 0, 484, 212, 211,
+ 210, 209, 435, 0, 0, 24, 0, 0, 655, 0,
+ 38, 44, 43, 55, 52, 53, 0, 48, 0, 0,
+ 685, 681, 0, 819, 579, 822, 824, 0, 820, 821,
+ 54, 492, 0, 158, 168, 168, 156, 169, 298, 17,
+ 19, 69, 89, 416, 145, 636, 637, 133, 146, 147,
+ 0, 126, 129, 0, 638, 0, 0, 0, 0, 711,
+ 705, 449, 0, 124, 588, 585, 804, 818, 807, 0,
+ 586, 803, 817, 806, 802, 831, 814, 825, 815, 808,
+ 813, 834, 0, 420, 602, 601, 419, 175, 829, 0,
+ 829, 511, 512, 514, 829, 517, 516, 832, 0, 541,
+ 446, 446, 832, 0, 0, 0, 428, 428, 0, 428,
+ 428, 0, 428, 0, 529, 478, 0, 446, 96, 0,
+ 0, 0, 0, 102, 0, 832, 798, 832, 798, 840,
+ 839, 841, 286, 322, 223, 225, 328, 329, 0, 0,
+ 0, 0, 310, 313, 0, 0, 0, 0, 248, 0,
+ 314, 316, 318, 0, 0, 0, 0, 229, 246, 0,
+ 0, 672, 670, 0, 673, 583, 235, 0, 0, 178,
+ 345, 0, 0, 0, 682, 678, 689, 579, 698, 696,
+ 697, 687, 832, 0, 694, 0, 633, 634, 0, 334,
+ 166, 168, 168, 164, 575, 573, 473, 0, 434, 432,
+ 281, 0, 22, 30, 662, 56, 51, 58, 62, 684,
+ 680, 685, 681, 0, 595, 0, 579, 686, 60, 154,
+ 152, 68, 0, 131, 0, 135, 0, 137, 0, 139,
+ 0, 765, 0, 202, 713, 0, 706, 707, 0, 450,
+ 685, 681, 0, 305, 0, 631, 826, 0, 0, 835,
+ 836, 0, 0, 417, 173, 521, 0, 520, 829, 829,
+ 829, 0, 112, 579, 545, 549, 114, 579, 428, 428,
+ 566, 446, 281, 636, 0, 553, 559, 560, 415, 415,
+ 446, 446, 0, 446, 556, 466, 544, 579, 288, 287,
+ 289, 579, 99, 0, 105, 0, 0, 0, 0, 0,
+ 0, 456, 0, 454, 251, 272, 242, 241, 239, 230,
+ 0, 243, 245, 671, 669, 676, 674, 0, 236, 0,
+ 0, 337, 341, 343, 832, 692, 579, 693, 162, 160,
+ 470, 0, 437, 439, 684, 680, 600, 686, 132, 130,
+ 0, 0, 0, 0, 444, 0, 0, 281, 636, 637,
+ 714, 727, 730, 733, 738, 0, 0, 0, 0, 0,
+ 0, 0, 0, 282, 759, 767, 0, 786, 763, 762,
+ 761, 0, 722, 0, 0, 393, 0, 701, 720, 726,
+ 700, 721, 760, 0, 708, 451, 0, 634, 816, 810,
+ 811, 809, 0, 833, 421, 0, 0, 0, 0, 523,
+ 522, 515, 832, 832, 565, 562, 564, 0, 0, 428,
+ 428, 428, 561, 563, 548, 0, 832, 832, 579, 579,
+ 0, 0, 0, 0, 455, 0, 0, 231, 232, 677,
+ 346, 287, 695, 832, 0, 134, 136, 138, 772, 766,
+ 770, 0, 709, 704, 205, 779, 781, 782, 0, 0,
+ 718, 0, 0, 0, 745, 747, 748, 749, 0, 0,
+ 0, 0, 0, 0, 0, 780, 0, 364, 787, 0,
+ 723, 362, 415, 0, 363, 0, 415, 0, 0, 0,
+ 203, 703, 702, 724, 758, 757, 310, 837, 418, 518,
+ 519, 513, 111, 113, 428, 428, 571, 446, 446, 468,
+ 0, 467, 462, 95, 101, 832, 832, 324, 325, 326,
+ 327, 457, 0, 233, 691, 438, 0, 771, 445, 194,
+ 0, 715, 728, 717, 0, 0, 0, 0, 0, 741,
+ 0, 750, 0, 756, 39, 144, 34, 144, 0, 35,
+ 768, 0, 360, 361, 0, 0, 0, 359, 204, 718,
+ 570, 568, 567, 569, 0, 0, 480, 98, 104, 578,
+ 0, 773, 201, 0, 393, 0, 718, 0, 731, 719,
+ 705, 784, 734, 0, 0, 0, 0, 746, 755, 40,
+ 36, 0, 0, 725, 465, 464, 458, 86, 89, 0,
+ 0, 0, 195, 415, 716, 206, 729, 208, 0, 785,
+ 0, 783, 739, 743, 742, 769, 791, 0, 0, 463,
+ 777, 778, 774, 428, 705, 192, 0, 0, 198, 0,
+ 197, 718, 0, 0, 0, 792, 793, 751, 461, 0,
+ 460, 0, 207, 0, 732, 735, 740, 744, 0, 791,
+ 0, 0, 459, 199, 193, 0, 0, 0, 752, 794,
+ 0, 0, 795, 0, 0, 200, 736, 796, 0, 753,
+ 0, 0, 0, 737, 797, 754, 0, 0, 0
};
-static const short yydefgoto[] = { 1628,
- 436, 2, 437, 165, 709, 331, 181, 3, 4, 37,
- 672, 373, 1306, 673, 770, 1307, 1308, 393, 1412, 677,
- 41, 771, 402, 683, 939, 684, 685, 686, 43, 172,
- 173, 44, 455, 184, 180, 45, 46, 787, 1070, 793,
- 1072, 47, 773, 774, 185, 186, 456, 716, 977, 978,
- 652, 979, 234, 48, 961, 960, 699, 696, 1136, 1135,
- 919, 916, 136, 959, 49, 236, 50, 913, 565, 332,
- 333, 334, 335, 1309, 1579, 1476, 1581, 1521, 1612, 1178,
- 1558, 1576, 367, 905, 336, 1247, 860, 604, 867, 337,
- 338, 368, 340, 358, 52, 255, 678, 418, 154, 53,
- 54, 341, 560, 342, 343, 344, 345, 457, 346, 1310,
- 496, 626, 347, 1311, 56, 217, 689, 348, 218, 538,
- 219, 197, 210, 60, 479, 497, 1333, 750, 1196, 198,
- 211, 61, 509, 751, 62, 63, 668, 669, 670, 1283,
- 462, 830, 831, 1549, 1550, 1514, 1456, 1364, 64, 656,
- 361, 1224, 1457, 1091, 922, 65, 66, 67, 68, 69,
- 242, 243, 70, 71, 504, 1017, 1018, 1019, 1020, 245,
- 506, 507, 784, 778, 779, 780, 1042, 1052, 1043, 1353,
- 1044, 1045, 1354, 1355, 653, 654, 605, 895, 350, 465,
- 466, 191, 199, 73, 74, 75, 200, 142, 143, 157,
- 77, 132, 351, 352, 353, 79, 354, 81, 1022, 123,
- 124, 125, 514, 105, 82, 355, 872, 873, 890, 629,
- 1314, 1315, 1179, 1180, 1181, 720, 1316, 986, 1317, 1397,
- 1524, 1479, 1480, 1318, 1319, 1504, 1398, 1525, 1399, 1560,
- 1400, 1562, 1607, 1622, 1401, 1583, 1534, 1584, 1485, 458,
- 717, 1281, 1320, 1415, 1539, 1388, 1389, 1471, 1553, 1523,
- 1519, 1321, 1530, 1418, 837, 1586, 1587, 1588, 1620, 736,
- 737, 1006, 1192, 1329, 738, 739, 740, 1002, 741, 148,
- 1004, 743, 1194, 1195, 532, 84, 85
+static const short yydefgoto[] = { 1627,
+ 436, 2, 437, 165, 726, 331, 181, 3, 4, 37,
+ 689, 373, 1329, 690, 512, 1330, 1331, 393, 1424, 694,
+ 41, 513, 402, 700, 974, 701, 702, 703, 43, 172,
+ 173, 44, 455, 184, 180, 45, 46, 822, 1087, 828,
+ 1089, 47, 515, 516, 185, 186, 456, 733, 1012, 1013,
+ 669, 1014, 234, 48, 996, 995, 716, 713, 1153, 1152,
+ 954, 951, 136, 994, 49, 236, 50, 948, 582, 332,
+ 333, 334, 335, 1332, 1578, 1482, 1580, 1524, 1611, 1195,
+ 1557, 1575, 367, 940, 336, 1270, 895, 621, 902, 337,
+ 338, 368, 340, 358, 52, 255, 695, 418, 154, 53,
+ 54, 341, 577, 342, 343, 344, 345, 457, 346, 1333,
+ 496, 643, 347, 1334, 56, 217, 706, 348, 218, 555,
+ 219, 197, 210, 60, 479, 497, 1356, 767, 1213, 198,
+ 211, 61, 526, 768, 62, 63, 685, 686, 687, 1306,
+ 462, 865, 866, 1548, 1549, 1517, 1462, 1376, 64, 673,
+ 361, 1246, 1463, 1108, 957, 65, 66, 67, 68, 69,
+ 242, 243, 70, 71, 504, 1052, 1053, 1054, 1055, 245,
+ 520, 815, 521, 522, 523, 800, 810, 801, 1236, 802,
+ 803, 1237, 1238, 670, 671, 622, 930, 350, 465, 466,
+ 191, 199, 73, 74, 75, 200, 142, 143, 157, 77,
+ 132, 351, 352, 353, 79, 354, 81, 1057, 123, 124,
+ 125, 531, 105, 82, 355, 907, 908, 925, 646, 1337,
+ 1338, 1196, 1197, 1198, 737, 1339, 1021, 1340, 1409, 1527,
+ 1485, 1486, 1341, 1342, 1510, 1410, 1528, 1411, 1559, 1412,
+ 1561, 1606, 1621, 1413, 1582, 1537, 1583, 1491, 458, 734,
+ 1304, 1343, 1427, 1542, 1400, 1401, 1477, 1552, 1526, 1522,
+ 1344, 1533, 1430, 872, 1585, 1586, 1587, 1619, 753, 754,
+ 1041, 1209, 1352, 755, 756, 757, 1037, 758, 148, 1039,
+ 760, 1211, 1212, 549, 84, 85
};
-static const short yypact[] = { 113,
- 134,-32768,-32768, 10501,-32768, 45, 86, 454, 528, 151,
- 179,-32768,-32768, 625,-32768, 162, 167, 199,-32768,-32768,
--32768, 1379, 744, 462, 231,-32768, 246, 543,-32768, 1936,
- 1936,-32768, 2838,-32768, 10501, 281,-32768,-32768, 332,-32768,
- 250, 10579,-32768,-32768, 270, 939, 377, 391, 420,-32768,
--32768,-32768,-32768, 406, 3929,-32768, 10820,-32768, 1921, 529,
--32768, 460,-32768,-32768, 1389, 411,-32768,-32768,-32768,-32768,
- 440, 2961,-32768,-32768,-32768, 921,-32768,-32768,-32768, 617,
--32768,-32768, 362, 8032, 431,-32768,-32768, 9567,-32768, 9567,
--32768, 9567,-32768,-32768,-32768, 454, 528, 246, 470, 452,
- 469, 420,-32768, 366,-32768, 362, 9653, 9653, 517,-32768,
--32768,-32768,-32768,-32768, 675, 570, 544, 557, 585, 587,
- 618,-32768,-32768, 1050,-32768, 1205, 454, 528,-32768, 246,
- 470,-32768, 1385, 1043, 611, 11006, 9567,-32768, 9567, 3466,
- 2560,-32768,-32768, 688, 874, 2560,-32768, 1242, 3626, 3626,
- 2838, 554, 601,-32768, 533, 930, 630, 632,-32768,-32768,
- 747,-32768, 586,-32768, 10706,-32768,-32768, 231, 5117, 666,
--32768,-32768,-32768, 270, 4845, 11061, 776, 715,-32768,-32768,
- 716, 460, 778, 156, 344, 753,-32768,-32768, 706, 65,
--32768,-32768, 4597, 4597, 4660, 921, 832,-32768,-32768, 501,
--32768,-32768, 1098,-32768,-32768,-32768,-32768,-32768, 1921, 865,
--32768, 460, 921,-32768,-32768,-32768, 2025, 1921,-32768, 460,
--32768, 4845,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 768,-32768, 420,-32768, 460, 1592, 1265,-32768,
--32768, 785, 785,-32768,-32768,-32768, 541, 362,-32768, 339,
- 898,-32768, 201,-32768,-32768,-32768,-32768,-32768, 5823,-32768,
--32768, 722,-32768, 760, 774,-32768,-32768,-32768,-32768, 808,
+static const short yypact[] = { 136,
+ 169,-32768,-32768, 5066,-32768, 203, 163, 73, 77, 190,
+ 291,-32768,-32768, 1458,-32768, 259, 264, 279,-32768,-32768,
+-32768, 871, 2044, 1374, 330,-32768, 336, 320,-32768, 1976,
+ 1976,-32768, 2798,-32768, 5066, 351,-32768,-32768, 355,-32768,
+ 51, 3166,-32768,-32768, 344, 824, 443, 463, 483,-32768,
+-32768,-32768,-32768, 324, 5213,-32768, 5421,-32768, 2205, 804,
+-32768, 456,-32768,-32768, 1137, 623,-32768,-32768,-32768,-32768,
+ 435, 3747,-32768,-32768,-32768, 198,-32768,-32768,-32768, 906,
+-32768,-32768, 1174, 8340, 481,-32768,-32768, 10037,-32768, 10037,
+-32768, 10037,-32768,-32768,-32768, 73, 77, 336, 510, 472,
+ 539, 483,-32768, 1000,-32768, 1174, 10123, 10123, 509,-32768,
+-32768,-32768,-32768,-32768, 234, 550, 474, 541, 767, 554,
+ 564,-32768,-32768, 1006,-32768, 305, 73, 77,-32768, 336,
+ 510,-32768, 2508, 1031, 545, 5547, 10037,-32768, 10037, 4171,
+ 2952,-32768,-32768, 1311, 1265, 2952,-32768, 664, 3604, 3604,
+ 2798, 517, 538,-32768, 559, 876, 562, 592,-32768,-32768,
+ 700,-32768, 630,-32768, 3999,-32768,-32768, 330, 3843, 643,
+-32768,-32768,-32768, 344, 6652, 6133, 836, 690,-32768,-32768,
+ 684, 456, 778, 176, 458, 728,-32768,-32768, 691, 69,
+-32768,-32768, 3940, 3940, 6529, 198, 864,-32768,-32768, 546,
+-32768,-32768, 1679,-32768,-32768,-32768,-32768,-32768, 2205, 883,
+-32768, 456, 198,-32768,-32768,-32768, 2251, 2205,-32768, 456,
+-32768, 6652,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 749,-32768, 483,-32768, 456, 2169, 910,-32768,
+-32768, 766, 766,-32768, 4696,-32768, 715, 1174,-32768, 784,
+ 1757,-32768, 366,-32768,-32768,-32768,-32768,-32768, 4100,-32768,
+-32768, 769,-32768, 740, 758,-32768,-32768,-32768,-32768, 781,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 770,-32768,-32768, 541, 2961, 889,-32768,-32768,
- 781,-32768,-32768, 10261, 10347, 10433, 10433,-32768,-32768,-32768,
--32768,-32768, 791, 824, 834, 836, 839, 984, 470, 9739,
- 1344, 10433,-32768,-32768, 10433,-32768,-32768, 10433, 7140,-32768,
- 10433, 783, 847,-32768, 10433,-32768, 9825,-32768, 11306, 207,
- 735, 2906, 9911,-32768, 909, 1677,-32768, 1035, 2216, 2707,
--32768, 341,-32768, 1619, 1893, 783, 783, 9567, 11006,-32768,
- 1344, 820, 1344,-32768,-32768, 829, 873, 11239, 845, 850,
- 857, 1404, 586,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 570, 544, 557, 1344, 585, 587, 868, 618,-32768,
- 920,-32768, 2238, 454, 528,-32768,-32768,-32768,-32768,-32768,
--32768, 4577,-32768, 4845, 4782, 1152,-32768, 783, 437,-32768,
--32768, 807,-32768, 908, 914,-32768,-32768,-32768, 2560,-32768,
--32768, 2560,-32768, 882,-32768,-32768,-32768, 930, 930, 930,
--32768,-32768,-32768, 5823, 91, 883, 894,-32768,-32768,-32768,
--32768, 11006,-32768, 962, 1003,-32768,-32768, 747,-32768, 460,
--32768,-32768,-32768,-32768, 140,-32768,-32768,-32768,-32768, 7692,
- 9739,-32768,-32768,-32768, 9739, 901,-32768, 6828, 142, 10560,
--32768, 10560,-32768, 11078, 11078, 4660, 897,-32768, 460, 4845,
--32768, 906,-32768,-32768, 11119, 2025, 1921, 4845,-32768, 460,
--32768,-32768, 460, 2025,-32768, 997,-32768, 9567, 768,-32768,
--32768, 1592,-32768,-32768,-32768, 3869, 85, 541, 460,-32768,
--32768, 954, 982, 1006, 990,-32768,-32768,-32768,-32768, 610,
--32768, 463, 925, 956,-32768,-32768, 541,-32768,-32768, 819,
--32768,-32768, 9567, 9739, 781, 7140,-32768, 479, 7140,-32768,
--32768,-32768, 9653, 3641, 3641, 3641, 3641, 11284,-32768,-32768,
--32768,-32768, 969, 10003, 10003, 7140, 971, 164, 985, 1032,
- 987,-32768,-32768,-32768,-32768, 9567,-32768, 7231, 7140,-32768,
- 9739, 9739, 7783, 9739, 9739, 9739, 9739, 9739, 9739, 9739,
- 9739, 9739, 9739, 9739, 9739, 9739, 9739, 9739, 9739, 9739,
- 9739, 9739,-32768, 9739,-32768,-32768,-32768,-32768,-32768, 9739,
- 9739,-32768,-32768, 2543, 443, 205, 8392,-32768,-32768,-32768,
- 1059, 898, 1108, 519, 559, 567, 2402, 874,-32768, 1955,
- 1955,-32768, 3205, 1007, 1031, 1080,-32768,-32768, 511, 8942,
- 1749,-32768, 1030, 362,-32768,-32768, 9739,-32768,-32768,-32768,
--32768,-32768, 441, 431,-32768,-32768, 783,-32768, 4845, 2724,
--32768, 1077, 1078,-32768,-32768, 1344, 868,-32768, 8124, 8215,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 120,-32768, 1055,
- 1034, 586, 2238, 1097, 9567,-32768, 1096,-32768,-32768, 1043,
- 1697, 1128, 471, 1101, 1103,-32768,-32768, 3099, 11061, 3099,
- 3303, 1389, 10765,-32768, 1105,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, 1068, 1071,-32768, 1111,-32768,-32768, 270,
--32768,-32768,-32768,-32768, 97, 400, 1118, 1032,-32768,-32768,
--32768,-32768, 7030, 11284,-32768, 873, 1079, 11239,-32768,-32768,
- 1081,-32768, 1082, 573, 4360, 1083,-32768, 112, 4465, 1117,
- 1131, 568,-32768,-32768,-32768, 10560, 10560,-32768, 11119,-32768,
- 1136,-32768,-32768, 1090, 142,-32768, 2025,-32768,-32768, 460,
- 1130,-32768, 2297,-32768, 660, 789,-32768, 9739, 10638,-32768,
- 10638, 408, 408, 211, 603, 3889, 10879, 5499,-32768, 210,
- 408, 1144, 460, 6090,-32768, 142, 5204, 9567, 9567,-32768,
- 9567, 142, 5204,-32768,-32768,-32768,-32768,-32768,-32768, 477,
- 477, 477, 783, 1084, 1099, 9218, 1080, 1109, 1114, 1116,
- 1141, 4282, 1150, 1153, 1154,-32768, 1122,-32768,-32768, 1126,
--32768,-32768, 1157, 74, 325, 311, 172, 9739, 1174,-32768,
- 1180, 1146, 11284, 11284,-32768,-32768, 1190, 11324, 11341, 6304,
- 11356, 2756, 3410, 3759, 2096, 2096, 2096, 1693, 1693, 992,
- 992, 968, 968, 968,-32768,-32768, 1147, 1156, 1162, 9739,
- 9653,-32768, 443,-32768, 7692, 9739,-32768,-32768,-32768, 9739,
--32768,-32768, 1181, 10433, 1163, 1188, 1206, 1235,-32768, 9739,
--32768, 9739,-32768, 9739, 3331,-32768, 3331,-32768, 105, 1175,
- 1176,-32768, 1178, 3641, 142,-32768, 142, 4214,-32768, 5204,
- 1182, 3040, 3040, 6640, 1179, 9825, 1187, 930, 1845, 1893,
- 1210, 1193,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 9739,
- 1344, 1177, 1078,-32768, 11284,-32768, 11284, 1404, 1196, 10089,
--32768, 1197, 1245,-32768, 783,-32768,-32768,-32768,-32768,-32768,
- 2817, 4577,-32768, 3641, 9567, 3526, 3526, 5669,-32768,-32768,
--32768,-32768, 1098,-32768,-32768,-32768, 903, 9739,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768, 270,-32768, 570,
- 544, 557,-32768, 585, 587, 9739, 1250,-32768, 606, 618,
- 608, 653, 1545, 1032,-32768, 78,-32768, 59,-32768,-32768,
--32768,-32768,-32768,-32768, 9034,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 1131, 1247,-32768,-32768,-32768, 3641,-32768,-32768,
--32768, 1251,-32768,-32768, 1223,-32768, 1259,-32768,-32768, 108,
--32768,-32768,-32768, 5204, 11284,-32768, 2448,-32768, 460, 460,
--32768,-32768,-32768,-32768,-32768, 5204, 604, 843, 9739, 997,
--32768, 1266,-32768,-32768,-32768, 277, 353, 617, 874, 418,
- 408, 1272,-32768, 425,-32768,-32768,-32768, 460,-32768,-32768,
- 8460,-32768, 1216, 783, 783, 783,-32768, 1224, 142, 5204,
- 142, 5204,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768, 1241, 1244, 1249, 1252, 1068,-32768, 11172, 7692, 7325,
- 1253,-32768, 9739,-32768,-32768,-32768, 1254, 1236, 1248, 3641,
--32768,-32768, 1256, 190, 750, 750, 1239, 750,-32768,-32768,
- 10433, 1352, 9567,-32768, 1258, 1261, 1262,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768, 142, 1263,-32768, 1264,-32768,
--32768, 2147,-32768,-32768,-32768,-32768,-32768, 11284,-32768,-32768,
- 1267,-32768,-32768, 255, 1273,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 4152, 4152, 4986, 4986, 5669,-32768, 1098,-32768,
- 5377, 11306,-32768,-32768,-32768, 1295,-32768, 400,-32768, 9739,
--32768, 9739,-32768, 9739,-32768, 1344,-32768,-32768, 6527, 1339,
--32768, 7416,-32768, 9126, 9126, 6734, 62, 1297, 96,-32768,
- 7692, 7507,-32768,-32768, 286, 7692,-32768,-32768,-32768, 9653,
--32768,-32768,-32768,-32768, 1654, 142, 1302,-32768, 1310, 1310,
- 142, 1306, 9739, 9739, 11150, 460, 4944, 460, 460, 1298,
- 460, 5233, 1310,-32768,-32768,-32768, 1325,-32768,-32768,-32768,
- 1307,-32768, 1309, 9739, 9739, 9739, 9739, 7692,-32768, 1356,
--32768,-32768, 11284,-32768,-32768,-32768, 552, 1248,-32768,-32768,
--32768,-32768,-32768,-32768, 1311,-32768, 1372, 783,-32768,-32768,
--32768, 142,-32768,-32768,-32768,-32768,-32768,-32768, 9739,-32768,
--32768, 4152, 4152,-32768, 5377,-32768,-32768, 1313, 1316, 1319,
- 1334,-32768, 1010, 298, 1376, 861, 910,-32768,-32768,-32768,
--32768,-32768, 9739, 1377, 1380, 1384, 9304, 273, 1344, 828,
- 614,-32768,-32768, 9395, 1439,-32768,-32768,-32768, 1390,-32768,
- 4718, 10947, 5938, 6261,-32768,-32768, 1435,-32768,-32768,-32768,
- 8553,-32768,-32768, 1345, 369,-32768,-32768,-32768,-32768, 3641,
--32768,-32768, 7692, 1347, 1348, 2297,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768, 11150, 11150,-32768, 1310, 628,
- 953, 9739,-32768,-32768,-32768, 997, 997, 1310, 1310, 610,
- 1310,-32768,-32768, 6395, 142, 142,-32768,-32768, 1354, 1355,
- 1359, 1360,-32768, 7692, 9739,-32768, 552,-32768,-32768,-32768,
--32768, 142, 1362,-32768,-32768,-32768,-32768, 1334,-32768, 1344,
--32768,-32768,-32768,-32768,-32768,-32768, 657, 657, 1032, 1381,
- 1386, 5708,-32768,-32768,-32768,-32768, 1392, 9739, 1412, 1418,
- 1426, 1692, 1763,-32768, 1032,-32768,-32768, 1394,-32768,-32768,
- 997, 1063,-32768, 1073, 997, 9481, 1075, 315,-32768,-32768,
--32768,-32768,-32768,-32768, 188,-32768,-32768,-32768,-32768,-32768,
- 142, 142,-32768,-32768,-32768, 9739, 9739, 11150, 460, 460,
--32768,-32768,-32768,-32768, 8306,-32768,-32768,-32768,-32768, 142,
- 142,-32768,-32768,-32768,-32768,-32768, 1374,-32768,-32768,-32768,
- 1396,-32768,-32768,-32768, 9653,-32768,-32768,-32768, 1466, 8849,
- 6936, 9653, 9739,-32768, 8661,-32768, 1436,-32768,-32768, 1441,
--32768, 1426, 1692,-32768,-32768, 747,-32768,-32768, 10175, 10175,
- 7601,-32768,-32768, 1032,-32768,-32768, 11150, 11150,-32768, 1310,
- 1310, 1391, 11194, 1408,-32768,-32768,-32768, 6188,-32768,-32768,
- 1399, 763, 4845, 1032, 8755,-32768,-32768, 78,-32768,-32768,
- 1450, 1405, 11262, 8661,-32768,-32768,-32768,-32768, 1334, 87,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 377, 270,
- 1407, 1410, 1032,-32768, 997,-32768,-32768,-32768,-32768, 663,
--32768, 7874,-32768,-32768,-32768,-32768, 1334, 1501, 1456, 161,
--32768,-32768,-32768,-32768, 460, 78,-32768, 9739, 1463,-32768,
- 1464,-32768, 1032, 8661, 1443, 158, 1478,-32768,-32768,-32768,
- 140,-32768, 1474,-32768, 1431,-32768,-32768,-32768,-32768, 9739,
- 1501, 1481, 1501,-32768,-32768,-32768, 7965, 1437, 649,-32768,
--32768, 7692, 1444,-32768, 1532, 1491,-32768,-32768,-32768, 317,
--32768, 8755, 1544, 1496,-32768,-32768,-32768, 1557, 1563,-32768
+-32768,-32768, 755,-32768,-32768, 715, 3747, 1632,-32768,-32768,
+ 776,-32768,-32768, 10731, 10817, 10903, 10903,-32768,-32768,-32768,
+-32768,-32768, 780, 786, 797, 825, 832, 1025, 510, 10209,
+ 1357, 10903,-32768,-32768, 10903,-32768,-32768, 10903, 7539,-32768,
+ 10903, 65, 849,-32768, 10903,-32768, 10295,-32768, 11119, 426,
+ 1563, 3740, 10381,-32768, 919, 2567,-32768, 1700, 2285, 3286,
+-32768, 431,-32768, 3387, 1998, 65, 65, 10037, 5547,-32768,
+ 1357, 827, 1357,-32768,-32768, 826, 879, 11052, 837, 842,
+ 857, 1966, 630,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768, 550, 474, 541, 1357, 767, 554, 881, 564,-32768,
+ 914,-32768, 270, 73, 77,-32768,-32768,-32768,-32768,-32768,
+-32768, 6834,-32768, 6652, 6645, 723,-32768, 65, 301,-32768,
+-32768, 811,-32768, 897, 903,-32768,-32768,-32768, 2952,-32768,
+-32768, 2952,-32768, 873,-32768,-32768,-32768, 876, 876, 876,
+-32768,-32768,-32768, 4100, 103, 875, 884,-32768,-32768,-32768,
+-32768, 5547,-32768, 900, 963,-32768,-32768, 700,-32768, 456,
+-32768,-32768,-32768,-32768, 165,-32768,-32768,-32768,-32768, 8091,
+ 10209,-32768,-32768,-32768, 10209, 877,-32768, 5311, 240, 4742,
+-32768, 4742,-32768, 5059, 5059, 6529, 882,-32768, 456, 6652,
+-32768, 891,-32768,-32768, 5849, 2251, 2205, 6652,-32768, 456,
+-32768,-32768, 456, 2251,-32768, 981,-32768, 10037, 749,-32768,
+-32768, 2169,-32768,-32768,-32768,-32768, 807, 385,-32768, 10209,
+ 1836,-32768, 1836, 219, 219, 220, 433, 3033, 4527, 108,
+ 4879,-32768, 274, 219, 715, 456,-32768,-32768, 941, 944,
+ 971, 955,-32768,-32768,-32768,-32768, 847,-32768, 439, 921,
+ 927,-32768,-32768, 715,-32768,-32768, 1100,-32768,-32768, 10037,
+ 10209, 776, 7539,-32768, 451, 7539,-32768,-32768,-32768, 10123,
+ 4970, 4970, 4970, 4970, 11097,-32768,-32768,-32768,-32768, 934,
+ 10473, 10473, 7539, 937, 437, 939, 991, 947,-32768,-32768,
+-32768,-32768, 10037,-32768, 7630, 7539,-32768, 10209, 10209, 5654,
+ 10209, 10209, 10209, 10209, 10209, 10209, 10209, 10209, 10209, 10209,
+ 10209, 10209, 10209, 10209, 10209, 10209, 10209, 10209, 10209,-32768,
+ 10209,-32768,-32768,-32768,-32768,-32768, 10209, 10209,-32768,-32768,
+ 339, 651, 1120, 8700,-32768,-32768,-32768, 998, 1757, 1053,
+ 469, 482, 581, 3585, 1265,-32768, 1659, 1659,-32768, 3502,
+ 960, 982, 1043,-32768,-32768, 590, 9320, 1173,-32768, 1103,
+ 1174,-32768,-32768, 10209,-32768,-32768,-32768,-32768,-32768, 90,
+ 481,-32768,-32768, 65,-32768, 6652, 1444,-32768, 1014, 1034,
+-32768,-32768, 1357, 881,-32768, 8432, 8523,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, 278,-32768, 1016, 1020, 630, 270,
+ 1062, 10037,-32768, 1073,-32768,-32768, 1031, 2198, 1102, 71,
+ 1079, 1083,-32768,-32768, 2306, 6133, 2306, 2152, 1137, 4350,
+-32768, 1094,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+ 1046, 1054,-32768, 1107,-32768,-32768, 344,-32768,-32768,-32768,
+-32768, 104, 1493, 1101, 991,-32768,-32768,-32768,-32768, 7429,
+ 11097,-32768, 879, 1064, 11052,-32768,-32768, 1067,-32768, 1089,
+ 93, 3406, 1095,-32768, 571, 5919, 1140, 1145, 649,-32768,
+-32768,-32768, 4742, 4742,-32768, 5849,-32768, 1157,-32768,-32768,
+ 1111, 240,-32768, 2251,-32768,-32768, 456, 1109,-32768, 2385,
+-32768, 7162, 11097,-32768, 5202,-32768, 456, 456,-32768,-32768,
+-32768,-32768,-32768, 7162, 174, 966, 10209, 981,-32768, 1166,
+-32768,-32768,-32768, 485, 580, 906, 1265, 587, 219, 1177,
+-32768, 676, 1161, 456, 8768,-32768,-32768,-32768, 456,-32768,
+ 240, 7162, 10037, 10037,-32768, 10037, 240, 7162,-32768,-32768,
+-32768,-32768,-32768,-32768, 1688, 1688, 1688, 65, 1136, 1143,
+ 9688, 1043, 1147, 1149, 1152, 1170, 2853, 1186, 1189, 1190,
+-32768, 1167,-32768,-32768, 1168,-32768,-32768, 1211, 996, 1060,
+ 557, 601, 10209, 1217,-32768, 1232, 1191, 11097, 11097,-32768,
+-32768, 1235, 5746, 6217, 6158, 4780, 2387, 5364, 4442, 2354,
+ 2354, 2354, 1205, 1205, 1512, 1512, 1028, 1028, 1028,-32768,
+-32768, 1192, 1194, 1183, 10209, 10123,-32768, 651,-32768, 8091,
+ 10209,-32768,-32768,-32768, 10209,-32768,-32768, 1204, 10903, 1199,
+ 1215, 1231, 1264,-32768, 10209,-32768, 10209,-32768, 10209, 2925,
+-32768, 2925,-32768, 228, 1216, 1218,-32768, 1214, 4970, 240,
+-32768, 240, 3053,-32768, 7162, 1219, 9504, 9504, 6451, 1220,
+ 10295, 1221, 876, 2159, 1998, 1368, 1224,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, 10209, 1357, 1225, 1034,-32768, 11097,
+-32768, 11097, 1966, 1227, 10559,-32768, 1233, 1253,-32768, 65,
+-32768,-32768,-32768,-32768,-32768, 1852, 6834,-32768, 4970, 10037,
+ 1202, 1202, 4282,-32768,-32768,-32768,-32768, 1679,-32768,-32768,
+-32768, 1188, 10209,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 344,-32768, 550, 474, 541,-32768, 767, 554,
+ 10209, 1285,-32768, 672, 564, 702, 706, 1806, 991,-32768,
+ 96,-32768, 171,-32768,-32768,-32768,-32768,-32768,-32768, 9412,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1145, 1283,-32768,
+-32768,-32768, 4970,-32768,-32768,-32768, 1284,-32768,-32768, 1257,
+-32768, 1294,-32768,-32768, 298,-32768,-32768, 240, 1249,-32768,
+ 1305, 1305, 240, 1262, 10209, 10209, 7076, 456, 4960, 456,
+ 456, 1524, 456, 6356,-32768,-32768, 8838, 1305,-32768, 1266,
+ 65, 65, 65,-32768, 1267, 240, 7162, 240, 7162,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1289, 1290,
+ 1291, 1293, 1046,-32768, 10985, 8091, 7724, 1280,-32768, 10209,
+-32768,-32768,-32768, 1281, 1287, 1295, 4970,-32768,-32768, 1298,
+ 569, 1012, 1012, 1296, 1012,-32768,-32768, 10903, 1384, 10037,
+-32768, 1309, 1313, 1319,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 240, 1326,-32768, 1325,-32768,-32768, 2768,-32768,
+-32768,-32768,-32768,-32768, 11097,-32768,-32768, 1292,-32768,-32768,
+ 292, 1330,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2497,
+ 2497, 2557, 2557, 4282,-32768, 1679,-32768, 3088, 11119,-32768,
+-32768,-32768, 1331,-32768, 1493,-32768, 10209,-32768, 10209,-32768,
+ 10209,-32768, 1357,-32768,-32768, 7026, 1413,-32768, 7815,-32768,
+ 9596, 9596, 7226, 173, 1339, 209,-32768, 8091, 7906,-32768,
+-32768, 311, 8091,-32768,-32768,-32768, 10123,-32768,-32768,-32768,
+-32768, 1848,-32768,-32768,-32768,-32768,-32768,-32768, 7076, 7076,
+-32768, 1305, 585, 1127, 10209,-32768,-32768,-32768, 981, 981,
+ 1305, 1305, 847, 1305,-32768,-32768,-32768,-32768,-32768, 1395,
+-32768,-32768,-32768, 1342,-32768, 1346, 10209, 10209, 10209, 10209,
+ 8091,-32768, 1393,-32768,-32768, 11097,-32768,-32768,-32768, 60,
+ 1295,-32768,-32768,-32768,-32768,-32768,-32768, 1348,-32768, 1421,
+ 65,-32768,-32768,-32768, 240,-32768,-32768,-32768,-32768,-32768,
+-32768, 10209,-32768,-32768, 2497, 2497,-32768, 3088,-32768,-32768,
+ 1352, 1362, 1363, 1380,-32768, 1036, 321, 1407, 1164, 1165,
+-32768,-32768,-32768,-32768,-32768, 10209, 1416, 1419, 1425, 9774,
+ 653, 1357, 496, 693,-32768,-32768, 9865, 1477,-32768,-32768,
+-32768, 1430,-32768, 6551, 6039, 4418, 6895,-32768,-32768, 1475,
+-32768,-32768,-32768, 8931,-32768,-32768, 1386, 1373,-32768,-32768,
+-32768,-32768, 4970,-32768,-32768, 8091, 1391, 1399, 2385,-32768,
+-32768,-32768, 240, 240,-32768,-32768,-32768, 10209, 10209, 7076,
+ 456, 456,-32768,-32768,-32768, 6712, 240, 240,-32768,-32768,
+ 1400, 1401, 1405, 1410,-32768, 8091, 10209,-32768, 60,-32768,
+-32768,-32768,-32768, 240, 1415,-32768,-32768,-32768,-32768, 1380,
+-32768, 1357,-32768,-32768,-32768,-32768,-32768,-32768, 711, 711,
+ 991, 1432, 1433, 6200,-32768,-32768,-32768,-32768, 1467, 10209,
+ 1472, 1428, 1480, 1927, 1987,-32768, 991,-32768,-32768, 1451,
+-32768,-32768, 981, 1061,-32768, 1076, 981, 9951, 1090, 322,
+-32768,-32768,-32768,-32768,-32768,-32768, 364,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, 7076, 7076,-32768, 1305, 1305,-32768,
+ 8614,-32768,-32768,-32768,-32768, 240, 240,-32768,-32768,-32768,
+-32768,-32768, 1434,-32768,-32768,-32768, 1459,-32768,-32768,-32768,
+ 10123,-32768,-32768,-32768, 1538, 9227, 7336, 10123, 10209,-32768,
+ 9039,-32768, 1496,-32768,-32768, 1504,-32768, 1480, 1927,-32768,
+-32768, 700,-32768,-32768, 10645, 10645, 8000,-32768,-32768, 991,
+-32768,-32768,-32768,-32768, 1452, 11007, 1463,-32768,-32768,-32768,
+ 10990,-32768,-32768, 1455, 398, 6652, 991, 9133,-32768,-32768,
+ 96,-32768,-32768, 1507, 1460, 11075, 9039,-32768,-32768,-32768,
+-32768, 1380, 76,-32768,-32768,-32768,-32768, 443, 344, 1462,
+ 1466, 991,-32768, 981,-32768,-32768,-32768,-32768, 714,-32768,
+ 8182,-32768,-32768,-32768,-32768, 1380, 1566, 1522, 177,-32768,
+-32768,-32768,-32768, 456, 96,-32768, 10209, 1523,-32768, 1529,
+-32768, 991, 9039, 1491, 63, 1531,-32768,-32768,-32768, 165,
+-32768, 1534,-32768, 1494,-32768,-32768,-32768,-32768, 10209, 1566,
+ 1539, 1566,-32768,-32768,-32768, 8273, 1500, 572,-32768,-32768,
+ 8091, 1501,-32768, 1577, 1553,-32768,-32768,-32768, 332,-32768,
+ 9133, 1603, 1559,-32768,-32768,-32768, 1621, 1622,-32768
};
static const short yypgoto[] = {-32768,
- 1564,-32768, -331, 1400, -350, 19, 6, 1571,-32768, 1539,
--32768,-32768, 228,-32768, 229,-32768, 249,-32768, 163, 902,
- 39, 15,-32768,-32768, -629,-32768,-32768, 636, 55, 1420,
- 1137, 1433, -704, 42, -173, -6, 150,-32768,-32768,-32768,
--32768,-32768, 823,-32768,-32768,-32768,-32768,-32768,-32768, 436,
- 1148,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 1511, -651, 5827, 1369, -47, -586, -227, -68,
- 1469, -536,-32768, 684,-32768, 212,-32768, -1387,-32768, -1289,
- -11,-32768, 1519, 1510, -270, 364, -544,-32768, -826, 2320,
- 9, 1554, 3609, 1314, -327, -57, -88, 682, -139, -65,
- 93,-32768,-32768,-32768, -326,-32768, -153,-32768,-32768, -1252,
- -48, -338, 4854, 138, 912, -118, 81, 102, -203, -4,
- -144, -166, -172, 16, -21, 145,-32768, -370,-32768,-32768,
--32768,-32768,-32768, 213, 1308, 10,-32768, 686,-32768,-32768,
- -768, -377, 893,-32768,-32768,-32768,-32768,-32768, -16,-32768,
--32768,-32768,-32768,-32768, 694, -346,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768, 1378,-32768, 283, 421,-32768,-32768,
--32768,-32768,-32768, 848, -677,-32768,-32768,-32768,-32768,-32768,
--32768, 852,-32768, 412, 977, 714, 1039, 4229, 47, 21,
- -455, 1438, 1271, -667,-32768, 4,-32768, 822, 4045, -147,
- 173, -102, 4533, 1293,-32768, 4890, 2554, 1748, -18, -114,
--32768, 1521, -53,-32768, 4714, 3375, -257,-32768, 1983,-32768,
--32768, 333,-32768,-32768, 472, 63, -439,-32768,-32768,-32768,
--32768, -1405,-32768, -1174, -1373,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 83,
--32768,-32768,-32768,-32768,-32768, 116, -1322,-32768,-32768, -45,
--32768,-32768,-32768,-32768, -1416, 67,-32768, 53,-32768, -723,
- -583, 667,-32768,-32768,-32768,-32768, -388,-32768, -382, -441,
--32768, 1416, 336,-32768, -84,-32768, -230
+ 1624,-32768, -304, 1456, -364, 75, 2, 1623,-32768, 1593,
+-32768,-32768, 315,-32768, 373,-32768, 507,-32768, 206, 942,
+ 58, 24,-32768,-32768, -669,-32768,-32768, 657, 59, 1469,
+ 1197, 1478, -719, 111, -173, 29, 55,-32768,-32768,-32768,
+-32768,-32768, 1125,-32768,-32768,-32768,-32768,-32768,-32768, 466,
+ 1903,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 1568, -526, 6178, 1422, -58, -599, -235, -44,
+ 1533, -547,-32768, 388,-32768, 260,-32768, -1362,-32768, -1307,
+ 52,-32768, 1442, 1361, -254, 403, -557,-32768, -868, 3479,
+ -125, 1528, 4472, 1379, -332, -52, -76, 427, -140, -66,
+ 135,-32768,-32768,-32768, -344,-32768, -159,-32768,-32768, -1236,
+ -16, -329, 1934, 530, -150, -166, 78, 50, -206, -4,
+ -145, -165, -171, 32, -11, 357,-32768, -257,-32768,-32768,
+-32768,-32768,-32768, 734, 1247, -45,-32768, 716,-32768,-32768,
+ -765, -399, 940,-32768,-32768,-32768,-32768,-32768, 218,-32768,
+-32768,-32768,-32768,-32768, 729, -377,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, 1447,-32768, 335, 473,-32768,-32768,
+-32768,-32768, 885, -479,-32768,-32768,-32768,-32768,-32768,-32768,
+ 1172,-32768, 624, 1030, 745, 1086, 2837, 14, 54, -461,
+ 1510, 2756, -686,-32768, 13,-32768, 645, 20, -142, 271,
+ -105, 5046, 1365,-32768, 5682, 2642, 1651, -19, -113,-32768,
+ 1590, -54,-32768, 5135, 3513, -359,-32768, 1597,-32768,-32768,
+ 381,-32768,-32768, 527, 138, -429,-32768,-32768,-32768,-32768,
+ -1369,-32768, -1238, -1389,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 156,-32768,
+-32768,-32768,-32768,-32768, 188, -1311,-32768,-32768, -51,-32768,
+-32768,-32768,-32768, -1385, 140,-32768, 144,-32768, -606, -580,
+ 710,-32768,-32768,-32768,-32768, -393,-32768, -390, -333,-32768,
+ 1007, 397,-32768, 83,-32768, -232
};
-#define YYLAST 11440
+#define YYLAST 11203
static const short yytable[] = { 59,
- 443, 420, 423, 445, 122, 487, 196, 435, 444, 36,
- 631, 392, 984, 694, 256, 721, 432, 103, 42, 695,
- 515, 356, 35, 357, 182, 178, 754, 640, 641, 822,
- 59, 400, 253, 537, 540, 174, 1101, 59, 298, 891,
- 36, 671, 221, 508, 398, 399, 891, 962, 981, 42,
- 72, 1416, 209, 35, 249, 692, 42, 177, 861, 914,
- 169, 763, 956, 1063, 1531, 1472, 570, 247, 408, 1068,
- 391, 224, 492, 495, 190, 397, 141, 146, 256, 296,
- 170, 72, 725, 349, 57, 349, 260, 349, 72, 710,
- 486, 1026, 527, 1028, 1532, 1021, 171, 609, 1541, 494,
- 1055, 609, 349, 349, 86, 58, 1527, 609, -302, 364,
- 1176, 467, -1, 963, 1203, 57, 992, 1182, 1556, 759,
- 820, 782, 176, 997, 644, 155, 196, 89, 645, 646,
- 297, 406, 349, -2, 349, -141, 58, 256, 785, 1431,
- 718, 55, -626, 58, 1204, 527, 1434, 90, 1568, 224,
- 518, 1559, 178, 87, -302, -302, 452, 468, 440, 88,
- 59, 1590, 174, 993, 59, 224, 994, 1183, 893, -295,
- 998, 209, 55, 999, 1582, 190, 1127, 1598, 928, 175,
- 700, 701, 72, 42, 177, 295, 1177, 169, -626, -626,
- 1613, 490, 221, 783, 1569, 419, 422, 719, 707, 807,
- 221, 221, 742, -626, 969, 158, 208, 170, 127, 128,
- 593, 72, 821, -356, 522, 72, 405, 453, -356, 1601,
- 190, 224, 453, 171, 93, 138, 94, 929, 1529, 224,
- 221, 38, 39, -144, -304, 1031, 619, 58, 1561, 470,
- 472, 155, 155, 155, 1472, 57, 224, 516, 1559, 176,
- 454, 260, 40, 593, 107, 454, 594, 615, 26, 108,
- 130, 131, 38, 39, 1134, 1602, 58, 1137, 1032, 1056,
- 58, -295, 1033, 404, 868, 95, 110, 111, 985, 221,
- -304, -304, 806, 40, 869, 403, 1594, 155, 614, 647,
- 679, 109, 247, 517, 715, -298, 606, 1250, 870, 594,
- 1207, -365, 55, 15, 135, 1034, 175, 163, 1163, 1164,
- 1535, 1149, 1212, 1269, 541, 542, 641, 1100, 1057, 137,
- 891, 158, 158, 158, 349, 208, 420, 423, 112, 113,
- 550, 674, 221, 551, -365, 941, 552, 296, -365, 562,
- 932, 492, 495, 567, 1330, 247, 1231, 164, 1233, 492,
- 694, 608, 1408, 349, 650, 697, 1003, 1392, 260, 1566,
- 967, 968, 1270, 495, 891, 8, 9, 158, 757, 8,
- 9, -365, -143, 161, 1392, 1623, 179, -366, 91, 15,
- -304, 515, 495, 1055, 137, 510, -142, 636, 297, 221,
- 459, 162, 91, 1331, 449, -304, 631, 691, 92, -304,
- 209, 183, 970, 971, 972, 72, 1393, 460, 1152, 1599,
- -366, 891, 92, 363, -366, -304, 682, 130, 131, 915,
- 1376, 130, 131, 1503, 1624, 178, 1198, -304, -304, 761,
- -304, 511, -304, 637, 15, 712, 461, 59, -415, 405,
- 1342, 1343, -120, 295, 15, 1129, 973, -366, 693, -118,
- 187, 15, -584, 26, 1363, 974, 975, 177, 775, 224,
- 58, -304, -304, 735, 803, 127, 128, -415, 240, 221,
- 221, -415, 241, 188, 760, -120, -304, 221, 308, -120,
- 127, 128, -118, 1266, 1267, 518, -118, 1102, 72, 864,
- 18, 221, 976, 349, 26, 566, 649, 244, -584, 189,
- 981, 59, 224, 690, 299, 129, 865, 89, 648, 796,
- 221, 563, -120, 564, 693, 26, -415, 130, 131, -118,
- 746, 747, 176, 138, 769, 619, 362, 90, 349, 942,
- 26, 349, 130, 131, 349, 866, 966, 1021, 349, 812,
- 812, 812, 812, 58, 1175, 943, 528, -584, 215, 216,
- 1468, 349, 72, 694, 14, 797, 529, 899, 606, 695,
- 360, 349, 550, 551, 349, 879, 155, 155, 155, 690,
- 679, 806, 1199, 891, 1201, 1076, 20, 938, 1205, 175,
- 1445, 91, 640, 641, 992, 23, 777, 222, 223, 1451,
- 1452, 937, 1453, -584, 482, 692, 138, 377, 864, 296,
- 917, 92, 891, 900, 901, 881, 935, 58, 527, 372,
- 378, 880, 492, 883, 1007, 865, 139, 90, 691, 7,
- 8, 250, 10, 376, 752, 735, 189, 95, 96, 97,
- 92, 993, 758, 221, 994, 570, -829, 260, 379, 949,
- 380, 954, 955, 776, 866, 1375, 158, 158, 158, 1035,
- 297, 882, 1169, 1255, 1171, 772, 794, 21, 137, 884,
- 1008, -295, 122, 91, 251, 1213, 885, 887, 1021, 693,
- 349, 381, 27, 28, 221, 1414, 693, 88, 26, 644,
- 98, 99, 100, 92, 209, 401, 955, 137, 247, 1446,
- 7, 127, 128, 10, -7, 1036, 252, 982, 1170, 1173,
- 1172, 88, 795, 1474, 32, 295, 1023, 1148, 425, 1577,
- 1615, 1239, 1241, 91, 153, 1073, 1074, 1075, 221, 1064,
- 1065, 775, 1066, 775, 690, 8, 520, 1041, 21, 775,
- 775, 690, 374, 92, 691, 251, 775, 433, 375, -621,
- 221, 1544, 1545, 27, 28, 1174, 116, 117, 118, 1475,
- 1029, 1030, 1024, 127, 128, 1578, 1616, 303, 518, 1058,
- 1336, 1337, 1338, 164, 59, 807, 59, 252, 432, 363,
- 215, 216, 209, 59, 447, 32, 14, 130, 131, 59,
- 451, 595, 691, 349, 349, 693, 349, 769, 691, 769,
- 366, 370, 127, 128, 1165, 221, 769, 26, 20, 119,
- 120, 521, 769, 26, 1241, 130, 131, 23, 448, 619,
- 127, 128, 463, 1326, 1328, 72, 464, 72, 1332, 868,
- 596, 597, 127, 128, 72, 598, 599, 600, 601, 869,
- 72, 421, 424, 693, 222, 446, 1226, 1227, 1228, 693,
- 690, 498, 26, 870, 130, 131, 503, 1251, 1252, 777,
- 1254, 777, 147, 523, 363, 806, 349, 563, 777, 564,
- 1373, 1104, 130, 131, 777, 1591, 363, 524, 392, 525,
- 58, 129, 58, 534, 130, 131, 153, 127, 128, 58,
- 526, 26, 1110, 543, 1411, 58, 521, 256, 690, 812,
- 480, 481, 127, 128, 690, 691, 89, 544, 252, 735,
- 95, 110, 111, 512, 1214, 566, 776, 545, 1027, 546,
- 550, 551, 547, 260, 89, 776, 90, 224, 772, 609,
- 772, 776, 1395, 488, 489, 1040, 1050, 772, 655, 130,
- 131, 659, 300, 772, 90, 10, 658, 691, 21, 812,
- 349, 675, 26, 691, 130, 131, 693, 15, 885, 887,
- 693, -415, 661, 112, 113, 1437, 682, 662, 528, 1478,
- 18, -52, 411, 91, 663, 15, -52, 413, 529, -415,
- 21, 1396, 1012, 676, 807, 1495, 498, -52, 1041, -415,
- -415, 90, 256, 92, -415, 426, 427, 92, 693, 704,
- 735, -6, 1153, 1154, 693, 1060, 1466, -415, -415, 428,
- 253, 690, 708, 812, 748, 690, 89, 420, 423, 429,
- 559, 730, 557, 775, 1447, 147, 753, 32, 1216, 691,
- 480, 713, 430, 15, 1218, 1219, 90, 788, 1216, 1221,
- 1380, 691, 1219, 8, 9, 798, 420, 423, 127, 128,
- 155, 693, -183, 690, 1258, 300, 394, 395, 10, 690,
- 591, 592, 382, 383, 384, 789, 59, 137, -183, 790,
- -183, 488, 714, 791, 1478, 691, 799, 691, 1390, 1391,
- 693, 588, 589, 590, 591, 592, 816, 363, 818, 769,
- 519, 619, 693, 21, 1478, 130, 131, 155, 26, 719,
- 130, 131, 819, 256, 821, 812, 690, 385, 27, 319,
- 7, 8, 9, 10, 620, 386, 387, 72, 349, 252,
- 421, 705, 876, 1574, 621, 878, 693, 892, 693, 1256,
- 158, 480, 1497, 894, 622, 690, 896, 623, 624, 694,
- 32, 488, 1498, 480, 1502, 1552, 921, 690, 21, 1424,
- 920, 777, 931, 1478, 1422, 251, 1427, 930, 729, 982,
- 934, 721, 691, 27, 28, 936, 421, 424, 214, 215,
- 216, 101, 58, 20, 944, 14, 945, 158, 958, 115,
- 965, 690, 522, 690, 1313, -298, 1040, 252, 964, 453,
- -828, 735, 18, 807, 1305, 32, 989, 20, 990, 991,
- 996, 1077, 550, 551, 1005, 349, 23, 1304, 776, 1009,
- 1010, 1272, 1273, 693, 1013, 1059, 1078, 116, 117, 118,
- 772, 698, 233, 8, 9, 1082, 1079, 559, -140, 557,
- 559, 1080, 557, 1081, 1083, 72, 809, 1084, 1085, 1086,
- 1272, 1273, 693, 1087, 1617, 1089, 421, 817, 1090, 557,
- 702, 1209, 1210, 703, 95, 414, 415, 155, 155, 155,
- 559, 1093, 557, 1092, 1094, 706, 836, 363, 690, 1312,
- 119, 120, 1421, 1095, 1421, 130, 131, 95, 96, 97,
- 1223, 388, 1096, 1111, 1109, 1112, 155, 155, 155, 1113,
- 58, 1114, 1120, 1121, 859, 1140, 1130, 690, 1122, 521,
- 875, 411, 1128, 413, 1131, 416, 221, 98, 113, 1313,
- 1133, 127, 1360, 1143, 1147, 1146, 519, 209, 1168, 1313,
- 1191, 907, 562, 688, 1197, 1200, 1313, 1202, 527, 1305,
- 98, 99, 1304, 1225, 1217, 812, 1305, 158, 158, 158,
- 1222, 1229, 1304, 1234, 1449, 1450, 1235, 140, 140, 1304,
- 156, 1236, 1540, 1245, 1237, 363, 95, 110, 111, 1253,
- 72, 420, 423, 130, 131, 1246, 158, 158, 158, 1257,
- 72, 1242, 1244, 1249, 212, 1259, 220, 72, 1260, 1261,
- 1264, 1176, 237, 460, 1265, 1268, 1571, 521, -663, 688,
- 1271, 95, 110, 111, 1312, 499, 501, 300, 394, 395,
- 10, 95, 96, 97, 1312, 225, 226, 227, 513, 112,
- 113, 1312, 1276, 490, 1325, 58, 95, 110, 111, 1341,
- 664, 665, 666, 1345, 1367, 58, 1368, 1374, 1379, 18,
- 1384, 1378, 58, 1385, 228, 21, 1386, 1348, 1349, 1387,
- 1358, 1359, 251, 1361, 112, 113, 114, 1394, 1403, 1404,
- 27, 319, 26, 1405, 98, 99, 229, 1417, 140, 1419,
- 1432, 1486, 1435, 140, 1438, 1439, 156, 156, 156, 112,
- 113, 1462, 1463, 471, 473, 477, 1464, 1465, 549, 1470,
- 1522, 1488, 32, 1481, 1555, 1313, 1313, 1522, 1482, 1489,
- 1313, 375, 1526, 212, 1517, 1305, 1496, 907, 1518, 450,
- 1305, 230, 231, 232, 1537, 1536, 349, 1546, 1304, 1304,
- 140, 140, 156, 1304, 1548, 221, 1554, 550, 551, 1563,
- 657, 1585, 1564, 691, 1572, 1589, 220, 1573, 155, 667,
- 1313, 297, 1596, 1597, 493, 220, 72, 72, 297, 1313,
- 1305, 72, 657, 1575, 688, 1600, 1603, 1605, 1606, 1305,
- 1610, 688, 1619, 1304, 1614, 746, 747, 116, 971, 972,
- 1621, 1618, 1304, 1107, 1626, 1627, 1629, 1522, 1443, 1444,
- 1312, 1312, 1630, 1, 693, 1312, 140, 702, 703, 442,
- 706, 72, 5, 160, 933, 1493, 295, 1150, 711, 1313,
- 72, 58, 58, 295, 421, 817, 58, 557, 441, 1305,
- 1570, 155, 155, 155, 95, 96, 97, 439, 158, 1051,
- 119, 120, 1304, 1277, 359, 1312, 500, 409, 297, 1477,
- 1625, 1377, 533, 1142, 1312, 988, 1141, 1313, 1440, 690,
- 505, 300, 8, 9, 10, 1339, 58, 1305, 1053, 153,
- 72, 1061, 923, 1362, 1139, 58, 156, 483, 616, 363,
- 1304, 339, 863, 339, 390, 339, 1430, 98, 99, 762,
- 688, 1322, 1592, 1604, 1567, 1611, 116, 971, 972, 21,
- 1509, 1510, 1511, 295, 1312, 1436, 251, 1609, 72, 1190,
- 0, 158, 158, 158, 27, 319, 1188, 610, 0, 300,
- 394, 395, 10, 1015, 611, 58, 0, 0, 0, 0,
- 339, 0, 339, 0, 95, 110, 111, 0, 688, 382,
- 383, 384, 1312, 0, 688, 0, 32, 26, 0, 119,
- 120, 0, 212, 220, 0, 829, 0, 21, 0, 1542,
- 1543, 0, 0, 58, 612, 0, 140, 0, 0, 140,
- 26, 0, 27, 319, 0, 156, 156, 156, 0, 0,
- 744, 140, 745, 0, 471, 473, 477, 112, 1490, 0,
- 26, 0, 386, 387, 0, 756, 0, -580, 0, 877,
- -580, 0, 0, 0, 613, 95, 110, 111, 147, 0,
- 586, 587, 588, 589, 590, 591, 592, 140, 0, 140,
- 0, 156, 156, 156, 0, 0, 450, 1593, 0, 0,
- 0, 0, 140, 493, 220, 896, 0, 450, 0, 0,
- 0, 493, 0, 0, 0, 0, 0, -580, 0, -580,
- -580, 688, -580, 0, 0, 688, 450, 0, 112, 1492,
- 0, 0, 0, -580, 0, -580, 0, 258, 940, 0,
- 0, 0, 0, 0, 0, 0, 0, 421, 424, 957,
- 0, -580, -580, 156, 0, 0, 156, 300, 8, 9,
- 10, 258, 0, 688, 0, 0, -580, 0, 0, 688,
- 0, 156, 156, 156, 0, 0, 421, 1324, 0, 557,
- 829, 0, 0, 548, 0, 0, 156, 0, 0, 0,
- 258, 0, 0, 1334, 0, 21, 0, 0, 0, 0,
- 0, 258, 251, 0, 0, 638, 8, 9, 10, 0,
- 27, 319, 0, 0, 0, 0, 688, 0, 0, 0,
- 0, 339, 0, 0, 0, 0, 0, 1369, 1370, 1371,
- 1372, 0, 0, 0, 252, 0, 0, 214, 215, 216,
- 308, 639, 32, 21, 14, 688, 0, 908, 7, 127,
- 128, 10, 0, 0, 13, 0, 26, 688, 130, 131,
- 258, 18, 0, 0, 0, 0, 20, 220, 127, 128,
- 0, 0, 0, 13, 0, 23, 18, 0, 0, 0,
- 727, 0, 0, 0, 411, 413, 21, 733, 0, 726,
- 1407, 688, 519, 688, 0, 258, 726, 0, 0, 26,
- 0, 27, 28, 0, 0, 0, 212, 0, 220, 237,
- 0, 619, 0, 0, 0, 30, 0, 0, 26, 258,
- 130, 131, 0, 724, 728, 31, 744, 745, 0, 756,
- 0, 728, 0, 32, 620, 0, 0, 0, 33, 0,
- 0, 491, 215, 216, 621, 0, 0, 0, 14, 0,
- 0, 0, 220, 804, 622, 0, 1046, 623, 624, 0,
- 0, 339, 726, 140, 140, 18, 140, 0, 1467, 0,
- 20, 0, 0, 0, 493, 0, 0, 450, 688, 23,
- 0, 0, 0, 0, 0, 667, 0, 0, 0, 0,
- 0, 0, 0, 0, 212, 0, 339, 728, 940, 0,
- 450, 1487, 0, 702, 703, 0, 706, 688, 0, 0,
- 0, 258, 0, 857, 0, 0, 0, 1188, 0, 858,
- 0, 0, 726, 156, 0, 0, 0, 0, 726, 339,
- 0, 724, 0, 0, 833, 834, 0, 838, 839, 840,
- 841, 842, 843, 844, 845, 846, 847, 848, 849, 850,
- 851, 852, 853, 854, 855, 856, 912, 728, 726, 300,
- 8, 9, 10, 728, 0, 726, 0, 0, 1520, 258,
- 0, 0, 0, 0, 836, 1520, 0, 0, 0, 0,
- 1011, 584, 585, 586, 587, 588, 589, 590, 591, 592,
- 0, 421, 1324, 728, 557, 0, 0, 21, 0, 0,
- 728, 0, 0, 0, 251, 0, 0, 0, 0, 0,
- 0, 1062, 27, 319, 0, 0, 0, 1067, 0, 156,
- 156, 908, 925, 927, 0, 0, 471, 473, 477, 127,
- 128, 0, 0, 215, 216, 0, 521, 0, 339, 14,
- 0, 0, 0, 0, 32, 0, 0, 1240, 0, 0,
- 300, 394, 395, 10, 0, 1520, 0, 0, 237, 258,
- 0, 20, 0, 140, 140, 908, 0, 0, 0, 0,
- 23, 1595, 619, 0, 0, 477, 0, 0, 0, 26,
- 0, 130, 131, 0, 0, 0, 724, 258, 21, 0,
- 0, 0, 0, 1608, 0, 620, 0, 0, 0, 0,
- 836, 26, 0, 27, 319, 621, 0, 1046, 0, 116,
- 971, 972, 908, 1014, 0, 622, 0, 0, 630, 624,
- 1123, 0, 1124, 0, 0, 0, 0, 0, 0, 0,
- 0, 1025, 0, 1282, 726, 32, 1015, 0, 0, 1240,
- 628, 632, 635, 1016, 0, 0, 450, 450, 0, 0,
- 0, 339, 339, 0, 339, 0, 0, 0, 0, 0,
- 26, 0, 119, 120, 0, 0, 0, 0, 0, 728,
- 0, 0, 0, 0, 258, 450, 0, 0, 0, 1097,
- 1098, 0, 0, 0, 0, 1103, 0, 0, 726, 726,
- 258, 1088, 0, 0, 726, 0, 0, 0, 0, 1115,
- 0, 1116, 0, 1117, 0, 0, 0, 0, 726, 0,
- 726, 0, 726, 0, 300, 127, 128, 10, 0, 0,
- 0, 0, 0, 728, 728, 0, 0, 0, 724, 728,
- 0, 0, 0, 744, 745, 471, 473, 477, 0, 688,
- 0, 756, 0, 728, 0, 728, 0, 728, 0, 1145,
- 0, 0, 21, 0, 0, 1409, 1410, 0, 726, 251,
- 1037, 1038, 9, 10, 471, 473, 477, 27, 319, 0,
- 140, 140, 156, 156, 908, 0, 0, 0, 140, 0,
- 0, 0, 0, 1138, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 728, 1230, 1166, 1232, 1356, 21, 32,
- 0, 156, 156, 908, 726, 0, 0, 0, 339, 0,
- 0, 26, 0, 27, 28, 0, 0, 1208, 0, 1039,
- 0, 1162, 0, 726, 0, 0, 0, 193, 0, 0,
- 0, 0, 450, 450, 0, 450, 450, 194, 450, 728,
- 0, 0, 0, 0, 0, 32, 0, 1473, 0, 0,
- 195, 1263, 744, 745, 0, 756, 8, 9, 728, 0,
- 12, 13, 0, 0, 0, 0, 14, 80, 0, 1491,
- 1494, 0, 7, 127, 128, 10, 0, 104, 246, 0,
- 16, 0, 17, 0, 0, 0, 0, 133, 20, 140,
- 140, 0, 140, 144, 144, 0, 144, 23, 80, 0,
- 18, 0, 1215, 0, 0, 80, 26, 0, 130, 131,
- 21, 0, 886, 888, 0, 0, 0, 0, 203, 0,
- 80, 0, 0, 26, 0, 27, 28, 0, 238, 212,
- 220, 1340, 0, 0, 0, 104, 1344, 0, 0, 30,
- 0, 0, 0, 0, 0, 862, 262, 104, 0, 31,
- 1538, 0, 724, 724, 0, 0, 1243, 32, 0, 0,
- 0, 0, 33, 450, 450, 0, 258, 0, 258, 104,
- 0, 0, 0, 0, 0, 0, 339, 625, 625, 625,
- 951, 0, 628, 632, 0, 635, 0, 1381, 0, 1278,
- 0, 1279, 0, 1280, 0, 0, 0, 133, 726, 80,
- 726, 0, 726, 144, 144, 0, 477, 0, 412, 144,
- 258, 0, 144, 144, 144, 0, 0, 0, 0, 0,
- 8, 9, 0, 0, 12, 246, 0, 632, 80, 0,
- 14, 0, 80, 728, 0, 728, 0, 728, 203, 80,
- 214, 215, 216, 156, 16, 724, 17, 14, 0, 0,
- 0, 0, 20, 0, 724, 724, 203, 203, 203, 724,
- 0, 23, 0, 619, 18, 450, 450, 450, 0, 20,
- 26, 0, 130, 131, 0, 0, 1346, 1347, 23, 471,
- 473, 477, 0, 0, 0, 203, 620, 0, 1383, 0,
- 1458, 1459, 0, 918, 0, 0, 621, 726, 0, 0,
- 0, 724, 502, 0, 632, 258, 622, 1469, 0, 623,
- 624, 104, 0, 0, 0, 0, 156, 156, 156, 0,
- 0, 0, 144, 0, 450, 450, 0, 0, 0, 95,
- 110, 111, 728, 225, 226, 227, 579, 580, 581, 582,
- 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
- 7, 127, 128, 10, 0, 0, 1402, 18, 0, 0,
- 104, 530, 228, 0, 0, 0, 1505, 1506, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1118, 18, 1119,
- 0, 0, 112, 113, 0, 1515, 1516, 0, 21, 258,
- 1125, 0, 450, 0, 886, 888, 724, 0, 0, 0,
- 0, 26, 0, 27, 28, 104, 0, 0, 0, 617,
- 0, 530, 530, 633, 0, 1448, 258, 149, 0, 8,
- 9, 0, 80, 12, 13, 0, 0, 150, 0, 14,
- 0, 0, 0, 0, 0, 32, 0, 724, 886, 888,
- 151, 0, 0, 16, 0, 17, 0, 0, 0, 625,
- 625, 20, 625, 0, 726, 0, 133, 0, 0, 906,
- 23, 0, 0, 0, 0, 104, 0, 203, 104, 26,
- 0, 130, 131, 602, 8, 9, 0, 258, 12, 246,
- 0, 0, 144, 0, 14, 144, 0, 0, 0, 728,
- 0, 0, 0, 0, 0, 0, 0, 144, 16, 0,
- 17, 0, 0, 0, 0, 80, 20, 0, 603, 1507,
- 1508, 0, 0, 0, 0, 23, 0, 625, 1513, 625,
- 625, 0, 625, 0, 26, 0, 130, 131, 0, 0,
- 0, 0, 0, 203, 0, 203, 0, 203, 203, 203,
- 0, 0, 0, 203, 0, 0, 1533, 0, 203, 0,
- 0, 203, 300, 8, 9, 10, 0, 12, 301, 302,
- 303, 0, 304, 14, 625, 0, 0, 0, 0, 80,
- 0, 0, 0, 0, 0, 0, 0, 16, 305, 17,
- 18, 19, 0, 306, 307, 20, 0, 308, 309, 310,
- 21, 311, 312, 0, 23, 0, 619, 0, 313, 314,
- 315, 316, 317, 26, 0, 27, 319, 104, 104, 104,
- 104, 7, 8, 9, 10, 0, 321, 0, 0, 902,
- 0, 0, 0, 0, 0, 0, 0, 323, 324, 903,
- 0, 0, 0, 0, 0, 326, 327, 328, 0, 622,
- 0, 625, 904, 624, 0, 1118, 1119, 886, 888, 21,
- 0, 0, 0, 1125, 0, 619, 0, 0, 0, 330,
- 0, 0, 26, 0, 27, 28, 0, 104, 0, 530,
- 0, 0, 0, 0, 0, 724, 886, 888, 946, 0,
- 0, 617, 0, 530, 530, 0, 633, 0, 947, 0,
- 0, 0, 0, 909, 0, 0, 32, 911, 622, 0,
- 0, 948, 624, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 203, 0, 625, 0, 625, 0, 8, 9,
- 0, 167, 12, 13, 0, 0, 732, 625, 14, 0,
- 0, 906, 906, 906, 0, 0, 133, 0, 0, 0,
- 0, 0, 16, 133, 17, 18, 0, 0, 0, 0,
- 20, 203, 953, 203, 203, 238, 633, 0, 0, 23,
- 0, 619, 0, 0, 1118, 1119, 0, 1125, 26, 0,
- 130, 131, 0, 0, 0, 625, 625, 625, 0, 0,
- 0, 0, 0, 0, 620, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 621, 0, 0, 0, 203, 0,
- 0, 0, 953, 0, 622, 0, 0, 623, 624, 203,
- 203, 0, 203, 0, 0, 7, 8, 9, 10, 214,
- 215, 216, 0, 0, 906, 0, 14, 0, 0, 133,
- 0, 0, 80, 0, 80, 0, 0, 0, 0, 1048,
- 80, 80, 0, 18, 127, 128, 0, 80, 20, 246,
- 104, 0, 0, 21, 0, 0, 104, 23, 0, 619,
- 0, 0, 0, 530, 530, 530, 26, 0, 27, 28,
- 0, 0, 0, 0, 0, 530, 0, 0, 0, 0,
- 0, 0, 946, 0, 0, 0, 0, 619, 83, 0,
- 0, 0, 947, 0, 26, 0, 130, 131, 106, 0,
- 32, 0, 622, 0, 0, 948, 624, 126, 134, 0,
- 620, 0, 0, 0, 145, 145, 0, 145, 0, 83,
- 621, 0, 0, 0, 0, 0, 83, 0, 0, 0,
- 622, 0, 0, 623, 624, 0, 0, 0, 0, 145,
- 0, 83, 0, 0, 0, 0, 0, 0, 530, 239,
- 530, 0, 0, 0, 0, 0, 248, 104, 0, 0,
- 0, 530, 0, 104, 0, 909, 909, 909, 248, 0,
- 0, 0, 0, 1132, 0, 0, 0, 0, 7, 127,
- 128, 10, 625, 625, 625, 625, 625, 0, 0, 0,
- 625, 580, 581, 582, 583, 584, 585, 586, 587, 588,
- 589, 590, 591, 592, 0, 104, 18, 104, 0, 203,
- 203, 1159, 0, 906, 906, 906, 21, 0, 0, 0,
- 83, 0, 0, 0, 145, 145, 0, 0, 0, 26,
- 145, 27, 28, 145, 145, 145, 0, 0, 7, 8,
- 9, 10, 0, 0, 13, 30, 0, 0, 0, 83,
- 0, 0, 0, 83, 0, 31, 0, 0, 1159, 145,
- 83, 0, 0, 32, 0, 0, 18, 0, 33, 0,
- 0, 104, 0, 0, 0, 0, 21, 145, 145, 145,
- 0, 0, 619, 0, 0, 0, 0, 104, 0, 26,
- 1048, 27, 28, 0, 0, 0, 0, 0, 0, 104,
- 0, 625, 625, 0, 625, 946, 145, 0, 0, 0,
- 0, 0, 1220, 0, 0, 947, 0, 0, 0, 0,
- 0, 0, 51, 32, 80, 622, 0, 0, 948, 624,
- 0, 0, 0, 104, 0, 104, 0, 0, 7, 127,
- 128, 10, 0, 145, 13, 0, 0, 0, 51, 51,
- 0, 152, 0, 51, 8, 9, 0, 0, 12, 13,
- 51, 0, 0, 104, 14, 0, 18, 0, 530, 530,
- 0, 530, 0, 51, 0, 51, 21, 0, 16, 0,
- 17, 248, 145, 0, 0, 0, 20, 0, 0, 26,
- 0, 27, 28, 0, 0, 23, 0, 0, 254, 0,
- 0, 0, 0, 0, 26, 149, 130, 131, 0, 0,
- 0, 0, 0, 0, 0, 150, 203, 203, 203, 203,
- 1159, 0, 0, 32, 203, 0, 248, 0, 151, 0,
- 618, 0, 145, 145, 634, 0, 0, 0, 0, 643,
- 0, 0, 0, 83, 0, 0, 0, 1159, 1159, 1159,
- 0, 396, 396, 0, 51, 0, 0, 0, 51, 51,
- 0, 0, 254, 0, 51, 0, 0, 152, 152, 152,
- 0, 0, 0, 0, 431, 0, 0, 680, 0, 0,
- 203, 0, 0, 51, 0, 144, 248, 51, 145, 248,
- 0, 0, 0, 51, 51, 0, 0, 0, 0, 0,
- 0, 0, 0, 145, 0, 0, 145, 0, 0, 0,
- 0, 51, 51, 152, 0, 0, 0, 0, 145, 0,
- 0, 254, 0, 0, 0, 0, 83, 0, 0, 0,
- 0, 0, 0, 0, 0, 203, 203, 0, 203, 0,
- 51, 581, 582, 583, 584, 585, 586, 587, 588, 589,
- 590, 591, 592, 0, 145, 0, 145, 0, 145, 145,
- 145, 0, 0, 0, 145, 0, 0, 0, 0, 145,
- 0, 0, 145, 0, 203, 953, 203, 51, 0, 764,
- 0, 7, 8, 765, 10, 167, 12, 13, 0, 0,
- 83, 0, 14, 104, 0, 0, 0, 0, 0, 0,
- 0, 1037, 1038, 9, 10, 0, 16, 0, 17, 18,
- 19, 0, 0, 0, 20, -526, 0, 0, 0, 21,
- 0, 0, 0, 23, 766, 0, 168, 0, 248, 248,
- 248, 248, 26, 0, 27, 28, 0, 0, 767, 21,
- 768, 7, 8, 9, 10, 0, 0, 558, 30, 0,
- 0, 0, 26, 0, 27, 28, 0, 0, 31, 0,
- 1039, 0, 0, 0, 396, 0, 32, 0, 193, 0,
- 0, 33, 254, 0, 0, 0, 0, 51, 194, 21,
- 0, 0, 0, 0, 0, 0, 32, -526, 248, 1159,
- 145, 195, 26, 0, 27, 28, 0, 0, 192, 0,
- 0, 0, 0, 0, 145, 145, 0, 634, 193, 0,
- 0, 396, 0, 0, 910, 0, 0, 0, 194, 0,
- 0, 0, 51, 0, 0, 0, 32, 643, 0, 0,
- 0, 195, 0, 145, 0, 0, 0, 51, 0, 0,
- 51, 0, 0, 0, 0, 0, 431, 431, 431, 0,
- 0, 0, 51, 0, 0, 0, 0, 680, 76, 0,
- 51, 0, 1159, 1159, 1159, 126, 0, 0, 0, 0,
- 0, 0, 145, 634, 145, 145, 239, 634, 0, 0,
- 0, 104, 0, 0, 0, 0, 203, 0, 51, 76,
- 51, 0, 152, 152, 152, 0, 76, 0, 51, 0,
- 983, 0, 0, 51, 0, 0, 51, 0, 0, 201,
- 0, 213, 0, 0, 0, 0, 0, 0, 0, 145,
- 0, 0, 0, 634, 51, 0, 0, 0, 0, 0,
- 145, 145, 0, 145, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 983, 0, 0,
- 134, 0, 0, 83, 558, 83, 0, 558, 0, 0,
- 1049, 83, 83, 0, 7, 8, 9, 10, 83, 0,
- 246, 248, 558, 558, 558, 0, 0, 248, 0, 0,
- 0, 0, 0, 0, 145, 145, 145, 558, 0, 0,
- 407, 0, 18, 0, 410, 0, 145, 0, 0, 0,
- 0, 0, 21, 0, 0, 0, 0, 0, 619, 0,
- 0, 0, 0, 0, 0, 26, 0, 27, 28, 76,
- 0, 0, 0, 76, 0, 0, 0, 127, 128, 201,
- 213, 946, 518, 0, 0, 254, 0, 0, 0, 0,
- 0, 947, 0, 0, 0, 0, 0, 0, 558, 32,
- 0, 622, 0, 0, 948, 624, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 51, 0, 145,
- 619, 145, 0, 0, 0, 0, 201, 26, 248, 130,
- 131, 0, 145, 0, 248, 0, 910, 910, 910, 0,
- 0, 396, 0, 620, 643, 127, 128, 0, 396, 215,
- 216, 0, 0, 621, 0, 14, 51, 51, 51, 51,
- 0, 0, 0, 622, 0, 0, 623, 624, 0, 0,
- 259, 0, 0, 0, 0, 0, 248, 20, 248, 0,
- 145, 145, 634, 0, 0, 0, 23, 0, 619, 0,
- 0, 0, 0, 0, 0, 26, 0, 130, 131, 0,
- 0, 0, 0, 51, 0, 0, 0, 51, 0, 0,
- 0, 620, 0, 0, 51, 51, 0, 51, 0, 0,
- 0, 621, 7, 8, 9, 10, 214, 215, 216, 910,
- 0, 622, 0, 14, 623, 624, 0, 51, 0, 51,
- 0, 0, 248, 0, 51, 51, 51, 434, 0, 0,
- 18, 0, 51, 0, 0, 20, 0, 0, 248, 0,
- 21, 1049, 0, 651, 23, 0, 619, 0, 0, 0,
- 248, 0, 0, 26, 558, 27, 28, 0, 0, 469,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 946,
- 0, 0, 485, 0, 0, 83, 0, 0, 0, 947,
- 0, 0, 0, 0, 248, 0, 248, 32, 201, 622,
- 0, 0, 995, 624, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 8, 9,
- 10, 167, 12, 13, 248, 0, 1000, 0, 14, 145,
- 145, 0, 145, 0, 0, 0, 76, 0, 0, 0,
- 0, 0, 16, 0, 17, 18, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 21, 0, 0, 0, 23,
- 558, 558, 558, 0, 0, 0, 431, 254, 26, 0,
- 27, 28, 0, 0, 201, 0, 0, 145, 145, 145,
- 145, 634, 201, 0, 30, 145, 78, 0, 0, 0,
- 0, 0, 983, 0, 31, 0, 0, 0, 0, 0,
- 781, 0, 32, 0, 51, 51, 152, 33, 910, 910,
- 910, 254, 78, 78, 0, 78, 0, 78, 0, 0,
- 0, 0, 0, 0, 78, 0, 0, 0, 0, 983,
- 8, 9, 0, 167, 12, 13, 0, 78, 0, 78,
- 14, 145, 0, 0, 0, 0, 145, 0, 0, 7,
- 8, 9, 10, 1187, 16, 13, 17, 18, 0, 0,
- 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
- 0, 681, 0, 0, 168, 0, 0, 18, 0, 0,
- 26, 0, 130, 131, 0, 51, 0, 21, 0, 0,
- 0, 0, 0, 0, 0, 0, 145, 145, 0, 145,
- 26, 0, 27, 28, 0, 0, 254, 0, 0, 0,
- 0, 0, 7, 8, 9, 10, 193, 0, 78, 51,
- 0, 0, 78, 78, 1413, 0, 194, 0, 78, 0,
- 0, 78, 78, 78, 32, 145, 634, 145, 0, 195,
- 18, 0, 0, 201, 0, 0, 0, 78, 0, 0,
- 21, 78, 0, 0, 248, 0, 749, 78, 78, 0,
- 983, 755, 0, 26, 0, 27, 28, 0, 0, 0,
- 7, 8, 9, 10, 0, 78, 78, 78, 0, 474,
- 0, 0, 201, 952, 201, 201, 0, 0, 786, 475,
- 254, 0, 0, 0, 792, 0, 159, 32, 0, 0,
- 0, 0, 476, 0, 78, 0, 800, 801, 21, 802,
- 0, 51, 51, 152, 152, 152, 0, 254, 204, 51,
- 0, 26, 0, 27, 28, 0, 0, 1420, 0, 201,
- 0, 0, 0, 1001, 0, 8, 9, 193, 205, 12,
- 206, 78, 1187, 1187, 1187, 14, 0, 194, 0, 0,
- 910, 0, 0, 0, 0, 32, 0, 0, 0, 16,
- 195, 17, 18, 781, 0, 781, 0, 20, 0, 0,
- 1047, 1054, 781, 0, 0, 51, 23, 0, 781, 0,
- 51, 0, 0, 0, 0, 26, 0, 130, 131, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 8, 9,
- 10, 0, 0, 0, 897, 898, 0, 0, 0, 897,
- 0, 0, 159, 159, 159, 0, 0, 0, 0, 0,
- 0, 0, 0, 910, 910, 910, 0, 0, 0, 0,
- 51, 51, 0, 51, 0, 21, 0, 642, 204, 0,
- 0, 78, 248, 0, 0, 0, 0, 145, 26, 0,
- 27, 28, 0, 0, 0, 0, 204, 204, 478, 0,
- 0, 0, 0, 0, 193, 0, 0, 0, 0, 51,
- 51, 51, 0, 0, 194, 0, 0, 0, 0, 0,
- 0, 0, 32, 0, 0, 204, 78, 195, 0, 0,
- 0, 0, 0, 0, 202, 0, 1350, 1351, 9, 10,
- 0, 78, 0, 0, 78, 0, 0, 0, 0, 0,
- 369, 371, 0, 0, 0, 0, 78, 0, 0, 257,
- 0, 0, 261, 0, 78, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 21, 0, 0, 0, 7, 8,
- 9, 10, 0, 257, 13, 365, 0, 26, 0, 27,
- 28, 0, 78, 0, 78, 1352, 78, 78, 78, 0,
- 0, 531, 78, 193, 0, 0, 18, 78, 0, 0,
- 78, 0, 1069, 194, 1071, 0, 21, 0, 0, 0,
- 0, 32, 619, 0, 1187, 0, 195, 0, 78, 26,
- 0, 27, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1155, 0, 0, 0, 0,
- 0, 627, 627, 627, 202, 1156, 0, 0, 0, 0,
- 0, 1047, 0, 32, 0, 622, 0, 0, 1157, 624,
- 0, 0, 202, 202, 202, 0, 0, 0, 0, 0,
- 0, 0, 484, 0, 0, 0, 1105, 1106, 0, 1108,
- 0, 0, 0, 0, 0, 781, 0, 1187, 1187, 1187,
- 0, 202, 0, 0, 0, 0, 0, 204, 0, 7,
- 8, 9, 10, 167, 12, 13, 0, 1126, 0, 0,
- 14, 51, 0, 0, 0, 0, 0, 261, 0, 0,
- 0, 0, 0, 0, 16, 0, 17, 18, 19, 0,
- 642, 257, 20, 0, 0, 0, 0, 21, 0, 0,
- 0, 23, 0, 0, 168, 0, 0, 0, 0, 0,
- 26, 0, 27, 28, 0, 0, 0, 0, 1161, 0,
- 0, 78, 561, 204, 0, 204, 30, 478, 478, 478,
- 0, 0, 0, 204, 0, 0, 31, 0, 204, 0,
- 0, 204, 0, 0, 32, 0, 0, 8, 9, 33,
- 167, 12, 13, 0, 34, 732, 0, 14, 0, 0,
- 78, 78, 78, 78, 0, 0, 0, 0, 0, 0,
- 0, 16, 0, 17, 18, 1350, 127, 128, 10, 20,
- 0, 0, 0, 257, 261, 0, 0, 0, 23, 0,
- 0, 1206, 0, 0, 0, 687, 0, 26, 0, 130,
- 131, 1357, 0, 1211, 0, 0, 1357, 78, 0, 0,
- 0, 78, 0, 21, 0, 0, 0, 0, 78, 78,
- 0, 78, 0, 0, 0, 0, 26, 0, 27, 28,
- 0, 0, 0, 202, 1352, 0, 0, 0, 0, 0,
- 0, 78, 30, 78, 0, 0, 0, 0, 78, 78,
- 78, 0, 31, 0, 0, 0, 78, 0, 0, 871,
- 32, 734, 0, 0, 0, 33, 0, 0, 0, 0,
- 0, 0, 0, 627, 627, 0, 627, 0, 0, 0,
- 0, 0, 0, 627, 0, 0, 0, 0, 0, 1262,
- 0, 0, 0, 0, 0, 201, 1425, 201, 0, 202,
- 0, 202, 204, 202, 202, 202, 0, 0, 0, 202,
- 0, 0, 0, 0, 202, 0, 0, 202, 0, 7,
- 8, 9, 10, 0, 0, 518, 0, 0, 1275, 805,
- 0, 0, 808, 0, 0, 0, 810, 811, 813, 814,
- 815, 950, 0, 950, 950, 0, 627, 18, 0, 561,
- 0, 0, 0, 0, 0, 0, 0, 21, 0, 0,
- 0, 0, 832, 619, 0, 0, 0, 0, 0, 0,
- 26, 0, 27, 28, 0, 0, 0, 0, 0, 0,
- 0, 0, 642, 0, 0, 0, 946, 0, 950, 0,
- 0, 0, 0, 1365, 0, 0, 947, 1366, 0, 204,
- 204, 0, 204, 0, 32, 0, 622, 0, 0, 948,
- 624, 0, 0, 0, 0, 0, 889, 0, 78, 78,
- 78, 0, 0, 889, 0, 0, 0, 0, 0, 204,
- 0, 0, 1382, 0, 0, 0, 0, 0, 0, 764,
- 0, 7, 8, 765, 10, 167, 12, 13, 0, 0,
- 0, 0, 14, 531, 531, 531, 0, 0, 0, 0,
- 0, 0, 257, 261, 0, 627, 16, 1189, 17, 18,
- 19, 0, 0, 0, 20, -527, 0, 0, 202, 21,
- 0, 0, 0, 23, 766, 0, 168, 0, 0, 0,
- 0, 0, 26, 0, 27, 28, 0, 0, 767, 78,
- 768, 0, 0, 0, 0, 0, 0, 201, 30, 1441,
- 0, 0, 0, 1442, 0, 0, 0, 202, 31, 202,
- 202, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 687, 78, 0, 1460, 1461, 0, 627, 0,
- 627, 0, 0, 0, 0, 0, 0, -527, 0, 0,
- 0, 627, 0, 0, 0, 627, 627, 627, 0, 0,
- 0, 0, 0, 0, 202, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 202, 202, 0, 202, 0,
- 734, 0, 0, 0, 0, 0, 734, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 950,
- 950, 1160, 0, 0, 0, 202, 0, 0, 0, 0,
- 0, 7, 8, 9, 10, 167, 12, 13, 0, 0,
- 732, 0, 14, 0, 0, 78, 78, 78, 78, 78,
- 0, 0, 0, 78, 0, 0, 16, 0, 17, 18,
- 0, 0, 0, 0, 20, 0, 0, 0, 1160, 21,
- 0, 0, 0, 23, 1099, 619, 1189, 1189, 1189, 1483,
- 0, 0, 26, 0, 27, 28, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1155, 0,
- 204, 0, 0, 0, 0, 0, 0, 832, 1156, 78,
- 0, 0, 0, 734, 78, 0, 32, 889, 622, 0,
- 0, 1157, 624, 0, 0, 0, 0, 0, 0, 1484,
- 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
- 581, 582, 583, 584, 585, 586, 587, 588, 589, 590,
- 591, 592, 0, 0, 0, 687, 0, 1151, 257, 261,
- 257, 889, 0, 0, 78, 78, 0, 78, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 871, 871,
- 0, 871, 0, 0, 0, 7, 127, 128, 10, 0,
- 0, 518, 0, 0, 0, 202, 202, 1158, 0, 0,
- 102, 0, 257, 78, 78, 78, 0, 0, 889, 121,
- 102, 0, 0, 18, 0, 0, 102, 102, 0, 102,
- 0, 1193, 0, 21, 0, 0, 950, 950, 1160, 1160,
- 1160, 0, 261, 0, 950, 0, 26, 734, 27, 28,
- 0, 0, 0, 0, 1158, 0, 0, 0, 0, 734,
- 0, 235, 30, 0, 0, 0, 0, 1160, 1160, 1160,
- 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
- 32, 0, 0, 0, 0, 33, 202, 0, 0, 0,
- 0, 0, 0, 734, 0, 734, 0, 0, 0, 0,
- 204, 0, 0, 0, 0, 0, 0, 484, 0, 0,
- 7, 8, 9, 10, 214, 215, 216, 0, 0, 0,
- 389, 14, 121, 1248, 0, 0, 0, 0, 1189, 102,
- 102, 0, 0, 0, 0, 0, 102, 102, 18, 0,
- 102, 102, 102, 20, 417, 102, 102, 102, 21, 0,
- 0, 0, 23, 0, 619, 950, 950, 0, 950, 0,
- 0, 26, 0, 27, 28, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 193, 0, 0,
- 889, 0, 0, 0, 0, 0, 0, 194, 0, 0,
- 0, 257, 0, 0, 204, 32, 204, 0, 0, 0,
- 1426, 1189, 1189, 1189, 0, 0, 0, 0, 0, 889,
- 0, 0, 202, 202, 202, 202, 1158, 0, 1274, 0,
- 202, 0, 0, 1335, 0, 78, 0, 0, 0, 0,
- 0, 0, 0, 0, 235, 102, 0, 0, 0, 0,
- 0, 0, 0, 1158, 1158, 1158, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 102, 0, 0, 0, 0,
- 764, 0, 7, 8, 765, 10, 167, 12, 13, 0,
- 0, 0, 0, 14, 0, 0, 202, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 16, 0, 17,
- 18, 19, 0, 0, 102, 20, -529, 0, 0, 0,
- 21, 0, 0, 0, 23, 766, 0, 168, 0, 478,
- 0, 0, 0, 26, 0, 27, 28, 0, 0, 767,
- 0, 768, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 202, 202, 0, 202, 0, 0, 0, 0, 31,
- 0, 0, 102, 0, 102, 102, 0, 32, 0, 0,
- 0, 0, 33, 1193, 0, 0, 0, 0, 0, 0,
- 0, 8, 9, 0, 167, 12, 13, 0, -529, 1551,
- 202, 14, 202, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 478, 478, 478, 16, 0, 17, 18, 102,
- 0, 0, 0, 20, 0, 0, 0, 0, 0, 0,
- 0, 0, 23, 0, 0, 0, 204, 0, 102, 0,
- 0, 26, 0, 130, 131, 102, 0, 0, 102, 0,
+ 443, 435, 487, 122, 445, 36, 420, 423, 711, 444,
+ 658, 712, 392, 256, 1019, 432, 224, 72, 532, 648,
+ 771, 253, 657, 76, 709, 738, 103, 42, 400, 1118,
+ 59, 784, 298, 786, 182, 857, 36, 59, 196, 991,
+ 525, 816, 486, 141, 146, 356, 1016, 357, 72, 554,
+ 557, 494, 209, 58, 76, 72, 398, 399, 42, 926,
+ 742, 76, 896, 949, 249, 42, 926, 247, 688, 391,
+ 174, 492, 495, 177, 201, 727, 213, 256, 35, 296,
+ 397, 57, 587, 349, 58, 349, 626, 349, 1478, 544,
+ 1428, 58, 408, 1056, 224, 260, 1530, 297, 1443, 170,
+ 171, 1534, 349, 349, 1027, 1446, 899, 190, 163, 35,
+ 224, 208, 57, 626, 626, 467, 169, 998, 364, 176,
+ 662, 663, 661, 900, 1600, 1535, 89, 308, 1193, 977,
+ 91, 406, 349, 295, 349, -1, 256, 1567, 1558, 580,
+ 1544, 581, 544, 26, 813, 978, 90, 855, 164, 72,
+ 92, 1028, 901, 1387, 1029, 407, -828, 1555, 196, 410,
+ 59, 468, 419, 422, 59, 735, 224, 155, -2, 780,
+ 1601, 209, 717, 718, 224, 1059, 452, 1589, 72, 928,
+ 558, 559, 72, 1568, 76, 58, 517, 1064, 76, 997,
+ 403, 224, 42, 440, 201, 213, 567, 174, 1581, 568,
+ 177, 490, 569, 539, 1194, 579, 470, 472, 190, 584,
+ 724, 1004, 1597, 405, 58, 1080, 814, 625, 58, -302,
+ 1612, 1085, 736, 1560, 15, 842, 170, 171, -415, 1199,
+ 208, 1558, 776, -356, -356, 1065, 88, 453, 453, 1027,
+ 59, 201, 57, 169, 789, 15, 176, 88, 535, -415,
+ 1532, 705, 1538, 190, 1478, -625, -415, -415, 72, 178,
+ 260, -415, 86, 93, 524, -302, -302, 1593, 820, 632,
+ 454, 454, 300, 394, 395, 10, 221, 790, -415, 1200,
+ -295, 791, -415, 155, 155, 155, 1028, 696, 732, 1029,
+ 623, 374, 247, 631, 58, 1225, 1226, 375, 1565, 514,
+ 759, -625, -625, 158, 1220, 1020, 1166, 116, 117, 118,
+ 21, 87, 1247, 664, 792, 658, -625, 705, 38, 511,
+ 774, 976, 519, 26, 349, 27, 319, -415, 1144, 155,
+ 691, 420, 423, 817, 1221, 856, 963, 296, 94, 1117,
+ 492, 495, 8, 9, 1598, 247, 12, 13, 492, 38,
+ 1292, 107, 14, 349, 667, 297, 108, 32, 926, 583,
+ 119, 120, 711, 1002, 1003, 1038, 16, 260, 17, 1353,
+ -583, 109, 72, 138, 20, 580, 39, 581, 668, 495,
+ 1404, 1404, 818, 23, 967, 964, 178, 714, 127, 128,
+ 1622, 295, 26, 139, 130, 131, 532, 708, 495, 1293,
+ 209, 1388, 926, 135, 224, 215, 216, 39, 58, 137,
+ -304, 14, 533, 665, 162, 710, -583, 189, 1354, 158,
+ 158, 158, 648, 201, 1151, 699, 221, 1154, 950, 1405,
+ 1509, 897, 1169, 20, 221, 221, 405, 59, 26, 1623,
+ 130, 131, 23, 161, 636, 567, 568, 224, 1215, 926,
+ 179, 707, 517, 778, 517, 72, -304, -304, 534, 153,
+ 517, 76, 517, 752, 221, 158, 1367, 183, 1180, 1181,
+ 729, -298, 610, 177, 1146, 1373, 1374, 653, 1375, 793,
+ 1254, 710, 1256, 610, 777, 831, 18, 763, 764, 705,
+ 841, 58, 244, 349, 366, 370, 705, 636, 1016, 201,
+ 1119, 799, 787, 788, 459, 838, 59, 201, 59, -365,
+ 40, 15, 819, 221, 209, 914, 59, 707, 611, 176,
+ 1474, 460, 187, 654, 72, 794, 72, 377, 916, 611,
+ 524, 832, 524, 55, 72, 1056, 188, 805, 812, 129,
+ 524, 40, -365, 841, -295, 349, -365, 90, 349, 26,
+ 461, 349, 1423, 1001, 299, 349, 847, 847, 847, 847,
+ 58, 915, 58, 138, 55, 514, 221, 514, 349, 623,
+ 58, 175, 798, 808, 917, 514, 421, 424, 349, -365,
+ 360, 349, 1032, 711, 696, 511, 712, 511, 519, 1192,
+ 519, 973, -583, 926, 378, 511, 362, 816, 519, 709,
+ 658, 372, 1093, 376, -366, 705, 15, 380, 155, 155,
+ 155, -120, 657, 15, 92, 636, 296, 381, -143, 401,
+ 972, 153, 926, 221, -295, 1289, 1290, 918, 492, 1033,
+ 137, 705, 1034, 1614, 297, 708, 934, -366, -583, 482,
+ 544, -366, 752, 705, -120, 425, 1368, 970, -120, 952,
+ 920, 922, 189, 710, 138, 95, 110, 111, 88, 178,
+ 710, 841, -144, 260, 1278, 404, 95, 414, 415, 433,
+ 295, 705, 1056, 919, -366, 147, 1273, 705, 122, 1615,
+ 240, -120, 935, 936, 241, 201, 587, 349, 984, 707,
+ 989, 990, 1513, 1514, 55, 1042, 707, 899, 175, -620,
+ -118, 209, 15, 221, 221, 247, 1262, 1264, 112, 113,
+ 303, 221, 661, 1017, 900, 1216, 574, 1218, 1186, 98,
+ 113, 1222, 215, 216, 201, 987, 201, 201, 14, 214,
+ 215, 216, 1420, -118, 1165, 990, 14, -118, -7, 256,
+ 164, 1043, 221, 901, 158, 158, 158, 253, 1188, 447,
+ 20, 708, 1190, 18, 1426, 576, 517, 1480, 20, 23,
+ 1576, 221, 1274, 1275, 1187, 1277, 137, 23, 799, 710,
+ -118, 201, 8, 537, 518, 1036, 448, 708, 1081, 1082,
+ 451, 1083, 715, 1127, 705, 411, 1068, 463, 705, 708,
+ 413, 842, 1070, 1071, 1189, 710, 1068, 1073, 1191, 1264,
+ 1071, 464, 432, 1481, 805, 707, 1577, 710, 1349, 1351,
+ 59, 567, 568, 1355, 127, 128, 363, 708, 349, 349,
+ 379, 349, 498, 708, 130, 131, 705, 503, 72, 1182,
+ 527, 707, 705, 540, 524, 710, 769, 91, 147, 798,
+ 137, 710, 542, 707, 775, 1249, 1250, 1251, 538, 1590,
+ 15, 541, 746, 781, -415, 421, 722, 92, 363, 561,
+ 91, 1385, 222, 223, 58, 543, 130, 131, 551, 514,
+ 562, 707, 560, 95, 110, 111, 528, 707, 300, 705,
+ 92, 10, -415, -415, 221, 1359, 1360, 1361, 666, 511,
+ 538, 349, 519, 829, 222, 446, 1121, 224, 563, 782,
+ 91, 421, 424, 536, 392, 564, 18, 583, 7, 8,
+ 250, 10, 95, 96, 97, 449, 21, 1090, 1091, 1092,
+ 92, 256, 480, 481, 847, 221, 112, 113, 114, 626,
+ 708, 426, 427, 675, 752, 672, 705, 676, 705, 830,
+ 574, 488, 489, 574, 678, 428, 21, 844, 710, 679,
+ 920, 922, 710, 251, 692, 429, 1449, 260, 480, 730,
+ 574, 27, 28, 32, 680, 98, 99, 693, 430, 221,
+ 90, 175, 708, 574, 847, 349, 92, 871, 708, 576,
+ 721, 1484, 576, -6, 707, 252, 1472, 747, 707, 765,
+ 710, 221, 725, 32, 1170, 1171, 710, 1501, 421, 852,
+ 699, 770, 1279, 8, 9, 894, 842, 15, 382, 383,
+ 384, 910, 576, 539, 823, 127, 128, 824, 517, 89,
+ 535, 488, 731, 705, 825, 752, 707, 1066, 826, 420,
+ 423, 833, 707, 300, 394, 395, 10, 834, 847, 90,
+ 518, 851, 785, 710, 853, 1392, 854, 363, 736, 89,
+ 518, 911, 705, 385, 856, 130, 131, -141, 420, 423,
+ 913, 386, 387, 719, 221, 26, 720, 130, 131, 90,
+ 927, 21, 59, 942, 929, 567, 568, 955, 723, 707,
+ 1484, 903, 708, -183, 708, 1281, 27, 319, 1240, 931,
+ 72, 904, 956, 1240, 1402, 1403, 524, 1484, 137, -183,
+ 710, -183, 710, 127, 128, 905, 8, 9, 965, 256,
+ 608, 609, 847, 91, 411, 969, 413, 155, 32, 480,
+ 1503, -142, 1573, 127, 128, 349, 58, 711, 966, 536,
+ 1551, 514, 971, 92, 488, 1504, 707, 20, 707, 95,
+ 96, 97, 979, 225, 226, 227, 980, 363, 480, 1508,
+ 363, 511, 1484, -298, 519, 130, 131, 993, 130, 131,
+ 738, 999, 453, 1436, 155, 1017, 1000, 18, 1434, 708,
+ 1439, 1024, 228, 26, 1025, 130, 131, 8, 9, 252,
+ 89, -579, 252, 1048, -579, 1295, 1296, 710, 1369, 903,
+ 26, 1336, 98, 99, 229, 842, 1026, 1328, 752, 904,
+ 90, 579, 1031, -827, 7, 8, 9, 10, 1040, 72,
+ 13, 1616, 349, 905, 1295, 1296, 710, 89, 91, 931,
+ 1044, 1045, 1075, 707, 1069, 1407, 1408, 1371, 1372, 130,
+ 131, -579, 18, -579, -579, 1074, -579, 90, 92, 230,
+ 231, 232, 21, 1094, 1099, 58, -52, -579, 636, -579,
+ 1095, -52, 707, 158, 1096, 26, 1097, 27, 28, 1098,
+ 1100, 498, -52, 1101, 1102, -579, -579, 942, 127, 128,
+ 1327, 981, -140, 1335, 1103, 1104, 140, 140, 1106, 156,
+ -579, 982, 603, 604, 605, 606, 607, 608, 609, 32,
+ 1107, 639, 1124, 1113, 983, 641, 1110, 1126, 1109, 1111,
+ 158, 1112, 1129, 212, 1130, 220, 155, 155, 155, 1128,
+ 1131, 237, 1164, 7, 127, 128, 10, 1433, 544, 1433,
+ 130, 131, 1336, 1137, 1139, 1138, 574, 1147, 1148, 1145,
+ 209, 1150, 1336, 1157, 1160, 155, 155, 155, 1328, 1336,
+ 72, 1163, 1543, 1185, 518, 1328, 1208, 1214, 847, 1217,
+ 72, 21, 1219, 201, 1437, 201, 1224, 72, 251, 95,
+ 110, 111, 420, 423, 421, 852, 27, 28, 460, 1228,
+ 705, 8, 9, 1248, 1252, 1570, 58, 127, 128, 567,
+ 568, 1257, 1258, 1259, -304, 1260, 58, 140, 1265, 1267,
+ 252, 1280, 140, 58, 1268, 156, 156, 156, 32, -304,
+ 1291, 1327, 1269, -304, 1335, 1272, 1276, 719, 720, 153,
+ 723, 1327, 112, 113, 1335, 363, 1282, 129, 1327, -304,
+ 1283, 1335, 212, 130, 131, 490, 1284, 26, 450, 130,
+ 131, -304, -304, 1287, -304, 1288, -304, 1294, 1299, 140,
+ 140, 156, 158, 158, 158, 1193, 1348, 538, -662, 1379,
+ 214, 215, 216, 1380, 1386, 220, 1205, 14, 1390, 1396,
+ 95, 96, 97, 493, 220, -304, -304, 1391, 1406, 1397,
+ 1398, 158, 158, 158, 18, 1399, 1525, 1415, 1416, 20,
+ -304, 1336, 1336, 1525, 1417, 1429, 1336, 1328, 23, 1431,
+ 1444, 375, 1328, 1447, 297, 1005, 1006, 1007, 1450, 72,
+ 72, 297, 349, 953, 72, 140, 1451, 1468, 1469, 1554,
+ 1047, 26, 1470, 98, 99, 100, 708, 1471, 763, 764,
+ 1061, 1062, 1476, 1336, 1487, 1488, 1492, 127, 1243, 1328,
+ 295, 1494, 1336, 1495, 710, 58, 58, 295, 1328, 1008,
+ 58, 72, 1574, 1502, 1520, 201, 26, 1076, 1009, 1010,
+ 72, 1521, 1078, 221, 1529, 1539, 1525, 1540, 1545, 1547,
+ 1327, 1327, 1553, 1335, 1335, 1327, 1562, 1563, 1335, 1571,
+ 707, 363, 155, 1572, 297, 156, 1584, 58, 1336, 130,
+ 131, 1588, 1595, 1599, 1328, 1011, 58, 1618, 1596, 1602,
+ 574, 605, 606, 607, 608, 609, 72, 1604, 1609, 421,
+ 424, 1605, 1327, 538, 1357, 1335, 518, 1613, 1617, 612,
+ 295, 1327, 1620, 1625, 1335, 339, 1336, 339, 1626, 339,
+ 1628, 1629, 1328, 1, 5, 442, 147, 160, 421, 1347,
+ 1499, 968, 58, 1167, 72, 127, 128, 441, 728, 155,
+ 155, 155, 439, 809, 1381, 1382, 1383, 1384, 613, 614,
+ 1300, 212, 220, 615, 616, 617, 618, 1327, 1569, 500,
+ 1335, 359, 127, 128, 339, 140, 339, 13, 140, 1483,
+ 58, 409, 1624, 1389, 156, 156, 156, 550, 1159, 1023,
+ 140, 7, 8, 9, 10, 26, 1158, 130, 131, 505,
+ 811, 127, 128, 1452, 1362, 1327, 535, 1245, 1335, 1077,
+ 1156, 545, 958, 127, 128, 636, 898, 1419, 158, 483,
+ 633, 546, 26, 390, 130, 131, 140, 1442, 140, 21,
+ 156, 156, 156, 1345, 1591, 450, 251, 1603, 637, 1566,
+ 258, 140, 493, 220, 27, 28, 450, 0, 638, 1608,
+ 493, 26, 221, 130, 131, 1610, 636, 1207, 639, 1448,
+ 0, 640, 641, 26, 258, 130, 131, 545, 252, 95,
+ 110, 111, 529, 0, 0, 212, 32, 546, 0, 637,
+ 0, 0, 450, 0, 1473, 158, 158, 158, 1046, 638,
+ 0, 0, 0, 258, 0, 0, 0, 0, 0, 639,
+ 0, 0, 640, 641, 258, 0, 0, 21, 0, 156,
+ 1231, 1232, 156, 1241, 1242, 0, 1244, 1493, 116, 1006,
+ 1007, 0, 112, 113, 411, 413, 0, 156, 156, 156,
+ 0, 744, 536, 0, 0, 0, 0, 1079, 750, 0,
+ 0, 0, 156, 1084, 0, 0, 506, 0, 7, 8,
+ 507, 10, 167, 12, 13, 0, 0, 565, 0, 14,
+ 116, 1006, 1007, 258, 95, 110, 111, 0, 225, 226,
+ 227, 119, 120, 16, 1205, 17, 18, 19, 1523, 0,
+ 0, 20, 0, 0, 871, 1523, 21, 1050, 0, 0,
+ 23, 508, 18, 168, 0, 339, 0, 228, 258, 26,
+ 0, 27, 28, 943, 574, 509, 0, 510, 0, 0,
+ 0, 26, 743, 119, 120, 30, 0, 112, 113, 743,
+ 0, 839, 258, 220, 0, 31, 101, 0, 0, 0,
+ 0, 0, 0, 32, 115, 0, 0, 0, 33, 95,
+ 110, 111, 421, 1347, 0, 0, 1140, 0, 1141, 719,
+ 720, 0, 723, 0, 645, 649, 652, 0, 1523, 0,
+ 0, 0, 212, 0, 220, 237, 0, 0, 0, 0,
+ 0, 0, 1365, 1366, 1594, 0, 0, 233, 95, 110,
+ 111, 892, 681, 682, 683, 0, 0, 893, 7, 127,
+ 128, 10, 112, 1496, 13, 0, 1607, 741, 745, 95,
+ 110, 111, 743, 871, 0, 745, 0, 0, 220, 0,
+ 655, 8, 9, 10, 258, 0, 18, 0, 0, 140,
+ 140, 0, 140, 0, 947, 0, 21, 0, 0, 0,
+ 493, 112, 113, 450, 0, 339, 388, 0, 0, 26,
+ 0, 27, 28, 450, 450, 308, 656, 783, 21, 0,
+ 369, 371, 112, 1498, 0, 30, 116, 117, 118, 0,
+ 416, 26, 743, 130, 131, 31, 0, 0, 743, 0,
+ 450, 0, 258, 32, 1223, 450, 0, 0, 33, 1227,
+ 0, 0, 0, 0, 0, 0, 0, 339, 745, 0,
+ 0, 0, 0, 0, 0, 0, 0, 156, 743, 0,
+ 0, 0, 1253, 0, 1255, 743, 0, 26, 0, 119,
+ 120, 0, 0, 1457, 1458, 1459, 0, 0, 0, 0,
+ 339, 0, 741, 0, 0, 868, 869, 0, 873, 874,
+ 875, 876, 877, 878, 879, 880, 881, 882, 883, 884,
+ 885, 886, 887, 888, 889, 890, 891, 0, 745, 0,
+ 499, 501, 0, 0, 745, 0, 0, 0, 0, 1286,
+ 0, 0, 258, 530, 7, 8, 9, 10, 214, 215,
+ 216, 300, 8, 9, 10, 14, 0, 0, 0, 0,
+ 0, 95, 96, 97, 745, 0, 0, 0, 0, 0,
+ 0, 745, 18, 156, 156, 943, 0, 20, 1511, 1512,
+ 0, 0, 21, 0, 0, 0, 23, 258, 636, 21,
+ 382, 383, 384, 960, 962, 26, 251, 27, 28, 0,
+ 0, 214, 215, 216, 27, 319, 363, 0, 14, 339,
+ 0, 981, 237, 566, 98, 99, 0, 140, 140, 943,
+ 0, 982, 0, 921, 923, 18, 0, 0, 252, 32,
+ 20, 639, 0, 0, 983, 641, 32, 0, 0, 23,
+ 0, 26, 0, 386, 387, 1114, 1115, 491, 215, 216,
+ 0, 1120, 578, 0, 14, 674, 0, 741, 0, 0,
+ 0, 0, 0, 0, 684, 1132, 943, 1133, 0, 1134,
+ 0, 18, 743, 0, 258, 0, 20, 674, 127, 128,
+ 0, 1393, 215, 216, 0, 23, 0, 0, 14, 0,
+ 258, 986, 0, 645, 649, 0, 652, 1592, 7, 8,
+ 9, 10, 0, 450, 450, 0, 450, 450, 0, 450,
+ 20, 0, 0, 0, 1067, 1162, 0, 0, 0, 23,
+ 0, 636, 0, 0, 0, 704, 743, 743, 26, 0,
+ 130, 131, 743, 0, 0, 0, 21, 0, 649, 0,
+ 339, 339, 636, 339, 637, 0, 743, 0, 743, 26,
+ 743, 27, 28, 0, 638, 0, 0, 0, 745, 1453,
+ 1454, 1183, 0, 0, 639, 981, 0, 647, 641, 0,
+ 0, 0, 0, 1464, 1465, 982, 0, 116, 1006, 1007,
+ 1105, 1049, 0, 32, 0, 639, 0, 0, 983, 641,
+ 1475, 751, 0, 0, 779, 0, 743, 0, 0, 0,
+ 0, 0, 0, 0, 1050, 0, 140, 140, 156, 156,
+ 943, 1051, 745, 745, 140, 0, 0, 741, 745, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 26, 0,
+ 119, 120, 745, 649, 745, 0, 745, 156, 156, 943,
+ 0, 0, 743, 0, 0, 0, 258, 596, 597, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 743, 1518, 1519, 0, 450, 450, 0, 0, 0,
+ 0, 0, 1155, 0, 0, 0, 840, 864, 0, 843,
+ 0, 0, 745, 845, 846, 848, 849, 850, 0, 7,
+ 8, 9, 10, 0, 0, 246, 578, 339, 0, 0,
+ 300, 394, 395, 10, 0, 0, 1135, 0, 1136, 867,
+ 1179, 0, 0, 0, 0, 0, 0, 18, 0, 1142,
+ 0, 912, 0, 921, 923, 0, 0, 21, 745, 0,
+ 0, 140, 140, 636, 140, 0, 0, 1301, 21, 1302,
+ 26, 1303, 27, 28, 0, 251, 0, 745, 0, 7,
+ 8, 9, 10, 27, 319, 13, 981, 627, 0, 300,
+ 394, 395, 10, 924, 628, 0, 982, 921, 923, 0,
+ 924, 212, 220, 0, 32, 0, 639, 18, 0, 983,
+ 641, 0, 1229, 1230, 258, 32, 258, 21, 0, 0,
+ 975, 0, 0, 636, 0, 0, 0, 21, 0, 0,
+ 26, 992, 27, 28, 629, 0, 450, 450, 450, 0,
+ 26, 0, 27, 319, 0, 0, 1172, 0, 743, 0,
+ 743, 0, 743, 741, 741, 0, 1173, 1266, 258, 0,
+ 0, 0, 864, 0, 32, 80, 639, 0, 0, 1174,
+ 641, 0, 1395, 0, 630, 104, 0, 339, 0, 0,
+ 0, 0, 0, 0, 0, 133, 0, 0, 0, 0,
+ 0, 144, 144, 0, 144, 0, 80, 0, 0, 0,
+ 0, 0, 0, 80, 156, 0, 0, 0, 0, 704,
+ 0, 0, 0, 0, 0, 0, 203, 0, 80, 0,
+ 0, 450, 450, 0, 0, 0, 238, 0, 0, 0,
+ 0, 0, 0, 104, 745, 751, 745, 0, 745, 0,
+ 0, 0, 258, 0, 262, 104, 741, 751, 0, 0,
+ 0, 0, 0, 743, 0, 741, 741, 0, 0, 0,
+ 741, 0, 0, 0, 0, 0, 0, 104, 0, 0,
+ 0, 156, 156, 156, 0, 751, 0, 0, 0, 0,
+ 0, 751, 1370, 0, 0, 0, 1135, 1136, 921, 923,
+ 300, 8, 9, 10, 1142, 133, 0, 80, 0, 0,
+ 0, 144, 144, 0, 0, 0, 412, 144, 741, 0,
+ 144, 144, 144, 0, 0, 0, 0, 921, 923, 258,
+ 7, 127, 128, 10, 0, 0, 80, 0, 21, 0,
+ 80, 0, 0, 0, 0, 251, 203, 80, 0, 745,
+ 450, 0, 0, 27, 319, 0, 258, 0, 18, 1116,
+ 0, 0, 0, 0, 203, 203, 203, 0, 21, 0,
+ 0, 0, 0, 1414, 0, 0, 0, 538, 0, 0,
+ 0, 26, 0, 27, 28, 32, 127, 128, 0, 0,
+ 215, 216, 867, 203, 0, 684, 14, 149, 751, 0,
+ 0, 0, 924, 0, 0, 0, 0, 150, 975, 743,
+ 502, 0, 0, 741, 0, 32, 80, 0, 20, 104,
+ 151, 1135, 1136, 0, 1142, 1455, 1456, 23, 0, 636,
+ 144, 0, 0, 0, 0, 0, 26, 0, 130, 131,
+ 704, 0, 1168, 741, 0, 0, 924, 0, 259, 0,
+ 0, 0, 637, 0, 0, 0, 0, 0, 127, 128,
+ 0, 0, 638, 246, 0, 0, 0, 0, 104, 547,
+ 0, 0, 639, 0, 0, 640, 641, 0, 471, 473,
+ 477, 0, 0, 0, 7, 127, 128, 10, 0, 0,
+ 246, 0, 0, 924, 0, 745, 0, 0, 0, 0,
+ 0, 636, 0, 0, 0, 0, 1210, 0, 26, 0,
+ 130, 131, 18, 104, 0, 0, 0, 634, 1516, 547,
+ 547, 650, 21, 0, 637, 434, 0, 0, 0, 0,
+ 80, 0, 0, 0, 638, 26, 0, 27, 28, 1263,
+ 0, 0, 0, 0, 639, 0, 1536, 640, 641, 0,
+ 751, 30, 751, 0, 0, 0, 0, 469, 0, 0,
+ 0, 31, 0, 0, 133, 795, 796, 9, 10, 32,
+ 485, 0, 0, 104, 33, 203, 104, 0, 0, 0,
+ 1271, 0, 0, 0, 0, 0, 127, 128, 0, 0,
+ 144, 535, 0, 144, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 21, 0, 144, 0, 0, 0, 0,
+ 0, 0, 0, 80, 0, 0, 26, 0, 27, 28,
+ 7, 8, 9, 10, 797, 1305, 535, 0, 0, 636,
+ 0, 1263, 193, 0, 0, 0, 26, 924, 130, 131,
+ 0, 203, 194, 203, 0, 203, 203, 203, 18, 0,
+ 32, 203, 637, 0, 0, 195, 203, 0, 21, 203,
+ 0, 0, 638, 0, 636, 0, 924, 0, 741, 0,
+ 0, 26, 639, 27, 28, 640, 641, 0, 0, 133,
+ 1358, 0, 80, 0, 80, 0, 0, 981, 0, 806,
+ 80, 0, 80, 0, 0, 0, 166, 982, 7, 8,
+ 9, 10, 167, 12, 13, 32, 0, 639, 0, 14,
+ 983, 641, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 17, 18, 19, 0, 0,
+ 0, 20, 104, 104, 104, 104, 21, 0, 0, 0,
+ 23, 0, 0, 168, 0, 0, 0, 0, 0, 26,
+ 0, 27, 28, 1421, 1422, 761, 0, 762, 0, 471,
+ 473, 477, 0, 0, 0, 30, 0, 0, 0, 0,
+ 773, 0, 0, 0, 0, 31, 0, 0, 0, 0,
+ 0, 0, 0, 32, 0, 0, 0, 0, 33, 0,
+ 0, 0, 104, 34, 547, 0, 0, 0, 0, 0,
+ 0, 0, 0, 804, 0, 0, 634, 0, 547, 547,
+ 0, 650, 0, 0, 0, 0, 1210, 0, 944, 8,
+ 9, 0, 946, 12, 246, 0, 0, 0, 0, 14,
+ 0, 0, 0, 0, 1479, 0, 0, 203, 0, 0,
+ 0, 0, 0, 16, 766, 17, 0, 0, 0, 772,
+ 0, 20, 0, 0, 0, 0, 1497, 1500, 0, 0,
+ 23, 133, 636, 0, 0, 0, 0, 0, 133, 26,
+ 0, 130, 131, 0, 0, 0, 203, 988, 203, 203,
+ 238, 650, 0, 0, 0, 637, 0, 0, 0, 0,
+ 0, 0, 0, 821, 0, 638, 0, 0, 0, 827,
+ 0, 0, 0, 0, 0, 639, 0, 0, 640, 641,
+ 0, 835, 836, 0, 837, 0, 0, 0, 0, 300,
+ 8, 9, 10, 203, 0, 0, 0, 988, 0, 0,
+ 0, 1541, 0, 0, 203, 203, 0, 203, 7, 8,
+ 9, 10, 214, 215, 216, 0, 0, 0, 0, 14,
+ 0, 0, 0, 104, 0, 0, 806, 21, 0, 0,
+ 0, 0, 0, 0, 251, 104, 18, 0, 0, 0,
+ 578, 20, 27, 319, 0, 0, 21, 0, 1072, 0,
+ 23, 0, 636, 0, 704, 0, 80, 0, 0, 26,
+ 0, 27, 28, 104, 0, 0, 0, 0, 0, 104,
+ 0, 0, 0, 0, 32, 981, 547, 547, 547, 932,
+ 933, 0, 0, 0, 932, 982, 0, 0, 547, 0,
+ 0, 0, 0, 32, 0, 639, 0, 0, 1030, 641,
+ 0, 0, 0, 0, 0, 8, 9, 0, 167, 12,
+ 13, 0, 0, 749, 0, 14, 83, 0, 761, 762,
+ 0, 773, 0, 0, 0, 0, 106, 0, 0, 16,
+ 0, 17, 18, 0, 0, 126, 134, 20, 0, 0,
+ 804, 0, 145, 145, 0, 145, 23, 83, 636, 0,
+ 0, 0, 0, 0, 83, 26, 0, 130, 131, 0,
+ 0, 547, 0, 547, 0, 0, 0, 145, 0, 83,
+ 104, 637, 0, 0, 547, 0, 104, 239, 944, 944,
+ 944, 638, 0, 0, 248, 0, 1149, 300, 127, 128,
+ 10, 639, 0, 0, 640, 641, 248, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 7, 127, 128, 10,
+ 0, 0, 13, 0, 0, 0, 0, 1058, 104, 0,
+ 104, 0, 203, 203, 1176, 21, 0, 0, 0, 1063,
+ 0, 0, 251, 0, 18, 0, 0, 0, 0, 0,
+ 27, 319, 0, 0, 21, 0, 0, 0, 83, 0,
+ 0, 0, 145, 145, 0, 0, 0, 26, 145, 27,
+ 28, 145, 145, 145, 0, 1086, 0, 1088, 0, 0,
+ 0, 1176, 32, 149, 0, 0, 0, 83, 0, 0,
+ 0, 83, 0, 150, 104, 0, 0, 145, 83, 0,
+ 0, 32, 0, 0, 0, 0, 151, 0, 0, 0,
+ 0, 0, 0, 0, 0, 145, 145, 145, 0, 0,
+ 203, 0, 0, 0, 0, 144, 0, 0, 80, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 104, 0,
+ 104, 0, 0, 0, 145, 0, 471, 473, 477, 1122,
+ 1123, 0, 1125, 8, 9, 0, 0, 12, 13, 0,
+ 8, 9, 0, 14, 12, 246, 0, 83, 104, 0,
+ 14, 0, 0, 547, 547, 0, 547, 16, 0, 17,
+ 1143, 145, 0, 0, 16, 20, 17, 0, 0, 0,
+ 0, 0, 20, 0, 23, 477, 0, 0, 0, 0,
+ 0, 23, 0, 26, 0, 130, 131, 619, 0, 0,
+ 26, 0, 130, 131, 0, 0, 0, 0, 0, 248,
+ 145, 203, 203, 203, 203, 1176, 0, 0, 0, 203,
+ 0, 1178, 0, 0, 1239, 0, 642, 642, 642, 0,
+ 0, 0, 620, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1176, 1176, 1176, 7, 8, 9, 10, 167,
+ 12, 13, 0, 0, 248, 0, 14, 0, 635, 0,
+ 145, 145, 651, 0, 0, 0, 0, 660, 0, 0,
+ 16, 83, 17, 18, 19, 0, 0, 0, 20, 0,
+ 0, 0, 0, 21, 0, 0, 0, 23, 0, 0,
+ 168, 0, 0, 0, 0, 0, 26, 0, 27, 28,
+ 0, 0, 0, 0, 0, 697, 0, 0, 0, 0,
+ 0, 0, 30, 0, 248, 0, 145, 248, 0, 0,
+ 0, 0, 31, 0, 0, 761, 762, 471, 473, 477,
+ 32, 145, 0, 773, 145, 33, 203, 203, 0, 203,
+ 34, 0, 7, 8, 9, 10, 145, 0, 13, 0,
+ 0, 0, 0, 0, 83, 0, 471, 473, 477, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 102, 1428, 0, 1285, 1286, 1287, 10, 167, 12, 301,
- 302, 303, 0, 304, 14, 1288, 0, 1289, 1290, 1291,
- 1292, 1293, 1294, 1295, 1296, 1297, 1298, 15, 16, 305,
+ 18, 0, 0, 0, 1285, 203, 988, 203, 0, 0,
+ 21, 0, 145, 0, 145, 0, 145, 145, 145, 0,
+ 0, 0, 145, 26, 104, 27, 28, 145, 0, 6,
+ 145, 7, 8, 9, 10, 11, 12, 13, 0, 193,
+ 0, 0, 14, 1298, 0, 0, 0, 0, 0, 194,
+ 134, 0, 0, 83, 0, 83, 16, 32, 17, 18,
+ 807, 83, 195, 83, 20, 0, 0, 0, 0, 21,
+ 0, 0, 0, 23, 0, 0, 438, 0, 0, 0,
+ 761, 762, 26, 773, 27, 28, 0, 0, 29, 0,
+ 1363, 0, 0, 0, 1364, 0, 0, 0, 30, 0,
+ 0, 0, 0, 248, 248, 248, 248, 0, 31, 1176,
+ 0, 0, 0, 0, 1377, 0, 32, 0, 1378, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 7, 127, 128, 10, 0, 0, 535, 0,
+ 0, 0, 0, 0, 0, 642, 642, 0, 642, 0,
+ 0, 0, 0, 1394, 0, 941, 0, 0, 0, 0,
+ 18, 0, 0, 248, 0, 145, 0, 0, 0, 0,
+ 21, 0, 0, 0, 0, 0, 1176, 1176, 1176, 145,
+ 145, 0, 651, 26, 0, 27, 28, 0, 0, 945,
+ 0, 0, 104, 0, 0, 0, 0, 203, 0, 30,
+ 0, 0, 660, 7, 127, 128, 10, 0, 145, 31,
+ 0, 0, 0, 642, 0, 642, 642, 32, 642, 0,
+ 0, 0, 33, 477, 0, 0, 0, 0, 0, 0,
+ 0, 18, 697, 0, 0, 0, 0, 0, 0, 0,
+ 126, 21, 0, 0, 0, 1466, 1467, 145, 651, 145,
+ 145, 239, 651, 0, 26, 0, 27, 28, 0, 0,
+ 642, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 30, 0, 0, 0, 0, 1018, 0, 0, 0, 0,
+ 31, 0, 0, 0, 0, 0, 0, 0, 32, 0,
+ 471, 473, 477, 33, 145, 0, 0, 0, 651, 0,
+ 0, 0, 0, 0, 0, 145, 145, 0, 145, 0,
+ 0, 0, 0, 0, 7, 8, 9, 10, 167, 12,
+ 13, 0, 1018, 749, 248, 14, 0, 807, 0, 0,
+ 0, 0, 0, 0, 0, 0, 248, 0, 0, 16,
+ 0, 17, 18, 0, 0, 0, 0, 20, 0, 0,
+ 0, 0, 21, 0, 0, 642, 23, 83, 636, 0,
+ 0, 0, 0, 0, 248, 26, 0, 27, 28, 0,
+ 248, 0, 0, 0, 0, 0, 0, 145, 145, 145,
+ 0, 1172, -387, 8, 9, -387, -387, 12, 246, 145,
+ 0, 1173, 0, 14, 0, 0, 0, 0, 0, 32,
+ 0, 639, 0, 0, 1174, 641, 0, 16, 0, 17,
+ -387, 0, 0, 0, 0, 20, 0, 0, 0, 0,
+ -387, 0, 0, 0, 23, 0, 636, 0, 642, 0,
+ 642, 0, 0, 26, 0, 130, 131, 0, 0, 0,
+ 0, 642, 0, 0, 0, 941, 941, 941, 0, 637,
+ 7, 8, 9, 10, 214, 215, 216, 0, 0, 638,
+ 0, 14, 145, 0, 145, 0, 0, -387, 0, 639,
+ 0, 248, 640, 641, 0, 145, 0, 248, 18, 945,
+ 945, 945, 0, 20, 0, 0, 0, 660, 21, 642,
+ 642, 642, 23, 0, 636, 0, 0, 0, 0, 0,
+ 0, 26, 0, 27, 28, 51, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 193, 0, 248,
+ 0, 248, 0, 145, 145, 651, 0, 194, 0, 0,
+ 0, 51, 51, 0, 152, 32, 51, 0, 941, 0,
+ 1438, 0, 0, 51, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 51, 0, 51, 795,
+ 8, 507, 10, 205, 12, 206, 0, 0, 0, 0,
+ 14, 0, 945, 0, 0, 0, 0, 0, 0, 0,
+ 0, 254, 0, 0, 16, 248, 17, 18, 0, 0,
+ 0, 0, 20, 0, 0, 0, 0, 21, 0, 0,
+ 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 145, 27, 28, 0, 0, 145, 0, 797, 83,
+ 0, 0, 0, 0, 0, 0, 30, 0, 0, 248,
+ 0, 248, 0, 0, 396, 396, 31, 51, 0, 0,
+ 0, 51, 51, 0, 32, 254, 0, 51, 0, 33,
+ 152, 152, 152, 0, 0, 0, 0, 431, 0, 248,
+ 0, 0, 0, 0, 145, 145, 51, 145, 0, 0,
+ 51, 0, 0, 0, 0, 0, 51, 51, 642, 642,
+ 642, 642, 642, 0, 0, 0, 642, 0, 0, 0,
+ 0, 0, 0, 0, 51, 51, 152, 0, 0, 0,
+ 0, 0, 0, 0, 254, 0, 0, 0, 0, 941,
+ 941, 941, 145, 145, 145, 145, 651, 0, 0, 0,
+ 145, 0, 0, 51, 0, 0, 506, 1018, 7, 8,
+ 507, 10, 167, 12, 13, 0, 0, 0, 0, 14,
+ 0, 0, 0, 945, 945, 945, 51, 0, 0, 0,
+ 0, 0, 0, 16, 0, 17, 18, 19, 0, 0,
+ 51, 20, -525, 0, 1018, 0, 21, 0, 0, 0,
+ 23, 508, 0, 168, 7, 8, 9, 10, 0, 26,
+ 246, 27, 28, 0, 0, 509, 0, 510, 0, 0,
+ 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
+ 0, 0, 18, 642, 642, 31, 642, 0, 0, 0,
+ 0, 0, 21, 32, 0, 0, 0, 0, 33, 0,
+ 0, 0, 0, 0, 0, 26, 0, 27, 28, 0,
+ 575, 0, 0, 0, -525, 0, 0, 145, 145, 0,
+ 145, 193, 0, 0, 0, 0, 0, 396, 0, 0,
+ 0, 194, 0, 0, 0, 254, 0, 0, 0, 32,
+ 51, 0, 0, 0, 195, 1425, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 145, 651, 145, 595,
+ 596, 597, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 396, 248, 0, 0, 0, 0,
+ 0, 1018, 0, 0, 0, 51, 0, 0, 0, 506,
+ 0, 7, 8, 507, 10, 167, 12, 13, 0, 0,
+ 51, 0, 14, 51, 0, 0, 0, 0, 0, 431,
+ 431, 431, 0, 0, 0, 51, 16, 0, 17, 18,
+ 19, 0, 0, 51, 20, -526, 0, 0, 0, 21,
+ 0, 0, 0, 23, 508, 0, 168, 0, 0, 0,
+ 0, 0, 26, 0, 27, 28, 0, 0, 509, 0,
+ 510, 51, 0, 51, 0, 152, 152, 152, 30, 0,
+ 945, 51, 0, 0, 0, 0, 51, 0, 31, 51,
+ 0, 0, 1233, 1234, 9, 10, 32, 0, 0, 0,
+ 0, 33, 0, 8, 9, 0, 0, 12, 13, 0,
+ 0, 0, 51, 14, 51, 0, 0, -526, 0, 51,
+ 51, 0, 51, 0, 0, 0, 0, 16, 0, 17,
+ 21, 0, 0, 0, 0, 20, 0, 0, 0, 0,
+ 0, 0, 0, 26, 23, 27, 28, 945, 945, 945,
+ 0, 1235, 0, 26, 575, 130, 131, 575, 0, 193,
+ 0, 0, 0, 248, 0, 0, 0, 0, 145, 194,
+ 0, 0, 575, 575, 575, 0, 0, 32, 0, 78,
+ 0, 0, 195, 0, 0, 0, 0, 575, 0, 0,
+ 0, 7, 8, 9, 10, 0, 6, 13, 7, 8,
+ 9, 10, 11, 12, 13, 78, 78, 0, 78, 14,
+ 78, 0, 0, 0, 0, 0, 0, 78, 0, 18,
+ 0, 0, 15, 16, 0, 17, 18, 19, 0, 21,
+ 78, 20, 78, 0, 0, 254, 21, 0, 0, 22,
+ 23, 24, 26, 25, 27, 28, 0, 0, 575, 26,
+ 0, 27, 28, 0, 0, 29, 0, 0, 474, 0,
+ 0, 0, 0, 0, 0, 30, 0, 51, 475, 0,
+ 0, 0, 0, 0, 0, 31, 32, 0, 0, 0,
+ 0, 476, 0, 32, 0, 0, 0, 0, 33, 0,
+ 0, 396, 0, 34, 0, 0, 0, 159, 396, 0,
+ 0, 0, 0, 0, 0, 0, 51, 51, 51, 51,
+ 0, 78, 0, 0, 0, 78, 78, 0, 0, 204,
+ 0, 78, 0, 0, 78, 78, 78, 0, 0, 0,
+ 0, 0, 0, 0, 795, 796, 9, 10, 0, 0,
+ 78, 0, 0, 0, 78, 7, 8, 9, 10, 0,
+ 78, 78, 0, 51, 0, 0, 0, 51, 0, 0,
+ 0, 0, 0, 0, 51, 51, 0, 51, 78, 78,
+ 78, 0, 21, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 21, 0, 26, 51, 27, 28, 0,
+ 0, 1060, 0, 797, 0, 0, 26, 78, 27, 28,
+ 0, 193, 192, 0, 0, 0, 0, 254, 0, 0,
+ 0, 194, 193, 159, 159, 159, 51, 0, 0, 32,
+ 78, 0, 194, 0, 195, 0, 0, 0, 0, 0,
+ 32, 0, 0, 0, 78, 195, 0, 0, 0, 204,
+ 0, 748, 575, 300, 8, 9, 10, 167, 12, 301,
+ 302, 303, 749, 304, 14, 0, 0, 204, 204, 478,
+ 0, 0, 0, 0, 0, 0, 0, 0, 16, 305,
17, 18, 19, 0, 306, 307, 20, 0, 308, 309,
- 310, 21, 311, 312, 1299, 23, 1300, 0, 0, 313,
- 314, 315, 316, 317, 26, 1158, 1301, 319, 719, 0,
- 1302, 320, 0, 0, 0, 0, 0, 321, 102, 0,
+ 310, 21, 311, 312, 0, 23, 204, 0, 0, 313,
+ 314, 315, 316, 317, 26, 0, 27, 319, 0, 0,
+ 0, 320, 0, 0, 0, 0, 0, 321, 0, 0,
322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
325, 0, 0, 0, 0, 0, 326, 327, 328, 0,
- 0, 0, 0, 329, 561, 1303, 102, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1429,
- 330, 687, 577, 578, 579, 580, 581, 582, 583, 584,
- 585, 586, 587, 588, 589, 590, 591, 592, 1158, 1158,
- 1158, 0, 0, 0, 0, 1454, 0, -479, -479, -479,
- -479, -479, -479, -479, 0, 0, -479, 0, -479, 0,
- 0, 0, 202, 0, 0, 0, 0, 0, 0, -479,
- 0, -479, 0, 0, 0, -479, 0, 0, 0, 0,
- -479, 0, 102, 0, 0, -479, 0, 0, 0, -479,
- 0, -479, 0, 102, 102, 0, 102, 102, -479, 0,
- -479, -479, -479, -479, -479, 0, -479, -479, -479, -479,
+ 659, 0, 0, 329, 78, 0, 0, 0, 575, 575,
+ 575, 0, 0, 0, 431, 254, 0, 0, -798, 0,
+ 330, 0, 0, 7, 8, 9, 10, 205, 12, 206,
+ 0, 0, 548, 0, 14, 597, 598, 599, 600, 601,
+ 602, 603, 604, 605, 606, 607, 608, 609, 16, 78,
+ 17, 18, 51, 51, 152, 0, 20, 0, 0, 254,
+ 0, 21, 0, 0, 78, 23, 0, 78, 0, 0,
+ 0, 0, 0, 0, 26, 0, 27, 28, 0, 78,
+ 207, 0, 644, 644, 644, 0, 0, 78, 0, 0,
+ 30, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 1204, 0, 0, 0, 0, 0, 0, 32, 0,
+ 0, 0, 0, 33, 0, 78, 0, 78, 0, 78,
+ 78, 78, 0, 0, 0, 78, 0, 0, 0, 0,
+ 78, 0, 0, 78, 0, 0, 0, 0, 204, 0,
+ 51, 0, 0, 0, 0, 51, 0, 0, 51, 7,
+ 8, 9, 10, 167, 12, 13, 78, 0, 78, 0,
+ 14, 0, 0, 78, 78, 0, 78, 0, 0, 0,
+ 0, 0, 0, 0, 16, 0, 17, 18, 0, 0,
+ 0, 0, 20, 0, 0, 0, 0, 21, 0, 0,
+ 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 0, 27, 28, 204, 0, 204, 0, 478, 478,
+ 478, 0, 0, 0, 204, 0, 30, 0, 0, 204,
+ 254, 0, 204, 0, 0, 0, 31, 0, 0, 0,
+ 0, 0, 0, 0, 32, 0, 0, 0, 0, 33,
+ 0, 51, 51, 152, 152, 152, 0, 254, 0, 51,
+ 0, 0, 204, 0, 870, 0, 300, 8, 9, 10,
+ 0, 12, 552, 302, 303, 0, 304, 14, 0, 0,
+ 0, 0, 1204, 1204, 1204, 0, 0, 0, 0, 0,
+ 659, 16, 305, 17, 0, 19, 0, 306, 307, 20,
+ 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
+ 0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
+ 319, 78, 0, 0, 320, -788, 0, 0, 0, 0,
+ 321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
+ 0, 323, 324, 325, 0, 0, 202, 0, 0, 326,
+ 327, 328, 0, 0, 0, 0, 329, 0, 0, 0,
+ 78, 78, 78, 78, 0, 0, 0, 906, 0, 0,
+ 0, 257, 0, 330, 261, 0, 51, 51, 0, 51,
+ 0, 644, 644, 0, 644, 0, 0, 0, 0, 0,
+ 0, 644, 0, 0, 0, 257, 0, 365, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 78, 0, 0,
+ 204, 78, 0, 0, 0, 51, 51, 51, 78, 78,
+ 0, 78, 592, 593, 594, 595, 596, 597, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 78, 0, 0, 0, 0, 0, 0, 0, 0, 985,
+ 0, 985, 985, 0, 644, 0, 0, 0, 0, 0,
+ 0, 7, 8, 9, 10, 0, 202, 535, 0, 0,
+ 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 202, 202, 202, 0, 0, 18,
+ 0, 0, 0, 0, 484, 0, 985, 0, 0, 21,
+ 0, 0, 0, 0, 0, 0, 0, 204, 204, 0,
+ 204, 0, 26, 202, 27, 28, 0, 0, 0, 1204,
+ 0, 0, 0, 0, 0, 0, 0, 0, 193, 204,
+ 0, 7, 8, 9, 10, 167, 12, 13, 194, 261,
+ 1035, 0, 14, 0, 0, 0, 32, 0, 0, 0,
+ 0, 195, 0, 257, 0, 0, 16, 0, 17, 18,
+ 0, 0, 0, 0, 20, 0, 0, 0, 0, 21,
+ 0, 0, 0, 23, 0, 0, 0, 0, 0, 548,
+ 548, 548, 26, 0, 27, 28, 1204, 1204, 1204, 0,
+ 0, 644, 0, 0, 0, 0, 0, 0, 30, 0,
+ 659, 0, 0, 0, 0, 0, 0, 51, 31, 0,
+ 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 78, 78, 78, 0,
+ 0, 0, 0, 0, 0, 257, 261, 0, 0, 0,
+ 0, 7, 8, 9, 10, 205, 12, 206, 0, 0,
+ 0, 0, 14, 0, 644, 0, 644, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 644, 17, 18,
+ 0, 644, 644, 644, 20, 1206, 0, 0, 0, 21,
+ 0, 0, 0, 23, 0, 202, 0, 0, 0, 0,
+ 0, 0, 26, 0, 27, 28, 0, 0, 1435, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
+ 0, 0, 0, 0, 78, 985, 985, 1177, 31, 78,
+ 0, 0, 78, 0, 0, 0, 32, 0, 0, 0,
+ 0, 33, 0, 0, 0, 7, 8, 9, 10, 205,
+ 12, 206, 0, 0, 0, 0, 14, 0, 0, 0,
+ 0, 202, 0, 202, 0, 202, 202, 202, 0, 0,
+ 16, 202, 17, 18, 1177, 0, 202, 0, 20, 202,
+ 0, 0, 0, 21, 0, 0, 0, 23, 0, 0,
+ 0, 0, 0, 0, 0, 0, 26, 0, 27, 28,
+ 0, 102, 0, 0, 0, 0, 0, 0, 0, 202,
+ 121, 102, 30, 204, 0, 0, 0, 102, 102, 0,
+ 102, 1489, 31, 0, 0, 78, 78, 78, 78, 78,
+ 32, 0, 0, 78, 0, 33, 594, 595, 596, 597,
+ 598, 599, 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 235, 0, 0, 0, 1206, 1206, 1206, 0,
+ 0, 0, 0, 0, 0, 0, 906, 906, 0, 906,
+ 0, 1490, 588, 589, 590, 591, 592, 593, 594, 595,
+ 596, 597, 598, 599, 600, 601, 602, 603, 604, 605,
+ 606, 607, 608, 609, 593, 594, 595, 596, 597, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 389, 0, 121, 985, 985, 1177, 1177, 1177, 0,
+ 102, 102, 985, 0, 0, 0, 0, 102, 102, 0,
+ 0, 102, 102, 102, 0, 417, 102, 102, 102, 0,
+ 0, 257, 261, 0, 0, 1177, 1177, 1177, 0, 0,
+ 78, 78, 0, 78, 0, 0, 0, 202, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1233, 127,
+ 128, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
+ 78, 78, 0, 0, 0, 0, 202, 0, 202, 202,
+ 0, 0, 0, 0, 0, 0, 21, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
+ 0, 27, 28, 0, 0, 235, 102, 1235, 0, 0,
+ 0, 0, 0, 0, 0, 30, 0, 0, 0, 985,
+ 985, 0, 985, 202, 0, 31, 102, 0, 0, 0,
+ 0, 0, 0, 32, 202, 202, 0, 202, 33, 0,
+ 0, 570, 0, 300, 8, 9, 10, 167, 12, 301,
+ 302, 303, 749, 304, 14, 0, 202, 0, 204, 0,
+ 204, 0, 0, 0, 0, 102, 0, 0, 16, 305,
+ 17, 18, 19, 1206, 306, 307, 20, 484, 308, 309,
+ 310, 21, 311, 312, 0, 23, 0, 636, 0, 313,
+ 314, 315, 316, 317, 26, 0, 27, 319, -312, 0,
+ 0, 320, 0, 0, 0, 0, 0, 321, 0, 0,
+ 937, 0, 0, 102, 0, 102, 102, 0, 323, 324,
+ 938, 7, 8, 9, 10, 0, 326, 327, 328, 0,
+ 639, 0, 0, 939, 641, 0, 0, 0, 0, 0,
+ 1206, 1206, 1206, 7, 8, 9, 10, 0, 0, 18,
+ 330, 0, 0, 0, 0, 0, 0, 0, 0, 21,
+ 102, 78, 478, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 26, 0, 27, 28, 0, 0, 0, 102,
+ 0, 21, 0, 0, 0, 0, 102, 0, 474, 102,
+ 0, 0, 0, 0, 26, 0, 27, 28, 475, 0,
+ 1432, 102, 0, 0, 0, 0, 32, 0, 0, 0,
+ 193, 476, 0, 0, 0, 257, 261, 257, 0, 0,
+ 194, 0, 0, 0, 0, 0, 0, 0, 32, 478,
+ 478, 478, 0, 195, 0, 0, 0, 0, 8, 9,
+ 0, 205, 12, 206, 7, 8, 9, 10, 14, 0,
+ 204, 0, 202, 202, 1175, 0, 0, 0, 0, 257,
+ 0, 0, 16, 0, 17, 18, 0, 0, 0, 102,
+ 20, 0, 0, 0, 0, 102, 0, 0, 0, 23,
+ 0, 0, 21, 0, 0, 0, 0, 0, 26, 261,
+ 130, 131, 0, 0, 0, 26, 0, 27, 28, 0,
+ 0, 1175, 1460, 0, -479, -479, -479, -479, -479, -479,
+ -479, 193, 0, -479, 102, -479, 0, 0, 0, 0,
+ 0, 194, 0, 0, 0, 0, -479, 0, -479, 32,
+ 0, 0, -479, 0, 195, 0, 0, -479, 0, 0,
+ 202, 0, -479, 0, 0, 0, -479, 0, -479, 0,
+ 0, 0, 0, 0, 0, -479, 0, -479, -479, -479,
+ -479, -479, 0, -479, -479, -479, -479, -479, -479, -479,
-479, -479, -479, -479, -479, -479, -479, -479, -479, -479,
- -479, -479, -479, -479, -479, -479, -479, -479, -479, 0,
- -479, -479, -479, 0, -479, -479, -479, -479, -479, -479,
- 0, -479, 0, 0, 0, 0, 1455, 0, 0, 102,
- 0, -479, -479, -479, 0, -479, 102, 121, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 235, 0,
- 0, 0, 0, 0, 0, 0, 0, 1284, 0, 1285,
- 1286, 1287, 10, 167, 12, 301, 302, 303, 0, 304,
- 14, 1288, 980, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
- 1296, 1297, 1298, 15, 16, 305, 17, 18, 19, 0,
- 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
- 1299, 23, 1300, 0, 0, 313, 314, 315, 316, 317,
- 26, 0, 1301, 319, 719, 0, 1302, 320, 0, 980,
- 0, 0, 102, 321, 0, 0, 322, 0, 0, 0,
- 0, 0, 0, 0, 323, 324, 325, 0, 0, 0,
- 0, 0, 326, 327, 328, 0, 0, 0, 0, 329,
- 0, 1303, 0, 0, 0, 0, 102, 102, 102, 0,
- 0, 0, 0, 0, 0, 0, 330, 0, 102, 0,
- 553, 0, 300, 8, 9, 10, 167, 12, 301, 302,
- 303, 732, 304, 14, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 16, 305, 17,
- 18, 19, 0, 306, 307, 20, 0, 308, 309, 310,
- 21, 311, 312, 0, 23, 0, 619, 0, 313, 314,
- 315, 316, 317, 26, 0, 27, 319, -312, 0, 0,
- 320, 0, 0, 0, 0, 0, 321, 0, 0, 902,
- 0, 102, 0, 102, 0, 0, 0, 323, 324, 903,
- 0, 0, 0, 0, 102, 326, 327, 328, 0, 622,
- 0, 0, 904, 624, 553, 0, 7, 8, 9, 10,
- 167, 12, 301, 302, 303, 732, 304, 14, 0, 330,
+ -479, -479, -479, -479, -479, -479, 0, -479, -479, -479,
+ 102, -479, -479, -479, -479, -479, -479, 0, -479, 0,
+ 0, 102, 102, 1461, 102, 102, 0, 0, -479, -479,
+ -479, 0, -479, 0, 0, 0, 0, 0, 0, 0,
+ 257, 0, 0, 0, 0, 0, 0, 8, 9, 0,
+ 167, 12, 13, 0, 0, 0, 0, 14, 0, 0,
+ 0, 202, 202, 202, 202, 1175, 0, 1297, 0, 202,
+ 0, 16, 0, 17, 18, 0, 0, 102, 0, 20,
+ 0, 0, 0, 0, 102, 121, 0, 0, 698, 0,
+ 0, 168, 1175, 1175, 1175, 0, 235, 26, 0, 130,
+ 131, 0, 0, 0, 0, 1440, 0, 1308, 1309, 1310,
+ 10, 167, 12, 301, 302, 303, 0, 304, 14, 1311,
+ 1015, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320,
+ 1321, 15, 16, 305, 17, 18, 19, 0, 306, 307,
+ 20, 0, 308, 309, 310, 21, 311, 312, 1322, 23,
+ 1323, 0, 0, 313, 314, 315, 316, 317, 26, 0,
+ 1324, 319, 736, 0, 1325, 320, 0, 1015, 0, 0,
+ 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
+ 0, 0, 323, 324, 325, 0, 202, 202, 0, 202,
+ 326, 327, 328, 0, 102, 0, 0, 329, 0, 1326,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 16, 305, 17, 18, 19, 0, 306, 307, 20,
- 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
- 619, 0, 313, 314, 315, 316, 317, 26, 0, 27,
- 28, -312, 0, 0, 320, 0, 0, 0, 0, 0,
- 321, 0, 0, 1184, 0, 0, 0, 0, 0, 980,
- 0, 323, 324, 1185, 0, 0, 0, 0, 0, 326,
- 327, 328, 0, 622, 0, 0, 1186, 624, 731, 0,
- 300, 8, 9, 10, 167, 12, 301, 302, 303, 732,
- 304, 14, 0, 330, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 16, 305, 17, 18, 19,
- 0, 306, 307, 20, 0, 308, 309, 310, 21, 311,
- 312, 0, 23, 0, 0, 102, 313, 314, 315, 316,
- 317, 26, 0, 27, 319, 0, 0, 0, 320, 0,
- 0, 0, 0, 0, 321, 0, 0, 322, 0, 0,
- 0, 0, 0, 0, 0, 323, 324, 325, 0, 0,
- 0, 0, 0, 326, 327, 328, 0, 0, 0, 0,
- 329, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 102, 102, 0, 102, -799, 835, 330, 300, 8,
+ 0, 0, 0, 1441, 330, 0, 0, 0, 0, 0,
+ 0, 0, 102, 102, 102, 202, 0, 202, 0, 0,
+ 0, 0, 0, 0, 102, 0, 1307, 0, 1308, 1309,
+ 1310, 10, 167, 12, 301, 302, 303, 0, 304, 14,
+ 1311, 0, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
+ 1320, 1321, 15, 16, 305, 17, 18, 19, 0, 306,
+ 307, 20, 0, 308, 309, 310, 21, 311, 312, 1322,
+ 23, 1323, 0, 0, 313, 314, 315, 316, 317, 26,
+ 0, 1324, 319, 736, 0, 1325, 320, 0, 0, 0,
+ 0, 0, 321, 0, 0, 322, 0, 102, 0, 102,
+ 0, 0, 0, 323, 324, 325, 18, 0, 0, 0,
+ 102, 326, 327, 328, 0, 0, 0, 0, 329, 1175,
+ 1326, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 330, 0, 0, 588, 589,
+ 590, 591, 592, 593, 594, 595, 596, 597, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
+ 0, 0, 0, 0, 0, 8, 9, 0, 167, 12,
+ 13, 0, 0, 749, 0, 14, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1175, 1175, 1175, 16,
+ 0, 17, 18, 0, 0, 1015, 0, 20, 0, 0,
+ 0, 0, 0, 0, 0, 0, 23, 202, 0, 0,
+ 0, 0, 0, 0, 0, 26, 0, 130, 131, 0,
+ 0, 0, 0, 0, 0, 0, 570, 0, 7, 8,
+ 9, 10, 167, 12, 301, 302, 303, 749, 304, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 102,
+ 0, 102, 0, 16, 305, 17, 18, 19, 0, 306,
+ 307, 20, 0, 308, 309, 310, 21, 311, 312, 0,
+ 23, 0, 636, 0, 313, 314, 315, 316, 317, 26,
+ 0, 27, 28, -312, 0, 0, 320, 0, 0, 0,
+ 0, 0, 321, 0, 0, 1201, 0, 0, 0, 102,
+ 102, 0, 102, 323, 324, 1202, 0, 0, 0, 0,
+ 0, 326, 327, 328, 0, 639, 0, 0, 1203, 641,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 330, 870, 0, 300, 8,
9, 10, 167, 12, 301, 302, 303, 0, 304, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 16, 305, 17, 18, 19, 0, 306,
+ 0, 0, 1015, 16, 305, 17, 18, 19, 0, 306,
307, 20, 0, 308, 309, 310, 21, 311, 312, 0,
23, 0, 0, 0, 313, 314, 315, 316, 317, 26,
- 0, 27, 319, 1528, 980, -789, 320, 0, 0, 0,
+ 0, 27, 319, 1531, 0, -788, 320, 0, 0, 1015,
0, 0, 321, 0, 0, 322, 0, 0, 0, 0,
0, 0, 0, 323, 324, 325, 0, 0, 0, 0,
- 0, 326, 327, 328, 0, 0, 0, 0, 329, 0,
- 722, 980, 823, 824, 825, 10, 0, 12, 535, 302,
- 303, 0, 304, 14, 0, 330, 102, 0, 102, 0,
+ 0, 326, 327, 328, 0, 0, 0, 0, 329, 739,
+ 0, 858, 859, 860, 10, 0, 12, 552, 302, 303,
+ 0, 304, 14, 0, 0, 330, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 305, 17, 0,
+ 19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
+ 311, 312, 0, 23, 0, 0, 0, 313, 314, 315,
+ 316, 317, 26, 0, 861, 862, 740, 0, 0, 320,
+ 0, 0, 0, 0, 0, 321, 0, 0, 322, 0,
+ 0, 0, 0, 0, 0, 0, 323, 324, 325, 0,
+ 0, 0, 0, 0, 326, 327, 328, 0, 0, 0,
+ 0, 329, 863, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1015, 1022, 330, 570,
+ 0, 300, 8, 9, 10, 0, 12, 301, 302, 303,
+ 0, 304, 14, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 305, 17, 18,
+ 19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
+ 311, 312, 0, 23, 0, 0, 0, 313, 314, 315,
+ 316, 317, 26, 0, 27, 319, -312, 0, 0, 320,
+ 0, 0, 0, 0, 0, 321, 0, 0, 571, 0,
+ 0, 0, 0, 0, 0, 0, 323, 324, 572, 0,
+ 0, 0, 0, 0, 326, 327, 328, 0, 0, 0,
+ 739, 573, 858, 859, 860, 10, 0, 12, 552, 302,
+ 303, 0, 304, 14, 0, 0, 0, 0, 330, 0,
0, 0, 0, 0, 0, 0, 0, 16, 305, 17,
0, 19, 0, 306, 307, 20, 0, 308, 309, 310,
21, 311, 312, 0, 23, 0, 0, 0, 313, 314,
- 315, 316, 317, 26, 0, 826, 827, 723, 0, 0,
+ 315, 316, 317, 26, 0, 861, 862, 740, 0, 0,
320, 0, 0, 0, 0, 0, 321, 0, 0, 322,
0, 0, 0, 0, 0, 0, 0, 323, 324, 325,
0, 0, 0, 0, 0, 326, 327, 328, 0, 0,
- 0, 0, 329, 828, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 987, 330,
- 553, 0, 300, 8, 9, 10, 0, 12, 301, 302,
- 303, 0, 304, 14, 0, 0, 0, 0, 0, 0,
- 0, 0, 980, 0, 0, 0, 0, 16, 305, 17,
- 18, 19, 0, 306, 307, 20, 0, 308, 309, 310,
- 21, 311, 312, 0, 23, 0, 0, 0, 313, 314,
- 315, 316, 317, 26, 0, 27, 319, -312, 0, 0,
- 320, 0, 0, 0, 0, 0, 321, 0, 0, 554,
- 0, 0, 0, 0, 0, 0, 0, 323, 324, 555,
- 0, 0, 0, 0, 0, 326, 327, 328, 0, 0,
- 0, 722, 556, 823, 824, 825, 10, 0, 12, 535,
- 302, 303, 0, 304, 14, 0, 0, 0, 0, 330,
- 0, 0, 0, 0, 0, 0, 0, 0, 16, 305,
- 17, 0, 19, 0, 306, 307, 20, 0, 308, 309,
- 310, 21, 311, 312, 0, 23, 0, 0, 0, 313,
- 314, 315, 316, 317, 26, 0, 826, 827, 723, 0,
- 0, 320, 0, 0, 0, 0, 0, 321, 0, 0,
- 322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
- 325, 0, 0, 0, 0, 0, 326, 327, 328, 0,
- 0, 0, 0, 329, 828, 722, 0, 823, 824, 825,
- 10, 0, 12, 535, 302, 303, 0, 304, 14, 0,
- 330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 329, 863, 739, 0, 858, 859, 860, 10,
+ 0, 12, 552, 302, 303, 0, 304, 14, 0, 330,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 16, 305, 17, 0, 19, 0, 306, 307, 20,
+ 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
+ 0, 0, 313, 314, 315, 316, 317, 26, 0, 861,
+ 862, 740, 0, 0, 320, 0, 0, 0, 0, 0,
+ 321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
+ 0, 323, 324, 325, 0, 0, 0, 0, 0, 326,
+ 327, 328, 0, 0, 0, 739, 329, 858, 859, 860,
+ 10, 0, 12, 552, 302, 303, 0, 304, 14, 0,
+ 0, 0, -483, 330, 0, 0, 0, 0, 0, 0,
0, 0, 16, 305, 17, 0, 19, 0, 306, 307,
20, 0, 308, 309, 310, 21, 311, 312, 0, 23,
0, 0, 0, 313, 314, 315, 316, 317, 26, 0,
- 826, 827, 723, 0, 0, 320, 0, 0, 0, 0,
+ 861, 862, 740, 0, 0, 320, 0, 0, 0, 0,
0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
- 326, 327, 328, 0, 0, 0, 722, 329, 823, 824,
- 825, 10, 0, 12, 535, 302, 303, 0, 304, 14,
- 0, 0, 0, -483, 330, 0, 0, 0, 0, 0,
+ 326, 327, 328, 0, 0, 0, 739, 329, 300, 8,
+ 9, 10, 0, 12, 552, 302, 303, 0, 304, 14,
+ 0, 0, 0, 1346, 330, 0, 0, 0, 0, 0,
0, 0, 0, 16, 305, 17, 0, 19, 0, 306,
307, 20, 0, 308, 309, 310, 21, 311, 312, 0,
23, 0, 0, 0, 313, 314, 315, 316, 317, 26,
- 0, 826, 827, 723, 0, 0, 320, 0, 0, 0,
+ 0, 27, 319, 740, 0, 0, 320, 0, 0, 0,
0, 0, 321, 0, 0, 322, 0, 0, 0, 0,
0, 0, 0, 323, 324, 325, 0, 0, 0, 0,
- 0, 326, 327, 328, 0, 0, 0, 722, 329, 300,
- 8, 9, 10, 0, 12, 535, 302, 303, 0, 304,
- 14, 0, 0, 0, 1323, 330, 0, 0, 0, 0,
- 0, 0, 0, 0, 16, 305, 17, 0, 19, 0,
- 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
- 0, 23, 0, 0, 0, 313, 314, 315, 316, 317,
- 26, 0, 27, 319, 723, 0, 0, 320, 0, 0,
- 0, 0, 0, 321, 0, 0, 322, 0, 0, 0,
- 0, 0, 0, 0, 323, 324, 325, 0, 0, 0,
- 0, 0, 326, 327, 328, 0, 0, 0, 0, 329,
- 0, 553, 0, 7, 8, 9, 10, 1327, 12, 301,
- 302, 303, 0, 304, 14, 0, 330, 0, 0, 0,
+ 0, 326, 327, 328, 0, 0, 0, 0, 329, 0,
+ 570, 0, 7, 8, 9, 10, 1350, 12, 301, 302,
+ 303, 0, 304, 14, 0, 330, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 305, 17,
+ 18, 19, 0, 306, 307, 20, 0, 308, 309, 310,
+ 21, 311, 312, 0, 23, 0, 0, 0, 313, 314,
+ 315, 316, 317, 26, 0, 27, 28, -312, 0, 0,
+ 320, 0, 0, 0, 0, 0, 321, 0, 0, 1505,
+ 0, 0, 0, 0, 0, 0, 0, 323, 324, 1506,
+ 0, 0, 0, 0, 0, 326, 327, 328, 0, 0,
+ 0, 739, 1507, 300, 8, 9, 10, 0, 12, 552,
+ 302, 303, 0, 304, 14, 0, 0, 0, 0, 330,
0, 0, 0, 0, 0, 0, 0, 0, 16, 305,
- 17, 18, 19, 0, 306, 307, 20, 0, 308, 309,
+ 17, 0, 19, 0, 306, 307, 20, 0, 308, 309,
310, 21, 311, 312, 0, 23, 0, 0, 0, 313,
- 314, 315, 316, 317, 26, 0, 27, 28, -312, 0,
+ 314, 315, 316, 317, 26, 0, 27, 319, 740, 0,
0, 320, 0, 0, 0, 0, 0, 321, 0, 0,
- 1499, 0, 0, 0, 0, 0, 0, 0, 323, 324,
- 1500, 0, 0, 0, 0, 0, 326, 327, 328, 0,
- 0, 0, 722, 1501, 300, 8, 9, 10, 0, 12,
- 535, 302, 303, 0, 304, 14, 0, 0, 0, 0,
+ 322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
+ 325, 0, 0, 0, 0, 0, 326, 327, 328, 0,
+ 0, 0, 1579, 329, 300, 8, 9, 10, 0, 12,
+ 301, 302, 303, 0, 304, 14, 0, 0, 0, 0,
330, 0, 0, 0, 0, 0, 0, 0, 0, 16,
305, 17, 0, 19, 0, 306, 307, 20, 0, 308,
309, 310, 21, 311, 312, 0, 23, 0, 0, 0,
- 313, 314, 315, 316, 317, 26, 0, 27, 319, 723,
+ 313, 314, 315, 316, 317, 26, 0, 27, 319, 0,
+ 0, -196, 320, 0, 0, 0, 0, 0, 321, 0,
+ 0, 322, 0, 0, 0, 0, 0, 0, 0, 323,
+ 324, 325, 0, 0, 0, 0, 0, 326, 327, 328,
+ 0, 0, 0, 870, 329, 300, 8, 9, 10, 0,
+ 12, 552, 302, 303, 0, 304, 14, 0, 0, 0,
+ 0, 330, 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 305, 17, 0, 19, 0, 306, 307, 20, 0,
+ 308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
+ 0, 313, 314, 315, 316, 317, 26, 0, 27, 319,
+ 0, 0, 0, 320, 0, 0, 0, 0, 0, 321,
+ 263, 0, 322, 8, 9, 0, 0, 12, 13, 0,
+ 323, 324, 325, 14, 0, 0, 0, 0, 326, 327,
+ 328, 0, 0, 0, 0, 329, 0, 16, 0, 17,
+ 0, 0, 0, 0, 0, 20, 0, 264, 265, 0,
+ -788, 0, 330, 0, 23, 0, 266, 0, 0, 0,
+ 0, 0, 0, 26, 0, 130, 131, 0, 267, 0,
+ 0, 0, 268, 269, 270, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
+ 286, 287, 288, 0, 0, 289, 290, 291, 0, 0,
+ 292, 0, 959, 293, 300, 8, 9, 10, 0, 12,
+ 552, 302, 303, 0, 304, 14, 0, 0, 0, 294,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 305, 17, 0, 19, 0, 306, 307, 20, 0, 308,
+ 309, 310, 21, 311, 312, 0, 23, 0, 0, 0,
+ 313, 314, 315, 316, 317, 26, 0, 27, 319, 0,
0, 0, 320, 0, 0, 0, 0, 0, 321, 0,
0, 322, 0, 0, 0, 0, 0, 0, 0, 323,
324, 325, 0, 0, 0, 0, 0, 326, 327, 328,
- 0, 0, 0, 835, 329, 300, 8, 9, 10, 0,
- 12, 535, 302, 303, 0, 304, 14, 0, 0, 0,
+ 0, 0, 0, 961, 329, 300, 8, 9, 10, 0,
+ 12, 552, 302, 303, 0, 304, 14, 0, 0, 0,
0, 330, 0, 0, 0, 0, 0, 0, 0, 0,
16, 305, 17, 0, 19, 0, 306, 307, 20, 0,
308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
0, 313, 314, 315, 316, 317, 26, 0, 27, 319,
- 0, 0, 0, 320, -789, 0, 0, 0, 0, 321,
+ 0, 0, 0, 320, 0, 0, 0, 0, 0, 321,
0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
- 328, 0, 0, 0, 1580, 329, 300, 8, 9, 10,
- 0, 12, 301, 302, 303, 0, 304, 14, 0, 0,
+ 328, 0, 0, 0, 1515, 329, 300, 8, 9, 10,
+ 0, 12, 552, 302, 303, 0, 304, 14, 0, 0,
0, 0, 330, 0, 0, 0, 0, 0, 0, 0,
0, 16, 305, 17, 0, 19, 0, 306, 307, 20,
0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
- 319, 0, 0, -196, 320, 0, 0, 0, 0, 0,
- 321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
- 0, 323, 324, 325, 0, 0, 0, 0, 0, 326,
- 327, 328, 0, 0, 0, 835, 329, 300, 8, 9,
- 10, 0, 12, 535, 302, 303, 0, 304, 14, 0,
- 0, 0, 0, 330, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 305, 17, 0, 19, 0, 306, 307,
- 20, 0, 308, 309, 310, 21, 311, 312, 0, 23,
- 0, 0, 0, 313, 314, 315, 316, 317, 26, 0,
- 27, 319, 0, 0, 0, 320, 0, 0, 0, 0,
- 0, 321, 263, 0, 322, 8, 9, 0, 0, 12,
- 13, 0, 323, 324, 325, 14, 0, 0, 0, 0,
- 326, 327, 328, 0, 0, 0, 0, 329, 0, 16,
- 0, 17, 0, 0, 0, 0, 0, 20, 0, 264,
- 265, 0, -789, 0, 330, 0, 23, 0, 266, 0,
- 0, 0, 0, 0, 0, 26, 0, 130, 131, 0,
- 267, 0, 0, 0, 268, 269, 270, 271, 272, 273,
- 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 0, 0, 289, 290, 291,
- 0, 0, 292, 0, 924, 293, 300, 8, 9, 10,
- 0, 12, 535, 302, 303, 0, 304, 14, 0, 0,
- 0, 294, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 16, 305, 17, 0, 19, 0, 306, 307, 20,
- 0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
- 0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
319, 0, 0, 0, 320, 0, 0, 0, 0, 0,
321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
0, 323, 324, 325, 0, 0, 0, 0, 0, 326,
- 327, 328, 0, 0, 0, 926, 329, 300, 8, 9,
- 10, 0, 12, 535, 302, 303, 0, 304, 14, 0,
- 0, 0, 0, 330, 0, 0, 0, 0, 0, 0,
- 0, 0, 16, 305, 17, 0, 19, 0, 306, 307,
- 20, 0, 308, 309, 310, 21, 311, 312, 0, 23,
- 0, 0, 0, 313, 314, 315, 316, 317, 26, 0,
- 27, 319, 0, 0, 0, 320, 0, 0, 0, 0,
- 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
- 0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
- 326, 327, 328, 0, 0, 0, 1512, 329, 300, 8,
- 9, 10, 0, 12, 535, 302, 303, 0, 304, 14,
- 0, 0, 0, 0, 330, 0, 0, 0, 0, 0,
- 0, 0, 0, 16, 305, 17, 0, 19, 0, 306,
- 307, 20, 0, 308, 309, 310, 21, 311, 312, 0,
- 23, 0, 0, 0, 313, 314, 315, 316, 317, 26,
- 0, 27, 319, 0, 0, 0, 320, 0, 0, 0,
- 0, 0, 321, 0, 0, 322, 0, 0, 0, 0,
- 0, 0, 0, 323, 324, 325, 0, 0, 0, 0,
- 0, 326, 327, 328, 300, 8, 9, 10, 329, 12,
- 535, 302, 303, 0, 304, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 330, 0, 0, 0, 16,
- 305, 17, 0, 19, 0, 306, 307, 20, 0, 308,
- 309, 310, 21, 311, 312, 0, 23, 0, 0, 0,
- 313, 314, 315, 316, 317, 26, 0, 27, 319, 0,
- 0, 0, 320, 0, 0, 0, 0, 0, 321, 0,
- 764, 322, 7, 8, 765, 10, 167, 12, 13, 323,
- 324, 325, 0, 14, 0, 0, 0, 326, 327, 328,
- 0, 0, 0, 0, 329, 0, 0, 16, 0, 17,
- 18, 19, 0, 0, 0, 20, -528, 0, 0, 0,
- 21, 330, 874, 0, 23, 766, 0, 168, 0, 0,
- 0, 0, 0, 26, 0, 27, 28, 0, 0, 767,
- 0, 768, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 0, 0, 0, 0, 0, 0, 0, 32, 0, 0,
- 0, 0, 33, 0, 0, 1285, 1286, 1287, 10, 167,
- 12, 301, 302, 303, 0, 304, 14, 1288, -528, 1289,
- 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 15,
- 16, 305, 17, 18, 19, 0, 306, 307, 20, 0,
- 308, 309, 310, 21, 311, 312, 1299, 23, 1300, 0,
- 0, 313, 314, 315, 316, 317, 26, 0, 1301, 319,
- 719, 0, 1302, 320, 0, 0, 0, 0, 0, 321,
- 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
- 323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
- 328, 0, 0, 0, 0, 329, 0, 1303, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1433, 330, 1285, 1286, 1287, 10, 167, 12, 301,
- 302, 303, 0, 304, 14, 1288, 0, 1289, 1290, 1291,
- 1292, 1293, 1294, 1295, 1296, 1297, 1298, 15, 16, 305,
+ 327, 328, 300, 8, 9, 10, 329, 12, 552, 302,
+ 303, 0, 304, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 330, 0, 0, 0, 16, 305, 17,
+ 0, 19, 0, 306, 307, 20, 0, 308, 309, 310,
+ 21, 311, 312, 0, 23, 0, 0, 0, 313, 314,
+ 315, 316, 317, 26, 0, 27, 319, 0, 0, 0,
+ 320, 0, 0, 0, 0, 0, 321, 0, 506, 322,
+ 7, 8, 507, 10, 167, 12, 13, 323, 324, 325,
+ 0, 14, 0, 0, 0, 326, 327, 328, 0, 0,
+ 0, 0, 329, 0, 0, 16, 0, 17, 18, 19,
+ 0, 0, 0, 20, -528, 0, 0, 0, 21, 330,
+ 909, 0, 23, 508, 0, 168, 0, 0, 0, 0,
+ 0, 26, 0, 27, 28, 0, 0, 509, 0, 510,
+ 0, 0, 0, 0, 0, 0, 0, 30, 506, 0,
+ 7, 8, 507, 10, 167, 12, 13, 31, 0, 0,
+ 0, 14, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 0, 0, 0, 16, 0, 17, 18, 19,
+ 0, 0, 0, 20, -527, 0, -528, 0, 21, 0,
+ 0, 0, 23, 508, 0, 168, 0, 0, 0, 0,
+ 0, 26, 0, 27, 28, 0, 0, 509, 0, 510,
+ 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 31, 0, 0,
+ 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
+ 33, 0, 0, 1308, 1309, 1310, 10, 167, 12, 301,
+ 302, 303, 0, 304, 14, 1311, -527, 1312, 1313, 1314,
+ 1315, 1316, 1317, 1318, 1319, 1320, 1321, 15, 16, 305,
17, 18, 19, 0, 306, 307, 20, 0, 308, 309,
- 310, 21, 311, 312, 1299, 23, 1300, 0, 0, 313,
- 314, 315, 316, 317, 26, 0, 1301, 319, 719, 0,
- 1302, 320, 0, 0, 0, 0, 0, 321, 0, 0,
+ 310, 21, 311, 312, 1322, 23, 1323, 0, 0, 313,
+ 314, 315, 316, 317, 26, 0, 1324, 319, 736, 0,
+ 1325, 320, 0, 0, 0, 0, 0, 321, 0, 0,
322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
325, 0, 0, 0, 0, 0, 326, 327, 328, 0,
- 0, 0, 0, 329, 0, 1303, 0, 1285, 1286, 1287,
- 10, 167, 12, 301, 302, 303, 0, 304, 14, 1288,
- 330, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
- 1298, 15, 16, 305, 17, 18, 19, 0, 306, 307,
- 20, 0, 308, 309, 310, 21, 311, 312, 1299, 23,
- 1300, 0, 0, 313, 314, 315, 316, 317, 26, 0,
- 1301, 319, 1557, 0, 1302, 320, 0, 0, 0, 0,
- 0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
- 0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
- 326, 327, 328, 0, 0, 0, 0, 329, 0, 1303,
- 0, 1285, 1286, 1287, 10, 167, 12, 301, 302, 303,
- 0, 304, 14, 1288, 330, 1289, 1290, 1291, 1292, 1293,
- 1294, 1295, 1296, 1297, 1298, 15, 16, 305, 17, 18,
+ 0, 0, 0, 329, 0, 1326, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1445,
+ 330, 1308, 1309, 1310, 10, 167, 12, 301, 302, 303,
+ 0, 304, 14, 1311, 0, 1312, 1313, 1314, 1315, 1316,
+ 1317, 1318, 1319, 1320, 1321, 15, 16, 305, 17, 18,
19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
- 311, 312, 1299, 23, 1300, 0, 0, 313, 314, 315,
- 316, 317, 26, 0, 1301, 319, 0, 0, 1302, 320,
+ 311, 312, 1322, 23, 1323, 0, 0, 313, 314, 315,
+ 316, 317, 26, 0, 1324, 319, 736, 0, 1325, 320,
0, 0, 0, 0, 0, 321, 0, 0, 322, 0,
0, 0, 0, 0, 0, 0, 323, 324, 325, 0,
0, 0, 0, 0, 326, 327, 328, 0, 0, 0,
- 0, 329, 0, 1303, 300, 8, 9, 10, 167, 12,
- 301, 302, 303, 732, 304, 14, 0, 0, 330, 0,
+ 0, 329, 0, 1326, 0, 1308, 1309, 1310, 10, 167,
+ 12, 301, 302, 303, 0, 304, 14, 1311, 330, 1312,
+ 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 15,
+ 16, 305, 17, 18, 19, 0, 306, 307, 20, 0,
+ 308, 309, 310, 21, 311, 312, 1322, 23, 1323, 0,
+ 0, 313, 314, 315, 316, 317, 26, 0, 1324, 319,
+ 1556, 0, 1325, 320, 0, 0, 0, 0, 0, 321,
+ 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
+ 323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
+ 328, 0, 0, 0, 0, 329, 0, 1326, 0, 1308,
+ 1309, 1310, 10, 167, 12, 301, 302, 303, 0, 304,
+ 14, 1311, 330, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
+ 1319, 1320, 1321, 15, 16, 305, 17, 18, 19, 0,
+ 306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
+ 1322, 23, 1323, 0, 0, 313, 314, 315, 316, 317,
+ 26, 0, 1324, 319, 0, 0, 1325, 320, 0, 0,
+ 0, 0, 0, 321, 0, 0, 322, 0, 0, 0,
+ 0, 0, 0, 0, 323, 324, 325, 0, 0, 0,
+ 0, 0, 326, 327, 328, 0, 0, 0, 0, 329,
+ 0, 1326, 300, 8, 9, 10, 167, 12, 301, 302,
+ 303, 749, 304, 14, 0, 0, 330, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 16, 305, 17,
+ 18, 19, 0, 306, 307, 20, 0, 308, 309, 310,
+ 21, 311, 312, 0, 23, 0, 636, 0, 313, 314,
+ 315, 316, 317, 26, 0, 27, 319, 0, 0, 0,
+ 320, 0, 0, 0, 0, 0, 321, 0, 0, 937,
+ 0, 0, 0, 0, 0, 0, 0, 323, 324, 938,
+ 0, 0, 0, 0, 0, 326, 327, 328, 0, 639,
+ 0, 0, 939, 641, 7, 8, 9, 10, 167, 12,
+ 301, 302, 303, 749, 304, 14, 0, 0, 0, 330,
0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
305, 17, 18, 19, 0, 306, 307, 20, 0, 308,
- 309, 310, 21, 311, 312, 0, 23, 0, 619, 0,
- 313, 314, 315, 316, 317, 26, 0, 27, 319, 0,
+ 309, 310, 21, 311, 312, 0, 23, 0, 636, 0,
+ 313, 314, 315, 316, 317, 26, 0, 27, 28, 0,
0, 0, 320, 0, 0, 0, 0, 0, 321, 0,
- 0, 902, 0, 0, 0, 0, 0, 0, 0, 323,
- 324, 903, 0, 0, 0, 0, 0, 326, 327, 328,
- 0, 622, 0, 0, 904, 624, 7, 8, 9, 10,
- 167, 12, 301, 302, 303, 732, 304, 14, 0, 0,
+ 0, 1201, 0, 0, 0, 0, 0, 0, 0, 323,
+ 324, 1202, 0, 0, 0, 0, 0, 326, 327, 328,
+ 0, 639, 0, 0, 1203, 641, 300, 8, 9, 10,
+ 0, 12, 301, 302, 303, 0, 304, 14, 0, 0,
0, 330, 0, 0, 0, 0, 0, 0, 0, 0,
0, 16, 305, 17, 18, 19, 0, 306, 307, 20,
0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
- 619, 0, 313, 314, 315, 316, 317, 26, 0, 27,
- 28, 0, 0, 0, 320, 0, 0, 0, 0, 0,
- 321, 0, 0, 1184, 0, 0, 0, 0, 0, 0,
- 0, 323, 324, 1185, 0, 0, 0, 0, 0, 326,
- 327, 328, 0, 622, 0, 0, 1186, 624, 7, 8,
+ 636, 0, 313, 314, 315, 316, 317, 26, 0, 27,
+ 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 321, 0, 0, 937, 0, 0, 0, 0, 0, 0,
+ 0, 323, 324, 938, 0, 0, 0, 0, 0, 326,
+ 327, 328, 0, 639, 0, 0, 939, 641, 7, 8,
9, 10, 0, 12, 301, 302, 303, 0, 304, 14,
0, 0, 0, 330, 0, 0, 0, 0, 0, 0,
0, 0, 0, 16, 305, 17, 18, 19, 0, 306,
307, 20, 0, 308, 309, 310, 21, 311, 312, 0,
- 23, 0, 619, 0, 313, 314, 315, 316, 317, 26,
+ 23, 0, 636, 0, 313, 314, 315, 316, 317, 26,
0, 27, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 321, 0, 0, 1184, 0, 0, 0, 0,
- 0, 0, 0, 323, 324, 1185, 0, 0, 0, 0,
- 0, 326, 327, 328, 0, 622, 0, 0, 1186, 624,
- 300, 8, 9, 10, 0, 12, 535, 302, 303, 0,
+ 0, 0, 321, 0, 0, 1201, 0, 0, 0, 0,
+ 0, 0, 0, 323, 324, 1202, 0, 0, 0, 0,
+ 0, 326, 327, 328, 0, 639, 0, 0, 1203, 641,
+ 300, 8, 9, 10, 0, 12, 552, 302, 303, 0,
304, 14, 0, 0, 0, 330, 0, 0, 0, 0,
0, 0, 0, 0, 0, 16, 305, 17, 18, 19,
0, 306, 307, 20, 0, 308, 309, 310, 21, 311,
312, 0, 23, 0, 0, 0, 313, 314, 315, 316,
317, 26, 0, 27, 319, 0, 0, 0, 320, 0,
- 0, 0, 0, 0, 321, 0, 0, 554, 0, 0,
- 0, 0, 0, 0, 0, 323, 324, 555, 0, 0,
+ 0, 0, 0, 0, 321, 0, 0, 571, 0, 0,
+ 0, 0, 0, 0, 0, 323, 324, 572, 0, 0,
0, 0, 0, 326, 327, 328, 300, 8, 9, 10,
- 556, 12, 535, 302, 303, 0, 304, 14, 0, 0,
+ 573, 12, 552, 302, 303, 0, 304, 14, 0, 0,
0, 0, 0, 0, 0, 0, 0, 330, 0, 0,
0, 16, 305, 17, 0, 19, 0, 306, 307, 20,
0, 308, 309, 310, 21, 311, 312, 0, 23, 0,
0, 0, 313, 314, 315, 316, 317, 26, 0, 27,
- 319, 0, 0, 1406, 320, 0, 0, 0, 0, 0,
+ 319, 0, 0, 1418, 320, 0, 0, 0, 0, 0,
321, 0, 0, 322, 0, 0, 0, 0, 0, 0,
0, 323, 324, 325, 0, 0, 0, 0, 0, 326,
327, 328, 0, 0, 0, 0, 329, 300, 8, 9,
@@ -2338,16 +2384,16 @@ static const short yytable[] = { 59,
27, 319, 0, 0, 0, 0, 0, 0, 0, 0,
0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
- 326, 327, 328, 7, 8, 9, 10, 329, 12, 535,
+ 326, 327, 328, 7, 8, 9, 10, 329, 12, 552,
302, 303, 0, 304, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 330, 0, 0, 0, 16, 305,
17, 18, 19, 0, 306, 307, 20, 0, 308, 309,
310, 21, 311, 312, 0, 23, 0, 0, 0, 313,
314, 315, 316, 317, 26, 0, 27, 28, 0, 0,
0, 320, 0, 0, 0, 0, 0, 321, 0, 0,
- 1499, 0, 0, 0, 0, 0, 0, 0, 323, 324,
- 1500, 0, 0, 0, 0, 0, 326, 327, 328, 300,
- 8, 9, 10, 1501, 12, 301, 302, 303, 0, 304,
+ 1505, 0, 0, 0, 0, 0, 0, 0, 323, 324,
+ 1506, 0, 0, 0, 0, 0, 326, 327, 328, 300,
+ 8, 9, 10, 1507, 12, 301, 302, 303, 0, 304,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
330, 0, 0, 0, 16, 305, 17, 0, 19, 0,
306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
@@ -2364,7 +2410,7 @@ static const short yytable[] = { 59,
0, 0, 0, 320, 0, 0, 0, 0, 0, 321,
0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
- 328, 300, 8, 9, 10, 329, 12, 535, 302, 303,
+ 328, 300, 8, 9, 10, 329, 12, 552, 302, 303,
0, 304, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 330, 0, 0, 0, 16, 305, 17, 0,
19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
@@ -2373,15 +2419,15 @@ static const short yytable[] = { 59,
0, 0, 0, 0, 0, 321, 0, 0, 322, 0,
0, 0, 0, 0, 0, 0, 323, 324, 325, 0,
0, 0, 0, 0, 326, 327, 328, 300, 8, 9,
- 10, 329, 12, 535, 302, 303, 0, 304, 14, 0,
+ 10, 329, 12, 552, 302, 303, 0, 304, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 330, 0,
0, 0, 16, 305, 17, 0, 19, 0, 306, 307,
20, 0, 308, 309, 310, 21, 311, 312, 0, 23,
0, 0, 0, 313, 314, 315, 316, 317, 26, 0,
- 27, 319, 568, 0, 0, 0, 0, 0, 0, 0,
+ 27, 319, 585, 0, 0, 0, 0, 0, 0, 0,
0, 321, 0, 0, 322, 0, 0, 0, 0, 0,
0, 0, 323, 324, 325, 0, 0, 0, 0, 0,
- 326, 327, 328, 300, 8, 9, 10, 569, 12, 535,
+ 326, 327, 328, 300, 8, 9, 10, 586, 12, 552,
302, 303, 0, 304, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 330, 0, 0, 0, 16, 305,
17, 0, 19, 0, 306, 307, 20, 0, 308, 309,
@@ -2390,16 +2436,16 @@ static const short yytable[] = { 59,
0, 0, 0, 0, 0, 0, 0, 321, 0, 0,
322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
325, 0, 0, 0, 0, 0, 326, 327, 328, 0,
- 0, 0, 0, 329, 607, 300, 8, 9, 10, 0,
- 12, 535, 302, 303, 0, 304, 14, 0, 0, 0,
+ 0, 0, 0, 329, 624, 300, 8, 9, 10, 0,
+ 12, 552, 302, 303, 0, 304, 14, 0, 0, 0,
330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16, 305, 17, 18, 19, 0, 306, 307, 20, 0,
308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
0, 313, 314, 315, 316, 317, 26, 0, 27, 319,
0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 0, 0, 554, 0, 0, 0, 0, 0, 0, 0,
- 323, 324, 555, 0, 0, 0, 0, 0, 326, 327,
- 328, 1144, 8, 9, 10, 556, 12, 535, 302, 303,
+ 0, 0, 571, 0, 0, 0, 0, 0, 0, 0,
+ 323, 324, 572, 0, 0, 0, 0, 0, 326, 327,
+ 328, 1161, 8, 9, 10, 573, 12, 552, 302, 303,
0, 304, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 330, 0, 0, 0, 16, 305, 17, 0,
19, 0, 306, 307, 20, 0, 308, 309, 310, 21,
@@ -2414,9 +2460,9 @@ static const short yytable[] = { 59,
20, 0, 308, 309, 310, 21, 311, 312, 0, 23,
0, 0, 0, 313, 314, 315, 316, 317, 26, 0,
27, 28, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 321, 0, 0, 1499, 0, 0, 0, 0, 0,
- 0, 0, 323, 324, 1500, 0, 0, 0, 0, 0,
- 326, 327, 328, 300, 8, 9, 10, 1501, 12, 535,
+ 0, 321, 0, 0, 1505, 0, 0, 0, 0, 0,
+ 0, 0, 323, 324, 1506, 0, 0, 0, 0, 0,
+ 326, 327, 328, 300, 8, 9, 10, 1507, 12, 552,
302, 303, 0, 304, 14, 0, 0, 0, 0, 0,
0, 0, 0, 0, 330, 0, 0, 0, 16, 305,
17, 0, 19, 0, 306, 307, 20, 0, 308, 309,
@@ -2425,7 +2471,7 @@ static const short yytable[] = { 59,
0, 0, 0, 0, 0, 0, 0, 321, 0, 0,
322, 0, 0, 0, 0, 0, 0, 0, 323, 324,
325, 0, 0, 0, 0, 0, 326, 327, 328, 300,
- 8, 9, 10, 536, 12, 535, 302, 303, 0, 304,
+ 8, 9, 10, 553, 12, 552, 302, 303, 0, 304,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
330, 0, 0, 0, 16, 305, 17, 0, 19, 0,
306, 307, 20, 0, 308, 309, 310, 21, 311, 312,
@@ -2433,815 +2479,805 @@ static const short yytable[] = { 59,
26, 0, 27, 319, 0, 0, 0, 0, 0, 0,
0, 0, 0, 321, 0, 0, 322, 0, 0, 0,
0, 0, 0, 0, 323, 324, 325, 0, 0, 0,
- 0, 0, 326, 327, 328, 300, 8, 9, 10, 539,
- 12, 535, 302, 303, 0, 304, 14, 0, 0, 0,
+ 0, 0, 326, 327, 328, 300, 8, 9, 10, 556,
+ 12, 552, 302, 303, 0, 304, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 330, 0, 0, 0,
16, 305, 17, 0, 19, 0, 306, 307, 20, 0,
308, 309, 310, 21, 311, 312, 0, 23, 0, 0,
0, 313, 314, 315, 316, 317, 26, 0, 27, 319,
0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
- 0, 6, 322, 7, 8, 9, 10, 11, 12, 13,
- 323, 324, 325, 0, 14, 0, 0, 0, 326, 327,
- 328, 0, 0, 0, 0, 329, 0, 15, 16, 0,
- 17, 18, 19, 0, 0, 0, 20, 0, 0, 0,
- 0, 21, 330, 0, 22, 23, 24, 0, 25, 0,
- 0, 0, 0, 0, 26, 0, 27, 28, 0, 0,
- 29, 0, 7, 8, 9, 10, 0, 0, 246, 0,
- 30, 0, 0, 0, 0, 0, 0, 0, 0, 166,
- 31, 7, 8, 9, 10, 167, 12, 13, 32, 0,
- 18, 0, 14, 33, 0, 0, 0, 0, 34, 0,
- 21, 0, 0, 0, 0, 0, 16, 0, 17, 18,
- 19, 0, 0, 26, 20, 27, 28, 0, 0, 21,
- 0, 0, 0, 23, 0, 0, 168, 0, 0, 193,
- 0, 0, 26, 0, 27, 28, 0, 0, 764, 194,
- 7, 8, 765, 10, 167, 12, 13, 32, 30, 0,
- 0, 14, 195, 0, 0, 0, 0, 0, 31, 0,
- 0, 0, 0, 0, 0, 16, 32, 17, 18, 19,
- 0, 33, 0, 20, 0, 0, 34, 0, 21, 0,
- 0, 0, 23, 766, 0, 168, 0, 0, 0, 0,
- 0, 26, 0, 27, 28, 0, 0, 767, 0, 768,
- 0, 0, 0, 0, 0, 0, 6, 30, 7, 8,
- 9, 10, 11, 12, 13, 0, 0, 31, 0, 14,
- 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
- 33, 0, 0, 16, 0, 17, 18, 0, 0, 0,
- 0, 20, 0, 0, 0, 0, 21, 0, 0, 0,
- 23, 0, 0, 438, 0, 0, 0, 0, 0, 26,
- 0, 27, 28, 0, 0, 29, 0, -387, 8, 9,
- -387, -387, 12, 246, 0, 30, 0, 0, 14, 0,
- 0, 0, 0, 0, 0, 31, 0, 0, 0, 0,
- 0, 0, 16, 32, 17, -387, 0, 0, 33, 0,
- 20, 0, 0, 0, 0, -387, 0, 0, 0, 23,
- 0, 619, 0, 0, 0, 0, 0, 0, 26, 0,
- 130, 131, 7, 8, 9, 10, 205, 12, 206, 0,
- 0, 0, 0, 14, 620, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 621, 0, 0, 16, 0, 17,
- 18, 0, -387, 0, 622, 20, 0, 623, 624, 0,
- 21, 0, 0, 0, 23, 0, 0, 0, 0, 0,
- 0, 0, 0, 26, 0, 27, 28, 0, 0, 207,
- 0, 1037, 8, 765, 10, 205, 12, 206, 0, 30,
- 0, 0, 14, 0, 0, 0, 0, 0, 0, 31,
- 0, 0, 0, 0, 0, 0, 16, 32, 17, 18,
- 0, 0, 33, 0, 20, 0, 0, 0, 0, 21,
- 0, 0, 0, 23, 0, 0, 0, 0, 0, 0,
- 0, 0, 26, 0, 27, 28, 0, 0, 0, 0,
- 1039, 0, 0, 0, 0, 0, 0, 0, 30, 7,
- 8, 9, 10, 205, 12, 206, 0, 0, 31, 0,
- 14, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 33, 0, 0, 16, 0, 17, 18, 0, 0,
- 0, 0, 20, 0, 0, 0, 0, 21, 0, 0,
- 0, 23, 0, 0, 0, 0, 0, 0, 0, 0,
- 26, 0, 27, 28, 0, 0, 1423, 0, 7, 8,
- 9, 10, 167, 12, 13, 0, 30, 0, 0, 14,
- 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
- 0, 0, 0, 16, 32, 17, 18, 0, 0, 33,
- 0, 20, 0, 0, 0, 0, 21, 0, 0, 0,
- 23, 0, 0, 0, 0, 0, 0, 0, 0, 26,
- 0, 27, 28, 7, 8, 9, 10, 205, 12, 206,
- 0, 0, 0, 0, 14, 30, 0, 0, 0, 0,
- 7, 8, 9, 10, 0, 31, 13, 0, 16, 0,
- 17, 18, 0, 32, 0, 0, 20, 0, 33, 0,
- 0, 21, 0, 0, 0, 23, 0, 0, 18, 0,
- 0, 0, 0, 0, 26, 0, 27, 28, 21, 0,
- 0, 7, 8, 9, 10, 0, 0, 518, 0, 0,
- 30, 26, 0, 27, 28, 0, 0, 0, 0, 0,
- 31, 0, 0, 0, 0, 0, 0, 474, 32, 18,
- 0, 0, 0, 33, 0, 0, 0, 475, 0, 21,
- 0, 0, 0, 0, 0, 32, 0, 0, 0, 0,
- 476, 0, 26, 0, 27, 28, 0, 0, 0, 0,
- 18, 0, 0, 0, 0, 0, 0, 0, 193, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 194, 0,
- 0, 0, 0, 0, 0, 0, 32, 0, 0, 0,
- 0, 195, 571, 572, 573, 574, 575, 576, 577, 578,
- 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
- 589, 590, 591, 592, 571, 572, 573, 574, 575, 576,
- 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
- 587, 588, 589, 590, 591, 592, 571, 572, 573, 574,
- 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
- 585, 586, 587, 588, 589, 590, 591, 592, 0, 0,
- 0, 0, 1238, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 660, 0, 0,
- 1547, 571, 572, 573, 574, 575, 576, 577, 578, 579,
- 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
- 590, 591, 592, 1565, 571, 572, 573, 574, 575, 576,
- 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
- 587, 588, 589, 590, 591, 592, 571, 572, 573, 574,
- 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
- 585, 586, 587, 588, 589, 590, 591, 592, 571, 572,
- 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
- 0, 584, 585, 586, 587, 588, 589, 590, 591, 592,
- 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
- 585, 586, 587, 588, 589, 590, 591, 592, 576, 577,
- 578, 579, 580, 581, 582, 583, 584, 585, 586, 587,
- 588, 589, 590, 591, 592, 578, 579, 580, 581, 582,
- 583, 584, 585, 586, 587, 588, 589, 590, 591, 592
+ 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
+ 323, 324, 325, 0, 0, 0, 0, 0, 326, 327,
+ 328, 0, 0, 8, 9, 329, 167, 12, 13, 0,
+ 0, 1550, 0, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 330, 0, 0, 0, 0, 16, 0, 17,
+ 18, 0, 0, 0, 0, 20, 0, 0, 0, 0,
+ 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
+ 0, 0, 0, 26, 0, 130, 131, 588, 589, 590,
+ 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 588,
+ 589, 590, 591, 592, 593, 594, 595, 596, 597, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 0, 0, 0, 0, 1261, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 677, 0, 0, 1546, 588, 589, 590, 591, 592, 593,
+ 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
+ 604, 605, 606, 607, 608, 609, 1564, 588, 589, 590,
+ 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
+ 601, 602, 603, 604, 605, 606, 607, 608, 609, 588,
+ 589, 590, 591, 592, 593, 594, 595, 596, 597, 598,
+ 599, 600, 601, 602, 603, 604, 605, 606, 607, 608,
+ 609, 588, 589, 590, 591, 592, 593, 594, 595, 596,
+ 597, 598, 599, 0, 601, 602, 603, 604, 605, 606,
+ 607, 608, 609
};
static const short yycheck[] = { 4,
- 174, 149, 150, 176, 23, 209, 55, 161, 175, 4,
- 349, 126, 717, 402, 80, 455, 156, 14, 4, 402,
- 251, 90, 4, 92, 46, 42, 482, 355, 355, 566,
- 35, 134, 80, 304, 305, 42, 863, 42, 84, 623,
- 35, 373, 59, 247, 133, 134, 630, 699, 716, 35,
- 4, 1304, 57, 35, 76, 402, 42, 42, 603, 646,
- 42, 503, 692, 787, 1481, 1388, 337, 72, 137, 793,
- 124, 62, 217, 218, 54, 133, 30, 31, 144, 84,
- 42, 35, 460, 88, 4, 90, 83, 92, 42, 440,
- 209, 769, 296, 771, 1482, 763, 42, 11, 1504, 218,
- 778, 11, 107, 108, 60, 4, 1480, 11, 47, 106,
- 33, 47, 0, 700, 7, 35, 12, 59, 1524, 490,
- 560, 37, 42, 12, 355, 33, 175, 54, 356, 357,
- 84, 136, 137, 0, 139, 62, 35, 203, 509, 1314,
- 1, 4, 47, 42, 37, 349, 1321, 74, 62, 140,
- 9, 1525, 169, 109, 93, 94, 1, 93, 165, 74,
- 165, 1, 169, 59, 169, 156, 62, 109, 624, 108,
- 59, 176, 35, 62, 1562, 155, 900, 1583, 59, 42,
- 408, 409, 136, 169, 169, 84, 109, 169, 93, 94,
- 1607, 213, 209, 109, 108, 149, 150, 58, 108, 538,
- 217, 218, 61, 108, 108, 33, 57, 169, 4, 5,
- 47, 165, 108, 58, 262, 169, 136, 62, 58, 62,
- 200, 212, 62, 169, 74, 54, 48, 108, 1481, 220,
- 247, 4, 4, 62, 47, 25, 47, 136, 1528, 193,
- 194, 149, 150, 151, 1567, 165, 237, 47, 1622, 169,
- 95, 248, 4, 47, 93, 95, 93, 346, 54, 93,
- 56, 57, 35, 35, 916, 108, 165, 919, 58, 60,
- 169, 108, 62, 136, 70, 3, 4, 5, 718, 296,
- 93, 94, 93, 35, 80, 136, 1576, 195, 346, 358,
- 393, 93, 297, 93, 448, 108, 342, 108, 94, 93,
- 1024, 25, 165, 27, 74, 95, 169, 58, 960, 961,
- 1485, 941, 1036, 59, 306, 307, 643, 862, 109, 74,
- 904, 149, 150, 151, 329, 176, 474, 475, 56, 57,
- 322, 385, 349, 325, 58, 682, 328, 342, 62, 331,
- 672, 486, 487, 335, 59, 350, 1070, 98, 1072, 494,
- 739, 343, 80, 358, 359, 404, 739, 60, 355, 1534,
- 711, 712, 108, 508, 948, 4, 5, 195, 487, 4,
- 5, 95, 62, 93, 60, 59, 107, 25, 54, 27,
- 12, 612, 527, 1061, 74, 47, 62, 47, 342, 406,
- 47, 60, 54, 108, 182, 27, 735, 402, 74, 31,
- 405, 25, 3, 4, 5, 359, 109, 64, 945, 1584,
- 58, 995, 74, 48, 62, 47, 402, 56, 57, 647,
- 1247, 56, 57, 109, 108, 442, 1013, 59, 60, 498,
- 62, 93, 64, 93, 27, 442, 93, 442, 31, 359,
- 1209, 1210, 25, 342, 27, 901, 47, 95, 402, 25,
- 60, 27, 47, 54, 1223, 56, 57, 442, 506, 450,
- 359, 93, 94, 468, 533, 4, 5, 60, 58, 486,
- 487, 64, 62, 54, 496, 58, 108, 494, 38, 62,
- 4, 5, 58, 1135, 1136, 9, 62, 865, 442, 47,
- 31, 508, 93, 498, 54, 59, 359, 58, 93, 94,
- 1168, 506, 493, 402, 74, 44, 64, 54, 359, 47,
- 527, 75, 95, 77, 468, 54, 109, 56, 57, 95,
- 474, 475, 442, 54, 506, 47, 58, 74, 533, 59,
- 54, 536, 56, 57, 539, 93, 710, 1205, 543, 544,
- 545, 546, 547, 442, 984, 75, 70, 47, 8, 9,
- 1377, 556, 506, 942, 14, 93, 80, 47, 604, 942,
- 109, 566, 554, 555, 569, 47, 474, 475, 476, 468,
- 673, 93, 1014, 1157, 1016, 803, 36, 680, 1020, 442,
- 1349, 54, 910, 910, 12, 45, 506, 59, 60, 1358,
- 1359, 680, 1361, 93, 94, 942, 54, 54, 47, 604,
- 649, 74, 1186, 93, 94, 47, 675, 506, 812, 93,
- 54, 93, 757, 47, 47, 64, 74, 74, 623, 3,
- 4, 5, 6, 54, 480, 630, 94, 3, 4, 5,
- 74, 59, 488, 650, 62, 906, 64, 634, 54, 688,
- 54, 690, 691, 506, 93, 94, 474, 475, 476, 47,
- 604, 93, 47, 1109, 47, 506, 47, 41, 74, 93,
- 93, 108, 681, 54, 48, 62, 620, 621, 1336, 623,
- 675, 54, 56, 57, 691, 62, 630, 74, 54, 910,
- 56, 57, 58, 74, 689, 75, 735, 74, 693, 62,
- 3, 4, 5, 6, 109, 93, 80, 716, 93, 47,
- 93, 74, 93, 47, 88, 604, 47, 935, 108, 47,
- 62, 1089, 1090, 54, 33, 800, 801, 802, 735, 788,
- 789, 769, 791, 771, 623, 4, 5, 776, 41, 777,
- 778, 630, 58, 74, 739, 48, 784, 108, 64, 108,
- 757, 1510, 1511, 56, 57, 93, 3, 4, 5, 93,
- 772, 773, 93, 4, 5, 93, 108, 11, 9, 781,
- 1202, 1203, 1204, 98, 769, 1104, 771, 80, 908, 48,
- 8, 9, 777, 778, 60, 88, 14, 56, 57, 784,
- 3, 47, 787, 788, 789, 739, 791, 769, 793, 771,
- 107, 108, 4, 5, 968, 812, 778, 54, 36, 56,
- 57, 80, 784, 54, 1182, 56, 57, 45, 93, 47,
- 4, 5, 60, 1191, 1192, 769, 111, 771, 1196, 70,
- 86, 87, 4, 5, 778, 91, 92, 93, 94, 80,
- 784, 150, 151, 787, 59, 60, 1064, 1065, 1066, 793,
- 739, 74, 54, 94, 56, 57, 62, 1105, 1106, 769,
- 1108, 771, 31, 94, 48, 93, 861, 75, 778, 77,
- 1238, 866, 56, 57, 784, 1570, 48, 94, 983, 62,
- 769, 44, 771, 93, 56, 57, 195, 4, 5, 778,
- 111, 54, 874, 93, 57, 784, 80, 953, 787, 894,
- 59, 60, 4, 5, 793, 900, 54, 74, 80, 904,
- 3, 4, 5, 6, 62, 59, 769, 74, 771, 74,
- 902, 903, 74, 910, 54, 778, 74, 908, 769, 11,
- 771, 784, 62, 59, 60, 776, 777, 778, 109, 56,
- 57, 59, 3, 784, 74, 6, 108, 942, 41, 944,
- 945, 74, 54, 948, 56, 57, 900, 27, 902, 903,
- 904, 31, 108, 56, 57, 1333, 942, 108, 70, 1399,
- 31, 59, 141, 54, 108, 27, 64, 146, 80, 31,
- 41, 62, 760, 54, 1313, 1415, 74, 75, 1027, 59,
- 60, 74, 1048, 74, 64, 56, 57, 74, 942, 108,
- 995, 109, 946, 947, 948, 783, 1374, 59, 60, 70,
- 1048, 900, 109, 1008, 108, 904, 54, 1155, 1156, 80,
- 329, 111, 329, 1061, 62, 194, 111, 88, 1040, 1024,
- 59, 60, 93, 27, 1046, 1047, 74, 74, 1050, 1051,
- 1258, 1036, 1054, 4, 5, 111, 1184, 1185, 4, 5,
- 948, 995, 59, 942, 1113, 3, 4, 5, 6, 948,
- 83, 84, 3, 4, 5, 74, 1061, 74, 75, 54,
- 77, 59, 60, 74, 1504, 1070, 111, 1072, 59, 60,
- 1024, 80, 81, 82, 83, 84, 108, 48, 108, 1061,
- 259, 47, 1036, 41, 1524, 56, 57, 995, 54, 58,
- 56, 57, 108, 1159, 108, 1100, 995, 48, 56, 57,
- 3, 4, 5, 6, 70, 56, 57, 1061, 1113, 80,
- 429, 430, 54, 1553, 80, 8, 1070, 111, 1072, 1111,
- 948, 59, 60, 93, 90, 1024, 47, 93, 94, 1518,
- 88, 59, 60, 59, 60, 1518, 59, 1036, 41, 1312,
- 64, 1061, 109, 1583, 1311, 48, 1313, 93, 465, 1168,
- 54, 1591, 1157, 56, 57, 60, 475, 476, 7, 8,
- 9, 14, 1061, 36, 64, 14, 64, 995, 64, 22,
- 60, 1070, 1220, 1072, 1179, 108, 1027, 80, 108, 62,
- 64, 1186, 31, 1522, 1179, 88, 108, 36, 108, 108,
- 108, 108, 1184, 1185, 64, 1200, 45, 1179, 1061, 64,
- 111, 1155, 1156, 1157, 75, 62, 108, 3, 4, 5,
- 1061, 60, 65, 4, 5, 75, 108, 536, 62, 536,
- 539, 108, 539, 108, 75, 1179, 543, 75, 75, 108,
- 1184, 1185, 1186, 108, 1612, 62, 555, 556, 59, 556,
- 419, 1029, 1030, 422, 3, 4, 5, 1155, 1156, 1157,
- 569, 62, 569, 108, 108, 434, 573, 48, 1157, 1179,
- 56, 57, 1311, 108, 1313, 56, 57, 3, 4, 5,
- 1058, 124, 111, 111, 94, 88, 1184, 1185, 1186, 74,
- 1179, 47, 108, 108, 601, 109, 108, 1186, 111, 80,
- 607, 470, 111, 472, 108, 148, 1313, 56, 57, 1304,
- 108, 4, 5, 108, 60, 109, 485, 1312, 59, 1314,
- 64, 630, 1304, 402, 64, 93, 1321, 59, 1522, 1314,
- 56, 57, 1304, 108, 59, 1330, 1321, 1155, 1156, 1157,
- 59, 108, 1314, 93, 1356, 1357, 93, 30, 31, 1321,
- 33, 93, 1496, 108, 93, 48, 3, 4, 5, 111,
- 1304, 1499, 1500, 56, 57, 108, 1184, 1185, 1186, 8,
- 1314, 109, 109, 108, 57, 108, 59, 1321, 108, 108,
- 108, 33, 65, 64, 111, 109, 1550, 80, 54, 468,
- 108, 3, 4, 5, 1304, 238, 239, 3, 4, 5,
- 6, 3, 4, 5, 1314, 7, 8, 9, 251, 56,
- 57, 1321, 108, 1425, 108, 1304, 3, 4, 5, 108,
- 7, 8, 9, 108, 108, 1314, 108, 62, 47, 31,
- 108, 111, 1321, 108, 36, 41, 108, 1215, 1216, 96,
- 1218, 1219, 48, 1221, 56, 57, 58, 62, 62, 60,
- 56, 57, 54, 60, 56, 57, 58, 9, 141, 60,
- 16, 60, 108, 146, 108, 108, 149, 150, 151, 56,
- 57, 108, 108, 193, 194, 195, 108, 108, 321, 108,
- 1475, 60, 88, 93, 1523, 1480, 1481, 1482, 93, 54,
- 1485, 64, 17, 176, 111, 1480, 93, 806, 93, 182,
- 1485, 103, 104, 105, 54, 60, 1501, 107, 1480, 1481,
- 193, 194, 195, 1485, 97, 1522, 108, 1499, 1500, 60,
- 363, 11, 108, 1518, 108, 60, 209, 108, 1426, 372,
- 1525, 1475, 60, 60, 217, 218, 1480, 1481, 1482, 1534,
- 1525, 1485, 385, 1555, 623, 93, 59, 64, 108, 1534,
- 60, 630, 11, 1525, 108, 1499, 1500, 3, 4, 5,
- 60, 108, 1534, 870, 11, 60, 0, 1562, 1346, 1347,
- 1480, 1481, 0, 0, 1518, 1485, 259, 746, 747, 170,
- 749, 1525, 2, 35, 673, 1413, 1475, 942, 442, 1584,
- 1534, 1480, 1481, 1482, 903, 904, 1485, 904, 169, 1584,
- 1549, 1499, 1500, 1501, 3, 4, 5, 165, 1426, 777,
- 56, 57, 1584, 1168, 94, 1525, 238, 139, 1562, 1398,
- 1622, 1248, 299, 928, 1534, 723, 923, 1622, 1336, 1518,
- 243, 3, 4, 5, 6, 1205, 1525, 1622, 777, 948,
- 1584, 784, 656, 1222, 921, 1534, 329, 200, 346, 48,
- 1622, 88, 604, 90, 124, 92, 1314, 56, 57, 502,
- 739, 1180, 1570, 1591, 1539, 1603, 3, 4, 5, 41,
- 1448, 1449, 1450, 1562, 1584, 1330, 48, 1601, 1622, 1003,
- -1, 1499, 1500, 1501, 56, 57, 995, 1, -1, 3,
- 4, 5, 6, 30, 8, 1584, -1, -1, -1, -1,
- 137, -1, 139, -1, 3, 4, 5, -1, 787, 3,
- 4, 5, 1622, -1, 793, -1, 88, 54, -1, 56,
- 57, -1, 405, 406, -1, 568, -1, 41, -1, 1507,
- 1508, -1, -1, 1622, 48, -1, 419, -1, -1, 422,
- 54, -1, 56, 57, -1, 428, 429, 430, -1, -1,
- 470, 434, 472, -1, 474, 475, 476, 56, 57, -1,
- 54, -1, 56, 57, -1, 485, -1, 9, -1, 612,
- 12, -1, -1, -1, 88, 3, 4, 5, 947, -1,
- 78, 79, 80, 81, 82, 83, 84, 470, -1, 472,
- -1, 474, 475, 476, -1, -1, 479, 1575, -1, -1,
- -1, -1, 485, 486, 487, 47, -1, 490, -1, -1,
- -1, 494, -1, -1, -1, -1, -1, 59, -1, 61,
- 62, 900, 64, -1, -1, 904, 509, -1, 56, 57,
- -1, -1, -1, 75, -1, 77, -1, 80, 681, -1,
- -1, -1, -1, -1, -1, -1, -1, 1156, 1157, 692,
- -1, 93, 94, 536, -1, -1, 539, 3, 4, 5,
- 6, 104, -1, 942, -1, -1, 108, -1, -1, 948,
- -1, 554, 555, 556, -1, -1, 1185, 1186, -1, 1186,
- 723, -1, -1, 320, -1, -1, 569, -1, -1, -1,
- 133, -1, -1, 1200, -1, 41, -1, -1, -1, -1,
- -1, 144, 48, -1, -1, 3, 4, 5, 6, -1,
- 56, 57, -1, -1, -1, -1, 995, -1, -1, -1,
- -1, 358, -1, -1, -1, -1, -1, 1234, 1235, 1236,
- 1237, -1, -1, -1, 80, -1, -1, 7, 8, 9,
- 38, 39, 88, 41, 14, 1024, -1, 630, 3, 4,
- 5, 6, -1, -1, 9, -1, 54, 1036, 56, 57,
- 203, 31, -1, -1, -1, -1, 36, 650, 4, 5,
- -1, -1, -1, 9, -1, 45, 31, -1, -1, -1,
- 461, -1, -1, -1, 1153, 1154, 41, 468, -1, 461,
- 1297, 1070, 1161, 1072, -1, 238, 468, -1, -1, 54,
- -1, 56, 57, -1, -1, -1, 689, -1, 691, 692,
- -1, 47, -1, -1, -1, 70, -1, -1, 54, 262,
- 56, 57, -1, 460, 461, 80, 746, 747, -1, 749,
- -1, 468, -1, 88, 70, -1, -1, -1, 93, -1,
- -1, 7, 8, 9, 80, -1, -1, -1, 14, -1,
- -1, -1, 735, 534, 90, -1, 776, 93, 94, -1,
- -1, 498, 534, 746, 747, 31, 749, -1, 1375, -1,
- 36, -1, -1, -1, 757, -1, -1, 760, 1157, 45,
- -1, -1, -1, -1, -1, 928, -1, -1, -1, -1,
- -1, -1, -1, -1, 777, -1, 533, 534, 941, -1,
- 783, 1408, -1, 1272, 1273, -1, 1275, 1186, -1, -1,
- -1, 354, -1, 594, -1, -1, -1, 1426, -1, 600,
- -1, -1, 594, 806, -1, -1, -1, -1, 600, 566,
- -1, 568, -1, -1, 571, 572, -1, 574, 575, 576,
- 577, 578, 579, 580, 581, 582, 583, 584, 585, 586,
- 587, 588, 589, 590, 591, 592, 637, 594, 630, 3,
- 4, 5, 6, 600, -1, 637, -1, -1, 1475, 412,
- -1, -1, -1, -1, 1481, 1482, -1, -1, -1, -1,
- 755, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- -1, 1500, 1501, 630, 1501, -1, -1, 41, -1, -1,
- 637, -1, -1, -1, 48, -1, -1, -1, -1, -1,
- -1, 786, 56, 57, -1, -1, -1, 792, -1, 902,
- 903, 904, 659, 660, -1, -1, 946, 947, 948, 4,
- 5, -1, -1, 8, 9, -1, 80, -1, 675, 14,
- -1, -1, -1, -1, 88, -1, -1, 1090, -1, -1,
- 3, 4, 5, 6, -1, 1562, -1, -1, 941, 502,
- -1, 36, -1, 946, 947, 948, -1, -1, -1, -1,
- 45, 1578, 47, -1, -1, 995, -1, -1, -1, 54,
- -1, 56, 57, -1, -1, -1, 723, 530, 41, -1,
- -1, -1, -1, 1600, -1, 70, -1, -1, -1, -1,
- 1607, 54, -1, 56, 57, 80, -1, 1027, -1, 3,
- 4, 5, 995, 7, -1, 90, -1, -1, 93, 94,
- 895, -1, 897, -1, -1, -1, -1, -1, -1, -1,
- -1, 768, -1, 1176, 806, 88, 30, -1, -1, 1182,
- 348, 349, 350, 37, -1, -1, 1029, 1030, -1, -1,
- -1, 788, 789, -1, 791, -1, -1, -1, -1, -1,
- 54, -1, 56, 57, -1, -1, -1, -1, -1, 806,
- -1, -1, -1, -1, 617, 1058, -1, -1, -1, 860,
- 861, -1, -1, -1, -1, 866, -1, -1, 860, 861,
- 633, 828, -1, -1, 866, -1, -1, -1, -1, 880,
- -1, 882, -1, 884, -1, -1, -1, -1, 880, -1,
- 882, -1, 884, -1, 3, 4, 5, 6, -1, -1,
- -1, -1, -1, 860, 861, -1, -1, -1, 865, 866,
- -1, -1, -1, 1153, 1154, 1155, 1156, 1157, -1, 1518,
- -1, 1161, -1, 880, -1, 882, -1, 884, -1, 930,
- -1, -1, 41, -1, -1, 1298, 1299, -1, 930, 48,
- 3, 4, 5, 6, 1184, 1185, 1186, 56, 57, -1,
- 1153, 1154, 1155, 1156, 1157, -1, -1, -1, 1161, -1,
- -1, -1, -1, 920, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 930, 1069, 976, 1071, 1217, 41, 88,
- -1, 1184, 1185, 1186, 976, -1, -1, -1, 945, -1,
- -1, 54, -1, 56, 57, -1, -1, 60, -1, 62,
- -1, 958, -1, 995, -1, -1, -1, 70, -1, -1,
- -1, -1, 1215, 1216, -1, 1218, 1219, 80, 1221, 976,
- -1, -1, -1, -1, -1, 88, -1, 1390, -1, -1,
- 93, 1126, 1272, 1273, -1, 1275, 4, 5, 995, -1,
- 8, 9, -1, -1, -1, -1, 14, 4, -1, 1412,
- 1413, -1, 3, 4, 5, 6, -1, 14, 9, -1,
- 28, -1, 30, -1, -1, -1, -1, 24, 36, 1272,
- 1273, -1, 1275, 30, 31, -1, 33, 45, 35, -1,
- 31, -1, 1039, -1, -1, 42, 54, -1, 56, 57,
- 41, -1, 620, 621, -1, -1, -1, -1, 55, -1,
- 57, -1, -1, 54, -1, 56, 57, -1, 65, 1312,
- 1313, 1206, -1, -1, -1, 72, 1211, -1, -1, 70,
- -1, -1, -1, -1, -1, 93, 83, 84, -1, 80,
- 1493, -1, 1089, 1090, -1, -1, 1093, 88, -1, -1,
- -1, -1, 93, 1346, 1347, -1, 909, -1, 911, 106,
- -1, -1, -1, -1, -1, -1, 1113, 348, 349, 350,
- 688, -1, 690, 691, -1, 693, -1, 1262, -1, 1170,
- -1, 1172, -1, 1174, -1, -1, -1, 134, 1170, 136,
- 1172, -1, 1174, 140, 141, -1, 1426, -1, 145, 146,
- 953, -1, 149, 150, 151, -1, -1, -1, -1, -1,
- 4, 5, -1, -1, 8, 9, -1, 735, 165, -1,
- 14, -1, 169, 1170, -1, 1172, -1, 1174, 175, 176,
- 7, 8, 9, 1426, 28, 1182, 30, 14, -1, -1,
- -1, -1, 36, -1, 1191, 1192, 193, 194, 195, 1196,
- -1, 45, -1, 47, 31, 1448, 1449, 1450, -1, 36,
- 54, -1, 56, 57, -1, -1, 1213, 1214, 45, 1499,
- 1500, 1501, -1, -1, -1, 222, 70, -1, 1269, -1,
- 1365, 1366, -1, 60, -1, -1, 80, 1269, -1, -1,
- -1, 1238, 239, -1, 812, 1048, 90, 1382, -1, 93,
- 94, 248, -1, -1, -1, -1, 1499, 1500, 1501, -1,
- -1, -1, 259, -1, 1507, 1508, -1, -1, -1, 3,
- 4, 5, 1269, 7, 8, 9, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 3, 4, 5, 6, -1, -1, 1293, 31, -1, -1,
- 297, 298, 36, -1, -1, -1, 1441, 1442, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 885, 31, 887,
- -1, -1, 56, 57, -1, 1460, 1461, -1, 41, 1132,
- 898, -1, 1575, -1, 902, 903, 1333, -1, -1, -1,
- -1, 54, -1, 56, 57, 342, -1, -1, -1, 346,
- -1, 348, 349, 350, -1, 1352, 1159, 70, -1, 4,
- 5, -1, 359, 8, 9, -1, -1, 80, -1, 14,
- -1, -1, -1, -1, -1, 88, -1, 1374, 946, 947,
- 93, -1, -1, 28, -1, 30, -1, -1, -1, 620,
- 621, 36, 623, -1, 1426, -1, 393, -1, -1, 630,
- 45, -1, -1, -1, -1, 402, -1, 404, 405, 54,
- -1, 56, 57, 58, 4, 5, -1, 1220, 8, 9,
- -1, -1, 419, -1, 14, 422, -1, -1, -1, 1426,
- -1, -1, -1, -1, -1, -1, -1, 434, 28, -1,
- 30, -1, -1, -1, -1, 442, 36, -1, 93, 1446,
- 1447, -1, -1, -1, -1, 45, -1, 688, 1455, 690,
- 691, -1, 693, -1, 54, -1, 56, 57, -1, -1,
- -1, -1, -1, 470, -1, 472, -1, 474, 475, 476,
- -1, -1, -1, 480, -1, -1, 1483, -1, 485, -1,
- -1, 488, 3, 4, 5, 6, -1, 8, 9, 10,
- 11, -1, 13, 14, 735, -1, -1, -1, -1, 506,
- -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
- 41, 42, 43, -1, 45, -1, 47, -1, 49, 50,
- 51, 52, 53, 54, -1, 56, 57, 544, 545, 546,
- 547, 3, 4, 5, 6, -1, 67, -1, -1, 70,
- -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
- -1, -1, -1, -1, -1, 86, 87, 88, -1, 90,
- -1, 812, 93, 94, -1, 1153, 1154, 1155, 1156, 41,
- -1, -1, -1, 1161, -1, 47, -1, -1, -1, 110,
- -1, -1, 54, -1, 56, 57, -1, 604, -1, 606,
- -1, -1, -1, -1, -1, 1612, 1184, 1185, 70, -1,
- -1, 618, -1, 620, 621, -1, 623, -1, 80, -1,
- -1, -1, -1, 630, -1, -1, 88, 634, 90, -1,
- -1, 93, 94, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 649, -1, 885, -1, 887, -1, 4, 5,
- -1, 7, 8, 9, -1, -1, 12, 898, 14, -1,
- -1, 902, 903, 904, -1, -1, 673, -1, -1, -1,
- -1, -1, 28, 680, 30, 31, -1, -1, -1, -1,
- 36, 688, 689, 690, 691, 692, 693, -1, -1, 45,
- -1, 47, -1, -1, 1272, 1273, -1, 1275, 54, -1,
- 56, 57, -1, -1, -1, 946, 947, 948, -1, -1,
- -1, -1, -1, -1, 70, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 80, -1, -1, -1, 735, -1,
- -1, -1, 739, -1, 90, -1, -1, 93, 94, 746,
- 747, -1, 749, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, -1, -1, 995, -1, 14, -1, -1, 766,
- -1, -1, 769, -1, 771, -1, -1, -1, -1, 776,
- 777, 778, -1, 31, 4, 5, -1, 784, 36, 9,
- 787, -1, -1, 41, -1, -1, 793, 45, -1, 47,
- -1, -1, -1, 800, 801, 802, 54, -1, 56, 57,
- -1, -1, -1, -1, -1, 812, -1, -1, -1, -1,
- -1, -1, 70, -1, -1, -1, -1, 47, 4, -1,
- -1, -1, 80, -1, 54, -1, 56, 57, 14, -1,
- 88, -1, 90, -1, -1, 93, 94, 23, 24, -1,
- 70, -1, -1, -1, 30, 31, -1, 33, -1, 35,
- 80, -1, -1, -1, -1, -1, 42, -1, -1, -1,
- 90, -1, -1, 93, 94, -1, -1, -1, -1, 55,
- -1, 57, -1, -1, -1, -1, -1, -1, 885, 65,
- 887, -1, -1, -1, -1, -1, 72, 894, -1, -1,
- -1, 898, -1, 900, -1, 902, 903, 904, 84, -1,
- -1, -1, -1, 910, -1, -1, -1, -1, 3, 4,
- 5, 6, 1153, 1154, 1155, 1156, 1157, -1, -1, -1,
- 1161, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, -1, 942, 31, 944, -1, 946,
- 947, 948, -1, 1184, 1185, 1186, 41, -1, -1, -1,
- 136, -1, -1, -1, 140, 141, -1, -1, -1, 54,
- 146, 56, 57, 149, 150, 151, -1, -1, 3, 4,
- 5, 6, -1, -1, 9, 70, -1, -1, -1, 165,
- -1, -1, -1, 169, -1, 80, -1, -1, 995, 175,
- 176, -1, -1, 88, -1, -1, 31, -1, 93, -1,
- -1, 1008, -1, -1, -1, -1, 41, 193, 194, 195,
- -1, -1, 47, -1, -1, -1, -1, 1024, -1, 54,
- 1027, 56, 57, -1, -1, -1, -1, -1, -1, 1036,
- -1, 1272, 1273, -1, 1275, 70, 222, -1, -1, -1,
- -1, -1, 1049, -1, -1, 80, -1, -1, -1, -1,
- -1, -1, 4, 88, 1061, 90, -1, -1, 93, 94,
- -1, -1, -1, 1070, -1, 1072, -1, -1, 3, 4,
- 5, 6, -1, 259, 9, -1, -1, -1, 30, 31,
- -1, 33, -1, 35, 4, 5, -1, -1, 8, 9,
- 42, -1, -1, 1100, 14, -1, 31, -1, 1105, 1106,
- -1, 1108, -1, 55, -1, 57, 41, -1, 28, -1,
- 30, 297, 298, -1, -1, -1, 36, -1, -1, 54,
- -1, 56, 57, -1, -1, 45, -1, -1, 80, -1,
- -1, -1, -1, -1, 54, 70, 56, 57, -1, -1,
- -1, -1, -1, -1, -1, 80, 1153, 1154, 1155, 1156,
- 1157, -1, -1, 88, 1161, -1, 342, -1, 93, -1,
- 346, -1, 348, 349, 350, -1, -1, -1, -1, 355,
- -1, -1, -1, 359, -1, -1, -1, 1184, 1185, 1186,
- -1, 133, 134, -1, 136, -1, -1, -1, 140, 141,
- -1, -1, 144, -1, 146, -1, -1, 149, 150, 151,
- -1, -1, -1, -1, 156, -1, -1, 393, -1, -1,
- 1217, -1, -1, 165, -1, 1222, 402, 169, 404, 405,
- -1, -1, -1, 175, 176, -1, -1, -1, -1, -1,
- -1, -1, -1, 419, -1, -1, 422, -1, -1, -1,
- -1, 193, 194, 195, -1, -1, -1, -1, 434, -1,
- -1, 203, -1, -1, -1, -1, 442, -1, -1, -1,
- -1, -1, -1, -1, -1, 1272, 1273, -1, 1275, -1,
- 222, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, -1, 470, -1, 472, -1, 474, 475,
- 476, -1, -1, -1, 480, -1, -1, -1, -1, 485,
- -1, -1, 488, -1, 1311, 1312, 1313, 259, -1, 1,
- -1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
- 506, -1, 14, 1330, -1, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, 6, -1, 28, -1, 30, 31,
- 32, -1, -1, -1, 36, 37, -1, -1, -1, 41,
- -1, -1, -1, 45, 46, -1, 48, -1, 544, 545,
- 546, 547, 54, -1, 56, 57, -1, -1, 60, 41,
- 62, 3, 4, 5, 6, -1, -1, 329, 70, -1,
- -1, -1, 54, -1, 56, 57, -1, -1, 80, -1,
- 62, -1, -1, -1, 346, -1, 88, -1, 70, -1,
- -1, 93, 354, -1, -1, -1, -1, 359, 80, 41,
- -1, -1, -1, -1, -1, -1, 88, 109, 604, 1426,
- 606, 93, 54, -1, 56, 57, -1, -1, 60, -1,
- -1, -1, -1, -1, 620, 621, -1, 623, 70, -1,
- -1, 393, -1, -1, 630, -1, -1, -1, 80, -1,
- -1, -1, 404, -1, -1, -1, 88, 643, -1, -1,
- -1, 93, -1, 649, -1, -1, -1, 419, -1, -1,
- 422, -1, -1, -1, -1, -1, 428, 429, 430, -1,
- -1, -1, 434, -1, -1, -1, -1, 673, 4, -1,
- 442, -1, 1499, 1500, 1501, 681, -1, -1, -1, -1,
- -1, -1, 688, 689, 690, 691, 692, 693, -1, -1,
- -1, 1518, -1, -1, -1, -1, 1523, -1, 470, 35,
- 472, -1, 474, 475, 476, -1, 42, -1, 480, -1,
- 716, -1, -1, 485, -1, -1, 488, -1, -1, 55,
- -1, 57, -1, -1, -1, -1, -1, -1, -1, 735,
- -1, -1, -1, 739, 506, -1, -1, -1, -1, -1,
- 746, 747, -1, 749, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 763, -1, -1,
- 766, -1, -1, 769, 536, 771, -1, 539, -1, -1,
- 776, 777, 778, -1, 3, 4, 5, 6, 784, -1,
- 9, 787, 554, 555, 556, -1, -1, 793, -1, -1,
- -1, -1, -1, -1, 800, 801, 802, 569, -1, -1,
- 136, -1, 31, -1, 140, -1, 812, -1, -1, -1,
- -1, -1, 41, -1, -1, -1, -1, -1, 47, -1,
- -1, -1, -1, -1, -1, 54, -1, 56, 57, 165,
- -1, -1, -1, 169, -1, -1, -1, 4, 5, 175,
- 176, 70, 9, -1, -1, 617, -1, -1, -1, -1,
- -1, 80, -1, -1, -1, -1, -1, -1, 630, 88,
- -1, 90, -1, -1, 93, 94, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 649, -1, 885,
- 47, 887, -1, -1, -1, -1, 222, 54, 894, 56,
- 57, -1, 898, -1, 900, -1, 902, 903, 904, -1,
- -1, 673, -1, 70, 910, 4, 5, -1, 680, 8,
- 9, -1, -1, 80, -1, 14, 688, 689, 690, 691,
- -1, -1, -1, 90, -1, -1, 93, 94, -1, -1,
- 82, -1, -1, -1, -1, -1, 942, 36, 944, -1,
- 946, 947, 948, -1, -1, -1, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, 54, -1, 56, 57, -1,
- -1, -1, -1, 735, -1, -1, -1, 739, -1, -1,
- -1, 70, -1, -1, 746, 747, -1, 749, -1, -1,
- -1, 80, 3, 4, 5, 6, 7, 8, 9, 995,
- -1, 90, -1, 14, 93, 94, -1, 769, -1, 771,
- -1, -1, 1008, -1, 776, 777, 778, 159, -1, -1,
- 31, -1, 784, -1, -1, 36, -1, -1, 1024, -1,
- 41, 1027, -1, 359, 45, -1, 47, -1, -1, -1,
- 1036, -1, -1, 54, 806, 56, 57, -1, -1, 191,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 70,
- -1, -1, 204, -1, -1, 1061, -1, -1, -1, 80,
- -1, -1, -1, -1, 1070, -1, 1072, 88, 404, 90,
- -1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, 7, 8, 9, 1100, -1, 12, -1, 14, 1105,
- 1106, -1, 1108, -1, -1, -1, 442, -1, -1, -1,
- -1, -1, 28, -1, 30, 31, -1, -1, -1, -1,
- 36, -1, -1, -1, -1, 41, -1, -1, -1, 45,
- 902, 903, 904, -1, -1, -1, 908, 909, 54, -1,
- 56, 57, -1, -1, 480, -1, -1, 1153, 1154, 1155,
- 1156, 1157, 488, -1, 70, 1161, 4, -1, -1, -1,
- -1, -1, 1168, -1, 80, -1, -1, -1, -1, -1,
- 506, -1, 88, -1, 946, 947, 948, 93, 1184, 1185,
- 1186, 953, 30, 31, -1, 33, -1, 35, -1, -1,
- -1, -1, -1, -1, 42, -1, -1, -1, -1, 1205,
- 4, 5, -1, 7, 8, 9, -1, 55, -1, 57,
- 14, 1217, -1, -1, -1, -1, 1222, -1, -1, 3,
- 4, 5, 6, 995, 28, 9, 30, 31, -1, -1,
- -1, -1, 36, -1, -1, -1, -1, -1, -1, -1,
- -1, 45, -1, -1, 48, -1, -1, 31, -1, -1,
- 54, -1, 56, 57, -1, 1027, -1, 41, -1, -1,
- -1, -1, -1, -1, -1, -1, 1272, 1273, -1, 1275,
- 54, -1, 56, 57, -1, -1, 1048, -1, -1, -1,
- -1, -1, 3, 4, 5, 6, 70, -1, 136, 1061,
- -1, -1, 140, 141, 1300, -1, 80, -1, 146, -1,
- -1, 149, 150, 151, 88, 1311, 1312, 1313, -1, 93,
- 31, -1, -1, 649, -1, -1, -1, 165, -1, -1,
- 41, 169, -1, -1, 1330, -1, 478, 175, 176, -1,
- 1336, 483, -1, 54, -1, 56, 57, -1, -1, -1,
- 3, 4, 5, 6, -1, 193, 194, 195, -1, 70,
- -1, -1, 688, 689, 690, 691, -1, -1, 510, 80,
- 1132, -1, -1, -1, 516, -1, 33, 88, -1, -1,
- -1, -1, 93, -1, 222, -1, 528, 529, 41, 531,
- -1, 1153, 1154, 1155, 1156, 1157, -1, 1159, 55, 1161,
- -1, 54, -1, 56, 57, -1, -1, 60, -1, 735,
- -1, -1, -1, 739, -1, 4, 5, 70, 7, 8,
- 9, 259, 1184, 1185, 1186, 14, -1, 80, -1, -1,
- 1426, -1, -1, -1, -1, 88, -1, -1, -1, 28,
- 93, 30, 31, 769, -1, 771, -1, 36, -1, -1,
- 776, 777, 778, -1, -1, 1217, 45, -1, 784, -1,
- 1222, -1, -1, -1, -1, 54, -1, 56, 57, -1,
- -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
- 6, -1, -1, -1, 626, 627, -1, -1, -1, 631,
- -1, -1, 149, 150, 151, -1, -1, -1, -1, -1,
- -1, -1, -1, 1499, 1500, 1501, -1, -1, -1, -1,
- 1272, 1273, -1, 1275, -1, 41, -1, 355, 175, -1,
- -1, 359, 1518, -1, -1, -1, -1, 1523, 54, -1,
- 56, 57, -1, -1, -1, -1, 193, 194, 195, -1,
- -1, -1, -1, -1, 70, -1, -1, -1, -1, 1311,
- 1312, 1313, -1, -1, 80, -1, -1, -1, -1, -1,
- -1, -1, 88, -1, -1, 222, 404, 93, -1, -1,
- -1, -1, -1, -1, 55, -1, 3, 4, 5, 6,
- -1, 419, -1, -1, 422, -1, -1, -1, -1, -1,
- 107, 108, -1, -1, -1, -1, 434, -1, -1, 80,
- -1, -1, 83, -1, 442, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 41, -1, -1, -1, 3, 4,
- 5, 6, -1, 104, 9, 106, -1, 54, -1, 56,
- 57, -1, 470, -1, 472, 62, 474, 475, 476, -1,
- -1, 298, 480, 70, -1, -1, 31, 485, -1, -1,
- 488, -1, 794, 80, 796, -1, 41, -1, -1, -1,
- -1, 88, 47, -1, 1426, -1, 93, -1, 506, 54,
- -1, 56, 57, -1, -1, -1, -1, -1, -1, -1,
+ 174, 161, 209, 23, 176, 4, 149, 150, 402, 175,
+ 355, 402, 126, 80, 734, 156, 62, 4, 251, 349,
+ 482, 80, 355, 4, 402, 455, 14, 4, 134, 898,
+ 35, 511, 84, 513, 46, 583, 35, 42, 55, 709,
+ 247, 521, 209, 30, 31, 90, 733, 92, 35, 304,
+ 305, 218, 57, 4, 35, 42, 133, 134, 35, 640,
+ 460, 42, 620, 663, 76, 42, 647, 72, 373, 124,
+ 42, 217, 218, 42, 55, 440, 57, 144, 4, 84,
+ 133, 4, 337, 88, 35, 90, 11, 92, 1400, 296,
+ 1327, 42, 137, 780, 140, 83, 1486, 84, 1337, 42,
+ 42, 1487, 107, 108, 12, 1344, 47, 54, 58, 35,
+ 156, 57, 35, 11, 11, 47, 42, 717, 106, 42,
+ 356, 357, 355, 64, 62, 1488, 54, 38, 33, 59,
+ 54, 136, 137, 84, 139, 0, 203, 62, 1528, 75,
+ 1510, 77, 349, 54, 37, 75, 74, 577, 98, 136,
+ 74, 59, 93, 94, 62, 136, 64, 1527, 175, 140,
+ 165, 93, 149, 150, 169, 1, 212, 33, 0, 503,
+ 108, 176, 408, 409, 220, 782, 1, 1, 165, 641,
+ 306, 307, 169, 108, 165, 136, 245, 794, 169, 716,
+ 136, 237, 169, 165, 175, 176, 322, 169, 1561, 325,
+ 169, 213, 328, 262, 109, 331, 193, 194, 155, 335,
+ 108, 108, 1582, 136, 165, 822, 109, 343, 169, 47,
+ 1606, 828, 58, 1531, 27, 555, 169, 169, 31, 59,
+ 176, 1621, 490, 58, 58, 62, 74, 62, 62, 12,
+ 245, 222, 165, 169, 25, 27, 169, 74, 9, 31,
+ 1487, 402, 1491, 200, 1566, 47, 59, 60, 245, 42,
+ 248, 64, 60, 74, 245, 93, 94, 1575, 526, 346,
+ 95, 95, 3, 4, 5, 6, 59, 58, 60, 109,
+ 108, 62, 64, 149, 150, 151, 59, 393, 448, 62,
+ 342, 58, 297, 346, 245, 1061, 1062, 64, 1537, 245,
+ 61, 93, 94, 33, 7, 735, 976, 3, 4, 5,
+ 41, 109, 1078, 358, 95, 660, 108, 468, 4, 245,
+ 487, 699, 245, 54, 329, 56, 57, 109, 935, 195,
+ 385, 474, 475, 60, 37, 108, 59, 342, 48, 897,
+ 486, 487, 4, 5, 1583, 350, 8, 9, 494, 35,
+ 59, 93, 14, 358, 359, 342, 93, 88, 939, 59,
+ 56, 57, 756, 728, 729, 756, 28, 355, 30, 59,
+ 47, 93, 359, 54, 36, 75, 4, 77, 359, 525,
+ 60, 60, 109, 45, 689, 108, 169, 404, 4, 5,
+ 59, 342, 54, 74, 56, 57, 629, 402, 544, 108,
+ 405, 1270, 983, 74, 450, 8, 9, 35, 359, 74,
+ 47, 14, 47, 359, 60, 402, 93, 94, 108, 149,
+ 150, 151, 752, 404, 951, 402, 209, 954, 664, 109,
+ 109, 93, 980, 36, 217, 218, 359, 442, 54, 108,
+ 56, 57, 45, 93, 47, 571, 572, 493, 1048, 1030,
+ 107, 402, 511, 498, 513, 442, 93, 94, 93, 33,
+ 519, 442, 521, 468, 247, 195, 1232, 25, 995, 996,
+ 442, 108, 47, 442, 936, 1241, 1242, 47, 1244, 47,
+ 1087, 468, 1089, 47, 496, 47, 31, 474, 475, 640,
+ 93, 442, 58, 498, 107, 108, 647, 47, 1185, 480,
+ 900, 518, 514, 515, 47, 550, 511, 488, 513, 25,
+ 4, 27, 524, 296, 519, 47, 521, 468, 93, 442,
+ 1389, 64, 60, 93, 511, 93, 513, 54, 47, 93,
+ 511, 93, 513, 4, 521, 1222, 54, 518, 519, 44,
+ 521, 35, 58, 93, 108, 550, 62, 74, 553, 54,
+ 93, 556, 57, 727, 74, 560, 561, 562, 563, 564,
+ 511, 93, 513, 54, 35, 511, 349, 513, 573, 621,
+ 521, 42, 518, 519, 93, 521, 150, 151, 583, 95,
+ 109, 586, 12, 977, 690, 511, 977, 513, 511, 1019,
+ 513, 697, 47, 1174, 54, 521, 58, 1077, 521, 977,
+ 945, 93, 838, 54, 25, 756, 27, 54, 474, 475,
+ 476, 25, 945, 27, 74, 47, 621, 54, 62, 75,
+ 697, 195, 1203, 406, 108, 1152, 1153, 47, 774, 59,
+ 74, 782, 62, 62, 621, 640, 47, 58, 93, 94,
+ 847, 62, 647, 794, 58, 108, 62, 692, 62, 666,
+ 637, 638, 94, 640, 54, 3, 4, 5, 74, 442,
+ 647, 93, 62, 651, 1126, 136, 3, 4, 5, 108,
+ 621, 822, 1359, 93, 95, 31, 108, 828, 698, 108,
+ 58, 95, 93, 94, 62, 666, 941, 692, 705, 640,
+ 707, 708, 1458, 1459, 165, 47, 647, 47, 169, 108,
+ 25, 706, 27, 486, 487, 710, 1106, 1107, 56, 57,
+ 11, 494, 945, 733, 64, 1049, 329, 1051, 47, 56,
+ 57, 1055, 8, 9, 705, 706, 707, 708, 14, 7,
+ 8, 9, 80, 58, 970, 752, 14, 62, 109, 806,
+ 98, 93, 525, 93, 474, 475, 476, 806, 47, 60,
+ 36, 756, 47, 31, 62, 329, 815, 47, 36, 45,
+ 47, 544, 1122, 1123, 93, 1125, 74, 45, 785, 756,
+ 95, 752, 4, 5, 245, 756, 93, 782, 823, 824,
+ 3, 826, 60, 909, 935, 141, 798, 60, 939, 794,
+ 146, 1121, 804, 805, 93, 782, 808, 809, 93, 1199,
+ 812, 111, 943, 93, 785, 756, 93, 794, 1208, 1209,
+ 815, 937, 938, 1213, 4, 5, 48, 822, 823, 824,
+ 54, 826, 74, 828, 56, 57, 977, 62, 815, 1003,
+ 47, 782, 983, 94, 815, 822, 480, 54, 194, 785,
+ 74, 828, 62, 794, 488, 1081, 1082, 1083, 80, 1569,
+ 27, 94, 465, 47, 31, 429, 430, 74, 48, 74,
+ 54, 1261, 59, 60, 815, 111, 56, 57, 93, 815,
+ 74, 822, 93, 3, 4, 5, 93, 828, 3, 1030,
+ 74, 6, 59, 60, 667, 1219, 1220, 1221, 359, 815,
+ 80, 896, 815, 47, 59, 60, 901, 943, 74, 93,
+ 54, 475, 476, 259, 1018, 74, 31, 59, 3, 4,
+ 5, 6, 3, 4, 5, 182, 41, 835, 836, 837,
+ 74, 988, 59, 60, 929, 708, 56, 57, 58, 11,
+ 935, 56, 57, 108, 939, 109, 1087, 59, 1089, 93,
+ 553, 59, 60, 556, 108, 70, 41, 560, 935, 108,
+ 937, 938, 939, 48, 74, 80, 1356, 945, 59, 60,
+ 573, 56, 57, 88, 108, 56, 57, 54, 93, 752,
+ 74, 442, 977, 586, 979, 980, 74, 590, 983, 553,
+ 108, 1411, 556, 109, 935, 80, 1386, 111, 939, 108,
+ 977, 774, 109, 88, 981, 982, 983, 1427, 572, 573,
+ 977, 111, 1128, 4, 5, 618, 1336, 27, 3, 4,
+ 5, 624, 586, 1072, 74, 4, 5, 74, 1077, 54,
+ 9, 59, 60, 1174, 54, 1030, 977, 62, 74, 1172,
+ 1173, 111, 983, 3, 4, 5, 6, 111, 1043, 74,
+ 511, 108, 513, 1030, 108, 1281, 108, 48, 58, 54,
+ 521, 54, 1203, 48, 108, 56, 57, 62, 1201, 1202,
+ 8, 56, 57, 419, 847, 54, 422, 56, 57, 74,
+ 111, 41, 1077, 647, 93, 1201, 1202, 64, 434, 1030,
+ 1510, 70, 1087, 59, 1089, 1130, 56, 57, 1069, 47,
+ 1077, 80, 59, 1074, 59, 60, 1077, 1527, 74, 75,
+ 1087, 77, 1089, 4, 5, 94, 4, 5, 93, 1176,
+ 83, 84, 1117, 54, 470, 54, 472, 983, 88, 59,
+ 60, 62, 1552, 4, 5, 1130, 1077, 1521, 109, 485,
+ 1521, 1077, 60, 74, 59, 60, 1087, 36, 1089, 3,
+ 4, 5, 64, 7, 8, 9, 64, 48, 59, 60,
+ 48, 1077, 1582, 108, 1077, 56, 57, 64, 56, 57,
+ 1590, 108, 62, 1335, 1030, 1185, 60, 31, 1334, 1174,
+ 1336, 108, 36, 54, 108, 56, 57, 4, 5, 80,
+ 54, 9, 80, 75, 12, 1172, 1173, 1174, 62, 70,
+ 54, 1196, 56, 57, 58, 1525, 108, 1196, 1203, 80,
+ 74, 1327, 108, 64, 3, 4, 5, 6, 64, 1196,
+ 9, 1611, 1217, 94, 1201, 1202, 1203, 54, 54, 47,
+ 64, 111, 62, 1174, 59, 62, 62, 1239, 1240, 56,
+ 57, 59, 31, 61, 62, 59, 64, 74, 74, 103,
+ 104, 105, 41, 108, 75, 1196, 59, 75, 47, 77,
+ 108, 64, 1203, 983, 108, 54, 108, 56, 57, 108,
+ 75, 74, 75, 75, 75, 93, 94, 841, 4, 5,
+ 1196, 70, 62, 1196, 108, 108, 30, 31, 62, 33,
+ 108, 80, 78, 79, 80, 81, 82, 83, 84, 88,
+ 59, 90, 905, 111, 93, 94, 62, 94, 108, 108,
+ 1030, 108, 88, 57, 74, 59, 1172, 1173, 1174, 111,
+ 47, 65, 60, 3, 4, 5, 6, 1334, 1525, 1336,
+ 56, 57, 1327, 108, 111, 108, 939, 108, 108, 111,
+ 1335, 108, 1337, 109, 108, 1201, 1202, 1203, 1337, 1344,
+ 1327, 109, 1502, 59, 815, 1344, 64, 64, 1353, 93,
+ 1337, 41, 59, 1334, 1335, 1336, 108, 1344, 48, 3,
+ 4, 5, 1505, 1506, 938, 939, 56, 57, 64, 108,
+ 1521, 4, 5, 108, 108, 1549, 1327, 4, 5, 1505,
+ 1506, 93, 93, 93, 12, 93, 1337, 141, 109, 109,
+ 80, 8, 146, 1344, 108, 149, 150, 151, 88, 27,
+ 109, 1327, 108, 31, 1327, 108, 111, 763, 764, 983,
+ 766, 1337, 56, 57, 1337, 48, 108, 44, 1344, 47,
+ 108, 1344, 176, 56, 57, 1437, 108, 54, 182, 56,
+ 57, 59, 60, 108, 62, 111, 64, 108, 108, 193,
+ 194, 195, 1172, 1173, 1174, 33, 108, 80, 54, 108,
+ 7, 8, 9, 108, 62, 209, 1030, 14, 111, 108,
+ 3, 4, 5, 217, 218, 93, 94, 47, 62, 108,
+ 108, 1201, 1202, 1203, 31, 96, 1481, 62, 60, 36,
+ 108, 1486, 1487, 1488, 60, 9, 1491, 1486, 45, 60,
+ 16, 64, 1491, 108, 1481, 3, 4, 5, 108, 1486,
+ 1487, 1488, 1507, 60, 1491, 259, 108, 108, 108, 1526,
+ 777, 54, 108, 56, 57, 58, 1521, 108, 1505, 1506,
+ 787, 788, 108, 1528, 93, 93, 60, 4, 5, 1528,
+ 1481, 60, 1537, 54, 1521, 1486, 1487, 1488, 1537, 47,
+ 1491, 1528, 1554, 93, 111, 1526, 54, 814, 56, 57,
+ 1537, 93, 819, 1336, 17, 60, 1561, 54, 107, 97,
+ 1486, 1487, 108, 1486, 1487, 1491, 60, 108, 1491, 108,
+ 1521, 48, 1438, 108, 1561, 329, 11, 1528, 1583, 56,
+ 57, 60, 60, 93, 1583, 93, 1537, 11, 60, 59,
+ 1203, 80, 81, 82, 83, 84, 1583, 64, 60, 1173,
+ 1174, 108, 1528, 80, 1217, 1528, 1077, 108, 108, 47,
+ 1561, 1537, 60, 11, 1537, 88, 1621, 90, 60, 92,
+ 0, 0, 1621, 0, 2, 170, 982, 35, 1202, 1203,
+ 1425, 690, 1583, 977, 1621, 4, 5, 169, 442, 1505,
+ 1506, 1507, 165, 519, 1257, 1258, 1259, 1260, 86, 87,
+ 1185, 405, 406, 91, 92, 93, 94, 1583, 1548, 238,
+ 1583, 94, 4, 5, 137, 419, 139, 9, 422, 1410,
+ 1621, 139, 1621, 1271, 428, 429, 430, 299, 963, 740,
+ 434, 3, 4, 5, 6, 54, 958, 56, 57, 243,
+ 519, 4, 5, 1359, 1222, 1621, 9, 1074, 1621, 815,
+ 956, 70, 673, 4, 5, 47, 621, 1320, 1438, 200,
+ 346, 80, 54, 124, 56, 57, 470, 1337, 472, 41,
+ 474, 475, 476, 1197, 1569, 479, 48, 1590, 70, 1542,
+ 80, 485, 486, 487, 56, 57, 490, -1, 80, 1600,
+ 494, 54, 1525, 56, 57, 1602, 47, 1038, 90, 1353,
+ -1, 93, 94, 54, 104, 56, 57, 70, 80, 3,
+ 4, 5, 6, -1, -1, 519, 88, 80, -1, 70,
+ -1, -1, 526, -1, 1387, 1505, 1506, 1507, 772, 80,
+ -1, -1, -1, 133, -1, -1, -1, -1, -1, 90,
+ -1, -1, 93, 94, 144, -1, -1, 41, -1, 553,
+ 1067, 1068, 556, 1070, 1071, -1, 1073, 1420, 3, 4,
+ 5, -1, 56, 57, 1170, 1171, -1, 571, 572, 573,
+ -1, 461, 1178, -1, -1, -1, -1, 821, 468, -1,
+ -1, -1, 586, 827, -1, -1, 1, -1, 3, 4,
+ 5, 6, 7, 8, 9, -1, -1, 320, -1, 14,
+ 3, 4, 5, 203, 3, 4, 5, -1, 7, 8,
+ 9, 56, 57, 28, 1438, 30, 31, 32, 1481, -1,
+ -1, 36, -1, -1, 1487, 1488, 41, 30, -1, -1,
+ 45, 46, 31, 48, -1, 358, -1, 36, 238, 54,
+ -1, 56, 57, 647, 1507, 60, -1, 62, -1, -1,
+ -1, 54, 461, 56, 57, 70, -1, 56, 57, 468,
+ -1, 551, 262, 667, -1, 80, 14, -1, -1, -1,
+ -1, -1, -1, 88, 22, -1, -1, -1, 93, 3,
+ 4, 5, 1506, 1507, -1, -1, 930, -1, 932, 1295,
+ 1296, -1, 1298, -1, 348, 349, 350, -1, 1561, -1,
+ -1, -1, 706, -1, 708, 709, -1, -1, -1, -1,
+ -1, -1, 1229, 1230, 1577, -1, -1, 65, 3, 4,
+ 5, 611, 7, 8, 9, -1, -1, 617, 3, 4,
+ 5, 6, 56, 57, 9, -1, 1599, 460, 461, 3,
+ 4, 5, 551, 1606, -1, 468, -1, -1, 752, -1,
+ 3, 4, 5, 6, 354, -1, 31, -1, -1, 763,
+ 764, -1, 766, -1, 654, -1, 41, -1, -1, -1,
+ 774, 56, 57, 777, -1, 498, 124, -1, -1, 54,
+ -1, 56, 57, 787, 788, 38, 39, 510, 41, -1,
+ 107, 108, 56, 57, -1, 70, 3, 4, 5, -1,
+ 148, 54, 611, 56, 57, 80, -1, -1, 617, -1,
+ 814, -1, 412, 88, 1058, 819, -1, -1, 93, 1063,
+ -1, -1, -1, -1, -1, -1, -1, 550, 551, -1,
+ -1, -1, -1, -1, -1, -1, -1, 841, 647, -1,
+ -1, -1, 1086, -1, 1088, 654, -1, 54, -1, 56,
+ 57, -1, -1, 1370, 1371, 1372, -1, -1, -1, -1,
+ 583, -1, 585, -1, -1, 588, 589, -1, 591, 592,
+ 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
+ 603, 604, 605, 606, 607, 608, 609, -1, 611, -1,
+ 238, 239, -1, -1, 617, -1, -1, -1, -1, 1143,
+ -1, -1, 502, 251, 3, 4, 5, 6, 7, 8,
+ 9, 3, 4, 5, 6, 14, -1, -1, -1, -1,
+ -1, 3, 4, 5, 647, -1, -1, -1, -1, -1,
+ -1, 654, 31, 937, 938, 939, -1, 36, 1455, 1456,
+ -1, -1, 41, -1, -1, -1, 45, 547, 47, 41,
+ 3, 4, 5, 676, 677, 54, 48, 56, 57, -1,
+ -1, 7, 8, 9, 56, 57, 48, -1, 14, 692,
+ -1, 70, 976, 321, 56, 57, -1, 981, 982, 983,
+ -1, 80, -1, 637, 638, 31, -1, -1, 80, 88,
+ 36, 90, -1, -1, 93, 94, 88, -1, -1, 45,
+ -1, 54, -1, 56, 57, 895, 896, 7, 8, 9,
+ -1, 901, 329, -1, 14, 363, -1, 740, -1, -1,
+ -1, -1, -1, -1, 372, 915, 1030, 917, -1, 919,
+ -1, 31, 841, -1, 634, -1, 36, 385, 4, 5,
+ -1, 1285, 8, 9, -1, 45, -1, -1, 14, -1,
+ 650, 705, -1, 707, 708, -1, 710, 1574, 3, 4,
+ 5, 6, -1, 1067, 1068, -1, 1070, 1071, -1, 1073,
+ 36, -1, -1, -1, 797, 965, -1, -1, -1, 45,
+ -1, 47, -1, -1, -1, 402, 895, 896, 54, -1,
+ 56, 57, 901, -1, -1, -1, 41, -1, 752, -1,
+ 823, 824, 47, 826, 70, -1, 915, -1, 917, 54,
+ 919, 56, 57, -1, 80, -1, -1, -1, 841, 1363,
+ 1364, 1011, -1, -1, 90, 70, -1, 93, 94, -1,
+ -1, -1, -1, 1377, 1378, 80, -1, 3, 4, 5,
+ 863, 7, -1, 88, -1, 90, -1, -1, 93, 94,
+ 1394, 468, -1, -1, 502, -1, 965, -1, -1, -1,
+ -1, -1, -1, -1, 30, -1, 1170, 1171, 1172, 1173,
+ 1174, 37, 895, 896, 1178, -1, -1, 900, 901, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 54, -1,
+ 56, 57, 915, 847, 917, -1, 919, 1201, 1202, 1203,
+ -1, -1, 1011, -1, -1, -1, 806, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 1030, 1466, 1467, -1, 1229, 1230, -1, -1, -1,
+ -1, -1, 955, -1, -1, -1, 553, 585, -1, 556,
+ -1, -1, 965, 560, 561, 562, 563, 564, -1, 3,
+ 4, 5, 6, -1, -1, 9, 573, 980, -1, -1,
+ 3, 4, 5, 6, -1, -1, 920, -1, 922, 586,
+ 993, -1, -1, -1, -1, -1, -1, 31, -1, 933,
+ -1, 629, -1, 937, 938, -1, -1, 41, 1011, -1,
+ -1, 1295, 1296, 47, 1298, -1, -1, 1187, 41, 1189,
+ 54, 1191, 56, 57, -1, 48, -1, 1030, -1, 3,
+ 4, 5, 6, 56, 57, 9, 70, 1, -1, 3,
+ 4, 5, 6, 640, 8, -1, 80, 981, 982, -1,
+ 647, 1335, 1336, -1, 88, -1, 90, 31, -1, 93,
+ 94, -1, 1065, 1066, 944, 88, 946, 41, -1, -1,
+ 698, -1, -1, 47, -1, -1, -1, 41, -1, -1,
+ 54, 709, 56, 57, 48, -1, 1370, 1371, 1372, -1,
+ 54, -1, 56, 57, -1, -1, 70, -1, 1187, -1,
+ 1189, -1, 1191, 1106, 1107, -1, 80, 1110, 988, -1,
+ -1, -1, 740, -1, 88, 4, 90, -1, -1, 93,
+ 94, -1, 1292, -1, 88, 14, -1, 1130, -1, -1,
+ -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
+ -1, 30, 31, -1, 33, -1, 35, -1, -1, -1,
+ -1, -1, -1, 42, 1438, -1, -1, -1, -1, 756,
+ -1, -1, -1, -1, -1, -1, 55, -1, 57, -1,
+ -1, 1455, 1456, -1, -1, -1, 65, -1, -1, -1,
+ -1, -1, -1, 72, 1187, 782, 1189, -1, 1191, -1,
+ -1, -1, 1072, -1, 83, 84, 1199, 794, -1, -1,
+ -1, -1, -1, 1292, -1, 1208, 1209, -1, -1, -1,
+ 1213, -1, -1, -1, -1, -1, -1, 106, -1, -1,
+ -1, 1505, 1506, 1507, -1, 822, -1, -1, -1, -1,
+ -1, 828, 1235, -1, -1, -1, 1170, 1171, 1172, 1173,
+ 3, 4, 5, 6, 1178, 134, -1, 136, -1, -1,
+ -1, 140, 141, -1, -1, -1, 145, 146, 1261, -1,
+ 149, 150, 151, -1, -1, -1, -1, 1201, 1202, 1149,
+ 3, 4, 5, 6, -1, -1, 165, -1, 41, -1,
+ 169, -1, -1, -1, -1, 48, 175, 176, -1, 1292,
+ 1574, -1, -1, 56, 57, -1, 1176, -1, 31, 896,
+ -1, -1, -1, -1, 193, 194, 195, -1, 41, -1,
+ -1, -1, -1, 1316, -1, -1, -1, 80, -1, -1,
+ -1, 54, -1, 56, 57, 88, 4, 5, -1, -1,
+ 8, 9, 929, 222, -1, 963, 14, 70, 935, -1,
+ -1, -1, 939, -1, -1, -1, -1, 80, 976, 1438,
+ 239, -1, -1, 1356, -1, 88, 245, -1, 36, 248,
+ 93, 1295, 1296, -1, 1298, 1368, 1369, 45, -1, 47,
+ 259, -1, -1, -1, -1, -1, 54, -1, 56, 57,
+ 977, -1, 979, 1386, -1, -1, 983, -1, 82, -1,
+ -1, -1, 70, -1, -1, -1, -1, -1, 4, 5,
+ -1, -1, 80, 9, -1, -1, -1, -1, 297, 298,
+ -1, -1, 90, -1, -1, 93, 94, -1, 193, 194,
+ 195, -1, -1, -1, 3, 4, 5, 6, -1, -1,
+ 9, -1, -1, 1030, -1, 1438, -1, -1, -1, -1,
+ -1, 47, -1, -1, -1, -1, 1043, -1, 54, -1,
+ 56, 57, 31, 342, -1, -1, -1, 346, 1461, 348,
+ 349, 350, 41, -1, 70, 159, -1, -1, -1, -1,
+ 359, -1, -1, -1, 80, 54, -1, 56, 57, 1107,
+ -1, -1, -1, -1, 90, -1, 1489, 93, 94, -1,
+ 1087, 70, 1089, -1, -1, -1, -1, 191, -1, -1,
+ -1, 80, -1, -1, 393, 3, 4, 5, 6, 88,
+ 204, -1, -1, 402, 93, 404, 405, -1, -1, -1,
+ 1117, -1, -1, -1, -1, -1, 4, 5, -1, -1,
+ 419, 9, -1, 422, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 41, -1, 434, -1, -1, -1, -1,
+ -1, -1, -1, 442, -1, -1, 54, -1, 56, 57,
+ 3, 4, 5, 6, 62, 1193, 9, -1, -1, 47,
+ -1, 1199, 70, -1, -1, -1, 54, 1174, 56, 57,
+ -1, 470, 80, 472, -1, 474, 475, 476, 31, -1,
+ 88, 480, 70, -1, -1, 93, 485, -1, 41, 488,
+ -1, -1, 80, -1, 47, -1, 1203, -1, 1611, -1,
+ -1, 54, 90, 56, 57, 93, 94, -1, -1, 508,
+ 1217, -1, 511, -1, 513, -1, -1, 70, -1, 518,
+ 519, -1, 521, -1, -1, -1, 1, 80, 3, 4,
+ 5, 6, 7, 8, 9, 88, -1, 90, -1, 14,
+ 93, 94, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 28, -1, 30, 31, 32, -1, -1,
+ -1, 36, 561, 562, 563, 564, 41, -1, -1, -1,
+ 45, -1, -1, 48, -1, -1, -1, -1, -1, 54,
+ -1, 56, 57, 1321, 1322, 470, -1, 472, -1, 474,
+ 475, 476, -1, -1, -1, 70, -1, -1, -1, -1,
+ 485, -1, -1, -1, -1, 80, -1, -1, -1, -1,
+ -1, -1, -1, 88, -1, -1, -1, -1, 93, -1,
+ -1, -1, 621, 98, 623, -1, -1, -1, -1, -1,
+ -1, -1, -1, 518, -1, -1, 635, -1, 637, 638,
+ -1, 640, -1, -1, -1, -1, 1353, -1, 647, 4,
+ 5, -1, 651, 8, 9, -1, -1, -1, -1, 14,
+ -1, -1, -1, -1, 1402, -1, -1, 666, -1, -1,
+ -1, -1, -1, 28, 478, 30, -1, -1, -1, 483,
+ -1, 36, -1, -1, -1, -1, 1424, 1425, -1, -1,
+ 45, 690, 47, -1, -1, -1, -1, -1, 697, 54,
+ -1, 56, 57, -1, -1, -1, 705, 706, 707, 708,
+ 709, 710, -1, -1, -1, 70, -1, -1, -1, -1,
+ -1, -1, -1, 527, -1, 80, -1, -1, -1, 533,
+ -1, -1, -1, -1, -1, 90, -1, -1, 93, 94,
+ -1, 545, 546, -1, 548, -1, -1, -1, -1, 3,
+ 4, 5, 6, 752, -1, -1, -1, 756, -1, -1,
+ -1, 1499, -1, -1, 763, 764, -1, 766, 3, 4,
+ 5, 6, 7, 8, 9, -1, -1, -1, -1, 14,
+ -1, -1, -1, 782, -1, -1, 785, 41, -1, -1,
+ -1, -1, -1, -1, 48, 794, 31, -1, -1, -1,
+ 1507, 36, 56, 57, -1, -1, 41, -1, 807, -1,
+ 45, -1, 47, -1, 1521, -1, 815, -1, -1, 54,
+ -1, 56, 57, 822, -1, -1, -1, -1, -1, 828,
+ -1, -1, -1, -1, 88, 70, 835, 836, 837, 643,
+ 644, -1, -1, -1, 648, 80, -1, -1, 847, -1,
+ -1, -1, -1, 88, -1, 90, -1, -1, 93, 94,
+ -1, -1, -1, -1, -1, 4, 5, -1, 7, 8,
+ 9, -1, -1, 12, -1, 14, 4, -1, 763, 764,
+ -1, 766, -1, -1, -1, -1, 14, -1, -1, 28,
+ -1, 30, 31, -1, -1, 23, 24, 36, -1, -1,
+ 785, -1, 30, 31, -1, 33, 45, 35, 47, -1,
+ -1, -1, -1, -1, 42, 54, -1, 56, 57, -1,
+ -1, 920, -1, 922, -1, -1, -1, 55, -1, 57,
+ 929, 70, -1, -1, 933, -1, 935, 65, 937, 938,
+ 939, 80, -1, -1, 72, -1, 945, 3, 4, 5,
+ 6, 90, -1, -1, 93, 94, 84, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
+ -1, -1, 9, -1, -1, -1, -1, 781, 977, -1,
+ 979, -1, 981, 982, 983, 41, -1, -1, -1, 793,
+ -1, -1, 48, -1, 31, -1, -1, -1, -1, -1,
+ 56, 57, -1, -1, 41, -1, -1, -1, 136, -1,
+ -1, -1, 140, 141, -1, -1, -1, 54, 146, 56,
+ 57, 149, 150, 151, -1, 829, -1, 831, -1, -1,
+ -1, 1030, 88, 70, -1, -1, -1, 165, -1, -1,
+ -1, 169, -1, 80, 1043, -1, -1, 175, 176, -1,
+ -1, 88, -1, -1, -1, -1, 93, -1, -1, -1,
+ -1, -1, -1, -1, -1, 193, 194, 195, -1, -1,
+ 1069, -1, -1, -1, -1, 1074, -1, -1, 1077, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 1087, -1,
+ 1089, -1, -1, -1, 222, -1, 981, 982, 983, 903,
+ 904, -1, 906, 4, 5, -1, -1, 8, 9, -1,
+ 4, 5, -1, 14, 8, 9, -1, 245, 1117, -1,
+ 14, -1, -1, 1122, 1123, -1, 1125, 28, -1, 30,
+ 934, 259, -1, -1, 28, 36, 30, -1, -1, -1,
+ -1, -1, 36, -1, 45, 1030, -1, -1, -1, -1,
+ -1, 45, -1, 54, -1, 56, 57, 58, -1, -1,
+ 54, -1, 56, 57, -1, -1, -1, -1, -1, 297,
+ 298, 1170, 1171, 1172, 1173, 1174, -1, -1, -1, 1178,
+ -1, 985, -1, -1, 1069, -1, 348, 349, 350, -1,
+ -1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 1201, 1202, 1203, 3, 4, 5, 6, 7,
+ 8, 9, -1, -1, 342, -1, 14, -1, 346, -1,
+ 348, 349, 350, -1, -1, -1, -1, 355, -1, -1,
+ 28, 359, 30, 31, 32, -1, -1, -1, 36, -1,
+ -1, -1, -1, 41, -1, -1, -1, 45, -1, -1,
+ 48, -1, -1, -1, -1, -1, 54, -1, 56, 57,
+ -1, -1, -1, -1, -1, 393, -1, -1, -1, -1,
+ -1, -1, 70, -1, 402, -1, 404, 405, -1, -1,
+ -1, -1, 80, -1, -1, 1170, 1171, 1172, 1173, 1174,
+ 88, 419, -1, 1178, 422, 93, 1295, 1296, -1, 1298,
+ 98, -1, 3, 4, 5, 6, 434, -1, 9, -1,
+ -1, -1, -1, -1, 442, -1, 1201, 1202, 1203, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 31, -1, -1, -1, 1138, 1334, 1335, 1336, -1, -1,
+ 41, -1, 470, -1, 472, -1, 474, 475, 476, -1,
+ -1, -1, 480, 54, 1353, 56, 57, 485, -1, 1,
+ 488, 3, 4, 5, 6, 7, 8, 9, -1, 70,
+ -1, -1, 14, 1177, -1, -1, -1, -1, -1, 80,
+ 508, -1, -1, 511, -1, 513, 28, 88, 30, 31,
+ 518, 519, 93, 521, 36, -1, -1, -1, -1, 41,
+ -1, -1, -1, 45, -1, -1, 48, -1, -1, -1,
+ 1295, 1296, 54, 1298, 56, 57, -1, -1, 60, -1,
+ 1224, -1, -1, -1, 1228, -1, -1, -1, 70, -1,
+ -1, -1, -1, 561, 562, 563, 564, -1, 80, 1438,
+ -1, -1, -1, -1, 1248, -1, 88, -1, 1252, -1,
+ -1, 93, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 3, 4, 5, 6, -1, -1, 9, -1,
+ -1, -1, -1, -1, -1, 637, 638, -1, 640, -1,
+ -1, -1, -1, 1287, -1, 647, -1, -1, -1, -1,
+ 31, -1, -1, 621, -1, 623, -1, -1, -1, -1,
+ 41, -1, -1, -1, -1, -1, 1505, 1506, 1507, 637,
+ 638, -1, 640, 54, -1, 56, 57, -1, -1, 647,
+ -1, -1, 1521, -1, -1, -1, -1, 1526, -1, 70,
+ -1, -1, 660, 3, 4, 5, 6, -1, 666, 80,
+ -1, -1, -1, 705, -1, 707, 708, 88, 710, -1,
+ -1, -1, 93, 1438, -1, -1, -1, -1, -1, -1,
+ -1, 31, 690, -1, -1, -1, -1, -1, -1, -1,
+ 698, 41, -1, -1, -1, 1379, 1380, 705, 706, 707,
+ 708, 709, 710, -1, 54, -1, 56, 57, -1, -1,
+ 752, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 70, -1, -1, -1, -1, 733, -1, -1, -1, -1,
+ 80, -1, -1, -1, -1, -1, -1, -1, 88, -1,
+ 1505, 1506, 1507, 93, 752, -1, -1, -1, 756, -1,
+ -1, -1, -1, -1, -1, 763, 764, -1, 766, -1,
+ -1, -1, -1, -1, 3, 4, 5, 6, 7, 8,
+ 9, -1, 780, 12, 782, 14, -1, 785, -1, -1,
+ -1, -1, -1, -1, -1, -1, 794, -1, -1, 28,
+ -1, 30, 31, -1, -1, -1, -1, 36, -1, -1,
+ -1, -1, 41, -1, -1, 847, 45, 815, 47, -1,
+ -1, -1, -1, -1, 822, 54, -1, 56, 57, -1,
+ 828, -1, -1, -1, -1, -1, -1, 835, 836, 837,
+ -1, 70, 3, 4, 5, 6, 7, 8, 9, 847,
+ -1, 80, -1, 14, -1, -1, -1, -1, -1, 88,
+ -1, 90, -1, -1, 93, 94, -1, 28, -1, 30,
+ 31, -1, -1, -1, -1, 36, -1, -1, -1, -1,
+ 41, -1, -1, -1, 45, -1, 47, -1, 920, -1,
+ 922, -1, -1, 54, -1, 56, 57, -1, -1, -1,
+ -1, 933, -1, -1, -1, 937, 938, 939, -1, 70,
+ 3, 4, 5, 6, 7, 8, 9, -1, -1, 80,
+ -1, 14, 920, -1, 922, -1, -1, 88, -1, 90,
+ -1, 929, 93, 94, -1, 933, -1, 935, 31, 937,
+ 938, 939, -1, 36, -1, -1, -1, 945, 41, 981,
+ 982, 983, 45, -1, 47, -1, -1, -1, -1, -1,
+ -1, 54, -1, 56, 57, 4, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 70, -1, 977,
+ -1, 979, -1, 981, 982, 983, -1, 80, -1, -1,
+ -1, 30, 31, -1, 33, 88, 35, -1, 1030, -1,
+ 93, -1, -1, 42, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 55, -1, 57, 3,
+ 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
+ 14, -1, 1030, -1, -1, -1, -1, -1, -1, -1,
+ -1, 80, -1, -1, 28, 1043, 30, 31, -1, -1,
+ -1, -1, 36, -1, -1, -1, -1, 41, -1, -1,
+ -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
+ 54, 1069, 56, 57, -1, -1, 1074, -1, 62, 1077,
+ -1, -1, -1, -1, -1, -1, 70, -1, -1, 1087,
+ -1, 1089, -1, -1, 133, 134, 80, 136, -1, -1,
+ -1, 140, 141, -1, 88, 144, -1, 146, -1, 93,
+ 149, 150, 151, -1, -1, -1, -1, 156, -1, 1117,
+ -1, -1, -1, -1, 1122, 1123, 165, 1125, -1, -1,
+ 169, -1, -1, -1, -1, -1, 175, 176, 1170, 1171,
+ 1172, 1173, 1174, -1, -1, -1, 1178, -1, -1, -1,
+ -1, -1, -1, -1, 193, 194, 195, -1, -1, -1,
+ -1, -1, -1, -1, 203, -1, -1, -1, -1, 1201,
+ 1202, 1203, 1170, 1171, 1172, 1173, 1174, -1, -1, -1,
+ 1178, -1, -1, 222, -1, -1, 1, 1185, 3, 4,
+ 5, 6, 7, 8, 9, -1, -1, -1, -1, 14,
+ -1, -1, -1, 1201, 1202, 1203, 245, -1, -1, -1,
+ -1, -1, -1, 28, -1, 30, 31, 32, -1, -1,
+ 259, 36, 37, -1, 1222, -1, 41, -1, -1, -1,
+ 45, 46, -1, 48, 3, 4, 5, 6, -1, 54,
+ 9, 56, 57, -1, -1, 60, -1, 62, -1, -1,
-1, -1, -1, -1, -1, 70, -1, -1, -1, -1,
- -1, 348, 349, 350, 175, 80, -1, -1, -1, -1,
- -1, 1027, -1, 88, -1, 90, -1, -1, 93, 94,
- -1, -1, 193, 194, 195, -1, -1, -1, -1, -1,
- -1, -1, 203, -1, -1, -1, 868, 869, -1, 871,
- -1, -1, -1, -1, -1, 1061, -1, 1499, 1500, 1501,
- -1, 222, -1, -1, -1, -1, -1, 404, -1, 3,
- 4, 5, 6, 7, 8, 9, -1, 899, -1, -1,
- 14, 1523, -1, -1, -1, -1, -1, 248, -1, -1,
- -1, -1, -1, -1, 28, -1, 30, 31, 32, -1,
- 618, 262, 36, -1, -1, -1, -1, 41, -1, -1,
- -1, 45, -1, -1, 48, -1, -1, -1, -1, -1,
- 54, -1, 56, 57, -1, -1, -1, -1, 950, -1,
- -1, 649, 329, 470, -1, 472, 70, 474, 475, 476,
- -1, -1, -1, 480, -1, -1, 80, -1, 485, -1,
- -1, 488, -1, -1, 88, -1, -1, 4, 5, 93,
- 7, 8, 9, -1, 98, 12, -1, 14, -1, -1,
- 688, 689, 690, 691, -1, -1, -1, -1, -1, -1,
- -1, 28, -1, 30, 31, 3, 4, 5, 6, 36,
- -1, -1, -1, 354, 355, -1, -1, -1, 45, -1,
- -1, 1023, -1, -1, -1, 402, -1, 54, -1, 56,
- 57, 1217, -1, 1035, -1, -1, 1222, 735, -1, -1,
- -1, 739, -1, 41, -1, -1, -1, -1, 746, 747,
- -1, 749, -1, -1, -1, -1, 54, -1, 56, 57,
- -1, -1, -1, 404, 62, -1, -1, -1, -1, -1,
- -1, 769, 70, 771, -1, -1, -1, -1, 776, 777,
- 778, -1, 80, -1, -1, -1, 784, -1, -1, 606,
- 88, 468, -1, -1, -1, 93, -1, -1, -1, -1,
- -1, -1, -1, 620, 621, -1, 623, -1, -1, -1,
- -1, -1, -1, 630, -1, -1, -1, -1, -1, 1121,
- -1, -1, -1, -1, -1, 1311, 1312, 1313, -1, 470,
- -1, 472, 649, 474, 475, 476, -1, -1, -1, 480,
- -1, -1, -1, -1, 485, -1, -1, 488, -1, 3,
- 4, 5, 6, -1, -1, 9, -1, -1, 1160, 536,
- -1, -1, 539, -1, -1, -1, 543, 544, 545, 546,
- 547, 688, -1, 690, 691, -1, 693, 31, -1, 556,
- -1, -1, -1, -1, -1, -1, -1, 41, -1, -1,
- -1, -1, 569, 47, -1, -1, -1, -1, -1, -1,
- 54, -1, 56, 57, -1, -1, -1, -1, -1, -1,
- -1, -1, 910, -1, -1, -1, 70, -1, 735, -1,
- -1, -1, -1, 1225, -1, -1, 80, 1229, -1, 746,
- 747, -1, 749, -1, 88, -1, 90, -1, -1, 93,
- 94, -1, -1, -1, -1, -1, 623, -1, 946, 947,
- 948, -1, -1, 630, -1, -1, -1, -1, -1, 776,
- -1, -1, 1264, -1, -1, -1, -1, -1, -1, 1,
+ -1, -1, 31, 1295, 1296, 80, 1298, -1, -1, -1,
+ -1, -1, 41, 88, -1, -1, -1, -1, 93, -1,
+ -1, -1, -1, -1, -1, 54, -1, 56, 57, -1,
+ 329, -1, -1, -1, 109, -1, -1, 1295, 1296, -1,
+ 1298, 70, -1, -1, -1, -1, -1, 346, -1, -1,
+ -1, 80, -1, -1, -1, 354, -1, -1, -1, 88,
+ 359, -1, -1, -1, 93, 1323, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1334, 1335, 1336, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 393, 1353, -1, -1, -1, -1,
+ -1, 1359, -1, -1, -1, 404, -1, -1, -1, 1,
-1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
- -1, -1, 14, 800, 801, 802, -1, -1, -1, -1,
- -1, -1, 633, 634, -1, 812, 28, 995, 30, 31,
- 32, -1, -1, -1, 36, 37, -1, -1, 649, 41,
+ 419, -1, 14, 422, -1, -1, -1, -1, -1, 428,
+ 429, 430, -1, -1, -1, 434, 28, -1, 30, 31,
+ 32, -1, -1, 442, 36, 37, -1, -1, -1, 41,
-1, -1, -1, 45, 46, -1, 48, -1, -1, -1,
- -1, -1, 54, -1, 56, 57, -1, -1, 60, 1027,
- 62, -1, -1, -1, -1, -1, -1, 1523, 70, 1341,
- -1, -1, -1, 1345, -1, -1, -1, 688, 80, 690,
- 691, -1, -1, -1, -1, -1, 88, -1, -1, -1,
- -1, 93, 739, 1061, -1, 1367, 1368, -1, 885, -1,
- 887, -1, -1, -1, -1, -1, -1, 109, -1, -1,
- -1, 898, -1, -1, -1, 902, 903, 904, -1, -1,
- -1, -1, -1, -1, 735, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 746, 747, -1, 749, -1,
- 787, -1, -1, -1, -1, -1, 793, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 946,
- 947, 948, -1, -1, -1, 776, -1, -1, -1, -1,
+ -1, -1, 54, -1, 56, 57, -1, -1, 60, -1,
+ 62, 470, -1, 472, -1, 474, 475, 476, 70, -1,
+ 1438, 480, -1, -1, -1, -1, 485, -1, 80, 488,
+ -1, -1, 3, 4, 5, 6, 88, -1, -1, -1,
+ -1, 93, -1, 4, 5, -1, -1, 8, 9, -1,
+ -1, -1, 511, 14, 513, -1, -1, 109, -1, 518,
+ 519, -1, 521, -1, -1, -1, -1, 28, -1, 30,
+ 41, -1, -1, -1, -1, 36, -1, -1, -1, -1,
+ -1, -1, -1, 54, 45, 56, 57, 1505, 1506, 1507,
+ -1, 62, -1, 54, 553, 56, 57, 556, -1, 70,
+ -1, -1, -1, 1521, -1, -1, -1, -1, 1526, 80,
+ -1, -1, 571, 572, 573, -1, -1, 88, -1, 4,
+ -1, -1, 93, -1, -1, -1, -1, 586, -1, -1,
+ -1, 3, 4, 5, 6, -1, 1, 9, 3, 4,
+ 5, 6, 7, 8, 9, 30, 31, -1, 33, 14,
+ 35, -1, -1, -1, -1, -1, -1, 42, -1, 31,
+ -1, -1, 27, 28, -1, 30, 31, 32, -1, 41,
+ 55, 36, 57, -1, -1, 634, 41, -1, -1, 44,
+ 45, 46, 54, 48, 56, 57, -1, -1, 647, 54,
+ -1, 56, 57, -1, -1, 60, -1, -1, 70, -1,
+ -1, -1, -1, -1, -1, 70, -1, 666, 80, -1,
+ -1, -1, -1, -1, -1, 80, 88, -1, -1, -1,
+ -1, 93, -1, 88, -1, -1, -1, -1, 93, -1,
+ -1, 690, -1, 98, -1, -1, -1, 33, 697, -1,
+ -1, -1, -1, -1, -1, -1, 705, 706, 707, 708,
+ -1, 136, -1, -1, -1, 140, 141, -1, -1, 55,
+ -1, 146, -1, -1, 149, 150, 151, -1, -1, -1,
+ -1, -1, -1, -1, 3, 4, 5, 6, -1, -1,
+ 165, -1, -1, -1, 169, 3, 4, 5, 6, -1,
+ 175, 176, -1, 752, -1, -1, -1, 756, -1, -1,
+ -1, -1, -1, -1, 763, 764, -1, 766, 193, 194,
+ 195, -1, 41, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 41, -1, 54, 785, 56, 57, -1,
+ -1, 60, -1, 62, -1, -1, 54, 222, 56, 57,
+ -1, 70, 60, -1, -1, -1, -1, 806, -1, -1,
+ -1, 80, 70, 149, 150, 151, 815, -1, -1, 88,
+ 245, -1, 80, -1, 93, -1, -1, -1, -1, -1,
+ 88, -1, -1, -1, 259, 93, -1, -1, -1, 175,
+ -1, 1, 841, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, -1, -1, 193, 194, 195,
+ -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
+ 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
+ 40, 41, 42, 43, -1, 45, 222, -1, -1, 49,
+ 50, 51, 52, 53, 54, -1, 56, 57, -1, -1,
+ -1, 61, -1, -1, -1, -1, -1, 67, -1, -1,
+ 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
+ 80, -1, -1, -1, -1, -1, 86, 87, 88, -1,
+ 355, -1, -1, 93, 359, -1, -1, -1, 937, 938,
+ 939, -1, -1, -1, 943, 944, -1, -1, 108, -1,
+ 110, -1, -1, 3, 4, 5, 6, 7, 8, 9,
+ -1, -1, 298, -1, 14, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 28, 404,
+ 30, 31, 981, 982, 983, -1, 36, -1, -1, 988,
+ -1, 41, -1, -1, 419, 45, -1, 422, -1, -1,
+ -1, -1, -1, -1, 54, -1, 56, 57, -1, 434,
+ 60, -1, 348, 349, 350, -1, -1, 442, -1, -1,
+ 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 80, 1030, -1, -1, -1, -1, -1, -1, 88, -1,
+ -1, -1, -1, 93, -1, 470, -1, 472, -1, 474,
+ 475, 476, -1, -1, -1, 480, -1, -1, -1, -1,
+ 485, -1, -1, 488, -1, -1, -1, -1, 404, -1,
+ 1069, -1, -1, -1, -1, 1074, -1, -1, 1077, 3,
+ 4, 5, 6, 7, 8, 9, 511, -1, 513, -1,
+ 14, -1, -1, 518, 519, -1, 521, -1, -1, -1,
+ -1, -1, -1, -1, 28, -1, 30, 31, -1, -1,
+ -1, -1, 36, -1, -1, -1, -1, 41, -1, -1,
+ -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
+ 54, -1, 56, 57, 470, -1, 472, -1, 474, 475,
+ 476, -1, -1, -1, 480, -1, 70, -1, -1, 485,
+ 1149, -1, 488, -1, -1, -1, 80, -1, -1, -1,
+ -1, -1, -1, -1, 88, -1, -1, -1, -1, 93,
+ -1, 1170, 1171, 1172, 1173, 1174, -1, 1176, -1, 1178,
+ -1, -1, 518, -1, 1, -1, 3, 4, 5, 6,
+ -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
+ -1, -1, 1201, 1202, 1203, -1, -1, -1, -1, -1,
+ 635, 28, 29, 30, -1, 32, -1, 34, 35, 36,
+ -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
+ -1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
+ 57, 666, -1, -1, 61, 62, -1, -1, -1, -1,
+ 67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
+ -1, 78, 79, 80, -1, -1, 55, -1, -1, 86,
+ 87, 88, -1, -1, -1, -1, 93, -1, -1, -1,
+ 705, 706, 707, 708, -1, -1, -1, 623, -1, -1,
+ -1, 80, -1, 110, 83, -1, 1295, 1296, -1, 1298,
+ -1, 637, 638, -1, 640, -1, -1, -1, -1, -1,
+ -1, 647, -1, -1, -1, 104, -1, 106, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 752, -1, -1,
+ 666, 756, -1, -1, -1, 1334, 1335, 1336, 763, 764,
+ -1, 766, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 785, -1, -1, -1, -1, -1, -1, -1, -1, 705,
+ -1, 707, 708, -1, 710, -1, -1, -1, -1, -1,
+ -1, 3, 4, 5, 6, -1, 175, 9, -1, -1,
+ 815, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 193, 194, 195, -1, -1, 31,
+ -1, -1, -1, -1, 203, -1, 752, -1, -1, 41,
+ -1, -1, -1, -1, -1, -1, -1, 763, 764, -1,
+ 766, -1, 54, 222, 56, 57, -1, -1, -1, 1438,
+ -1, -1, -1, -1, -1, -1, -1, -1, 70, 785,
+ -1, 3, 4, 5, 6, 7, 8, 9, 80, 248,
+ 12, -1, 14, -1, -1, -1, 88, -1, -1, -1,
+ -1, 93, -1, 262, -1, -1, 28, -1, 30, 31,
+ -1, -1, -1, -1, 36, -1, -1, -1, -1, 41,
+ -1, -1, -1, 45, -1, -1, -1, -1, -1, 835,
+ 836, 837, 54, -1, 56, 57, 1505, 1506, 1507, -1,
+ -1, 847, -1, -1, -1, -1, -1, -1, 70, -1,
+ 945, -1, -1, -1, -1, -1, -1, 1526, 80, -1,
+ -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
+ -1, 93, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 981, 982, 983, -1,
+ -1, -1, -1, -1, -1, 354, 355, -1, -1, -1,
-1, 3, 4, 5, 6, 7, 8, 9, -1, -1,
- 12, -1, 14, -1, -1, 1153, 1154, 1155, 1156, 1157,
- -1, -1, -1, 1161, -1, -1, 28, -1, 30, 31,
- -1, -1, -1, -1, 36, -1, -1, -1, 995, 41,
- -1, -1, -1, 45, 861, 47, 1184, 1185, 1186, 12,
- -1, -1, 54, -1, 56, 57, -1, -1, -1, -1,
+ -1, -1, 14, -1, 920, -1, 922, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 28, 933, 30, 31,
+ -1, 937, 938, 939, 36, 1030, -1, -1, -1, 41,
+ -1, -1, -1, 45, -1, 404, -1, -1, -1, -1,
+ -1, -1, 54, -1, 56, 57, -1, -1, 60, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 70, -1,
- 1027, -1, -1, -1, -1, -1, -1, 894, 80, 1217,
- -1, -1, -1, 900, 1222, -1, 88, 904, 90, -1,
- -1, 93, 94, -1, -1, -1, -1, -1, -1, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
+ -1, -1, -1, -1, 1069, 981, 982, 983, 80, 1074,
+ -1, -1, 1077, -1, -1, -1, 88, -1, -1, -1,
+ -1, 93, -1, -1, -1, 3, 4, 5, 6, 7,
+ 8, 9, -1, -1, -1, -1, 14, -1, -1, -1,
+ -1, 470, -1, 472, -1, 474, 475, 476, -1, -1,
+ 28, 480, 30, 31, 1030, -1, 485, -1, 36, 488,
+ -1, -1, -1, 41, -1, -1, -1, 45, -1, -1,
+ -1, -1, -1, -1, -1, -1, 54, -1, 56, 57,
+ -1, 14, -1, -1, -1, -1, -1, -1, -1, 518,
+ 23, 24, 70, 1069, -1, -1, -1, 30, 31, -1,
+ 33, 12, 80, -1, -1, 1170, 1171, 1172, 1173, 1174,
+ 88, -1, -1, 1178, -1, 93, 69, 70, 71, 72,
73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, -1, -1, -1, 942, -1, 944, 909, 910,
- 911, 948, -1, -1, 1272, 1273, -1, 1275, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 1105, 1106,
- -1, 1108, -1, -1, -1, 3, 4, 5, 6, -1,
- -1, 9, -1, -1, -1, 946, 947, 948, -1, -1,
- 14, -1, 953, 1311, 1312, 1313, -1, -1, 995, 23,
- 24, -1, -1, 31, -1, -1, 30, 31, -1, 33,
- -1, 1008, -1, 41, -1, -1, 1153, 1154, 1155, 1156,
- 1157, -1, 983, -1, 1161, -1, 54, 1024, 56, 57,
- -1, -1, -1, -1, 995, -1, -1, -1, -1, 1036,
- -1, 65, 70, -1, -1, -1, -1, 1184, 1185, 1186,
- -1, -1, 80, -1, -1, -1, -1, -1, -1, -1,
- 88, -1, -1, -1, -1, 93, 1027, -1, -1, -1,
- -1, -1, -1, 1070, -1, 1072, -1, -1, -1, -1,
- 1217, -1, -1, -1, -1, -1, -1, 1048, -1, -1,
- 3, 4, 5, 6, 7, 8, 9, -1, -1, -1,
- 124, 14, 126, 1100, -1, -1, -1, -1, 1426, 133,
- 134, -1, -1, -1, -1, -1, 140, 141, 31, -1,
- 144, 145, 146, 36, 148, 149, 150, 151, 41, -1,
- -1, -1, 45, -1, 47, 1272, 1273, -1, 1275, -1,
- -1, 54, -1, 56, 57, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
- 1157, -1, -1, -1, -1, -1, -1, 80, -1, -1,
- -1, 1132, -1, -1, 1311, 88, 1313, -1, -1, -1,
- 93, 1499, 1500, 1501, -1, -1, -1, -1, -1, 1186,
- -1, -1, 1153, 1154, 1155, 1156, 1157, -1, 1159, -1,
- 1161, -1, -1, 1200, -1, 1523, -1, -1, -1, -1,
- -1, -1, -1, -1, 238, 239, -1, -1, -1, -1,
- -1, -1, -1, 1184, 1185, 1186, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 259, -1, -1, -1, -1,
- 1, -1, 3, 4, 5, 6, 7, 8, 9, -1,
- -1, -1, -1, 14, -1, -1, 1217, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 28, -1, 30,
- 31, 32, -1, -1, 298, 36, 37, -1, -1, -1,
- 41, -1, -1, -1, 45, 46, -1, 48, -1, 1426,
- -1, -1, -1, 54, -1, 56, 57, -1, -1, 60,
- -1, 62, -1, -1, -1, -1, -1, -1, -1, 70,
- -1, 1272, 1273, -1, 1275, -1, -1, -1, -1, 80,
- -1, -1, 346, -1, 348, 349, -1, 88, -1, -1,
- -1, -1, 93, 1330, -1, -1, -1, -1, -1, -1,
- -1, 4, 5, -1, 7, 8, 9, -1, 109, 12,
- 1311, 14, 1313, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 1499, 1500, 1501, 28, -1, 30, 31, 393,
- -1, -1, -1, 36, -1, -1, -1, -1, -1, -1,
- -1, -1, 45, -1, -1, -1, 1523, -1, 412, -1,
- -1, 54, -1, 56, 57, 419, -1, -1, 422, -1,
+ 83, 84, 65, -1, -1, -1, 1201, 1202, 1203, -1,
+ -1, -1, -1, -1, -1, -1, 1122, 1123, -1, 1125,
+ -1, 62, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 124, -1, 126, 1170, 1171, 1172, 1173, 1174, -1,
+ 133, 134, 1178, -1, -1, -1, -1, 140, 141, -1,
+ -1, 144, 145, 146, -1, 148, 149, 150, 151, -1,
+ -1, 650, 651, -1, -1, 1201, 1202, 1203, -1, -1,
+ 1295, 1296, -1, 1298, -1, -1, -1, 666, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
+ 5, 6, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1334,
+ 1335, 1336, -1, -1, -1, -1, 705, -1, 707, 708,
+ -1, -1, -1, -1, -1, -1, 41, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 54,
+ -1, 56, 57, -1, -1, 238, 239, 62, -1, -1,
+ -1, -1, -1, -1, -1, 70, -1, -1, -1, 1295,
+ 1296, -1, 1298, 752, -1, 80, 259, -1, -1, -1,
+ -1, -1, -1, 88, 763, 764, -1, 766, 93, -1,
+ -1, 1, -1, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, -1, 785, -1, 1334, -1,
+ 1336, -1, -1, -1, -1, 298, -1, -1, 28, 29,
+ 30, 31, 32, 1438, 34, 35, 36, 806, 38, 39,
+ 40, 41, 42, 43, -1, 45, -1, 47, -1, 49,
+ 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
+ -1, 61, -1, -1, -1, -1, -1, 67, -1, -1,
+ 70, -1, -1, 346, -1, 348, 349, -1, 78, 79,
+ 80, 3, 4, 5, 6, -1, 86, 87, 88, -1,
+ 90, -1, -1, 93, 94, -1, -1, -1, -1, -1,
+ 1505, 1506, 1507, 3, 4, 5, 6, -1, -1, 31,
+ 110, -1, -1, -1, -1, -1, -1, -1, -1, 41,
+ 393, 1526, 1438, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 54, -1, 56, 57, -1, -1, -1, 412,
+ -1, 41, -1, -1, -1, -1, 419, -1, 70, 422,
+ -1, -1, -1, -1, 54, -1, 56, 57, 80, -1,
+ 60, 434, -1, -1, -1, -1, 88, -1, -1, -1,
+ 70, 93, -1, -1, -1, 944, 945, 946, -1, -1,
+ 80, -1, -1, -1, -1, -1, -1, -1, 88, 1505,
+ 1506, 1507, -1, 93, -1, -1, -1, -1, 4, 5,
+ -1, 7, 8, 9, 3, 4, 5, 6, 14, -1,
+ 1526, -1, 981, 982, 983, -1, -1, -1, -1, 988,
+ -1, -1, 28, -1, 30, 31, -1, -1, -1, 502,
+ 36, -1, -1, -1, -1, 508, -1, -1, -1, 45,
+ -1, -1, 41, -1, -1, -1, -1, -1, 54, 1018,
+ 56, 57, -1, -1, -1, 54, -1, 56, 57, -1,
+ -1, 1030, 1, -1, 3, 4, 5, 6, 7, 8,
+ 9, 70, -1, 12, 547, 14, -1, -1, -1, -1,
+ -1, 80, -1, -1, -1, -1, 25, -1, 27, 88,
+ -1, -1, 31, -1, 93, -1, -1, 36, -1, -1,
+ 1069, -1, 41, -1, -1, -1, 45, -1, 47, -1,
+ -1, -1, -1, -1, -1, 54, -1, 56, 57, 58,
+ 59, 60, -1, 62, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, -1, 86, 87, 88,
+ 623, 90, 91, 92, 93, 94, 95, -1, 97, -1,
+ -1, 634, 635, 102, 637, 638, -1, -1, 107, 108,
+ 109, -1, 111, -1, -1, -1, -1, -1, -1, -1,
+ 1149, -1, -1, -1, -1, -1, -1, 4, 5, -1,
+ 7, 8, 9, -1, -1, -1, -1, 14, -1, -1,
+ -1, 1170, 1171, 1172, 1173, 1174, -1, 1176, -1, 1178,
+ -1, 28, -1, 30, 31, -1, -1, 690, -1, 36,
+ -1, -1, -1, -1, 697, 698, -1, -1, 45, -1,
+ -1, 48, 1201, 1202, 1203, -1, 709, 54, -1, 56,
+ 57, -1, -1, -1, -1, 1, -1, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
+ 733, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
+ 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, -1, -1, 49, 50, 51, 52, 53, 54, -1,
+ 56, 57, 58, -1, 60, 61, -1, 780, -1, -1,
+ -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
+ -1, -1, 78, 79, 80, -1, 1295, 1296, -1, 1298,
+ 86, 87, 88, -1, 807, -1, -1, 93, -1, 95,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 434, 1, -1, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, 13, 14, 15, -1, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, -1, -1, 49,
- 50, 51, 52, 53, 54, 1426, 56, 57, 58, -1,
- 60, 61, -1, -1, -1, -1, -1, 67, 502, -1,
- 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, -1, -1, -1, -1, -1, 86, 87, 88, -1,
- -1, -1, -1, 93, 1501, 95, 530, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 109,
- 110, 1518, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 1499, 1500,
- 1501, -1, -1, -1, -1, 1, -1, 3, 4, 5,
- 6, 7, 8, 9, -1, -1, 12, -1, 14, -1,
- -1, -1, 1523, -1, -1, -1, -1, -1, -1, 25,
- -1, 27, -1, -1, -1, 31, -1, -1, -1, -1,
- 36, -1, 606, -1, -1, 41, -1, -1, -1, 45,
- -1, 47, -1, 617, 618, -1, 620, 621, 54, -1,
- 56, 57, 58, 59, 60, -1, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, -1,
- 86, 87, 88, -1, 90, 91, 92, 93, 94, 95,
- -1, 97, -1, -1, -1, -1, 102, -1, -1, 673,
- -1, 107, 108, 109, -1, 111, 680, 681, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 692, -1,
- -1, -1, -1, -1, -1, -1, -1, 1, -1, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
- 14, 15, 716, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
- 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, -1, -1, 49, 50, 51, 52, 53,
- 54, -1, 56, 57, 58, -1, 60, 61, -1, 763,
- -1, -1, 766, 67, -1, -1, 70, -1, -1, -1,
- -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
- -1, -1, 86, 87, 88, -1, -1, -1, -1, 93,
- -1, 95, -1, -1, -1, -1, 800, 801, 802, -1,
- -1, -1, -1, -1, -1, -1, 110, -1, 812, -1,
- 1, -1, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
- 41, 42, 43, -1, 45, -1, 47, -1, 49, 50,
- 51, 52, 53, 54, -1, 56, 57, 58, -1, -1,
- 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
- -1, 885, -1, 887, -1, -1, -1, 78, 79, 80,
- -1, -1, -1, -1, 898, 86, 87, 88, -1, 90,
- -1, -1, 93, 94, 1, -1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, -1, 110,
+ -1, -1, -1, 109, 110, -1, -1, -1, -1, -1,
+ -1, -1, 835, 836, 837, 1334, -1, 1336, -1, -1,
+ -1, -1, -1, -1, 847, -1, 1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
+ 15, -1, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, -1, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, -1, -1, 49, 50, 51, 52, 53, 54,
+ -1, 56, 57, 58, -1, 60, 61, -1, -1, -1,
+ -1, -1, 67, -1, -1, 70, -1, 920, -1, 922,
+ -1, -1, -1, 78, 79, 80, 31, -1, -1, -1,
+ 933, 86, 87, 88, -1, -1, -1, -1, 93, 1438,
+ 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 110, -1, -1, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ -1, -1, -1, -1, -1, 4, 5, -1, 7, 8,
+ 9, -1, -1, 12, -1, 14, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1505, 1506, 1507, 28,
+ -1, 30, 31, -1, -1, 1018, -1, 36, -1, -1,
+ -1, -1, -1, -1, -1, -1, 45, 1526, -1, -1,
+ -1, -1, -1, -1, -1, 54, -1, 56, 57, -1,
+ -1, -1, -1, -1, -1, -1, 1, -1, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1072,
+ -1, 1074, -1, 28, 29, 30, 31, 32, -1, 34,
+ 35, 36, -1, 38, 39, 40, 41, 42, 43, -1,
+ 45, -1, 47, -1, 49, 50, 51, 52, 53, 54,
+ -1, 56, 57, 58, -1, -1, 61, -1, -1, -1,
+ -1, -1, 67, -1, -1, 70, -1, -1, -1, 1122,
+ 1123, -1, 1125, 78, 79, 80, -1, -1, -1, -1,
+ -1, 86, 87, 88, -1, 90, -1, -1, 93, 94,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 28, 29, 30, 31, 32, -1, 34, 35, 36,
- -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
- 47, -1, 49, 50, 51, 52, 53, 54, -1, 56,
- 57, 58, -1, -1, 61, -1, -1, -1, -1, -1,
- 67, -1, -1, 70, -1, -1, -1, -1, -1, 983,
- -1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
- 87, 88, -1, 90, -1, -1, 93, 94, 1, -1,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, -1, 110, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 28, 29, 30, 31, 32,
- -1, 34, 35, 36, -1, 38, 39, 40, 41, 42,
- 43, -1, 45, -1, -1, 1049, 49, 50, 51, 52,
- 53, 54, -1, 56, 57, -1, -1, -1, 61, -1,
- -1, -1, -1, -1, 67, -1, -1, 70, -1, -1,
- -1, -1, -1, -1, -1, 78, 79, 80, -1, -1,
- -1, -1, -1, 86, 87, 88, -1, -1, -1, -1,
- 93, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 1105, 1106, -1, 1108, 108, 1, 110, 3, 4,
+ -1, -1, -1, -1, -1, 110, 1, -1, 3, 4,
5, 6, 7, 8, 9, 10, 11, -1, 13, 14,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 28, 29, 30, 31, 32, -1, 34,
+ -1, -1, 1185, 28, 29, 30, 31, 32, -1, 34,
35, 36, -1, 38, 39, 40, 41, 42, 43, -1,
45, -1, -1, -1, 49, 50, 51, 52, 53, 54,
- -1, 56, 57, 58, 1168, 60, 61, -1, -1, -1,
+ -1, 56, 57, 58, -1, 60, 61, -1, -1, 1222,
-1, -1, 67, -1, -1, 70, -1, -1, -1, -1,
-1, -1, -1, 78, 79, 80, -1, -1, -1, -1,
- -1, 86, 87, 88, -1, -1, -1, -1, 93, -1,
- 1, 1205, 3, 4, 5, 6, -1, 8, 9, 10,
- 11, -1, 13, 14, -1, 110, 1220, -1, 1222, -1,
+ -1, 86, 87, 88, -1, -1, -1, -1, 93, 1,
+ -1, 3, 4, 5, 6, -1, 8, 9, 10, 11,
+ -1, 13, 14, -1, -1, 110, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 28, 29, 30, -1,
+ 32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
+ 42, 43, -1, 45, -1, -1, -1, 49, 50, 51,
+ 52, 53, 54, -1, 56, 57, 58, -1, -1, 61,
+ -1, -1, -1, -1, -1, 67, -1, -1, 70, -1,
+ -1, -1, -1, -1, -1, -1, 78, 79, 80, -1,
+ -1, -1, -1, -1, 86, 87, 88, -1, -1, -1,
+ -1, 93, 94, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1359, 109, 110, 1,
+ -1, 3, 4, 5, 6, -1, 8, 9, 10, 11,
+ -1, 13, 14, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 28, 29, 30, 31,
+ 32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
+ 42, 43, -1, 45, -1, -1, -1, 49, 50, 51,
+ 52, 53, 54, -1, 56, 57, 58, -1, -1, 61,
+ -1, -1, -1, -1, -1, 67, -1, -1, 70, -1,
+ -1, -1, -1, -1, -1, -1, 78, 79, 80, -1,
+ -1, -1, -1, -1, 86, 87, 88, -1, -1, -1,
+ 1, 93, 3, 4, 5, 6, -1, 8, 9, 10,
+ 11, -1, 13, 14, -1, -1, -1, -1, 110, -1,
-1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
-1, 32, -1, 34, 35, 36, -1, 38, 39, 40,
41, 42, 43, -1, 45, -1, -1, -1, 49, 50,
@@ -3249,29 +3285,18 @@ static const short yycheck[] = { 4,
61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
-1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
-1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
- -1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 109, 110,
- 1, -1, 3, 4, 5, 6, -1, 8, 9, 10,
- 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
- -1, -1, 1336, -1, -1, -1, -1, 28, 29, 30,
- 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
- 41, 42, 43, -1, 45, -1, -1, -1, 49, 50,
- 51, 52, 53, 54, -1, 56, 57, 58, -1, -1,
- 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
- -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
- -1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
- -1, 1, 93, 3, 4, 5, 6, -1, 8, 9,
- 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
- -1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
- 30, -1, 32, -1, 34, 35, 36, -1, 38, 39,
- 40, 41, 42, 43, -1, 45, -1, -1, -1, 49,
- 50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
- -1, 61, -1, -1, -1, -1, -1, 67, -1, -1,
- 70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
- 80, -1, -1, -1, -1, -1, 86, 87, 88, -1,
- -1, -1, -1, 93, 94, 1, -1, 3, 4, 5,
+ -1, -1, 93, 94, 1, -1, 3, 4, 5, 6,
+ -1, 8, 9, 10, 11, -1, 13, 14, -1, 110,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
+ -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
+ -1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
+ 57, 58, -1, -1, 61, -1, -1, -1, -1, -1,
+ 67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
+ -1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
+ 87, 88, -1, -1, -1, 1, 93, 3, 4, 5,
6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
- 110, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 109, 110, -1, -1, -1, -1, -1, -1,
-1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
36, -1, 38, 39, 40, 41, 42, 43, -1, 45,
-1, -1, -1, 49, 50, 51, 52, 53, 54, -1,
@@ -3287,20 +3312,20 @@ static const short yycheck[] = { 4,
-1, 56, 57, 58, -1, -1, 61, -1, -1, -1,
-1, -1, 67, -1, -1, 70, -1, -1, -1, -1,
-1, -1, -1, 78, 79, 80, -1, -1, -1, -1,
- -1, 86, 87, 88, -1, -1, -1, 1, 93, 3,
- 4, 5, 6, -1, 8, 9, 10, 11, -1, 13,
- 14, -1, -1, -1, 109, 110, -1, -1, -1, -1,
- -1, -1, -1, -1, 28, 29, 30, -1, 32, -1,
- 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
- -1, 45, -1, -1, -1, 49, 50, 51, 52, 53,
- 54, -1, 56, 57, 58, -1, -1, 61, -1, -1,
- -1, -1, -1, 67, -1, -1, 70, -1, -1, -1,
- -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
- -1, -1, 86, 87, 88, -1, -1, -1, -1, 93,
- -1, 1, -1, 3, 4, 5, 6, 101, 8, 9,
- 10, 11, -1, 13, 14, -1, 110, -1, -1, -1,
+ -1, 86, 87, 88, -1, -1, -1, -1, 93, -1,
+ 1, -1, 3, 4, 5, 6, 101, 8, 9, 10,
+ 11, -1, 13, 14, -1, 110, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
+ 41, 42, 43, -1, 45, -1, -1, -1, 49, 50,
+ 51, 52, 53, 54, -1, 56, 57, 58, -1, -1,
+ 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
+ -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
+ -1, -1, -1, -1, -1, 86, 87, 88, -1, -1,
+ -1, 1, 93, 3, 4, 5, 6, -1, 8, 9,
+ 10, 11, -1, 13, 14, -1, -1, -1, -1, 110,
-1, -1, -1, -1, -1, -1, -1, -1, 28, 29,
- 30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
+ 30, -1, 32, -1, 34, 35, 36, -1, 38, 39,
40, 41, 42, 43, -1, 45, -1, -1, -1, 49,
50, 51, 52, 53, 54, -1, 56, 57, 58, -1,
-1, 61, -1, -1, -1, -1, -1, 67, -1, -1,
@@ -3311,7 +3336,32 @@ static const short yycheck[] = { 4,
110, -1, -1, -1, -1, -1, -1, -1, -1, 28,
29, 30, -1, 32, -1, 34, 35, 36, -1, 38,
39, 40, 41, 42, 43, -1, 45, -1, -1, -1,
- 49, 50, 51, 52, 53, 54, -1, 56, 57, 58,
+ 49, 50, 51, 52, 53, 54, -1, 56, 57, -1,
+ -1, 60, 61, -1, -1, -1, -1, -1, 67, -1,
+ -1, 70, -1, -1, -1, -1, -1, -1, -1, 78,
+ 79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
+ -1, -1, -1, 1, 93, 3, 4, 5, 6, -1,
+ 8, 9, 10, 11, -1, 13, 14, -1, -1, -1,
+ -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
+ 28, 29, 30, -1, 32, -1, 34, 35, 36, -1,
+ 38, 39, 40, 41, 42, 43, -1, 45, -1, -1,
+ -1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
+ -1, -1, -1, 61, -1, -1, -1, -1, -1, 67,
+ 1, -1, 70, 4, 5, -1, -1, 8, 9, -1,
+ 78, 79, 80, 14, -1, -1, -1, -1, 86, 87,
+ 88, -1, -1, -1, -1, 93, -1, 28, -1, 30,
+ -1, -1, -1, -1, -1, 36, -1, 38, 39, -1,
+ 108, -1, 110, -1, 45, -1, 47, -1, -1, -1,
+ -1, -1, -1, 54, -1, 56, 57, -1, 59, -1,
+ -1, -1, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, -1, -1, 86, 87, 88, -1, -1,
+ 91, -1, 1, 94, 3, 4, 5, 6, -1, 8,
+ 9, 10, 11, -1, 13, 14, -1, -1, -1, 110,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
+ 29, 30, -1, 32, -1, 34, 35, 36, -1, 38,
+ 39, 40, 41, 42, 43, -1, 45, -1, -1, -1,
+ 49, 50, 51, 52, 53, 54, -1, 56, 57, -1,
-1, -1, 61, -1, -1, -1, -1, -1, 67, -1,
-1, 70, -1, -1, -1, -1, -1, -1, -1, 78,
79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
@@ -3321,7 +3371,7 @@ static const short yycheck[] = { 4,
28, 29, 30, -1, 32, -1, 34, 35, 36, -1,
38, 39, 40, 41, 42, 43, -1, 45, -1, -1,
-1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
- -1, -1, -1, 61, 62, -1, -1, -1, -1, 67,
+ -1, -1, -1, 61, -1, -1, -1, -1, -1, 67,
-1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
88, -1, -1, -1, 1, 93, 3, 4, 5, 6,
@@ -3330,81 +3380,34 @@ static const short yycheck[] = { 4,
-1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
-1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
-1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
- 57, -1, -1, 60, 61, -1, -1, -1, -1, -1,
- 67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
- -1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
- 87, 88, -1, -1, -1, 1, 93, 3, 4, 5,
- 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
- -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
- -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
- 36, -1, 38, 39, 40, 41, 42, 43, -1, 45,
- -1, -1, -1, 49, 50, 51, 52, 53, 54, -1,
- 56, 57, -1, -1, -1, 61, -1, -1, -1, -1,
- -1, 67, 1, -1, 70, 4, 5, -1, -1, 8,
- 9, -1, 78, 79, 80, 14, -1, -1, -1, -1,
- 86, 87, 88, -1, -1, -1, -1, 93, -1, 28,
- -1, 30, -1, -1, -1, -1, -1, 36, -1, 38,
- 39, -1, 108, -1, 110, -1, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, 54, -1, 56, 57, -1,
- 59, -1, -1, -1, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, -1, -1, 86, 87, 88,
- -1, -1, 91, -1, 1, 94, 3, 4, 5, 6,
- -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
- -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 28, 29, 30, -1, 32, -1, 34, 35, 36,
- -1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
- -1, -1, 49, 50, 51, 52, 53, 54, -1, 56,
57, -1, -1, -1, 61, -1, -1, -1, -1, -1,
67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
-1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
- 87, 88, -1, -1, -1, 1, 93, 3, 4, 5,
- 6, -1, 8, 9, 10, 11, -1, 13, 14, -1,
- -1, -1, -1, 110, -1, -1, -1, -1, -1, -1,
- -1, -1, 28, 29, 30, -1, 32, -1, 34, 35,
- 36, -1, 38, 39, 40, 41, 42, 43, -1, 45,
- -1, -1, -1, 49, 50, 51, 52, 53, 54, -1,
- 56, 57, -1, -1, -1, 61, -1, -1, -1, -1,
- -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
- -1, -1, 78, 79, 80, -1, -1, -1, -1, -1,
- 86, 87, 88, -1, -1, -1, 1, 93, 3, 4,
- 5, 6, -1, 8, 9, 10, 11, -1, 13, 14,
- -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
- -1, -1, -1, 28, 29, 30, -1, 32, -1, 34,
- 35, 36, -1, 38, 39, 40, 41, 42, 43, -1,
- 45, -1, -1, -1, 49, 50, 51, 52, 53, 54,
- -1, 56, 57, -1, -1, -1, 61, -1, -1, -1,
- -1, -1, 67, -1, -1, 70, -1, -1, -1, -1,
- -1, -1, -1, 78, 79, 80, -1, -1, -1, -1,
- -1, 86, 87, 88, 3, 4, 5, 6, 93, 8,
- 9, 10, 11, -1, 13, 14, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 110, -1, -1, -1, 28,
- 29, 30, -1, 32, -1, 34, 35, 36, -1, 38,
- 39, 40, 41, 42, 43, -1, 45, -1, -1, -1,
- 49, 50, 51, 52, 53, 54, -1, 56, 57, -1,
- -1, -1, 61, -1, -1, -1, -1, -1, 67, -1,
- 1, 70, 3, 4, 5, 6, 7, 8, 9, 78,
- 79, 80, -1, 14, -1, -1, -1, 86, 87, 88,
- -1, -1, -1, -1, 93, -1, -1, 28, -1, 30,
- 31, 32, -1, -1, -1, 36, 37, -1, -1, -1,
- 41, 110, 111, -1, 45, 46, -1, 48, -1, -1,
- -1, -1, -1, 54, -1, 56, 57, -1, -1, 60,
- -1, 62, -1, -1, -1, -1, -1, -1, -1, 70,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 80,
- -1, -1, -1, -1, -1, -1, -1, 88, -1, -1,
- -1, -1, 93, -1, -1, 3, 4, 5, 6, 7,
- 8, 9, 10, 11, -1, 13, 14, 15, 109, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, -1, 34, 35, 36, -1,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
- -1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
- 58, -1, 60, 61, -1, -1, -1, -1, -1, 67,
- -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
- 78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
- 88, -1, -1, -1, -1, 93, -1, 95, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 109, 110, 3, 4, 5, 6, 7, 8, 9,
- 10, 11, -1, 13, 14, 15, -1, 17, 18, 19,
+ 87, 88, 3, 4, 5, 6, 93, 8, 9, 10,
+ 11, -1, 13, 14, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 110, -1, -1, -1, 28, 29, 30,
+ -1, 32, -1, 34, 35, 36, -1, 38, 39, 40,
+ 41, 42, 43, -1, 45, -1, -1, -1, 49, 50,
+ 51, 52, 53, 54, -1, 56, 57, -1, -1, -1,
+ 61, -1, -1, -1, -1, -1, 67, -1, 1, 70,
+ 3, 4, 5, 6, 7, 8, 9, 78, 79, 80,
+ -1, 14, -1, -1, -1, 86, 87, 88, -1, -1,
+ -1, -1, 93, -1, -1, 28, -1, 30, 31, 32,
+ -1, -1, -1, 36, 37, -1, -1, -1, 41, 110,
+ 111, -1, 45, 46, -1, 48, -1, -1, -1, -1,
+ -1, 54, -1, 56, 57, -1, -1, 60, -1, 62,
+ -1, -1, -1, -1, -1, -1, -1, 70, 1, -1,
+ 3, 4, 5, 6, 7, 8, 9, 80, -1, -1,
+ -1, 14, -1, -1, -1, 88, -1, -1, -1, -1,
+ 93, -1, -1, -1, -1, 28, -1, 30, 31, 32,
+ -1, -1, -1, 36, 37, -1, 109, -1, 41, -1,
+ -1, -1, 45, 46, -1, 48, -1, -1, -1, -1,
+ -1, 54, -1, 56, 57, -1, -1, 60, -1, 62,
+ -1, -1, -1, -1, -1, -1, -1, 70, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 80, -1, -1,
+ -1, -1, -1, -1, -1, 88, -1, -1, -1, -1,
+ 93, -1, -1, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, -1, 13, 14, 15, 109, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, -1, 34, 35, 36, -1, 38, 39,
40, 41, 42, 43, 44, 45, 46, -1, -1, 49,
@@ -3412,27 +3415,47 @@ static const short yycheck[] = { 4,
60, 61, -1, -1, -1, -1, -1, 67, -1, -1,
70, -1, -1, -1, -1, -1, -1, -1, 78, 79,
80, -1, -1, -1, -1, -1, 86, 87, 88, -1,
- -1, -1, -1, 93, -1, 95, -1, 3, 4, 5,
- 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
- 110, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, -1, 34, 35,
- 36, -1, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, -1, -1, 49, 50, 51, 52, 53, 54, -1,
- 56, 57, 58, -1, 60, 61, -1, -1, -1, -1,
- -1, 67, -1, -1, 70, -1, -1, -1, -1, -1,
- -1, -1, 78, 79, 80, -1, -1, -1, -1, -1,
- 86, 87, 88, -1, -1, -1, -1, 93, -1, 95,
- -1, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- -1, 13, 14, 15, 110, 17, 18, 19, 20, 21,
+ -1, -1, -1, 93, -1, 95, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 109,
+ 110, 3, 4, 5, 6, 7, 8, 9, 10, 11,
+ -1, 13, 14, 15, -1, 17, 18, 19, 20, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, -1, 34, 35, 36, -1, 38, 39, 40, 41,
42, 43, 44, 45, 46, -1, -1, 49, 50, 51,
- 52, 53, 54, -1, 56, 57, -1, -1, 60, 61,
+ 52, 53, 54, -1, 56, 57, 58, -1, 60, 61,
-1, -1, -1, -1, -1, 67, -1, -1, 70, -1,
-1, -1, -1, -1, -1, -1, 78, 79, 80, -1,
-1, -1, -1, -1, 86, 87, 88, -1, -1, -1,
- -1, 93, -1, 95, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, -1, -1, 110, -1,
+ -1, 93, -1, 95, -1, 3, 4, 5, 6, 7,
+ 8, 9, 10, 11, -1, 13, 14, 15, 110, 17,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, -1, 34, 35, 36, -1,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
+ -1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
+ 58, -1, 60, 61, -1, -1, -1, -1, -1, 67,
+ -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
+ 78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
+ 88, -1, -1, -1, -1, 93, -1, 95, -1, 3,
+ 4, 5, 6, 7, 8, 9, 10, 11, -1, 13,
+ 14, 15, 110, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
+ 34, 35, 36, -1, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, -1, -1, 49, 50, 51, 52, 53,
+ 54, -1, 56, 57, -1, -1, 60, 61, -1, -1,
+ -1, -1, -1, 67, -1, -1, 70, -1, -1, -1,
+ -1, -1, -1, -1, 78, 79, 80, -1, -1, -1,
+ -1, -1, 86, 87, 88, -1, -1, -1, -1, 93,
+ -1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
+ 11, 12, 13, 14, -1, -1, 110, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 28, 29, 30,
+ 31, 32, -1, 34, 35, 36, -1, 38, 39, 40,
+ 41, 42, 43, -1, 45, -1, 47, -1, 49, 50,
+ 51, 52, 53, 54, -1, 56, 57, -1, -1, -1,
+ 61, -1, -1, -1, -1, -1, 67, -1, -1, 70,
+ -1, -1, -1, -1, -1, -1, -1, 78, 79, 80,
+ -1, -1, -1, -1, -1, 86, 87, 88, -1, 90,
+ -1, -1, 93, 94, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, -1, -1, -1, 110,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 28,
29, 30, 31, 32, -1, 34, 35, 36, -1, 38,
39, 40, 41, 42, 43, -1, 45, -1, 47, -1,
@@ -3441,12 +3464,12 @@ static const short yycheck[] = { 4,
-1, 70, -1, -1, -1, -1, -1, -1, -1, 78,
79, 80, -1, -1, -1, -1, -1, 86, 87, 88,
-1, 90, -1, -1, 93, 94, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, -1, -1,
+ -1, 8, 9, 10, 11, -1, 13, 14, -1, -1,
-1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 28, 29, 30, 31, 32, -1, 34, 35, 36,
-1, 38, 39, 40, 41, 42, 43, -1, 45, -1,
47, -1, 49, 50, 51, 52, 53, 54, -1, 56,
- 57, -1, -1, -1, 61, -1, -1, -1, -1, -1,
+ 57, -1, -1, -1, -1, -1, -1, -1, -1, -1,
67, -1, -1, 70, -1, -1, -1, -1, -1, -1,
-1, 78, 79, 80, -1, -1, -1, -1, -1, 86,
87, 88, -1, 90, -1, -1, 93, 94, 3, 4,
@@ -3587,103 +3610,33 @@ static const short yycheck[] = { 4,
38, 39, 40, 41, 42, 43, -1, 45, -1, -1,
-1, 49, 50, 51, 52, 53, 54, -1, 56, 57,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 67,
- -1, 1, 70, 3, 4, 5, 6, 7, 8, 9,
- 78, 79, 80, -1, 14, -1, -1, -1, 86, 87,
- 88, -1, -1, -1, -1, 93, -1, 27, 28, -1,
- 30, 31, 32, -1, -1, -1, 36, -1, -1, -1,
- -1, 41, 110, -1, 44, 45, 46, -1, 48, -1,
- -1, -1, -1, -1, 54, -1, 56, 57, -1, -1,
- 60, -1, 3, 4, 5, 6, -1, -1, 9, -1,
- 70, -1, -1, -1, -1, -1, -1, -1, -1, 1,
- 80, 3, 4, 5, 6, 7, 8, 9, 88, -1,
- 31, -1, 14, 93, -1, -1, -1, -1, 98, -1,
- 41, -1, -1, -1, -1, -1, 28, -1, 30, 31,
- 32, -1, -1, 54, 36, 56, 57, -1, -1, 41,
- -1, -1, -1, 45, -1, -1, 48, -1, -1, 70,
- -1, -1, 54, -1, 56, 57, -1, -1, 1, 80,
- 3, 4, 5, 6, 7, 8, 9, 88, 70, -1,
- -1, 14, 93, -1, -1, -1, -1, -1, 80, -1,
- -1, -1, -1, -1, -1, 28, 88, 30, 31, 32,
- -1, 93, -1, 36, -1, -1, 98, -1, 41, -1,
- -1, -1, 45, 46, -1, 48, -1, -1, -1, -1,
- -1, 54, -1, 56, 57, -1, -1, 60, -1, 62,
- -1, -1, -1, -1, -1, -1, 1, 70, 3, 4,
- 5, 6, 7, 8, 9, -1, -1, 80, -1, 14,
- -1, -1, -1, -1, -1, 88, -1, -1, -1, -1,
- 93, -1, -1, 28, -1, 30, 31, -1, -1, -1,
- -1, 36, -1, -1, -1, -1, 41, -1, -1, -1,
- 45, -1, -1, 48, -1, -1, -1, -1, -1, 54,
- -1, 56, 57, -1, -1, 60, -1, 3, 4, 5,
- 6, 7, 8, 9, -1, 70, -1, -1, 14, -1,
- -1, -1, -1, -1, -1, 80, -1, -1, -1, -1,
- -1, -1, 28, 88, 30, 31, -1, -1, 93, -1,
- 36, -1, -1, -1, -1, 41, -1, -1, -1, 45,
- -1, 47, -1, -1, -1, -1, -1, -1, 54, -1,
- 56, 57, 3, 4, 5, 6, 7, 8, 9, -1,
- -1, -1, -1, 14, 70, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 80, -1, -1, 28, -1, 30,
- 31, -1, 88, -1, 90, 36, -1, 93, 94, -1,
- 41, -1, -1, -1, 45, -1, -1, -1, -1, -1,
- -1, -1, -1, 54, -1, 56, 57, -1, -1, 60,
- -1, 3, 4, 5, 6, 7, 8, 9, -1, 70,
- -1, -1, 14, -1, -1, -1, -1, -1, -1, 80,
- -1, -1, -1, -1, -1, -1, 28, 88, 30, 31,
- -1, -1, 93, -1, 36, -1, -1, -1, -1, 41,
- -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
- -1, -1, 54, -1, 56, 57, -1, -1, -1, -1,
- 62, -1, -1, -1, -1, -1, -1, -1, 70, 3,
- 4, 5, 6, 7, 8, 9, -1, -1, 80, -1,
- 14, -1, -1, -1, -1, -1, 88, -1, -1, -1,
- -1, 93, -1, -1, 28, -1, 30, 31, -1, -1,
- -1, -1, 36, -1, -1, -1, -1, 41, -1, -1,
- -1, 45, -1, -1, -1, -1, -1, -1, -1, -1,
- 54, -1, 56, 57, -1, -1, 60, -1, 3, 4,
- 5, 6, 7, 8, 9, -1, 70, -1, -1, 14,
- -1, -1, -1, -1, -1, -1, 80, -1, -1, -1,
- -1, -1, -1, 28, 88, 30, 31, -1, -1, 93,
- -1, 36, -1, -1, -1, -1, 41, -1, -1, -1,
- 45, -1, -1, -1, -1, -1, -1, -1, -1, 54,
- -1, 56, 57, 3, 4, 5, 6, 7, 8, 9,
- -1, -1, -1, -1, 14, 70, -1, -1, -1, -1,
- 3, 4, 5, 6, -1, 80, 9, -1, 28, -1,
- 30, 31, -1, 88, -1, -1, 36, -1, 93, -1,
- -1, 41, -1, -1, -1, 45, -1, -1, 31, -1,
- -1, -1, -1, -1, 54, -1, 56, 57, 41, -1,
- -1, 3, 4, 5, 6, -1, -1, 9, -1, -1,
- 70, 54, -1, 56, 57, -1, -1, -1, -1, -1,
- 80, -1, -1, -1, -1, -1, -1, 70, 88, 31,
- -1, -1, -1, 93, -1, -1, -1, 80, -1, 41,
- -1, -1, -1, -1, -1, 88, -1, -1, -1, -1,
- 93, -1, 54, -1, 56, 57, -1, -1, -1, -1,
- 31, -1, -1, -1, -1, -1, -1, -1, 70, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 80, -1,
- -1, -1, -1, -1, -1, -1, 88, -1, -1, -1,
- -1, 93, 63, 64, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, -1, -1,
- -1, -1, 111, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 59, -1, -1,
- 107, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 62, 63, 64, 65, 66, 67, 68,
+ -1, -1, 70, -1, -1, -1, -1, -1, -1, -1,
+ 78, 79, 80, -1, -1, -1, -1, -1, 86, 87,
+ 88, -1, -1, 4, 5, 93, 7, 8, 9, -1,
+ -1, 12, -1, 14, -1, -1, -1, -1, -1, -1,
+ -1, -1, 110, -1, -1, -1, -1, 28, -1, 30,
+ 31, -1, -1, -1, -1, 36, -1, -1, -1, -1,
+ -1, -1, -1, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, 54, -1, 56, 57, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, -1, -1, -1, -1, 111, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 59, -1, -1, 107, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 63, 64, 65, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- -1, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84
+ 79, 80, 81, 82, 83, 84, 62, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, -1, 76, 77, 78, 79, 80, 81,
+ 82, 83, 84
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/usr/cygnus/gnupro-98r1/share/bison.simple"
+#line 3 "/usr/lib/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -3700,8 +3653,7 @@ static const short yycheck[] = { 4,
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
@@ -3877,7 +3829,7 @@ __yy_memcpy (char *to, char *from, int count)
#endif
#endif
-#line 196 "/usr/cygnus/gnupro-98r1/share/bison.simple"
+#line 196 "/usr/lib/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
@@ -6423,14 +6375,8 @@ case 524:
#line 2388 "parse.y"
{ yyvsp[-1].ttype = begin_class_definition (yyvsp[-1].ttype); ;
break;}
-case 525:
-#line 2393 "parse.y"
-{
- finish_member_declaration (build_self_reference ());
- ;
- break;}
-case 530:
-#line 2407 "parse.y"
+case 529:
+#line 2399 "parse.y"
{
if (current_aggr == signature_type_node)
{
@@ -6441,50 +6387,50 @@ case 530:
current_access_specifier = yyvsp[-1].ttype;
;
break;}
-case 531:
-#line 2422 "parse.y"
+case 530:
+#line 2414 "parse.y"
{
finish_member_declaration (yyvsp[0].ttype);
;
break;}
-case 532:
-#line 2426 "parse.y"
+case 531:
+#line 2418 "parse.y"
{
finish_member_declaration (yyvsp[0].ttype);
;
break;}
-case 534:
-#line 2434 "parse.y"
+case 533:
+#line 2426 "parse.y"
{ error ("missing ';' before right brace");
yyungetc ('}', 0); ;
break;}
+case 534:
+#line 2431 "parse.y"
+{ yyval.ttype = finish_method (yyval.ttype); ;
+ break;}
case 535:
-#line 2439 "parse.y"
+#line 2433 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
break;}
case 536:
-#line 2441 "parse.y"
+#line 2435 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
break;}
case 537:
-#line 2443 "parse.y"
+#line 2437 "parse.y"
{ yyval.ttype = finish_method (yyval.ttype); ;
break;}
case 538:
-#line 2445 "parse.y"
-{ yyval.ttype = finish_method (yyval.ttype); ;
- break;}
-case 539:
-#line 2447 "parse.y"
+#line 2439 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 540:
-#line 2449 "parse.y"
+case 539:
+#line 2441 "parse.y"
{ yyval.ttype = yyvsp[0].ttype;
pedantic = yyvsp[-1].itype; ;
break;}
-case 541:
-#line 2452 "parse.y"
+case 540:
+#line 2444 "parse.y"
{
if (yyvsp[0].ttype)
yyval.ttype = finish_member_template_decl (yyvsp[0].ttype);
@@ -6495,15 +6441,15 @@ case 541:
finish_template_decl (yyvsp[-1].ttype);
;
break;}
-case 542:
-#line 2462 "parse.y"
+case 541:
+#line 2454 "parse.y"
{
yyval.ttype = finish_member_class_template (yyvsp[-1].ftype.t);
finish_template_decl (yyvsp[-2].ttype);
;
break;}
-case 543:
-#line 2473 "parse.y"
+case 542:
+#line 2465 "parse.y"
{
/* Most of the productions for component_decl only
allow the creation of one new member, so we call
@@ -6525,54 +6471,54 @@ case 543:
yyval.ttype = NULL_TREE;
;
break;}
-case 544:
-#line 2494 "parse.y"
+case 543:
+#line 2486 "parse.y"
{
if (!yyvsp[0].itype)
grok_x_components (yyvsp[-1].ttype);
yyval.ttype = NULL_TREE;
;
break;}
-case 545:
-#line 2500 "parse.y"
+case 544:
+#line 2492 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
break;}
-case 546:
-#line 2503 "parse.y"
+case 545:
+#line 2495 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
break;}
-case 547:
-#line 2506 "parse.y"
+case 546:
+#line 2498 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 548:
-#line 2508 "parse.y"
+case 547:
+#line 2500 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 549:
-#line 2519 "parse.y"
+case 548:
+#line 2511 "parse.y"
{ tree specs, attrs;
split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs);
yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, attrs)); ;
break;}
-case 550:
-#line 2524 "parse.y"
+case 549:
+#line 2516 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ;
break;}
-case 551:
-#line 2527 "parse.y"
+case 550:
+#line 2519 "parse.y"
{ yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ;
break;}
-case 552:
-#line 2533 "parse.y"
+case 551:
+#line 2525 "parse.y"
{ yyval.itype = 0; ;
break;}
-case 553:
-#line 2535 "parse.y"
+case 552:
+#line 2527 "parse.y"
{
if (PROCESSING_REAL_TEMPLATE_DECL_P ())
yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
@@ -6580,8 +6526,8 @@ case 553:
yyval.itype = 1;
;
break;}
-case 554:
-#line 2542 "parse.y"
+case 553:
+#line 2534 "parse.y"
{
check_multiple_declarators ();
if (PROCESSING_REAL_TEMPLATE_DECL_P ())
@@ -6590,12 +6536,12 @@ case 554:
yyval.itype = 2;
;
break;}
-case 555:
-#line 2553 "parse.y"
+case 554:
+#line 2545 "parse.y"
{ yyval.itype = 0; ;
break;}
-case 556:
-#line 2555 "parse.y"
+case 555:
+#line 2547 "parse.y"
{
if (PROCESSING_REAL_TEMPLATE_DECL_P ())
yyvsp[0].ttype = finish_member_template_decl (yyvsp[0].ttype);
@@ -6603,8 +6549,8 @@ case 556:
yyval.itype = 1;
;
break;}
-case 557:
-#line 2562 "parse.y"
+case 556:
+#line 2554 "parse.y"
{
check_multiple_declarators ();
if (PROCESSING_REAL_TEMPLATE_DECL_P ())
@@ -6613,103 +6559,103 @@ case 557:
yyval.itype = 2;
;
break;}
-case 562:
-#line 2583 "parse.y"
+case 561:
+#line 2575 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 563:
-#line 2589 "parse.y"
+case 562:
+#line 2581 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 564:
-#line 2598 "parse.y"
+case 563:
+#line 2590 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 565:
-#line 2604 "parse.y"
+case 564:
+#line 2596 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 566:
-#line 2610 "parse.y"
+case 565:
+#line 2602 "parse.y"
{ split_specs_attrs (yyvsp[-4].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-4].ttype = current_declspecs;
yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 567:
-#line 2616 "parse.y"
+case 566:
+#line 2608 "parse.y"
{ split_specs_attrs (yyvsp[-3].ttype, &current_declspecs,
&prefix_attributes);
yyvsp[-3].ttype = current_declspecs;
yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 568:
-#line 2625 "parse.y"
+case 567:
+#line 2617 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 569:
-#line 2628 "parse.y"
+case 568:
+#line 2620 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 570:
-#line 2634 "parse.y"
+case 569:
+#line 2626 "parse.y"
{ yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype,
build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ;
break;}
-case 571:
-#line 2637 "parse.y"
+case 570:
+#line 2629 "parse.y"
{ yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 572:
-#line 2640 "parse.y"
+case 571:
+#line 2632 "parse.y"
{ yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype);
cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
break;}
-case 574:
-#line 2651 "parse.y"
+case 573:
+#line 2643 "parse.y"
{ TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 575:
-#line 2656 "parse.y"
+case 574:
+#line 2648 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE, current_enum_type); ;
break;}
-case 576:
-#line 2658 "parse.y"
+case 575:
+#line 2650 "parse.y"
{ yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype, current_enum_type); ;
break;}
-case 577:
-#line 2664 "parse.y"
+case 576:
+#line 2656 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 578:
-#line 2667 "parse.y"
+case 577:
+#line 2659 "parse.y"
{ yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
-case 579:
-#line 2674 "parse.y"
+case 578:
+#line 2666 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new");
@@ -6718,72 +6664,72 @@ case 579:
yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag;
;
break;}
-case 580:
-#line 2685 "parse.y"
+case 579:
+#line 2677 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 581:
-#line 2687 "parse.y"
+case 580:
+#line 2679 "parse.y"
{ yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
break;}
-case 582:
-#line 2692 "parse.y"
+case 581:
+#line 2684 "parse.y"
{ yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype);
yyval.ftype.new_type_flag = 0; ;
break;}
-case 583:
-#line 2695 "parse.y"
+case 582:
+#line 2687 "parse.y"
{ yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 584:
-#line 2704 "parse.y"
+case 583:
+#line 2696 "parse.y"
{ yyval.itype = suspend_momentary (); ;
break;}
-case 585:
-#line 2709 "parse.y"
+case 584:
+#line 2701 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 586:
-#line 2715 "parse.y"
+case 585:
+#line 2707 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 587:
-#line 2717 "parse.y"
+case 586:
+#line 2709 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 588:
-#line 2719 "parse.y"
+case 587:
+#line 2711 "parse.y"
{ resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ;
break;}
-case 589:
-#line 2721 "parse.y"
+case 588:
+#line 2713 "parse.y"
{ resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ;
break;}
-case 590:
-#line 2728 "parse.y"
+case 589:
+#line 2720 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 591:
-#line 2730 "parse.y"
+case 590:
+#line 2722 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 592:
-#line 2732 "parse.y"
+case 591:
+#line 2724 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 593:
-#line 2734 "parse.y"
+case 592:
+#line 2726 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 594:
-#line 2736 "parse.y"
+case 593:
+#line 2728 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 596:
-#line 2744 "parse.y"
+case 595:
+#line 2736 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
{
@@ -6801,8 +6747,8 @@ case 596:
yyval.ttype = yyvsp[0].ttype;
;
break;}
-case 597:
-#line 2761 "parse.y"
+case 596:
+#line 2753 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
@@ -6811,161 +6757,161 @@ case 597:
got_scope = NULL_TREE;
;
break;}
-case 600:
-#line 2774 "parse.y"
+case 599:
+#line 2766 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 601:
-#line 2779 "parse.y"
+case 600:
+#line 2771 "parse.y"
{ yyval.ttype = get_type_decl (yyvsp[0].ttype); ;
break;}
-case 602:
-#line 2784 "parse.y"
+case 601:
+#line 2776 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 603:
-#line 2786 "parse.y"
+case 602:
+#line 2778 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 604:
-#line 2788 "parse.y"
+case 603:
+#line 2780 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
break;}
-case 605:
-#line 2790 "parse.y"
+case 604:
+#line 2782 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 606:
-#line 2792 "parse.y"
+case 605:
+#line 2784 "parse.y"
{ push_nested_class (yyvsp[-1].ttype, 3);
yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype);
TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ;
break;}
-case 609:
-#line 2804 "parse.y"
+case 608:
+#line 2796 "parse.y"
{
/* Provide support for '(' attributes '*' declarator ')'
etc */
yyval.ttype = decl_tree_cons (yyvsp[-1].ttype, yyvsp[0].ttype, NULL_TREE);
;
break;}
-case 610:
-#line 2813 "parse.y"
+case 609:
+#line 2805 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 611:
-#line 2815 "parse.y"
+case 610:
+#line 2807 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 612:
-#line 2817 "parse.y"
+case 611:
+#line 2809 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 613:
-#line 2819 "parse.y"
+case 612:
+#line 2811 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 614:
-#line 2821 "parse.y"
+case 613:
+#line 2813 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 616:
-#line 2829 "parse.y"
+case 615:
+#line 2821 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 617:
-#line 2831 "parse.y"
+case 616:
+#line 2823 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 618:
-#line 2833 "parse.y"
+case 617:
+#line 2825 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 619:
-#line 2835 "parse.y"
+case 618:
+#line 2827 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 620:
-#line 2837 "parse.y"
+case 619:
+#line 2829 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 622:
-#line 2845 "parse.y"
+case 621:
+#line 2837 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 623:
-#line 2847 "parse.y"
+case 622:
+#line 2839 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 624:
-#line 2849 "parse.y"
+case 623:
+#line 2841 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 625:
-#line 2851 "parse.y"
+case 624:
+#line 2843 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
break;}
-case 626:
-#line 2853 "parse.y"
+case 625:
+#line 2845 "parse.y"
{ enter_scope_of (yyvsp[0].ttype); ;
break;}
-case 627:
-#line 2855 "parse.y"
+case 626:
+#line 2847 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype);
enter_scope_of (yyval.ttype);
;
break;}
-case 628:
-#line 2863 "parse.y"
+case 627:
+#line 2855 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
break;}
-case 629:
-#line 2866 "parse.y"
+case 628:
+#line 2858 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 630:
-#line 2872 "parse.y"
+case 629:
+#line 2864 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ;
break;}
-case 631:
-#line 2875 "parse.y"
+case 630:
+#line 2867 "parse.y"
{ got_scope = NULL_TREE;
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 633:
-#line 2882 "parse.y"
+case 632:
+#line 2874 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 634:
-#line 2887 "parse.y"
+case 633:
+#line 2879 "parse.y"
{ yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
break;}
-case 635:
-#line 2889 "parse.y"
+case 634:
+#line 2881 "parse.y"
{ yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ;
break;}
-case 636:
-#line 2891 "parse.y"
+case 635:
+#line 2883 "parse.y"
{ yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 641:
-#line 2902 "parse.y"
+case 640:
+#line 2894 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 642:
-#line 2904 "parse.y"
+case 641:
+#line 2896 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 643:
-#line 2911 "parse.y"
+case 642:
+#line 2903 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
{
@@ -6980,32 +6926,32 @@ case 643:
got_scope = yyval.ttype = TYPE_MAIN_VARIANT (TREE_TYPE (yyval.ttype));
;
break;}
-case 644:
-#line 2925 "parse.y"
+case 643:
+#line 2917 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype = TREE_TYPE (yyval.ttype);
;
break;}
-case 645:
-#line 2931 "parse.y"
+case 644:
+#line 2923 "parse.y"
{
if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype;
;
break;}
-case 646:
-#line 2937 "parse.y"
+case 645:
+#line 2929 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ;
break;}
-case 648:
-#line 2953 "parse.y"
+case 647:
+#line 2945 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 649:
-#line 2958 "parse.y"
+case 648:
+#line 2950 "parse.y"
{
if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
@@ -7019,27 +6965,27 @@ case 649:
}
;
break;}
-case 650:
-#line 2971 "parse.y"
+case 649:
+#line 2963 "parse.y"
{ yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ;
break;}
-case 651:
-#line 2973 "parse.y"
+case 650:
+#line 2965 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 652:
-#line 2975 "parse.y"
+case 651:
+#line 2967 "parse.y"
{ yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ;
break;}
-case 653:
-#line 2980 "parse.y"
+case 652:
+#line 2972 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype);
;
break;}
-case 654:
-#line 2985 "parse.y"
+case 653:
+#line 2977 "parse.y"
{
if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't')
yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype);
@@ -7053,16 +6999,16 @@ case 654:
}
;
break;}
-case 655:
-#line 2998 "parse.y"
+case 654:
+#line 2990 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
break;}
-case 656:
-#line 3000 "parse.y"
+case 655:
+#line 2992 "parse.y"
{ got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 657:
-#line 3005 "parse.y"
+case 656:
+#line 2997 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
yyvsp[-1].ttype = lastiddecl;
@@ -7075,32 +7021,32 @@ case 657:
cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype);
;
break;}
-case 658:
-#line 3017 "parse.y"
+case 657:
+#line 3009 "parse.y"
{
if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype));
;
break;}
-case 659:
-#line 3023 "parse.y"
+case 658:
+#line 3015 "parse.y"
{ got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ;
break;}
-case 662:
-#line 3027 "parse.y"
+case 661:
+#line 3019 "parse.y"
{
if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE)
yyval.ttype = lastiddecl;
got_scope = yyval.ttype;
;
break;}
-case 663:
-#line 3036 "parse.y"
+case 662:
+#line 3028 "parse.y"
{ yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 664:
-#line 3041 "parse.y"
+case 663:
+#line 3033 "parse.y"
{
if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE)
yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype);
@@ -7109,149 +7055,149 @@ case 664:
got_scope = NULL_TREE;
;
break;}
-case 666:
-#line 3050 "parse.y"
+case 665:
+#line 3042 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 667:
-#line 3055 "parse.y"
+case 666:
+#line 3047 "parse.y"
{ got_scope = NULL_TREE; ;
break;}
-case 668:
-#line 3057 "parse.y"
+case 667:
+#line 3049 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ;
break;}
-case 669:
-#line 3064 "parse.y"
+case 668:
+#line 3056 "parse.y"
{ got_scope = void_type_node; ;
break;}
-case 670:
-#line 3070 "parse.y"
+case 669:
+#line 3062 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 671:
-#line 3072 "parse.y"
+case 670:
+#line 3064 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;}
-case 672:
-#line 3074 "parse.y"
+case 671:
+#line 3066 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 673:
-#line 3076 "parse.y"
+case 672:
+#line 3068 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ;
break;}
-case 674:
-#line 3078 "parse.y"
+case 673:
+#line 3070 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
;
break;}
-case 675:
-#line 3082 "parse.y"
+case 674:
+#line 3074 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 677:
-#line 3091 "parse.y"
+case 676:
+#line 3083 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;}
-case 678:
-#line 3093 "parse.y"
+case 677:
+#line 3085 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 679:
-#line 3099 "parse.y"
+case 678:
+#line 3091 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 680:
-#line 3101 "parse.y"
+case 679:
+#line 3093 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 681:
-#line 3103 "parse.y"
+case 680:
+#line 3095 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
break;}
-case 682:
-#line 3105 "parse.y"
+case 681:
+#line 3097 "parse.y"
{ yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ;
break;}
-case 683:
-#line 3107 "parse.y"
+case 682:
+#line 3099 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 684:
-#line 3109 "parse.y"
+case 683:
+#line 3101 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ;
break;}
-case 685:
-#line 3111 "parse.y"
+case 684:
+#line 3103 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ;
break;}
-case 686:
-#line 3113 "parse.y"
+case 685:
+#line 3105 "parse.y"
{ yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ;
break;}
-case 687:
-#line 3115 "parse.y"
+case 686:
+#line 3107 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg);
;
break;}
-case 688:
-#line 3119 "parse.y"
+case 687:
+#line 3111 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 690:
-#line 3128 "parse.y"
+case 689:
+#line 3120 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 692:
-#line 3132 "parse.y"
+case 691:
+#line 3124 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 693:
-#line 3134 "parse.y"
+case 692:
+#line 3126 "parse.y"
{ yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 694:
-#line 3136 "parse.y"
+case 693:
+#line 3128 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 695:
-#line 3138 "parse.y"
+case 694:
+#line 3130 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ;
break;}
-case 696:
-#line 3140 "parse.y"
+case 695:
+#line 3132 "parse.y"
{ yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 697:
-#line 3142 "parse.y"
+case 696:
+#line 3134 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 698:
-#line 3144 "parse.y"
+case 697:
+#line 3136 "parse.y"
{ set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 699:
-#line 3146 "parse.y"
+case 698:
+#line 3138 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
break;}
-case 700:
-#line 3148 "parse.y"
+case 699:
+#line 3140 "parse.y"
{ yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ;
break;}
-case 707:
-#line 3171 "parse.y"
+case 706:
+#line 3163 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids label declarations"); ;
break;}
-case 710:
-#line 3182 "parse.y"
+case 709:
+#line 3174 "parse.y"
{ tree link;
for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
{
@@ -7261,267 +7207,267 @@ case 710:
}
;
break;}
-case 711:
-#line 3196 "parse.y"
+case 710:
+#line 3188 "parse.y"
{;
break;}
-case 713:
-#line 3202 "parse.y"
+case 712:
+#line 3194 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
break;}
-case 714:
-#line 3204 "parse.y"
+case 713:
+#line 3196 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
break;}
-case 715:
-#line 3209 "parse.y"
+case 714:
+#line 3201 "parse.y"
{
yyval.ttype = begin_if_stmt ();
cond_stmt_keyword = "if";
;
break;}
-case 716:
-#line 3214 "parse.y"
+case 715:
+#line 3206 "parse.y"
{ finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
-case 717:
-#line 3216 "parse.y"
+case 716:
+#line 3208 "parse.y"
{ yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ;
break;}
-case 719:
-#line 3221 "parse.y"
+case 718:
+#line 3213 "parse.y"
{ yyval.ttype = begin_compound_stmt (0); ;
break;}
-case 720:
-#line 3223 "parse.y"
+case 719:
+#line 3215 "parse.y"
{ yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ;
break;}
-case 721:
-#line 3228 "parse.y"
+case 720:
+#line 3220 "parse.y"
{;
break;}
-case 723:
-#line 3234 "parse.y"
+case 722:
+#line 3226 "parse.y"
{ finish_stmt (); ;
break;}
-case 724:
-#line 3236 "parse.y"
+case 723:
+#line 3228 "parse.y"
{ finish_expr_stmt (yyvsp[-1].ttype); ;
break;}
-case 725:
-#line 3238 "parse.y"
+case 724:
+#line 3230 "parse.y"
{ begin_else_clause (); ;
break;}
-case 726:
-#line 3240 "parse.y"
+case 725:
+#line 3232 "parse.y"
{
finish_else_clause (yyvsp[-3].ttype);
finish_if_stmt ();
;
break;}
-case 727:
-#line 3245 "parse.y"
+case 726:
+#line 3237 "parse.y"
{ finish_if_stmt (); ;
break;}
-case 728:
-#line 3247 "parse.y"
+case 727:
+#line 3239 "parse.y"
{
yyval.ttype = begin_while_stmt ();
cond_stmt_keyword = "while";
;
break;}
-case 729:
-#line 3252 "parse.y"
+case 728:
+#line 3244 "parse.y"
{ finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ;
break;}
-case 730:
-#line 3254 "parse.y"
+case 729:
+#line 3246 "parse.y"
{ finish_while_stmt (yyvsp[-3].ttype); ;
break;}
-case 731:
-#line 3256 "parse.y"
+case 730:
+#line 3248 "parse.y"
{ yyval.ttype = begin_do_stmt (); ;
break;}
-case 732:
-#line 3258 "parse.y"
+case 731:
+#line 3250 "parse.y"
{
finish_do_body (yyvsp[-2].ttype);
cond_stmt_keyword = "do";
;
break;}
-case 733:
-#line 3263 "parse.y"
+case 732:
+#line 3255 "parse.y"
{ finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
break;}
-case 734:
-#line 3265 "parse.y"
+case 733:
+#line 3257 "parse.y"
{ yyval.ttype = begin_for_stmt (); ;
break;}
-case 735:
-#line 3267 "parse.y"
+case 734:
+#line 3259 "parse.y"
{ finish_for_init_stmt (yyvsp[-2].ttype); ;
break;}
-case 736:
-#line 3269 "parse.y"
+case 735:
+#line 3261 "parse.y"
{ finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ;
break;}
-case 737:
-#line 3271 "parse.y"
+case 736:
+#line 3263 "parse.y"
{ finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ;
break;}
-case 738:
-#line 3273 "parse.y"
+case 737:
+#line 3265 "parse.y"
{ finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ;
break;}
-case 739:
-#line 3275 "parse.y"
+case 738:
+#line 3267 "parse.y"
{ begin_switch_stmt (); ;
break;}
-case 740:
-#line 3277 "parse.y"
+case 739:
+#line 3269 "parse.y"
{ yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ;
break;}
-case 741:
-#line 3279 "parse.y"
+case 740:
+#line 3271 "parse.y"
{ finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 742:
-#line 3281 "parse.y"
+case 741:
+#line 3273 "parse.y"
{ finish_case_label (yyvsp[-1].ttype, NULL_TREE); ;
break;}
-case 744:
-#line 3284 "parse.y"
+case 743:
+#line 3276 "parse.y"
{ finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
break;}
-case 746:
-#line 3287 "parse.y"
+case 745:
+#line 3279 "parse.y"
{ finish_case_label (NULL_TREE, NULL_TREE); ;
break;}
-case 748:
-#line 3290 "parse.y"
+case 747:
+#line 3282 "parse.y"
{ finish_break_stmt (); ;
break;}
-case 749:
-#line 3292 "parse.y"
+case 748:
+#line 3284 "parse.y"
{ finish_continue_stmt (); ;
break;}
-case 750:
-#line 3294 "parse.y"
+case 749:
+#line 3286 "parse.y"
{ finish_return_stmt (NULL_TREE); ;
break;}
-case 751:
-#line 3296 "parse.y"
+case 750:
+#line 3288 "parse.y"
{ finish_return_stmt (yyvsp[-1].ttype); ;
break;}
-case 752:
-#line 3298 "parse.y"
+case 751:
+#line 3290 "parse.y"
{
finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
NULL_TREE);
;
break;}
-case 753:
-#line 3304 "parse.y"
+case 752:
+#line 3296 "parse.y"
{
finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
NULL_TREE);
;
break;}
-case 754:
-#line 3310 "parse.y"
+case 753:
+#line 3302 "parse.y"
{ finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ;
break;}
-case 755:
-#line 3314 "parse.y"
+case 754:
+#line 3306 "parse.y"
{ finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ;
break;}
-case 756:
-#line 3316 "parse.y"
+case 755:
+#line 3308 "parse.y"
{
if (pedantic)
pedwarn ("ANSI C++ forbids computed gotos");
finish_goto_stmt (yyvsp[-1].ttype);
;
break;}
-case 757:
-#line 3322 "parse.y"
+case 756:
+#line 3314 "parse.y"
{ finish_goto_stmt (yyvsp[-1].ttype); ;
break;}
-case 758:
-#line 3324 "parse.y"
+case 757:
+#line 3316 "parse.y"
{ finish_stmt (); ;
break;}
-case 759:
-#line 3326 "parse.y"
+case 758:
+#line 3318 "parse.y"
{ error ("label must be followed by statement");
yyungetc ('}', 0);
finish_stmt (); ;
break;}
-case 760:
-#line 3330 "parse.y"
+case 759:
+#line 3322 "parse.y"
{ finish_stmt (); ;
break;}
-case 763:
-#line 3334 "parse.y"
+case 762:
+#line 3326 "parse.y"
{ do_local_using_decl (yyvsp[0].ttype); ;
break;}
-case 765:
-#line 3340 "parse.y"
+case 764:
+#line 3332 "parse.y"
{
if (! current_function_parms_stored)
store_parm_decls ();
expand_start_early_try_stmts ();
;
break;}
-case 766:
-#line 3346 "parse.y"
+case 765:
+#line 3338 "parse.y"
{
expand_start_all_catch ();
;
break;}
-case 767:
-#line 3350 "parse.y"
+case 766:
+#line 3342 "parse.y"
{
expand_end_all_catch ();
yyval.itype = yyvsp[-3].itype;
;
break;}
-case 768:
-#line 3358 "parse.y"
+case 767:
+#line 3350 "parse.y"
{ yyval.ttype = begin_try_block (); ;
break;}
-case 769:
-#line 3360 "parse.y"
+case 768:
+#line 3352 "parse.y"
{ finish_try_block (yyvsp[-1].ttype); ;
break;}
-case 770:
-#line 3362 "parse.y"
+case 769:
+#line 3354 "parse.y"
{ finish_handler_sequence (yyvsp[-3].ttype); ;
break;}
-case 773:
-#line 3372 "parse.y"
+case 772:
+#line 3364 "parse.y"
{ yyval.ttype = begin_handler(); ;
break;}
-case 774:
-#line 3374 "parse.y"
+case 773:
+#line 3366 "parse.y"
{ finish_handler_parms (yyvsp[-1].ttype); ;
break;}
-case 775:
-#line 3376 "parse.y"
+case 774:
+#line 3368 "parse.y"
{ finish_handler (yyvsp[-3].ttype); ;
break;}
-case 778:
-#line 3386 "parse.y"
+case 777:
+#line 3378 "parse.y"
{ expand_start_catch_block (NULL_TREE, NULL_TREE); ;
break;}
-case 779:
-#line 3402 "parse.y"
+case 778:
+#line 3394 "parse.y"
{ check_for_new_type ("inside exception declarations", yyvsp[-1].ftype);
expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t),
TREE_VALUE (yyvsp[-1].ftype.t)); ;
break;}
-case 780:
-#line 3409 "parse.y"
+case 779:
+#line 3401 "parse.y"
{ tree label;
do_label:
label = define_label (input_filename, lineno, yyvsp[-1].ttype);
@@ -7529,99 +7475,99 @@ case 780:
expand_label (label);
;
break;}
+case 780:
+#line 3408 "parse.y"
+{ goto do_label; ;
+ break;}
case 781:
-#line 3416 "parse.y"
+#line 3410 "parse.y"
{ goto do_label; ;
break;}
case 782:
-#line 3418 "parse.y"
+#line 3412 "parse.y"
{ goto do_label; ;
break;}
case 783:
-#line 3420 "parse.y"
-{ goto do_label; ;
- break;}
-case 784:
-#line 3425 "parse.y"
+#line 3417 "parse.y"
{ if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ;
break;}
-case 786:
-#line 3428 "parse.y"
+case 785:
+#line 3420 "parse.y"
{ if (pedantic)
pedwarn ("ANSI C++ forbids compound statements inside for initializations");
;
break;}
-case 787:
-#line 3437 "parse.y"
+case 786:
+#line 3429 "parse.y"
{ emit_line_note (input_filename, lineno);
yyval.ttype = NULL_TREE; ;
break;}
-case 788:
-#line 3440 "parse.y"
+case 787:
+#line 3432 "parse.y"
{ emit_line_note (input_filename, lineno); ;
break;}
-case 789:
-#line 3445 "parse.y"
+case 788:
+#line 3437 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 791:
-#line 3448 "parse.y"
+case 790:
+#line 3440 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 792:
-#line 3455 "parse.y"
+case 791:
+#line 3447 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 795:
-#line 3462 "parse.y"
+case 794:
+#line 3454 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ;
break;}
-case 796:
-#line 3467 "parse.y"
+case 795:
+#line 3459 "parse.y"
{ yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ;
break;}
-case 797:
-#line 3472 "parse.y"
+case 796:
+#line 3464 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ;
break;}
-case 798:
-#line 3474 "parse.y"
+case 797:
+#line 3466 "parse.y"
{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ;
break;}
-case 799:
-#line 3485 "parse.y"
+case 798:
+#line 3477 "parse.y"
{
yyval.ttype = empty_parms();
;
break;}
-case 801:
-#line 3490 "parse.y"
+case 800:
+#line 3482 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0);
check_for_new_type ("inside parameter list", yyvsp[0].ftype); ;
break;}
-case 802:
-#line 3498 "parse.y"
+case 801:
+#line 3490 "parse.y"
{ yyval.ttype = finish_parmlist (yyval.ttype, 0); ;
break;}
-case 803:
-#line 3500 "parse.y"
+case 802:
+#line 3492 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
break;}
-case 804:
-#line 3503 "parse.y"
+case 803:
+#line 3495 "parse.y"
{ yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ;
break;}
-case 805:
-#line 3505 "parse.y"
+case 804:
+#line 3497 "parse.y"
{ yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE,
yyvsp[-1].ftype.t), 1); ;
break;}
-case 806:
-#line 3508 "parse.y"
+case 805:
+#line 3500 "parse.y"
{ yyval.ttype = finish_parmlist (NULL_TREE, 1); ;
break;}
-case 807:
-#line 3510 "parse.y"
+case 806:
+#line 3502 "parse.y"
{
/* This helps us recover from really nasty
parse errors, for example, a missing right
@@ -7632,8 +7578,8 @@ case 807:
yychar = ')';
;
break;}
-case 808:
-#line 3520 "parse.y"
+case 807:
+#line 3512 "parse.y"
{
/* This helps us recover from really nasty
parse errors, for example, a missing right
@@ -7645,99 +7591,99 @@ case 808:
yychar = ')';
;
break;}
-case 809:
-#line 3535 "parse.y"
+case 808:
+#line 3527 "parse.y"
{ maybe_snarf_defarg (); ;
break;}
-case 810:
-#line 3537 "parse.y"
+case 809:
+#line 3529 "parse.y"
{ yyval.ttype = yyvsp[0].ttype; ;
break;}
-case 813:
-#line 3548 "parse.y"
+case 812:
+#line 3540 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ;
break;}
-case 814:
-#line 3551 "parse.y"
+case 813:
+#line 3543 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ;
break;}
-case 815:
-#line 3554 "parse.y"
+case 814:
+#line 3546 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[0].ftype);
yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ;
break;}
-case 816:
-#line 3557 "parse.y"
+case 815:
+#line 3549 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
break;}
-case 817:
-#line 3559 "parse.y"
+case 816:
+#line 3551 "parse.y"
{ yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ;
break;}
-case 819:
-#line 3565 "parse.y"
+case 818:
+#line 3557 "parse.y"
{ check_for_new_type ("in a parameter list", yyvsp[-1].ftype);
yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ;
break;}
-case 820:
-#line 3575 "parse.y"
+case 819:
+#line 3567 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag;
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ;
break;}
-case 821:
-#line 3579 "parse.y"
+case 820:
+#line 3571 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 822:
-#line 3582 "parse.y"
+case 821:
+#line 3574 "parse.y"
{ yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 823:
-#line 3585 "parse.y"
+case 822:
+#line 3577 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ftype.t);
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 824:
-#line 3589 "parse.y"
+case 823:
+#line 3581 "parse.y"
{ tree specs = strip_attrs (yyvsp[0].ftype.t);
yyval.ftype.t = build_tree_list (specs, NULL_TREE);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
-case 825:
-#line 3593 "parse.y"
+case 824:
+#line 3585 "parse.y"
{ tree specs = strip_attrs (yyvsp[-1].ttype);
yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype);
yyval.ftype.new_type_flag = 0; ;
break;}
-case 826:
-#line 3600 "parse.y"
+case 825:
+#line 3592 "parse.y"
{ yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t);
yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ;
break;}
-case 827:
-#line 3603 "parse.y"
+case 826:
+#line 3595 "parse.y"
{ yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t);
yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ;
break;}
-case 830:
-#line 3614 "parse.y"
+case 829:
+#line 3606 "parse.y"
{ see_typename (); ;
break;}
-case 831:
-#line 3619 "parse.y"
+case 830:
+#line 3611 "parse.y"
{
error ("type specifier omitted for parameter");
yyval.ttype = build_tree_list (integer_type_node, NULL_TREE);
;
break;}
-case 832:
-#line 3624 "parse.y"
+case 831:
+#line 3616 "parse.y"
{
error ("type specifier omitted for parameter");
if (TREE_CODE (yyval.ttype) == SCOPE_REF
@@ -7747,194 +7693,194 @@ case 832:
yyval.ttype = build_tree_list (integer_type_node, yyval.ttype);
;
break;}
-case 833:
-#line 3636 "parse.y"
+case 832:
+#line 3628 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 834:
-#line 3638 "parse.y"
+case 833:
+#line 3630 "parse.y"
{ yyval.ttype = yyvsp[-1].ttype; ;
break;}
-case 835:
-#line 3640 "parse.y"
+case 834:
+#line 3632 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ;
break;}
-case 836:
-#line 3645 "parse.y"
+case 835:
+#line 3637 "parse.y"
{ yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ;
break;}
-case 838:
-#line 3651 "parse.y"
+case 837:
+#line 3643 "parse.y"
{
TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype;
yyval.ttype = yyvsp[0].ttype;
;
break;}
-case 839:
-#line 3659 "parse.y"
+case 838:
+#line 3651 "parse.y"
{ yyval.ttype = NULL_TREE; ;
break;}
-case 840:
-#line 3661 "parse.y"
+case 839:
+#line 3653 "parse.y"
{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 841:
-#line 3663 "parse.y"
+case 840:
+#line 3655 "parse.y"
{ yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
break;}
-case 842:
-#line 3665 "parse.y"
+case 841:
+#line 3657 "parse.y"
{ tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype);
yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg);
;
break;}
-case 843:
-#line 3672 "parse.y"
+case 842:
+#line 3664 "parse.y"
{ got_scope = NULL_TREE; ;
break;}
-case 844:
-#line 3677 "parse.y"
+case 843:
+#line 3669 "parse.y"
{ yyval.ttype = ansi_opname[MULT_EXPR]; ;
break;}
-case 845:
-#line 3679 "parse.y"
+case 844:
+#line 3671 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ;
break;}
-case 846:
-#line 3681 "parse.y"
+case 845:
+#line 3673 "parse.y"
{ yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ;
break;}
-case 847:
-#line 3683 "parse.y"
+case 846:
+#line 3675 "parse.y"
{ yyval.ttype = ansi_opname[PLUS_EXPR]; ;
break;}
-case 848:
-#line 3685 "parse.y"
+case 847:
+#line 3677 "parse.y"
{ yyval.ttype = ansi_opname[MINUS_EXPR]; ;
break;}
-case 849:
-#line 3687 "parse.y"
+case 848:
+#line 3679 "parse.y"
{ yyval.ttype = ansi_opname[BIT_AND_EXPR]; ;
break;}
-case 850:
-#line 3689 "parse.y"
+case 849:
+#line 3681 "parse.y"
{ yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ;
break;}
-case 851:
-#line 3691 "parse.y"
+case 850:
+#line 3683 "parse.y"
{ yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ;
break;}
-case 852:
-#line 3693 "parse.y"
+case 851:
+#line 3685 "parse.y"
{ yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ;
break;}
-case 853:
-#line 3695 "parse.y"
+case 852:
+#line 3687 "parse.y"
{ yyval.ttype = ansi_opname[COMPOUND_EXPR]; ;
break;}
-case 854:
-#line 3697 "parse.y"
+case 853:
+#line 3689 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
-case 855:
-#line 3699 "parse.y"
+case 854:
+#line 3691 "parse.y"
{ yyval.ttype = ansi_opname[LT_EXPR]; ;
break;}
-case 856:
-#line 3701 "parse.y"
+case 855:
+#line 3693 "parse.y"
{ yyval.ttype = ansi_opname[GT_EXPR]; ;
break;}
-case 857:
-#line 3703 "parse.y"
+case 856:
+#line 3695 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
-case 858:
-#line 3705 "parse.y"
+case 857:
+#line 3697 "parse.y"
{ yyval.ttype = ansi_assopname[yyvsp[0].code]; ;
break;}
-case 859:
-#line 3707 "parse.y"
+case 858:
+#line 3699 "parse.y"
{ yyval.ttype = ansi_opname [MODIFY_EXPR]; ;
break;}
-case 860:
-#line 3709 "parse.y"
+case 859:
+#line 3701 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
-case 861:
-#line 3711 "parse.y"
+case 860:
+#line 3703 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
-case 862:
-#line 3713 "parse.y"
+case 861:
+#line 3705 "parse.y"
{ yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ;
break;}
-case 863:
-#line 3715 "parse.y"
+case 862:
+#line 3707 "parse.y"
{ yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ;
break;}
-case 864:
-#line 3717 "parse.y"
+case 863:
+#line 3709 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ;
break;}
-case 865:
-#line 3719 "parse.y"
+case 864:
+#line 3711 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ;
break;}
-case 866:
-#line 3721 "parse.y"
+case 865:
+#line 3713 "parse.y"
{ yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ;
break;}
-case 867:
-#line 3723 "parse.y"
+case 866:
+#line 3715 "parse.y"
{ yyval.ttype = ansi_opname[COND_EXPR]; ;
break;}
-case 868:
-#line 3725 "parse.y"
+case 867:
+#line 3717 "parse.y"
{ yyval.ttype = ansi_opname[yyvsp[0].code]; ;
break;}
-case 869:
-#line 3727 "parse.y"
+case 868:
+#line 3719 "parse.y"
{ yyval.ttype = ansi_opname[COMPONENT_REF]; ;
break;}
-case 870:
-#line 3729 "parse.y"
+case 869:
+#line 3721 "parse.y"
{ yyval.ttype = ansi_opname[MEMBER_REF]; ;
break;}
-case 871:
-#line 3731 "parse.y"
+case 870:
+#line 3723 "parse.y"
{ yyval.ttype = ansi_opname[CALL_EXPR]; ;
break;}
-case 872:
-#line 3733 "parse.y"
+case 871:
+#line 3725 "parse.y"
{ yyval.ttype = ansi_opname[ARRAY_REF]; ;
break;}
-case 873:
-#line 3735 "parse.y"
+case 872:
+#line 3727 "parse.y"
{ yyval.ttype = ansi_opname[NEW_EXPR]; ;
break;}
-case 874:
-#line 3737 "parse.y"
+case 873:
+#line 3729 "parse.y"
{ yyval.ttype = ansi_opname[DELETE_EXPR]; ;
break;}
-case 875:
-#line 3739 "parse.y"
+case 874:
+#line 3731 "parse.y"
{ yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ;
break;}
-case 876:
-#line 3741 "parse.y"
+case 875:
+#line 3733 "parse.y"
{ yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ;
break;}
-case 877:
-#line 3744 "parse.y"
+case 876:
+#line 3736 "parse.y"
{ yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ;
break;}
-case 878:
-#line 3746 "parse.y"
+case 877:
+#line 3738 "parse.y"
{ yyval.ttype = ansi_opname[ERROR_MARK]; ;
break;}
}
/* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/cygnus/gnupro-98r1/share/bison.simple"
+#line 498 "/usr/lib/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
@@ -8130,7 +8076,7 @@ yyerrhandle:
yystate = yyn;
goto yynewstate;
}
-#line 3749 "parse.y"
+#line 3741 "parse.y"
#ifdef SPEW_DEBUG
diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y
index 4d4827c..31b31b1 100644
--- a/gcc/cp/parse.y
+++ b/gcc/cp/parse.y
@@ -2388,16 +2388,8 @@ left_curly:
{ $<ttype>0 = begin_class_definition ($<ttype>0); }
;
-self_reference:
- /* empty */
- {
- finish_member_declaration (build_self_reference ());
- }
- ;
-
opt.component_decl_list:
- self_reference
- | self_reference component_decl_list
+ | component_decl_list
| opt.component_decl_list access_specifier component_decl_list
| opt.component_decl_list access_specifier
;
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 8463e5d..4e9c52f 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -900,7 +900,10 @@ print_candidates (fns)
for (fn = fns; fn != NULL_TREE; fn = TREE_CHAIN (fn))
{
- cp_error_at ("%s %+#D", str, TREE_VALUE (fn));
+ tree f;
+
+ for (f = TREE_VALUE (fn); f; f = OVL_NEXT (f))
+ cp_error_at ("%s %+#D", str, OVL_CURRENT (f));
str = " ";
}
}
@@ -4807,7 +4810,7 @@ instantiate_class_template (type)
access = access_public_virtual_node;
else if (TREE_VIA_PROTECTED (pbase))
access = access_protected_virtual_node;
- else if (TREE_VIA_PRIVATE (pbase))
+ else
access = access_private_virtual_node;
}
else
@@ -4816,7 +4819,7 @@ instantiate_class_template (type)
access = access_public_node;
else if (TREE_VIA_PROTECTED (pbase))
access = access_protected_node;
- else if (TREE_VIA_PRIVATE (pbase))
+ else
access = access_private_node;
}
@@ -7840,7 +7843,7 @@ get_template_base (tparms, targs, parm, arg)
/* Since get_template_base_recursive marks the bases classes, we
must unmark them here. */
- dfs_walk (arg_binfo, dfs_unmark, markedp);
+ dfs_walk (arg_binfo, dfs_unmark, markedp, 0);
return rval;
}
diff --git a/gcc/cp/search.c b/gcc/cp/search.c
index 369a06f..42678f1 100644
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -31,6 +31,7 @@ Boston, MA 02111-1307, USA. */
#include "rtl.h"
#include "output.h"
#include "toplev.h"
+#include "varray.h"
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
@@ -85,8 +86,8 @@ static int lookup_fnfields_here PROTO((tree, tree));
static int is_subobject_of_p PROTO((tree, tree));
static int hides PROTO((tree, tree));
static tree virtual_context PROTO((tree, tree, tree));
-static void dfs_check_overlap PROTO((tree));
-static int dfs_no_overlap_yet PROTO((tree));
+static tree dfs_check_overlap PROTO((tree, void *));
+static tree dfs_no_overlap_yet PROTO((tree, void *));
static void envelope_add_decl PROTO((tree, tree, tree *));
static int get_base_distance_recursive
PROTO((tree, int, int, int, int *, tree *, tree,
@@ -96,39 +97,53 @@ static void expand_upcast_fixups
static void fixup_virtual_upcast_offsets
PROTO((tree, tree, int, int, tree, tree, tree, tree,
tree *));
-static int unmarkedp PROTO((tree));
-static int marked_vtable_pathp PROTO((tree));
-static int unmarked_vtable_pathp PROTO((tree));
-static int marked_new_vtablep PROTO((tree));
-static int unmarked_new_vtablep PROTO((tree));
-static int dfs_debug_unmarkedp PROTO((tree));
-static void dfs_debug_mark PROTO((tree));
-static void dfs_find_vbases PROTO((tree));
-static void dfs_clear_vbase_slots PROTO((tree));
-static void dfs_init_vbase_pointers PROTO((tree));
-static void dfs_get_vbase_types PROTO((tree));
-static void dfs_pushdecls PROTO((tree));
-static void dfs_compress_decls PROTO((tree));
-static void dfs_unuse_fields PROTO((tree));
+static tree unmarkedp PROTO((tree, void *));
+static tree marked_vtable_pathp PROTO((tree, void *));
+static tree unmarked_vtable_pathp PROTO((tree, void *));
+static tree marked_new_vtablep PROTO((tree, void *));
+static tree unmarked_new_vtablep PROTO((tree, void *));
+static tree marked_pushdecls_p PROTO((tree, void *));
+static tree unmarked_pushdecls_p PROTO((tree, void *));
+static tree dfs_debug_unmarkedp PROTO((tree, void *));
+static tree dfs_debug_mark PROTO((tree, void *));
+static tree dfs_find_vbases PROTO((tree, void *));
+static tree dfs_clear_vbase_slots PROTO((tree, void *));
+static tree dfs_init_vbase_pointers PROTO((tree, void *));
+static tree dfs_get_vbase_types PROTO((tree, void *));
+static tree dfs_pushdecls PROTO((tree, void *));
+static tree dfs_compress_decls PROTO((tree, void *));
+static tree dfs_unuse_fields PROTO((tree, void *));
static tree add_conversions PROTO((tree, void *));
-static tree get_virtuals_named_this PROTO((tree));
+static tree get_virtuals_named_this PROTO((tree, tree));
static tree get_virtual_destructor PROTO((tree, void *));
-static int tree_has_any_destructor_p PROTO((tree, void *));
+static tree tree_has_any_destructor_p PROTO((tree, void *));
static int covariant_return_p PROTO((tree, tree));
static struct search_level *push_search_level
PROTO((struct stack_level *, struct obstack *));
static struct search_level *pop_search_level
PROTO((struct stack_level *));
-static tree breadth_first_search
- PROTO((tree, tree (*) (tree, void *), int (*) (tree, void *),
- void (*) (tree *, tree *, void *), void *));
-static int lookup_field_queue_p PROTO((tree, void *));
+static tree bfs_walk
+ PROTO((tree, tree (*) (tree, void *), tree (*) (tree, void *),
+ void *));
+static tree lookup_field_queue_p PROTO((tree, void *));
static tree lookup_field_r PROTO((tree, void *));
-static void lookup_field_post PROTO((tree *, tree *, void *));
-
-static tree vbase_types;
-static tree vbase_decl_ptr_intermediate, vbase_decl_ptr;
-static tree vbase_init_result;
+static tree dfs_walk_real PROTO ((tree,
+ tree (*) (tree, void *),
+ tree (*) (tree, void *),
+ tree (*) (tree, void *),
+ void *));
+static tree dfs_bfv_queue_p PROTO ((tree, void *));
+static tree dfs_bfv_helper PROTO ((tree, void *));
+static tree get_virtuals_named_this_r PROTO ((tree, void *));
+static tree context_for_name_lookup PROTO ((tree));
+static tree canonical_binfo PROTO ((tree));
+static tree shared_marked_p PROTO ((tree, void *));
+static tree shared_unmarked_p PROTO ((tree, void *));
+static int dependent_base_p PROTO ((tree));
+static tree dfs_accessible_queue_p PROTO ((tree, void *));
+static tree dfs_accessible_p PROTO ((tree, void *));
+static tree dfs_access_in_type PROTO ((tree, void *));
+static tree access_in_type PROTO ((tree, tree));
/* Allocate a level of searching. */
@@ -166,9 +181,6 @@ static int n_outer_fields_searched;
static int n_contexts_saved;
#endif /* GATHER_STATISTICS */
-/* This list is used by push_class_decls to know what decls need to
- be pushed into class scope. */
-static tree closed_envelopes = NULL_TREE;
/* Get a virtual binfo that is found inside BINFO's hierarchy that is
the same type as the type given in PARENT. To be optimal, we want
@@ -577,214 +589,348 @@ current_scope ()
return current_class_type;
}
-/* Compute the access of FIELD. This is done by computing
- the access available to each type in BASETYPES (which comes
- as a list of [via_public/basetype] in reverse order, namely base
- class before derived class). The first one which defines a
- access defines the access for the field. Otherwise, the
- access of the field is that which occurs normally.
+/* Return the scope of DECL, as appropriate when doing name-lookup. */
- Uses global variables CURRENT_CLASS_TYPE and
- CURRENT_FUNCTION_DECL to use friend relationships
- if necessary.
+static tree
+context_for_name_lookup (decl)
+ tree decl;
+{
+ /* [class.union]
+
+ For the purposes of name lookup, after the anonymous union
+ definition, the members of the anonymous union are considered to
+ have been defined in the scope in which teh anonymous union is
+ declared. */
+ tree context = DECL_REAL_CONTEXT (decl);
+
+ while (TYPE_P (context) && ANON_UNION_TYPE_P (context))
+ context = TYPE_CONTEXT (context);
+ if (!context)
+ context = global_namespace;
- This will be static when lookup_fnfield comes into this file.
+ return context;
+}
- access_public_node means that the field can be accessed by the current lexical
- scope.
+/* Return a canonical BINFO if BINFO is a virtual base, or just BINFO
+ otherwise. */
- access_protected_node means that the field cannot be accessed by the current
- lexical scope because it is protected.
+static tree
+canonical_binfo (binfo)
+ tree binfo;
+{
+ return (TREE_VIA_VIRTUAL (binfo)
+ ? TYPE_BINFO (BINFO_TYPE (binfo)) : binfo);
+}
- access_private_node means that the field cannot be accessed by the current
- lexical scope because it is private. */
+/* If BINFO is marked, return a canonical version of BINFO.
+ Otherwise, return NULL_TREE. */
-#if 0
-#define PUBLIC_RETURN return (DECL_PUBLIC (field) = 1), access_public_node
-#define PROTECTED_RETURN return (DECL_PROTECTED (field) = 1), access_protected_node
-#define PRIVATE_RETURN return (DECL_PRIVATE (field) = 1), access_private_node
-#else
-#define PUBLIC_RETURN return access_public_node
-#define PROTECTED_RETURN return access_protected_node
-#define PRIVATE_RETURN return access_private_node
-#endif
+static tree
+shared_marked_p (binfo, data)
+ tree binfo;
+ void *data;
+{
+ binfo = canonical_binfo (binfo);
+ return markedp (binfo, data) ? binfo : NULL_TREE;
+}
-#if 0
-/* Disabled with DECL_PUBLIC &c. */
-static tree previous_scope = NULL_TREE;
-#endif
+/* If BINFO is not marked, return a canonical version of BINFO.
+ Otherwise, return NULL_TREE. */
-tree
-compute_access (basetype_path, field)
- tree basetype_path, field;
+static tree
+shared_unmarked_p (binfo, data)
+ tree binfo;
+ void *data;
{
- tree access;
- tree types;
- tree context;
- int protected_ok, via_protected;
- extern int flag_access_control;
-#if 1
- /* Replaces static decl above. */
- tree previous_scope;
-#endif
- int static_mem
- = ((TREE_CODE (field) == FUNCTION_DECL && DECL_STATIC_FUNCTION_P (field))
- || (TREE_CODE (field) != FUNCTION_DECL && TREE_STATIC (field)));
+ binfo = canonical_binfo (binfo);
+ return unmarkedp (binfo, data) ? binfo : NULL_TREE;
+}
- if (! flag_access_control)
- return access_public_node;
+/* Called from access_in_type via dfs_walk. Calculate the access to
+ DATA (which is really a DECL) in BINFO. */
- /* The field lives in the current class. */
- if (BINFO_TYPE (basetype_path) == current_class_type)
- return access_public_node;
+static tree
+dfs_access_in_type (binfo, data)
+ tree binfo;
+ void *data;
+{
+ tree decl = (tree) data;
+ tree type = BINFO_TYPE (binfo);
+ tree access = NULL_TREE;
-#if 0
- /* Disabled until pushing function scope clears these out. If ever. */
- /* Make these special cases fast. */
- if (current_scope () == previous_scope)
+ if (context_for_name_lookup (decl) == type)
{
- if (DECL_PUBLIC (field))
- return access_public_node;
- if (DECL_PROTECTED (field))
- return access_protected_node;
- if (DECL_PRIVATE (field))
- return access_private_node;
+ /* If we have desceneded to the scope of DECL, just note the
+ appropriate access. */
+ if (TREE_PRIVATE (decl))
+ access = access_private_node;
+ else if (TREE_PROTECTED (decl))
+ access = access_protected_node;
+ else
+ access = access_public_node;
}
-#endif
+ else
+ {
+ /* First, check for an access-declaration that gives us more
+ access to the DECL. The CONST_DECL for an enumeration
+ constant will not have DECL_LANG_SPECIFIC, and thus no
+ DECL_ACCESS. */
+ if (DECL_LANG_SPECIFIC (decl))
+ {
+ access = purpose_member (type, DECL_ACCESS (decl));
+ if (access)
+ access = TREE_VALUE (access);
+ }
- /* We don't currently support access control on nested types. */
- if (TREE_CODE (field) == TYPE_DECL)
- return access_public_node;
+ if (!access)
+ {
+ int i;
+ int n_baselinks;
+ tree binfos;
+
+ /* Otherwise, scan our baseclasses, and pick the most favorable
+ access. */
+ binfos = BINFO_BASETYPES (binfo);
+ n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
+ for (i = 0; i < n_baselinks; ++i)
+ {
+ tree base_binfo = TREE_VEC_ELT (binfos, i);
+ tree base_access = TREE_CHAIN (canonical_binfo (base_binfo));
+
+ if (!base_access || base_access == access_private_node)
+ /* If it was not accessible in the base, or only
+ accessible as a private member, we can't access it
+ all. */
+ base_access = NULL_TREE;
+ else if (TREE_VIA_PROTECTED (base_binfo))
+ /* Public and protected members in the base are
+ protected here. */
+ base_access = access_protected_node;
+ else if (!TREE_VIA_PUBLIC (base_binfo))
+ /* Public and protected members in the base are
+ private here. */
+ base_access = access_private_node;
+
+ /* See if the new access, via this base, gives more
+ access than our previous best access. */
+ if (base_access &&
+ (base_access == access_public_node
+ || (base_access == access_protected_node
+ && access != access_public_node)
+ || (base_access == access_private_node
+ && !access)))
+ {
+ access = base_access;
- previous_scope = current_scope ();
+ /* If the new access is public, we can't do better. */
+ if (access == access_public_node)
+ break;
+ }
+ }
+ }
+ }
- context = DECL_REAL_CONTEXT (field);
+ /* Note the access to DECL in TYPE. */
+ TREE_CHAIN (binfo) = access;
- /* Fields coming from nested anonymous unions have their DECL_CLASS_CONTEXT
- slot set to the union type rather than the record type containing
- the anonymous union. */
- if (context && ANON_UNION_TYPE_P (context)
- && TREE_CODE (field) == FIELD_DECL)
- context = TYPE_CONTEXT (context);
+ /* Mark TYPE as visited so that if we reach it again we do not
+ duplicate our efforts here. */
+ SET_BINFO_MARKED (binfo);
- /* If we aren't a real class member (e.g. we're from a namespace-scope
- anonymous union), there's no access control. */
- if (context == NULL_TREE || ! TYPE_P (context))
- PUBLIC_RETURN;
-
- /* Virtual function tables are never private. But we should know that
- we are looking for this, and not even try to hide it. */
- if (DECL_NAME (field) && VFIELD_NAME_P (DECL_NAME (field)) == 1)
- PUBLIC_RETURN;
-
- /* Member found immediately within object. */
- if (BINFO_INHERITANCE_CHAIN (basetype_path) == NULL_TREE)
- {
- /* Are we (or an enclosing scope) friends with the class that has
- FIELD? */
- if (is_friend (context, previous_scope))
- PUBLIC_RETURN;
-
- /* If it's private, it's private, you letch. */
- if (TREE_PRIVATE (field))
- PRIVATE_RETURN;
-
- /* ARM $11.5. Member functions of a derived class can access the
- non-static protected members of a base class only through a
- pointer to the derived class, a reference to it, or an object
- of it. Also any subsequently derived classes also have
- access. */
- else if (TREE_PROTECTED (field))
- {
- if (current_class_type
- && (static_mem || DECL_CONSTRUCTOR_P (field))
- && ACCESSIBLY_DERIVED_FROM_P (context, current_class_type))
- PUBLIC_RETURN;
- else
- PROTECTED_RETURN;
- }
- else
- PUBLIC_RETURN;
- }
+ return NULL_TREE;
+}
- /* must reverse more than one element */
- basetype_path = reverse_path (basetype_path);
- types = basetype_path;
- via_protected = 0;
- access = access_default_node;
- protected_ok = static_mem && current_class_type
- && ACCESSIBLY_DERIVED_FROM_P (BINFO_TYPE (types), current_class_type);
+/* Return the access to DECL in TYPE. */
- while (1)
- {
- tree member;
- tree binfo = types;
- tree type = BINFO_TYPE (binfo);
- int private_ok = 0;
+static tree
+access_in_type (type, decl)
+ tree type;
+ tree decl;
+{
+ tree binfo = TYPE_BINFO (type);
- /* Friends of a class can see protected members of its bases.
- Note that classes are their own friends. */
- if (is_friend (type, previous_scope))
- {
- protected_ok = 1;
- private_ok = 1;
- }
+ /* We must take into account
- member = purpose_member (type, DECL_ACCESS (field));
- if (member)
- {
- access = TREE_VALUE (member);
- break;
- }
+ [class.paths]
- types = BINFO_INHERITANCE_CHAIN (types);
+ If a name can be reached by several paths through a multiple
+ inheritance graph, the access is that of the path that gives
+ most access.
- /* If the next type was VIA_PROTECTED, then fields of all remaining
- classes past that one are *at least* protected. */
- if (types)
- {
- if (TREE_VIA_PROTECTED (types))
- via_protected = 1;
- else if (! TREE_VIA_PUBLIC (types) && ! private_ok)
- {
- access = access_private_node;
- break;
- }
- }
- else
- break;
+ The algorithm we use is to make a post-order depth-first traversal
+ of the base-class hierarchy. As we come up the tree, we annotate
+ each node with the most lenient access. */
+ dfs_walk_real (binfo, 0, dfs_access_in_type, shared_unmarked_p, decl);
+ dfs_walk (binfo, dfs_unmark, shared_marked_p, 0);
+
+ return TREE_CHAIN (binfo);
+}
+
+/* Called from dfs_accessible_p via dfs_walk. */
+
+static tree
+dfs_accessible_queue_p (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ if (BINFO_MARKED (binfo))
+ return NULL_TREE;
+
+ /* If this class is inherited via private or protected inheritance,
+ then we can't see it, unless we are a friend of the subclass. */
+ if (!TREE_VIA_PUBLIC (binfo)
+ && !is_friend (BINFO_TYPE (BINFO_INHERITANCE_CHAIN (binfo)),
+ current_scope ()))
+ return NULL_TREE;
+
+ return canonical_binfo (binfo);
+}
+
+/* Called from dfs_accessible_p via dfs_walk. */
+
+static tree
+dfs_accessible_p (binfo, data)
+ tree binfo;
+ void *data;
+{
+ int protected_ok = data != 0;
+ tree access;
+
+ /* We marked the binfos while computing the access in each type.
+ So, we unmark as we go now. */
+ SET_BINFO_MARKED (binfo);
+
+ access = TREE_CHAIN (binfo);
+ if (access == access_public_node
+ || (access == access_protected_node && protected_ok))
+ return binfo;
+ else if (access && is_friend (BINFO_TYPE (binfo), current_scope ()))
+ return binfo;
+
+ return NULL_TREE;
+}
+
+/* DECL is a declaration from a base class of TYPE, which was the
+ classs used to name DECL. Return non-zero if, in the current
+ context, DECL is accessible. If TYPE is actually a BINFO node,
+ then the most derived class along the path indicated by BINFO is
+ the one used to name the DECL. */
+
+int
+accessible_p (type, decl)
+ tree type;
+ tree decl;
+
+{
+ tree scope;
+ tree binfo;
+ tree t;
+
+ /* Non-zero if it's OK to access DECL if it has protected
+ accessibility in TYPE. */
+ int protected_ok = 0;
+
+ /* If we're not checking access, everything is accessible. */
+ if (!flag_access_control)
+ return 1;
+
+ /* If this declaration is in a block or namespace scope, there's no
+ access control. */
+ if (!TYPE_P (context_for_name_lookup (decl)))
+ return 1;
+
+ /* We don't do access control for types yet. */
+ if (TREE_CODE (decl) == TYPE_DECL)
+ return 1;
+
+ if (!TYPE_P (type))
+ {
+ binfo = type;
+ type = BINFO_TYPE (type);
}
+ else
+ binfo = TYPE_BINFO (type);
+
+ /* [class.access.base]
- /* No special visibilities apply. Use normal rules. */
+ A member m is accessible when named in class N if
- if (access == access_default_node)
+ --m as a member of N is public, or
+
+ --m as a member of N is private, and the reference occurs in a
+ member or friend of class N, or
+
+ --m as a member of N is protected, and the reference occurs in a
+ member or friend of class N, or in a member or friend of a
+ class P derived from N, where m as a member of P is private or
+ protected, or
+
+ --there exists a base class B of N that is accessible at the point
+ of reference, and m is accessible when named in class B.
+
+ We walk the base class hierarchy, checking these conditions. */
+
+ /* Figure out where the reference is occurring. Check to see if
+ DECL is private or protected in this scope, since that will
+ determine whether protected access in TYPE allowed. */
+ if (current_class_type
+ && DERIVED_FROM_P (type, current_class_type))
{
- if (is_friend (context, previous_scope))
- access = access_public_node;
- else if (TREE_PRIVATE (field))
- access = access_private_node;
- else if (TREE_PROTECTED (field))
- access = access_protected_node;
- else
- access = access_public_node;
+ tree access = access_in_type (current_class_type, decl);
+ if (same_type_p (current_class_type, type)
+ && access == access_private_node)
+ protected_ok = 1;
+ else if (access && (access == access_private_node
+ || access == access_protected_node))
+ protected_ok = 1;
}
- if (access == access_public_node && via_protected)
- access = access_protected_node;
+ /* Now, loop through the classes of which SCOPE is a friend. */
+ if (!protected_ok && scope)
+ {
+ /* FIXME: Implement this. Right now, we have no way of knowing
+ which classes befriend a particular function or class. */
+ }
- if (access == access_protected_node && protected_ok)
- access = access_public_node;
+ /* [class.protected]
-#if 0
- if (access == access_public_node)
- DECL_PUBLIC (field) = 1;
- else if (access == access_protected_node)
- DECL_PROTECTED (field) = 1;
- else if (access == access_private_node)
- DECL_PRIVATE (field) = 1;
- else my_friendly_abort (96);
-#endif
- return access;
+ When a friend or a member function of a derived class references
+ a protected nonstatic member of a base class, an access check
+ applies in addition to those described earlier in clause
+ _class.access_.4) Except when forming a pointer to member
+ (_expr.unary.op_), the access must be through a pointer to,
+ reference to, or object of the derived class itself (or any class
+ derived from that class) (_expr.ref_). If the access is to form
+ a pointer to member, the nested-name-specifier shall name the
+ derived class (or any class derived from that class). */
+ if (protected_ok && DECL_NONSTATIC_MEMBER_P (decl))
+ {
+ /* We can tell through what the reference is occurring by
+ chasing BINFO up to the root. */
+ t = binfo;
+ while (BINFO_INHERITANCE_CHAIN (t))
+ t = BINFO_INHERITANCE_CHAIN (t);
+
+ if (!DERIVED_FROM_P (current_class_type, BINFO_TYPE (t)))
+ protected_ok = 0;
+ }
+
+ /* Standardize on the same that will access_in_type will use. We
+ don't need to know what path was chosen from this point onwards. */
+ binfo = TYPE_BINFO (type);
+
+ /* Compute the accessibility of DECL in the class hierarchy
+ dominated by type. */
+ access_in_type (type, decl);
+ /* Walk the hierarchy again, looking for a base class that allows
+ access. */
+ t = dfs_walk (binfo, dfs_accessible_p,
+ dfs_accessible_queue_p,
+ protected_ok ? &protected_ok : 0);
+ /* Clear any mark bits. */
+ dfs_walk (binfo, dfs_unmark, shared_marked_p, 0);
+
+ return t != NULL_TREE;
}
/* Routine to see if the sub-object denoted by the binfo PARENT can be
@@ -799,15 +945,18 @@ is_subobject_of_p (parent, binfo)
tree binfos = BINFO_BASETYPES (binfo);
int i, n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
+ if (TREE_VIA_VIRTUAL (parent))
+ parent = TYPE_BINFO (TREE_TYPE (parent));
+ if (TREE_VIA_VIRTUAL (binfo))
+ binfo = TYPE_BINFO (TREE_TYPE (binfo));
+
if (parent == binfo)
return 1;
/* Process and/or queue base types. */
for (i = 0; i < n_baselinks; i++)
{
- tree base_binfo = TREE_VEC_ELT (binfos, i);
- if (TREE_VIA_VIRTUAL (base_binfo))
- base_binfo = TYPE_BINFO (BINFO_TYPE (base_binfo));
+ tree base_binfo = canonical_binfo (TREE_VEC_ELT (binfos, i));
if (is_subobject_of_p (parent, base_binfo))
return 1;
}
@@ -859,20 +1008,21 @@ lookup_fnfields_here (type, name)
}
struct lookup_field_info {
+ /* The type in which we're looking. */
+ tree type;
/* The name of the field for which we're looking. */
tree name;
/* If non-NULL, the current result of the lookup. */
tree rval;
/* The path to RVAL. */
tree rval_binfo;
- /* If non-NULL, a list of the possible candidates. */
+ /* If non-NULL, the lookup was ambiguous, and this is a list of the
+ candidates. */
tree ambiguous;
- /* The access computed for RVAL. */
- tree access;
- /* If non-zero, we must check access. */
- int protect;
/* If non-zero, we are looking for types, not data members. */
int want_type;
+ /* If non-zero, RVAL was found by looking through a dependent base. */
+ int from_dep_base_p;
/* If something went wrong, a message indicating what. */
char *errstr;
};
@@ -882,14 +1032,28 @@ struct lookup_field_info {
it. DATA is really a struct lookup_field_info. Called from
lookup_field via breadth_first_search. */
-static int
+static tree
lookup_field_queue_p (binfo, data)
tree binfo;
void *data;
{
struct lookup_field_info *lfi = (struct lookup_field_info *) data;
-
- return !(lfi->rval_binfo && hides (lfi->rval_binfo, binfo));
+
+ /* Don't look for constructors or destructors in base classes. */
+ if (lfi->name == ctor_identifier || lfi->name == dtor_identifier)
+ return NULL_TREE;
+
+ /* If this base class is hidden by the best-known value so far, we
+ don't need to look. */
+ if (!lfi->from_dep_base_p && lfi->rval_binfo
+ && hides (lfi->rval_binfo, binfo))
+ return NULL_TREE;
+
+ if (TREE_VIA_VIRTUAL (binfo))
+ return binfo_member (BINFO_TYPE (binfo),
+ CLASSTYPE_VBASECLASSES (lfi->type));
+ else
+ return binfo;
}
/* DATA is really a struct lookup_field_info. Look for a field with
@@ -906,22 +1070,54 @@ lookup_field_r (binfo, data)
tree type = BINFO_TYPE (binfo);
tree nval;
int idx;
+ int from_dep_base_p;
+
+ /* First, look for a function. There can't be a function and a data
+ member with the same name, and if there's a function and a type
+ with the same name, the type is hidden by the function. */
+ idx = lookup_fnfields_here (type, lfi->name);
+ if (idx >= 0)
+ nval = TREE_VEC_ELT (CLASSTYPE_METHOD_VEC (type), idx);
+ else
+ /* Look for a data member or type. */
+ nval = lookup_field_1 (type, lfi->name);
- /* See if the field is present in TYPE. */
- nval = lookup_field_1 (type, lfi->name);
+ /* If there is no declaration with the indicated name in this type,
+ then there's nothing to do. */
if (!nval)
- idx = lookup_fnfields_here (type, lfi->name);
+ return NULL_TREE;
- /* If the data member wasn't present, then there's nothing further
- to do for this type. */
- if (!nval && idx < 0)
+ from_dep_base_p = dependent_base_p (binfo);
+ if (lfi->from_dep_base_p && !from_dep_base_p)
+ {
+ /* If the new declaration is not found via a dependent base, and
+ the old one was, then we must prefer the new one. We weren't
+ really supposed to be able to find the old one, so we don't
+ want to be affected by a specialization. Consider:
+
+ struct B { typedef int I; };
+ template <typename T> struct D1 : virtual public B {};
+ template <typename T> struct D :
+ public D1, virtual pubic B { I i; };
+
+ The `I' in `D<T>' is unambigousuly `B::I', regardless of how
+ D1 is specialized. */
+ lfi->from_dep_base_p = 0;
+ lfi->rval = NULL_TREE;
+ lfi->rval_binfo = NULL_TREE;
+ lfi->ambiguous = NULL_TREE;
+ lfi->errstr = 0;
+ }
+ else if (lfi->rval_binfo && !lfi->from_dep_base_p && from_dep_base_p)
+ /* Similarly, if the old declaration was not found via a dependent
+ base, and the new one is, ignore the new one. */
return NULL_TREE;
/* If the lookup already found a match, and the new value doesn't
hide the old one, we might have an ambiguity. */
if (lfi->rval_binfo && !hides (binfo, lfi->rval_binfo))
{
- if (nval && nval == lfi->rval && SHARED_MEMBER_P (nval))
+ if (nval == lfi->rval && SHARED_MEMBER_P (nval))
/* The two things are really the same. */
;
else if (hides (lfi->rval_binfo, binfo))
@@ -937,14 +1133,6 @@ lookup_field_r (binfo, data)
to the list. */
lfi->ambiguous = scratch_tree_cons (NULL_TREE, lfi->rval,
NULL_TREE);
- /* If NVAL is NULL here, that means that we found a
- function, not a data member. Pick a representative
- function, from the overload set, for use in error
- messages. */
- if (!nval)
- nval = OVL_CURRENT (TREE_VEC_ELT (CLASSTYPE_METHOD_VEC
- (type), idx));
-
/* Add the new value. */
lfi->ambiguous = scratch_tree_cons (NULL_TREE, nval,
lfi->ambiguous);
@@ -955,174 +1143,44 @@ lookup_field_r (binfo, data)
{
/* The new lookup is the best we've got so far. Verify that
it's the kind of thing we're looking for. */
- if (nval)
+ if (lfi->want_type && TREE_CODE (nval) != TYPE_DECL)
{
- if (lfi->want_type && TREE_CODE (nval) != TYPE_DECL)
- {
- nval = purpose_member (lfi->name, CLASSTYPE_TAGS (type));
- if (nval)
- nval = TYPE_MAIN_DECL (TREE_VALUE (nval));
- }
- else if (!lfi->want_type && TREE_CODE (nval) == TYPE_DECL
- && lookup_fnfields_here (type, lfi->name) >= 0)
- /* The type declaration is actually hidden by the
- function declaration. */
- nval = NULL_TREE;
+ nval = purpose_member (lfi->name, CLASSTYPE_TAGS (type));
+ if (nval)
+ nval = TYPE_MAIN_DECL (TREE_VALUE (nval));
}
if (nval)
{
- /* The lookup found a data member. */
- lfi->rval = nval;
- if (lfi->protect)
- lfi->access = compute_access (binfo, nval);
/* If the thing we're looking for is a virtual base class,
then we know we've got what we want at this point;
there's no way to get an ambiguity. */
if (VBASE_NAME_P (lfi->name))
- return nval;
+ {
+ lfi->rval = nval;
+ return nval;
+ }
+
+ if (from_dep_base_p && TREE_CODE (nval) != TYPE_DECL
+ /* We need to return a member template class so we can
+ define partial specializations. Is there a better
+ way? */
+ && !DECL_CLASS_TEMPLATE_P (nval))
+ /* The thing we're looking for isn't a type, so the implicit
+ typename extension doesn't apply, so we just pretend we
+ didn't find anything. */
+ return NULL_TREE;
}
- else
- /* The lookup found a function member. This lookup hides
- whatever was there before, so even though we're not
- interested in this value we keep track of the way in
- which we found the function. Subsequent lookups
- shouldn't find a data member if it is hidden by this
- function member. */
- lfi->rval = NULL_TREE;
+ lfi->rval = nval;
+ lfi->from_dep_base_p = from_dep_base_p;
lfi->rval_binfo = binfo;
}
- return 0;
-}
-
-/* Check to see if the result of the field lookup (as indicated by
- DATA, which is really a struct field_info) has any access other
- than that we previously computed. SEARCH_HEAD and SEARCH_TAIL
- bound the path taken to find the result. Called from lookup_field
- via breadth_first_search. */
-
-static void
-lookup_field_post (search_head, search_tail, data)
- tree *search_head;
- tree *search_tail;
- void *data;
-{
- struct lookup_field_info *lfi = (struct lookup_field_info *) data;
- tree rval = lfi->rval;
- tree own_access = access_default_node;
- tree *tp;
-
- /* If we didn't find anything, or we found ambiguous function
- declarations, but no data members, just return. */
- if (!rval)
- {
- lfi->errstr = 0;
- return;
- }
-
- /* If we've already hit a snag, we're done. */
- if (lfi->errstr)
- return;
-
- /* Check accessibility. */
- if (lfi->protect)
- {
- /* If is possible for one of the derived types on the path to
- have defined special access for this field. Look for such
- declarations and report an error if a conflict is found. */
- if (DECL_LANG_SPECIFIC (rval) && DECL_ACCESS (rval))
- for (tp = search_head; tp < search_tail; ++tp)
- {
- tree new_v = NULL_TREE;
-
- if (lfi->access != access_default_node)
- new_v = compute_access (*tp, lfi->rval);
- if (lfi->access != access_default_node && new_v != lfi->access)
- {
- lfi->errstr = "conflicting access to member `%D'";
- lfi->access = access_default_node;
- return;
- }
- own_access = new_v;
- tp++;
- }
-
- /* Check to see that access to the member is allowed. */
- if (own_access == access_private_node)
- lfi->errstr = "member `%D' declared private";
- else if (own_access == access_protected_node)
- lfi->errstr = "member `%D' declared protected";
- else if (lfi->access == access_private_node)
- lfi->errstr = TREE_PRIVATE (lfi->rval)
- ? "member `%D' is private"
- : "member `%D' is from private base class";
- else if (lfi->access== access_protected_node)
- lfi->errstr = TREE_PROTECTED (rval)
- ? "member `%D' is protected"
- : "member `%D' is from protected base class";
- }
-
- /* The implicit typename extension allows us to find type
- declarations in dependent base clases. It also handles
- out-of-class definitions where the enclosing class is a
- template. For example:
-
- template <class T> struct S { struct I { void f(); }; };
- template <class T> void S<T>::I::f() {}
-
- will come through here to handle `S<T>::I'. The bottom line is
- that while searching for the field, we will have happily
- descended into dependent base classes, and we must now figure out
- what to do about it. */
-
- /* If we're not in a template, or the search terminated in the
- current class, then there's no problem. */
- if (!processing_template_decl
- || currently_open_class (BINFO_TYPE (lfi->rval_binfo)))
- return;
-
- /* We need to return a member template class so we can define partial
- specializations. Is there a better way? */
- if (DECL_CLASS_TEMPLATE_P (rval))
- return;
-
- /* Walk the path to the base in which the search finally suceeded,
- checking for dependent bases along the way. */
- for (tp = (currently_open_class (BINFO_TYPE (*search_head)))
- ? search_head + 1 : search_head;
- tp < search_tail;
- ++tp)
- {
- if (!uses_template_parms (BINFO_TYPE (*tp)))
- continue;
-
- if (TREE_CODE (rval) != TYPE_DECL)
- {
- /* The thing we're looking for isn't a type, so the implicit
- typename extension doesn't apply, so we just pretend we
- didn't find anything. */
- lfi->rval = NULL_TREE;
- return;
- }
-
- /* We've passed a dependent base on our way to finding the
- type. So, create an implicit typename type. The appropriate
- context for the typename is *TP. But, there's a small catch;
- the base classes for a partial instantiation are not correct,
- because we don't tsubst into them when we do the partial
- instantiation. So, we just use the context of the current
- class type. */
- lfi->rval = TYPE_STUB_DECL (build_typename_type
- (BINFO_TYPE (*search_head),
- lfi->name, lfi->name,
- TREE_TYPE (rval)));
- return;
- }
+ return NULL_TREE;
}
-/* Look for a field named NAME in an inheritance lattice dominated by
+/* Look for a memer named NAME in an inheritance lattice dominated by
XBASETYPE. PROTECT is zero if we can avoid computing access
information, otherwise it is 1. WANT_TYPE is 1 when we should only
return TYPE_DECLs, if no TYPE_DECL can be found return NULL_TREE.
@@ -1132,7 +1190,7 @@ lookup_field_post (search_head, search_tail, data)
the error. */
tree
-lookup_field (xbasetype, name, protect, want_type)
+lookup_member (xbasetype, name, protect, want_type)
register tree xbasetype, name;
int protect, want_type;
{
@@ -1156,17 +1214,6 @@ lookup_field (xbasetype, name, protect, want_type)
char *errstr = 0;
- bzero (&lfi, sizeof (lfi));
-
-#if 0
- /* We cannot search for constructor/destructor names like this. */
- /* This can't go here, but where should it go? */
- /* If we are looking for a constructor in a templated type, use the
- unspecialized name, as that is how we store it. */
- if (IDENTIFIER_TEMPLATE (name))
- name = constructor_name (name);
-#endif
-
if (xbasetype == current_class_type && TYPE_BEING_DEFINED (xbasetype)
&& IDENTIFIER_CLASS_VALUE (name))
{
@@ -1197,12 +1244,11 @@ lookup_field (xbasetype, name, protect, want_type)
n_calls_lookup_field++;
#endif /* GATHER_STATISTICS */
+ bzero (&lfi, sizeof (lfi));
+ lfi.type = type;
lfi.name = name;
- lfi.protect = protect;
lfi.want_type = want_type;
- lfi.access = access_default_node;
- breadth_first_search (basetype_path, &lookup_field_r,
- &lookup_field_queue_p, &lookup_field_post, &lfi);
+ bfs_walk (basetype_path, &lookup_field_r, &lookup_field_queue_p, &lfi);
rval = lfi.rval;
rval_binfo = lfi.rval_binfo;
if (rval_binfo)
@@ -1213,6 +1259,16 @@ lookup_field (xbasetype, name, protect, want_type)
just return NULL_TREE. */
if (!protect && lfi.ambiguous)
return NULL_TREE;
+
+ /* [class.access]
+
+ In the case of overloaded function names, access control is
+ applied to the function selected by overloaded resolution. */
+ if (rval && protect && !is_overloaded_fn (rval)
+ && !IS_SIGNATURE_POINTER (DECL_REAL_CONTEXT (rval))
+ && !IS_SIGNATURE_REFERENCE (DECL_REAL_CONTEXT (rval))
+ && !enforce_access (xbasetype, rval))
+ return error_mark_node;
if (errstr && protect)
{
@@ -1222,6 +1278,50 @@ lookup_field (xbasetype, name, protect, want_type)
rval = error_mark_node;
}
+ /* If the thing we found was found via the implicit typename
+ extension, build the typename type. */
+ if (rval && lfi.from_dep_base_p && !DECL_CLASS_TEMPLATE_P (rval))
+ rval = TYPE_STUB_DECL (build_typename_type (BINFO_TYPE (basetype_path),
+ name, name,
+ TREE_TYPE (rval)));
+
+ if (rval && is_overloaded_fn (rval))
+ rval = scratch_tree_cons (basetype_path, rval, NULL_TREE);
+
+ return rval;
+}
+
+/* Like lookup_member, except that if we find a function member we
+ return NULL_TREE. */
+
+tree
+lookup_field (xbasetype, name, protect, want_type)
+ register tree xbasetype, name;
+ int protect, want_type;
+{
+ tree rval = lookup_member (xbasetype, name, protect, want_type);
+
+ /* Ignore functions. */
+ if (rval && TREE_CODE (rval) == TREE_LIST)
+ return NULL_TREE;
+
+ return rval;
+}
+
+/* Like lookup_member, except that if we find a non-function member we
+ return NULL_TREE. */
+
+tree
+lookup_fnfields (xbasetype, name, protect)
+ register tree xbasetype, name;
+ int protect;
+{
+ tree rval = lookup_member (xbasetype, name, protect, /*want_type=*/0);
+
+ /* Ignore non-functions. */
+ if (rval && TREE_CODE (rval) != TREE_LIST)
+ return NULL_TREE;
+
return rval;
}
@@ -1355,380 +1455,201 @@ lookup_fnfields_1 (type, name)
return -1;
}
+
+/* Walk the class hierarchy dominated by TYPE. FN is called for each
+ type in the hierarchy, in a breadth-first preorder traversal. .
+ If it ever returns a non-NULL value, that value is immediately
+ returned and the walk is terminated. At each node FN, is passed a
+ BINFO indicating the path from the curently visited base-class to
+ TYPE. The TREE_CHAINs of the BINFOs may be used for scratch space;
+ they are otherwise unused. Before each base-class is walked QFN is
+ called. If the value returned is non-zero, the base-class is
+ walked; otherwise it is not. If QFN is NULL, it is treated as a
+ function which always returns 1. Both FN and QFN are passed the
+ DATA whenever they are called. */
-/* Starting from BASETYPE, return a TREE_BASELINK-like object
- which gives the following information (in a list):
-
- TREE_TYPE: list of basetypes needed to get to...
- TREE_VALUE: list of all functions in a given type
- which have name NAME.
-
- No access information is computed by this function,
- other then to adorn the list of basetypes with
- TREE_VIA_PUBLIC.
-
- If there are two ways to find a name (two members), if COMPLAIN is
- non-zero, then error_mark_node is returned, and an error message is
- printed, otherwise, just an error_mark_node is returned.
-
- As a special case, is COMPLAIN is -1, we don't complain, and we
- don't return error_mark_node, but rather the complete list of
- virtuals. This is used by get_virtuals_named_this. */
-
-tree
-lookup_fnfields (basetype_path, name, complain)
- tree basetype_path, name;
- int complain;
+static tree
+bfs_walk (binfo, fn, qfn, data)
+ tree binfo;
+ tree (*fn) PROTO((tree, void *));
+ tree (*qfn) PROTO((tree, void *));
+ void *data;
{
- int head = 0, tail = 0;
- tree type, rval, rval_binfo = NULL_TREE, rvals = NULL_TREE;
- tree rval_binfo_h = NULL_TREE, binfo, basetype_chain, binfo_h;
- int idx, find_all = 0;
-
- /* rval_binfo is the binfo associated with the found member, note,
- this can be set with useful information, even when rval is not
- set, because it must deal with ALL members, not just function
- members. It is used for ambiguity checking and the hidden
- checks. Whereas rval is only set if a proper (not hidden)
- function member is found. */
-
- /* rval_binfo_h and binfo_h are binfo values used when we perform the
- hiding checks, as virtual base classes may not be shared. The strategy
- is we always go into the binfo hierarchy owned by TYPE_BINFO of
- virtual base classes, as we cross virtual base class lines. This way
- we know that binfo of a virtual base class will always == itself when
- found along any line. (mrs) */
-
- /* For now, don't try this. */
- int protect = complain;
-
- char *errstr = 0;
-
- if (complain == -1)
- {
- find_all = 1;
- protect = complain = 0;
- }
-
-#if 0
- /* We cannot search for constructor/destructor names like this. */
- /* This can't go here, but where should it go? */
- /* If we are looking for a constructor in a templated type, use the
- unspecialized name, as that is how we store it. */
- if (IDENTIFIER_TEMPLATE (name))
- name = constructor_name (name);
-#endif
-
- binfo = basetype_path;
- binfo_h = binfo;
- type = complete_type (BINFO_TYPE (basetype_path));
-
-#ifdef GATHER_STATISTICS
- n_calls_lookup_fnfields++;
-#endif /* GATHER_STATISTICS */
-
- idx = lookup_fnfields_here (type, name);
- if (idx >= 0 || lookup_field_1 (type, name))
- {
- rval_binfo = basetype_path;
- rval_binfo_h = rval_binfo;
- }
+ size_t head;
+ size_t tail;
+ tree rval = NULL_TREE;
+ /* An array of the base classes of BINFO. These will be built up in
+ breadth-first order, except where QFN prunes the search. */
+ varray_type bfs_bases;
- if (idx >= 0)
- {
- rval = TREE_VEC_ELT (CLASSTYPE_METHOD_VEC (type), idx);
- rvals = scratch_tree_cons (basetype_path, rval, rvals);
- if (BINFO_BASETYPES (binfo) && CLASSTYPE_BASELINK_VEC (type))
- TREE_TYPE (rvals) = TREE_VEC_ELT (CLASSTYPE_BASELINK_VEC (type), idx);
+ /* Start with enough room for ten base classes. That will be enough
+ for most hierarchies. */
+ VARRAY_TREE_INIT (bfs_bases, 10, "search_stack");
- return rvals;
- }
- rval = NULL_TREE;
+ /* Put the first type into the stack. */
+ VARRAY_TREE (bfs_bases, 0) = binfo;
+ tail = 1;
- if (name == ctor_identifier || name == dtor_identifier)
+ for (head = 0; head < tail; ++head)
{
- /* Don't allow lookups of constructors and destructors to go
- deeper than the first place we look. */
- return NULL_TREE;
- }
-
- if (basetype_path == TYPE_BINFO (type))
- {
- basetype_chain = CLASSTYPE_BINFO_AS_LIST (type);
- my_friendly_assert (BINFO_INHERITANCE_CHAIN (basetype_path) == NULL_TREE,
- 980827);
- }
- else
- basetype_chain = build_expr_list (NULL_TREE, basetype_path);
-
- /* The ambiguity check relies upon breadth first searching. */
+ int i;
+ int n_baselinks;
+ tree binfos;
- search_stack = push_search_level (search_stack, &search_obstack);
- binfo = basetype_path;
- binfo_h = binfo;
+ /* Pull the next type out of the queue. */
+ binfo = VARRAY_TREE (bfs_bases, head);
- while (1)
- {
- tree binfos = BINFO_BASETYPES (binfo);
- int i, n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
- int idx;
+ /* If this is the one we're looking for, we're done. */
+ rval = (*fn) (binfo, data);
+ if (rval)
+ break;
- /* Process and/or queue base types. */
+ /* Queue up the base types. */
+ binfos = BINFO_BASETYPES (binfo);
+ n_baselinks = binfos ? TREE_VEC_LENGTH (binfos): 0;
for (i = 0; i < n_baselinks; i++)
{
tree base_binfo = TREE_VEC_ELT (binfos, i);
- if (BINFO_FIELDS_MARKED (base_binfo) == 0)
- {
- tree btypes;
-
- SET_BINFO_FIELDS_MARKED (base_binfo);
- btypes = scratch_tree_cons (NULL_TREE, base_binfo, basetype_chain);
- if (TREE_VIA_VIRTUAL (base_binfo))
- btypes = scratch_tree_cons (NULL_TREE,
- TYPE_BINFO (BINFO_TYPE (TREE_VEC_ELT (BINFO_BASETYPES (binfo_h), i))),
- btypes);
- else
- btypes = scratch_tree_cons (NULL_TREE,
- TREE_VEC_ELT (BINFO_BASETYPES (binfo_h), i),
- btypes);
- obstack_ptr_grow (&search_obstack, btypes);
- tail += 1;
- if (tail >= search_stack->limit)
- my_friendly_abort (99);
- }
- }
-
- /* Process head of queue, if one exists. */
- if (head >= tail)
- break;
-
- basetype_chain = search_stack->first[head++];
- binfo_h = TREE_VALUE (basetype_chain);
- basetype_chain = TREE_CHAIN (basetype_chain);
- basetype_path = TREE_VALUE (basetype_chain);
- if (TREE_CHAIN (basetype_chain))
- my_friendly_assert
- ((BINFO_INHERITANCE_CHAIN (basetype_path)
- == TREE_VALUE (TREE_CHAIN (basetype_chain)))
- /* We only approximate base info for partial instantiations. */
- || current_template_parms,
- 980827);
- else
- my_friendly_assert (BINFO_INHERITANCE_CHAIN (basetype_path)
- == NULL_TREE, 980827);
-
- binfo = basetype_path;
- type = BINFO_TYPE (binfo);
- /* See if we can find NAME in TYPE. If RVAL is nonzero,
- and we do find NAME in TYPE, verify that such a second
- sighting is in fact valid. */
+ if (qfn)
+ base_binfo = (*qfn) (base_binfo, data);
- idx = lookup_fnfields_here (type, name);
-
- if (idx >= 0 || (lookup_field_1 (type, name)!=NULL_TREE && !find_all))
- {
- if (rval_binfo && !find_all && hides (rval_binfo_h, binfo_h))
- {
- /* This is ok, the member found is in rval_binfo, not
- here (binfo). */
- }
- else if (rval_binfo==NULL_TREE || find_all || hides (binfo_h, rval_binfo_h))
+ if (base_binfo)
{
- /* This is ok, the member found is here (binfo), not in
- rval_binfo. */
- if (idx >= 0)
- {
- rval = TREE_VEC_ELT (CLASSTYPE_METHOD_VEC (type), idx);
- /* Note, rvals can only be previously set if find_all is
- true. */
- rvals = scratch_tree_cons (basetype_path, rval, rvals);
- if (TYPE_BINFO_BASETYPES (type)
- && CLASSTYPE_BASELINK_VEC (type))
- TREE_TYPE (rvals) = TREE_VEC_ELT (CLASSTYPE_BASELINK_VEC (type), idx);
- }
- else
- {
- /* Undo finding it before, as something else hides it. */
- rval = NULL_TREE;
- rvals = NULL_TREE;
- }
- rval_binfo = binfo;
- rval_binfo_h = binfo_h;
- }
- else
- {
- /* This is ambiguous. */
- errstr = "request for method `%D' is ambiguous";
- rvals = error_mark_node;
- break;
+ if (tail == VARRAY_SIZE (bfs_bases))
+ VARRAY_GROW (bfs_bases, 2 * VARRAY_SIZE (bfs_bases));
+ VARRAY_TREE (bfs_bases, tail) = base_binfo;
+ ++tail;
}
}
}
- {
- tree *tp = search_stack->first;
- tree *search_tail = tp + tail;
- while (tp < search_tail)
- {
- CLEAR_BINFO_FIELDS_MARKED (TREE_VALUE (TREE_CHAIN (*tp)));
- tp += 1;
- }
- }
- search_stack = pop_search_level (search_stack);
+ /* Clean up. */
+ VARRAY_FREE (bfs_bases);
- if (errstr && protect)
- {
- cp_error (errstr, name);
- rvals = error_mark_node;
- }
-
- return rvals;
+ return rval;
}
-/* Look for a field or function named NAME in an inheritance lattice
- dominated by XBASETYPE. PROTECT is zero if we can avoid computing
- access information, otherwise it is 1. WANT_TYPE is 1 when we should
- only return TYPE_DECLs, if no TYPE_DECL can be found return NULL_TREE. */
-
-tree
-lookup_member (xbasetype, name, protect, want_type)
- tree xbasetype, name;
- int protect, want_type;
-{
- tree ret, basetype_path;
-
- if (TREE_CODE (xbasetype) == TREE_VEC)
- basetype_path = xbasetype;
- else if (IS_AGGR_TYPE_CODE (TREE_CODE (xbasetype)))
- {
- basetype_path = TYPE_BINFO (xbasetype);
- my_friendly_assert (BINFO_INHERITANCE_CHAIN (basetype_path)
- == NULL_TREE, 980827);
- }
- else
- my_friendly_abort (97);
-
- ret = lookup_field (basetype_path, name, protect, want_type);
- if (! ret && ! want_type)
- ret = lookup_fnfields (basetype_path, name, protect);
- return ret;
-}
-
-/* BREADTH-FIRST SEARCH ROUTINES. */
-
-/* Search a multiple inheritance hierarchy by breadth-first search.
-
- BINFO is an aggregate type, possibly in a multiple-inheritance hierarchy.
- TESTFN is a function, which, if true, means that our condition has
- been met, and its return value should be returned.
- QFN, if non-NULL, is a predicate dictating whether the type should
- even be queued.
- POSTFN, if non-NULL, is a function to call before returning. It is
- passed an array whose first element is the most derived type in the
- chain, and whose last element is the least derived type.
-
- All of the functions are also passed the DATA, which they may use
- as they see fit. */
+/* Exactly like bfs_walk, except that a depth-first traversal is
+ performed, and PREFN is called in preorder, while POSTFN is called
+ in postorder. */
static tree
-breadth_first_search (binfo, testfn, qfn, postfn, data)
+dfs_walk_real (binfo, prefn, postfn, qfn, data)
tree binfo;
- tree (*testfn) PROTO((tree, void *));
- int (*qfn) PROTO((tree, void *));
- void (*postfn) PROTO((tree *, tree *, void *));
+ tree (*prefn) PROTO((tree, void *));
+ tree (*postfn) PROTO((tree, void *));
+ tree (*qfn) PROTO((tree, void *));
void *data;
{
- int head = 0, tail = 0;
+ int i;
+ int n_baselinks;
+ tree binfos;
tree rval = NULL_TREE;
- tree *tp;
- tree *search_tail;
- search_stack = push_search_level (search_stack, &search_obstack);
-
- SET_BINFO_MARKED (binfo);
- obstack_ptr_grow (&search_obstack, binfo);
- ++tail;
-
- while (head < tail)
+ /* Call the pre-order walking function. */
+ if (prefn)
{
- tree binfos;
- int n_baselinks;
- int i;
-
- /* Pull the next type out of the queue. */
- binfo = search_stack->first[head++];
-
- /* If this is the one we're looking for, we're done. */
- rval = (*testfn) (binfo, data);
+ rval = (*prefn) (binfo, data);
if (rval)
- break;
-
- /* Queue up the base types. */
- binfos = BINFO_BASETYPES (binfo);
- n_baselinks = binfos ? TREE_VEC_LENGTH (binfos): 0;
- for (i = 0; i < n_baselinks; i++)
- {
- tree base_binfo = TREE_VEC_ELT (binfos, i);
+ return rval;
+ }
- if (TREE_VIA_VIRTUAL (base_binfo))
- base_binfo = TYPE_BINFO (BINFO_TYPE (base_binfo));
+ /* Process the basetypes. */
+ binfos = BINFO_BASETYPES (binfo);
+ n_baselinks = binfos ? TREE_VEC_LENGTH (binfos): 0;
+ for (i = 0; i < n_baselinks; i++)
+ {
+ tree base_binfo = TREE_VEC_ELT (binfos, i);
+
+ if (qfn)
+ base_binfo = (*qfn) (base_binfo, data);
- if (BINFO_MARKED (base_binfo) == 0
- && (qfn == 0 || (*qfn) (base_binfo, data)))
- {
- SET_BINFO_MARKED (base_binfo);
- obstack_ptr_grow (&search_obstack, base_binfo);
- ++tail;
- if (tail >= search_stack->limit)
- my_friendly_abort (100);
- }
+ if (base_binfo)
+ {
+ rval = dfs_walk_real (base_binfo, prefn, postfn, qfn, data);
+ if (rval)
+ return rval;
}
}
- tp = search_stack->first;
- search_tail = tp + tail;
-
+ /* Call the post-order walking function. */
if (postfn)
- (*postfn) (tp, search_tail, data);
+ rval = (*postfn) (binfo, data);
- while (tp < search_tail)
- {
- tree binfo = *tp++;
- CLEAR_BINFO_MARKED (binfo);
- }
-
- search_stack = pop_search_level (search_stack);
return rval;
}
-/* Functions to use in breadth first searches. */
-typedef tree (*pfi) PROTO((tree));
+/* Exactly like bfs_walk, except that a depth-first post-order traversal is
+ performed. */
+
+tree
+dfs_walk (binfo, fn, qfn, data)
+ tree binfo;
+ tree (*fn) PROTO((tree, void *));
+ tree (*qfn) PROTO((tree, void *));
+ void *data;
+{
+ return dfs_walk_real (binfo, 0, fn, qfn, data);
+}
-static tree declarator;
+struct gvnt_info
+{
+ /* The name of the function we are looking for. */
+ tree name;
+ /* The overloaded functions we have found. */
+ tree fields;
+};
+
+/* Called from get_virtuals_named_this via bfs_walk. */
+
+static tree
+get_virtuals_named_this_r (binfo, data)
+ tree binfo;
+ void *data;
+{
+ struct gvnt_info *gvnti = (struct gvnt_info *) data;
+ tree type = BINFO_TYPE (binfo);
+ int idx;
+
+ idx = lookup_fnfields_here (BINFO_TYPE (binfo), gvnti->name);
+ if (idx >= 0)
+ gvnti->fields
+ = scratch_tree_cons (binfo,
+ TREE_VEC_ELT (CLASSTYPE_METHOD_VEC (type),
+ idx),
+ gvnti->fields);
+
+ return NULL_TREE;
+}
+
+/* Return the virtual functions with the indicated NAME in the type
+ indicated by BINFO. The result is a TREE_LIST whose TREE_PURPOSE
+ indicates the base class from which the TREE_VALUE (an OVERLOAD or
+ just a FUNCTION_DECL) originated. */
static tree
-get_virtuals_named_this (binfo)
+get_virtuals_named_this (binfo, name)
tree binfo;
+ tree name;
{
+ struct gvnt_info gvnti;
tree fields;
- fields = lookup_fnfields (binfo, declarator, -1);
- /* fields cannot be error_mark_node */
+ gvnti.name = name;
+ gvnti.fields = NULL_TREE;
- if (fields == 0)
- return 0;
+ bfs_walk (binfo, get_virtuals_named_this_r, 0, &gvnti);
/* Get to the function decls, and return the first virtual function
with this name, if there is one. */
- while (fields)
+ for (fields = gvnti.fields; fields; fields = next_baselink (fields))
{
tree fndecl;
for (fndecl = TREE_VALUE (fields); fndecl; fndecl = OVL_NEXT (fndecl))
if (DECL_VINDEX (OVL_CURRENT (fndecl)))
return fields;
- fields = next_baselink (fields);
}
return NULL_TREE;
}
@@ -1736,7 +1657,7 @@ get_virtuals_named_this (binfo)
static tree
get_virtual_destructor (binfo, data)
tree binfo;
- void *data;
+ void *data ATTRIBUTE_UNUSED;
{
tree type = BINFO_TYPE (binfo);
if (TYPE_HAS_DESTRUCTOR (type)
@@ -1745,13 +1666,13 @@ get_virtual_destructor (binfo, data)
return 0;
}
-static int
+static tree
tree_has_any_destructor_p (binfo, data)
tree binfo;
- void *data;
+ void *data ATTRIBUTE_UNUSED;
{
tree type = BINFO_TYPE (binfo);
- return TYPE_NEEDS_DESTRUCTOR (type);
+ return TYPE_NEEDS_DESTRUCTOR (type) ? binfo : NULL_TREE;
}
/* Returns > 0 if a function with type DRETTYPE overriding a function
@@ -1834,23 +1755,19 @@ get_matching_virtual (binfo, fndecl, dtorp)
/* Breadth first search routines start searching basetypes
of TYPE, so we must perform first ply of search here. */
if (dtorp)
- {
- return breadth_first_search (binfo,
- get_virtual_destructor,
- tree_has_any_destructor_p, 0, 0);
- }
+ return bfs_walk (binfo, get_virtual_destructor,
+ tree_has_any_destructor_p, 0);
else
{
tree drettype, dtypes, btypes, instptr_type;
tree basetype = DECL_CLASS_CONTEXT (fndecl);
tree baselink, best = NULL_TREE;
tree name = DECL_ASSEMBLER_NAME (fndecl);
-
- declarator = DECL_NAME (fndecl);
+ tree declarator = DECL_NAME (fndecl);
if (IDENTIFIER_VIRTUAL_P (declarator) == 0)
return NULL_TREE;
- baselink = get_virtuals_named_this (binfo);
+ baselink = get_virtuals_named_this (binfo, declarator);
if (baselink == NULL_TREE)
return NULL_TREE;
@@ -2117,76 +2034,6 @@ convert_pointer_to_single_level (to_type, expr)
last, 1);
}
-/* The main function which implements depth first search.
-
- This routine has to remember the path it walked up, when
- dfs_init_vbase_pointers is the work function, as otherwise there
- would be no record. */
-
-void
-dfs_walk (binfo, fn, qfn)
- tree binfo;
- void (*fn) PROTO((tree));
- int (*qfn) PROTO((tree));
-{
- tree binfos = BINFO_BASETYPES (binfo);
- int i, n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
-
- for (i = 0; i < n_baselinks; i++)
- {
- tree base_binfo = TREE_VEC_ELT (binfos, i);
-
- if (qfn == 0 || (*qfn)(base_binfo))
- {
- if (TREE_CODE (BINFO_TYPE (base_binfo)) == TEMPLATE_TYPE_PARM
- || TREE_CODE (BINFO_TYPE (base_binfo)) == TEMPLATE_TEMPLATE_PARM)
- /* Pass */;
- else if (fn == dfs_init_vbase_pointers)
- {
- /* When traversing an arbitrary MI hierarchy, we need to keep
- a record of the path we took to get down to the final base
- type, as otherwise there would be no record of it, and just
- trying to blindly convert at the bottom would be ambiguous.
-
- The easiest way is to do the conversions one step at a time,
- as we know we want the immediate base class at each step.
-
- The only special trick to converting one step at a time,
- is that when we hit the last virtual base class, we must
- use the SLOT value for it, and not use the normal convert
- routine. We use the last virtual base class, as in our
- implementation, we have pointers to all virtual base
- classes in the base object. */
-
- tree saved_vbase_decl_ptr_intermediate
- = vbase_decl_ptr_intermediate;
-
- if (TREE_VIA_VIRTUAL (base_binfo))
- {
- /* No need for the conversion here, as we know it is the
- right type. */
- vbase_decl_ptr_intermediate
- = CLASSTYPE_SEARCH_SLOT (BINFO_TYPE (base_binfo));
- }
- else
- {
- vbase_decl_ptr_intermediate
- = convert_pointer_to_single_level (BINFO_TYPE (base_binfo),
- vbase_decl_ptr_intermediate);
- }
-
- dfs_walk (base_binfo, fn, qfn);
-
- vbase_decl_ptr_intermediate = saved_vbase_decl_ptr_intermediate;
- }
- else
- dfs_walk (base_binfo, fn, qfn);
- }
- }
-
- fn (binfo);
-}
-
/* Like dfs_walk, but only walk until fn returns something, and return
that. We also use the real vbase binfos instead of the placeholders
in the normal binfo hierarchy. START is the most-derived type for this
@@ -2222,46 +2069,82 @@ dfs_search (binfo, fn, start)
return fn (binfo);
}
-int markedp (binfo) tree binfo;
-{ return BINFO_MARKED (binfo); }
-static int unmarkedp (binfo) tree binfo;
-{ return BINFO_MARKED (binfo) == 0; }
+tree markedp (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return BINFO_MARKED (binfo) ? binfo : NULL_TREE;
+}
-#if 0
-static int bfs_markedp (binfo, i) tree binfo; int i;
-{ return BINFO_MARKED (BINFO_BASETYPE (binfo, i)); }
-static int bfs_unmarkedp (binfo, i) tree binfo; int i;
-{ return BINFO_MARKED (BINFO_BASETYPE (binfo, i)) == 0; }
-static int bfs_marked_vtable_pathp (binfo, i) tree binfo; int i;
-{ return BINFO_VTABLE_PATH_MARKED (BINFO_BASETYPE (binfo, i)); }
-static int bfs_unmarked_vtable_pathp (binfo, i) tree binfo; int i;
-{ return BINFO_VTABLE_PATH_MARKED (BINFO_BASETYPE (binfo, i)) == 0; }
-static int bfs_marked_new_vtablep (binfo, i) tree binfo; int i;
-{ return BINFO_NEW_VTABLE_MARKED (BINFO_BASETYPE (binfo, i)); }
-static int bfs_unmarked_new_vtablep (binfo, i) tree binfo; int i;
-{ return BINFO_NEW_VTABLE_MARKED (BINFO_BASETYPE (binfo, i)) == 0; }
-#endif
+static tree
+unmarkedp (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return !BINFO_MARKED (binfo) ? binfo : NULL_TREE;
+}
-static int marked_vtable_pathp (binfo) tree binfo;
-{ return BINFO_VTABLE_PATH_MARKED (binfo); }
-static int unmarked_vtable_pathp (binfo) tree binfo;
-{ return BINFO_VTABLE_PATH_MARKED (binfo) == 0; }
-static int marked_new_vtablep (binfo) tree binfo;
-{ return BINFO_NEW_VTABLE_MARKED (binfo); }
-static int unmarked_new_vtablep (binfo) tree binfo;
-{ return BINFO_NEW_VTABLE_MARKED (binfo) == 0; }
-static int marked_pushdecls_p (binfo) tree binfo;
-{ return BINFO_PUSHDECLS_MARKED (binfo); }
-static int unmarked_pushdecls_p (binfo) tree binfo;
-{ return BINFO_PUSHDECLS_MARKED (binfo) == 0; }
+static tree
+marked_vtable_pathp (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return BINFO_VTABLE_PATH_MARKED (binfo) ? binfo : NULL_TREE;
+}
+
+static tree
+unmarked_vtable_pathp (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return !BINFO_VTABLE_PATH_MARKED (binfo) ? binfo : NULL_TREE;
+}
+
+static tree
+marked_new_vtablep (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return BINFO_NEW_VTABLE_MARKED (binfo) ? binfo : NULL_TREE;
+}
+
+static tree
+unmarked_new_vtablep (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return !BINFO_NEW_VTABLE_MARKED (binfo) ? binfo : NULL_TREE;
+}
+
+static tree
+marked_pushdecls_p (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return BINFO_PUSHDECLS_MARKED (binfo) ? binfo : NULL_TREE;
+}
+
+static tree
+unmarked_pushdecls_p (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return !BINFO_PUSHDECLS_MARKED (binfo) ? binfo : NULL_TREE;
+}
#if 0
static int dfs_search_slot_nonempty_p (binfo) tree binfo;
{ return CLASSTYPE_SEARCH_SLOT (BINFO_TYPE (binfo)) != 0; }
#endif
-static int dfs_debug_unmarkedp (binfo) tree binfo;
-{ return CLASSTYPE_DEBUG_REQUESTED (BINFO_TYPE (binfo)) == 0; }
+static tree
+dfs_debug_unmarkedp (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ return (!CLASSTYPE_DEBUG_REQUESTED (BINFO_TYPE (binfo))
+ ? binfo : NULL_TREE);
+}
/* The worker functions for `dfs_walk'. These do not need to
test anything (vis a vis marking) if they are paired with
@@ -2273,9 +2156,14 @@ dfs_mark (binfo) tree binfo;
{ SET_BINFO_MARKED (binfo); }
#endif
-void
-dfs_unmark (binfo) tree binfo;
-{ CLEAR_BINFO_MARKED (binfo); }
+tree
+dfs_unmark (binfo, data)
+ tree binfo;
+ void *data ATTRIBUTE_UNUSED;
+{
+ CLEAR_BINFO_MARKED (binfo);
+ return NULL_TREE;
+}
#if 0
static void
@@ -2299,9 +2187,10 @@ dfs_clear_search_slot (binfo) tree binfo;
{ CLASSTYPE_SEARCH_SLOT (BINFO_TYPE (binfo)) = 0; }
#endif
-static void
-dfs_debug_mark (binfo)
+static tree
+dfs_debug_mark (binfo, data)
tree binfo;
+ void *data ATTRIBUTE_UNUSED;
{
tree t = BINFO_TYPE (binfo);
@@ -2312,12 +2201,12 @@ dfs_debug_mark (binfo)
CLASSTYPE_DEBUG_REQUESTED (t) = 1;
if (methods == 0)
- return;
+ return NULL_TREE;
/* If interface info is known, either we've already emitted the debug
info or we don't need to. */
if (CLASSTYPE_INTERFACE_KNOWN (t))
- return;
+ return NULL_TREE;
/* If debug info is requested from this context for this type, supply it.
If debug info is requested from another context for this type,
@@ -2341,7 +2230,7 @@ dfs_debug_mark (binfo)
/* Somebody, somewhere is going to have to define this
virtual function. When they do, they will provide
the debugging info. */
- return;
+ return NULL_TREE;
}
methods = TREE_CHAIN (methods);
}
@@ -2350,17 +2239,26 @@ dfs_debug_mark (binfo)
so we must write out the debug info ourselves. */
TYPE_DECL_SUPPRESS_DEBUG (TYPE_NAME (t)) = 0;
rest_of_type_compilation (t, toplevel_bindings_p ());
+
+ return NULL_TREE;
}
-/* Attach to the type of the virtual base class, the pointer to the
- virtual base class, given the global pointer vbase_decl_ptr.
+struct vbase_info
+{
+ tree decl_ptr;
+ tree inits;
+ tree vbase_types;
+};
- We use the global vbase_types. ICK! */
+/* Attach to the type of the virtual base class, the pointer to the
+ virtual base class. */
-static void
-dfs_find_vbases (binfo)
+static tree
+dfs_find_vbases (binfo, data)
tree binfo;
+ void *data;
{
+ struct vbase_info *vi = (struct vbase_info *) data;
tree binfos = BINFO_BASETYPES (binfo);
int i, n_baselinks = binfos ? TREE_VEC_LENGTH (binfos) : 0;
@@ -2372,21 +2270,25 @@ dfs_find_vbases (binfo)
&& CLASSTYPE_SEARCH_SLOT (BINFO_TYPE (base_binfo)) == 0)
{
tree vbase = BINFO_TYPE (base_binfo);
- tree binfo = binfo_member (vbase, vbase_types);
+ tree binfo = binfo_member (vbase, vi->vbase_types);
CLASSTYPE_SEARCH_SLOT (vbase)
= build (PLUS_EXPR, build_pointer_type (vbase),
- vbase_decl_ptr, BINFO_OFFSET (binfo));
+ vi->decl_ptr, BINFO_OFFSET (binfo));
}
}
SET_BINFO_VTABLE_PATH_MARKED (binfo);
SET_BINFO_NEW_VTABLE_MARKED (binfo);
+
+ return NULL_TREE;
}
-static void
-dfs_init_vbase_pointers (binfo)
+static tree
+dfs_init_vbase_pointers (binfo, data)
tree binfo;
+ void *data;
{
+ struct vbase_info *vi = (struct vbase_info *) data;
tree type = BINFO_TYPE (binfo);
tree fields = TYPE_FIELDS (type);
tree this_vbase_ptr;
@@ -2400,42 +2302,57 @@ dfs_init_vbase_pointers (binfo)
fields = TREE_CHAIN (fields);
#endif
+ if (BINFO_INHERITANCE_CHAIN (binfo))
+ {
+ this_vbase_ptr = TREE_CHAIN (BINFO_INHERITANCE_CHAIN (binfo));
+ if (TREE_VIA_VIRTUAL (binfo))
+ this_vbase_ptr = CLASSTYPE_SEARCH_SLOT (type);
+ else
+ this_vbase_ptr = convert_pointer_to_single_level (type,
+ this_vbase_ptr);
+ TREE_CHAIN (binfo) = this_vbase_ptr;
+ }
+ else
+ this_vbase_ptr = TREE_CHAIN (binfo);
+
if (fields == NULL_TREE
|| DECL_NAME (fields) == NULL_TREE
|| ! VBASE_NAME_P (DECL_NAME (fields)))
- return;
-
- this_vbase_ptr = vbase_decl_ptr_intermediate;
+ return NULL_TREE;
- if (build_pointer_type (type) != TYPE_MAIN_VARIANT (TREE_TYPE (this_vbase_ptr)))
+ if (build_pointer_type (type)
+ != TYPE_MAIN_VARIANT (TREE_TYPE (this_vbase_ptr)))
my_friendly_abort (125);
- while (fields && DECL_NAME (fields)
- && VBASE_NAME_P (DECL_NAME (fields)))
+ while (fields && DECL_NAME (fields) && VBASE_NAME_P (DECL_NAME (fields)))
{
tree ref = build (COMPONENT_REF, TREE_TYPE (fields),
build_indirect_ref (this_vbase_ptr, NULL_PTR), fields);
tree init = CLASSTYPE_SEARCH_SLOT (TREE_TYPE (TREE_TYPE (fields)));
- vbase_init_result = tree_cons (binfo_member (TREE_TYPE (TREE_TYPE (fields)),
- vbase_types),
- build_modify_expr (ref, NOP_EXPR, init),
- vbase_init_result);
+ vi->inits = tree_cons (binfo_member (TREE_TYPE (TREE_TYPE (fields)),
+ vi->vbase_types),
+ build_modify_expr (ref, NOP_EXPR, init),
+ vi->inits);
fields = TREE_CHAIN (fields);
}
+
+ return NULL_TREE;
}
/* Sometimes this needs to clear both VTABLE_PATH and NEW_VTABLE. Other
times, just NEW_VTABLE, but optimizer should make both with equal
efficiency (though it does not currently). */
-static void
-dfs_clear_vbase_slots (binfo)
+static tree
+dfs_clear_vbase_slots (binfo, data)
tree binfo;
+ void *data ATTRIBUTE_UNUSED;
{
tree type = BINFO_TYPE (binfo);
CLASSTYPE_SEARCH_SLOT (type) = 0;
CLEAR_BINFO_VTABLE_PATH_MARKED (binfo);
CLEAR_BINFO_NEW_VTABLE_MARKED (binfo);
+ return NULL_TREE;
}
tree
@@ -2445,17 +2362,29 @@ init_vbase_pointers (type, decl_ptr)
{
if (TYPE_USES_VIRTUAL_BASECLASSES (type))
{
+ struct vbase_info vi;
int old_flag = flag_this_is_variable;
tree binfo = TYPE_BINFO (type);
flag_this_is_variable = -2;
- vbase_types = CLASSTYPE_VBASECLASSES (type);
- vbase_decl_ptr = vbase_decl_ptr_intermediate = decl_ptr;
- vbase_init_result = NULL_TREE;
- dfs_walk (binfo, dfs_find_vbases, unmarked_vtable_pathp);
- dfs_walk (binfo, dfs_init_vbase_pointers, marked_vtable_pathp);
- dfs_walk (binfo, dfs_clear_vbase_slots, marked_new_vtablep);
+
+ /* Find all the virtual base classes, marking them for later
+ initialization. */
+ vi.decl_ptr = decl_ptr;
+ vi.vbase_types = CLASSTYPE_VBASECLASSES (type);
+ vi.inits = NULL_TREE;
+
+ dfs_walk (binfo, dfs_find_vbases, unmarked_vtable_pathp, &vi);
+
+ /* Build up a list of the initializers. */
+ TREE_CHAIN (binfo) = decl_ptr;
+ dfs_walk_real (binfo,
+ dfs_init_vbase_pointers, 0,
+ marked_vtable_pathp,
+ &vi);
+
+ dfs_walk (binfo, dfs_clear_vbase_slots, marked_new_vtablep, 0);
flag_this_is_variable = old_flag;
- return vbase_init_result;
+ return vi.inits;
}
return 0;
}
@@ -2693,10 +2622,7 @@ fixup_virtual_upcast_offsets (real_binfo, binfo, init_self, can_elide, addr, ori
When USE_COMPUTED_OFFSETS is non-zero, we can assume that the
object was laid out by a top-level constructor and the computed
offsets are valid to store vtables. When zero, we must store new
- vtables through virtual baseclass pointers.
-
- We setup and use the globals: vbase_decl_ptr, vbase_types
- ICK! */
+ vtables through virtual baseclass pointers. */
void
expand_indirect_vtbls_init (binfo, true_exp, decl_ptr)
@@ -2720,17 +2646,19 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr)
{
rtx fixup_insns = NULL_RTX;
tree vbases = CLASSTYPE_VBASECLASSES (type);
- vbase_types = vbases;
- vbase_decl_ptr = true_exp ? build_unary_op (ADDR_EXPR, true_exp, 0) : decl_ptr;
+ struct vbase_info vi;
+ vi.decl_ptr = (true_exp ? build_unary_op (ADDR_EXPR, true_exp, 0)
+ : decl_ptr);
+ vi.vbase_types = vbases;
- dfs_walk (binfo, dfs_find_vbases, unmarked_new_vtablep);
+ dfs_walk (binfo, dfs_find_vbases, unmarked_new_vtablep, &vi);
/* Initialized with vtables of type TYPE. */
for (; vbases; vbases = TREE_CHAIN (vbases))
{
tree addr;
- addr = convert_pointer_to_vbase (TREE_TYPE (vbases), vbase_decl_ptr);
+ addr = convert_pointer_to_vbase (TREE_TYPE (vbases), vi.decl_ptr);
/* Do all vtables from this virtual base. */
/* This assumes that virtual bases can never serve as parent
@@ -2755,7 +2683,7 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr)
push_to_sequence (fixup_insns);
fixup_virtual_upcast_offsets (vbases,
TYPE_BINFO (BINFO_TYPE (vbases)),
- 1, 0, addr, vbase_decl_ptr,
+ 1, 0, addr, vi.decl_ptr,
type, vbases, &vbase_offsets);
fixup_insns = get_insns ();
end_sequence ();
@@ -2777,7 +2705,7 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr)
expand_end_cond ();
}
- dfs_walk (binfo, dfs_clear_vbase_slots, marked_new_vtablep);
+ dfs_walk (binfo, dfs_clear_vbase_slots, marked_new_vtablep, 0);
}
}
@@ -2785,36 +2713,43 @@ expand_indirect_vtbls_init (binfo, true_exp, decl_ptr)
This adds type to the vbase_types list in reverse dfs order.
Ordering is very important, so don't change it. */
-static void
-dfs_get_vbase_types (binfo)
+static tree
+dfs_get_vbase_types (binfo, data)
tree binfo;
+ void *data;
{
+ tree *vbase_types = (tree *) data;
+
if (TREE_VIA_VIRTUAL (binfo) && ! BINFO_VBASE_MARKED (binfo))
{
tree new_vbase = make_binfo (integer_zero_node, binfo,
BINFO_VTABLE (binfo),
BINFO_VIRTUALS (binfo));
- TREE_CHAIN (new_vbase) = vbase_types;
+ TREE_CHAIN (new_vbase) = *vbase_types;
TREE_VIA_VIRTUAL (new_vbase) = 1;
- vbase_types = new_vbase;
+ *vbase_types = new_vbase;
SET_BINFO_VBASE_MARKED (binfo);
}
SET_BINFO_MARKED (binfo);
+ return NULL_TREE;
}
-/* get a list of virtual base classes in dfs order. */
+/* Return a list of binfos for the virtual base classes for TYPE, in
+ depth-first search order. The list is freshly allocated, so
+ no modification is made to the current binfo hierarchy. */
tree
get_vbase_types (type)
tree type;
{
+ tree vbase_types;
tree vbases;
tree binfo;
binfo = TYPE_BINFO (type);
vbase_types = NULL_TREE;
- dfs_walk (binfo, dfs_get_vbase_types, unmarkedp);
- dfs_walk (binfo, dfs_unmark, markedp);
+ dfs_walk (binfo, dfs_get_vbase_types, unmarkedp, &vbase_types);
+ dfs_walk (binfo, dfs_unmark, markedp, 0);
/* Rely upon the reverse dfs ordering from dfs_get_vbase_types, and now
reverse it so that we get normal dfs ordering. */
vbase_types = nreverse (vbase_types);
@@ -2852,13 +2787,13 @@ note_debug_info_needed (type)
if (write_symbols == DWARF_DEBUG || write_symbols == DWARF2_DEBUG)
return;
- dfs_walk (TYPE_BINFO (type), dfs_debug_mark, dfs_debug_unmarkedp);
+ dfs_walk (TYPE_BINFO (type), dfs_debug_mark, dfs_debug_unmarkedp, 0);
for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
{
tree ttype;
if (TREE_CODE (field) == FIELD_DECL
&& IS_AGGR_TYPE (ttype = target_type (TREE_TYPE (field)))
- && dfs_debug_unmarkedp (TYPE_BINFO (ttype)))
+ && dfs_debug_unmarkedp (TYPE_BINFO (ttype), 0))
note_debug_info_needed (ttype);
}
}
@@ -2975,7 +2910,7 @@ dependent_base_p (binfo)
{
for (; binfo; binfo = BINFO_INHERITANCE_CHAIN (binfo))
{
- if (TREE_TYPE (binfo) == current_class_type)
+ if (currently_open_class (TREE_TYPE (binfo)))
break;
if (uses_template_parms (TREE_TYPE (binfo)))
return 1;
@@ -3002,10 +2937,12 @@ dependent_base_p (binfo)
Because if it is, it could be a set of overloaded methods from an
outer scope. */
-static void
-dfs_pushdecls (binfo)
+static tree
+dfs_pushdecls (binfo, data)
tree binfo;
+ void *data;
{
+ tree *closed_envelopes = (tree *) data;
tree type = BINFO_TYPE (binfo);
tree fields;
tree method_vec;
@@ -3031,7 +2968,7 @@ dfs_pushdecls (binfo)
if (DECL_NAME (fields) == NULL_TREE
&& TREE_CODE (TREE_TYPE (fields)) == UNION_TYPE)
{
- dfs_pushdecls (TYPE_BINFO (TREE_TYPE (fields)));
+ dfs_pushdecls (TYPE_BINFO (TREE_TYPE (fields)), data);
continue;
}
@@ -3048,9 +2985,9 @@ dfs_pushdecls (binfo)
|| TREE_CODE (TREE_PURPOSE (class_value)) == IDENTIFIER_NODE)
{
/* See comment above for a description of envelopes. */
- closed_envelopes = tree_cons (NULL_TREE, class_value,
- closed_envelopes);
- IDENTIFIER_CLASS_VALUE (name) = closed_envelopes;
+ *closed_envelopes = tree_cons (NULL_TREE, class_value,
+ *closed_envelopes);
+ IDENTIFIER_CLASS_VALUE (name) = *closed_envelopes;
class_value = IDENTIFIER_CLASS_VALUE (name);
}
@@ -3090,9 +3027,9 @@ dfs_pushdecls (binfo)
|| TREE_CODE (TREE_PURPOSE (class_value)) == IDENTIFIER_NODE)
{
/* See comment above for a description of envelopes. */
- closed_envelopes = tree_cons (NULL_TREE, class_value,
- closed_envelopes);
- IDENTIFIER_CLASS_VALUE (name) = closed_envelopes;
+ *closed_envelopes = tree_cons (NULL_TREE, class_value,
+ *closed_envelopes);
+ IDENTIFIER_CLASS_VALUE (name) = *closed_envelopes;
class_value = IDENTIFIER_CLASS_VALUE (name);
}
@@ -3111,13 +3048,16 @@ dfs_pushdecls (binfo)
/* We can't just use BINFO_MARKED because envelope_add_decl uses
DERIVED_FROM_P, which calls get_base_distance. */
SET_BINFO_PUSHDECLS_MARKED (binfo);
+
+ return NULL_TREE;
}
/* Consolidate unique (by name) member functions. */
-static void
-dfs_compress_decls (binfo)
+static tree
+dfs_compress_decls (binfo, data)
tree binfo;
+ void *data ATTRIBUTE_UNUSED;
{
tree type = BINFO_TYPE (binfo);
tree method_vec
@@ -3155,6 +3095,8 @@ dfs_compress_decls (binfo)
}
}
CLEAR_BINFO_PUSHDECLS_MARKED (binfo);
+
+ return NULL_TREE;
}
/* When entering the scope of a class, we cache all of the
@@ -3169,6 +3111,7 @@ push_class_decls (type)
tree type;
{
struct obstack *ambient_obstack = current_obstack;
+ tree closed_envelopes = NULL_TREE;
search_stack = push_search_level (search_stack, &search_obstack);
/* Build up all the relevant bindings and such on the cache
@@ -3177,11 +3120,13 @@ push_class_decls (type)
maybe_push_cache_obstack ();
/* Push class fields into CLASS_VALUE scope, and mark. */
- dfs_walk (TYPE_BINFO (type), dfs_pushdecls, unmarked_pushdecls_p);
+ dfs_walk (TYPE_BINFO (type), dfs_pushdecls, unmarked_pushdecls_p,
+ &closed_envelopes);
/* Compress fields which have only a single entry
by a given name, and unmark. */
- dfs_walk (TYPE_BINFO (type), dfs_compress_decls, marked_pushdecls_p);
+ dfs_walk (TYPE_BINFO (type), dfs_compress_decls, marked_pushdecls_p,
+ 0);
/* Open up all the closed envelopes and push the contained decls into
class scope. */
@@ -3252,9 +3197,10 @@ push_class_decls (type)
/* Here's a subroutine we need because C lacks lambdas. */
-static void
-dfs_unuse_fields (binfo)
+static tree
+dfs_unuse_fields (binfo, data)
tree binfo;
+ void *data ATTRIBUTE_UNUSED;
{
tree type = TREE_TYPE (binfo);
tree fields;
@@ -3269,13 +3215,15 @@ dfs_unuse_fields (binfo)
&& TREE_CODE (TREE_TYPE (fields)) == UNION_TYPE)
unuse_fields (TREE_TYPE (fields));
}
+
+ return NULL_TREE;
}
void
unuse_fields (type)
tree type;
{
- dfs_walk (TYPE_BINFO (type), dfs_unuse_fields, unmarkedp);
+ dfs_walk (TYPE_BINFO (type), dfs_unuse_fields, unmarkedp, 0);
}
void
@@ -3360,8 +3308,7 @@ lookup_conversions (type)
tree conversions = NULL_TREE;
if (TYPE_SIZE (type))
- breadth_first_search (TYPE_BINFO (type), add_conversions,
- 0, 0, &conversions);
+ bfs_walk (TYPE_BINFO (type), add_conversions, 0, &conversions);
for (t = conversions; t; t = TREE_CHAIN (t))
IDENTIFIER_MARKED (DECL_NAME (OVL_CURRENT (TREE_VALUE (t)))) = 0;
@@ -3369,35 +3316,47 @@ lookup_conversions (type)
return conversions;
}
+struct overlap_info
+{
+ tree compare_type;
+ int found_overlap;
+};
+
/* Check whether the empty class indicated by EMPTY_BINFO is also present
at offset 0 in COMPARE_TYPE, and set found_overlap if so. */
-static tree compare_type;
-static int found_overlap;
-static void
-dfs_check_overlap (empty_binfo)
+static tree
+dfs_check_overlap (empty_binfo, data)
tree empty_binfo;
+ void *data;
{
+ struct overlap_info *oi = (struct overlap_info *) data;
tree binfo;
- for (binfo = TYPE_BINFO (compare_type); ; binfo = BINFO_BASETYPE (binfo, 0))
+ for (binfo = TYPE_BINFO (oi->compare_type);
+ ;
+ binfo = BINFO_BASETYPE (binfo, 0))
{
if (BINFO_TYPE (binfo) == BINFO_TYPE (empty_binfo))
{
- found_overlap = 1;
+ oi->found_overlap = 1;
break;
}
else if (BINFO_BASETYPES (binfo) == NULL_TREE)
break;
}
+
+ return NULL_TREE;
}
/* Trivial function to stop base traversal when we find something. */
-static int
-dfs_no_overlap_yet (t)
- tree t ATTRIBUTE_UNUSED;
+static tree
+dfs_no_overlap_yet (binfo, data)
+ tree binfo;
+ void *data;
{
- return found_overlap == 0;
+ struct overlap_info *oi = (struct overlap_info *) data;
+ return !oi->found_overlap ? binfo : NULL_TREE;
}
/* Returns nonzero if EMPTY_TYPE or any of its bases can also be found at
@@ -3407,34 +3366,63 @@ int
types_overlap_p (empty_type, next_type)
tree empty_type, next_type;
{
+ struct overlap_info oi;
+
if (! IS_AGGR_TYPE (next_type))
return 0;
- compare_type = next_type;
- found_overlap = 0;
- dfs_walk (TYPE_BINFO (empty_type), dfs_check_overlap, dfs_no_overlap_yet);
- return found_overlap;
+ oi.compare_type = next_type;
+ oi.found_overlap = 0;
+ dfs_walk (TYPE_BINFO (empty_type), dfs_check_overlap,
+ dfs_no_overlap_yet, &oi);
+ return oi.found_overlap;
+}
+
+struct bfv_info {
+ tree vbases;
+ tree var;
+};
+
+static tree
+dfs_bfv_queue_p (binfo, data)
+ tree binfo;
+ void *data;
+{
+ struct bfv_info *bfvi = (struct bfv_info *) data;
+
+ /* Use the real virtual base class objects, not the placeholders in
+ the usual hierarchy. */
+ if (TREE_VIA_VIRTUAL (binfo))
+ return binfo_member (BINFO_TYPE (binfo), bfvi->vbases);
+
+ return binfo;
}
/* Passed to dfs_search by binfo_for_vtable; determine if bvtable comes
from BINFO. */
-static tree bvtable;
static tree
-dfs_bfv_helper (binfo)
+dfs_bfv_helper (binfo, data)
tree binfo;
+ void *data;
{
- if (BINFO_VTABLE (binfo) == bvtable)
+ struct bfv_info *bfvi = (struct bfv_info *) data;
+
+ if (BINFO_VTABLE (binfo) == bfvi->var)
return binfo;
return NULL_TREE;
}
-/* Given a vtable VARS, determine which binfo it comes from. */
+/* Given a vtable VAR, determine which binfo it comes from. */
tree
-binfo_for_vtable (vars)
- tree vars;
+binfo_for_vtable (var)
+ tree var;
{
- bvtable = vars;
- return dfs_search (TYPE_BINFO (DECL_CONTEXT (vars)), dfs_bfv_helper,
- DECL_CONTEXT (vars));
+ tree type;
+ struct bfv_info bfvi;
+
+ type = DECL_CONTEXT (var);
+ bfvi.vbases = CLASSTYPE_VBASECLASSES (type);
+ return dfs_walk_real (TYPE_BINFO (type),
+ 0, dfs_bfv_helper, dfs_bfv_queue_p, &bfvi);
}
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash11.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash11.C
index a6c9226..00c3086 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/crash11.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash11.C
@@ -3,8 +3,8 @@
extern "C" void printf (char *, ...);
class A {
- int i;
- int j;
+ int i; // ERROR - private
+ int j; // ERROR - private
public:
int h;
A() { i=10; j=20; }
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash19.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash19.C
index 1b8527d..1738c73 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/crash19.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash19.C
@@ -151,8 +151,8 @@ struct __streambuf {
char* _gptr;
char* _egptr;
char* _eback;
- char* _pbase;
- char* _pptr;
+ char* _pbase; // ERROR - inacessible
+ char* _pptr; // ERROR - inacessible
char* _epptr;
char* _base;
char* _ebuf;
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C
index de82148..8c5c9ad 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C
@@ -2,7 +2,7 @@
// GROUPS passed enums
class X {
private:
- enum E1 {a1, b1};
+ enum E1 {a1, b1}; // ERROR - private
public:
enum E2 {a2, b2};
};
@@ -12,5 +12,5 @@ void h(X* p) {
int x2 = X::a2;
X::E1 e1;
- int x1 = X::a1; // Should be rejected, and is.// ERROR - .*
+ int x1 = X::a1; // ERROR - within this context
}
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C
index 7d11f87..784c167 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C
@@ -2,7 +2,7 @@
// GROUPS passed visibility
class foo {
protected:
- int i;
+ int i; // ERROR - protected
};
class bar : public foo {
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C
index 5ca62c0..85f47b5 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C
@@ -3,7 +3,7 @@
class bottom
{
public:
- int b;
+ int b; // ERROR - private
};
class middle : private bottom
{
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C
index a3bb856..2d69e7b 100644
--- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C
+++ b/gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C
@@ -5,7 +5,7 @@
class foo
{
public:
- static int y;
+ static int y; // ERROR - private
};
class foo1 : private foo
{ };
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access17.C b/gcc/testsuite/g++.old-deja/g++.jason/access17.C
index 9ed7d30..676eac1 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/access17.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/access17.C
@@ -3,7 +3,7 @@
struct A {
protected:
- int i;
+ int i; // ERROR - private
int f (); // ERROR -
};
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access23.C b/gcc/testsuite/g++.old-deja/g++.jason/access23.C
index 74112aa..99e0b45 100644
--- a/gcc/testsuite/g++.old-deja/g++.jason/access23.C
+++ b/gcc/testsuite/g++.old-deja/g++.jason/access23.C
@@ -16,24 +16,24 @@ public:
int PUB_A;
protected:
union {
- long B;
- void *pY;
+ long B; // ERROR - protected
+ void *pY; // ERROR - protected
} ;
union Y {
long B;
void *pY;
- } PRT;
- int PRT_A;
+ } PRT; // ERROR - protected
+ int PRT_A; // ERROR - protected
private:
union {
- long C;
- void *pZ;
+ long C; // ERROR - private
+ void *pZ; // ERROR - private
};
union Z {
- long C;
+ long C;
void *pZ;
- } PRV;
- int PRV_A;
+ } PRV; // ERROR - private
+ int PRV_A; // ERROR - private
};
struct Bar : public Foo {
diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm14.C b/gcc/testsuite/g++.old-deja/g++.law/arm14.C
index 9167428..d50b3cd 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/arm14.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/arm14.C
@@ -9,7 +9,7 @@
class X {
private:
- enum E1 {a1, b1};
+ enum E1 {a1, b1}; // ERROR - private
public:
enum E2 {a2, b2};
};
diff --git a/gcc/testsuite/g++.old-deja/g++.law/union2.C b/gcc/testsuite/g++.old-deja/g++.law/union2.C
index 9f812d7..66c2c66 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/union2.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/union2.C
@@ -10,9 +10,9 @@ class A {
public:
int x;
private:
- int y;
+ int y; // ERROR - private
union {
- int z;
+ int z; // ERROR - private
};
};
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility12.C b/gcc/testsuite/g++.old-deja/g++.law/visibility12.C
index c3a9963..3aa6d6b 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility12.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility12.C
@@ -6,7 +6,7 @@
// Subject: member access rule bug
// Message-ID: <9306300528.AA17185@coda.mel.dit.CSIRO.AU>
struct a {
- int aa;
+ int aa; // ERROR - private
};
class b : private a {
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility13.C b/gcc/testsuite/g++.old-deja/g++.law/visibility13.C
index fa5e5dd..7f634e2 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility13.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility13.C
@@ -23,8 +23,8 @@ public:
virtual Type& operator[](int ix) { return ia[ix]; }
private:
void init(const Type*, int);
- int size;
- int *ia;
+ int size; // ERROR - private
+ int *ia; // ERROR - private
};
template <class Type>
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility16.C b/gcc/testsuite/g++.old-deja/g++.law/visibility16.C
index 32fb706..5291d7c 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility16.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility16.C
@@ -7,9 +7,9 @@
// Message-ID: <9308051553.AA07639@nwd2sun1.analog.com>
class A {
protected:
- int astuff;
+ int astuff; // ERROR - protected
A() {
- astuff = 3;
+ astuff = 3;
}
};
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility18.C b/gcc/testsuite/g++.old-deja/g++.law/visibility18.C
index a294f13..a1ec468 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility18.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility18.C
@@ -7,7 +7,7 @@
// Message-ID: <9308061142.AA08533@iiserv>
struct T1 { int i; };
-struct T2 { int j; };
+struct T2 { int j; }; // ERROR - private
struct T3 : public T1, private T2 {
} x;
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility19.C b/gcc/testsuite/g++.old-deja/g++.law/visibility19.C
index 0f22d65..82a1dc5 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility19.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility19.C
@@ -7,7 +7,7 @@
// Message-ID: <9308252030.AA02352@tnt.acsys.com>
class B {
protected:
- int i;
+ int i; // ERROR - protected
};
class D1 : public B {
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility4.C b/gcc/testsuite/g++.old-deja/g++.law/visibility4.C
index 5a92c6c..2d7079e 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility4.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility4.C
@@ -8,7 +8,7 @@
class A {
public:
- int b;
+ int b; // ERROR - private
};
class C : private A { // NOTE WELL. private, not public
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility8.C b/gcc/testsuite/g++.old-deja/g++.law/visibility8.C
index 3e5178c..8b36e80 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility8.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility8.C
@@ -7,7 +7,7 @@
// Message-ID: <m0nof3E-0021ifC@jts.com
class t1 {
protected:
- int a;
+ int a; // ERROR - protected
};
diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility9.C b/gcc/testsuite/g++.old-deja/g++.law/visibility9.C
index df98640..4b0ab33 100644
--- a/gcc/testsuite/g++.old-deja/g++.law/visibility9.C
+++ b/gcc/testsuite/g++.old-deja/g++.law/visibility9.C
@@ -8,7 +8,7 @@
class A {
protected:
- int a;
+ int a; // ERROR - protected
};
class B : public A {
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8785.C b/gcc/testsuite/g++.old-deja/g++.mike/p8785.C
index 4f5146b..e10f4cf 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/p8785.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/p8785.C
@@ -3,7 +3,7 @@
class Outer {
private:
- int x;
+ int x; // ERROR - private
public:
struct Inner {
int y;
diff --git a/gcc/testsuite/g++.old-deja/g++.other/access3.C b/gcc/testsuite/g++.old-deja/g++.other/access3.C
index 87c4c81..2ba2c0c 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/access3.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/access3.C
@@ -1,10 +1,11 @@
+// Build don't link:
// The standard sez that a use of a name gets the most access it can through
// the various paths that can reach it. Here, the access decl in B gives
// us access.
struct A
{
- void f (); // gets bogus error - ref below XFAIL *-*-*
+ void f ();
};
struct B: private virtual A
@@ -21,5 +22,5 @@ main ()
{
C c;
- c.f (); // gets bogus error - private XFAIL *-*-*
+ c.f ();
}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/access4.C b/gcc/testsuite/g++.old-deja/g++.other/access4.C
new file mode 100644
index 0000000..75f3a61
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.other/access4.C
@@ -0,0 +1,11 @@
+// Build don't link:
+
+struct A {
+ static int i;
+};
+
+struct B : private A { };
+
+struct C : public B {
+ int f () { return A::i; }
+};
diff --git a/gcc/testsuite/g++.old-deja/g++.other/access5.C b/gcc/testsuite/g++.old-deja/g++.other/access5.C
new file mode 100644
index 0000000..0d58ea0
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.other/access5.C
@@ -0,0 +1,22 @@
+// Build don't link:
+
+class A
+{
+protected:
+ int i;
+};
+
+class B : private A
+{
+protected:
+ A::i;
+};
+
+struct C : public B {
+ friend int f(C *p);
+};
+
+int f(C *p) {
+ return p->i;
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.other/access6.C b/gcc/testsuite/g++.old-deja/g++.other/access6.C
new file mode 100644
index 0000000..7a7c7ff
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.other/access6.C
@@ -0,0 +1,17 @@
+// Build don't link:
+
+template <int I>
+struct S {
+ void g();
+};
+
+class C {
+ static const int i = 3; // gets bogus error - private - XFAIL *-*-*
+public:
+ S<C::i>* f(); // gets bogus error - redeclared - XFAIL *-*-*
+};
+
+S<C::i>* C::f() { // gets bogus error - private - XFAIL *-*-*
+ return 0;
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.other/ambig1.C b/gcc/testsuite/g++.old-deja/g++.other/ambig1.C
index 04e4afa..d6574a2 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/ambig1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/ambig1.C
@@ -1,15 +1,15 @@
// Build don't link:
struct A {
- int operator ++();
- void operator ()();
- void operator delete(void*);
+ int operator ++(); // ERROR - candidates
+ void operator ()(); // ERROR - candidates
+ void operator delete(void*); // ERROR - candidates
};
struct B {
- int operator ++(int);
- void operator ()();
- void operator delete(void*);
+ int operator ++(int); // ERROR - candidates
+ void operator ()(); // ERROR - candidates
+ void operator delete(void*); // ERROR - candidates
void f();
};
diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash7.C b/gcc/testsuite/g++.old-deja/g++.other/crash7.C
index c924adf..0f58198 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/crash7.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/crash7.C
@@ -4,8 +4,8 @@ void f()
{
union {
private:
- int i;
+ int i; // ERROR - private
} u;
- u.i = 3; // ERROR - private
+ u.i = 3; // ERROR - within this context
}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend1.C b/gcc/testsuite/g++.old-deja/g++.other/friend1.C
index e00f5e6..ef90607 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/friend1.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/friend1.C
@@ -12,8 +12,8 @@
class B {
protected:
- int i;
- static int j;
+ int i; // ERROR - in this context
+ static int j; // gets bogus error - XFAIL *-*-*
};
class D : public B {
diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend4.C b/gcc/testsuite/g++.old-deja/g++.other/friend4.C
index 468340f..07969cd 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/friend4.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/friend4.C
@@ -10,7 +10,7 @@
template <class A, class B> void foo();
template <class C> class bar {
- int i;
+ int i; // ERROR - private
template <class B> friend void foo<C,B>(); // ERROR - bogus declaration
};
template <class A, class B> void foo() {
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/derived2.C b/gcc/testsuite/g++.old-deja/g++.pt/derived2.C
new file mode 100644
index 0000000..737792c
--- /dev/null
+++ b/gcc/testsuite/g++.old-deja/g++.pt/derived2.C
@@ -0,0 +1,35 @@
+// Build don't link:
+// Special g++ Options:
+
+template <typename T>
+void f(T);
+template <>
+void f(int) {}
+
+struct B {
+ typedef int I;
+};
+
+template <typename T>
+struct D1 : virtual public B {
+ typedef T I;
+};
+
+
+template <typename T>
+struct D : virtual public B, public D1<T>
+{
+ void g()
+ {
+ I i;
+ f(i);
+ }
+};
+
+int
+main()
+{
+ D<double> d;
+ d.g();
+}
+
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend11.C b/gcc/testsuite/g++.old-deja/g++.pt/friend11.C
index d70fae6..1aeba3a 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/friend11.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/friend11.C
@@ -20,7 +20,7 @@ class C
template <class U>
friend void S<T>::f(U);
- int i;
+ int i; // ERROR - private
};
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend21.C b/gcc/testsuite/g++.old-deja/g++.pt/friend21.C
index c89fe1d..3f690a4 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/friend21.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/friend21.C
@@ -7,7 +7,7 @@ template <class T> struct A {
template <class T> class B
{
friend class A<T>;
- static int i;
+ static int i; // ERROR - private
};
template <class T> class C
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend3.C b/gcc/testsuite/g++.old-deja/g++.pt/friend3.C
index 77aabd3..74d0e06 100644
--- a/gcc/testsuite/g++.old-deja/g++.pt/friend3.C
+++ b/gcc/testsuite/g++.old-deja/g++.pt/friend3.C
@@ -7,7 +7,7 @@ class C
{
friend void f<>(double);
- int i;
+ int i; // ERROR - private
};