Changeset 37f0da8
- Timestamp:
- Apr 14, 2016, 3:23:53 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
- Children:
- 0f9e4403, 347c42f, 70a06f6
- Parents:
- 37218fc (diff), baba5d8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 1 added
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/LaTeXmacros/common.tex
r37218fc r37f0da8 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -*- Mode: Latex -*- %%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 %% 3 %% Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 4 %% 5 %% The contents of this file are covered under the licence agreement in the 6 %% file "LICENCE" distributed with Cforall. 7 %% 8 %% common.tex -- 9 %% 10 %% Author : Peter A. Buhr 11 %% Created On : Sat Apr 9 10:06:17 2016 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Sat Apr 9 10:06:39 2016 14 %% Update Count : 1 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 1 17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 18 -
doc/refrat/refrat.tex
r37218fc r37f0da8 11 11 %% Created On : Wed Apr 6 14:52:25 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Fri Apr 8 18:32:07201614 %% Update Count : 613 %% Last Modified On : Sat Apr 9 10:19:12 2016 14 %% Update Count : 8 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 26 26 \usepackage{listings} 27 27 \usepackage{comment} 28 \usepackage{latexsym} 29 \usepackage{mathptmx} 28 \usepackage{latexsym} % \Box 29 \usepackage{mathptmx} % better math font with "times" 30 30 \usepackage[pagewise]{lineno} 31 31 \renewcommand{\linenumberfont}{\scriptsize\sffamily} … … 39 39 \input{common} 40 40 41 \setcounter{secnumdepth}{3} % number subsubsections 42 \setcounter{tocdepth}{3} % subsubsections in table of contents 41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 42 43 \setcounter{secnumdepth}{3} % number subsubsections 44 \setcounter{tocdepth}{3} % subsubsections in table of contents 43 45 \makeindex 44 46 … … 47 49 \begin{document} 48 50 \pagestyle{headings} 49 \linenumbers 51 \linenumbers % comment out to turn off line numbering 50 52 51 53 \title{\Huge 54 \vspace*{1in} 52 55 \CFA (\CFL) Reference Manual and Rationale 53 56 }% title -
doc/user/user.tex
r37218fc r37f0da8 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Fri Apr 8 11:40:53201614 %% Update Count : 4213 %% Last Modified On : Sun Apr 10 22:50:15 2016 14 %% Update Count : 72 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 21 21 22 22 % Latex packages used in the document. 23 \usepackage[T1]{fontenc} 23 \usepackage[T1]{fontenc} % allow Latin1 (extended ASCII) characters 24 24 \usepackage{textcomp} 25 25 \usepackage[latin1]{inputenc} … … 31 31 \usepackage{footmisc} 32 32 \usepackage{comment} 33 \usepackage{latexsym} 34 \usepackage{mathptmx} 33 \usepackage{latexsym} % \Box 34 \usepackage{mathptmx} % better math font with "times" 35 35 \usepackage[pagewise]{lineno} 36 36 \renewcommand{\linenumberfont}{\scriptsize\sffamily} … … 41 41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 42 42 43 % Names used in the document.44 45 \newcommand{\CS}{C\raisebox{-0.9ex}{\large$^\sharp$}\xspace}46 47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%48 49 43 % Bespoke macros used in the document. 50 44 \input{common} 51 45 52 \setcounter{secnumdepth}{3} % number subsubsections 53 \setcounter{tocdepth}{3} % subsubsections in table of contents 46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 47 48 % Names used in the document. 49 50 \newcommand{\CS}{C\raisebox{-0.9ex}{\large$^\sharp$}\xspace} 51 52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 53 54 \setcounter{secnumdepth}{3} % number subsubsections 55 \setcounter{tocdepth}{3} % subsubsections in table of contents 54 56 \makeindex 55 57 … … 58 60 \begin{document} 59 61 \pagestyle{headings} 60 \linenumbers 62 \linenumbers % comment out to turn off line numbering 61 63 62 64 \title{\Huge … … 72 74 }% author 73 75 \date{ 74 DRAFT\\\today 76 DRAFT \\ 77 \today 75 78 }% date 76 79 … … 100 103 101 104 \CFA\footnote{Pronounced ``C-for-all'', and written \CFA, CFA, or \CFL.} is a modern general-purpose programming-language, designed an as evolutionary step forward from the C programming language. 102 The syntax of the \CFA language builds from that ofC, and should look immediately familiar to C programmers.105 The syntax of the \CFA language builds from C, and should look immediately familiar to C programmers. 103 106 % Any language feature that is not described here can be assumed to be using the standard C11 syntax. 104 \CFA has added many modern programming-language features, which directly leads to increased safety and productivity, while maintaining interoperability with existing C programs,and maintaining C-like performance.107 \CFA adds many modern programming-language features, which directly leads to increased safety and productivity, while maintaining interoperability with existing C programs and maintaining C-like performance. 105 108 Like C, \CFA is a statically typed, procedural language with a low-overhead runtime, meaning there is no global garbage-collection. 106 109 The primary new features include parametric-polymorphism routines and types, exceptions, concurrency, and modules. … … 113 116 New programs can be written in \CFA using a combination of C and \CFA features. 114 117 \CC had a similar goal 30 years ago, but has struggled over the intervening time to incorporate modern programming-language features because of early design choices. 115 \CFA has 30 years of hindsight and a much cleaner starting point than \CC.118 \CFA has 30 years of hindsight and clean starting point. 116 119 117 120 Like \CC, there may be both an old and new ways to achieve the same effect. … … 138 141 \end{quote2} 139 142 Both programs output the same result. 140 While the \CFA I/O looks similar to the \CC style of output, there are several important differences, such as automatic spacing between variables as in Python (see also~\VRef{s:IOLibrary}).143 While the \CFA I/O looks similar to the \CC output style, there are several important differences, such as automatic spacing between variables as in Python (see also~\VRef{s:IOLibrary}). 141 144 142 145 This document is a reference manual for the \CFA programming language, targeted at \CFA programmers. 143 Implementers may alsorefer to the \CFA Programming Language Specification for details about the language syntax and semantics.146 Implementers may refer to the \CFA Programming Language Specification for details about the language syntax and semantics. 144 147 In its current state, this document covers the intended core features of the language. 145 148 Changes to the syntax and additional features are expected to be included in later revisions. … … 153 156 The original \CFA project~\cite{Ditchfield92} extended the C type system with parametric polymorphism and overloading, as opposed to the \CC approach of object-oriented extensions to the C type-system. 154 157 A first implementation of the core Cforall language was created~\cite{Bilson03,Esteves04}, but at the time there was little interesting in extending C, so work did not continue. 155 As the saying goes, ``What goes around, comes around'', and there is now renewed interest in the C programming language , so the \CFA project has been restarted.156 157 158 \section{ Motivation:Why fix C?}158 As the saying goes, ``What goes around, comes around'', and there is now renewed interest in the C programming language because of legacy code-bases, so the \CFA project has been restarted. 159 160 161 \section{Why fix C?} 159 162 160 163 Even with all its problems, C is a very popular programming language because it allows writing software at virtually any level in a computer system without restriction. … … 173 176 Java~\cite{Java8}, Go~\cite{Go}, Rust~\cite{Rust} and D~\cite{D} are examples of the revolutionary approach for modernizing C/\CC, resulting in a new language rather than an extension of the descendent. 174 177 These languages have different syntax and semantics from C, and do not interoperate directly with C, largely because of garbage collection. 175 As a result, there is a significant learning curve to move to these languages, and C legacy-code must be completerewritten.178 As a result, there is a significant learning curve to move to these languages, and C legacy-code must be rewritten. 176 179 These costs can be prohibitive for many companies with a large software base in C/\CC, and many programmers that require retraining to a new programming language. 177 180 … … 190 193 This feature allows users of \CFA to take advantage of the existing panoply of C libraries from inside their \CFA code. 191 194 In fact, one of the biggest issues for any new programming language is establishing a minimum level of library code to support a large body of activities. 192 Programming-language developers often state that adequate library support costs many times morethan designing and implementing the language itself.195 Programming-language developers often state that adequate library support takes more work than designing and implementing the language itself. 193 196 Like \CC, \CFA starts with immediate access to all exiting C libraries, and in many cases, can easily wrap library routines with simpler and safer interfaces, at very low cost. 194 197 … … 197 200 Whereas, \CFA wraps each of these routines into one with the common name \lstinline@abs@. 198 201 \begin{lstlisting} 202 char abs( char ); 199 203 extern "C" { 200 #include <stdlib.h> // provide C prototype for integer "abs" routine 204 int abs( int ); // use default C routine for int 201 205 } // extern "C" 202 203 char abs( char ); 204 long int abs( long int ); // @{\CFA}@ overload name "abs" for other types 206 long int abs( long int ); 205 207 long long int abs( long long int ); 206 208 float abs( float ); … … 219 221 The name ``\lstinline@abs@'' evokes the notion of absolute value, and many mathematical types provide the notion of absolute value. 220 222 Hence, knowing the name \lstinline@abs@ should be sufficient to apply it to any type where it is applicable. 221 The time savings and safety of using one name uniformly versus @N@unique names should not be underestimated.223 The time savings and safety of using one name uniformly versus $N$ unique names should not be underestimated. 222 224 223 225 … … 273 275 the type suffixes \lstinline@U@, \lstinline@L@, etc. may start with an underscore \lstinline@1_U@, \lstinline@1_ll@ or \lstinline@1.0E10_f@. 274 276 \end{enumerate} 275 It is significantly easier to read and typelong constants when they are broken up into smaller groupings (most cultures use comma or period among digits for the same purpose).277 It is significantly easier to read and enter long constants when they are broken up into smaller groupings (most cultures use comma or period among digits for the same purpose). 276 278 This extension is backwards compatible, matches with the use of underscore in variable names, and appears in Ada and Java. 277 279 … … 290 292 \begin{lstlisting} 291 293 int (*f())[ 10 ] {...}; 292 ... (*f())[ 3 ] += 1;// definition mimics usage294 ... (*f())[ 3 ] += 1; // definition mimics usage 293 295 \end{lstlisting} 294 296 Essentially, the return type is wrapped around the routine name in successive layers (like an onion). … … 299 301 The only exception is bit field specification, which always appear to the right of the base type. 300 302 C and the new \CFA declarations may appear together in the same program block, but cannot be mixed within a specific declaration. 301 Unsupported are K\&R C declarations where the base type defaults to \lstinline@int@, if no type is specified\footnote{302 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}},303 e.g.:304 \begin{lstlisting}305 x; // int x306 *y; // int *y307 f( p1, p2 ); // int f( int p1, int p2 );308 f( p1, p2 ) {} // int f( int p1, int p2 ) {}309 \end{lstlisting}310 303 311 304 In \CFA declarations, the same tokens are used as in C: the character \lstinline@*@ is used to indicate a pointer, square brackets \lstinline@[@\,\lstinline@]@ are used to represent an array, and parentheses \lstinline@()@ are used to indicate a routine parameter. … … 333 326 * [ 10 ] double v; 334 327 struct s { 335 int f0:3;328 int f0:3; 336 329 * int f1; 337 330 [ 10 ] * int f2; … … 363 356 \end{quote2} 364 357 365 As stated above, the two styles of declaration may appear together in the same block.366 Therefore, a programmer has the option of either continuing to use traditional C declarations or take advantage of the new style.367 Clearly, both styles need to be supported for some time due to existing C-style header-files, particularly for UNIX systems.368 In general, mixing declaration styles in a routine or even a translation unit is not recommended, as it makes a program more difficult to read.369 Therefore, it is suggested that an entire translation unit be written in one declaration style or the other.370 371 358 All type qualifiers, i.e., \lstinline@const@ and \lstinline@volatile@, are used in the normal way with the new declarations but appear left to right, e.g.: 372 359 \begin{quote2} … … 411 398 \end{quote2} 412 399 400 Unsupported are K\&R C declarations where the base type defaults to \lstinline@int@, if no type is specified\footnote{ 401 At least one type specifier shall be given in the declaration specifiers in each declaration, and in the specifier-qualifier list in each structure declaration and type name~\cite[\S~6.7.2(2)]{C11}}, 402 e.g.: 403 \begin{lstlisting} 404 x; // int x 405 *y; // int *y 406 f( p1, p2 ); // int f( int p1, int p2 ); 407 f( p1, p2 ) {} // int f( int p1, int p2 ) {} 408 \end{lstlisting} 409 410 As stated above, the two styles of declaration may appear together in the same block. 411 Therefore, a programmer has the option of either continuing to use traditional C declarations or take advantage of the new style. 412 Clearly, both styles need to be supported for some time due to existing C-style header-files, particularly for UNIX systems. 413 413 414 414 415 \section{Type Operators} … … 448 449 Declaration qualifiers can only appear at the start of a routine definition, e.g.: 449 450 \begin{lstlisting} 450 extern [ int x ] g( int y ) { }451 extern [ int x ] g( int y ) {@\,@} 451 452 \end{lstlisting} 452 453 Lastly, if there are no output parameters or input parameters, the brackets and/or parentheses must still be specified; 453 454 in both cases the type is assumed to be void as opposed to old style C defaults of int return type and unknown parameter types, respectively, as in: 454 455 \begin{lstlisting} 455 [ ] g();// no input or output parameters456 [@\,@] g(@\,@); // no input or output parameters 456 457 [ void ] g( void ); // no input or output parameters 457 458 \end{lstlisting} … … 568 569 \section{Named and Default Arguments} 569 570 570 Named and default arguments~\cite{Hardgrave76} .\footnote{571 Named and default arguments~\cite{Hardgrave76}\footnote{ 571 572 Francez~\cite{Francez77} proposed a further extension to the named-parameter passing style, which specifies what type of communication (by value, by reference, by name) the argument is passed to the routine.} 572 573 are two mechanisms to simplify routine call. … … 836 837 837 838 Currently, there are no \Index{lambda} expressions, i.e., unnamed routines because routine names are very important to properly select the correct routine. 838 839 840 \section{Incompatible}841 842 The following incompatibles exist between C and \CFA, and are similar to Annex C for \CC~\cite{ANSI14:C++}.843 844 \begin{enumerate}845 \item846 Change type of character literal \lstinline@int@ to \lstinline@char@.847 This change allows overloading differentiation argument type matching, e.g.:848 \begin{lstlisting}849 int function( int i );850 int function( char c );851 function( 'x' );852 \end{lstlisting}853 It is preferable that this call match the second version of function rather than the first. \\854 Effect on original feature: Change to semantics of well-defined feature. ISO C programs which depend on855 \begin{lstlisting}856 sizeof('x') == sizeof(int)857 \end{lstlisting}858 will not work the same as C++ programs. \\859 Difficulty of converting: Simple. \\860 How widely used: Programs which depend upon sizeof('x') are probably rare.861 862 \item863 Change: String literals made \lstinline@const@ \\864 The type of a string literal is changed from \lstinline@array of char@ to \lstinline@array of const char@.865 The type of a wide string literal is changed from \lstinline@array of wchar_t@ to \lstinline@array of const wchar_t@. \\866 Rationale: This avoids calling an inappropriate overloaded function, which might expect to be able to modify its argument.867 Effect on original feature: Change to semantics of well-defined feature. \\868 Difficulty of converting: Simple syntactic transformation, because string literals can be converted to \lstinline@char*;@ (4.2).869 The most common cases are handled by a new but deprecated standard conversion:870 \begin{lstlisting}871 char* p = "abc"; // valid in C, deprecated in C++872 char* q = expr ? "abc" : "de"; // valid in C, invalid in C++873 \end{lstlisting}874 How widely used: Programs that have a legitimate reason to treat string literals as pointers to potentially modifiable memory are probably rare.875 876 \item877 Change: C++ does not have \emph{tentative definitions} as in C.878 E.g., at file scope,879 \begin{lstlisting}880 int i;881 int i;882 \end{lstlisting}883 is valid in C, invalid in C++.884 This makes it impossible to define mutually referential file-local static885 objects, if initializers are restricted to the syntactic forms of C. For example,886 \begin{lstlisting}887 struct X { int i; struct X *next; };888 static struct X a;889 static struct X b = { 0, &a };890 static struct X a = { 1, &b };891 \end{lstlisting}892 Rationale: This avoids having different initialization rules for builtin types and userdefined types.893 Effect on original feature: Deletion of semantically welldefined feature. \\894 Difficulty of converting: Semantic transformation.895 In C++, the initializer for one of a set of mutuallyreferential filelocal static objects must invoke a function call to achieve the initialization.896 How widely used: Seldom.897 898 \item899 Change: A struct is a scope in C++, not in C \\900 Rationale: Class scope is crucial to C++, and a struct is a class. \\901 Effect on original feature: Change to semantics of well-defined feature. \\902 Difficulty of converting: Semantic transformation. \\903 How widely used: C programs use struct extremely frequently, but the change is only noticeable when struct, enumeration, or enumerator names are referred to outside the struct.904 The latter is probably rare.905 906 \CFA is C \emph{incompatible} on this issue, and provides semantics similar to \CC.907 Nested types are not hoisted and can be referenced using the field selection operator ``\lstinline@.@'', unlike the \CC scope-resolution operator ``\lstinline@::@''.908 Given that nested types in C are equivalent to not using them, i.e., they are essentially useless, it is unlikely there are any realistic usages that break because of this incompatibility.909 910 911 \item912 Change: In C++, the name of a nested class is local to its enclosing class.913 In C the name of the nested class belongs to the same scope as the name of the outermost enclosing class914 Example:915 \begin{lstlisting}916 struct X {917 struct Y { /* ... */ } y;918 };919 struct Y yy; // valid C, invalid C++920 \end{lstlisting}921 Rationale: C++ classes have member functions which require that classes establish scopes. The C rule922 would leave classes as an incomplete scope mechanism which would prevent C++ programmers from maintaining923 locality within a class. A coherent set of scope rules for C++ based on the C rule would be very924 complicated and C++ programmers would be unable to predict reliably the meanings of nontrivial examples925 involving nested or local functions.926 Effect on original feature: Change of semantics of welldefined927 feature.928 Difficulty of converting: Semantic transformation. To make the struct type name visible in the scope of929 the enclosing struct, the struct tag could be declared in the scope of the enclosing struct, before the enclosing930 struct is defined. Example:931 \begin{lstlisting}932 struct Y; // struct Y and struct X are at the same scope933 struct X {934 struct Y { /* ... */ } y;935 };936 \end{lstlisting}937 All the definitions of C struct types enclosed in other struct definitions and accessed outside the scope of938 the enclosing struct could be exported to the scope of the enclosing struct. Note: this is a consequence of939 the difference in scope rules, which is documented in 3.3.940 How widely used: Seldom.941 \end{enumerate}942 839 943 840 … … 4061 3958 4062 3959 3960 \section{Incompatible} 3961 3962 The following incompatibles exist between C and \CFA, and are similar to Annex C for \CC~\cite{ANSI14:C++}. 3963 3964 \begin{enumerate} 3965 \item 3966 Change type of character literal \lstinline@int@ to \lstinline@char@. 3967 This change allows overloading differentiation argument type matching, e.g.: 3968 \begin{lstlisting} 3969 int function( int i ); 3970 int function( char c ); 3971 function( 'x' ); 3972 \end{lstlisting} 3973 It is preferable that this call match the second version of function rather than the first. \\ 3974 Effect on original feature: Change to semantics of well-defined feature. ISO C programs which depend on 3975 \begin{lstlisting} 3976 sizeof('x') == sizeof(int) 3977 \end{lstlisting} 3978 will not work the same as C++ programs. \\ 3979 Difficulty of converting: Simple. \\ 3980 How widely used: Programs which depend upon sizeof('x') are probably rare. 3981 3982 \item 3983 Change: String literals made \lstinline@const@ \\ 3984 The type of a string literal is changed from \lstinline@array of char@ to \lstinline@array of const char@. 3985 The type of a wide string literal is changed from \lstinline@array of wchar_t@ to \lstinline@array of const wchar_t@. \\ 3986 Rationale: This avoids calling an inappropriate overloaded function, which might expect to be able to modify its argument. 3987 Effect on original feature: Change to semantics of well-defined feature. \\ 3988 Difficulty of converting: Simple syntactic transformation, because string literals can be converted to \lstinline@char*;@ (4.2). 3989 The most common cases are handled by a new but deprecated standard conversion: 3990 \begin{lstlisting} 3991 char* p = "abc"; // valid in C, deprecated in C++ 3992 char* q = expr ? "abc" : "de"; // valid in C, invalid in C++ 3993 \end{lstlisting} 3994 How widely used: Programs that have a legitimate reason to treat string literals as pointers to potentially modifiable memory are probably rare. 3995 3996 \item 3997 Change: C++ does not have \emph{tentative definitions} as in C. 3998 E.g., at file scope, 3999 \begin{lstlisting} 4000 int i; 4001 int i; 4002 \end{lstlisting} 4003 is valid in C, invalid in C++. 4004 This makes it impossible to define mutually referential file-local static 4005 objects, if initializers are restricted to the syntactic forms of C. For example, 4006 \begin{lstlisting} 4007 struct X { int i; struct X *next; }; 4008 static struct X a; 4009 static struct X b = { 0, &a }; 4010 static struct X a = { 1, &b }; 4011 \end{lstlisting} 4012 Rationale: This avoids having different initialization rules for builtin types and userdefined types. 4013 Effect on original feature: Deletion of semantically welldefined feature. \\ 4014 Difficulty of converting: Semantic transformation. 4015 In C++, the initializer for one of a set of mutuallyreferential filelocal static objects must invoke a function call to achieve the initialization. 4016 How widely used: Seldom. 4017 4018 \item 4019 Change: A struct is a scope in C++, not in C \\ 4020 Rationale: Class scope is crucial to C++, and a struct is a class. \\ 4021 Effect on original feature: Change to semantics of well-defined feature. \\ 4022 Difficulty of converting: Semantic transformation. \\ 4023 How widely used: C programs use struct extremely frequently, but the change is only noticeable when struct, enumeration, or enumerator names are referred to outside the struct. 4024 The latter is probably rare. 4025 4026 \CFA is C \emph{incompatible} on this issue, and provides semantics similar to \CC. 4027 Nested types are not hoisted and can be referenced using the field selection operator ``\lstinline@.@'', unlike the \CC scope-resolution operator ``\lstinline@::@''. 4028 Given that nested types in C are equivalent to not using them, i.e., they are essentially useless, it is unlikely there are any realistic usages that break because of this incompatibility. 4029 4030 4031 \item 4032 Change: In C++, the name of a nested class is local to its enclosing class. 4033 In C the name of the nested class belongs to the same scope as the name of the outermost enclosing class 4034 Example: 4035 \begin{lstlisting} 4036 struct X { 4037 struct Y { /* ... */ } y; 4038 }; 4039 struct Y yy; // valid C, invalid C++ 4040 \end{lstlisting} 4041 Rationale: C++ classes have member functions which require that classes establish scopes. The C rule 4042 would leave classes as an incomplete scope mechanism which would prevent C++ programmers from maintaining 4043 locality within a class. A coherent set of scope rules for C++ based on the C rule would be very 4044 complicated and C++ programmers would be unable to predict reliably the meanings of nontrivial examples 4045 involving nested or local functions. 4046 Effect on original feature: Change of semantics of welldefined 4047 feature. 4048 Difficulty of converting: Semantic transformation. To make the struct type name visible in the scope of 4049 the enclosing struct, the struct tag could be declared in the scope of the enclosing struct, before the enclosing 4050 struct is defined. Example: 4051 \begin{lstlisting} 4052 struct Y; // struct Y and struct X are at the same scope 4053 struct X { 4054 struct Y { /* ... */ } y; 4055 }; 4056 \end{lstlisting} 4057 All the definitions of C struct types enclosed in other struct definitions and accessed outside the scope of 4058 the enclosing struct could be exported to the scope of the enclosing struct. Note: this is a consequence of 4059 the difference in scope rules, which is documented in 3.3. 4060 How widely used: Seldom. 4061 \end{enumerate} 4062 4063 4063 4064 \section{I/O Library} 4064 4065 \label{s:IOLibrary} -
src/GenPoly/Box.cc
r37218fc r37f0da8 205 205 ObjectDecl *makeTemporary( Type *type ); 206 206 207 std::map< std::string, DeclarationWithType *> assignOps;///< Currently known type variable assignment operators207 ScopedMap< std::string, DeclarationWithType *> assignOps; ///< Currently known type variable assignment operators 208 208 ResolvExpr::TypeMap< DeclarationWithType > scopedAssignOps; ///< Currently known assignment operators 209 209 ScopedMap< std::string, DeclarationWithType* > adapters; ///< Set of adapter functions in the current scope … … 292 292 /// adds type parameters to the layout call; will generate the appropriate parameters if needed 293 293 void addOtypeParamsToLayoutCall( UntypedExpr *layoutCall, const std::list< Type* > &otypeParams ); 294 295 /// Enters a new scope for type-variables, adding the type variables from ty 296 void beginTypeScope( Type *ty ); 297 /// Exits the type-variable scope 298 void endTypeScope(); 294 299 295 300 ScopedSet< std::string > knownLayouts; ///< Set of generic type layouts known in the current scope, indexed by sizeofName … … 385 390 for ( std::list< TypeDecl* >::const_iterator param = otypeParams.begin(); param != otypeParams.end(); ++param ) { 386 391 TypeInstType paramType( Type::Qualifiers(), (*param)->get_name(), *param ); 387 layoutFnType->get_parameters().push_back( new ObjectDecl( sizeofName( ¶mType ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignType.clone(), 0 ) ); 388 layoutFnType->get_parameters().push_back( new ObjectDecl( alignofName( ¶mType ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignType.clone(), 0 ) ); 392 std::string paramName = mangleType( ¶mType ); 393 layoutFnType->get_parameters().push_back( new ObjectDecl( sizeofName( paramName ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignType.clone(), 0 ) ); 394 layoutFnType->get_parameters().push_back( new ObjectDecl( alignofName( paramName ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignType.clone(), 0 ) ); 389 395 } 390 396 } 391 397 392 398 /// Builds a layout function declaration 393 FunctionDecl *buildLayoutFunctionDecl( const std::string &typeName, unsigned int functionNesting, FunctionType *layoutFnType ) {399 FunctionDecl *buildLayoutFunctionDecl( AggregateDecl *typeDecl, unsigned int functionNesting, FunctionType *layoutFnType ) { 394 400 // Routines at global scope marked "static" to prevent multiple definitions is separate translation units 395 401 // because each unit generates copies of the default routines for each aggregate. 396 402 FunctionDecl *layoutDecl = new FunctionDecl( 397 "__layoutof_" + typeName, functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, layoutFnType, new CompoundStmt( noLabels ), true, false );403 layoutofName( typeDecl ), functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, layoutFnType, new CompoundStmt( noLabels ), true, false ); 398 404 layoutDecl->fixUniqueId(); 399 405 return layoutDecl; … … 462 468 PointerType *sizeAlignOutType = new PointerType( Type::Qualifiers(), sizeAlignType ); 463 469 464 ObjectDecl *sizeParam = new ObjectDecl( "__sizeof_" + structDecl->get_name(), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 );470 ObjectDecl *sizeParam = new ObjectDecl( sizeofName( structDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 ); 465 471 layoutFnType->get_parameters().push_back( sizeParam ); 466 ObjectDecl *alignParam = new ObjectDecl( "__alignof_" + structDecl->get_name(), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType->clone(), 0 );472 ObjectDecl *alignParam = new ObjectDecl( alignofName( structDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType->clone(), 0 ); 467 473 layoutFnType->get_parameters().push_back( alignParam ); 468 ObjectDecl *offsetParam = new ObjectDecl( "__offsetof_" + structDecl->get_name(), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType->clone(), 0 );474 ObjectDecl *offsetParam = new ObjectDecl( offsetofName( structDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType->clone(), 0 ); 469 475 layoutFnType->get_parameters().push_back( offsetParam ); 470 476 addOtypeParams( layoutFnType, otypeParams ); 471 477 472 478 // build function decl 473 FunctionDecl *layoutDecl = buildLayoutFunctionDecl( structDecl ->get_name(), functionNesting, layoutFnType );479 FunctionDecl *layoutDecl = buildLayoutFunctionDecl( structDecl, functionNesting, layoutFnType ); 474 480 475 481 // calculate struct layout in function body … … 523 529 PointerType *sizeAlignOutType = new PointerType( Type::Qualifiers(), sizeAlignType ); 524 530 525 ObjectDecl *sizeParam = new ObjectDecl( "__sizeof_" + unionDecl->get_name(), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 );531 ObjectDecl *sizeParam = new ObjectDecl( sizeofName( unionDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType, 0 ); 526 532 layoutFnType->get_parameters().push_back( sizeParam ); 527 ObjectDecl *alignParam = new ObjectDecl( "__alignof_" + unionDecl->get_name(), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType->clone(), 0 );533 ObjectDecl *alignParam = new ObjectDecl( alignofName( unionDecl->get_name() ), DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, sizeAlignOutType->clone(), 0 ); 528 534 layoutFnType->get_parameters().push_back( alignParam ); 529 535 addOtypeParams( layoutFnType, otypeParams ); 530 536 531 537 // build function decl 532 FunctionDecl *layoutDecl = buildLayoutFunctionDecl( unionDecl ->get_name(), functionNesting, layoutFnType );538 FunctionDecl *layoutDecl = buildLayoutFunctionDecl( unionDecl, functionNesting, layoutFnType ); 533 539 534 540 // calculate union layout in function body … … 663 669 if ( functionDecl->get_statements() ) { // empty routine body ? 664 670 doBeginScope(); 665 TyVarMap oldtyVars = scopeTyVars;666 std::map< std::string, DeclarationWithType *> oldassignOps = assignOps;671 scopeTyVars.beginScope(); 672 assignOps.beginScope(); 667 673 DeclarationWithType *oldRetval = retval; 668 674 bool oldUseRetval = useRetval; … … 705 711 functionDecl->set_statements( functionDecl->get_statements()->acceptMutator( *this ) ); 706 712 707 scopeTyVars = oldtyVars; 708 assignOps = oldassignOps; 709 // std::cerr << "end FunctionDecl: "; 710 // for ( TyVarMap::iterator i = scopeTyVars.begin(); i != scopeTyVars.end(); ++i ) { 711 // std::cerr << i->first << " "; 712 // } 713 // std::cerr << "\n"; 713 scopeTyVars.endScope(); 714 assignOps.endScope(); 714 715 retval = oldRetval; 715 716 useRetval = oldUseRetval; … … 745 746 746 747 void Pass1::passArgTypeVars( ApplicationExpr *appExpr, Type *parmType, Type *argBaseType, std::list< Expression *>::iterator &arg, const TyVarMap &exprTyVars, std::set< std::string > &seenTypes ) { 747 Type *poly Base = hasPolyBase( parmType, exprTyVars );748 if ( poly Base && ! dynamic_cast< TypeInstType* >( polyBase ) ) {749 std::string sizeName = sizeofName( polyBase );750 if ( seenTypes.count( sizeName ) ) return;748 Type *polyType = isPolyType( parmType, exprTyVars ); 749 if ( polyType && ! dynamic_cast< TypeInstType* >( polyType ) ) { 750 std::string typeName = mangleType( polyType ); 751 if ( seenTypes.count( typeName ) ) return; 751 752 752 753 arg = appExpr->get_args().insert( arg, new SizeofExpr( argBaseType->clone() ) ); … … 754 755 arg = appExpr->get_args().insert( arg, new AlignofExpr( argBaseType->clone() ) ); 755 756 arg++; 756 if ( dynamic_cast< StructInstType* >( poly Base ) ) {757 if ( dynamic_cast< StructInstType* >( polyType ) ) { 757 758 if ( StructInstType *argBaseStructType = dynamic_cast< StructInstType* >( argBaseType ) ) { 758 759 // zero-length arrays are forbidden by C, so don't pass offset for empty struct … … 766 767 } 767 768 768 seenTypes.insert( sizeName );769 seenTypes.insert( typeName ); 769 770 } 770 771 } … … 1124 1125 addAssign->get_args().push_back( appExpr->get_args().front() ); 1125 1126 } // if 1126 addAssign->get_args().push_back( new NameExpr( sizeofName( polyType) ) );1127 addAssign->get_args().push_back( new NameExpr( sizeofName( mangleType( polyType ) ) ) ); 1127 1128 addAssign->get_results().front() = appExpr->get_results().front()->clone(); 1128 1129 if ( appExpr->get_env() ) { … … 1151 1152 UntypedExpr *multiply = new UntypedExpr( new NameExpr( "?*?" ) ); 1152 1153 multiply->get_args().push_back( appExpr->get_args().back() ); 1153 multiply->get_args().push_back( new NameExpr( sizeofName( baseType1) ) );1154 multiply->get_args().push_back( new SizeofExpr( baseType1->clone() ) ); 1154 1155 ret->get_args().push_back( appExpr->get_args().front() ); 1155 1156 ret->get_args().push_back( multiply ); … … 1157 1158 UntypedExpr *multiply = new UntypedExpr( new NameExpr( "?*?" ) ); 1158 1159 multiply->get_args().push_back( appExpr->get_args().front() ); 1159 multiply->get_args().push_back( new NameExpr( sizeofName( baseType2) ) );1160 multiply->get_args().push_back( new SizeofExpr( baseType2->clone() ) ); 1160 1161 ret->get_args().push_back( multiply ); 1161 1162 ret->get_args().push_back( appExpr->get_args().back() ); … … 1220 1221 UntypedExpr *divide = new UntypedExpr( new NameExpr( "?/?" ) ); 1221 1222 divide->get_args().push_back( appExpr ); 1222 divide->get_args().push_back( new NameExpr( sizeofName( baseType1) ) );1223 divide->get_args().push_back( new SizeofExpr( baseType1->clone() ) ); 1223 1224 divide->get_results().push_front( appExpr->get_results().front()->clone() ); 1224 1225 if ( appExpr->get_env() ) { … … 1230 1231 UntypedExpr *multiply = new UntypedExpr( new NameExpr( "?*?" ) ); 1231 1232 multiply->get_args().push_back( appExpr->get_args().back() ); 1232 multiply->get_args().push_back( new NameExpr( sizeofName( baseType1) ) );1233 multiply->get_args().push_back( new SizeofExpr( baseType1->clone() ) ); 1233 1234 appExpr->get_args().back() = multiply; 1234 1235 } else if ( baseType2 ) { 1235 1236 UntypedExpr *multiply = new UntypedExpr( new NameExpr( "?*?" ) ); 1236 1237 multiply->get_args().push_back( appExpr->get_args().front() ); 1237 multiply->get_args().push_back( new NameExpr( sizeofName( baseType2) ) );1238 multiply->get_args().push_back( new SizeofExpr( baseType2->clone() ) ); 1238 1239 appExpr->get_args().front() = multiply; 1239 1240 } // if … … 1245 1246 UntypedExpr *multiply = new UntypedExpr( new NameExpr( "?*?" ) ); 1246 1247 multiply->get_args().push_back( appExpr->get_args().back() ); 1247 multiply->get_args().push_back( new NameExpr( sizeofName( baseType) ) );1248 multiply->get_args().push_back( new SizeofExpr( baseType->clone() ) ); 1248 1249 appExpr->get_args().back() = multiply; 1249 1250 } // if … … 1282 1283 std::list< Expression *>::iterator paramBegin = appExpr->get_args().begin(); 1283 1284 1284 TyVarMap exprTyVars ;1285 TyVarMap exprTyVars( (TypeDecl::Kind)-1 ); 1285 1286 makeTyVarMap( function, exprTyVars ); 1286 1287 ReferenceToType *polyRetType = isPolyRet( function ); … … 1305 1306 1306 1307 boxParams( appExpr, function, arg, exprTyVars ); 1307 1308 1308 passAdapters( appExpr, function, exprTyVars ); 1309 1309 … … 1385 1385 if ( TypeInstType *typeInst = dynamic_cast< TypeInstType *>( retval->get_type() ) ) { 1386 1386 // find assignment operator for type variable 1387 std::map< std::string, DeclarationWithType *>::const_iterator assignIter = assignOps.find( typeInst->get_name() );1387 ScopedMap< std::string, DeclarationWithType *>::const_iterator assignIter = assignOps.find( typeInst->get_name() ); 1388 1388 if ( assignIter == assignOps.end() ) { 1389 1389 throw SemanticError( "Attempt to return dtype or ftype object in ", returnStmt->get_expr() ); … … 1419 1419 DeclarationWithType *assertAssign = 0; 1420 1420 if ( TypeInstType *formalTypeInstType = dynamic_cast< TypeInstType* >( formalType ) ) { 1421 std::map< std::string, DeclarationWithType *>::const_iterator assertAssignIt = assignOps.find( formalTypeInstType->get_name() );1421 ScopedMap< std::string, DeclarationWithType *>::const_iterator assertAssignIt = assignOps.find( formalTypeInstType->get_name() ); 1422 1422 if ( assertAssignIt == assignOps.end() ) { 1423 1423 throw SemanticError( "No assignment operation found for ", formalTypeInstType ); … … 1460 1460 1461 1461 Type * Pass1::mutate( PointerType *pointerType ) { 1462 TyVarMap oldtyVars = scopeTyVars;1462 scopeTyVars.beginScope(); 1463 1463 makeTyVarMap( pointerType, scopeTyVars ); 1464 1464 1465 1465 Type *ret = Mutator::mutate( pointerType ); 1466 1466 1467 scopeTyVars = oldtyVars;1467 scopeTyVars.endScope(); 1468 1468 return ret; 1469 1469 } 1470 1470 1471 1471 Type * Pass1::mutate( FunctionType *functionType ) { 1472 TyVarMap oldtyVars = scopeTyVars;1472 scopeTyVars.beginScope(); 1473 1473 makeTyVarMap( functionType, scopeTyVars ); 1474 1474 1475 1475 Type *ret = Mutator::mutate( functionType ); 1476 1476 1477 scopeTyVars = oldtyVars;1477 scopeTyVars.endScope(); 1478 1478 return ret; 1479 1479 } … … 1540 1540 1541 1541 Type * Pass2::mutate( PointerType *pointerType ) { 1542 TyVarMap oldtyVars = scopeTyVars;1542 scopeTyVars.beginScope(); 1543 1543 makeTyVarMap( pointerType, scopeTyVars ); 1544 1544 1545 1545 Type *ret = Mutator::mutate( pointerType ); 1546 1546 1547 scopeTyVars = oldtyVars;1547 scopeTyVars.endScope(); 1548 1548 return ret; 1549 1549 } 1550 1550 1551 1551 Type *Pass2::mutate( FunctionType *funcType ) { 1552 TyVarMap oldtyVars = scopeTyVars;1552 scopeTyVars.beginScope(); 1553 1553 makeTyVarMap( funcType, scopeTyVars ); 1554 1554 … … 1572 1572 if ( (*tyParm)->get_kind() == TypeDecl::Any ) { 1573 1573 TypeInstType parmType( Type::Qualifiers(), (*tyParm)->get_name(), *tyParm ); 1574 std::string parmName = mangleType( &parmType ); 1574 1575 1575 1576 sizeParm = newObj.clone(); 1576 sizeParm->set_name( sizeofName( &parmType ) );1577 sizeParm->set_name( sizeofName( parmName ) ); 1577 1578 last = funcType->get_parameters().insert( last, sizeParm ); 1578 1579 ++last; 1579 1580 1580 1581 alignParm = newObj.clone(); 1581 alignParm->set_name( alignofName( &parmType ) );1582 alignParm->set_name( alignofName( parmName ) ); 1582 1583 last = funcType->get_parameters().insert( last, alignParm ); 1583 1584 ++last; … … 1594 1595 std::set< std::string > seenTypes; // sizeofName for generic types we've seen 1595 1596 for ( std::list< DeclarationWithType* >::const_iterator fnParm = last; fnParm != funcType->get_parameters().end(); ++fnParm ) { 1596 Type *poly Base = hasPolyBase( (*fnParm)->get_type(), scopeTyVars );1597 if ( poly Base && ! dynamic_cast< TypeInstType* >( polyBase ) ) {1598 std::string sizeName = sizeofName( polyBase );1599 if ( seenTypes.count( sizeName ) ) continue;1597 Type *polyType = isPolyType( (*fnParm)->get_type(), scopeTyVars ); 1598 if ( polyType && ! dynamic_cast< TypeInstType* >( polyType ) ) { 1599 std::string typeName = mangleType( polyType ); 1600 if ( seenTypes.count( typeName ) ) continue; 1600 1601 1601 1602 ObjectDecl *sizeParm, *alignParm, *offsetParm; 1602 1603 sizeParm = newObj.clone(); 1603 sizeParm->set_name( size Name);1604 sizeParm->set_name( sizeofName( typeName ) ); 1604 1605 last = funcType->get_parameters().insert( last, sizeParm ); 1605 1606 ++last; 1606 1607 1607 1608 alignParm = newObj.clone(); 1608 alignParm->set_name( alignofName( polyBase ) );1609 alignParm->set_name( alignofName( typeName ) ); 1609 1610 last = funcType->get_parameters().insert( last, alignParm ); 1610 1611 ++last; 1611 1612 1612 if ( StructInstType *polyBaseStruct = dynamic_cast< StructInstType* >( poly Base ) ) {1613 if ( StructInstType *polyBaseStruct = dynamic_cast< StructInstType* >( polyType ) ) { 1613 1614 // NOTE zero-length arrays are illegal in C, so empty structs have no offset array 1614 1615 if ( ! polyBaseStruct->get_baseStruct()->get_members().empty() ) { 1615 1616 offsetParm = newPtr.clone(); 1616 offsetParm->set_name( offsetofName( polyBase ) );1617 offsetParm->set_name( offsetofName( typeName ) ); 1617 1618 last = funcType->get_parameters().insert( last, offsetParm ); 1618 1619 ++last; … … 1620 1621 } 1621 1622 1622 seenTypes.insert( sizeName );1623 seenTypes.insert( typeName ); 1623 1624 } 1624 1625 } … … 1630 1631 mutateAll( funcType->get_parameters(), *this ); 1631 1632 1632 scopeTyVars = oldtyVars;1633 scopeTyVars.endScope(); 1633 1634 return funcType; 1634 1635 } … … 1823 1824 } 1824 1825 1825 ////////////////////////////////////////// MemberExprFixer //////////////////////////////////////////////////// 1826 ////////////////////////////////////////// PolyGenericCalculator //////////////////////////////////////////////////// 1827 1828 void PolyGenericCalculator::beginTypeScope( Type *ty ) { 1829 scopeTyVars.beginScope(); 1830 makeTyVarMap( ty, scopeTyVars ); 1831 } 1832 1833 void PolyGenericCalculator::endTypeScope() { 1834 scopeTyVars.endScope(); 1835 } 1826 1836 1827 1837 template< typename DeclClass > 1828 1838 DeclClass * PolyGenericCalculator::handleDecl( DeclClass *decl, Type *type ) { 1829 TyVarMap oldtyVars = scopeTyVars; 1830 makeTyVarMap( type, scopeTyVars ); 1839 beginTypeScope( type ); 1840 knownLayouts.beginScope(); 1841 knownOffsets.beginScope(); 1831 1842 1832 1843 DeclClass *ret = static_cast< DeclClass *>( Mutator::mutate( decl ) ); 1833 1844 1834 scopeTyVars = oldtyVars; 1845 knownOffsets.endScope(); 1846 knownLayouts.endScope(); 1847 endTypeScope(); 1835 1848 return ret; 1836 1849 } … … 1854 1867 1855 1868 Type * PolyGenericCalculator::mutate( PointerType *pointerType ) { 1856 TyVarMap oldtyVars = scopeTyVars; 1857 makeTyVarMap( pointerType, scopeTyVars ); 1869 beginTypeScope( pointerType ); 1858 1870 1859 1871 Type *ret = Mutator::mutate( pointerType ); 1860 1872 1861 scopeTyVars = oldtyVars;1873 endTypeScope(); 1862 1874 return ret; 1863 1875 } 1864 1876 1865 1877 Type * PolyGenericCalculator::mutate( FunctionType *funcType ) { 1866 TyVarMap oldtyVars = scopeTyVars; 1867 makeTyVarMap( funcType, scopeTyVars ); 1878 beginTypeScope( funcType ); 1868 1879 1869 1880 // make sure that any type information passed into the function is accounted for 1870 1881 for ( std::list< DeclarationWithType* >::const_iterator fnParm = funcType->get_parameters().begin(); fnParm != funcType->get_parameters().end(); ++fnParm ) { 1871 1882 // condition here duplicates that in Pass2::mutate( FunctionType* ) 1872 Type *poly Base = hasPolyBase( (*fnParm)->get_type(), scopeTyVars );1873 if ( poly Base && ! dynamic_cast< TypeInstType* >( polyBase ) ) {1874 knownLayouts.insert( sizeofName( polyBase ) );1883 Type *polyType = isPolyType( (*fnParm)->get_type(), scopeTyVars ); 1884 if ( polyType && ! dynamic_cast< TypeInstType* >( polyType ) ) { 1885 knownLayouts.insert( mangleType( polyType ) ); 1875 1886 } 1876 1887 } … … 1878 1889 Type *ret = Mutator::mutate( funcType ); 1879 1890 1880 scopeTyVars = oldtyVars;1891 endTypeScope(); 1881 1892 return ret; 1882 1893 } … … 1889 1900 Type *declType = objectDecl->get_type(); 1890 1901 UntypedExpr *alloc = new UntypedExpr( new NameExpr( "__builtin_alloca" ) ); 1891 alloc->get_args().push_back( new NameExpr( sizeofName( declType) ) );1902 alloc->get_args().push_back( new NameExpr( sizeofName( mangleType( declType ) ) ) ); 1892 1903 1893 1904 delete objectDecl->get_init(); … … 1921 1932 ConstantExpr *fieldIndex = new ConstantExpr( Constant( new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), offset_namer.str() ) ); 1922 1933 UntypedExpr *fieldOffset = new UntypedExpr( new NameExpr( "?[?]" ) ); 1923 fieldOffset->get_args().push_back( new NameExpr( offsetofName( objectType) ) );1934 fieldOffset->get_args().push_back( new NameExpr( offsetofName( mangleType( objectType ) ) ) ); 1924 1935 fieldOffset->get_args().push_back( fieldIndex ); 1925 1936 return fieldOffset; … … 1995 2006 if ( findGeneric( *param ) ) { 1996 2007 // push size/align vars for a generic parameter back 1997 layoutCall->get_args().push_back( new NameExpr( sizeofName( *param ) ) ); 1998 layoutCall->get_args().push_back( new NameExpr( alignofName( *param ) ) ); 2008 std::string paramName = mangleType( *param ); 2009 layoutCall->get_args().push_back( new NameExpr( sizeofName( paramName ) ) ); 2010 layoutCall->get_args().push_back( new NameExpr( alignofName( paramName ) ) ); 1999 2011 } else { 2000 2012 layoutCall->get_args().push_back( new SizeofExpr( (*param)->clone() ) ); … … 2040 2052 } else if ( StructInstType *structTy = dynamic_cast< StructInstType* >( ty ) ) { 2041 2053 // check if this type already has a layout generated for it 2042 std::string sizeName = sizeofName( ty );2043 if ( knownLayouts.find( sizeName ) != knownLayouts.end() ) return true;2054 std::string typeName = mangleType( ty ); 2055 if ( knownLayouts.find( typeName ) != knownLayouts.end() ) return true; 2044 2056 2045 2057 // check if any of the type parameters have dynamic layout; if none do, this type is (or will be) monomorphized … … 2048 2060 2049 2061 // insert local variables for layout and generate call to layout function 2050 knownLayouts.insert( sizeName ); // done early so as not to interfere with the later addition of parameters to the layout call2062 knownLayouts.insert( typeName ); // done early so as not to interfere with the later addition of parameters to the layout call 2051 2063 Type *layoutType = new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 2052 2064 … … 2054 2066 if ( n_members == 0 ) { 2055 2067 // all empty structs have the same layout - size 1, align 1 2056 makeVar( size Name, layoutType, new SingleInit( new ConstantExpr( Constant::from( (unsigned long)1 ) ) ) );2057 makeVar( alignofName( ty ), layoutType->clone(), new SingleInit( new ConstantExpr( Constant::from( (unsigned long)1 ) ) ) );2068 makeVar( sizeofName( typeName ), layoutType, new SingleInit( new ConstantExpr( Constant::from( (unsigned long)1 ) ) ) ); 2069 makeVar( alignofName( typeName ), layoutType->clone(), new SingleInit( new ConstantExpr( Constant::from( (unsigned long)1 ) ) ) ); 2058 2070 // NOTE zero-length arrays are forbidden in C, so empty structs have no offsetof array 2059 2071 } else { 2060 ObjectDecl *sizeVar = makeVar( size Name, layoutType );2061 ObjectDecl *alignVar = makeVar( alignofName( ty ), layoutType->clone() );2062 ObjectDecl *offsetVar = makeVar( offsetofName( ty ), new ArrayType( Type::Qualifiers(), layoutType->clone(), new ConstantExpr( Constant::from( n_members ) ), false, false ) );2072 ObjectDecl *sizeVar = makeVar( sizeofName( typeName ), layoutType ); 2073 ObjectDecl *alignVar = makeVar( alignofName( typeName ), layoutType->clone() ); 2074 ObjectDecl *offsetVar = makeVar( offsetofName( typeName ), new ArrayType( Type::Qualifiers(), layoutType->clone(), new ConstantExpr( Constant::from( n_members ) ), false, false ) ); 2063 2075 2064 2076 // generate call to layout function 2065 UntypedExpr *layoutCall = new UntypedExpr( new NameExpr( "__layoutof_" + structTy->get_baseStruct()->get_name() ) );2077 UntypedExpr *layoutCall = new UntypedExpr( new NameExpr( layoutofName( structTy->get_baseStruct() ) ) ); 2066 2078 layoutCall->get_args().push_back( new AddressExpr( new VariableExpr( sizeVar ) ) ); 2067 2079 layoutCall->get_args().push_back( new AddressExpr( new VariableExpr( alignVar ) ) ); … … 2075 2087 } else if ( UnionInstType *unionTy = dynamic_cast< UnionInstType* >( ty ) ) { 2076 2088 // check if this type already has a layout generated for it 2077 std::string sizeName = sizeofName( ty );2078 if ( knownLayouts.find( sizeName ) != knownLayouts.end() ) return true;2089 std::string typeName = mangleType( ty ); 2090 if ( knownLayouts.find( typeName ) != knownLayouts.end() ) return true; 2079 2091 2080 2092 // check if any of the type parameters have dynamic layout; if none do, this type is (or will be) monomorphized … … 2083 2095 2084 2096 // insert local variables for layout and generate call to layout function 2085 knownLayouts.insert( sizeName ); // done early so as not to interfere with the later addition of parameters to the layout call2097 knownLayouts.insert( typeName ); // done early so as not to interfere with the later addition of parameters to the layout call 2086 2098 Type *layoutType = new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ); 2087 2099 2088 ObjectDecl *sizeVar = makeVar( size Name, layoutType );2089 ObjectDecl *alignVar = makeVar( alignofName( ty ), layoutType->clone() );2100 ObjectDecl *sizeVar = makeVar( sizeofName( typeName ), layoutType ); 2101 ObjectDecl *alignVar = makeVar( alignofName( typeName ), layoutType->clone() ); 2090 2102 2091 2103 // generate call to layout function 2092 UntypedExpr *layoutCall = new UntypedExpr( new NameExpr( "__layoutof_" + unionTy->get_baseUnion()->get_name() ) );2104 UntypedExpr *layoutCall = new UntypedExpr( new NameExpr( layoutofName( unionTy->get_baseUnion() ) ) ); 2093 2105 layoutCall->get_args().push_back( new AddressExpr( new VariableExpr( sizeVar ) ) ); 2094 2106 layoutCall->get_args().push_back( new AddressExpr( new VariableExpr( alignVar ) ) ); … … 2106 2118 Type *ty = sizeofExpr->get_type(); 2107 2119 if ( findGeneric( ty ) ) { 2108 Expression *ret = new NameExpr( sizeofName( ty) );2120 Expression *ret = new NameExpr( sizeofName( mangleType( ty ) ) ); 2109 2121 delete sizeofExpr; 2110 2122 return ret; … … 2116 2128 Type *ty = alignofExpr->get_type(); 2117 2129 if ( findGeneric( ty ) ) { 2118 Expression *ret = new NameExpr( alignofName( ty) );2130 Expression *ret = new NameExpr( alignofName( mangleType( ty ) ) ); 2119 2131 delete alignofExpr; 2120 2132 return ret; … … 2154 2166 if ( findGeneric( ty ) ) { 2155 2167 // pull offset back from generated type information 2156 ret = new NameExpr( offsetofName( ty) );2168 ret = new NameExpr( offsetofName( mangleType( ty ) ) ); 2157 2169 } else { 2158 std::string offsetName = offsetofName( ty);2170 std::string offsetName = offsetofName( mangleType( ty ) ); 2159 2171 if ( knownOffsets.find( offsetName ) != knownOffsets.end() ) { 2160 2172 // use the already-generated offsets for this type … … 2196 2208 void PolyGenericCalculator::doEndScope() { 2197 2209 knownLayouts.endScope(); 2198 knownOffsets. beginScope();2210 knownOffsets.endScope(); 2199 2211 } 2200 2212 … … 2203 2215 template< typename DeclClass > 2204 2216 DeclClass * Pass3::handleDecl( DeclClass *decl, Type *type ) { 2205 TyVarMap oldtyVars = scopeTyVars;2217 scopeTyVars.beginScope(); 2206 2218 makeTyVarMap( type, scopeTyVars ); 2207 2219 … … 2209 2221 ScrubTyVars::scrub( decl, scopeTyVars ); 2210 2222 2211 scopeTyVars = oldtyVars;2223 scopeTyVars.endScope(); 2212 2224 return ret; 2213 2225 } … … 2239 2251 2240 2252 Type * Pass3::mutate( PointerType *pointerType ) { 2241 TyVarMap oldtyVars = scopeTyVars;2253 scopeTyVars.beginScope(); 2242 2254 makeTyVarMap( pointerType, scopeTyVars ); 2243 2255 2244 2256 Type *ret = Mutator::mutate( pointerType ); 2245 2257 2246 scopeTyVars = oldtyVars;2258 scopeTyVars.endScope(); 2247 2259 return ret; 2248 2260 } 2249 2261 2250 2262 Type * Pass3::mutate( FunctionType *functionType ) { 2251 TyVarMap oldtyVars = scopeTyVars;2263 scopeTyVars.beginScope(); 2252 2264 makeTyVarMap( functionType, scopeTyVars ); 2253 2265 2254 2266 Type *ret = Mutator::mutate( functionType ); 2255 2267 2256 scopeTyVars = oldtyVars;2268 scopeTyVars.endScope(); 2257 2269 return ret; 2258 2270 } -
src/GenPoly/FindFunction.cc
r37218fc r37f0da8 55 55 TyVarMap::iterator var = tyVars.find( (*i)->get_name() ); 56 56 if ( var != tyVars.end() ) { 57 tyVars.erase( var );57 tyVars.erase( var->first ); 58 58 } // if 59 59 } // for … … 61 61 62 62 Type * FindFunction::mutate( FunctionType *functionType ) { 63 TyVarMap oldTyVars = tyVars;63 tyVars.beginScope(); 64 64 handleForall( functionType->get_forall() ); 65 65 mutateAll( functionType->get_returnVals(), *this ); … … 72 72 } // if 73 73 } // if 74 tyVars = oldTyVars;74 tyVars.endScope(); 75 75 return ret; 76 76 } 77 77 78 78 Type * FindFunction::mutate( PointerType *pointerType ) { 79 TyVarMap oldTyVars = tyVars;79 tyVars.beginScope(); 80 80 handleForall( pointerType->get_forall() ); 81 81 Type *ret = Mutator::mutate( pointerType ); 82 tyVars = oldTyVars;82 tyVars.endScope(); 83 83 return ret; 84 84 } -
src/GenPoly/GenPoly.cc
r37218fc r37f0da8 16 16 #include "GenPoly.h" 17 17 18 #include "SymTab/Mangler.h"19 18 #include "SynTree/Expression.h" 20 19 #include "SynTree/Type.h" … … 38 37 ReferenceToType *isPolyRet( FunctionType *function ) { 39 38 if ( ! function->get_returnVals().empty() ) { 40 TyVarMap forallTypes ;39 TyVarMap forallTypes( (TypeDecl::Kind)-1 ); 41 40 makeTyVarMap( function, forallTypes ); 42 41 return (ReferenceToType*)isPolyType( function->get_returnVals().front()->get_type(), forallTypes ); … … 218 217 } 219 218 220 std::string sizeofName( Type *ty ) {221 return std::string( "_sizeof_" ) + SymTab::Mangler::mangleType( ty );222 }223 224 std::string alignofName( Type *ty ) {225 return std::string( "_alignof_" ) + SymTab::Mangler::mangleType( ty );226 }227 228 std::string offsetofName( Type* ty ) {229 return std::string( "_offsetof_" ) + SymTab::Mangler::mangleType( ty );230 }231 232 219 } // namespace GenPoly 233 220 -
src/GenPoly/GenPoly.h
r37218fc r37f0da8 17 17 #define GENPOLY_H 18 18 19 #include <map>20 19 #include <string> 21 20 #include <iostream> 22 21 #include <utility> 22 23 #include "ErasableScopedMap.h" 24 25 #include "SymTab/Mangler.h" 23 26 24 27 #include "SynTree/Declaration.h" … … 27 30 28 31 namespace GenPoly { 29 typedef std::map< std::string, TypeDecl::Kind > TyVarMap;32 typedef ErasableScopedMap< std::string, TypeDecl::Kind > TyVarMap; 30 33 31 34 /// A function needs an adapter if it returns a polymorphic value or if any of its … … 69 72 void printTyVarMap( std::ostream &os, const TyVarMap &tyVarMap ); 70 73 71 /// Gets the name of the sizeof parameter for the type 72 std::string sizeofName( Type *ty ); 74 /// Gets the mangled name of this type; alias for SymTab::Mangler::mangleType(). 75 inline std::string mangleType( Type *ty ) { return SymTab::Mangler::mangleType( ty ); } 76 77 /// Gets the name of the sizeof parameter for the type, given its mangled name 78 inline std::string sizeofName( const std::string &name ) { return std::string( "_sizeof_" ) + name; } 73 79 74 /// Gets the name of the alignof parameter for the type 75 std::string alignofName( Type *ty );80 /// Gets the name of the alignof parameter for the type, given its mangled name 81 inline std::string alignofName( const std::string &name ) { return std::string( "_alignof_" ) + name; } 76 82 77 /// Gets the name of the offsetof parameter for the type 78 std::string offsetofName( Type *ty ); 83 /// Gets the name of the offsetof parameter for the type, given its mangled name 84 inline std::string offsetofName( const std::string &name ) { return std::string( "_offsetof_" ) + name; } 85 86 /// Gets the name of the layout function for a given aggregate type, given its declaration 87 inline std::string layoutofName( AggregateDecl *decl ) { return std::string( "_layoutof_" ) + decl->get_name(); } 88 79 89 } // namespace GenPoly 80 90 -
src/GenPoly/Lvalue.cc
r37218fc r37f0da8 17 17 18 18 #include "Lvalue.h" 19 20 #include "GenPoly.h" 19 21 20 22 #include "SynTree/Declaration.h" … … 63 65 64 66 namespace { 65 bool isLvalueRet( FunctionType *function ) { 66 if ( ! function->get_returnVals().empty() ) { 67 return function->get_returnVals().front()->get_type()->get_isLvalue(); 68 } else { 69 return false; 70 } // if 67 Type* isLvalueRet( FunctionType *function ) { 68 if ( function->get_returnVals().empty() ) return 0; 69 Type *ty = function->get_returnVals().front()->get_type(); 70 return ty->get_isLvalue() ? ty : 0; 71 71 } 72 72 … … 107 107 assert( function ); 108 108 109 std::string typeName; 110 if ( isLvalueRet( function ) && ! isIntrinsicApp( appExpr ) ) { 109 Type *funType = isLvalueRet( function ); 110 if ( funType && ! isIntrinsicApp( appExpr ) ) { 111 Expression *expr = appExpr; 112 Type *appType = appExpr->get_results().front(); 113 if ( isPolyType( funType ) && ! isPolyType( appType ) ) { 114 // make sure cast for polymorphic type is inside dereference 115 expr = new CastExpr( appExpr, new PointerType( Type::Qualifiers(), appType->clone() ) ); 116 } 111 117 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) ); 112 deref->get_results().push_back( app Expr->get_results().front() );113 appExpr->get_results().front() = new PointerType( Type::Qualifiers(), deref->get_results().front()->clone());114 deref->get_args().push_back( appExpr );118 deref->get_results().push_back( appType->clone() ); 119 appExpr->get_results().front() = new PointerType( Type::Qualifiers(), appType ); 120 deref->get_args().push_back( expr ); 115 121 return deref; 116 122 } else { -
src/GenPoly/PolyMutator.cc
r37218fc r37f0da8 27 27 } 28 28 29 PolyMutator::PolyMutator() : env( 0 ) { 30 } 29 PolyMutator::PolyMutator() : scopeTyVars( (TypeDecl::Kind)-1 ), env( 0 ) {} 31 30 32 31 void PolyMutator::mutateStatementList( std::list< Statement* > &statements ) { -
src/GenPoly/ScopedMap.h
r37218fc r37f0da8 51 51 typedef typename scope_list::size_type size_type; 52 52 53 /// Checks if this iterator points to a valid item 54 bool is_valid() const { 55 return it != (*scopes)[i].end(); 56 } 57 58 /// Increments on invalid 59 iterator& next_valid() { 60 if ( ! is_valid() ) { ++(*this); } 61 return *this; 62 } 63 64 /// Decrements on invalid 65 iterator& prev_valid() { 66 if ( ! is_valid() ) { --(*this); } 67 return *this; 68 } 69 53 70 iterator(scope_list const &_scopes, const wrapped_iterator &_it, size_type _i) 54 71 : scopes(&_scopes), it(_it), i(_i) {} … … 68 85 --i; 69 86 it = (*scopes)[i].begin(); 70 return *this;71 }72 ++it;73 return *this;87 } else { 88 ++it; 89 } 90 return next_valid(); 74 91 } 75 92 iterator& operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } … … 82 99 } 83 100 --it; 84 return *this;101 return prev_valid(); 85 102 } 86 103 iterator& operator-- (int) { iterator tmp = *this; --(*this); return tmp; } … … 105 122 typedef typename scope_list::size_type size_type; 106 123 124 /// Checks if this iterator points to a valid item 125 bool is_valid() const { 126 return it != (*scopes)[i].end(); 127 } 128 129 /// Increments on invalid 130 const_iterator& next_valid() { 131 if ( ! is_valid() ) { ++(*this); } 132 return *this; 133 } 134 135 /// Decrements on invalid 136 const_iterator& prev_valid() { 137 if ( ! is_valid() ) { --(*this); } 138 return *this; 139 } 140 107 141 const_iterator(scope_list const &_scopes, const wrapped_const_iterator &_it, size_type _i) 108 142 : scopes(&_scopes), it(_it), i(_i) {} … … 127 161 --i; 128 162 it = (*scopes)[i].begin(); 129 return *this;130 }131 ++it;132 return *this;163 } else { 164 ++it; 165 } 166 return next_valid(); 133 167 } 134 168 const_iterator& operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } … … 141 175 } 142 176 --it; 143 return *this;177 return prev_valid(); 144 178 } 145 179 const_iterator& operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } … … 171 205 ScopedMap() { beginScope(); } 172 206 173 iterator begin() { return iterator(scopes, scopes.back().begin(), scopes.size()-1) ; }174 const_iterator begin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1) ; }175 const_iterator cbegin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1) ; }207 iterator begin() { return iterator(scopes, scopes.back().begin(), scopes.size()-1).next_valid(); } 208 const_iterator begin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1).next_valid(); } 209 const_iterator cbegin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1).next_valid(); } 176 210 iterator end() { return iterator(scopes, scopes[0].end(), 0); } 177 211 const_iterator end() const { return const_iterator(scopes, scopes[0].end(), 0); } -
src/GenPoly/ScopedSet.h
r37218fc r37f0da8 48 48 typedef typename scope_list::size_type size_type; 49 49 50 /// Checks if this iterator points to a valid item 51 bool is_valid() const { 52 return it != (*scopes)[i].end(); 53 } 54 55 /// Increments on invalid 56 iterator& next_valid() { 57 if ( ! is_valid() ) { ++(*this); } 58 return *this; 59 } 60 61 /// Decrements on invalid 62 iterator& prev_valid() { 63 if ( ! is_valid() ) { --(*this); } 64 return *this; 65 } 66 50 67 iterator(scope_list const &_scopes, const wrapped_iterator &_it, size_type _i) 51 68 : scopes(&_scopes), it(_it), i(_i) {} … … 65 82 --i; 66 83 it = (*scopes)[i].begin(); 67 return *this;68 }69 ++it;70 return *this;84 } else { 85 ++it; 86 } 87 return next_valid(); 71 88 } 72 89 iterator& operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } … … 79 96 } 80 97 --it; 81 return *this;98 return prev_valid(); 82 99 } 83 100 iterator& operator-- (int) { iterator tmp = *this; --(*this); return tmp; } … … 102 119 typedef typename scope_list::size_type size_type; 103 120 121 /// Checks if this iterator points to a valid item 122 bool is_valid() const { 123 return it != (*scopes)[i].end(); 124 } 125 126 /// Increments on invalid 127 const_iterator& next_valid() { 128 if ( ! is_valid() ) { ++(*this); } 129 return *this; 130 } 131 132 /// Decrements on invalid 133 const_iterator& prev_valid() { 134 if ( ! is_valid() ) { --(*this); } 135 return *this; 136 } 137 104 138 const_iterator(scope_list const &_scopes, const wrapped_const_iterator &_it, size_type _i) 105 139 : scopes(&_scopes), it(_it), i(_i) {} … … 124 158 --i; 125 159 it = (*scopes)[i].begin(); 126 return *this;127 }128 ++it;129 return *this;160 } else { 161 ++it; 162 } 163 return next_valid(); 130 164 } 131 165 const_iterator& operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } … … 138 172 } 139 173 --it; 140 return *this;174 return prev_valid(); 141 175 } 142 176 const_iterator& operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } … … 167 201 ScopedSet() { beginScope(); } 168 202 169 iterator begin() { return iterator(scopes, scopes.back().begin(), scopes.size()-1) ; }170 const_iterator begin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1) ; }171 const_iterator cbegin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1) ; }203 iterator begin() { return iterator(scopes, scopes.back().begin(), scopes.size()-1).next_valid(); } 204 const_iterator begin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1).next_valid(); } 205 const_iterator cbegin() const { return const_iterator(scopes, scopes.back().begin(), scopes.size()-1).next_valid(); } 172 206 iterator end() { return iterator(scopes, scopes[0].end(), 0); } 173 207 const_iterator end() const { return const_iterator(scopes, scopes[0].end(), 0); } -
src/GenPoly/ScrubTyVars.cc
r37218fc r37f0da8 64 64 // sizeof( T ) => _sizeof_T parameter, which is the size of T 65 65 if ( Type *polyType = isPolyType( szeof->get_type() ) ) { 66 Expression *expr = new NameExpr( sizeofName( polyType) );66 Expression *expr = new NameExpr( sizeofName( mangleType( polyType ) ) ); 67 67 return expr; 68 68 } else { … … 74 74 // alignof( T ) => _alignof_T parameter, which is the alignment of T 75 75 if ( Type *polyType = isPolyType( algnof->get_type() ) ) { 76 Expression *expr = new NameExpr( alignofName( polyType) );76 Expression *expr = new NameExpr( alignofName( mangleType( polyType ) ) ); 77 77 return expr; 78 78 } else { -
src/Parser/DeclarationNode.cc
r37218fc r37f0da8 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Mar 21 21:04:23201613 // Update Count : 1 4212 // Last Modified On : Wed Apr 13 16:53:17 2016 13 // Update Count : 161 14 14 // 15 15 … … 188 188 newnode->type->aggregate->name = assign_strptr( name ); 189 189 if ( newnode->type->aggregate->name == "" ) { // anonymous aggregate ? 190 newnode->type->aggregate->name = DeclarationNode::anonymous.newName(); 191 } else if ( ! typedefTable.exists( newnode->type->aggregate->name ) ) { 192 // SKULLDUGGERY: Generate a typedef for the aggregate name so the aggregate does not have to be qualified by 193 // "struct". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed 194 // if the name is explicitly used. 195 typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD ); 196 DeclarationNode *typedf = new DeclarationNode; 197 typedf->name = newnode->type->aggregate->name; 198 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() ); 190 newnode->type->aggregate->name = anonymous.newName(); 199 191 } // if 200 192 newnode->type->aggregate->actuals = actuals; … … 210 202 if ( newnode->type->enumeration->name == "" ) { // anonymous enumeration ? 211 203 newnode->type->enumeration->name = DeclarationNode::anonymous.newName(); 212 } else if ( ! typedefTable.exists( newnode->type->enumeration->name ) ) {213 // SKULLDUGGERY: Generate a typedef for the enumeration name so the enumeration does not have to be qualified by214 // "enum". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed if215 // the name is explicitly used.216 typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );217 DeclarationNode *typedf = new DeclarationNode;218 typedf->name = newnode->type->enumeration->name;219 newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );220 204 } // if 221 205 newnode->type->enumeration->constants = constants; -
src/Parser/TypedefTable.cc
r37218fc r37f0da8 10 10 // Created On : Sat May 16 15:20:13 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Mar 21 18:18:58201613 // Update Count : 2 312 // Last Modified On : Wed Apr 13 16:57:30 2016 13 // Update Count : 24 14 14 // 15 15 … … 33 33 } 34 34 35 int TypedefTable::isKind( const string &identifier ) const { 36 tableType::const_iterator id_pos = table.find( identifier ); 37 // Name lookup defaults to identifier, and then the identifier's kind is set by the parser. 38 if ( id_pos == table.end() ) return IDENTIFIER; 39 return id_pos->second.begin()->kind; 40 } 41 35 42 void TypedefTable::changeKind( const string &identifier, kind_t kind ) { 36 43 tableType::iterator id_pos = table.find( identifier ); … … 39 46 } 40 47 41 int TypedefTable::isKind( const string &identifier ) const { 42 tableType::const_iterator id_pos = table.find( identifier ); 43 // Name lookup defaults to identifier, and then the identifier's kind is set by the parser. 44 if ( id_pos == table.end() ) return IDENTIFIER; 45 return id_pos->second.begin()->kind; 48 // SKULLDUGGERY: Generate a typedef for the aggregate name so the aggregate does not have to be qualified by 49 // "struct". Only generate the typedef, if the name is not in use. The typedef is implicitly (silently) removed 50 // if the name is explicitly used. 51 void TypedefTable::makeTypedef( const string &name ) { 52 if ( ! typedefTable.exists( name ) ) { 53 typedefTable.addToEnclosingScope( name, TypedefTable::TD ); 54 } // if 46 55 } 47 56 -
src/Parser/TypedefTable.h
r37218fc r37f0da8 10 10 // Created On : Sat May 16 15:24:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Mar 21 18:17:36 201613 // Update Count : 2 412 // Last Modified On : Wed Apr 13 16:59:56 2016 13 // Update Count : 27 14 14 // 15 15 … … 59 59 int isKind( const std::string &identifier ) const; 60 60 void changeKind( const std::string &identifier, kind_t kind ); 61 61 62 void makeTypedef( const std::string &name ); 63 62 64 // "addToCurrentScope" adds the identifier/type pair to the current scope. This does less than you think it does, 63 65 // since each declaration is within its own scope. Mostly useful for type parameters. -
src/Parser/parser.cc
r37218fc r37f0da8 590 590 #define YYFINAL 249 591 591 /* YYLAST -- Last index in YYTABLE. */ 592 #define YYLAST 11 290592 #define YYLAST 11449 593 593 594 594 /* YYNTOKENS -- Number of terminals. */ 595 595 #define YYNTOKENS 133 596 596 /* YYNNTS -- Number of nonterminals. */ 597 #define YYNNTS 2 38597 #define YYNNTS 240 598 598 /* YYNRULES -- Number of rules. */ 599 #define YYNRULES 75 2599 #define YYNRULES 754 600 600 /* YYNRULES -- Number of states. */ 601 #define YYNSTATES 15 79601 #define YYNSTATES 1581 602 602 603 603 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ … … 691 691 1223, 1227, 1229, 1232, 1235, 1238, 1243, 1248, 1253, 1258, 692 692 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 1283, 1286, 693 1290, 1292, 1295, 1298, 1300, 1302, 1307, 1310, 131 6, 1324,694 132 7, 1330, 1333, 1335, 1338, 1341, 1345, 1348, 1352, 1354,695 135 7, 1361, 1364, 1367, 1372, 1373, 1375, 1378, 1381, 1383,696 138 4, 1386, 1389, 1392, 1398, 1405, 1408, 1411, 1416, 1417,697 1420, 1421, 142 3, 1425, 1427, 1433, 1439, 1445, 1447, 1453,698 145 9, 1469, 1471, 1477, 1478, 1480, 1482, 1488, 1490, 1492,699 149 8, 1504, 1506, 1510, 1514, 1519, 1521, 1523, 1525, 1527,700 15 30, 1532, 1536, 1540, 1542, 1545, 1547, 1551, 1553, 1555,701 1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 157 6,702 157 8, 1580, 1582, 1585, 1586, 1589, 1592, 1594, 1599, 1600,703 160 2, 1605, 1609, 1614, 1617, 1620, 1622, 1625, 1627, 1630,704 163 6, 1642, 1650, 1657, 1659, 1662, 1665, 1669, 1671, 1674,705 167 7, 1682, 1685, 1690, 1691, 1696, 1699, 1701, 1703, 1705,706 170 6, 1709, 1715, 1721, 1735, 1737, 1739, 1743, 1747, 1750,707 175 4, 1758, 1761, 1766, 1768, 1775, 1785, 1786, 1798, 1800,708 180 4, 1808, 1812, 1814, 1816, 1822, 1825, 1831, 1832, 1834,709 1836, 18 40, 1841, 1843, 1845, 1847, 1849, 1850, 1857, 1860,710 186 2, 1865, 1870, 1873, 1877, 1881, 1885, 1890, 1896, 1902,711 190 8, 1915, 1917, 1919, 1921, 1925, 1926, 1932, 1933, 1935,712 1937, 19 40, 1947, 1949, 1953, 1954, 1956, 1961, 1963, 1965,713 1967, 1969, 197 2, 1974, 1977, 1980, 1982, 1986, 1989, 1993,714 199 7, 2000, 2005, 2010, 2014, 2023, 2027, 2030, 2032, 2035,715 20 42, 2051, 2055, 2058, 2062, 2066, 2071, 2076, 2080, 2082,716 2084, 2086, 20 91, 2098, 2102, 2105, 2109, 2113, 2118, 2123,717 212 7, 2130, 2132, 2135, 2138, 2140, 2144, 2147, 2151, 2155,718 215 8, 2163, 2168, 2172, 2179, 2188, 2192, 2195, 2197, 2200,719 220 3, 2206, 2210, 2214, 2217, 2222, 2227, 2231, 2238, 2247,720 22 51, 2254, 2256, 2259, 2262, 2264, 2266, 2269, 2273, 2277,721 22 80, 2285, 2292, 2301, 2303, 2306, 2309, 2311, 2314, 2317,722 23 21, 2325, 2327, 2332, 2337, 2341, 2347, 2356, 2360, 2363,723 236 7, 2369, 2375, 2381, 2388, 2395, 2397, 2400, 2403, 2405,724 240 8, 2411, 2415, 2419, 2421, 2426, 2431, 2435, 2441, 2450,725 24 54, 2456, 2459, 2461, 2464, 2471, 2477, 2484, 2492, 2500,726 2 502, 2505, 2508, 2510, 2513, 2516, 2520, 2524, 2526, 2531,727 253 6, 2540, 2549, 2553, 2555, 2557, 2560, 2562, 2564, 2567,728 25 71, 2574, 2578, 2581, 2585, 2589, 2592, 2597, 2601, 2604,729 260 8, 2611, 2616, 2620, 2623, 2630, 2637, 2644, 2652, 2654,730 265 7, 2659, 2661, 2663, 2666, 2670, 2673, 2677, 2680, 2684,731 268 8, 2693, 2696, 2700, 2705, 2708, 2714, 2720, 2727, 2734,732 273 5, 2737, 2738693 1290, 1292, 1295, 1298, 1300, 1302, 1307, 1310, 1311, 1318, 694 1326, 1329, 1332, 1335, 1337, 1340, 1343, 1347, 1350, 1354, 695 1356, 1359, 1363, 1366, 1369, 1374, 1375, 1377, 1380, 1383, 696 1385, 1386, 1388, 1391, 1394, 1400, 1403, 1404, 1412, 1415, 697 1420, 1421, 1424, 1425, 1427, 1429, 1431, 1437, 1443, 1449, 698 1451, 1457, 1463, 1473, 1475, 1481, 1482, 1484, 1486, 1492, 699 1494, 1496, 1502, 1508, 1510, 1514, 1518, 1523, 1525, 1527, 700 1529, 1531, 1534, 1536, 1540, 1544, 1546, 1549, 1551, 1555, 701 1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1575, 702 1577, 1580, 1582, 1584, 1586, 1589, 1590, 1593, 1596, 1598, 703 1603, 1604, 1606, 1609, 1613, 1618, 1621, 1624, 1626, 1629, 704 1631, 1634, 1640, 1646, 1654, 1661, 1663, 1666, 1669, 1673, 705 1675, 1678, 1681, 1686, 1689, 1694, 1695, 1700, 1703, 1705, 706 1707, 1709, 1710, 1713, 1719, 1725, 1739, 1741, 1743, 1747, 707 1751, 1754, 1758, 1762, 1765, 1770, 1772, 1779, 1789, 1790, 708 1802, 1804, 1808, 1812, 1816, 1818, 1820, 1826, 1829, 1835, 709 1836, 1838, 1840, 1844, 1845, 1847, 1849, 1851, 1853, 1854, 710 1861, 1864, 1866, 1869, 1874, 1877, 1881, 1885, 1889, 1894, 711 1900, 1906, 1912, 1919, 1921, 1923, 1925, 1929, 1930, 1936, 712 1937, 1939, 1941, 1944, 1951, 1953, 1957, 1958, 1960, 1965, 713 1967, 1969, 1971, 1973, 1976, 1978, 1981, 1984, 1986, 1990, 714 1993, 1997, 2001, 2004, 2009, 2014, 2018, 2027, 2031, 2034, 715 2036, 2039, 2046, 2055, 2059, 2062, 2066, 2070, 2075, 2080, 716 2084, 2086, 2088, 2090, 2095, 2102, 2106, 2109, 2113, 2117, 717 2122, 2127, 2131, 2134, 2136, 2139, 2142, 2144, 2148, 2151, 718 2155, 2159, 2162, 2167, 2172, 2176, 2183, 2192, 2196, 2199, 719 2201, 2204, 2207, 2210, 2214, 2218, 2221, 2226, 2231, 2235, 720 2242, 2251, 2255, 2258, 2260, 2263, 2266, 2268, 2270, 2273, 721 2277, 2281, 2284, 2289, 2296, 2305, 2307, 2310, 2313, 2315, 722 2318, 2321, 2325, 2329, 2331, 2336, 2341, 2345, 2351, 2360, 723 2364, 2367, 2371, 2373, 2379, 2385, 2392, 2399, 2401, 2404, 724 2407, 2409, 2412, 2415, 2419, 2423, 2425, 2430, 2435, 2439, 725 2445, 2454, 2458, 2460, 2463, 2465, 2468, 2475, 2481, 2488, 726 2496, 2504, 2506, 2509, 2512, 2514, 2517, 2520, 2524, 2528, 727 2530, 2535, 2540, 2544, 2553, 2557, 2559, 2561, 2564, 2566, 728 2568, 2571, 2575, 2578, 2582, 2585, 2589, 2593, 2596, 2601, 729 2605, 2608, 2612, 2615, 2620, 2624, 2627, 2634, 2641, 2648, 730 2656, 2658, 2661, 2663, 2665, 2667, 2670, 2674, 2677, 2681, 731 2684, 2688, 2692, 2697, 2700, 2704, 2709, 2712, 2718, 2724, 732 2731, 2738, 2739, 2741, 2742 733 733 }; 734 734 … … 736 736 static const yytype_int16 yyrhs[] = 737 737 { 738 299, 0, -1, -1, -1, 79, -1, 80, -1, 81,738 301, 0, -1, -1, -1, 79, -1, 80, -1, 81, 739 739 -1, 72, -1, 76, -1, 140, -1, 72, -1, 76, 740 740 -1, 72, -1, 140, -1, 83, -1, 84, -1, 82, … … 745 745 112, -1, 143, 85, 139, -1, 143, 85, 111, 134, 746 746 146, 135, 112, -1, 143, 86, -1, 143, 87, -1, 747 109, 27 2, 110, 114, 276, 369, 115, -1, 143, 114,747 109, 274, 110, 114, 278, 371, 115, -1, 143, 114, 748 748 144, 115, -1, 145, -1, 144, 116, 145, -1, -1, 749 749 163, -1, 139, 117, 163, -1, 111, 134, 163, 135, … … 755 755 141, -1, 86, 148, -1, 87, 148, -1, 40, 150, 756 756 -1, 149, 150, -1, 118, 150, -1, 119, 150, -1, 757 37, 148, -1, 37, 109, 27 2, 110, -1, 38, 109,758 27 2, 116, 139, 110, -1, 76, -1, 76, 109, 273,757 37, 148, -1, 37, 109, 274, 110, -1, 38, 109, 758 274, 116, 139, 110, -1, 76, -1, 76, 109, 275, 759 759 110, -1, 76, 109, 145, 110, -1, 66, 148, -1, 760 66, 109, 27 2, 110, -1, 94, 139, -1, 120, -1,761 121, -1, 122, -1, 123, -1, 148, -1, 109, 27 2,762 110, 150, -1, 109, 27 2, 110, 165, -1, 150, -1,760 66, 109, 274, 110, -1, 94, 139, -1, 120, -1, 761 121, -1, 122, -1, 123, -1, 148, -1, 109, 274, 762 110, 150, -1, 109, 274, 110, 165, -1, 150, -1, 763 763 151, 119, 150, -1, 151, 124, 150, -1, 151, 125, 764 764 150, -1, 151, -1, 152, 121, 151, -1, 152, 122, … … 773 773 117, 161, -1, 160, 130, 168, 117, 165, -1, 161, 774 774 -1, 161, -1, 148, 131, 163, -1, 148, 167, 163, 775 -1, 165, 37 0, -1, -1, 163, -1, 111, 112, -1,775 -1, 165, 372, -1, -1, 163, -1, 111, 112, -1, 776 776 111, 134, 163, 135, 112, -1, 111, 134, 116, 166, 777 777 135, 112, -1, 111, 134, 163, 116, 166, 135, 112, … … 782 782 176, -1, 177, -1, 189, -1, 191, -1, 192, -1, 783 783 197, -1, 128, 143, 114, 144, 115, 132, -1, 139, 784 117, 3 09, 170, -1, 114, 115, -1, 114, 134, 134,784 117, 311, 170, -1, 114, 115, -1, 114, 134, 134, 785 785 208, 173, 135, 115, -1, 174, -1, 173, 134, 174, 786 -1, 211, -1, 40, 211, -1, 30 5, -1, 170, 135,786 -1, 211, -1, 40, 211, -1, 307, -1, 170, 135, 787 787 -1, 170, -1, 175, 170, -1, 169, 132, -1, 41, 788 788 109, 168, 110, 170, -1, 41, 109, 168, 110, 170, … … 791 791 109, 168, 110, 182, -1, 53, 109, 168, 110, 114, 792 792 134, 204, 185, 115, -1, 162, -1, 162, 96, 162, 793 -1, 30 7, -1, 178, -1, 179, 116, 178, -1, 44,793 -1, 309, -1, 178, -1, 179, 116, 178, -1, 44, 794 794 179, 117, -1, 45, 117, -1, 180, -1, 181, 180, 795 795 -1, 181, 170, -1, -1, 184, -1, 181, 175, -1, … … 813 813 134, 196, 135, 110, 172, 135, -1, 194, 59, 109, 814 814 134, 134, 196, 135, 110, 172, 135, -1, 60, 172, 815 -1, 224, -1, 224, 30 6, -1, 224, 354, -1, 363,816 139, -1, 36 3, -1, 64, 198, 109, 141, 110, 132,815 -1, 224, -1, 224, 308, -1, 224, 356, -1, 365, 816 139, -1, 365, -1, 64, 198, 109, 141, 110, 132, 817 817 -1, 64, 198, 109, 141, 117, 199, 110, 132, -1, 818 818 64, 198, 109, 141, 117, 199, 117, 199, 110, 132, … … 826 826 -1, 211, -1, 205, 134, 211, -1, 135, -1, 207, 827 827 -1, 221, -1, 207, 134, 221, -1, -1, 209, -1, 828 29, 210, 132, -1, 209, 29, 210, 132, -1, 27 1,829 -1, 210, 116, 27 1, -1, 212, -1, 221, -1, 213,828 29, 210, 132, -1, 209, 29, 210, 132, -1, 273, 829 -1, 210, 116, 273, -1, 212, -1, 221, -1, 213, 830 830 135, 132, -1, 218, 135, 132, -1, 215, 135, 132, 831 -1, 29 0, 135, 132, -1, 293, 135, 132, -1, 214,832 27 4, -1, 230, 214, 274, -1, 213, 135, 116, 134,833 2 69, 274, -1, 364, 269, 308, -1, 367, 269, 308,834 -1, 226, 36 7, 269, 308, -1, 216, -1, 226, 216,831 -1, 292, 135, 132, -1, 295, 135, 132, -1, 214, 832 276, -1, 230, 214, 276, -1, 213, 135, 116, 134, 833 271, 276, -1, 366, 271, 310, -1, 369, 271, 310, 834 -1, 226, 369, 271, 310, -1, 216, -1, 226, 216, 835 835 -1, 230, 216, -1, 230, 226, 216, -1, 215, 135, 836 116, 134, 2 69, -1, 111, 112, 269, 109, 134, 257,837 135, 110, -1, 36 7, 269, 109, 134, 257, 135, 110,838 -1, 217, 2 69, 109, 134, 257, 135, 110, -1, 111,839 134, 2 59, 135, 112, -1, 111, 134, 259, 135, 116,840 134, 26 0, 135, 112, -1, 3, 214, -1, 3, 216,841 -1, 218, 135, 116, 134, 139, -1, 3, 224, 30 6,842 -1, 219, 135, 116, 134, 30 6, -1, 226, 3, 224,843 30 6, -1, 224, 3, 306, -1, 224, 3, 226, 306,836 116, 134, 271, -1, 111, 112, 271, 109, 134, 259, 837 135, 110, -1, 369, 271, 109, 134, 259, 135, 110, 838 -1, 217, 271, 109, 134, 259, 135, 110, -1, 111, 839 134, 261, 135, 112, -1, 111, 134, 261, 135, 116, 840 134, 262, 135, 112, -1, 3, 214, -1, 3, 216, 841 -1, 218, 135, 116, 134, 139, -1, 3, 224, 308, 842 -1, 219, 135, 116, 134, 308, -1, 226, 3, 224, 843 308, -1, 224, 3, 308, -1, 224, 3, 226, 308, 844 844 -1, 3, 139, 131, 163, -1, 220, 135, 116, 134, 845 845 139, 131, 163, -1, 222, 135, 132, -1, 219, 135, 846 846 132, -1, 220, 135, 132, -1, 239, 135, 132, -1, 847 223, 30 6, 308, 274, -1, 222, 116, 309, 306, 308,848 27 4, -1, 235, -1, 239, -1, 241, -1, 280, -1,849 236, -1, 240, -1, 242, -1, 28 1, -1, -1, 226,850 -1, 227, -1, 226, 227, -1, 228, -1, 31 1, -1,847 223, 308, 310, 276, -1, 222, 116, 311, 308, 310, 848 276, -1, 235, -1, 239, -1, 241, -1, 282, -1, 849 236, -1, 240, -1, 242, -1, 283, -1, -1, 226, 850 -1, 227, -1, 226, 227, -1, 228, -1, 313, -1, 851 851 10, -1, 12, -1, 11, -1, 14, -1, 67, -1, 852 -1, 13, 109, 229, 28 3, 110, -1, 231, -1, 226,852 -1, 13, 109, 229, 285, 110, -1, 231, -1, 226, 853 853 231, -1, 230, 226, 231, -1, 232, -1, 231, 232, 854 854 -1, 233, -1, 5, -1, 7, -1, 4, -1, 6, … … 860 860 -1, 237, -1, 225, 238, 225, -1, 234, -1, 226, 861 861 234, -1, 237, 227, -1, 237, 234, -1, 28, 109, 862 27 3, 110, -1, 28, 109, 168, 110, -1, 78, 109,863 27 3, 110, -1, 78, 109, 168, 110, -1, 240, -1,862 275, 110, -1, 28, 109, 168, 110, -1, 78, 109, 863 275, 110, -1, 78, 109, 168, 110, -1, 240, -1, 864 864 230, 240, -1, 239, 232, -1, 239, 232, 226, -1, 865 865 243, -1, 226, 243, -1, 240, 227, -1, 242, -1, 866 866 230, 242, -1, 241, 232, -1, 241, 232, 226, -1, 867 867 74, -1, 226, 74, -1, 242, 227, -1, 244, -1, 868 25 4, -1, 245, 114, 246, 115, -1, 245, 271, -1,869 245, 271, 114, 246, 115, -1, 245, 109, 289, 110,870 114, 246, 115, -1, 245, 282, -1, 31, 309, -1,871 32, 309, -1, 247, -1, 246, 247, -1, 248, 132,872 -1, 40, 248, 132, -1, 249, 132, -1, 40, 249,873 132, -1, 363, -1, 363, 271, -1, 248, 116, 271,874 -1, 248, 116, -1, 224, 250, -1, 249, 116, 309,875 250, -1, -1, 252, -1, 315, 251, -1, 328, 251,876 -1, 354, -1, -1, 252, -1, 117, 162, -1, 30,877 309, -1, 253, 114, 255, 369, 115, -1, 253, 271,878 114, 255, 369, 115, -1, 253, 271, -1, 271, 256,879 -1, 255, 116, 271, 256, -1, -1, 131, 162, -1,880 -1, 258, -1, 260, -1, 259, -1, 259, 135, 116,881 134, 260, -1, 260, 135, 116, 134, 96, -1, 259,882 13 5, 116, 134, 96, -1, 264, -1, 260, 135, 116,883 134, 264, -1, 259, 135, 116, 134, 264, -1, 259,884 13 5, 116, 134, 260, 135, 116, 134, 264, -1, 265,885 -1, 260, 135, 116, 134, 265, -1, -1, 262, -1,886 263, -1, 263, 135, 116, 134, 96, -1, 267, -1,887 266, -1, 263, 135, 116, 134, 267, -1, 263, 135,888 116, 134, 266, -1, 266, -1, 359, 269, 370, -1,889 36 7, 269, 370, -1, 226, 367, 269, 370, -1, 216,890 -1, 267, -1, 359, -1, 367, -1, 226, 367, -1,891 368, -1, 223, 333, 370, -1, 223, 337, 370, -1,892 223, -1, 223, 348, -1, 139, -1, 268, 116, 139,893 -1, 137, -1, 74, -1, 75, -1, 138, -1, 74,894 -1, 75, -1, 139, -1, 74, -1, 75, -1, 363,895 -1, 224, -1, 224, 354, -1, 363, -1, 368, -1,896 224, -1, 224, 342, -1, -1, 131, 275, -1, 107,897 275, -1, 163, -1, 114, 276, 369, 115, -1, -1,898 275, -1, 277, 275, -1, 276, 116, 275, -1, 276,899 116, 277, 275, -1, 278, 117, -1, 271, 117, -1,900 279, -1, 278, 279, -1, 80, -1, 113, 271, -1,901 111, 134, 163, 135, 112, -1, 111, 134, 307, 135,902 11 2, -1, 111, 134, 162, 96, 162, 135, 112, -1,903 1 13, 111, 134, 146, 135, 112, -1, 281, -1, 230,904 281, -1, 280, 232, -1, 280, 232, 226, -1, 282,905 -1, 226, 282, -1, 281, 227, -1, 75, 109, 289,906 110, -1, 284, 370, -1, 283, 116, 284, 370, -1,907 -1, 286, 271, 285, 287, -1, 224, 333, -1, 33,908 -1, 35, -1, 34, -1, -1, 287, 288, -1, 129,909 2 71, 109, 289, 110, -1, 129, 114, 134, 295, 115,910 -1, 129, 109, 134, 283, 135, 110, 114, 134, 295,911 11 5, 109, 289, 110, -1, 273, -1, 163, -1, 289,912 116, 273, -1, 289, 116, 163, -1, 33, 291, -1,913 231, 33, 291, -1, 290, 116, 291, -1, 292, 287,914 -1, 292, 287, 131, 273, -1, 271, -1, 270, 109,915 134, 283, 135, 110, -1, 36, 271, 109, 134, 283,916 135, 110, 114, 115, -1, -1, 36, 271, 109, 134,917 283, 135, 110, 114, 294, 295, 115, -1, 296, -1,918 295, 134, 296, -1, 297, 135, 132, -1, 298, 135,919 132, -1, 214, -1, 216, -1, 297, 135, 116, 134,920 2 69, -1, 224, 306, -1, 298, 135, 116, 134, 306,921 -1, -1, 300, -1, 302, -1, 300, 134, 302, -1,922 -1, 300, -1, 211, -1, 304, -1, 197, -1, -1,923 5, 82, 303, 114, 301, 115, -1, 40, 302, -1,924 305, -1, 320, 172, -1, 324, 134, 206, 172, -1,925 215, 172, -1, 223, 320, 172, -1, 226, 320, 172,926 -1, 2 30, 320, 172, -1, 230, 226, 320, 172, -1,927 22 3, 324, 134, 206, 172, -1, 226, 324, 134, 206,928 172, -1, 230, 324, 134, 206, 172, -1, 230, 226,929 324, 134, 206, 172, -1, 315, -1, 320, -1, 328,930 -1, 162, 123, 162, -1, -1, 64, 109, 141, 110,931 309, -1, -1, 310, -1, 311, -1, 310, 311, -1,932 39, 109, 109, 312, 110, 110, -1, 313, -1, 312,933 116, 313, -1, -1, 314, -1, 314, 109, 169, 110,934 -1, 269, -1, 233, -1, 234, -1, 227, -1, 316,935 309, -1, 317, -1, 318, 309, -1, 319, 309, -1,936 137, -1, 109, 316, 110, -1, 119, 315, -1, 119,937 226, 315, -1, 109, 317, 110, -1, 316, 346, -1,938 109, 317, 110, 346, -1, 109, 318, 110, 347, -1,939 109, 318, 110, -1, 109, 317, 110, 109, 134, 261,940 1 35, 110, -1, 109, 319, 110, -1, 321, 309, -1,941 322, -1, 323, 309, -1, 316, 109, 134, 261, 135,942 1 10, -1, 109, 322, 110, 109, 134, 261, 135, 110,943 -1, 109, 321, 110, -1, 119, 320, -1, 119, 226,944 32 0, -1, 109, 322, 110, -1, 109, 322, 110, 346,945 -1, 109, 323, 110, 347, -1, 109, 323, 110, -1,946 325, -1, 326, -1, 327, -1, 316, 109, 268, 110,947 -1, 109, 326, 110, 109, 268, 110, -1, 109, 325,948 110, -1, 1 19, 324, -1, 119, 226, 324, -1, 109,949 326, 110, -1, 109, 326, 110, 346, -1, 109, 327,950 110, 347, -1, 109, 327, 110, -1, 329, 309, -1,951 330, -1, 331, 309, -1, 332, 309, -1, 338, -1,952 109, 329, 110, -1, 119, 328, -1, 119, 226, 328,953 -1, 1 09, 330, 110, -1, 329, 346, -1, 109, 330,954 110, 346, -1, 109, 331, 110, 347, -1, 109, 331,955 110, -1, 329, 109, 134, 261, 135, 110, -1, 109,956 330, 110, 109, 134, 261, 135, 110, -1, 109, 332,957 110, -1, 316, 309, -1, 334, -1, 335, 309, -1,958 336, 309, -1, 119, 333, -1, 119, 226, 333, -1,959 1 09, 334, 110, -1, 316, 352, -1, 109, 334, 110,960 346, -1, 109, 335, 110, 347, -1, 109, 335, 110,961 -1, 316, 109, 134, 261, 135, 110, -1, 109, 334,962 110, 109, 134, 261, 135, 110, -1, 109, 336, 110,963 -1, 338, 309, -1, 339, -1, 340, 309, -1, 341,964 3 09, -1, 74, -1, 75, -1, 119, 337, -1, 119,965 226, 337, -1, 109, 339, 110, -1, 338, 352, -1,966 109, 339, 110, 352, -1, 338, 109, 134, 261, 135,967 1 10, -1, 109, 339, 110, 109, 134, 261, 135, 110,968 -1, 343, -1, 344, 309, -1, 345, 309, -1, 119,969 -1, 119, 226, -1, 119, 342, -1, 119, 226, 342,970 -1, 1 09, 343, 110, -1, 346, -1, 109, 343, 110,971 346, -1, 109, 344, 110, 347, -1, 109, 344, 110,972 -1, 109, 134, 261, 135, 110, -1, 109, 343, 110,973 109, 134, 261, 135, 110, -1, 109, 345, 110, -1,974 1 11, 112, -1, 111, 112, 347, -1, 347, -1, 111,975 134, 163, 135, 112, -1, 111, 134, 119, 135, 112,976 -1, 347, 111, 134, 163, 135, 112, -1, 347, 111,977 1 34, 119, 135, 112, -1, 349, -1, 350, 309, -1,978 351, 309, -1, 119, -1, 119, 226, -1, 119, 348,979 -1, 119, 226, 348, -1, 109, 349, 110, -1, 352,980 -1, 109, 349, 110, 352, -1, 109, 350, 110, 347,981 -1, 109, 350, 110, -1, 109, 134, 261, 135, 110,982 -1, 109, 349, 110, 109, 134, 261, 135, 110, -1,983 109, 351, 110, -1, 353, -1, 353, 347, -1, 347,984 -1, 111, 112, -1, 111, 134, 226, 119, 135, 112,985 -1, 111, 134, 226, 135, 112, -1, 111, 134, 226,986 163, 135, 112, -1, 111, 134, 7, 225, 163, 135,987 112, -1, 111, 134, 226, 7, 163, 135, 112, -1,988 355, -1, 356, 309, -1, 357, 309, -1, 119, -1,989 119, 226, -1, 119, 354, -1, 119, 226, 354, -1,990 1 09, 355, 110, -1, 346, -1, 109, 355, 110, 346,991 -1, 109, 356, 110, 347, -1, 109, 356, 110, -1,992 109, 35 5, 110, 109, 134, 261, 135, 110, -1, 109,993 357, 110, -1, 359, -1, 367, -1, 226, 367, -1,994 360, -1, 361, -1, 119, 224, -1, 226, 119, 224,995 -1, 119, 368, -1, 226, 119, 368, -1, 119, 358,996 -1, 226, 119, 358, -1, 111, 112, 224, -1, 362,997 224, -1, 111, 112, 347, 224, -1, 362, 347, 224,998 -1, 3 47, 224, -1, 111, 112, 360, -1, 362, 360,999 -1, 111, 112, 347, 360, -1, 362, 347, 360, -1,1000 3 47, 360, -1, 111, 134, 226, 119, 135, 112, -1,1001 11 1, 134, 226, 163, 135, 112, -1, 111, 134, 230,1002 163, 135, 112, -1, 111, 134, 230, 226, 163, 135,1003 112, -1, 367, -1, 226, 367, -1, 364, -1, 365,1004 -1, 366, -1, 119, 224, -1, 226, 119, 224, -1,1005 119, 368, -1, 226, 119, 368, -1, 119, 363, -1,1006 226, 119, 363, -1, 111, 112, 224, -1, 111, 112,1007 347, 224, -1, 347, 224, -1, 111, 112, 365, -1,1008 111, 112, 3 47, 365, -1, 347, 365, -1, 111, 134,1009 260, 135, 112, -1, 111, 112, 109, 257, 110, -1,1010 367, 109, 134, 257, 135, 110, -1, 217, 109, 134,1011 257, 135, 110, -1, -1, 116, -1, -1, 131, 163,1012 -1 868 255, -1, 246, 114, 247, 115, -1, 246, 273, -1, 869 -1, 246, 273, 245, 114, 247, 115, -1, 246, 109, 870 291, 110, 114, 247, 115, -1, 246, 284, -1, 31, 871 311, -1, 32, 311, -1, 248, -1, 247, 248, -1, 872 249, 132, -1, 40, 249, 132, -1, 250, 132, -1, 873 40, 250, 132, -1, 365, -1, 365, 273, -1, 249, 874 116, 273, -1, 249, 116, -1, 224, 251, -1, 250, 875 116, 311, 251, -1, -1, 253, -1, 317, 252, -1, 876 330, 252, -1, 356, -1, -1, 253, -1, 117, 162, 877 -1, 30, 311, -1, 254, 114, 257, 371, 115, -1, 878 254, 273, -1, -1, 254, 273, 256, 114, 257, 371, 879 115, -1, 273, 258, -1, 257, 116, 273, 258, -1, 880 -1, 131, 162, -1, -1, 260, -1, 262, -1, 261, 881 -1, 261, 135, 116, 134, 262, -1, 262, 135, 116, 882 134, 96, -1, 261, 135, 116, 134, 96, -1, 266, 883 -1, 262, 135, 116, 134, 266, -1, 261, 135, 116, 884 134, 266, -1, 261, 135, 116, 134, 262, 135, 116, 885 134, 266, -1, 267, -1, 262, 135, 116, 134, 267, 886 -1, -1, 264, -1, 265, -1, 265, 135, 116, 134, 887 96, -1, 269, -1, 268, -1, 265, 135, 116, 134, 888 269, -1, 265, 135, 116, 134, 268, -1, 268, -1, 889 361, 271, 372, -1, 369, 271, 372, -1, 226, 369, 890 271, 372, -1, 216, -1, 269, -1, 361, -1, 369, 891 -1, 226, 369, -1, 370, -1, 223, 335, 372, -1, 892 223, 339, 372, -1, 223, -1, 223, 350, -1, 139, 893 -1, 270, 116, 139, -1, 137, -1, 74, -1, 75, 894 -1, 138, -1, 74, -1, 75, -1, 139, -1, 74, 895 -1, 75, -1, 365, -1, 224, -1, 224, 356, -1, 896 365, -1, 370, -1, 224, -1, 224, 344, -1, -1, 897 131, 277, -1, 107, 277, -1, 163, -1, 114, 278, 898 371, 115, -1, -1, 277, -1, 279, 277, -1, 278, 899 116, 277, -1, 278, 116, 279, 277, -1, 280, 117, 900 -1, 273, 117, -1, 281, -1, 280, 281, -1, 80, 901 -1, 113, 273, -1, 111, 134, 163, 135, 112, -1, 902 111, 134, 309, 135, 112, -1, 111, 134, 162, 96, 903 162, 135, 112, -1, 113, 111, 134, 146, 135, 112, 904 -1, 283, -1, 230, 283, -1, 282, 232, -1, 282, 905 232, 226, -1, 284, -1, 226, 284, -1, 283, 227, 906 -1, 75, 109, 291, 110, -1, 286, 372, -1, 285, 907 116, 286, 372, -1, -1, 288, 273, 287, 289, -1, 908 224, 335, -1, 33, -1, 35, -1, 34, -1, -1, 909 289, 290, -1, 129, 273, 109, 291, 110, -1, 129, 910 114, 134, 297, 115, -1, 129, 109, 134, 285, 135, 911 110, 114, 134, 297, 115, 109, 291, 110, -1, 275, 912 -1, 163, -1, 291, 116, 275, -1, 291, 116, 163, 913 -1, 33, 293, -1, 231, 33, 293, -1, 292, 116, 914 293, -1, 294, 289, -1, 294, 289, 131, 275, -1, 915 273, -1, 272, 109, 134, 285, 135, 110, -1, 36, 916 273, 109, 134, 285, 135, 110, 114, 115, -1, -1, 917 36, 273, 109, 134, 285, 135, 110, 114, 296, 297, 918 115, -1, 298, -1, 297, 134, 298, -1, 299, 135, 919 132, -1, 300, 135, 132, -1, 214, -1, 216, -1, 920 299, 135, 116, 134, 271, -1, 224, 308, -1, 300, 921 135, 116, 134, 308, -1, -1, 302, -1, 304, -1, 922 302, 134, 304, -1, -1, 302, -1, 211, -1, 306, 923 -1, 197, -1, -1, 5, 82, 305, 114, 303, 115, 924 -1, 40, 304, -1, 307, -1, 322, 172, -1, 326, 925 134, 206, 172, -1, 215, 172, -1, 223, 322, 172, 926 -1, 226, 322, 172, -1, 230, 322, 172, -1, 230, 927 226, 322, 172, -1, 223, 326, 134, 206, 172, -1, 928 226, 326, 134, 206, 172, -1, 230, 326, 134, 206, 929 172, -1, 230, 226, 326, 134, 206, 172, -1, 317, 930 -1, 322, -1, 330, -1, 162, 123, 162, -1, -1, 931 64, 109, 141, 110, 311, -1, -1, 312, -1, 313, 932 -1, 312, 313, -1, 39, 109, 109, 314, 110, 110, 933 -1, 315, -1, 314, 116, 315, -1, -1, 316, -1, 934 316, 109, 169, 110, -1, 271, -1, 233, -1, 234, 935 -1, 227, -1, 318, 311, -1, 319, -1, 320, 311, 936 -1, 321, 311, -1, 137, -1, 109, 318, 110, -1, 937 119, 317, -1, 119, 226, 317, -1, 109, 319, 110, 938 -1, 318, 348, -1, 109, 319, 110, 348, -1, 109, 939 320, 110, 349, -1, 109, 320, 110, -1, 109, 319, 940 110, 109, 134, 263, 135, 110, -1, 109, 321, 110, 941 -1, 323, 311, -1, 324, -1, 325, 311, -1, 318, 942 109, 134, 263, 135, 110, -1, 109, 324, 110, 109, 943 134, 263, 135, 110, -1, 109, 323, 110, -1, 119, 944 322, -1, 119, 226, 322, -1, 109, 324, 110, -1, 945 109, 324, 110, 348, -1, 109, 325, 110, 349, -1, 946 109, 325, 110, -1, 327, -1, 328, -1, 329, -1, 947 318, 109, 270, 110, -1, 109, 328, 110, 109, 270, 948 110, -1, 109, 327, 110, -1, 119, 326, -1, 119, 949 226, 326, -1, 109, 328, 110, -1, 109, 328, 110, 950 348, -1, 109, 329, 110, 349, -1, 109, 329, 110, 951 -1, 331, 311, -1, 332, -1, 333, 311, -1, 334, 952 311, -1, 340, -1, 109, 331, 110, -1, 119, 330, 953 -1, 119, 226, 330, -1, 109, 332, 110, -1, 331, 954 348, -1, 109, 332, 110, 348, -1, 109, 333, 110, 955 349, -1, 109, 333, 110, -1, 331, 109, 134, 263, 956 135, 110, -1, 109, 332, 110, 109, 134, 263, 135, 957 110, -1, 109, 334, 110, -1, 318, 311, -1, 336, 958 -1, 337, 311, -1, 338, 311, -1, 119, 335, -1, 959 119, 226, 335, -1, 109, 336, 110, -1, 318, 354, 960 -1, 109, 336, 110, 348, -1, 109, 337, 110, 349, 961 -1, 109, 337, 110, -1, 318, 109, 134, 263, 135, 962 110, -1, 109, 336, 110, 109, 134, 263, 135, 110, 963 -1, 109, 338, 110, -1, 340, 311, -1, 341, -1, 964 342, 311, -1, 343, 311, -1, 74, -1, 75, -1, 965 119, 339, -1, 119, 226, 339, -1, 109, 341, 110, 966 -1, 340, 354, -1, 109, 341, 110, 354, -1, 340, 967 109, 134, 263, 135, 110, -1, 109, 341, 110, 109, 968 134, 263, 135, 110, -1, 345, -1, 346, 311, -1, 969 347, 311, -1, 119, -1, 119, 226, -1, 119, 344, 970 -1, 119, 226, 344, -1, 109, 345, 110, -1, 348, 971 -1, 109, 345, 110, 348, -1, 109, 346, 110, 349, 972 -1, 109, 346, 110, -1, 109, 134, 263, 135, 110, 973 -1, 109, 345, 110, 109, 134, 263, 135, 110, -1, 974 109, 347, 110, -1, 111, 112, -1, 111, 112, 349, 975 -1, 349, -1, 111, 134, 163, 135, 112, -1, 111, 976 134, 119, 135, 112, -1, 349, 111, 134, 163, 135, 977 112, -1, 349, 111, 134, 119, 135, 112, -1, 351, 978 -1, 352, 311, -1, 353, 311, -1, 119, -1, 119, 979 226, -1, 119, 350, -1, 119, 226, 350, -1, 109, 980 351, 110, -1, 354, -1, 109, 351, 110, 354, -1, 981 109, 352, 110, 349, -1, 109, 352, 110, -1, 109, 982 134, 263, 135, 110, -1, 109, 351, 110, 109, 134, 983 263, 135, 110, -1, 109, 353, 110, -1, 355, -1, 984 355, 349, -1, 349, -1, 111, 112, -1, 111, 134, 985 226, 119, 135, 112, -1, 111, 134, 226, 135, 112, 986 -1, 111, 134, 226, 163, 135, 112, -1, 111, 134, 987 7, 225, 163, 135, 112, -1, 111, 134, 226, 7, 988 163, 135, 112, -1, 357, -1, 358, 311, -1, 359, 989 311, -1, 119, -1, 119, 226, -1, 119, 356, -1, 990 119, 226, 356, -1, 109, 357, 110, -1, 348, -1, 991 109, 357, 110, 348, -1, 109, 358, 110, 349, -1, 992 109, 358, 110, -1, 109, 357, 110, 109, 134, 263, 993 135, 110, -1, 109, 359, 110, -1, 361, -1, 369, 994 -1, 226, 369, -1, 362, -1, 363, -1, 119, 224, 995 -1, 226, 119, 224, -1, 119, 370, -1, 226, 119, 996 370, -1, 119, 360, -1, 226, 119, 360, -1, 111, 997 112, 224, -1, 364, 224, -1, 111, 112, 349, 224, 998 -1, 364, 349, 224, -1, 349, 224, -1, 111, 112, 999 362, -1, 364, 362, -1, 111, 112, 349, 362, -1, 1000 364, 349, 362, -1, 349, 362, -1, 111, 134, 226, 1001 119, 135, 112, -1, 111, 134, 226, 163, 135, 112, 1002 -1, 111, 134, 230, 163, 135, 112, -1, 111, 134, 1003 230, 226, 163, 135, 112, -1, 369, -1, 226, 369, 1004 -1, 366, -1, 367, -1, 368, -1, 119, 224, -1, 1005 226, 119, 224, -1, 119, 370, -1, 226, 119, 370, 1006 -1, 119, 365, -1, 226, 119, 365, -1, 111, 112, 1007 224, -1, 111, 112, 349, 224, -1, 349, 224, -1, 1008 111, 112, 367, -1, 111, 112, 349, 367, -1, 349, 1009 367, -1, 111, 134, 262, 135, 112, -1, 111, 112, 1010 109, 259, 110, -1, 369, 109, 134, 259, 135, 110, 1011 -1, 217, 109, 134, 259, 135, 110, -1, -1, 116, 1012 -1, -1, 131, 163, -1 1013 1013 }; 1014 1014 … … 1052 1052 1368, 1374, 1375, 1377, 1379, 1384, 1386, 1388, 1390, 1395, 1053 1053 1396, 1398, 1400, 1405, 1406, 1408, 1413, 1414, 1416, 1418, 1054 1423, 1425, 1427, 1432, 1433, 1437, 1439, 144 1, 1443, 1445,1055 1450, 145 2, 1457, 1459, 1464, 1465, 1467, 1468, 1473, 1474,1056 147 6, 1478, 1483, 1485, 1491, 1492, 1494, 1497, 1500, 1505,1057 15 06, 1511, 1516, 1520, 1522, 1524, 1529, 1531, 1537, 1538,1058 154 6, 1547, 1551, 1552, 1553, 1555, 1557, 1564, 1565, 1567,1059 15 69, 1574, 1575, 1581, 1582, 1586, 1587, 1592, 1593, 1594,1060 1 596, 1604, 1605, 1607, 1610, 1612, 1616, 1617, 1618, 1620,1061 162 2, 1626, 1631, 1639, 1640, 1649, 1651, 1656, 1657, 1658,1062 166 2, 1663, 1664, 1668, 1669, 1670, 1674, 1675, 1676, 1681,1063 168 2, 1683, 1684, 1690, 1691, 1693, 1698, 1699, 1704, 1705,1064 17 06, 1707, 1708, 1723, 1724, 1729, 1730, 1738, 1740, 1742,1065 17 45, 1747, 1749, 1772, 1773, 1775, 1777, 1782, 1783, 1785,1066 179 0, 1795, 1796, 1802, 1801, 1805, 1809, 1811, 1813, 1819,1067 182 0, 1825, 1830, 1832, 1837, 1839, 1840, 1842, 1847, 1849,1068 185 1, 1856, 1858, 1863, 1868, 1876, 1882, 1881, 1895, 1896,1069 190 1, 1902, 1906, 1911, 1916, 1924, 1929, 1940, 1941, 1952,1070 195 3, 1959, 1960, 1964, 1965, 1966, 1969, 1968, 1979, 1984,1071 1989, 199 5, 2004, 2010, 2016, 2022, 2028, 2036, 2042, 2050,1072 205 6, 2065, 2066, 2067, 2071, 2075, 2077, 2082, 2083, 2087,1073 20 88, 2093, 2099, 2100, 2103, 2105, 2106, 2110, 2111, 2112,1074 21 13, 2147, 2149, 2150, 2152, 2157, 2162, 2167, 2169, 2171,1075 217 6, 2178, 2180, 2182, 2187, 2189, 2199, 2201, 2202, 2207,1076 22 09, 2211, 2216, 2218, 2220, 2225, 2227, 2229, 2238, 2239,1077 224 0, 2244, 2246, 2248, 2253, 2255, 2257, 2262, 2264, 2266,1078 22 81, 2283, 2284, 2286, 2291, 2292, 2297, 2299, 2301, 2306,1079 23 08, 2310, 2312, 2317, 2319, 2321, 2331, 2333, 2334, 2336,1080 234 1, 2343, 2345, 2350, 2352, 2354, 2356, 2361, 2363, 2365,1081 23 96, 2398, 2399, 2401, 2406, 2411, 2419, 2421, 2423, 2428,1082 243 0, 2435, 2437, 2451, 2452, 2454, 2459, 2461, 2463, 2465,1083 24 67, 2472, 2473, 2475, 2477, 2482, 2484, 2486, 2492, 2494,1084 2 496, 2500, 2502, 2504, 2506, 2520, 2521, 2523, 2528, 2530,1085 253 2, 2534, 2536, 2541, 2542, 2544, 2546, 2551, 2553, 2555,1086 256 1, 2562, 2564, 2573, 2576, 2578, 2581, 2583, 2585, 2598,1087 259 9, 2601, 2606, 2608, 2610, 2612, 2614, 2619, 2620, 2622,1088 26 24, 2629, 2631, 2639, 2640, 2641, 2646, 2647, 2651, 2653,1089 26 55, 2657, 2659, 2661, 2668, 2670, 2672, 2674, 2676, 2678,1090 268 0, 2682, 2684, 2686, 2691, 2693, 2695, 2700, 2726, 2727,1091 27 29, 2733, 2734, 2738, 2740, 2742, 2744, 2746, 2748, 2755,1092 275 7, 2759, 2761, 2763, 2765, 2770, 2775, 2777, 2779, 2797,1093 27 99, 2804, 28051054 1423, 1425, 1427, 1432, 1433, 1437, 1439, 1445, 1444, 1448, 1055 1450, 1455, 1457, 1462, 1464, 1469, 1470, 1472, 1473, 1478, 1056 1479, 1481, 1483, 1488, 1490, 1496, 1497, 1499, 1502, 1505, 1057 1510, 1511, 1516, 1521, 1525, 1527, 1533, 1532, 1539, 1541, 1058 1547, 1548, 1556, 1557, 1561, 1562, 1563, 1565, 1567, 1574, 1059 1575, 1577, 1579, 1584, 1585, 1591, 1592, 1596, 1597, 1602, 1060 1603, 1604, 1606, 1614, 1615, 1617, 1620, 1622, 1626, 1627, 1061 1628, 1630, 1632, 1636, 1641, 1649, 1650, 1659, 1661, 1666, 1062 1667, 1668, 1672, 1673, 1674, 1678, 1679, 1680, 1684, 1685, 1063 1686, 1691, 1692, 1693, 1694, 1700, 1701, 1703, 1708, 1709, 1064 1714, 1715, 1716, 1717, 1718, 1733, 1734, 1739, 1740, 1748, 1065 1750, 1752, 1755, 1757, 1759, 1782, 1783, 1785, 1787, 1792, 1066 1793, 1795, 1800, 1805, 1806, 1812, 1811, 1815, 1819, 1821, 1067 1823, 1829, 1830, 1835, 1840, 1842, 1847, 1849, 1850, 1852, 1068 1857, 1859, 1861, 1866, 1868, 1873, 1878, 1886, 1892, 1891, 1069 1905, 1906, 1911, 1912, 1916, 1921, 1926, 1934, 1939, 1950, 1070 1951, 1962, 1963, 1969, 1970, 1974, 1975, 1976, 1979, 1978, 1071 1989, 1994, 1999, 2005, 2014, 2020, 2026, 2032, 2038, 2046, 1072 2052, 2060, 2066, 2075, 2076, 2077, 2081, 2085, 2087, 2092, 1073 2093, 2097, 2098, 2103, 2109, 2110, 2113, 2115, 2116, 2120, 1074 2121, 2122, 2123, 2157, 2159, 2160, 2162, 2167, 2172, 2177, 1075 2179, 2181, 2186, 2188, 2190, 2192, 2197, 2199, 2209, 2211, 1076 2212, 2217, 2219, 2221, 2226, 2228, 2230, 2235, 2237, 2239, 1077 2248, 2249, 2250, 2254, 2256, 2258, 2263, 2265, 2267, 2272, 1078 2274, 2276, 2291, 2293, 2294, 2296, 2301, 2302, 2307, 2309, 1079 2311, 2316, 2318, 2320, 2322, 2327, 2329, 2331, 2341, 2343, 1080 2344, 2346, 2351, 2353, 2355, 2360, 2362, 2364, 2366, 2371, 1081 2373, 2375, 2406, 2408, 2409, 2411, 2416, 2421, 2429, 2431, 1082 2433, 2438, 2440, 2445, 2447, 2461, 2462, 2464, 2469, 2471, 1083 2473, 2475, 2477, 2482, 2483, 2485, 2487, 2492, 2494, 2496, 1084 2502, 2504, 2506, 2510, 2512, 2514, 2516, 2530, 2531, 2533, 1085 2538, 2540, 2542, 2544, 2546, 2551, 2552, 2554, 2556, 2561, 1086 2563, 2565, 2571, 2572, 2574, 2583, 2586, 2588, 2591, 2593, 1087 2595, 2608, 2609, 2611, 2616, 2618, 2620, 2622, 2624, 2629, 1088 2630, 2632, 2634, 2639, 2641, 2649, 2650, 2651, 2656, 2657, 1089 2661, 2663, 2665, 2667, 2669, 2671, 2678, 2680, 2682, 2684, 1090 2686, 2688, 2690, 2692, 2694, 2696, 2701, 2703, 2705, 2710, 1091 2736, 2737, 2739, 2743, 2744, 2748, 2750, 2752, 2754, 2756, 1092 2758, 2765, 2767, 2769, 2771, 2773, 2775, 2780, 2785, 2787, 1093 2789, 2807, 2809, 2814, 2815 1094 1094 }; 1095 1095 #endif … … 1156 1156 "sue_declaration_specifier", "sue_type_specifier", 1157 1157 "typedef_declaration_specifier", "typedef_type_specifier", 1158 "elaborated_type_name", "aggregate_name", " aggregate_key",1158 "elaborated_type_name", "aggregate_name", "$@2", "aggregate_key", 1159 1159 "field_declaration_list", "field_declaration", 1160 1160 "new_field_declaring_list", "field_declaring_list", "field_declarator", 1161 1161 "bit_subrange_size_opt", "bit_subrange_size", "enum_key", "enum_name", 1162 " enumerator_list", "enumerator_value_opt", "new_parameter_type_list_opt",1163 "new_parameter_type_list ", "new_parameter_list",1164 "new_ abstract_parameter_list", "parameter_type_list_opt",1165 "parameter_type_list ", "parameter_list", "new_parameter_declaration",1166 "new_ abstract_parameter_declaration", "parameter_declaration",1167 " abstract_parameter_declaration", "identifier_list",1168 "identifier_ or_type_name", "no_01_identifier_or_type_name",1169 "no_ attr_identifier_or_type_name", "type_name_no_function", "type_name",1170 " initializer_opt", "initializer", "initializer_list", "designation",1171 " designator_list", "designator", "typegen_declaration_specifier",1172 "typegen_ type_specifier", "typegen_name", "type_parameter_list",1173 "type _parameter", "$@2", "type_class", "assertion_list_opt", "assertion",1174 "type_ name_list", "type_declaring_list", "type_declarator",1175 "type_declar ator_name", "trait_specifier", "$@3",1176 "trait_ declaration_list", "trait_declaration",1162 "$@3", "enumerator_list", "enumerator_value_opt", 1163 "new_parameter_type_list_opt", "new_parameter_type_list", 1164 "new_parameter_list", "new_abstract_parameter_list", 1165 "parameter_type_list_opt", "parameter_type_list", "parameter_list", 1166 "new_parameter_declaration", "new_abstract_parameter_declaration", 1167 "parameter_declaration", "abstract_parameter_declaration", 1168 "identifier_list", "identifier_or_type_name", 1169 "no_01_identifier_or_type_name", "no_attr_identifier_or_type_name", 1170 "type_name_no_function", "type_name", "initializer_opt", "initializer", 1171 "initializer_list", "designation", "designator_list", "designator", 1172 "typegen_declaration_specifier", "typegen_type_specifier", 1173 "typegen_name", "type_parameter_list", "type_parameter", "$@4", 1174 "type_class", "assertion_list_opt", "assertion", "type_name_list", 1175 "type_declaring_list", "type_declarator", "type_declarator_name", 1176 "trait_specifier", "$@5", "trait_declaration_list", "trait_declaration", 1177 1177 "new_trait_declaring_list", "trait_declaring_list", "translation_unit", 1178 1178 "external_definition_list", "external_definition_list_opt", 1179 "external_definition", "$@ 4", "external_function_definition",1179 "external_definition", "$@6", "external_function_definition", 1180 1180 "function_definition", "declarator", "subrange", "asm_name_opt", 1181 1181 "attribute_list_opt", "attribute_list", "attribute", … … 1269 1269 236, 237, 237, 237, 237, 238, 238, 238, 238, 239, 1270 1270 239, 239, 239, 240, 240, 240, 241, 241, 241, 241, 1271 242, 242, 242, 243, 243, 244, 244, 24 4, 244, 244,1272 24 5, 245, 246, 246, 247, 247, 247, 247, 248, 248,1273 24 8, 248, 249, 249, 250, 250, 250, 250, 250, 251,1274 25 1, 252, 253, 254, 254, 254, 255, 255, 256, 256,1275 25 7, 257, 258, 258, 258, 258, 258, 259, 259, 259,1276 2 59, 260, 260, 261, 261, 262, 262, 263, 263, 263,1277 26 3, 264, 264, 264, 264, 264, 265, 265, 265, 265,1278 26 5, 266, 266, 267, 267, 268, 268, 269, 269, 269,1279 27 0, 270, 270, 271, 271, 271, 272, 272, 272, 273,1280 27 3, 273, 273, 274, 274, 274, 275, 275, 276, 276,1281 27 6, 276, 276, 277, 277, 278, 278, 279, 279, 279,1282 2 79, 279, 279, 280, 280, 280, 280, 281, 281, 281,1283 28 2, 283, 283, 285, 284, 284, 286, 286, 286, 287,1284 28 7, 288, 288, 288, 289, 289, 289, 289, 290, 290,1285 29 0, 291, 291, 292, 292, 293, 294, 293, 295, 295,1286 29 6, 296, 297, 297, 297, 298, 298, 299, 299, 300,1287 30 0, 301, 301, 302, 302, 302, 303, 302, 302, 304,1288 304, 30 4, 305, 305, 305, 305, 305, 305, 305, 305,1289 30 5, 306, 306, 306, 307, 308, 308, 309, 309, 310,1290 31 0, 311, 312, 312, 313, 313, 313, 314, 314, 314,1291 31 4, 315, 315, 315, 315, 316, 316, 317, 317, 317,1292 31 8, 318, 318, 318, 319, 319, 320, 320, 320, 321,1293 32 1, 321, 322, 322, 322, 323, 323, 323, 324, 324,1294 32 4, 325, 325, 325, 326, 326, 326, 327, 327, 327,1295 32 8, 328, 328, 328, 329, 329, 330, 330, 330, 331,1296 33 1, 331, 331, 332, 332, 332, 333, 333, 333, 333,1297 33 4, 334, 334, 335, 335, 335, 335, 336, 336, 336,1298 33 7, 337, 337, 337, 338, 338, 339, 339, 339, 340,1299 34 0, 341, 341, 342, 342, 342, 343, 343, 343, 343,1300 34 3, 344, 344, 344, 344, 345, 345, 345, 346, 346,1301 34 6, 347, 347, 347, 347, 348, 348, 348, 349, 349,1302 3 49, 349, 349, 350, 350, 350, 350, 351, 351, 351,1303 35 2, 352, 352, 353, 353, 353, 353, 353, 353, 354,1304 35 4, 354, 355, 355, 355, 355, 355, 356, 356, 356,1305 35 6, 357, 357, 358, 358, 358, 359, 359, 360, 360,1306 36 0, 360, 360, 360, 361, 361, 361, 361, 361, 361,1307 36 1, 361, 361, 361, 362, 362, 362, 362, 363, 363,1308 36 3, 364, 364, 365, 365, 365, 365, 365, 365, 366,1309 36 6, 366, 366, 366, 366, 367, 368, 368, 368, 369,1310 3 69, 370, 3701271 242, 242, 242, 243, 243, 244, 244, 245, 244, 244, 1272 244, 246, 246, 247, 247, 248, 248, 248, 248, 249, 1273 249, 249, 249, 250, 250, 251, 251, 251, 251, 251, 1274 252, 252, 253, 254, 255, 255, 256, 255, 257, 257, 1275 258, 258, 259, 259, 260, 260, 260, 260, 260, 261, 1276 261, 261, 261, 262, 262, 263, 263, 264, 264, 265, 1277 265, 265, 265, 266, 266, 266, 266, 266, 267, 267, 1278 267, 267, 267, 268, 268, 269, 269, 270, 270, 271, 1279 271, 271, 272, 272, 272, 273, 273, 273, 274, 274, 1280 274, 275, 275, 275, 275, 276, 276, 276, 277, 277, 1281 278, 278, 278, 278, 278, 279, 279, 280, 280, 281, 1282 281, 281, 281, 281, 281, 282, 282, 282, 282, 283, 1283 283, 283, 284, 285, 285, 287, 286, 286, 288, 288, 1284 288, 289, 289, 290, 290, 290, 291, 291, 291, 291, 1285 292, 292, 292, 293, 293, 294, 294, 295, 296, 295, 1286 297, 297, 298, 298, 299, 299, 299, 300, 300, 301, 1287 301, 302, 302, 303, 303, 304, 304, 304, 305, 304, 1288 304, 306, 306, 306, 307, 307, 307, 307, 307, 307, 1289 307, 307, 307, 308, 308, 308, 309, 310, 310, 311, 1290 311, 312, 312, 313, 314, 314, 315, 315, 315, 316, 1291 316, 316, 316, 317, 317, 317, 317, 318, 318, 319, 1292 319, 319, 320, 320, 320, 320, 321, 321, 322, 322, 1293 322, 323, 323, 323, 324, 324, 324, 325, 325, 325, 1294 326, 326, 326, 327, 327, 327, 328, 328, 328, 329, 1295 329, 329, 330, 330, 330, 330, 331, 331, 332, 332, 1296 332, 333, 333, 333, 333, 334, 334, 334, 335, 335, 1297 335, 335, 336, 336, 336, 337, 337, 337, 337, 338, 1298 338, 338, 339, 339, 339, 339, 340, 340, 341, 341, 1299 341, 342, 342, 343, 343, 344, 344, 344, 345, 345, 1300 345, 345, 345, 346, 346, 346, 346, 347, 347, 347, 1301 348, 348, 348, 349, 349, 349, 349, 350, 350, 350, 1302 351, 351, 351, 351, 351, 352, 352, 352, 352, 353, 1303 353, 353, 354, 354, 354, 355, 355, 355, 355, 355, 1304 355, 356, 356, 356, 357, 357, 357, 357, 357, 358, 1305 358, 358, 358, 359, 359, 360, 360, 360, 361, 361, 1306 362, 362, 362, 362, 362, 362, 363, 363, 363, 363, 1307 363, 363, 363, 363, 363, 363, 364, 364, 364, 364, 1308 365, 365, 365, 366, 366, 367, 367, 367, 367, 367, 1309 367, 368, 368, 368, 368, 368, 368, 369, 370, 370, 1310 370, 371, 371, 372, 372 1311 1311 }; 1312 1312 … … 1350 1350 3, 1, 2, 2, 2, 4, 4, 4, 4, 1, 1351 1351 2, 2, 3, 1, 2, 2, 1, 2, 2, 3, 1352 1, 2, 2, 1, 1, 4, 2, 5, 7, 2, 1353 2, 2, 1, 2, 2, 3, 2, 3, 1, 2, 1354 3, 2, 2, 4, 0, 1, 2, 2, 1, 0, 1355 1, 2, 2, 5, 6, 2, 2, 4, 0, 2, 1356 0, 1, 1, 1, 5, 5, 5, 1, 5, 5, 1357 9, 1, 5, 0, 1, 1, 5, 1, 1, 5, 1358 5, 1, 3, 3, 4, 1, 1, 1, 1, 2, 1359 1, 3, 3, 1, 2, 1, 3, 1, 1, 1, 1360 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1361 1, 1, 2, 0, 2, 2, 1, 4, 0, 1, 1362 2, 3, 4, 2, 2, 1, 2, 1, 2, 5, 1363 5, 7, 6, 1, 2, 2, 3, 1, 2, 2, 1364 4, 2, 4, 0, 4, 2, 1, 1, 1, 0, 1365 2, 5, 5, 13, 1, 1, 3, 3, 2, 3, 1366 3, 2, 4, 1, 6, 9, 0, 11, 1, 3, 1367 3, 3, 1, 1, 5, 2, 5, 0, 1, 1, 1368 3, 0, 1, 1, 1, 1, 0, 6, 2, 1, 1369 2, 4, 2, 3, 3, 3, 4, 5, 5, 5, 1370 6, 1, 1, 1, 3, 0, 5, 0, 1, 1, 1371 2, 6, 1, 3, 0, 1, 4, 1, 1, 1, 1372 1, 2, 1, 2, 2, 1, 3, 2, 3, 3, 1373 2, 4, 4, 3, 8, 3, 2, 1, 2, 6, 1374 8, 3, 2, 3, 3, 4, 4, 3, 1, 1, 1375 1, 4, 6, 3, 2, 3, 3, 4, 4, 3, 1376 2, 1, 2, 2, 1, 3, 2, 3, 3, 2, 1377 4, 4, 3, 6, 8, 3, 2, 1, 2, 2, 1378 2, 3, 3, 2, 4, 4, 3, 6, 8, 3, 1379 2, 1, 2, 2, 1, 1, 2, 3, 3, 2, 1380 4, 6, 8, 1, 2, 2, 1, 2, 2, 3, 1381 3, 1, 4, 4, 3, 5, 8, 3, 2, 3, 1382 1, 5, 5, 6, 6, 1, 2, 2, 1, 2, 1352 1, 2, 2, 1, 1, 4, 2, 0, 6, 7, 1353 2, 2, 2, 1, 2, 2, 3, 2, 3, 1, 1354 2, 3, 2, 2, 4, 0, 1, 2, 2, 1, 1355 0, 1, 2, 2, 5, 2, 0, 7, 2, 4, 1356 0, 2, 0, 1, 1, 1, 5, 5, 5, 1, 1357 5, 5, 9, 1, 5, 0, 1, 1, 5, 1, 1358 1, 5, 5, 1, 3, 3, 4, 1, 1, 1, 1359 1, 2, 1, 3, 3, 1, 2, 1, 3, 1, 1360 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1361 2, 1, 1, 1, 2, 0, 2, 2, 1, 4, 1362 0, 1, 2, 3, 4, 2, 2, 1, 2, 1, 1363 2, 5, 5, 7, 6, 1, 2, 2, 3, 1, 1364 2, 2, 4, 2, 4, 0, 4, 2, 1, 1, 1365 1, 0, 2, 5, 5, 13, 1, 1, 3, 3, 1366 2, 3, 3, 2, 4, 1, 6, 9, 0, 11, 1367 1, 3, 3, 3, 1, 1, 5, 2, 5, 0, 1368 1, 1, 3, 0, 1, 1, 1, 1, 0, 6, 1369 2, 1, 2, 4, 2, 3, 3, 3, 4, 5, 1370 5, 5, 6, 1, 1, 1, 3, 0, 5, 0, 1371 1, 1, 2, 6, 1, 3, 0, 1, 4, 1, 1372 1, 1, 1, 2, 1, 2, 2, 1, 3, 2, 1373 3, 3, 2, 4, 4, 3, 8, 3, 2, 1, 1374 2, 6, 8, 3, 2, 3, 3, 4, 4, 3, 1375 1, 1, 1, 4, 6, 3, 2, 3, 3, 4, 1376 4, 3, 2, 1, 2, 2, 1, 3, 2, 3, 1377 3, 2, 4, 4, 3, 6, 8, 3, 2, 1, 1378 2, 2, 2, 3, 3, 2, 4, 4, 3, 6, 1379 8, 3, 2, 1, 2, 2, 1, 1, 2, 3, 1380 3, 2, 4, 6, 8, 1, 2, 2, 1, 2, 1383 1381 2, 3, 3, 1, 4, 4, 3, 5, 8, 3, 1384 1, 2, 1, 2, 6, 5, 6, 7, 7, 1, 1385 2, 2, 1, 2, 2, 3, 3, 1, 4, 4, 1386 3, 8, 3, 1, 1, 2, 1, 1, 2, 3, 1387 2, 3, 2, 3, 3, 2, 4, 3, 2, 3, 1388 2, 4, 3, 2, 6, 6, 6, 7, 1, 2, 1389 1, 1, 1, 2, 3, 2, 3, 2, 3, 3, 1390 4, 2, 3, 4, 2, 5, 5, 6, 6, 0, 1391 1, 0, 2 1382 2, 3, 1, 5, 5, 6, 6, 1, 2, 2, 1383 1, 2, 2, 3, 3, 1, 4, 4, 3, 5, 1384 8, 3, 1, 2, 1, 2, 6, 5, 6, 7, 1385 7, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1386 4, 4, 3, 8, 3, 1, 1, 2, 1, 1, 1387 2, 3, 2, 3, 2, 3, 3, 2, 4, 3, 1388 2, 3, 2, 4, 3, 2, 6, 6, 6, 7, 1389 1, 2, 1, 1, 1, 2, 3, 2, 3, 2, 1390 3, 3, 4, 2, 3, 4, 2, 5, 5, 6, 1391 6, 0, 1, 0, 2 1392 1392 }; 1393 1393 … … 1399 1399 294, 294, 315, 313, 316, 314, 317, 318, 300, 302, 1400 1400 301, 0, 303, 329, 321, 326, 324, 325, 323, 322, 1401 327, 328, 333, 330, 331, 332, 54 7, 547, 547, 0,1401 327, 328, 333, 330, 331, 332, 549, 549, 549, 0, 1402 1402 0, 0, 294, 220, 304, 319, 320, 7, 360, 0, 1403 8, 14, 15, 0, 2, 294, 56 5, 9, 525, 523,1404 247, 3, 45 3, 3, 260, 0, 3, 3, 3, 248,1403 8, 14, 15, 0, 2, 294, 567, 9, 527, 525, 1404 247, 3, 455, 3, 260, 0, 3, 3, 3, 248, 1405 1405 3, 0, 0, 0, 295, 296, 298, 294, 307, 310, 1406 1406 312, 341, 286, 334, 339, 287, 349, 288, 356, 353, 1407 363, 0, 0, 364, 289, 47 3, 477, 3, 3, 0,1408 2, 5 19, 524, 529, 299, 0, 0, 547, 577, 547,1409 2, 5 88, 589, 590, 294, 0, 731, 732, 0, 12,1407 363, 0, 0, 364, 289, 475, 479, 3, 3, 0, 1408 2, 521, 526, 531, 299, 0, 0, 549, 579, 549, 1409 2, 590, 591, 592, 294, 0, 733, 734, 0, 12, 1410 1410 294, 0, 13, 270, 271, 0, 295, 290, 291, 292, 1411 293, 52 6, 305, 392, 548, 549, 370, 371, 12, 444,1412 44 5, 11, 440, 443, 0, 503, 498, 489, 444, 445,1413 0, 0, 5 28, 221, 0, 294, 0, 0, 0, 0,1414 0, 0, 0, 0, 294, 294, 2, 0, 73 3, 295,1415 58 2, 594, 737, 730, 728, 735, 0, 0, 0, 254,1416 2, 0, 53 2, 438, 439, 437, 0, 0, 0, 0,1417 54 7, 0, 634, 635, 0, 0, 545, 541, 547, 562,1418 54 7, 547, 542, 2, 543, 547, 601, 547, 547, 604,1411 293, 528, 305, 393, 550, 551, 371, 372, 12, 446, 1412 447, 11, 442, 445, 0, 505, 500, 491, 446, 447, 1413 0, 0, 530, 221, 0, 294, 0, 0, 0, 0, 1414 0, 0, 0, 0, 294, 294, 2, 0, 735, 295, 1415 584, 596, 739, 732, 730, 737, 0, 0, 0, 254, 1416 2, 0, 534, 440, 441, 439, 0, 0, 0, 0, 1417 549, 0, 636, 637, 0, 0, 547, 543, 549, 564, 1418 549, 549, 544, 2, 545, 549, 603, 549, 549, 606, 1419 1419 0, 0, 0, 294, 294, 313, 361, 2, 294, 261, 1420 297, 308, 342, 354, 4 78, 0, 2, 0, 453, 262,1421 295, 335, 350, 357, 47 4, 0, 2, 0, 311, 336,1422 343, 344, 0, 351, 355, 358, 362, 44 5, 294, 294,1423 366, 3 69, 0, 395, 475, 479, 0, 0, 0, 1,1424 294, 2, 53 0, 576, 578, 294, 2, 741, 295, 744,1425 54 5, 545, 295, 0, 0, 0, 273, 547, 542, 2,1426 294, 0, 0, 294, 55 0, 2, 501, 2, 554, 0,1420 297, 308, 342, 354, 480, 0, 2, 0, 455, 262, 1421 295, 335, 350, 357, 476, 0, 2, 0, 311, 336, 1422 343, 344, 0, 351, 355, 358, 362, 447, 294, 294, 1423 366, 370, 0, 395, 477, 481, 0, 0, 0, 1, 1424 294, 2, 532, 578, 580, 294, 2, 743, 295, 746, 1425 547, 547, 295, 0, 0, 0, 273, 549, 544, 2, 1426 294, 0, 0, 294, 552, 2, 503, 2, 556, 0, 1427 1427 0, 0, 0, 0, 0, 18, 59, 4, 5, 6, 1428 1428 16, 0, 0, 0, 294, 2, 0, 294, 65, 66, 1429 1429 67, 68, 48, 19, 49, 22, 47, 69, 0, 72, 1430 1430 76, 79, 82, 87, 90, 92, 94, 96, 98, 100, 1431 105, 49 5, 751, 451, 494, 0, 449, 450, 0, 566,1432 58 1, 584, 587, 593, 596, 599, 360, 0, 2, 739,1433 0, 294, 74 2, 2, 294, 3, 425, 0, 433, 295,1434 294, 307, 334, 287, 349, 356, 3, 3, 40 7, 411,1435 42 1, 426, 473, 294, 427, 706, 707, 294, 428, 430,1436 294, 2, 58 3, 595, 729, 2, 2, 249, 2, 458,1437 0, 45 6, 455, 454, 141, 2, 2, 251, 2, 2,1431 105, 497, 753, 453, 496, 0, 451, 452, 0, 568, 1432 583, 586, 589, 595, 598, 601, 360, 0, 2, 741, 1433 0, 294, 744, 2, 294, 3, 427, 0, 435, 295, 1434 294, 307, 334, 287, 349, 356, 3, 3, 409, 413, 1435 423, 428, 475, 294, 429, 708, 709, 294, 430, 432, 1436 294, 2, 585, 597, 731, 2, 2, 249, 2, 460, 1437 0, 458, 457, 456, 141, 2, 2, 251, 2, 2, 1438 1438 250, 2, 281, 2, 282, 0, 280, 0, 0, 0, 1439 0, 0, 0, 0, 0, 0, 56 7, 606, 0, 453,1440 2, 56 1, 570, 660, 563, 564, 533, 294, 2, 600,1441 6 09, 602, 603, 0, 276, 294, 294, 340, 295, 0,1442 295, 0, 294, 73 4, 738, 736, 534, 294, 545, 255,1443 263, 309, 0, 2, 53 5, 294, 499, 337, 338, 283,1444 352, 359, 0, 294, 2, 38 4, 294, 372, 0, 0,1445 37 8, 728, 294, 749, 398, 0, 476, 500, 252, 253,1446 52 0, 294, 435, 0, 294, 237, 0, 2, 239, 0,1439 0, 0, 0, 0, 0, 0, 569, 608, 0, 455, 1440 2, 563, 572, 662, 565, 566, 535, 294, 2, 602, 1441 611, 604, 605, 0, 276, 294, 294, 340, 295, 0, 1442 295, 0, 294, 736, 740, 738, 536, 294, 547, 255, 1443 263, 309, 0, 2, 537, 294, 501, 337, 338, 283, 1444 352, 359, 0, 294, 2, 385, 294, 373, 0, 0, 1445 379, 730, 0, 751, 400, 0, 478, 502, 252, 253, 1446 522, 294, 437, 0, 294, 237, 0, 2, 239, 0, 1447 1447 295, 0, 257, 2, 258, 278, 0, 0, 2, 294, 1448 54 5, 294, 486, 488, 487, 0, 0, 751, 0, 294,1449 0, 294, 49 0, 294, 560, 558, 559, 557, 0, 552,1450 55 5, 0, 0, 294, 56, 294, 69, 52, 294, 62,1451 294, 294, 50, 51, 64, 2, 127, 0, 0, 44 7,1452 0, 44 6, 111, 294, 54, 55, 17, 0, 29, 30,1448 547, 294, 488, 490, 489, 0, 0, 753, 0, 294, 1449 0, 294, 492, 294, 562, 560, 561, 559, 0, 554, 1450 557, 0, 0, 294, 56, 294, 69, 52, 294, 62, 1451 294, 294, 50, 51, 64, 2, 127, 0, 0, 449, 1452 0, 448, 111, 294, 54, 55, 17, 0, 29, 30, 1453 1453 35, 2, 0, 35, 117, 118, 119, 120, 121, 122, 1454 1454 123, 124, 125, 126, 0, 0, 53, 0, 0, 0, 1455 1455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1456 0, 0, 0, 0, 0, 0, 0, 108, 2, 64 6,1457 45 2, 643, 547, 547, 651, 480, 294, 2, 585, 586,1458 0, 59 7, 598, 0, 2, 740, 743, 111, 294, 2,1459 294, 0, 7 08, 295, 712, 703, 704, 710, 0, 2,1460 2, 6 68, 547, 751, 617, 547, 547, 751, 547, 631,1461 54 7, 547, 682, 434, 665, 547, 547, 673, 680, 294,1462 4 29, 295, 0, 0, 294, 718, 295, 723, 751, 715,1463 294, 72 0, 751, 294, 294, 294, 0, 111, 0, 18,1464 5, 2, 0, 19, 0, 4 59, 749, 0, 0, 465,1465 241, 0, 294, 0, 0, 0, 54 5, 569, 573, 575,1466 60 5, 608, 612, 615, 568, 607, 0, 284, 658, 0,1456 0, 0, 0, 0, 0, 0, 0, 108, 2, 648, 1457 454, 645, 549, 549, 653, 482, 294, 2, 587, 588, 1458 0, 599, 600, 0, 2, 742, 745, 111, 294, 2, 1459 294, 0, 710, 295, 714, 705, 706, 712, 0, 2, 1460 2, 670, 549, 753, 619, 549, 549, 753, 549, 633, 1461 549, 549, 684, 436, 667, 549, 549, 675, 682, 294, 1462 431, 295, 0, 0, 294, 720, 295, 725, 753, 717, 1463 294, 722, 753, 294, 294, 294, 0, 111, 0, 18, 1464 5, 2, 0, 19, 0, 461, 751, 0, 0, 467, 1465 241, 0, 294, 0, 0, 0, 547, 571, 575, 577, 1466 607, 610, 614, 617, 570, 609, 0, 284, 660, 0, 1467 1467 294, 277, 0, 0, 0, 0, 275, 2, 0, 259, 1468 53 6, 294, 0, 0, 0, 0, 294, 294, 0, 0,1469 69 2, 382, 385, 389, 547, 389, 697, 388, 689, 547,1470 54 7, 365, 373, 381, 374, 547, 376, 379, 294, 750,1471 0, 0, 39 6, 749, 295, 3, 414, 3, 418, 417,1472 59 1, 0, 531, 294, 3, 3, 294, 433, 295, 3,1473 42 7, 428, 2, 0, 0, 0, 485, 306, 294, 481,1474 48 3, 3, 2, 2, 0, 502, 3, 0, 554, 129,1468 538, 294, 0, 0, 0, 0, 294, 294, 0, 0, 1469 694, 383, 386, 390, 549, 390, 699, 389, 691, 549, 1470 549, 365, 374, 382, 375, 549, 377, 380, 294, 752, 1471 0, 0, 398, 0, 295, 3, 416, 3, 420, 419, 1472 593, 0, 533, 294, 3, 3, 294, 435, 295, 3, 1473 429, 430, 2, 0, 0, 0, 487, 306, 294, 483, 1474 485, 3, 2, 2, 0, 504, 3, 0, 556, 129, 1475 1475 0, 0, 222, 0, 0, 0, 2, 0, 0, 36, 1476 0, 0, 111, 294, 20, 0, 21, 0, 69 2, 448,1476 0, 0, 111, 294, 20, 0, 21, 0, 694, 450, 1477 1477 0, 109, 3, 2, 27, 2, 0, 33, 0, 2, 1478 1478 25, 0, 106, 107, 73, 74, 75, 77, 78, 80, 1479 1479 81, 85, 86, 83, 84, 88, 89, 91, 93, 95, 1480 97, 99, 0, 0, 75 2, 294, 0, 0, 0, 647,1481 6 48, 644, 645, 497, 496, 294, 0, 3, 294, 714,1482 294, 7 19, 295, 294, 294, 294, 662, 705, 661, 2,1483 294, 0, 0, 0, 0, 0, 0, 0, 0, 68 3,1484 0, 6 69, 620, 636, 670, 2, 616, 623, 431, 618,1485 6 19, 432, 2, 630, 639, 632, 633, 666, 667, 681,1486 7 09, 713, 711, 751, 268, 2, 745, 2, 422, 717,1487 72 2, 423, 0, 401, 3, 3, 3, 3, 453, 3,1488 0, 2, 4 68, 464, 750, 0, 460, 467, 2, 463,1489 46 6, 0, 294, 242, 264, 3, 272, 274, 0, 453,1490 2, 57 1, 572, 2, 610, 611, 0, 659, 537, 3,1491 346, 345, 348, 347, 294, 5 38, 0, 539, 294, 375,1492 37 7, 2, 0, 0, 0, 0, 104, 391, 693, 694,1493 38 6, 390, 387, 690, 691, 380, 384, 367, 398, 393,1494 399, 0, 0, 0, 436, 240, 0, 0, 3, 2,1495 6 68, 429, 0, 527, 0, 751, 489, 0, 294, 294,1496 294, 0, 55 1, 553, 130, 0, 0, 215, 0, 0,1480 97, 99, 0, 0, 754, 294, 0, 0, 0, 649, 1481 650, 646, 647, 499, 498, 294, 0, 3, 294, 716, 1482 294, 721, 295, 294, 294, 294, 664, 707, 663, 2, 1483 294, 0, 0, 0, 0, 0, 0, 0, 0, 685, 1484 0, 671, 622, 638, 672, 2, 618, 625, 433, 620, 1485 621, 434, 2, 632, 641, 634, 635, 668, 669, 683, 1486 711, 715, 713, 753, 268, 2, 747, 2, 424, 719, 1487 724, 425, 0, 403, 3, 3, 3, 3, 455, 3, 1488 0, 2, 470, 466, 752, 0, 462, 469, 2, 465, 1489 468, 0, 294, 242, 264, 3, 272, 274, 0, 455, 1490 2, 573, 574, 2, 612, 613, 0, 661, 539, 3, 1491 346, 345, 348, 347, 294, 540, 0, 541, 294, 376, 1492 378, 2, 0, 0, 0, 0, 104, 392, 695, 696, 1493 387, 391, 388, 692, 693, 381, 385, 294, 400, 394, 1494 401, 751, 0, 0, 438, 240, 0, 0, 3, 2, 1495 670, 431, 0, 529, 0, 753, 491, 0, 294, 294, 1496 294, 0, 553, 555, 130, 0, 0, 215, 0, 0, 1497 1497 0, 223, 224, 57, 0, 63, 294, 0, 61, 60, 1498 0, 128, 69 3, 458, 70, 71, 110, 115, 3, 109,1498 0, 128, 695, 460, 70, 71, 110, 115, 3, 109, 1499 1499 0, 0, 0, 24, 35, 3, 0, 32, 102, 0, 1500 3, 65 0, 654, 657, 649, 3, 592, 3, 716, 721,1501 2, 294, 3, 3, 295, 0, 3, 62 2, 626, 629,1502 6 38, 672, 676, 679, 294, 3, 621, 637, 671, 294,1503 294, 42 4, 294, 294, 746, 0, 0, 0, 0, 256,1504 0, 104, 0, 3, 3, 0, 46 1, 0, 457, 0,1500 3, 652, 656, 659, 651, 3, 594, 3, 718, 723, 1501 2, 294, 3, 3, 295, 0, 3, 624, 628, 631, 1502 640, 674, 678, 681, 294, 3, 623, 639, 673, 294, 1503 294, 426, 294, 294, 748, 0, 0, 0, 0, 256, 1504 0, 104, 0, 3, 3, 0, 463, 0, 459, 0, 1505 1505 0, 245, 294, 0, 0, 129, 0, 0, 0, 0, 1506 1506 0, 129, 0, 0, 109, 109, 2, 0, 0, 0, 1507 1507 3, 131, 132, 2, 143, 133, 134, 135, 136, 137, 1508 138, 145, 147, 0, 0, 0, 285, 294, 294, 547, 1509 0, 540, 294, 111, 696, 700, 702, 695, 383, 397, 1510 394, 579, 2, 664, 663, 0, 669, 2, 482, 484, 1511 504, 3, 512, 513, 0, 2, 508, 3, 3, 0, 1512 0, 556, 222, 0, 0, 0, 222, 0, 0, 3, 1513 37, 749, 109, 0, 3, 661, 42, 3, 40, 3, 1514 34, 0, 3, 101, 103, 0, 2, 652, 653, 0, 1515 0, 294, 0, 0, 0, 3, 638, 0, 2, 624, 1516 625, 2, 640, 2, 674, 675, 0, 0, 3, 0, 1517 3, 3, 3, 3, 409, 408, 412, 2, 2, 748, 1518 747, 112, 0, 0, 0, 0, 3, 462, 3, 0, 1519 243, 146, 3, 295, 294, 0, 0, 0, 0, 2, 1520 191, 0, 189, 0, 0, 0, 0, 0, 0, 0, 1521 0, 111, 0, 547, 151, 148, 294, 0, 0, 267, 1522 279, 3, 3, 546, 613, 368, 2, 698, 699, 294, 1523 266, 294, 0, 515, 492, 294, 0, 0, 491, 506, 1524 0, 0, 0, 216, 0, 225, 58, 109, 0, 0, 1525 116, 113, 0, 0, 0, 0, 0, 0, 23, 0, 1526 655, 294, 580, 265, 724, 725, 726, 0, 677, 294, 1527 294, 294, 3, 3, 0, 685, 0, 0, 0, 0, 1528 294, 294, 3, 544, 469, 470, 0, 0, 246, 295, 1529 0, 0, 0, 0, 294, 192, 190, 0, 187, 193, 1530 0, 0, 0, 0, 197, 200, 198, 194, 0, 195, 1531 35, 129, 144, 142, 244, 0, 0, 294, 416, 420, 1532 419, 0, 509, 2, 510, 2, 511, 505, 294, 228, 1533 0, 226, 0, 228, 3, 661, 31, 114, 2, 45, 1534 2, 43, 41, 28, 112, 26, 3, 727, 3, 3, 1535 3, 0, 0, 684, 686, 627, 641, 269, 2, 406, 1536 3, 405, 0, 472, 469, 129, 0, 0, 129, 3, 1537 0, 129, 188, 0, 2, 2, 209, 199, 0, 0, 1538 0, 0, 140, 574, 614, 3, 2, 0, 0, 2, 1539 229, 0, 0, 217, 0, 0, 0, 0, 0, 0, 1540 0, 0, 0, 687, 688, 294, 0, 471, 152, 0, 1541 0, 2, 165, 129, 154, 0, 182, 0, 129, 0, 1542 2, 156, 0, 2, 0, 2, 2, 2, 196, 32, 1543 0, 294, 514, 516, 507, 0, 0, 0, 0, 114, 1544 38, 3, 3, 656, 628, 642, 678, 410, 129, 158, 1545 161, 0, 160, 164, 3, 167, 166, 0, 129, 184, 1546 129, 3, 0, 294, 0, 294, 0, 2, 0, 2, 1547 139, 701, 2, 230, 231, 0, 227, 218, 0, 0, 1548 0, 153, 0, 0, 163, 233, 168, 2, 235, 183, 1549 0, 186, 172, 201, 3, 210, 214, 203, 3, 0, 1550 294, 0, 294, 0, 0, 0, 39, 46, 44, 159, 1551 162, 129, 0, 169, 294, 129, 129, 0, 173, 0, 1552 0, 692, 211, 212, 213, 0, 202, 3, 204, 3, 1553 294, 219, 232, 149, 170, 155, 129, 236, 185, 180, 1554 178, 174, 157, 129, 0, 693, 0, 0, 0, 0, 1555 150, 171, 181, 175, 179, 178, 176, 3, 3, 0, 1556 0, 493, 177, 205, 207, 3, 3, 206, 208 1508 138, 145, 147, 0, 0, 0, 285, 294, 294, 549, 1509 0, 542, 294, 111, 698, 702, 704, 697, 384, 368, 1510 399, 0, 581, 2, 666, 665, 0, 671, 2, 484, 1511 486, 506, 3, 514, 515, 0, 2, 510, 3, 3, 1512 0, 0, 558, 222, 0, 0, 0, 222, 0, 0, 1513 3, 37, 751, 109, 0, 3, 663, 42, 3, 40, 1514 3, 34, 0, 3, 101, 103, 0, 2, 654, 655, 1515 0, 0, 294, 0, 0, 0, 3, 640, 0, 2, 1516 626, 627, 2, 642, 2, 676, 677, 0, 0, 3, 1517 0, 3, 3, 3, 3, 411, 410, 414, 2, 2, 1518 750, 749, 112, 0, 0, 0, 0, 3, 464, 3, 1519 0, 243, 146, 3, 295, 294, 0, 0, 0, 0, 1520 2, 191, 0, 189, 0, 0, 0, 0, 0, 0, 1521 0, 0, 111, 0, 549, 151, 148, 294, 0, 0, 1522 267, 279, 3, 3, 548, 615, 369, 2, 700, 701, 1523 397, 294, 266, 294, 0, 517, 494, 294, 0, 0, 1524 493, 508, 0, 0, 0, 216, 0, 225, 58, 109, 1525 0, 0, 116, 113, 0, 0, 0, 0, 0, 0, 1526 23, 0, 657, 294, 582, 265, 726, 727, 728, 0, 1527 679, 294, 294, 294, 3, 3, 0, 687, 0, 0, 1528 0, 0, 294, 294, 3, 546, 471, 472, 0, 0, 1529 246, 295, 0, 0, 0, 0, 294, 192, 190, 0, 1530 187, 193, 0, 0, 0, 0, 197, 200, 198, 194, 1531 0, 195, 35, 129, 144, 142, 244, 0, 0, 294, 1532 418, 422, 421, 0, 511, 2, 512, 2, 513, 507, 1533 294, 228, 0, 226, 0, 228, 3, 663, 31, 114, 1534 2, 45, 2, 43, 41, 28, 112, 26, 3, 729, 1535 3, 3, 3, 0, 0, 686, 688, 629, 643, 269, 1536 2, 408, 3, 407, 0, 474, 471, 129, 0, 0, 1537 129, 3, 0, 129, 188, 0, 2, 2, 209, 199, 1538 0, 0, 0, 0, 140, 576, 616, 3, 2, 0, 1539 0, 2, 229, 0, 0, 217, 0, 0, 0, 0, 1540 0, 0, 0, 0, 0, 689, 690, 294, 0, 473, 1541 152, 0, 0, 2, 165, 129, 154, 0, 182, 0, 1542 129, 0, 2, 156, 0, 2, 0, 2, 2, 2, 1543 196, 32, 0, 294, 516, 518, 509, 0, 0, 0, 1544 0, 114, 38, 3, 3, 658, 630, 644, 680, 412, 1545 129, 158, 161, 0, 160, 164, 3, 167, 166, 0, 1546 129, 184, 129, 3, 0, 294, 0, 294, 0, 2, 1547 0, 2, 139, 703, 2, 230, 231, 0, 227, 218, 1548 0, 0, 0, 153, 0, 0, 163, 233, 168, 2, 1549 235, 183, 0, 186, 172, 201, 3, 210, 214, 203, 1550 3, 0, 294, 0, 294, 0, 0, 0, 39, 46, 1551 44, 159, 162, 129, 0, 169, 294, 129, 129, 0, 1552 173, 0, 0, 694, 211, 212, 213, 0, 202, 3, 1553 204, 3, 294, 219, 232, 149, 170, 155, 129, 236, 1554 185, 180, 178, 174, 157, 129, 0, 695, 0, 0, 1555 0, 0, 150, 171, 181, 175, 179, 178, 176, 3, 1556 3, 0, 0, 495, 177, 205, 207, 3, 3, 206, 1557 208 1557 1558 }; 1558 1559 … … 1561 1562 { 1562 1563 -1, 840, 475, 302, 46, 132, 133, 303, 304, 305, 1563 306, 786, 787, 114 7, 1148, 307, 308, 309, 310, 311,1564 306, 786, 787, 1148, 1149, 307, 308, 309, 310, 311, 1564 1565 312, 313, 314, 315, 316, 317, 318, 319, 320, 1052, 1565 526, 997, 322, 998, 555, 974, 1079, 154 3, 1081, 1082,1566 1083, 1084, 154 4, 1085, 1086, 1460, 1461, 1422, 1423, 1424,1567 152 2, 1523, 1527, 1528, 1563, 1564, 1087, 1380, 1088, 1089,1568 131 4, 1315, 1316, 1504, 1090, 144, 980, 981, 982, 1401,1569 148 5, 1496, 1497, 476, 477, 902, 903, 1060, 49, 50,1566 526, 997, 322, 998, 555, 974, 1079, 1545, 1081, 1082, 1567 1083, 1084, 1546, 1085, 1086, 1462, 1463, 1424, 1425, 1426, 1568 1524, 1525, 1529, 1530, 1565, 1566, 1087, 1382, 1088, 1089, 1569 1316, 1317, 1318, 1506, 1090, 144, 980, 981, 982, 1403, 1570 1487, 1498, 1499, 476, 477, 902, 903, 1060, 49, 50, 1570 1571 51, 52, 53, 346, 157, 56, 57, 58, 59, 60, 1571 1572 348, 62, 63, 262, 65, 66, 273, 350, 351, 69, 1572 1573 70, 71, 72, 117, 74, 203, 353, 118, 77, 119, 1573 79, 80, 81, 456, 457, 458, 459, 701, 940, 702,1574 82, 83, 463, 722, 882, 883, 356, 357, 725, 726,1575 72 7, 358, 359, 360, 361, 473, 340, 134, 135, 530,1576 324, 169, 655, 656, 657, 658, 659, 84, 120, 86,1577 496, 497, 966, 498, 276, 502, 325, 87, 136, 137,1578 88, 1338, 1125, 1126, 1127, 1128, 89, 90, 743, 91,1579 272, 92, 93, 186, 1054, 689, 411, 124, 94, 508,1580 509, 510, 187, 267, 189, 190, 191, 268, 97, 98,1581 9 9, 100, 101, 102, 103, 194, 195, 196, 197, 198,1582 852, 614, 615, 616, 617, 199, 619, 620, 621, 580,1583 581, 582, 583, 706, 104, 623, 624, 625, 626, 627,1584 62 8, 939, 708, 709, 710, 604, 364, 365, 366, 367,1585 3 26, 163, 106, 107, 108, 369, 720, 5771574 79, 80, 462, 81, 456, 457, 458, 459, 701, 940, 1575 702, 82, 83, 465, 463, 722, 882, 883, 356, 357, 1576 725, 726, 727, 358, 359, 360, 361, 473, 340, 134, 1577 135, 530, 324, 169, 655, 656, 657, 658, 659, 84, 1578 120, 86, 496, 497, 966, 498, 276, 502, 325, 87, 1579 136, 137, 88, 1340, 1126, 1127, 1128, 1129, 89, 90, 1580 743, 91, 272, 92, 93, 186, 1054, 689, 411, 124, 1581 94, 508, 509, 510, 187, 267, 189, 190, 191, 268, 1582 97, 98, 99, 100, 101, 102, 103, 194, 195, 196, 1583 197, 198, 852, 614, 615, 616, 617, 199, 619, 620, 1584 621, 580, 581, 582, 583, 706, 104, 623, 624, 625, 1585 626, 627, 628, 939, 708, 709, 710, 604, 364, 365, 1586 366, 367, 326, 163, 106, 107, 108, 369, 720, 577 1586 1587 }; 1587 1588 1588 1589 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1589 1590 STATE-NUM. */ 1590 #define YYPACT_NINF -13 561591 #define YYPACT_NINF -1332 1591 1592 static const yytype_int16 yypact[] = 1592 1593 { 1593 5863, 4890, -1356, 65, -1356, -1356, -1356, -1356, -1356, -1356, 1594 -1356, 9, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 1595 -1356, -1356, -1356, -1356, -1356, -1356, 139, 139, 139, 1216, 1596 781, 63, 4761, 238, -1356, -1356, -1356, -1356, -1356, 165, 1597 -1356, -1356, -1356, 572, 207, 2350, -1356, -1356, -1356, -1356, 1598 -1356, -1356, 59, 217, -1356, 1506, -1356, -1356, -1356, -1356, 1599 220, 1734, 341, 66, 7480, -1356, -1356, 9240, 1240, -1356, 1600 -1356, -1356, 1320, 351, 3183, 1125, 757, 1320, 1149, -1356, 1601 -1356, 1042, 895, -1356, 1320, 1227, -1356, 243, -1356, 378, 1602 403, -1356, -1356, -1356, -1356, 303, 217, 139, -1356, 139, 1603 -1356, -1356, -1356, -1356, 9019, 1506, -1356, -1356, 1506, -1356, 1604 9774, 314, -1356, -1356, -1356, 1811, 9812, -1356, 726, 726, 1605 726, -1356, -1356, -1356, 139, -1356, -1356, -1356, 353, 381, 1606 400, -1356, -1356, -1356, 417, -1356, -1356, -1356, -1356, -1356, 1607 424, 436, -1356, -1356, 28, 8867, 2398, 371, 447, 459, 1608 467, 482, 495, 557, 8670, 6999, 468, 584, -1356, 9350, 1609 -1356, -1356, -1356, -1356, 594, -1356, 335, 4628, 4628, -1356, 1610 575, 352, -1356, -1356, -1356, -1356, 602, 432, 434, 470, 1611 139, 624, -1356, -1356, 1734, 1711, 656, -1356, 68, -1356, 1612 139, 139, 217, -1356, -1356, 93, -1356, 139, 139, -1356, 1613 2093, 670, 699, 726, 6910, -1356, -1356, 654, 2350, -1356, 1614 -1356, 1320, -1356, -1356, -1356, 217, -1356, 1506, 59, -1356, 1615 7819, -1356, 726, 726, 726, 217, -1356, 1216, -1356, 6673, 1616 -1356, -1356, 659, 726, -1356, 726, -1356, 165, 8867, 8784, 1617 714, -1356, 781, 740, 726, -1356, 1216, 737, 749, -1356, 1618 4761, 791, -1356, -1356, -1356, 4061, -1356, -1356, 7390, -1356, 1619 656, 62, 9812, 10718, 1811, 2093, -1356, 152, -1356, -1356, 1620 9774, 1506, 770, 7511, -1356, -1356, 269, -1356, 3425, 779, 1621 827, 3643, 814, 10872, 10930, -1356, 817, -1356, -1356, -1356, 1622 -1356, 10949, 10949, 791, 8525, 818, 10872, 8981, -1356, -1356, 1623 -1356, -1356, -1356, -1356, 855, -1356, 889, 2173, 10872, -1356, 1624 498, 751, 809, 524, 880, 822, 831, 819, 869, 5, 1625 -1356, -1356, 883, 64, -1356, 116, -1356, -1356, 2398, -1356, 1626 -1356, 516, 900, -1356, 644, 900, 913, 165, -1356, -1356, 1627 915, 9019, -1356, 916, 8639, -1356, -1356, 1004, 1539, 8240, 1628 6910, 1320, -1356, 1320, 726, 726, -1356, -1356, -1356, -1356, 1629 -1356, -1356, 726, 9885, 1506, -1356, -1356, 9923, 1500, -1356, 1630 7969, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 929, 5043, 1631 10872, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 1632 -1356, -1356, -1356, -1356, -1356, 1811, -1356, 876, 936, 938, 1633 944, 885, 947, 954, 957, 1711, -1356, -1356, 930, 59, 1634 960, -1356, -1356, 970, -1356, -1356, -1356, 4061, -1356, -1356, 1635 -1356, -1356, -1356, 2093, -1356, 8867, 8867, -1356, 726, 1811, 1636 7030, 1506, 8313, -1356, -1356, -1356, -1356, 4061, 62, -1356, 1637 -1356, 1320, 217, -1356, -1356, 4061, -1356, 6793, -1356, -1356, 1638 726, 726, 472, 9953, 974, 1092, 5671, -1356, 521, 543, 1639 781, -1356, 8784, 976, 959, 781, 726, -1356, -1356, -1356, 1640 -1356, 10252, -1356, 560, 6550, -1356, 217, 981, -1356, 1811, 1641 11070, 10776, -1356, -1356, -1356, -1356, 921, 2093, -1356, 8386, 1642 656, 6061, -1356, -1356, -1356, 820, 612, 883, 781, 7511, 1643 1338, 9774, -1356, 7511, -1356, -1356, -1356, -1356, 638, -1356, 1644 994, 827, 255, 8525, -1356, 9953, -1356, -1356, 8525, -1356, 1645 8753, 8525, -1356, -1356, -1356, 993, -1356, 665, 998, 161, 1646 1002, -1356, 9490, 6639, -1356, -1356, -1356, 290, -1356, -1356, 1647 10795, -1356, 366, 10795, -1356, -1356, -1356, -1356, -1356, -1356, 1648 -1356, -1356, -1356, -1356, 10718, 10718, -1356, 10872, 10872, 10872, 1649 10872, 10872, 10872, 10872, 10872, 10872, 10872, 10872, 10872, 10872, 1650 10872, 10872, 10872, 10872, 10872, 5362, 10718, -1356, 64, 1168, 1651 -1356, -1356, 139, 139, -1356, -1356, 8867, -1356, -1356, 970, 1652 791, -1356, 970, 10853, -1356, -1356, -1356, 3524, 6639, 1016, 1653 9095, 1028, -1356, 10035, -1356, -1356, 594, -1356, 1029, 776, 1654 1036, 1922, 164, 883, -1356, 139, 139, 883, 174, -1356, 1655 139, 139, 970, -1356, -1356, 139, 139, -1356, 900, 10065, 1656 1506, 11215, 233, 347, 10065, -1356, 10214, -1356, 883, -1356, 1657 9885, -1356, 125, 7935, 7935, 7935, 1506, -1356, 6115, 1033, 1658 414, 929, 1150, 1037, 1038, -1356, 1054, 4628, 555, -1356, 1659 1124, 1506, 7935, 791, 1811, 791, 656, 704, 900, -1356, 1660 -1356, 729, 900, -1356, -1356, -1356, 827, -1356, 900, 217, 1661 10252, -1356, 666, 1061, 679, 1062, -1356, 1065, 217, -1356, 1662 -1356, 4061, 217, 1059, 553, 573, 10103, 7119, 1590, 10872, 1663 1954, -1356, -1356, 1066, 39, 1066, -1356, -1356, -1356, 139, 1664 139, -1356, -1356, 781, -1356, 139, -1356, -1356, 9630, 781, 1665 1069, 10872, -1356, 976, 11215, -1356, -1356, 1075, -1356, -1356, 1666 -1356, 791, -1356, 11143, 10872, -1356, 7935, 588, 8240, -1356, 1667 -1356, 594, 1072, 1077, 820, 2542, -1356, -1356, 7511, -1356, 1668 -1356, 1074, -1356, -1356, 1088, -1356, 1074, 1090, 3425, 10718, 1669 205, 1073, 47, 1094, 1082, 1100, 818, 1102, 1110, -1356, 1670 1113, 1117, 9661, 6759, -1356, 10718, -1356, 161, 1861, -1356, 1671 6396, 10718, 1120, -1356, -1356, 929, 689, -1356, 10718, -1356, 1672 -1356, 865, -1356, -1356, -1356, -1356, -1356, 498, 498, 751, 1673 751, 809, 809, 809, 809, 524, 524, 880, 822, 831, 1674 819, 869, 10872, 875, -1356, 10252, 1119, 1140, 1142, 1168, 1675 -1356, -1356, -1356, -1356, -1356, 10252, 691, 10872, 7935, -1356, 1676 9885, -1356, 7239, 9209, 8905, 6999, -1356, -1356, -1356, 776, 1677 10252, 927, 1145, 1152, 1158, 1159, 1162, 1166, 1172, -1356, 1678 4275, 1922, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 1679 -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 970, 1680 -1356, -1356, -1356, 883, -1356, -1356, -1356, -1356, -1356, -1356, 1681 -1356, -1356, 1176, -1356, 1183, 1185, -1356, -1356, 59, 1120, 1682 6115, -1356, -1356, -1356, 5043, 1144, -1356, -1356, -1356, -1356, 1683 -1356, 781, 6242, 1231, -1356, -1356, -1356, -1356, 1165, 59, 1684 -1356, -1356, 970, -1356, -1356, 970, 29, 970, -1356, -1356, 1685 -1356, -1356, -1356, -1356, 9380, -1356, 217, -1356, 8784, -1356, 1686 -1356, 1190, 906, 1187, 1193, 1198, -1356, -1356, 1954, -1356, 1687 -1356, -1356, -1356, -1356, -1356, -1356, 1092, -1356, 959, -1356, 1688 -1356, 1195, 1202, 1201, -1356, -1356, 1206, 1210, -1356, 588, 1689 2182, -1356, 533, -1356, 2542, 883, -1356, 1213, 7511, 10176, 1690 8867, 1220, -1356, -1356, 1218, 1222, 1224, -1356, 10872, 230, 1691 -1, 1219, -1356, 1225, 791, 1225, 6639, 10718, -1356, -1356, 1692 1225, -1356, 1861, 5043, -1356, -1356, -1356, -1356, 1236, 10718, 1693 1233, 791, 6115, -1356, 10795, -1356, 791, -1356, -1356, 10718, 1694 -1356, 782, 900, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 1695 929, 8639, -1356, -1356, 7359, 1237, -1356, 807, 900, -1356, 1696 825, 836, 900, -1356, 726, 4460, -1356, -1356, -1356, 10252, 1697 10252, -1356, 8313, 8313, -1356, 1241, 1248, 1246, 1259, -1356, 1698 1262, 672, 244, 1120, -1356, 791, -1356, 4628, -1356, 10718, 1699 578, -1356, 6519, 1267, 1271, 10660, 1272, 1277, 122, 304, 1700 298, 10718, 1279, 217, 10718, 10718, 1280, 678, 1254, 1261, 1701 -1356, -1356, -1356, 1284, -1356, -1356, -1356, -1356, -1356, -1356, 1702 -1356, -1356, -1356, 781, 1290, 10718, -1356, 10252, 10252, 139, 1703 1292, -1356, 9743, 9520, 847, 900, -1356, -1356, -1356, -1356, 1704 -1356, -1356, -1356, -1356, -1356, 1293, 2182, -1356, -1356, 1275, 1705 -1356, 1074, -1356, -1356, 1811, 1296, -1356, -1356, -1356, 706, 1706 1291, -1356, 47, 1305, 10872, 1288, 47, 47, 1314, 1310, 1707 -1356, 1054, 10718, 1315, 1236, 711, 214, 1317, -1356, 1310, 1708 -1356, 1323, 1317, -1356, -1356, 1328, -1356, -1356, 970, 1329, 1709 1330, 6879, 1331, 1339, 1341, -1356, -1356, 1340, -1356, -1356, 1710 970, -1356, -1356, -1356, -1356, 970, 10718, 10718, 10872, 1344, 1711 -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 1712 -1356, -1356, 10872, 10872, 1347, 1349, 1317, -1356, -1356, 781, 1713 -1356, -1356, -1356, 7746, 10176, 10718, 10718, 1394, 10718, -1356, 1714 -1356, 1333, -1356, 1334, 10718, 1335, 1343, 10718, 992, 1345, 1715 36, 8158, 1229, 139, -1356, -1356, 6242, 1348, 585, -1356, 1716 -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 970, 10478, 1717 -1356, 8386, 1360, -1356, -1356, 10176, 592, 598, -1356, 1356, 1718 1355, 827, 1366, -1356, 179, -1356, -1356, 10718, 1368, 1363, 1719 -1356, -1356, 1369, 484, 663, 791, 1376, 1378, -1356, 1380, 1720 -1356, 10252, -1356, -1356, -1356, -1356, -1356, 1382, -1356, 10252, 1721 10252, 10252, -1356, -1356, 1386, -1356, 1389, 1392, 1393, 682, 1722 8008, 8124, -1356, -1356, 370, -1356, 1396, 1397, -1356, 8459, 1723 715, 725, 1395, 760, 6377, -1356, -1356, 641, -1356, -1356, 1724 796, 1402, 1403, 217, 1453, 961, -1356, -1356, 10718, -1356, 1725 10795, 10660, -1356, -1356, -1356, 1406, 1407, 10252, -1356, -1356, 1726 -1356, 1405, -1356, -1356, -1356, -1356, -1356, -1356, 10176, 827, 1727 287, -1356, 1388, 827, 1236, 361, -1356, -1356, -1356, -1356, 1728 -1356, -1356, -1356, -1356, 1408, -1356, -1356, -1356, -1356, -1356, 1729 -1356, 1411, 1412, -1356, -1356, -1356, -1356, -1356, -1356, -1356, 1730 1418, -1356, 1417, -1356, -1356, 10660, 272, 10718, 10660, -1356, 1731 1422, 10718, -1356, 306, 1438, 1441, -1356, -1356, 1430, 1431, 1732 1413, 918, -1356, -1356, -1356, -1356, -1356, 1506, 1811, 1433, 1733 855, 946, 10872, -1356, 801, 1439, 10718, 791, 791, 1442, 1734 1448, 1449, 1450, -1356, -1356, 8313, 1452, -1356, 1535, 10872, 1735 1462, -1356, -1356, 10571, -1356, 803, -1356, 1460, 10660, 1463, 1736 -1356, -1356, 1489, -1356, 1493, -1356, 1511, 1512, -1356, 1480, 1737 1508, 10176, -1356, -1356, -1356, 827, 791, 1514, 1484, 1509, 1738 -1356, 1317, 1317, -1356, -1356, -1356, -1356, -1356, 10660, 301, 1739 -1356, 958, -1356, -1356, 7597, -1356, -1356, 1502, 10718, -1356, 1740 10718, 7597, 217, 9953, 217, 9953, 1515, -1356, 1522, -1356, 1741 -1356, -1356, 1520, 855, -1356, 811, -1356, -1356, 10718, 1526, 1742 1527, -1356, 10872, 10872, -1356, -1356, 1055, 154, -1356, -1356, 1743 1510, -1356, 1055, -1356, -1356, 1716, 791, -1356, -1356, 217, 1744 9953, 217, 9953, 1532, 1517, 791, -1356, -1356, -1356, -1356, 1745 -1356, 10571, 1528, 1055, 7673, 10718, 10482, 1531, 1055, 1537, 1746 1716, 2045, -1356, -1356, -1356, 1545, -1356, -1356, -1356, -1356, 1747 8867, -1356, -1356, -1356, 10349, -1356, 10571, -1356, -1356, 1529, 1748 10256, -1356, -1356, 10482, 217, 2045, 217, 1558, 1559, 815, 1749 -1356, 10349, -1356, -1356, -1356, 10256, -1356, -1356, -1356, 217, 1750 217, -1356, -1356, -1356, -1356, -1356, -1356, -1356, -1356 1594 3506, 8076, -1332, 12, -1332, -1332, -1332, -1332, -1332, -1332, 1595 -1332, 61, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1596 -1332, -1332, -1332, -1332, -1332, -1332, 102, 102, 102, 1011, 1597 1062, 86, 5961, 228, -1332, -1332, -1332, -1332, -1332, 138, 1598 -1332, -1332, -1332, 684, 144, 9470, -1332, -1332, -1332, -1332, 1599 -1332, -1332, 190, 182, -1332, 1658, -1332, -1332, -1332, -1332, 1600 201, 1834, 303, 32, 4928, -1332, -1332, 9508, 1650, -1332, 1601 -1332, -1332, 615, 401, 4443, 184, 589, 615, 1225, -1332, 1602 -1332, 848, 938, -1332, 615, 1259, -1332, 301, -1332, 486, 1603 503, -1332, -1332, -1332, -1332, 316, 182, 102, -1332, 102, 1604 -1332, -1332, -1332, -1332, 9240, 1658, -1332, -1332, 1658, -1332, 1605 9354, 391, -1332, -1332, -1332, 1948, 9876, -1332, 810, 810, 1606 810, -1332, -1332, -1332, 102, -1332, -1332, -1332, 426, 447, 1607 456, -1332, -1332, -1332, 477, -1332, -1332, -1332, -1332, -1332, 1608 485, 495, -1332, -1332, 36, 8974, 2459, 272, 545, 579, 1609 623, 632, 671, 733, 8777, 7372, 596, 719, -1332, 9546, 1610 -1332, -1332, -1332, -1332, 739, -1332, 209, 3245, 3245, -1332, 1611 760, 213, -1332, -1332, -1332, -1332, 770, 237, 353, 362, 1612 102, 755, -1332, -1332, 1834, 1803, 846, -1332, 70, -1332, 1613 102, 102, 182, -1332, -1332, 98, -1332, 102, 102, -1332, 1614 2479, 820, 843, 810, 5405, -1332, -1332, 844, 9470, -1332, 1615 -1332, 615, -1332, -1332, -1332, 182, -1332, 1658, 190, -1332, 1616 7926, -1332, 810, 810, 810, 182, -1332, 1011, -1332, 2880, 1617 -1332, -1332, 827, 810, -1332, 810, -1332, 138, 8974, 8891, 1618 857, -1332, 1062, 864, 810, -1332, 1011, 870, 879, -1332, 1619 5961, 735, -1332, -1332, -1332, 9437, -1332, -1332, 3894, -1332, 1620 846, 69, 9876, 6310, 1948, 2479, -1332, 114, -1332, -1332, 1621 9354, 1658, 875, 11374, -1332, -1332, 546, -1332, 11116, 886, 1622 926, 10861, 905, 10919, 10938, -1332, 919, -1332, -1332, -1332, 1623 -1332, 10996, 10996, 735, 8632, 928, 10919, 9088, -1332, -1332, 1624 -1332, -1332, -1332, -1332, 949, -1332, 840, 2531, 10919, -1332, 1625 516, 336, 425, 270, 704, 934, 936, 960, 997, 52, 1626 -1332, -1332, 974, 356, -1332, 290, -1332, -1332, 2459, -1332, 1627 -1332, 600, 996, -1332, 701, 996, 1007, 138, -1332, -1332, 1628 1010, 9240, -1332, 1018, 8746, -1332, -1332, 1849, 1084, 8347, 1629 5405, 615, -1332, 615, 810, 810, -1332, -1332, -1332, -1332, 1630 -1332, -1332, 810, 9914, 1658, -1332, -1332, 9987, 1975, -1332, 1631 9012, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1030, 3059, 1632 10919, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1633 -1332, -1332, -1332, -1332, -1332, 1948, -1332, 773, 1012, 1034, 1634 1040, 889, 1045, 1051, 1053, 1803, -1332, -1332, 1063, 190, 1635 1064, -1332, -1332, 1066, -1332, -1332, -1332, 9437, -1332, -1332, 1636 -1332, -1332, -1332, 2479, -1332, 8974, 8974, -1332, 810, 1948, 1637 6923, 1658, 8420, -1332, -1332, -1332, -1332, 9437, 69, -1332, 1638 -1332, 615, 182, -1332, -1332, 9437, -1332, 3625, -1332, -1332, 1639 810, 810, 464, 10025, 1068, 907, 9695, -1332, 437, 475, 1640 1062, -1332, 1067, 1069, 1047, 1070, 810, -1332, -1332, -1332, 1641 -1332, 10283, -1332, 522, 6793, -1332, 182, 1074, -1332, 1948, 1642 11198, 6368, -1332, -1332, -1332, -1332, 939, 2479, -1332, 8493, 1643 846, 5374, -1332, -1332, -1332, 828, 610, 974, 1062, 11374, 1644 861, 9354, -1332, 11374, -1332, -1332, -1332, -1332, 618, -1332, 1645 1073, 926, 326, 8632, -1332, 10025, -1332, -1332, 8632, -1332, 1646 8860, 8632, -1332, -1332, -1332, 1077, -1332, 619, 1082, 630, 1647 1087, -1332, 5066, 7012, -1332, -1332, -1332, 47, -1332, -1332, 1648 10784, -1332, 474, 10784, -1332, -1332, -1332, -1332, -1332, -1332, 1649 -1332, -1332, -1332, -1332, 6310, 6310, -1332, 10919, 10919, 10919, 1650 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 10919, 1651 10919, 10919, 10919, 10919, 10919, 4001, 6310, -1332, 356, 777, 1652 -1332, -1332, 102, 102, -1332, -1332, 8974, -1332, -1332, 1066, 1653 735, -1332, 1066, 10842, -1332, -1332, -1332, 6075, 7012, 1086, 1654 9202, 1093, -1332, 10055, -1332, -1332, 739, -1332, 1094, 690, 1655 1096, 1090, 157, 974, -1332, 102, 102, 974, 166, -1332, 1656 102, 102, 1066, -1332, -1332, 102, 102, -1332, 996, 10137, 1657 1658, 11343, 372, 531, 10137, -1332, 6678, -1332, 974, -1332, 1658 9914, -1332, 285, 8042, 8042, 8042, 1658, -1332, 5183, 1085, 1659 453, 1030, 955, 1095, 1097, -1332, 1099, 3245, 590, -1332, 1660 1182, 1658, 8042, 735, 1948, 735, 846, 706, 996, -1332, 1661 -1332, 806, 996, -1332, -1332, -1332, 926, -1332, 996, 182, 1662 10283, -1332, 647, 1107, 688, 1108, -1332, 1109, 182, -1332, 1663 -1332, 9437, 182, 1105, 497, 502, 10167, 7492, 1400, 10919, 1664 1678, -1332, -1332, 1103, 62, 1103, -1332, -1332, -1332, 102, 1665 102, -1332, -1332, 1062, -1332, 102, -1332, -1332, 8891, 1062, 1666 1110, 10919, -1332, 1062, 11343, -1332, -1332, 1113, -1332, -1332, 1667 -1332, 735, -1332, 11271, 10919, -1332, 8042, 718, 8347, -1332, 1668 -1332, 739, 1114, 1115, 828, 2655, -1332, -1332, 11374, -1332, 1669 -1332, 1116, -1332, -1332, 1122, -1332, 1116, 1123, 11116, 6310, 1670 163, 1092, 54, 1131, 1128, 1135, 928, 1130, 1138, -1332, 1671 1140, 1141, 9733, 7132, -1332, 6310, -1332, 630, 1274, -1332, 1672 5523, 6310, 1139, -1332, -1332, 1030, 695, -1332, 6310, -1332, 1673 -1332, 741, -1332, -1332, -1332, -1332, -1332, 516, 516, 336, 1674 336, 425, 425, 425, 425, 270, 270, 704, 934, 936, 1675 960, 997, 10919, 754, -1332, 10283, 1150, 1151, 1153, 777, 1676 -1332, -1332, -1332, -1332, -1332, 10283, 748, 10919, 8042, -1332, 1677 9914, -1332, 7612, 9316, 9126, 7372, -1332, -1332, -1332, 690, 1678 10283, 950, 1164, 1165, 1171, 1172, 1179, 1180, 1181, -1332, 1679 3591, 1090, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1680 -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1066, 1681 -1332, -1332, -1332, 974, -1332, -1332, -1332, -1332, -1332, -1332, 1682 -1332, -1332, 1183, -1332, 1184, 1187, -1332, -1332, 190, 1139, 1683 5183, -1332, -1332, -1332, 3059, 1185, -1332, -1332, -1332, -1332, 1684 -1332, 1062, 6532, 1270, -1332, -1332, -1332, -1332, 1173, 190, 1685 -1332, -1332, 1066, -1332, -1332, 1066, 152, 1066, -1332, -1332, 1686 -1332, -1332, -1332, -1332, 9584, -1332, 182, -1332, 8891, -1332, 1687 -1332, 1193, 795, 1199, 1200, 1204, -1332, -1332, 1678, -1332, 1688 -1332, -1332, -1332, -1332, -1332, -1332, 907, 9763, 1047, -1332, 1689 -1332, 1069, 1205, 1201, -1332, -1332, 1206, 1207, -1332, 718, 1690 1989, -1332, 634, -1332, 2655, 974, -1332, 1211, 11374, 10205, 1691 8974, 1214, -1332, -1332, 1212, 1217, 1213, -1332, 10919, 229, 1692 205, 1215, -1332, 1202, 735, 1202, 7012, 6310, -1332, -1332, 1693 1202, -1332, 1274, 3059, -1332, -1332, -1332, -1332, 1220, 6310, 1694 1228, 735, 5183, -1332, 10784, -1332, 735, -1332, -1332, 6310, 1695 -1332, 863, 996, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1696 1030, 8746, -1332, -1332, 7732, 1219, -1332, 876, 996, -1332, 1697 883, 896, 996, -1332, 810, 4775, -1332, -1332, -1332, 10283, 1698 10283, -1332, 8420, 8420, -1332, 1221, 1226, 1233, 1235, -1332, 1699 1234, 643, 137, 1139, -1332, 735, -1332, 3245, -1332, 6310, 1700 517, -1332, 6892, 1245, 1249, 10726, 1253, 1258, 330, 380, 1701 387, 6310, 1265, 182, 6310, 6310, 1256, 294, 1269, 1250, 1702 -1332, -1332, -1332, 1277, -1332, -1332, -1332, -1332, -1332, -1332, 1703 -1332, -1332, -1332, 1062, 1285, 6310, -1332, 10283, 10283, 102, 1704 1287, -1332, 9845, 9622, 932, 996, -1332, -1332, -1332, -1332, 1705 -1332, 1286, -1332, -1332, -1332, -1332, 1293, 1989, -1332, -1332, 1706 1275, -1332, 1116, -1332, -1332, 1948, 1290, -1332, -1332, -1332, 1707 749, 1292, -1332, 54, 1295, 10919, 1279, 54, 54, 1305, 1708 1301, -1332, 1099, 6310, 1308, 1220, 605, 89, 1306, -1332, 1709 1301, -1332, 1312, 1306, -1332, -1332, 1317, -1332, -1332, 1066, 1710 1319, 1322, 7252, 1323, 1325, 1326, -1332, -1332, 1329, -1332, 1711 -1332, 1066, -1332, -1332, -1332, -1332, 1066, 6310, 6310, 10919, 1712 1330, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1713 -1332, -1332, -1332, 10919, 10919, 1332, 1335, 1306, -1332, -1332, 1714 1062, -1332, -1332, -1332, 7853, 10205, 6310, 6310, 1394, 6310, 1715 -1332, -1332, 1321, -1332, 1324, 6310, 1327, 1331, 6310, 1013, 1716 1333, 97, 8265, 1262, 102, -1332, -1332, 6532, 1334, 537, 1717 -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1066, 1718 -1332, 10544, -1332, 8493, 1345, -1332, -1332, 10205, 562, 563, 1719 -1332, 1343, 1344, 926, 1352, -1332, 450, -1332, -1332, 6310, 1720 1355, 1349, -1332, -1332, 1356, 543, 613, 735, 1357, 1358, 1721 -1332, 1361, -1332, 10283, -1332, -1332, -1332, -1332, -1332, 1365, 1722 -1332, 10283, 10283, 10283, -1332, -1332, 1367, -1332, 1368, 1371, 1723 1372, 668, 8115, 8231, -1332, -1332, 457, -1332, 1376, 1378, 1724 -1332, 8566, 750, 782, 1387, 793, 6762, -1332, -1332, 598, 1725 -1332, -1332, 803, 1388, 1393, 182, 1445, 882, -1332, -1332, 1726 6310, -1332, 10784, 10726, -1332, -1332, -1332, 1396, 1404, 10283, 1727 -1332, -1332, -1332, 1401, -1332, -1332, -1332, -1332, -1332, -1332, 1728 10205, 926, 254, -1332, 1384, 926, 1220, 366, -1332, -1332, 1729 -1332, -1332, -1332, -1332, -1332, -1332, 1405, -1332, -1332, -1332, 1730 -1332, -1332, -1332, 1406, 1409, -1332, -1332, -1332, -1332, -1332, 1731 -1332, -1332, 1414, -1332, 1413, -1332, -1332, 10726, 84, 6310, 1732 10726, -1332, 1417, 6310, -1332, 99, 1433, 1434, -1332, -1332, 1733 1422, 1425, 1408, 852, -1332, -1332, -1332, -1332, -1332, 1658, 1734 1948, 1421, 949, 918, 10919, -1332, 832, 1426, 6310, 735, 1735 735, 1427, 1431, 1440, 1441, -1332, -1332, 8420, 1428, -1332, 1736 1501, 10919, 1437, -1332, -1332, 10637, -1332, 845, -1332, 1424, 1737 10726, 1436, -1332, -1332, 1460, -1332, 1461, -1332, 1476, 1481, 1738 -1332, 1446, 1471, 10205, -1332, -1332, -1332, 926, 735, 1472, 1739 1452, 1468, -1332, 1306, 1306, -1332, -1332, -1332, -1332, -1332, 1740 10726, 295, -1332, 940, -1332, -1332, 5671, -1332, -1332, 1454, 1741 6310, -1332, 6310, 5671, 182, 10025, 182, 10025, 1478, -1332, 1742 1482, -1332, -1332, -1332, 1480, 949, -1332, 850, -1332, -1332, 1743 6310, 1479, 1487, -1332, 10919, 10919, -1332, -1332, 1054, 123, 1744 -1332, -1332, 1465, -1332, 1054, -1332, -1332, 1818, 735, -1332, 1745 -1332, 182, 10025, 182, 10025, 1492, 1474, 735, -1332, -1332, 1746 -1332, -1332, -1332, 10637, 1488, 1054, 6242, 6310, 10548, 1495, 1747 1054, 1502, 1818, 2347, -1332, -1332, -1332, 1505, -1332, -1332, 1748 -1332, -1332, 8974, -1332, -1332, -1332, 10415, -1332, 10637, -1332, 1749 -1332, 1484, 10322, -1332, -1332, 10548, 182, 2347, 182, 1509, 1750 1510, 853, -1332, 10415, -1332, -1332, -1332, 10322, -1332, -1332, 1751 -1332, 182, 182, -1332, -1332, -1332, -1332, -1332, -1332, -1332, 1752 -1332 1751 1753 }; 1752 1754 … … 1754 1756 static const yytype_int16 yypgoto[] = 1755 1757 { 1756 -13 56, 4068, 1513, -1356, 1381, -1356, 41, 0, -254, -1356,1757 5 93, -523, -482, -960, -143, 5028, -1356, -101, 576, 581,1758 386, 577, 1101, 1105, 1106, 1099, 1107, -1356, -593, -585,1759 4966, -933, -708, -942, -1356, -273, -719, 379, -1356, 1404,1760 -13 56, 457, -1092, -1356, -1356, 195, -1356, -844, -1059, 308,1761 -13 56, -1356, -1356, -1356, 124, -1118, -1356, -1356, -1356, -1356,1762 -13 56, -1356, 382, -1355, 53, -1356, -496, -1356, 558, 349,1763 -13 56, 226, -1356, -307, -1356, -1356, -1356, 610, -832, -1356,1764 -13 56, 13, -961, 169, 2725, -1356, -1356, -1356, -79, -1356,1765 1 89, 845, -184, 1482, 3902, -1356, -1356, 192, 133, 657,1766 -2 51, 1620, -1356, 1796, -1356, -1356, 156, 2416, -1356, 2575,1767 798, -1356, -1356, -404, -428, 1252, 1253, 761, 1003, 302,1768 -1356, -1356, 1245, 764, -253, -1356, -24, -132, -469, -1356,1769 -1356, -983, -881, 4, 862, 1128, -43, -1356, 561, -100,1770 -262, -193, -152, 721, 826, -1356, 1071, -1356, 2692, 907,1771 -449, 971, -1356, -1356, 765, -1356, -227, -1356, -60, -1356,1772 -1356, -1356, -1248, 485, -1356, -1356, -1356, 1242, -1356, 45,1773 -13 56, -1356, -846, -109, -1333, -138, 3289, -1356, 1880, -1356,1774 969, -1356, -161, 268, -181, -177, -175, 2, -39, -35,1775 -3 3, 769, 30, 31, 69, -146, -162, -151, -147, -140,1776 - 277, -521, -506, -484, -575, -313, -516, -1356, -1356, -528,1777 1156, 1157, 1163, 2484, 4688, -570, -557, -534, -533, -478,1778 -1356, -432, -693, -685, -681, -580, -201, -236, -1356, -1356,1779 265, 180, -86, -1356, 3600, 232, -625, -3761758 -1332, 4383, 1919, -1332, 1457, -1332, 41, 0, -257, -1332, 1759 544, -527, -514, -956, -190, 3713, -1332, 1485, 580, 585, 1760 548, 602, 1055, 1052, 1056, 1059, 1061, -1332, -217, -341, 1761 5350, -699, -697, -922, -1332, -83, -701, -678, -1332, 561, 1762 -1332, 399, -1087, -1332, -1332, 141, -1332, -1329, -838, 252, 1763 -1332, -1332, -1332, -1332, 71, -1078, -1332, -1332, -1332, -1332, 1764 -1332, -1332, 325, -1308, 57, -1332, -297, -1332, 504, 305, 1765 -1332, 173, -1332, -305, -1332, -1332, -1332, 558, -799, -1332, 1766 -1332, 11, -1027, 151, 658, -1332, -1332, -1332, -52, -1332, 1767 117, 913, -200, 1494, 4071, -1332, -1332, 19, 107, 365, 1768 -232, 1565, -1332, 2150, -1332, -1332, 134, 2571, -1332, 3063, 1769 1550, -1332, -1332, -1332, -643, -431, 1210, 1216, 707, 947, 1770 188, -1332, -1332, -1332, 945, 723, -404, -1332, -520, -362, 1771 293, -1332, -1332, -990, -995, 965, 1194, 1083, 304, -1332, 1772 150, 317, -75, -197, -129, 679, 781, -1332, 1020, -1332, 1773 3338, 1566, -427, 948, -1332, -1332, 710, -1332, -230, -1332, 1774 -89, -1332, -1332, -1332, -1266, 433, -1332, -1332, -1332, 1195, 1775 -1332, 22, -1332, -1332, -865, -105, -1331, -98, 1750, -1332, 1776 2253, -1332, 929, -1332, -168, 288, -180, -179, -173, 2, 1777 -34, -29, -28, 687, 75, 77, 92, -161, -162, -153, 1778 -151, -148, -320, -530, -516, -495, -552, -307, -529, -1332, 1779 -1332, -506, 1106, 1117, 1121, 2218, 5180, -562, -569, -544, 1780 -538, -550, -1332, -429, -691, -685, -671, -611, -246, -241, 1781 -1332, -1332, 1149, 273, -84, -1332, 3714, 76, -612, -441 1780 1782 }; 1781 1783 … … 1783 1785 positive, shift that token. If negative, reduce the rule which 1784 1786 number is the opposite. If YYTABLE_NINF, syntax error. */ 1785 #define YYTABLE_NINF -52 31787 #define YYTABLE_NINF -525 1786 1788 static const yytype_int16 yytable[] = 1787 1789 { 1788 47, 112, 96, 398, 148, 933, 266, 399, 149, 400, 1789 150, 452, 176, 934, 113, 382, 383, 935, 259, 427, 1790 791, 527, 401, 707, 406, 439, 512, 505, 712, 112, 1791 112, 895, 47, 402, 96, 618, 853, 403, 768, 407, 1792 975, 854, 111, 47, 404, 47, 1152, 160, 409, 871, 1793 751, 820, 846, 48, 756, 47, 1092, 1144, 718, 1184, 1794 1185, 47, 260, 192, 47, 261, 215, 47, 342, 225, 1795 1091, 613, 995, 151, 152, 847, 848, 142, 31, 279, 1796 218, 112, 112, 398, 933, 48, 1462, 399, 842, 400, 1797 1399, 424, 934, 845, 201, 1196, 935, 779, 951, 1318, 1798 574, 1202, 401, 843, 406, 47, 936, 31, 47, 1135, 1799 679, 536, 153, 402, 937, 47, 1136, 403, 122, 407, 1800 1508, 749, 482, 484, 404, 844, 408, 637, 936, 290, 1801 688, 641, 31, 68, 857, 575, 950, 280, 692, 1099, 1802 864, 1219, 1220, 605, 202, 148, 47, 121, 160, 149, 1803 410, 150, 682, 684, 47, 1537, 75, 1539, 978, 47, 1804 1462, 372, 1186, 683, 685, 68, 167, 446, 1319, 54, 1805 114, 483, 141, 578, 438, 410, 478, 251, 31, 410, 1806 105, 105, 517, 579, 47, 47, 467, 160, 75, 61, 1807 168, 31, 67, 1482, 109, 534, 535, 211, -234, -234, 1808 47, 54, 418, 31, 410, 41, 42, 556, 47, 1260, 1809 160, 919, 105, 31, 151, 152, 677, 47, 746, 1008, 1810 47, 61, 442, 842, 67, 148, 585, 112, 490, 149, 1811 1201, 150, 586, 209, 483, 507, 219, 858, 843, 755, 1812 527, 861, 112, 535, 674, 527, 112, 105, 527, 143, 1813 47, 112, 96, 153, 1210, 596, 576, 760, 770, 675, 1814 844, 488, 878, 410, 47, 47, 881, 160, 95, -234, 1815 777, 47, 410, 855, 145, 610, 1037, 165, 47, 535, 1816 778, 1038, 846, 862, 342, 610, 666, 536, 740, 1342, 1817 712, 1014, 472, 112, 703, 470, 1343, 1051, 618, 1263, 1818 95, 1154, 813, 48, 176, 847, 848, 1184, 1185, 705, 1819 162, 147, 536, 95, 681, 1344, 1419, 1420, 842, 154, 1820 686, 638, 976, 1025, 824, 642, 674, 1264, 47, 188, 1821 372, 170, 95, 843, 524, 95, 180, 536, 478, 1134, 1822 1192, 675, 165, 1202, 200, 874, 1010, 47, 47, 875, 1823 1419, 1420, 1216, 441, -290, 844, 1015, 739, 478, 246, 1824 1186, 831, 109, 857, 47, 761, 478, 1193, 47, 536, 1825 109, 1026, 762, 41, 42, 162, 109, 327, 249, 653, 1826 1092, 41, 42, 68, 926, 936, 1421, 41, 42, 440, 1827 854, 886, 887, 1133, 1091, 47, 1402, 1492, 500, 605, 1828 501, 783, 846, -518, 880, 47, 75, 372, 1551, 905, 1829 1186, 75, 251, 763, 95, 764, 1153, 1214, 765, 54, 1830 1430, 771, 916, 47, 1193, 847, 848, 95, 605, 47, 1831 105, 47, 1457, 605, 1550, 1566, 1212, 1521, 109, 61, 1832 435, 871, 67, 1526, 479, 263, 342, 1451, 1452, 41, 1833 42, 376, 397, 188, 1561, 47, 794, 795, 796, 876, 1834 112, 1565, -10, 877, 1546, 112, 1051, 377, 386, 1553, 1835 327, -112, 1381, 434, 112, 728, 95, 789, 1406, 47, 1836 251, 329, 211, 958, 387, -112, -112, 47, 95, 372, 1837 -441, 47, -112, 96, -467, 47, 740, 1041, 112, 535, 1838 112, -112, 435, 1202, 460, 896, 1107, 505, 979, -442, 1839 1202, 885, 885, 885, 707, 111, 1259, 398, 95, 1121, 1840 653, 399, 1150, 400, 1102, -467, 275, -467, 909, 165, 1841 885, -467, 486, 277, 1186, 434, 401, 112, 618, 406, 1842 653, 936, 112, 653, 48, 278, 1038, 402, 389, 1252, 1843 391, 403, 1172, 1174, 407, 907, 109, 330, 404, 531, 1844 1107, 767, 162, 1202, 390, 739, 392, 41, 42, 331, 1845 1181, 1182, 740, 75, 1036, 1017, 607, 332, 784, 1466, 1846 370, 767, 693, 790, 767, 1379, 393, 873, 586, 1118, 1847 112, 140, 333, 75, 1019, 1348, 95, 47, 831, 936, 1848 936, 75, 394, 888, 885, 334, 479, 1292, 1293, 47, 1849 342, 47, 478, 211, 564, 565, 612, 557, 904, 884, 1850 884, 884, 558, 559, 68, 587, 479, 410, 1231, 1232, 1851 47, 472, 1498, 535, 479, 897, 1250, 713, 884, 1498, 1852 1254, 739, 240, 243, 37, 876, 47, 75, 40, 1117, 1853 566, 567, 112, 714, 955, 41, 42, 327, 327, 715, 1854 54, 47, 1429, 112, 47, 112, 898, 335, 652, 713, 1855 730, 105, 899, 188, 712, 716, 731, 1466, 737, 994, 1856 61, 43, 1466, 67, 728, 929, 342, 1036, 831, 715, 1857 384, 146, 1547, 371, 1199, 1049, 885, 959, 47, 610, 1858 47, 1199, 1466, 375, 906, 930, 908, 960, 1333, 1466, 1859 1200, 388, 884, 112, 1335, 507, 1096, 1324, 460, 112, 1860 408, 460, 747, 704, 1334, 228, 535, 460, 748, 229, 1861 1336, 112, 233, 327, 235, 109, 8, 9, 10, 11, 1862 12, 244, 1056, 1129, 47, 47, 41, 42, 757, 1500, 1863 285, 1501, 327, 590, 758, 410, 396, 775, 47, 95, 1864 -291, 41, 42, 612, 441, 31, 431, 8, 9, 10, 1865 11, 12, 954, 1382, 1350, 774, 920, 674, 531, 425, 1866 531, 775, 775, 531, -105, 703, 531, 521, -105, 922, 1867 833, 449, 675, 34, 1367, 775, 31, 1391, 1368, 1003, 1868 705, 1016, 1356, 464, 884, 1004, 1548, 731, 426, 936, 1869 1358, 1359, 1360, 910, 161, 410, 1248, 1447, 327, 728, 1870 605, -112, 586, -112, 34, 1375, 936, -112, 462, 728, 1871 193, 775, 607, 216, 1459, 1376, 226, 933, 913, 47, 1872 410, 775, -112, -112, 728, 934, 115, 75, 37, 935, 1873 1176, 47, 40, 109, 465, 138, 139, 211, 1395, 41, 1874 42, 872, 213, 109, 41, 42, 607, 831, 228, 468, 1875 1378, 211, 560, 561, 41, 42, 775, 841, 979, 612, 1876 479, 469, 979, 979, 491, 839, 737, 610, 511, 75, 1877 158, 1156, 37, 410, 653, 611, 40, 562, 563, 936, 1878 936, 112, 653, 41, 42, 1197, 1383, 1519, 1459, 290, 1879 1183, 1448, 775, 1467, 213, 161, 1168, 1445, 410, 775, 1880 535, 1514, 479, 515, 47, 1571, 520, 1515, 373, 744, 1881 532, 586, 1300, 1301, 1171, 1303, 610, 536, 47, 745, 1882 654, 1307, 570, 1078, 1310, 1173, 47, 610, 572, 257, 1883 801, 802, 803, 804, 161, 158, 1236, 213, 410, 571, 1884 740, 517, 737, 573, 47, 211, 932, 109, 704, 138, 1885 139, 214, 568, 569, 537, 538, 539, 161, 41, 42, 1886 1007, 1004, 1122, 460, 112, 251, 329, 410, 241, 443, 1887 323, 775, 1009, 653, 418, 670, 410, 1340, 540, 339, 1888 541, 112, 542, 543, 653, 941, 112, 941, 228, 242, 1889 233, 338, 841, 612, 576, 1243, 329, 410, 213, 1388, 1890 1389, 717, -438, 214, 594, 1138, 464, 833, 597, 739, 1891 488, 329, 410, 1439, 1004, 68, 855, 329, 610, 676, 1892 740, 647, 1146, 728, 728, 767, 667, 1146, 668, 429, 1893 1311, 1312, 1313, 433, 669, 112, 213, 671, 75, 750, 1894 213, 754, 1445, 1446, 672, 653, 214, 673, 112, 112, 1895 112, 54, 678, 1533, 1493, 1494, 37, 535, 173, 174, 1896 40, 256, 105, 323, 455, 1400, 696, 41, 42, 1400, 1897 721, 61, 719, 112, 67, -238, 1146, 373, 228, 1419, 1898 1420, 728, 728, 759, 1425, 772, 1078, 841, 776, 1211, 1899 1213, 1215, 780, 371, 109, 433, 138, 237, 495, 612, 1900 1349, 1351, 1352, 1107, 47, 41, 42, 214, 834, 2, 1901 205, 4, 5, 6, 7, 342, 797, 798, 1123, 529, 1902 836, 838, 158, 799, 800, 805, 806, 213, 849, 105, 1903 -12, 238, -292, 901, -13, 893, 239, 441, 1370, 8, 1904 9, 10, 11, 12, 37, 214, 182, 183, 40, 214, 1905 894, 921, 923, 928, 373, 41, 42, 924, 8, 9, 1906 10, 11, 12, 699, 949, -415, 595, -522, 31, 602, 1907 748, 1483, 963, 460, 35, 68, 36, 970, 984, 112, 1908 972, 698, 327, 410, 983, 977, 704, 31, 635, 699, 1909 985, 700, 639, 892, 704, 339, 34, 218, 75, 987, 1910 988, 47, 109, 989, 138, 139, 653, 990, 213, 1011, 1911 -293, 54, 612, 41, 42, 34, 999, 8, 9, 10, 1912 11, 12, 105, 1329, 2, 205, 4, 5, 6, 7, 1913 1012, 479, 1013, 872, 1204, 1027, 214, -3, 1122, 1058, 1914 1093, 891, 1028, 112, 112, 112, 31, 1078, 1029, 1030, 1915 323, 323, 1031, 227, 945, 728, 1032, 578, 213, 410, 1916 948, 1080, 1033, 728, 728, 728, 1044, 579, 128, 1443, 1917 129, 130, 131, -403, 34, -402, 1095, 1104, 455, 41, 1918 42, 455, 1103, 1105, 1146, 1146, 1146, 455, 1106, 35, 1919 1110, 36, 1111, 1559, 537, 538, 539, 1112, 1113, 115, 1920 653, 653, 1114, 1120, 2, 205, 4, 5, 6, 7, 1921 1130, 728, 1131, 729, 775, 1137, 211, 214, 540, 993, 1922 541, 1132, 542, 1320, 495, 1145, 323, 1166, 495, 398, 1923 737, 1122, 1142, 399, 1442, 400, 1189, 1187, 529, 68, 1924 529, 767, 1078, 529, 1188, 323, 529, 460, 401, 1190, 1925 406, 1223, 209, 219, 1191, 653, 1205, 339, 653, 402, 1926 1206, 1208, 75, 403, 105, 407, 1209, 214, 1217, 35, 1927 404, 36, 1221, 1224, 674, 54, 1532, 47, 47, -3, 1928 1229, 213, 1234, 1240, 500, 1249, 105, 112, 112, 675, 1929 109, 1244, 138, 139, 1123, 61, 1078, 1251, 67, 1078, 1930 1253, 41, 42, 653, 1256, 105, 1257, 1261, 653, 213, 1931 737, 323, 441, 1265, 213, 1268, 175, 68, 1270, 1272, 1932 1273, 1302, 829, 1274, 1207, 602, 112, 752, 1146, 1146, 1933 1278, 1275, 753, 1276, 1122, 654, 1285, 172, 653, 1294, 1934 75, 1295, 1061, 1323, 1078, 1305, 1306, 1308, 440, 1078, 1935 1331, 1337, 1339, 54, 870, 1309, 1341, 1317, 1346, 602, 1936 1345, 1347, 64, 116, 105, 879, 175, 1484, 1353, 175, 1937 1354, 148, 1355, 479, 1357, 149, 1204, 150, 1363, 1078, 1938 252, 1364, 1365, 1366, 1377, 47, 112, 1123, 1373, 1374, 1939 214, 1384, 1385, 1313, 64, 112, 1393, 1394, 105, 1396, 1940 1403, 653, 213, 1413, 1414, 1406, 653, 159, -404, 1417, 1941 47, 47, 1428, 160, 1432, 175, 213, 1434, 214, 1436, 1942 1437, 339, 729, 214, 653, 1438, 653, 1534, 1444, 220, 1943 653, 1449, 1453, 653, 654, 47, 1542, 372, 1454, 1455, 1944 1456, 653, 1078, 455, 166, 653, 171, 1078, 1368, 177, 1945 178, 179, 37, 181, 173, 174, 40, 1458, 37, 1463, 1946 173, 174, 40, 41, 42, 1078, 258, 1078, 232, 41, 1947 42, 1078, 1468, 495, 1078, 1470, 416, 68, 175, 1472, 1948 247, 248, 1078, 1474, 68, 1080, 1078, 1476, 1478, 375, 1949 1123, 37, 1480, 182, 183, 40, 1487, 339, 1481, 436, 1950 75, 105, 41, 42, 1486, 1509, 1488, 75, 328, 444, 1951 213, 214, 1511, 54, 1499, 1513, 258, 349, 1517, 1518, 1952 54, 1540, 1525, 1545, 105, 214, 1552, 1554, 609, 1541, 1953 610, 105, 175, 479, 1061, 1556, 1204, 68, 611, 175, 1954 479, 1562, 37, 1204, 182, 183, 40, 405, 1569, 1570, 1955 1222, 807, 810, 41, 42, 1018, 808, 729, 809, 829, 1956 75, 811, 423, 1322, 212, 428, 430, 729, 1520, 1572, 1957 159, 1431, 1404, 54, 231, 1255, 1387, 1502, 528, 698, 1958 1392, 410, 729, 1228, 105, 694, 695, 1108, 942, 700, 1959 723, 447, 1109, 479, 1141, 450, 1204, 451, 826, 965, 1960 1057, 8, 9, 10, 11, 12, 466, 973, 175, 900, 1961 1332, 1119, 64, 742, 816, 817, 212, 480, 1506, 214, 1962 1506, 818, 0, 0, 0, 175, 0, 487, 0, 175, 1963 31, 0, 0, 0, 1418, 430, 0, 1426, 0, 0, 1964 1298, 0, 0, 0, 0, 0, 0, 0, 0, 829, 1965 0, 0, 327, 455, 0, 1506, 0, 1506, 34, 212, 1966 0, 0, 0, 37, 0, 182, 183, 40, 37, 0, 1967 182, 183, 40, 0, 41, 42, 73, 0, 486, 41, 1968 42, 0, 1465, 0, 0, 0, 37, 1469, 182, 183, 1969 40, 0, 175, 495, 1124, 323, 0, 41, 42, 0, 1970 184, 0, 213, 258, 0, 1530, 603, 410, 73, 0, 1971 185, 0, 631, 0, 0, 1531, 0, 1491, 0, 0, 1972 212, 0, 0, 184, 0, 636, 690, 0, 0, 636, 1973 0, 0, 258, 185, 0, 0, 0, 601, 608, 0, 1974 0, 0, 0, 221, 0, 0, 870, 0, 0, 632, 1975 633, 8, 9, 10, 11, 12, 0, 0, 212, 0, 1976 732, 0, 212, 37, 0, 182, 183, 40, 0, 0, 1977 0, 0, 0, 0, 41, 42, 0, 0, 506, 480, 1978 31, 729, 729, 0, 0, 0, 125, 125, 125, 0, 1979 0, 0, 0, 0, 349, 0, 0, 528, 0, 480, 1980 264, 0, 528, 1560, 0, 528, 0, 480, 34, 1560, 1981 265, 214, 8, 9, 10, 11, 12, 0, 0, 0, 1982 1560, 0, 0, 0, 1560, 0, 0, 455, 829, 0, 1983 0, 352, 0, 724, 0, 0, 430, 0, 0, 729, 1984 729, 31, 0, 0, 8, 9, 10, 11, 12, 212, 1985 777, 738, 410, 64, 0, 0, 0, 125, 175, 125, 1986 778, 430, 0, 0, 0, 430, 0, 0, 0, 34, 1987 0, 0, 0, 31, 37, 0, 182, 183, 40, 0, 1988 0, 213, 0, 0, 274, 41, 42, 0, 0, 0, 1989 0, 175, 0, 0, 258, 349, 0, 0, 0, 0, 1990 0, 34, 0, 0, 0, 448, 37, 175, 182, 183, 1991 40, 609, 0, 610, 0, 0, 0, 41, 42, 0, 1992 0, 611, 175, 0, 0, 0, 73, 0, 0, 0, 1993 212, 73, 0, 0, 0, 8, 9, 10, 11, 12, 1994 125, 819, 0, 698, 0, 410, 339, 212, 125, 0, 1995 125, 125, 0, 700, 0, 125, 0, 125, 125, 636, 1996 832, 0, 603, 918, 31, 0, 0, 0, 0, 0, 1997 1124, 0, 925, 851, 0, 0, 927, 213, 0, 0, 1998 212, 1330, 0, 8, 9, 10, 11, 12, 0, 0, 1999 214, 603, 34, 0, 0, 0, 603, 37, 0, 182, 2000 183, 40, 636, 0, 0, 349, 349, 349, 41, 42, 2001 0, 0, 31, 729, 0, 0, 0, 0, 0, 175, 2002 0, 729, 729, 729, 349, 0, 221, 125, 0, 0, 2003 0, 0, 0, 0, 1530, 0, 410, 0, 0, 0, 2004 34, 0, 724, 0, 1531, 37, 0, 182, 183, 40, 2005 0, 0, 0, 480, 0, 0, 41, 42, 258, 738, 2006 0, 0, 938, 1124, 0, 0, 0, 0, 0, 729, 2007 0, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2008 0, 0, 264, 0, 0, 0, 214, 0, 0, 0, 2009 0, 0, 265, 73, 0, 480, 0, 0, 349, 0, 2010 0, 31, 0, 212, 0, 0, 0, 964, 352, 0, 2011 430, 0, 0, 73, 0, 0, 0, 0, 952, 0, 2012 953, 73, 0, 0, 0, 0, 0, 956, 957, 34, 2013 0, 212, 962, 0, 258, 738, 212, 0, 0, 0, 2014 992, 0, 0, 0, 967, 0, 0, 352, 0, 971, 2015 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 2016 0, 0, 0, 0, 0, 352, 1124, 73, 0, 0, 2017 0, 959, 0, 610, 0, 1000, 0, 724, 0, 0, 2018 0, 960, 0, 0, 554, 175, 0, 724, 0, 0, 2019 349, 0, 636, 0, 0, 1024, 636, 832, 1505, 0, 2020 1505, 0, 724, 0, 0, 0, 0, 0, 0, 352, 2021 1101, 0, 1035, 0, 0, 0, 0, 0, 0, 0, 2022 601, 0, 0, 0, 212, 0, 0, 0, 0, 0, 2023 0, 0, 0, 0, 0, 1505, 0, 1505, 212, 0, 1790 47, 112, 96, 427, 398, 399, 768, 933, 452, 148, 1791 266, 400, 113, 934, 149, 150, 791, 406, 871, 67, 1792 259, 439, 401, 512, 407, 712, 707, 935, 613, 112, 1793 112, 402, 47, 403, 96, 1203, 404, 1092, 382, 383, 1794 846, 618, 111, 47, 895, 47, 505, 160, 1187, 854, 1795 1153, 67, 1185, 1186, 142, 47, 749, 48, 975, 853, 1796 201, 47, 857, 192, 47, 847, 215, 47, 864, 225, 1797 342, 848, 751, 820, 1401, 947, 756, 1145, 218, 842, 1798 845, 112, 112, 995, 398, 399, 933, 279, 409, 48, 1799 1464, 400, 934, 843, 121, 424, 1468, 406, 605, 1197, 1800 779, 31, 401, 1091, 407, 47, 935, 68, 47, 31, 1801 202, 402, 679, 403, 844, 47, 404, 61, 151, 109, 1802 152, 165, 637, 884, 884, 884, 641, 739, 1421, 1422, 1803 41, 42, 688, 408, 75, 153, 290, 31, 446, 68, 1804 692, 31, 884, 1421, 1422, 280, 47, 574, 160, 61, 1805 148, 54, 114, 31, 47, 149, 150, 467, 783, 47, 1806 1320, 372, 482, 484, 1464, 978, 75, -234, -234, 1510, 1807 122, 211, 858, 410, 1265, 746, 861, 1484, 483, 251, 1808 140, 410, 575, 54, 47, 47, 165, 160, 2, 205, 1809 4, 5, 6, 7, 1468, 141, 31, 878, 1423, 1468, 1810 47, 881, 1266, 478, 1539, 31, 1541, 418, 47, 410, 1811 160, 527, 677, 1432, 842, 209, 884, 47, 219, 1468, 1812 47, 327, 442, 488, 1080, 410, 1468, 112, 843, 1321, 1813 148, 240, 243, 1193, 536, 149, 150, 674, -234, 143, 1814 886, 887, 112, 740, 675, 536, 112, 145, 1187, 844, 1815 47, 112, 96, 35, 760, 36, 154, 596, 905, 151, 1816 1194, 152, 1099, 1202, 47, 47, 855, 160, 610, 67, 1817 846, 47, 470, 105, 105, 862, 153, 610, 47, 1203, 1818 976, 885, 885, 885, 435, 1102, 342, 703, 95, 1038, 1819 666, 857, 472, 112, 705, 847, 170, 167, 1187, 1037, 1820 885, 848, 1185, 1186, 618, 105, 200, 48, 884, 842, 1821 1025, 536, 1155, 1014, 327, 1136, -3, 180, 681, 674, 1822 95, 168, 1137, 843, 686, 376, 675, 441, 47, 386, 1823 372, 147, 958, 95, 524, 739, 536, 1346, 1135, 1111, 1824 105, 377, 682, 684, 844, 387, 435, 47, 47, 188, 1825 683, 685, 95, 389, 605, 95, 831, 68, 937, 176, 1826 564, 565, 1092, 1404, 47, 478, 285, 61, 47, 390, 1827 1217, 440, 479, 165, 885, 1220, 1221, 41, 42, 653, 1828 950, 251, 329, 605, 75, 478, 926, 1208, 605, 75, 1829 846, 1494, 464, 478, 483, 47, 566, 567, 854, 880, 1830 585, 54, 109, 521, -290, 47, 586, 372, 536, 260, 1831 871, 739, 261, 41, 42, 847, 576, 246, 1194, 916, 1832 607, 848, 1187, 47, 1017, 251, 755, 1459, 1091, 47, 1833 527, 47, 1041, 228, 95, 527, 761, 229, 527, 1203, 1834 233, 1552, 235, 762, 1262, 770, 1203, 95, 342, 244, 1835 1553, 740, 109, 1453, 1454, 47, 211, 560, 561, 109, 1836 112, 1563, 1211, 41, 42, 578, 885, 410, 1567, 391, 1837 41, 42, 397, 188, 112, 579, -112, 1568, 393, 47, 1838 1173, 1175, 936, 1408, 874, 392, 249, 47, 875, 372, 1839 1151, 47, 813, 96, 394, 47, 95, -112, 112, 1203, 1840 112, 327, 327, -520, 936, 979, 1215, 1383, 95, 1107, 1841 67, 824, 1213, 562, 563, 111, 712, 707, 398, 399, 1842 653, 438, 263, 105, 1119, 400, 505, 740, 896, 654, 1843 1261, 1036, 406, -469, 479, -10, 401, 112, 95, 407, 1844 653, 1122, 112, 653, 618, 402, 109, 403, 48, 1080, 1845 404, 75, 486, 713, 479, 1038, -443, 41, 42, 907, 1846 1344, 767, 479, 1107, -469, -444, -469, 1345, 909, 714, 1847 -469, 75, -112, -112, 693, 490, 228, 327, 784, 75, 1848 586, 767, 507, 790, 767, 789, 275, 211, -112, 1019, 1849 112, 715, -291, 831, 277, 1008, 327, 47, 68, 8, 1850 9, 10, 11, 12, 278, 1381, 737, 716, 61, 47, 1851 717, 47, 342, 713, 172, 109, 95, 833, 715, 2, 1852 205, 4, 5, 6, 7, 75, 41, 42, 31, 929, 1853 47, 472, 730, 1200, 930, 557, 612, 1134, 731, 478, 1854 558, 559, 54, 876, 1036, 1394, 47, 877, 750, 1201, 1855 754, 176, 112, 1200, 1350, 330, 34, 252, 55, 55, 1856 1523, 47, 327, 112, 47, 112, 1528, 1500, 638, 1326, 1857 897, 712, 642, 1051, 1500, 500, 607, 501, 1335, 1337, 1858 1184, 955, 1431, 831, 35, 109, 36, 1548, 342, 331, 1859 55, 1049, 1555, 188, 1336, 1338, 41, 42, 47, 1420, 1860 47, 898, 1428, 652, 906, 872, 908, 899, 370, 587, 1861 607, 410, 1096, 112, 775, -112, 228, -112, 233, 112, 1862 747, -112, 55, 112, 1352, 55, 748, 1549, 757, 774, 1863 1384, 112, 161, 332, 758, 775, -112, -112, 441, 777, 1864 1130, 410, 333, 704, 47, 47, 876, 1467, 193, 778, 1865 1118, 216, 1471, 416, 226, -105, 37, 920, 47, -105, 1866 40, 936, 37, 775, 105, 1056, 40, 41, 42, 1502, 1867 674, 1503, 954, 41, 42, 605, 436, 675, 703, 95, 1868 1369, 334, 1493, 612, 1370, 705, 444, 8, 9, 10, 1869 11, 12, 1154, 43, 1254, 1393, 568, 569, 922, 839, 1870 739, 610, 892, 146, 775, 1003, 228, 109, 479, 611, 1871 590, 1004, 410, 347, 737, 910, 31, 410, 41, 42, 1872 8, 9, 10, 11, 12, 75, 1550, 959, 371, 610, 1873 763, 211, 764, 161, 1177, 765, 1252, 960, 771, 47, 1874 1256, 933, 1051, 335, 34, 211, 373, 934, 375, 31, 1875 479, 47, 1294, 1295, 833, 528, 1007, 1004, 1016, 1250, 1876 1377, 935, 831, 945, 731, 586, 775, 75, 1562, 948, 1877 775, 1009, 161, 464, 1562, 384, 979, 34, 55, 388, 1878 979, 979, 251, 329, 410, 1562, 578, 396, 410, 1562, 1879 737, 941, 1378, 941, 653, 161, 579, 841, 775, 612, 1880 37, 112, 653, 1380, 40, 329, 410, 443, 55, 775, 1881 408, 41, 42, 1385, 115, 913, 740, 410, 936, 775, 1882 109, 67, 138, 237, 47, 537, 538, 539, 1198, 425, 1883 1372, 41, 42, 109, 873, 138, 139, 744, 47, 211, 1884 1390, 1391, 1450, 1078, 41, 42, 47, 745, 1447, 540, 1885 888, 541, 426, 542, 543, 1469, 431, 238, 158, 449, 1886 1516, 775, 239, 1573, 47, 904, 1517, 1441, 1004, 586, 1887 752, -367, 1157, 919, 410, 753, 936, 936, -396, 37, 1888 1123, 182, 183, 40, 112, 1169, 932, 410, 704, 491, 1889 41, 42, 1172, 653, 610, 511, 1342, 740, 418, 670, 1890 410, 112, 468, 690, 653, 1174, 112, 610, 290, 68, 1891 109, 469, 138, 139, 515, 373, 698, 257, 410, 61, 1892 1245, 41, 42, 158, 699, 1139, 700, 109, 520, 138, 1893 139, 536, 841, 612, 1447, 1448, 75, 732, 41, 42, 1894 532, 1237, 1147, 410, 654, 767, 327, 1147, 488, 329, 1895 410, 1061, 242, 54, 570, 112, 1495, 1496, 323, 855, 1896 329, 610, 507, 1449, 571, 653, 891, 339, 112, 112, 1897 112, 1313, 1314, 1315, 528, 1351, 1353, 1354, 1535, 528, 1898 1461, 1205, 528, 128, 1402, 129, 130, 131, 1402, 572, 1899 347, 573, 373, 112, 41, 42, 1147, 872, 1421, 1422, 1900 8, 9, 10, 11, 12, 576, 1078, 338, 1010, 1212, 1901 1214, 1216, 801, 802, 803, 804, -440, 429, 1015, 594, 1902 1124, 433, 667, 1302, 1303, 47, 1305, 841, 1107, 31, 1903 597, 441, 1309, 1026, 109, 1312, 138, 139, 342, 612, 1904 797, 798, 647, 654, 668, 41, 42, 799, 800, 55, 1905 669, 323, 455, 1521, 1461, 671, 37, 34, 182, 183, 1906 40, 672, 37, 673, 182, 183, 40, 41, 42, 68, 1907 805, 806, 676, 41, 42, 105, 678, 256, 721, 479, 1908 696, 718, 759, 433, 723, 719, 495, 936, -238, 772, 1909 1485, 347, 776, 609, 162, 610, 75, 780, 834, 609, 1910 112, 610, -12, 611, 936, 836, 838, 529, 849, 611, 1911 158, 901, -13, 54, 893, 894, 218, 921, 923, 928, 1912 699, 924, 47, -417, 977, 949, 704, 653, -292, -524, 1913 963, 970, 748, 972, 704, 8, 9, 10, 11, 12, 1914 918, 983, 105, 1061, 984, 985, 67, 987, 988, 925, 1915 989, 990, 612, 927, 595, 999, 347, 602, 1123, 162, 1916 1011, 1012, -293, 1013, 31, 112, 112, 112, 1078, 8, 1917 9, 10, 11, 12, 1027, 1028, 635, 936, 936, 737, 1918 639, 1029, 1030, 339, 8, 9, 10, 11, 12, 1031, 1919 1032, 1033, 34, 1044, -405, 1445, 1427, -404, 31, 1093, 1920 1058, 347, 347, 347, 1095, 1103, 1147, 1147, 1147, 1104, 1921 1105, 211, 1561, 31, 1106, 1112, 993, 1113, 1114, 1115, 1922 347, 1121, 653, 653, 1131, 1205, 34, 1132, 775, 1167, 1923 1133, 1138, 1182, 1183, 68, 105, 1143, 1188, 323, 323, 1924 1146, 34, 1189, 1190, 61, 1191, 1192, 537, 538, 539, 1925 1300, 1123, 398, 399, 1206, 209, 219, 434, 1207, 400, 1926 737, 75, 1209, 767, 1078, 406, 455, 1210, 1222, 455, 1927 401, 540, 407, 541, 1218, 542, 1322, 653, 54, 402, 1928 653, 403, 1225, 777, 404, 410, 1224, 115, 460, 674, 1929 1232, 1233, -3, 778, 347, 1230, 675, 1235, 1124, 47, 1930 47, 1240, 1534, 1242, 500, 1246, 1251, 1253, 441, 112, 1931 112, 1255, 495, 68, 323, 1258, 495, 1259, 1078, 434, 1932 1263, 1078, 1267, 479, 1270, 653, 529, 1272, 529, 1274, 1933 653, 529, 1275, 323, 529, 1276, 728, 1277, 1278, 1280, 1934 75, 1304, 1287, 531, 1296, 339, 162, 1297, 112, 1325, 1935 1147, 1147, 440, 1307, 1123, 1333, 1308, 54, 1339, 1310, 1936 653, 1341, 1343, 1311, 1348, 1319, 1078, 1347, 1349, 1355, 1937 1356, 1078, 37, 1357, 182, 183, 40, 1359, 105, 1365, 1938 1366, 1367, 1368, 41, 42, 1205, 347, 1101, 1375, 1486, 1939 1376, 1124, 1205, 347, 64, 116, 1379, 1386, 148, 323, 1940 105, 1078, 1387, 149, 150, 1315, 1395, 47, 112, 698, 1941 829, 410, 175, 602, 1396, 1398, 1405, 112, 1415, 700, 1942 105, 1416, 1408, 653, -406, 1419, 64, 1430, 653, 1434, 1943 1436, 1438, 47, 47, 1439, 160, 1446, 1455, 1451, 159, 1944 1440, 1456, 870, 1460, 1370, 1205, 653, 602, 653, 1536, 1945 1457, 1458, 653, 879, 1465, 653, 1470, 47, 1544, 372, 1946 55, 220, 175, 653, 1078, 175, 1358, 653, 1472, 1078, 1947 1474, 1476, 1478, 68, 1360, 1361, 1362, 1480, 1482, 105, 1948 68, 1483, 1488, 479, 1489, 1490, 1501, 1078, 1511, 1078, 1949 479, 1519, 1513, 1078, 1124, 1515, 1078, 1527, 258, 1520, 1950 75, 1542, 460, 1547, 1078, 460, 1543, 75, 1078, 339, 1951 1554, 175, 1556, 105, 213, 1558, 1564, 54, 327, 1571, 1952 1572, 1223, 1397, 808, 54, 807, 1324, 55, 809, 212, 1953 214, 455, 810, 68, 1219, 811, 1522, 1433, 1574, 231, 1954 328, 1389, 1257, 479, 347, 728, 1504, 241, 258, 349, 1955 1406, 1229, 942, 1108, 2, 205, 4, 5, 6, 7, 1956 75, 495, 531, 694, 531, 729, 213, 531, 951, 695, 1957 531, 1110, 1142, 826, 175, 1057, 1120, 54, 900, 405, 1958 1334, 212, 214, 227, 816, 339, 742, 973, 8, 9, 1959 10, 11, 12, 0, 423, 817, 965, 428, 430, 818, 1960 347, 347, 159, 1444, 0, 0, 0, 0, 0, 213, 1961 0, 0, 0, 0, 0, 0, 105, 31, 0, 35, 1962 55, 36, 0, 447, 212, 214, 0, 450, 175, 451, 1963 37, 0, 173, 174, 40, 175, 0, 0, 466, 105, 1964 0, 41, 42, 1018, 64, 34, 105, 829, 0, 480, 1965 37, 0, 182, 183, 40, 0, 0, 0, 0, 487, 1966 0, 41, 42, 0, 0, 0, 0, 430, 517, 0, 1967 213, 0, 0, 0, 0, 0, 123, 126, 127, 0, 1968 728, 534, 535, 0, 0, 212, 214, 698, 0, 410, 1969 728, 0, 0, 556, 0, 0, 0, 700, 0, 105, 1970 0, 0, 0, 0, 175, 728, 0, 0, 213, 0, 1971 0, 0, 213, 8, 9, 10, 11, 12, 0, 0, 1972 486, 175, 0, 212, 214, 175, 0, 212, 214, 535, 1973 0, 0, 0, 0, 0, 258, 0, 829, 603, 0, 1974 0, 455, 31, 506, 631, 0, 0, 253, 0, 254, 1975 0, 0, 0, 0, 0, 0, 0, 636, 0, 0, 1976 455, 636, 55, 55, 258, 535, 0, 460, 0, 0, 1977 34, 0, 0, 0, 729, 37, 1388, 182, 183, 40, 1978 0, 495, 1125, 323, 0, 55, 41, 42, 175, 0, 1979 37, 0, 182, 183, 40, 0, 0, 0, 0, 213, 1980 0, 41, 42, 0, 0, 55, 37, 0, 182, 183, 1981 40, 480, 184, 0, 212, 214, 0, 41, 42, 0, 1982 0, 37, 185, 173, 174, 40, 349, 1532, 0, 410, 1983 395, 480, 41, 42, 870, 0, 0, 1533, 0, 480, 1984 414, 415, 0, 184, 0, 419, 0, 421, 422, 0, 1985 347, 347, 0, 185, 0, 0, 0, 0, 371, 55, 1986 0, 0, 0, 0, 55, 724, 0, 0, 430, 0, 1987 166, 0, 171, 0, 0, 177, 178, 179, 0, 181, 1988 213, 0, 0, 738, 0, 64, 0, 0, 0, 0, 1989 0, 0, 0, 430, 232, 212, 214, 430, 55, 8, 1990 9, 10, 11, 12, 728, 728, 247, 248, 0, 729, 1991 0, 0, 212, 0, 0, 455, 829, 0, 0, 729, 1992 37, 0, 182, 183, 40, 0, 258, 349, 31, 0, 1993 213, 41, 42, 0, 729, 1505, 0, 1509, 0, 0, 1994 0, 0, 794, 795, 796, 212, 214, 37, 0, 173, 1995 174, 40, 0, 0, 175, 0, 34, 264, 41, 42, 1996 0, 0, 728, 728, 0, 0, 0, 265, 0, 0, 1997 0, 0, 1538, 819, 1540, 347, 0, 460, 0, 0, 1998 0, 0, 0, 0, 375, 535, 0, 175, 0, 0, 1999 0, 636, 832, 0, 603, 0, 460, 0, 959, 0, 2000 610, 55, 0, 175, 0, 851, 0, 0, 960, 0, 2001 0, 0, 0, 0, 0, 0, 0, 1569, 175, 1570, 2002 0, 0, 0, 603, 55, 0, 0, 0, 603, 0, 2003 0, 55, 1577, 1578, 636, 339, 0, 349, 349, 349, 2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2005 73, 0, 0, 213, 0, 0, 349, 0, 0, 0, 2006 1125, 0, 0, 0, 0, 0, 0, 0, 212, 214, 2007 0, 0, 0, 0, 724, 0, 0, 0, 0, 0, 2008 0, 213, 73, 0, 55, 480, 213, 0, 0, 0, 2009 258, 738, 0, 0, 938, 0, 212, 214, 0, 0, 2010 0, 212, 214, 0, 0, 0, 1331, 0, 0, 0, 2011 0, 0, 0, 0, 0, 175, 0, 221, 0, 535, 2012 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 2013 349, 0, 0, 729, 729, 0, 0, 0, 728, 964, 2014 0, 0, 430, 0, 0, 0, 728, 728, 728, 0, 2015 0, 460, 0, 1125, 0, 0, 0, 0, 0, 0, 2016 0, 0, 0, 601, 608, 994, 258, 738, 0, 0, 2017 0, 0, 992, 0, 213, 632, 633, 0, 0, 125, 2018 125, 125, 0, 0, 0, 0, 0, 0, 213, 212, 2019 214, 729, 729, 0, 728, 0, 0, 0, 0, 0, 2020 0, 0, 0, 212, 214, 352, 0, 0, 0, 724, 2021 0, 0, 535, 0, 0, 0, 0, 0, 0, 724, 2022 0, 0, 349, 506, 636, 0, 0, 1024, 636, 832, 2023 0, 0, 821, 822, 724, 0, 0, 0, 0, 0, 2024 0, 0, 0, 0, 1035, 0, 0, 0, 0, 0, 2025 125, 0, 125, 0, 0, 0, 1125, 8, 9, 10, 2026 11, 12, 856, 0, 0, 859, 860, 0, 863, 0, 2027 865, 866, 0, 0, 0, 867, 868, 274, 0, 448, 2028 0, 175, 213, 0, 0, 0, 31, 0, 1507, 0, 2029 1507, 0, 0, 0, 0, 0, 64, 212, 214, 0, 2030 73, 0, 0, 0, 0, 73, 412, 0, 0, 0, 2031 0, 0, 0, 420, 34, 0, 0, 0, 636, 37, 2032 0, 182, 183, 40, 0, 1507, 0, 1507, 0, 0, 2033 41, 42, 0, 125, 0, 1332, 0, 0, 0, 0, 2034 0, 125, 0, 125, 125, 0, 0, 0, 125, 0, 2035 125, 125, 0, 0, 1117, 323, 1532, 0, 410, 943, 2036 944, 0, 430, 116, 0, 946, 1533, 729, 0, 8, 2037 9, 10, 11, 12, 0, 729, 729, 729, 0, 0, 2038 349, 0, 0, 0, 0, 412, 0, 0, 0, 8, 2039 9, 10, 11, 12, 0, 0, 0, 0, 31, 0, 2040 221, 0, 0, 0, 0, 0, 535, 0, 0, 0, 2041 0, 0, 0, 0, 0, 603, 0, 0, 31, 0, 2042 125, 0, 0, 729, 0, 0, 34, 0, 428, 0, 2043 0, 37, 0, 724, 724, 40, 349, 349, 0, 0, 2044 0, 584, 41, 42, 0, 0, 34, 517, 0, 588, 2045 0, 37, 591, 182, 183, 40, 1204, 0, 0, 0, 2046 0, 0, 41, 42, 0, 0, 0, 73, 43, 0, 2047 0, 76, 0, 0, 213, 0, 0, 0, 146, 0, 2048 0, 0, 352, 0, 0, 0, 0, 73, 264, 212, 2049 214, 724, 724, 0, 0, 73, 0, 636, 265, 0, 2050 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 2051 0, 0, 0, 0, 0, 412, 0, 0, 0, 420, 2052 0, 352, 0, 0, 1508, 0, 1508, 0, 544, 545, 2053 546, 547, 548, 549, 550, 551, 552, 553, 222, 352, 2054 0, 73, 0, 0, 952, 0, 953, 0, 0, 0, 2055 0, 0, 0, 956, 957, 0, 738, 0, 962, 0, 2056 0, 1508, 554, 1508, 535, 8, 9, 10, 11, 12, 2057 967, 0, 0, 0, 0, 971, 0, 0, 0, 175, 2058 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, 2059 0, 0, 0, 0, 31, 0, 0, 0, 0, 1301, 2060 0, 1000, 0, 0, 412, 0, 0, 0, 0, 0, 2061 0, 0, 0, 0, 0, 0, 258, 0, 0, 0, 2062 0, 64, 34, 0, 0, 0, 354, 37, 0, 0, 2063 0, 40, 0, 0, 0, 724, 0, 738, 41, 42, 2064 0, 116, 0, 0, 0, 0, 601, 0, 352, 0, 2065 0, 0, 0, 0, 213, 0, 0, 0, 0, 0, 2066 0, 0, 0, 0, 744, 0, 0, 724, 0, 212, 2067 214, 0, 0, 0, 745, 724, 724, 724, 0, 0, 2068 0, 0, 0, 0, 0, 0, 349, 349, 0, 0, 2069 0, 0, 0, 352, 352, 352, 584, 584, 0, 0, 2070 1204, 0, 0, 1045, 1046, 1047, 1048, 0, 1050, 0, 2071 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, 2072 0, 76, 0, 724, 1094, 0, 76, 0, 0, 0, 2073 352, 0, 0, 0, 116, 125, 125, 0, 1100, 0, 2074 0, 73, 0, 0, 0, 0, 0, 352, 0, 1234, 2075 0, 213, 0, 0, 0, 0, 175, 0, 0, 0, 2076 0, 0, 0, 0, 0, 125, 212, 214, 125, 125, 2077 0, 125, 0, 125, 125, 0, 0, 1116, 125, 125, 2078 0, 0, 0, 73, 0, 911, 352, 0, 0, 914, 2024 2079 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2025 18, 19, 20, 21, 22, 23, 24, 25, 506, 0, 2026 26, 27, 28, 0, 64, 323, 0, 0, 0, 31, 2027 0, 0, 0, 0, 352, 0, 0, 1045, 1046, 1047, 2028 1048, 0, 1050, 0, 0, 0, 636, 0, 8, 9, 2029 10, 11, 12, 0, 0, 0, 76, 34, 1094, 0, 2030 0, 0, 37, 0, 38, 39, 40, 0, 0, 0, 2031 0, 0, 1100, 41, 42, 0, 0, 31, 0, 352, 2032 352, 352, 1116, 0, 0, 0, 0, 0, 76, 0, 2033 430, 116, 212, 0, 0, 0, 0, 0, 352, 43, 2034 0, 156, 125, 125, 0, 34, 0, 0, 349, 45, 2035 37, 1115, 0, 0, 40, 0, 352, 1218, 0, 0, 2036 0, 41, 42, 222, 0, 0, 0, 73, 0, 0, 2037 0, 0, 125, 352, 0, 125, 125, 0, 125, 0, 2038 125, 125, 0, 603, 0, 125, 125, 43, 0, 0, 2039 0, 1143, 0, 0, 0, 0, 428, 146, 1151, 0, 2040 0, 724, 724, 1155, 349, 349, 0, 0, 1159, 73, 2041 1160, 0, 352, 0, 1162, 1163, 1164, 0, 0, 1167, 2042 0, 0, 0, 0, 1203, 0, 0, 0, 1179, 0, 2043 0, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2044 0, 0, 0, 0, 0, 0, 1194, 1195, 0, 352, 2045 0, 354, 0, 0, 0, 78, 0, 0, 0, 724, 2046 724, 31, 0, 0, 125, 636, 0, 0, 0, 125, 2047 125, 0, 0, 1225, 0, 125, 1227, 0, 0, 0, 2048 0, 0, 175, 0, 0, 0, 0, 78, 0, 34, 2049 0, 352, 0, 0, 37, 0, 0, 0, 40, 0, 2050 0, 352, 0, 0, 352, 41, 42, 0, 0, 221, 2051 0, 352, 0, 0, 1242, 0, 352, 0, 0, 0, 2052 1246, 1247, 223, 738, 212, 0, 0, 0, 0, 0, 2053 0, 744, 1258, 0, 0, 0, 0, 1262, 0, 0, 2054 1266, 745, 1267, 0, 0, 1269, 76, 0, 0, 0, 2055 0, 76, 412, 0, 0, 0, 0, 0, 1277, 420, 2056 0, 0, 0, 0, 0, 0, 1299, 0, 0, 0, 2057 0, 1284, 85, 1286, 1287, 1288, 1289, 0, 73, 0, 2058 0, 0, 0, 258, 0, 0, 0, 0, 64, 1296, 2059 0, 1297, 0, 0, 0, 171, 0, 1386, 0, 0, 2060 0, 724, 0, 738, 85, 55, 55, 116, 0, 0, 2080 18, 19, 20, 21, 22, 23, 24, 25, -294, 0, 2081 0, 349, 0, 0, 0, 0, 0, 1144, 0, 31, 2082 0, 222, 412, 352, 1152, 0, 0, 0, 0, 1156, 2083 0, 0, 0, 0, 1160, 0, 1161, 116, 0, 0, 2084 1163, 1164, 1165, 0, 0, 1168, 0, 34, 0, 0, 2085 0, 0, 0, 0, 1180, 0, 0, 125, -294, 0, 2086 1204, 0, 125, 125, 0, 352, 0, 1204, 125, 0, 2087 0, 0, 1195, 1196, 1323, 352, 0, 0, 352, 0, 2088 0, 0, 0, 221, 0, 352, 0, 0, 76, 0, 2089 352, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 2090 0, 0, 1228, 354, 0, 0, 0, 0, 76, 0, 2091 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 2092 1204, 0, 0, 0, 0, 0, 0, 1557, 0, 0, 2093 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 2094 0, 1244, 354, 0, 0, 0, 0, 1248, 1249, 0, 2095 0, 0, 73, 0, 0, 0, 0, 0, 0, 1260, 2096 354, 0, 76, 78, 1264, 0, 0, 1268, 0, 1269, 2097 0, 0, 1271, 0, 0, 0, 0, 0, 0, 0, 2098 0, 0, 0, 0, 0, 1279, 0, 0, 0, 0, 2099 0, 0, 0, 0, 0, 78, 281, 282, 1286, 283, 2100 1288, 1289, 1290, 1291, 354, 0, 0, 0, 0, 0, 2101 0, 0, 0, 0, 0, 0, 1298, 0, 1299, 0, 2102 0, 0, 171, 0, 0, 284, 0, 0, 0, 0, 2103 223, 649, 0, 138, 139, 286, 352, 0, 287, 650, 2104 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2105 412, 1327, 1328, 293, 0, 0, 0, 0, 0, 0, 2106 0, 0, 0, 0, 0, 0, 0, 0, 294, 354, 2107 651, 0, 652, 379, 0, 0, 0, 296, 380, 298, 2108 299, 300, 301, 0, 0, 0, 0, 0, 0, 352, 2109 352, 0, 352, 352, 0, 0, 0, 0, 0, 0, 2110 0, 0, 0, 1363, 1364, 0, 0, 0, 0, 0, 2111 0, 0, 73, 1374, 354, 354, 354, 0, 355, 0, 2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 2113 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 2114 0, 0, 0, 0, 0, 1170, 0, 352, 352, 0, 2115 0, 354, 0, 0, 0, 0, 0, 0, 0, 0, 2116 0, 0, 76, 0, 0, 1407, 0, 0, 354, 0, 2117 0, 0, 0, 0, 0, 0, 0, 1411, 0, 1412, 2118 1413, 1414, 281, 282, 0, 283, 0, 0, 0, 0, 2119 0, 1418, 0, 0, 0, 0, 0, 0, 0, 0, 2120 1429, 0, 0, 0, 76, 0, 0, 354, 0, 0, 2121 0, 284, 352, 78, 0, 0, 1442, 285, 78, 0, 2122 0, 286, 1238, 0, 287, 288, 289, 290, 41, 42, 2123 0, 291, 292, 0, 0, 0, 0, 0, 85, 293, 2124 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 2125 0, 0, 125, 0, 294, 221, 378, 0, 0, 379, 2126 0, 0, 0, 296, 380, 298, 299, 300, 301, 0, 2127 85, 0, 1491, 1492, 0, 0, 0, 73, 0, 0, 2128 0, 0, 0, 0, 0, 1497, 354, 0, 0, 0, 2129 0, 352, 1497, 352, 0, 0, 354, 0, 0, 354, 2130 0, 0, 0, 0, 222, 224, 354, 0, 0, 0, 2131 0, 354, 0, 223, 0, 0, 0, 0, 0, 0, 2132 0, 0, 0, 352, 0, 1531, 0, 0, 0, 1537, 2133 0, 352, 352, 352, 0, 0, 0, 0, 0, 0, 2134 0, 0, 352, 352, 0, 0, 0, 0, 0, 0, 2135 0, 0, 0, 0, 0, 0, 73, 0, 1559, 0, 2136 1560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2137 0, 0, 0, 76, 0, 0, 0, 125, 0, 352, 2138 78, 0, 0, 0, 0, 0, 0, 0, 1575, 1576, 2139 0, 0, 0, 362, 0, 355, 1579, 1580, 0, 0, 2140 78, 0, 0, 0, 0, 0, -519, 0, 78, 1, 2141 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2142 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2143 22, 23, 24, 25, 355, 0, 26, 27, 28, 29, 2144 0, 0, 30, 0, 0, 31, 32, 0, 0, 0, 2145 0, 0, 355, 0, 78, 0, 0, 354, 0, 0, 2146 0, 0, 0, 0, 0, 0, 0, 352, 0, 0, 2147 33, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2148 38, 39, 40, 0, 0, 0, 0, 0, 85, 41, 2149 42, 0, 0, 85, 0, 0, 355, 0, 1034, 0, 2150 0, 8, 9, 10, 11, 12, 0, 0, 0, 0, 2151 354, 354, 0, 354, 354, 43, 73, 44, 0, 0, 2152 0, 0, 0, 73, 0, 45, 0, 0, 281, 282, 2153 31, 283, 0, 76, 0, 8, 9, 10, 11, 12, 2154 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2155 23, 24, 25, -295, 0, 0, 0, 284, 34, 0, 2156 0, 355, 0, 285, 31, 0, 0, 286, 354, 354, 2157 287, 288, 289, 290, 41, 42, 73, 291, 292, 0, 2158 0, 0, 0, 0, 0, 293, 0, 0, 224, 0, 2159 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 2160 294, 0, 378, -295, 0, 0, 355, 355, 355, 296, 2161 827, 298, 299, 300, 301, 0, 0, 0, 0, 0, 2162 0, 0, 0, 0, 0, 355, 0, 0, 0, 0, 2163 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 2164 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 2165 0, 0, 0, 0, 78, 85, 0, 0, 0, 164, 2061 2166 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2062 0, 0, 0, 0, 1325, 1326, 0, 0, 0, 0, 2063 0, 412, 0, 724, 0, 0, 0, 55, 0, 224, 2064 0, 724, 724, 724, 0, 0, 222, 0, 0, 0, 2065 0, 0, 349, 349, 0, 0, 0, 0, 175, 0, 2066 0, 0, 352, 0, 0, 0, 1203, 0, 0, 55, 2067 0, 0, 55, 0, 0, 1361, 1362, 0, 0, 0, 2068 0, 0, 0, 0, 0, 1372, 0, 584, 0, 724, 2069 0, 0, 0, 0, 0, 588, 0, 0, 591, 0, 2070 116, 0, 0, 212, 0, 78, 0, 0, 0, 0, 2071 78, 0, 0, 76, 0, 352, 352, 0, 352, 352, 2072 0, 0, 0, 0, 0, 0, 0, 362, 354, 0, 2073 0, 0, 0, 76, 0, 0, 0, 1405, 73, 0, 2074 0, 76, 0, 0, 0, 0, 0, 0, 0, 1409, 2075 0, 1410, 1411, 1412, 0, 0, 1503, 0, 1507, 0, 2076 347, 412, 0, 1416, 0, 420, 0, 354, 0, 0, 2077 0, 0, 1427, 352, 352, 0, 0, 349, 0, 0, 2078 0, 0, 0, 0, 0, 354, 0, 76, 1440, 0, 2079 0, 0, 0, 1536, 0, 1538, 0, 0, 0, 212, 2080 0, 0, 0, 116, 0, 223, 0, 0, 0, 0, 2167 362, 0, 0, 0, 0, 85, 222, 0, 217, 0, 2168 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 0, 78, 0, 76, 355, 2170 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 2171 0, 0, 354, 0, 354, 0, 0, 0, 0, 0, 2172 0, 0, 0, 0, 164, 0, 0, 362, 0, 85, 2173 271, 0, 0, 0, 0, 0, 355, 0, 0, 0, 2174 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 2175 0, 0, 354, 354, 354, 0, 0, 0, 0, 164, 2176 0, 0, 0, 354, 354, 0, 0, 0, 0, 368, 2177 0, 362, 0, 374, 0, 0, 0, 76, 355, 0, 2178 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 2179 0, 355, 0, 0, 0, 0, 223, 0, 355, 0, 2180 354, 0, 0, 355, 8, 9, 10, 11, 12, 13, 2181 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2182 24, 25, 164, 0, 26, 27, 28, 0, 0, 0, 2183 0, 0, 0, 31, 217, 0, 362, 0, 0, 0, 2081 2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2082 0, 0, 85, 0, 0, 55, 1203, 85, 0, 354, 2083 0, 0, 0, 1203, 0, 0, 0, 352, 1567, 0, 2084 1568, 0, 0, 0, 1489, 1490, 0, 0, 0, 0, 2085 412, 0, 0, 1575, 1576, 55, 0, 1495, 0, 125, 2086 0, 0, 0, 0, 1495, 0, 0, 0, 0, 0, 2087 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 2088 221, 0, 0, 0, 0, 0, 1203, 355, 0, 0, 2089 0, 0, 78, 1555, 354, 0, 0, 1529, 0, 0, 2090 78, 1535, 73, 0, 0, 0, 0, 0, 0, 0, 2091 0, 0, 0, 0, 0, 352, 0, 352, 0, 0, 2092 0, 0, 224, 0, 0, 0, 355, 0, 0, 0, 2093 1557, 0, 1558, 0, 0, 0, 0, 0, 0, 354, 2094 354, 354, 584, 584, 355, 0, 78, 352, 0, 0, 2095 0, 0, 0, 0, 0, 352, 352, 352, 354, 0, 2096 1573, 1574, 0, 0, 0, 0, 352, 352, 1577, 1578, 2097 0, 0, 0, 0, 0, 0, 354, 0, 0, 0, 2098 73, 0, 0, 125, 0, 0, 0, 76, 355, 85, 2099 0, 0, 0, 354, 0, 0, 0, 0, 0, 0, 2100 0, 0, 0, 352, 362, 0, 0, 0, 0, 85, 2101 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 2102 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 2103 0, 911, 354, 0, 0, 914, 0, 347, 0, 0, 2104 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 2105 0, 0, 0, 355, 0, 0, 0, 0, 0, 0, 2106 0, 362, 0, 85, 0, 0, 0, 0, 412, 354, 2107 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2185 0, 0, 164, 461, 0, 0, 0, 0, 0, 0, 2186 0, 34, 0, 0, 0, 78, 0, 0, 206, 39, 2187 0, 0, 0, 0, 0, 0, 374, 0, 0, 0, 2188 0, 362, 362, 362, 164, 0, 0, 0, 354, 0, 2189 0, 0, 0, 0, 514, 0, 516, 519, 0, 0, 2190 362, 0, 0, 0, 522, 523, 0, 0, 461, 516, 2191 516, 164, 0, 270, 0, 0, 0, 0, 362, 0, 2192 0, 516, 0, 0, 0, 0, 0, 0, 0, 85, 2193 0, 0, 0, 0, 0, 362, 0, 76, 281, 282, 2194 0, 283, 0, 0, 76, 0, 0, 0, 0, 355, 2195 0, 0, 0, 0, 0, 0, 0, 516, 606, 0, 2196 0, 0, 0, 630, 0, 0, 0, 284, 0, 0, 2197 0, 85, 0, 285, 362, 0, 0, 286, 0, 0, 2198 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2199 0, 0, 0, 516, 0, 293, 0, 76, 0, 0, 2200 0, 0, 355, 355, 0, 355, 355, 0, 0, 0, 2201 294, 362, 378, 0, 0, 0, 0, 0, 812, 296, 2202 380, 298, 299, 300, 301, 78, 0, 0, 0, 0, 2203 0, 0, 0, 0, 0, 210, 0, 0, 0, 164, 2204 164, 0, 0, 0, 0, 230, 368, 234, 0, 236, 2205 0, 0, 0, 362, 0, 0, 245, 0, 0, 0, 2206 355, 355, 0, 362, 0, 0, 362, 461, 0, 0, 2207 461, 224, 0, 362, 0, 0, 0, 0, 362, 0, 2208 0, 0, 0, 0, 0, 0, 0, 210, 0, 234, 2209 236, 245, 0, 0, 0, 0, 0, 0, 0, 0, 2210 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 2211 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 2212 0, 0, 0, 0, 0, 355, 0, 461, 0, 461, 2213 210, 0, 461, 0, 164, 461, 0, 0, 0, 0, 2214 85, 0, 0, 0, 0, 0, 0, 368, 0, 0, 2215 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2216 0, 0, 0, 0, 0, 0, 0, 0, 223, 0, 2217 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 2218 516, 516, 516, 516, 516, 516, 516, 516, 0, 0, 2219 78, 210, 0, 234, 236, 245, 0, 0, 0, 0, 2220 164, 0, 0, 0, 355, 0, 355, 0, 0, 0, 2221 0, 0, 368, 516, 606, 0, 0, 837, 0, 0, 2222 0, 0, 0, 0, 362, 0, 0, 0, 0, 210, 2223 0, 0, 0, 210, 0, 0, 355, 0, 0, 0, 2224 0, 0, 0, 606, 355, 355, 355, 0, 606, 504, 2225 0, 0, 0, 0, 0, 355, 355, 368, 368, 368, 2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 2227 0, 0, 0, 0, 0, 0, 368, 362, 362, 0, 2228 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 2229 0, 0, 355, 0, 0, 0, 0, 0, 0, 210, 2230 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2231 0, 741, 516, 0, 0, 0, 0, 0, 0, 0, 2232 210, 0, 0, 0, 0, 234, 236, 155, 0, 0, 2233 0, 0, 461, 245, 516, 362, 362, 0, 0, 0, 2234 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2235 368, 0, 961, 8, 9, 10, 11, 12, 13, 14, 2108 2236 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2109 25, 352, 0, 0, 0, 0, 55, 0, 355, 355, 2110 355, 0, 31, 0, 0, 362, 0, 0, 0, 0, 2111 0, 354, 0, 0, 0, 0, 0, 355, 0, 0, 2112 0, 354, 0, 0, 354, 0, 0, 0, 0, 222, 2113 34, 354, 0, 0, 0, 355, 354, 0, 347, 0, 2114 73, 0, 0, 0, 0, 0, 78, 73, 0, 0, 2115 0, 0, 355, 0, 0, 0, 0, 0, 0, 0, 2237 25, 0, 0, 250, 0, 0, 210, 0, 0, 0, 2238 355, 0, 31, 255, 0, 0, 0, 741, 0, 0, 2239 0, 0, 0, 516, 210, 0, 0, 0, 0, 210, 2240 362, 210, 0, 0, 0, 0, 0, 0, 0, 0, 2241 34, 0, 0, 0, 0, 0, 0, 0, 210, 0, 2242 0, 210, 210, 0, 0, 516, 0, 0, 0, 78, 2243 0, 0, 0, 0, 0, 0, 78, 210, 0, 155, 2244 516, 0, 368, 224, 0, 0, 630, 0, 0, 368, 2245 0, 210, 0, 385, 0, 0, 0, 0, 210, 0, 2246 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 2247 0, 0, 0, 0, 0, 0, 417, 0, 0, 362, 2248 0, 362, 0, 0, 0, 0, 0, 0, 0, 78, 2249 432, 0, 0, 0, 0, 0, 0, 0, 0, 437, 2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 2251 0, 362, 0, 0, 0, 0, 0, 0, 0, 362, 2252 362, 362, 0, 0, 0, 0, 0, 0, 0, 0, 2253 362, 362, 0, 0, 471, 0, 0, 0, 0, 481, 2254 0, 0, 461, 0, 85, 0, 0, 0, 0, 0, 2255 0, 0, 489, 0, 0, 0, 0, 0, 499, 0, 2256 503, 461, 0, 0, 0, 0, 0, 362, 0, 0, 2257 0, 0, 0, 0, 210, 0, 0, 0, 533, 0, 2258 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 2259 0, 516, 0, 0, 0, 0, 0, 0, 0, 0, 2260 368, 0, 210, 0, 0, 0, 0, 210, 0, 0, 2116 2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2117 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2118 0, 0, 0, 584, 0, 0, 0, 0, 78, 0, 2119 0, 355, 0, 0, 0, 123, 126, 127, 76, 0, 2120 73, 0, 0, 347, 0, 0, 0, 0, 0, 0, 2121 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 2122 0, 0, 0, 0, 0, 0, 0, 0, 355, 0, 2123 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 2124 0, 0, 0, 0, 0, 0, 0, 0, 347, 347, 2125 347, 0, 362, 0, 0, 0, 0, 0, 0, 0, 2126 0, 0, 0, 85, 0, 0, 253, 347, 254, 362, 2127 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128 355, 0, 354, 355, 0, 0, 0, 0, 223, 0, 2129 355, 0, 0, 0, 0, 355, 412, 0, 0, 0, 2130 0, 0, 0, 0, 0, 85, 0, 0, 362, 2, 2131 205, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2262 0, 593, 516, 0, 0, 0, 598, 0, 0, 0, 2263 0, 0, 0, 0, 516, 606, 0, 0, 0, 0, 2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2265 0, 0, 0, 0, 644, 362, 368, 368, 645, 646, 2266 0, 648, 0, 0, 0, 0, 0, 0, 660, 661, 2267 0, 662, 663, 0, 664, 516, 665, 0, 0, 0, 2268 0, 0, 1178, 0, 0, 8, 9, 10, 11, 12, 2269 0, 0, 0, 593, 0, 210, 0, 0, 0, 0, 2270 0, 680, 0, 0, 85, 0, 0, 0, 0, 210, 2271 0, 85, 281, 282, 31, 283, 461, 0, 0, 0, 2272 0, 0, 0, 0, 0, 0, 691, 0, 0, 504, 2273 0, 0, 0, 0, 0, 0, 0, 697, 0, 0, 2274 0, 284, 34, 0, 0, 0, 0, 285, 516, 0, 2275 0, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2276 733, 291, 292, 0, 85, 0, 736, 0, 0, 293, 2277 0, 471, 0, 0, 0, 0, 741, 0, 0, 0, 2278 0, 0, 0, 0, 294, 0, 378, 0, 0, 0, 2279 210, 0, 516, 296, 1179, 298, 299, 300, 301, 0, 2280 0, 0, 0, 210, 0, 0, 516, 516, 773, 0, 2281 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, 2282 0, 0, 210, 0, 788, 0, 0, 0, 0, 0, 2283 0, 204, 2, 205, 4, 5, 6, 7, 8, 9, 2284 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2285 20, 21, 22, 23, 24, 25, 0, 741, 26, 27, 2286 28, 815, 0, 0, 0, 0, 0, 31, 0, 0, 2287 825, 0, 0, 0, 0, 0, 0, 828, 0, 0, 2288 0, 0, 835, 0, 0, 0, 0, 0, 0, 0, 2289 0, 0, 0, 850, 0, 34, 0, 35, 0, 36, 2290 37, 0, 206, 39, 40, 0, 368, 368, 0, 210, 2291 0, 41, 42, 0, 0, 217, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 0, 890, 210, 0, 43, 0, 207, 2294 0, 0, 0, 0, 0, 0, 0, 208, 0, 0, 2295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2296 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 2297 835, 0, 0, 0, 0, 0, 8, 9, 10, 11, 2298 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2299 22, 23, 24, 25, -294, 210, 26, 27, 28, 0, 2300 0, 0, 0, 0, 0, 31, 210, 0, 0, 0, 2301 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2302 0, 0, 0, 0, 0, 250, 0, 0, 0, 0, 2303 0, 368, 0, 34, 516, 968, 969, 0, 0, 0, 2304 38, 39, 0, 0, -294, 0, 0, 0, 0, 986, 2305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2306 0, 0, 0, 0, 0, 0, 1001, 0, 1002, 0, 2307 0, 0, 1006, 0, 0, 643, 0, 338, 0, 0, 2308 0, 0, 0, 0, 0, 110, 0, 0, 210, 461, 2309 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, 2310 0, 0, 0, 0, 0, 0, 0, 516, 516, 0, 2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2312 281, 282, 0, 283, 0, 0, 461, 0, 461, 0, 2313 0, 0, 0, 0, 0, 0, 0, 0, 1039, 0, 2314 0, 0, 0, 0, 0, 1040, 0, 0, 0, 284, 2315 0, 0, 0, 0, 0, 285, 164, 0, 1042, 286, 2316 1043, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2317 292, 0, 0, 0, 1055, 210, 0, 293, 0, 0, 2318 0, 1059, 0, 0, 0, 0, 0, 0, 0, 0, 2319 0, 0, 294, 1097, 378, 0, 1098, 0, 0, 781, 2320 0, 296, 380, 298, 299, 300, 301, 0, 0, 0, 2321 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, 2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2323 0, 0, 0, 0, 341, 363, 0, 0, 0, 0, 2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2326 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 2327 0, 0, 210, 0, 0, 413, 0, 1, 2, 3, 2328 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2329 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2330 24, 25, 0, 1162, 26, 27, 28, 29, 0, 0, 2331 30, 0, 0, 31, 32, 8, 9, 10, 11, 12, 2132 2332 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2133 23, 24, 25, 0, 0, 354, 354, 0, 354, 354, 2134 0, 347, 0, 0, 31, 362, 0, 0, 0, 395, 2135 0, 0, 0, 0, 0, 0, 0, 78, 76, 414, 2136 415, 0, 0, 0, 419, 0, 421, 422, 0, 0, 2137 0, 0, 34, 0, 35, 1157, 36, 37, 0, 173, 2138 174, 40, 0, 0, 0, 0, 0, 362, 41, 42, 2139 0, 1169, 0, 354, 354, 0, 0, 362, 0, 0, 2140 362, 0, 0, 0, 0, 224, 0, 362, 0, 0, 2141 0, 0, 362, 0, 8, 9, 10, 11, 12, 13, 2142 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2143 24, 25, -294, 347, 26, 27, 28, 0, 0, 0, 2144 347, 355, 0, 31, 0, 0, 0, 0, 0, 0, 2145 0, 0, 0, 0, 0, 0, 0, 354, 0, 0, 2146 0, 0, 0, 0, 0, 0, 0, 0, 1237, 0, 2147 0, 34, 0, 0, 85, 0, 37, 0, 336, 337, 2148 40, 0, -294, 0, 0, 0, 0, 41, 42, 0, 2149 0, 0, 0, 0, 355, 355, 0, 355, 355, 0, 2150 222, 0, 0, 0, 0, 0, 0, 55, 0, 0, 2151 0, 0, 0, 643, 0, 338, 0, 78, 0, 0, 2152 0, 0, 76, 634, 0, 164, 0, 0, 0, 0, 2153 0, 0, 0, 0, 0, 354, 0, 354, 0, 0, 2154 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 2155 0, 0, 355, 355, 0, 0, 0, 0, 362, 0, 2156 281, 282, 0, 283, 0, 0, 0, 354, 0, 0, 2157 0, 0, 0, 0, 55, 354, 354, 354, 0, 0, 2158 0, 0, 0, 0, 0, 0, 354, 354, 0, 284, 2159 164, 347, 0, 0, 0, 285, 271, 0, 0, 286, 2160 76, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2161 292, 362, 362, 0, 362, 362, 355, 293, 0, 0, 2162 0, 0, 0, 354, 0, 164, 0, 0, 0, 0, 2163 0, 0, 513, 0, 85, 368, 0, 0, 0, 374, 2164 0, 296, 380, 298, 299, 300, 301, 347, 347, 0, 2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, 2166 0, 0, 0, 0, 0, 0, 0, 55, 0, 362, 2167 362, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2168 0, 78, 0, 0, 0, 0, 0, 0, 164, 0, 2169 0, 0, 0, 0, 355, 0, 355, 0, 0, 0, 2170 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171 0, 354, 0, 0, 0, 0, 0, 0, 164, 461, 2172 0, 0, 0, 0, 0, 0, 355, 0, 0, 0, 2173 0, 0, 0, 362, 355, 355, 355, 0, 0, 0, 2174 0, 0, 374, 0, 0, 355, 355, 0, 0, 0, 2175 164, 821, 822, 0, 0, 0, 0, 0, 0, 78, 2176 76, 0, 0, 0, 0, 0, 0, 76, 0, 0, 2177 0, 0, 0, 0, 461, 0, 224, 164, 0, 0, 2178 0, 856, 355, 0, 859, 860, 0, 863, 0, 865, 2179 866, 0, 0, 0, 867, 868, 0, 0, 85, 0, 2180 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 2181 0, 362, 0, 362, 0, 0, 0, 0, 0, 0, 2182 76, 0, 0, 0, 606, 0, 0, 0, 0, 630, 2183 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 2184 0, 0, 0, 362, 0, 0, 210, 0, 0, 0, 2185 55, 362, 362, 362, 0, 0, 230, 0, 234, 0, 2186 236, 0, 362, 362, 0, 0, 0, 245, 0, 0, 2187 355, 0, 0, 0, 0, 0, 85, 0, 943, 944, 2188 0, 0, 0, 0, 946, 0, 0, 0, 0, 0, 2189 0, 0, 0, 0, 0, 347, 347, 0, 210, 362, 2190 234, 236, 245, 0, 55, 164, 164, 0, 0, 55, 2191 0, 0, 368, 0, 0, 0, 0, 0, 0, 78, 2192 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 2193 0, 0, 0, 461, 0, 0, 461, 0, 0, 0, 2194 0, 210, 461, 55, 474, 2, 205, 4, 5, 6, 2333 23, 24, 25, 0, 0, 26, 27, 28, 33, 0, 2334 0, 34, 0, 35, 31, 36, 37, 413, 38, 39, 2335 40, 0, 0, 0, 0, 0, 0, 41, 42, 533, 2336 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0, 2337 0, 0, 34, 0, 0, 0, 0, 0, 0, 38, 2338 39, 0, 0, 43, 0, 44, 0, 0, 0, -523, 2339 0, 0, 0, 45, 0, 321, 1241, 0, 0, 0, 2340 0, 1243, 0, 413, 0, 345, 0, 0, 0, 1247, 2341 0, 413, 589, 0, 413, 592, 0, 381, 381, 0, 2342 0, 0, 0, 0, 363, 0, 0, 0, 622, 0, 2343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2344 1273, 0, 0, 0, 0, 0, 0, 640, 0, 0, 2345 341, 0, 1281, 0, 0, 1282, 0, 1283, 0, 0, 2346 281, 282, 0, 283, 0, 0, 0, 0, 0, 0, 2347 0, 1292, 1293, 0, 0, 0, 0, 413, 0, 0, 2348 0, 413, 0, 0, 0, 0, 0, 0, 321, 284, 2349 0, 0, 0, 1306, 0, 285, 0, 0, 0, 286, 2350 0, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2351 292, 0, 363, 485, 0, 0, 0, 293, 0, 0, 2352 1329, 0, 0, 0, 0, 0, 0, 0, 210, 0, 2353 0, 0, 294, 0, 378, 413, 0, 993, 0, 0, 2354 0, 296, 380, 298, 299, 300, 301, 0, 0, 0, 2355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2356 0, 0, 0, 0, 0, 0, 413, 0, 0, 363, 2357 0, 0, 0, 0, 1, 2, 205, 4, 5, 6, 2195 2358 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2196 17, 18, 19, 20, 21, 22, 23, 24, 25, 741, 2197 0, 26, 27, 28, 0, 0, 0, 0, 0, 78, 2198 31, 164, 0, 0, 0, 0, 0, 362, 0, 0, 2199 0, 0, 155, 461, 0, 461, 0, 0, 461, 0, 2200 164, 461, 210, 0, 234, 236, 245, 0, 34, 0, 2201 35, 0, 36, 368, 0, 38, 39, 0, 0, 0, 2202 347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2203 0, 0, 0, 0, 0, 0, 85, 0, 250, 0, 2204 210, 0, 0, 85, 210, 0, 55, 0, 255, 0, 2205 0, 0, 0, 0, 0, -3, 0, 0, 0, 0, 2206 504, 0, 0, 0, 0, 0, 164, 0, 0, 55, 2207 0, 0, 0, 0, 0, 0, 55, 0, 368, 0, 2208 606, 0, 0, 837, 0, 0, 0, 0, 0, 0, 2209 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 2210 0, 0, 0, 0, 155, 0, 0, 0, 0, 606, 2211 210, 0, 0, 0, 606, 0, 0, 0, 385, 0, 2212 0, 0, 0, 368, 368, 368, 0, 0, 0, 55, 2213 0, 210, 0, 0, 0, 0, 234, 236, 0, 0, 2214 0, 417, 368, 0, 245, 0, 0, 0, 0, 0, 2215 0, 0, 0, 0, 0, 432, 0, 0, 0, 0, 2216 0, 0, 1034, 0, 437, 8, 9, 10, 11, 12, 2217 0, 0, 0, 0, 445, 0, 0, 741, 0, 0, 2218 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, 2219 0, 0, 281, 282, 31, 283, 0, 0, 461, 471, 2220 0, 0, 0, 0, 481, 210, 0, 0, 0, 0, 2221 210, 0, 210, 0, 0, 0, 368, 489, 961, 0, 2222 0, 284, 34, 499, 0, 503, 0, 285, 0, 210, 2223 0, 286, 210, 210, 287, 288, 289, 290, 41, 42, 2224 0, 291, 292, 533, 0, 0, 0, 0, 210, 293, 2225 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 2226 0, 0, 210, 0, 294, 0, 378, 0, 1233, 210, 2227 0, 0, 0, 296, 827, 298, 299, 300, 301, 0, 2228 0, 0, 0, 0, 0, 0, 593, 0, 0, 0, 2229 0, 598, 0, 0, 0, 0, 0, 0, 0, 0, 2230 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 2231 0, 0, 630, 0, 0, 368, 0, 0, 0, 644, 2232 0, 0, 0, 645, 646, 0, 648, 0, 0, 0, 2233 0, 0, 0, 660, 661, 0, 662, 663, 0, 664, 2234 0, 665, 0, 0, 0, 0, 0, 1177, 0, 0, 2235 8, 9, 10, 11, 12, 0, 0, 0, 593, 0, 2236 0, 0, 0, 0, 0, 0, 680, 0, 0, 0, 2237 0, 0, 0, 0, 0, 0, 0, 281, 282, 31, 2238 283, 0, 0, 0, 0, 210, 0, 0, 0, 0, 2239 0, 691, 1321, 0, 0, 0, 0, 0, 0, 0, 2240 0, 0, 697, 0, 0, 0, 284, 34, 461, 0, 2241 0, 0, 285, 210, 0, 0, 286, 0, 210, 287, 2242 288, 289, 290, 41, 42, 733, 291, 292, 0, 0, 2243 0, 736, 0, 0, 293, 0, 471, 0, 0, 0, 2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2245 164, 378, 0, 0, 0, 0, 0, 0, 296, 1178, 2246 298, 299, 300, 301, 0, 0, 368, 0, 0, 0, 2247 0, 0, 0, 773, 0, 0, 0, 0, 0, 0, 2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, 2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2250 0, 606, 0, 0, 0, 0, 210, 0, 0, 0, 2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2252 210, 0, 368, 368, 0, 0, 815, 0, 0, 0, 2253 0, 0, 0, 0, 0, 825, 0, 0, 0, 0, 2254 504, 0, 828, 0, 0, 281, 282, 835, 283, 0, 2255 0, 0, 0, 0, 0, 0, 0, 0, 850, 0, 2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2257 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, 2258 285, 0, 461, 0, 286, 0, 0, 287, 288, 289, 2259 290, 41, 42, 0, 291, 292, 0, 0, 0, 890, 2260 0, 210, 293, 0, 0, 0, 0, 0, 0, 0, 2261 0, 0, 0, 0, 210, 0, 0, 294, 0, 378, 2262 0, 0, 379, 0, 0, 0, 296, 380, 298, 299, 2263 300, 301, 0, 210, 0, 835, 0, 0, 0, 0, 2264 0, 741, 0, 0, 1, 2, 3, 4, 5, 6, 2359 17, 18, 19, 20, 21, 22, 23, 24, 25, -294, 2360 0, 26, 27, 28, 29, 0, 0, 30, 0, 413, 2361 31, 0, 341, 363, 0, 0, 0, 0, 1399, 0, 2362 1400, 0, 0, 0, 0, 0, 0, 0, 0, 381, 2363 0, 0, 0, 1409, 0, 1410, 0, 0, 34, 0, 2364 35, 0, 36, 0, 0, 38, 39, 0, 0, -294, 2365 0, 0, 0, 1417, 0, 0, 0, 0, 413, 413, 2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 1435, 2367 1437, 0, 0, 0, 0, 0, 0, 830, 363, 0, 2368 363, 1443, 44, 0, 1247, 0, 0, 0, 0, 622, 2369 110, 622, 622, 0, 0, 0, 0, 0, 622, 0, 2370 0, 0, 0, 0, 0, 0, 1466, 0, 869, 363, 2371 0, 0, 0, 0, 363, 1473, 0, 0, 1475, 0, 2372 1477, 1479, 1481, 363, 363, 363, 0, 0, 0, 0, 2373 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 2374 0, 0, 363, 0, 0, 0, 0, 413, 912, 0, 2375 0, 413, 915, 0, 0, 0, 0, 0, 917, 0, 2376 0, 0, 1512, 0, 1514, 0, 0, 1247, 0, 0, 2377 769, 0, 0, 0, 0, 0, 341, 363, 413, 0, 2378 413, 0, 1526, 782, 413, 0, 0, 0, 0, 0, 2379 769, 0, 0, 769, 0, 0, 0, 0, 0, 0, 2380 0, 0, 0, 0, 792, 793, 0, 0, 0, 0, 2381 0, 0, 0, 0, 0, 0, 363, 622, 0, 0, 2382 0, 0, 0, 0, 0, 0, 814, 0, 0, 0, 2383 0, 0, 0, 0, 0, 0, 823, 0, 0, 0, 2384 0, 0, 0, 345, 0, 0, 0, 0, 782, 0, 2385 0, 0, 341, 363, 0, 0, 0, 413, 413, 0, 2386 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 2265 2387 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2266 2388 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2267 0, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2268 31, 32, 0, 217, 0, 0, 0, 0, 0, 0, 2269 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2270 968, 969, 0, 0, 0, 33, 0, 0, 34, 0, 2271 35, 0, 36, 37, 986, 38, 39, 40, 0, 0, 2272 210, 741, 341, 363, 41, 42, 0, 0, 0, 0, 2273 0, 1001, 0, 1002, 0, 0, 0, 1006, 0, 0, 2274 0, 0, 0, 0, 0, 0, 210, 0, 0, 0, 2275 43, 0, 44, 0, 0, 0, 413, 0, 0, 0, 2276 45, 0, 0, 413, 0, 0, 0, 0, 0, 0, 2277 368, 368, 0, 0, 210, 0, 0, 0, 0, 217, 2278 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2279 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2280 26, 27, 28, 1039, 0, 0, 210, 0, 0, 31, 2281 1040, 0, 0, 0, 0, 0, 0, 210, 0, 0, 2282 0, 0, 0, 1042, 0, 1043, 0, 0, 0, 0, 2283 0, 0, 0, 0, 0, 413, 0, 34, 0, 1055, 2284 0, 0, 109, 0, 38, 39, 1059, 0, 0, 0, 2285 0, 0, 0, 41, 42, 0, 0, 0, 1097, 0, 2286 0, 1098, 0, 0, 0, 0, 0, 0, 0, 0, 2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 598, 2288 0, 44, 0, 0, 0, 0, 0, 0, 0, 110, 2289 0, 413, 0, 0, 0, 368, 0, 0, 210, 413, 2290 589, 0, 413, 592, 0, 0, 0, 0, 0, 0, 2291 0, 0, 363, 0, 0, 0, 622, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2293 0, 0, 0, 0, 0, 640, 0, 0, 341, 0, 2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2295 0, 0, 0, 461, 0, 461, 0, 0, 0, 0, 2296 281, 282, 0, 283, 0, 413, 0, 0, 1161, 413, 2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2298 0, 0, 0, 0, 0, 210, 0, 0, 0, 284, 2299 461, 321, 461, 0, 0, 649, 0, 138, 139, 286, 2300 363, 345, 287, 650, 289, 290, 41, 42, 0, 291, 2301 292, 0, 0, 381, 381, 0, 0, 293, 0, 0, 2302 164, 0, 0, 413, 533, 0, 0, 0, 0, 0, 2303 0, 1226, 294, 0, 651, 0, 652, 379, 0, 0, 2304 0, 296, 380, 298, 299, 300, 301, 0, 0, 0, 2305 0, 0, 0, 0, 413, 0, 0, 363, 0, 0, 2306 1239, 0, 0, 0, 0, 1241, 0, 0, 0, 0, 2307 0, 0, 0, 1245, 0, 0, 0, 0, 0, 0, 2308 0, 210, 0, 0, 321, 0, 0, 0, 0, 0, 2309 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 2310 341, 363, 0, 0, 1271, 0, 0, 0, 0, 485, 2311 0, 0, 0, 0, 0, 0, 1279, 0, 0, 1280, 2312 0, 1281, 0, 0, 0, 0, 0, 0, 0, 0, 2313 0, 0, 0, 0, 0, 1290, 1291, 0, 0, 0, 2314 0, 0, 0, 0, 0, 0, 413, 413, 0, 0, 2315 0, 0, 0, 0, 0, 0, 0, 1304, 0, 0, 2316 0, 0, 0, 0, 0, 830, 363, 0, 363, 0, 2317 0, 0, 0, 0, 0, 0, 0, 622, 0, 622, 2318 622, 0, 0, 0, 1327, 0, 622, 0, 0, 514, 2319 0, 516, 519, 0, 0, 0, 869, 363, 0, 522, 2320 523, 0, 363, 0, 516, 516, 0, 0, 0, 0, 2321 0, 363, 363, 363, 0, 0, 516, 0, 0, 0, 2322 0, 0, 0, 0, 0, 381, 0, 0, 0, 0, 2323 363, 0, 0, 0, 0, 413, 912, 0, 0, 413, 2324 915, 0, 0, 0, 0, 0, 917, 0, 0, 0, 2325 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 2326 0, 0, 0, 0, 341, 363, 413, 0, 413, 0, 2327 0, 0, 413, 0, 0, 0, 0, 0, 0, 281, 2328 282, 1397, 283, 1398, 0, 0, 0, 0, 516, 0, 2329 0, 0, 0, 0, 0, 0, 1407, 0, 1408, 0, 2330 0, 0, 0, 0, 363, 622, 0, 0, 284, 0, 2331 0, 0, 0, 0, 285, 0, 1415, 0, 286, 0, 2332 0, 287, 288, 289, 290, 41, 42, 735, 291, 292, 2333 0, 0, 1433, 1435, 0, 0, 293, 210, 0, 0, 2334 341, 363, 0, 0, 1441, 413, 413, 1245, 0, 0, 2335 0, 294, 0, 378, 0, 0, 0, 0, 0, 812, 2336 296, 380, 298, 299, 300, 301, 769, 0, 0, 1464, 2337 0, 0, 0, 0, 0, 0, 0, 0, 1471, 782, 2338 0, 1473, 0, 1475, 1477, 1479, 769, 413, 0, 769, 2339 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 2340 792, 793, 830, 363, 0, 0, 0, 622, 0, 622, 2341 0, 0, 0, 0, 0, 0, 0, 0, 0, 622, 2342 0, 0, 814, 0, 0, 1510, 0, 1512, 0, 0, 2343 1245, 0, 823, 0, 0, 0, 0, 0, 0, 345, 2344 0, 0, 0, 0, 782, 1524, 0, 0, 0, 0, 2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2346 0, 0, 0, 0, 0, 516, 516, 516, 516, 516, 2347 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 2348 516, 516, 516, 0, 0, 0, 0, 0, 0, 0, 2349 0, 0, 830, 0, 889, 0, 0, 0, 0, 0, 2350 413, 0, 0, 381, 0, 0, 413, 0, 516, 0, 2351 0, 0, 0, 0, 413, 0, 0, 0, 0, 0, 2352 0, 0, 0, 0, 0, 0, 0, 622, 622, 0, 2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2354 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 2355 0, 0, 0, 0, 363, 0, 0, 0, 0, 0, 2356 413, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2357 17, 18, 19, 20, 21, 22, 23, 24, 25, 413, 2358 1158, 26, 27, 28, 0, 0, 0, 0, 0, 363, 2359 31, 453, 0, 0, 0, 413, 1170, 0, 622, 622, 2360 1175, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2361 363, 363, 0, 0, 0, 0, 0, 0, 34, 782, 2362 0, 991, 0, 0, 0, 38, 39, 996, 0, 516, 2363 0, 0, 0, 0, 1005, 0, 0, 0, 0, 0, 2364 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 2365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2366 0, 0, 454, 0, 0, 0, 711, 0, 0, 0, 2367 110, 830, 413, 1238, 0, 0, 0, 0, 1022, 1023, 2368 0, 345, 0, 0, 622, 0, 0, 0, 516, 0, 2369 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 2389 0, 26, 27, 28, 29, 0, 0, 30, 889, 413, 2390 31, 32, 0, 0, 0, 0, 0, 381, 363, 0, 2391 0, 0, 0, 0, 830, 363, 0, 0, 0, 622, 2392 0, 622, 0, 0, 0, 33, 0, 0, 34, 0, 2393 35, 622, 36, 37, 0, 38, 39, 40, 0, 0, 2394 0, 0, 0, 0, 41, 42, 0, 345, 0, 0, 2370 2395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2371 2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2372 516, 0, 0, 0, 0, 0, 0, 0, 0, 363, 2373 0, 0, 0, 0, 0, 516, 1053, 0, 0, 0, 2374 381, 0, 0, -517, 0, 0, 1, 2, 3, 4, 2375 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2376 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2377 25, 0, 0, 26, 27, 28, 29, 0, 0, 30, 2378 0, 0, 31, 32, 0, 0, 0, 0, 0, 341, 2397 43, 0, 44, 0, 0, 0, 0, 0, 0, 0, 2398 45, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2399 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2400 23, 24, 25, -294, 830, 26, 27, 28, 0, 0, 2401 0, 0, 413, 0, 31, 0, 0, 0, 413, 0, 2402 0, 0, 0, 782, 0, 991, 413, 0, 0, 0, 2403 0, 996, 0, 0, 0, 0, 0, 0, 1005, 622, 2404 622, 0, 34, 0, 0, 0, 0, 37, 0, 336, 2405 337, 40, 0, -294, 0, 0, 0, 0, 41, 42, 2406 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 2407 0, 0, 413, 0, 0, 0, 0, 0, 0, 0, 2408 0, 0, 1022, 1023, 643, 345, 338, 0, 0, 0, 2409 0, 413, 1159, 0, 634, 0, 0, 0, 0, 0, 2410 345, 363, 0, 0, 0, 0, 0, 413, 1171, 0, 2411 622, 622, 1176, 0, 0, 0, 0, 0, 0, 0, 2412 0, 0, 363, 363, 0, 0, 0, 0, 0, 0, 2379 2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2380 0, 0, 0, 0, 0, 0, 0, 33, 0, 363, 2381 34, 0, 35, 0, 36, 37, 321, 38, 39, 40, 2382 0, 0, 0, 0, 0, 0, 41, 42, 0, 0, 2383 0, 0, 1139, 1140, 0, 0, 0, 0, 0, 381, 2384 0, 0, 0, 0, 0, 996, 0, 0, 1149, 0, 2385 769, 0, 43, 0, 44, 0, 0, 0, 363, 363, 2386 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 2387 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2388 0, 1180, 0, 0, 0, 0, 516, 0, 0, 0, 2414 1053, 0, 0, 0, 381, 1, 2, 205, 4, 5, 2415 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2416 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2417 0, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2418 0, 31, 0, 830, 413, 1239, 0, 0, 0, 0, 2419 0, 0, 0, 0, 0, 0, 0, 622, 0, 0, 2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2421 0, 35, 0, 36, 0, 0, 38, 39, 0, 0, 2422 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2423 0, 0, 0, 0, 0, 0, 1140, 1141, 0, 0, 2424 0, 0, 363, 381, 0, 0, 0, 281, 282, 996, 2425 283, 0, 1150, 44, 769, 0, 0, 0, 0, 0, 2426 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 1166, 0, 284, 0, 0, 0, 2428 0, 0, 285, 0, 0, 1181, 286, 0, 0, 287, 2429 288, 289, 290, 41, 42, 0, 291, 292, 0, 0, 2430 0, 0, 341, 0, 293, 281, 282, 381, 283, 1199, 2431 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2432 0, 378, 0, 363, 996, 996, 0, 0, 296, 380, 2433 298, 299, 300, 301, 284, 0, 0, 0, 0, 0, 2434 285, 0, 0, 0, 286, 1231, 0, 287, 288, 289, 2435 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2436 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2437 0, 0, 363, 363, 0, 0, 0, 294, 0, 378, 2438 0, 0, 0, 0, 0, 0, 296, 734, 298, 299, 2439 300, 301, 0, 996, 0, 0, 0, 0, 0, 0, 2389 2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2390 0, 0, 0, 381, 0, 1198, 0, 0, 0, 0, 2391 0, 0, 0, 0, 0, 0, 0, 516, 0, 0, 2392 996, 996, 0, 0, 0, 0, 0, 0, 0, 516, 2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2394 0, 1230, 0, 0, 1, 2, 3, 4, 5, 6, 2395 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2396 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2397 516, 26, 27, 28, 29, 0, 0, 30, 0, 0, 2398 31, 32, 0, 363, 0, 0, 0, 0, 996, 0, 2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2400 0, 0, 0, 0, 0, 33, 0, 889, 34, 0, 2401 35, 0, 36, 37, 0, 38, 39, 40, 0, 0, 2402 0, 0, 1282, 1283, 41, 42, 0, 0, 0, 0, 2403 0, 0, 281, 282, 0, 283, 0, 0, 0, 0, 2404 0, 0, 516, 0, 0, 0, 0, 0, 0, 0, 2405 43, 0, 44, 0, 0, 0, -521, 0, 0, 0, 2406 45, 284, 0, 0, 0, 0, 0, 285, 0, 0, 2407 0, 286, 0, 413, 287, 288, 289, 290, 41, 42, 2408 0, 291, 292, 0, 0, 0, 516, 0, 0, 293, 2409 0, 0, 0, 0, 0, 0, 0, 0, 413, 413, 2410 516, 516, 0, 996, 294, 0, 378, 0, 0, 0, 2411 0, 781, 0, 296, 380, 298, 299, 300, 301, 0, 2412 0, 0, 0, 413, 0, 1, 2, 205, 4, 5, 2441 0, 0, 889, 0, 0, 0, 0, 0, 0, 0, 2442 0, 0, 0, 0, 0, 0, 0, 1284, 1285, 0, 2443 0, 0, 0, 0, 0, 1, 2, 205, 4, 5, 2413 2444 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2414 2445 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2415 2446 0, 0, 26, 27, 28, 29, 0, 0, 30, 281, 2416 282, 31, 1062, 1063, 1390, 1064, 769, 0, 1065, 1066,2447 282, 31, 1062, 1063, 0, 1064, 0, 0, 1065, 1066, 2417 2448 1067, 1068, 1069, 1070, 1071, 1072, 0, 0, 0, 1073, 2418 0, 0, 0, 1074, 1075, 0, 33, 0, 284, 34,2419 0, 35, 0, 36, 649, 0, 38, 39, 286, 0,2449 0, 0, 0, 1074, 1075, 0, 33, 363, 284, 34, 2450 0, 35, 0, 36, 649, 0, 38, 39, 286, 996, 2420 2451 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2421 2452 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, … … 2423 2454 0, 294, 0, 1076, 0, 0, 170, 0, 0, 0, 2424 2455 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 2425 1077, 0, 1450, 0, -129, 0, 0, 0, 0, 0, 2426 1, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2427 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2428 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2429 29, 0, 0, 30, 281, 282, 31, 283, 0, 0, 2456 1077, 0, 0, 0, -129, 0, 0, 0, 0, 0, 2457 1392, 0, 769, 0, 0, 0, 0, 0, 0, 0, 2458 0, 0, 0, 0, 0, 0, 0, 413, 8, 9, 2459 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2460 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2461 28, 0, 413, 413, 0, 0, 0, 31, 0, 0, 2430 2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 516, 0, 0, 281, 282, 0, 283, 0, 0, 0, 2432 0, 0, 0, 284, 34, 0, 35, 516, 36, 285, 2433 0, 38, 39, 286, 1516, 0, 287, 288, 289, 290, 2434 41, 42, 284, 291, 292, 0, 0, 0, 285, 0, 2435 0, 293, 286, 0, 0, 287, 288, 289, 290, 41, 2436 42, 0, 291, 292, 0, 0, 294, 0, 1076, 0, 2437 293, 0, 0, 0, 0, 296, 297, 298, 299, 300, 2438 301, 0, 0, 0, 0, 294, 321, 378, 0, -129, 2439 993, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2440 516, 516, 1, 2, 205, 4, 5, 6, 7, 8, 2441 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2442 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2443 27, 28, 29, 0, 0, 30, 281, 282, 31, 283, 2444 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2445 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2446 26, 27, 28, 0, 0, 284, 34, 0, 35, 31, 2447 36, 285, 0, 38, 39, 286, 0, 0, 287, 288, 2448 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2449 0, 0, 0, 293, 0, 0, 0, 34, 0, 0, 2450 0, 0, 109, 0, 38, 39, 0, 0, 294, 0, 2451 44, 0, 0, 41, 42, 0, 0, 296, 297, 298, 2452 299, 300, 301, 2, 205, 4, 5, 6, 7, 8, 2453 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2454 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2455 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2456 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2463 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 2464 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2465 0, 0, 206, 39, 0, 0, 0, 0, 1452, 0, 2466 0, 0, 0, 0, 0, 1, 2, 205, 4, 5, 2467 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2468 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2469 0, 0, 26, 27, 28, 29, 0, 629, 30, 281, 2470 282, 31, 283, 8, 9, 10, 11, 12, 13, 14, 2457 2471 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2458 25, -294, 0, 0, 0, 284, 34, 0, 35, 0, 2459 36, 285, 31, 38, 39, 286, 0, 0, 287, 288, 2460 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2461 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 2462 34, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2463 343, -294, 0, 0, 0, 781, 0, 296, 344, 298, 2464 299, 300, 301, 2, 205, 4, 5, 6, 7, 8, 2465 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2466 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2467 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2468 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2472 25, 0, 0, 26, 27, 28, 0, 0, 284, 34, 2473 0, 35, 31, 36, 285, 0, 38, 39, 286, 0, 2474 1518, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2475 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2476 34, 0, 0, 0, 0, 109, 0, 38, 39, 0, 2477 0, 294, 0, 1076, 0, 0, 41, 42, 0, 0, 2478 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, 2479 0, 0, 321, 0, -129, 1, 2, 205, 4, 5, 2480 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2481 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2482 0, 0, 26, 27, 28, 29, 0, 0, 30, 281, 2483 282, 31, 283, 8, 9, 10, 11, 12, 13, 14, 2469 2484 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2470 25, -295, 0, 0, 0, 284, 34, 0, 35, 0, 2471 36, 285, 31, 38, 39, 286, 0, 0, 287, 288, 2472 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2473 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 2474 34, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2475 931, -295, 0, 0, 0, 781, 0, 296, 344, 298, 2476 299, 300, 301, 2, 205, 4, 5, 6, 7, 8, 2477 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2478 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2479 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2480 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2481 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2482 26, 27, 28, 0, 0, 284, 34, 0, 35, 31, 2483 36, 285, 0, 38, 39, 286, 0, 0, 287, 288, 2484 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2485 0, 0, 0, 293, 0, 0, 0, 34, 0, 0, 2486 0, 0, 0, 0, 38, 39, 0, 0, 294, 0, 2487 931, 0, 0, 0, 0, 781, 0, 296, 600, 298, 2488 299, 300, 301, 2, 205, 4, 5, 6, 7, 8, 2489 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2490 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2491 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2492 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2493 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2494 26, 27, 28, 0, 0, 284, 34, 0, 35, 31, 2495 36, 285, 0, 38, 39, 286, 0, 0, 287, 288, 2496 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2497 0, 0, 0, 293, 0, 0, 0, 34, 0, 0, 2498 0, 0, 0, 0, 206, 39, 0, 0, 294, 0, 2499 343, 0, 0, 0, 0, 0, 0, 296, 344, 298, 2500 299, 300, 301, 2, 205, 4, 5, 6, 7, 8, 2501 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2502 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2503 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2485 25, 0, 0, 26, 27, 28, 0, 0, 284, 34, 2486 0, 35, 31, 36, 285, 0, 38, 39, 286, 0, 2487 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2488 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2489 34, 0, 0, 0, 0, 0, 0, 206, 39, 0, 2490 0, 294, 0, 44, 0, 0, 0, 0, 0, 0, 2491 296, 297, 298, 299, 300, 301, 2, 205, 4, 5, 2492 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2493 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2494 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2495 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2497 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2498 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2499 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2500 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2502 0, 294, 0, 343, 0, 0, 0, 0, 781, 0, 2503 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2504 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2505 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2506 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2507 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2510 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2511 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2512 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2514 0, 294, 0, 931, 0, 0, 0, 0, 781, 0, 2515 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2516 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2517 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2518 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2519 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2521 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2522 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2523 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2524 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2526 0, 294, 0, 931, 0, 0, 0, 0, 781, 0, 2527 296, 600, 298, 299, 300, 301, 2, 205, 4, 5, 2528 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2529 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2530 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2531 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2533 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2534 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2535 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2536 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2538 0, 294, 0, 343, 0, 0, 0, 0, 0, 0, 2539 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2540 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2541 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2542 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2543 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2545 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2546 0, 35, 0, 36, 285, 0, 38, 39, 286, 0, 2547 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2548 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 294, 0, 931, 0, 0, 0, 0, 0, 0, 2551 296, 344, 298, 299, 300, 301, 2, 205, 4, 5, 2552 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2553 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2554 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2555 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2557 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2558 0, 35, 0, 36, 285, 0, 206, 39, 286, 0, 2559 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2560 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 294, 0, 1020, 0, 0, 0, 0, 0, 0, 2563 296, 1021, 298, 299, 300, 301, 2, 205, 4, 5, 2564 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2565 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2566 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2567 282, 31, 283, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2570 0, 35, 0, 36, 285, 0, 206, 39, 286, 0, 2571 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2572 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2574 0, 294, 0, 378, 0, 0, 0, 0, 0, 0, 2575 296, 380, 298, 299, 300, 301, 204, 2, 205, 4, 2576 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2577 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2578 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2579 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2504 2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2505 2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2506 0, 0, 0, 0, 0, 284, 34, 0, 35, 0, 2507 36, 285, 0, 38, 39, 286, 0, 0, 287, 288, 2508 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2509 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 2510 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2511 931, 0, 0, 0, 0, 0, 0, 296, 344, 298, 2512 299, 300, 301, 2, 205, 4, 5, 6, 7, 8, 2513 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2514 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2515 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2582 34, 0, 35, 0, 36, 0, 0, 206, 39, 0, 2583 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2584 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2585 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2586 0, 0, 0, 0, 207, 31, 0, 0, 0, 0, 2587 0, 0, 270, 0, 0, 0, 0, 0, 0, 0, 2516 2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2589 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2590 206, 39, 40, 0, 0, 0, 0, 0, 0, 41, 2591 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2517 2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2518 0, 0, 0, 0, 0, 284, 34, 0, 35, 0, 2519 36, 285, 0, 206, 39, 286, 0, 0, 287, 288, 2520 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2521 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 2522 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2523 1020, 0, 0, 0, 0, 0, 0, 296, 1021, 298, 2524 299, 300, 301, 2, 205, 4, 5, 6, 7, 8, 2525 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2526 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2527 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2528 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2529 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2530 26, 27, 28, 0, 0, 284, 34, 0, 35, 31, 2531 36, 285, 0, 206, 39, 286, 0, 0, 287, 288, 2532 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2533 0, 0, 0, 293, 0, 0, 0, 34, 0, 0, 2534 0, 0, 0, 0, 206, 39, 0, 0, 294, 0, 2535 378, 0, 0, 0, 0, 0, 0, 296, 380, 298, 2536 299, 300, 301, 204, 2, 205, 4, 5, 6, 7, 2537 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2538 18, 19, 20, 21, 22, 23, 24, 25, 0, 270, 2539 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2540 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2593 0, 0, 0, 0, 0, 43, 0, 207, 0, 0, 2594 0, 0, 0, 0, 0, 208, 2, 205, 4, 5, 2595 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2596 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2597 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 2598 0, 31, 0, 0, 0, 0, 8, 9, 10, 11, 2599 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2600 22, 23, 24, 25, 0, 0, 26, 27, 28, 34, 2601 0, 35, 0, 36, 0, 31, 38, 39, 0, 2, 2602 205, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2603 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2604 23, 24, 25, 34, 0, 26, 27, 28, 109, 0, 2605 38, 39, -402, 687, 31, 0, 0, 0, 0, 41, 2606 42, 634, 0, 0, 0, 0, 0, 0, 0, 0, 2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2608 0, 0, 34, 0, 35, 0, 36, 44, 0, 38, 2609 39, 0, 0, 0, 0, 110, 0, 0, 0, 0, 2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2611 0, 1371, 0, 0, 0, 0, 0, 0, 0, 0, 2612 0, 0, 0, 0, 0, 0, 687, 0, 0, 0, 2613 0, 0, 0, 0, 634, 2, 205, 4, 5, 6, 2614 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2541 2615 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2542 0, 26, 27, 28, 492, 493, 494, 34, 0, 35, 2543 31, 36, 37, 0, 206, 39, 40, 0, 0, 0, 2544 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, 2545 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2546 0, 0, 0, 0, 0, 38, 39, 0, 0, 43, 2547 0, 207, 0, 0, 0, 0, 0, 0, 0, 208, 2548 1, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2616 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2617 31, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2618 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2619 23, 24, 25, -294, 0, 26, 27, 28, 34, 0, 2620 35, 0, 36, 0, 31, 38, 39, 0, 0, 0, 2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2622 0, 0, 0, 0, 0, 0, 0, 1373, 0, 0, 2623 0, 0, 34, 0, 0, 0, 0, 37, 0, 336, 2624 337, 40, 687, -294, 0, 0, 0, 0, 41, 42, 2625 634, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2549 2626 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2550 21, 22, 23, 24, 25, -294, 0, 26, 27, 28,2551 29, 0, 0, 30,0, 0, 31, 0, 0, 0,2627 21, 22, 23, 24, 25, 0, 338, 26, 27, 28, 2628 0, 0, 0, 0, 110, 0, 31, 0, 0, 0, 2552 2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2553 2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2554 2631 0, 0, 0, 0, 34, 0, 35, 0, 36, 0, 2555 0, 38, 39, 0, 0, -294, 1, 2, 205, 4, 2556 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2557 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2558 25, 0, 0, 26, 27, 28, 29, 0, 44, 30, 2559 0, 0, 31, 0, 0, 0, 110, 0, 0, 0, 2560 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 34, 0, 35, 0, 36, 0, 0, 38, 39, 204, 2563 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2564 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2565 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2566 0, 0, 0, 0, 44, 31, 0, 0, 0, 0, 2567 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2569 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2570 206, 39, 0, 2, 205, 4, 5, 6, 7, 8, 2571 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2572 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2573 27, 28, 0, 0, 0, 0, 0, 207, 31, 0, 2574 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 2575 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2576 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2577 36, 37, 0, 206, 39, 40, 0, 0, 0, 0, 2578 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 2579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2580 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 2581 207, 0, 0, 0, 0, 0, 0, 0, 208, 2, 2582 205, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2583 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2584 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2585 0, 0, 0, 0, 31, 0, 0, 0, 0, 8, 2586 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2587 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2588 27, 28, 34, 0, 35, 0, 36, 0, 31, 38, 2589 39, 0, 2, 205, 4, 5, 6, 7, 8, 9, 2590 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2591 20, 21, 22, 23, 24, 25, 34, 0, 26, 27, 2592 28, 0, 0, 38, 39, -400, 687, 31, 0, 0, 2593 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2595 0, 0, 0, 0, 0, 34, 0, 35, 643, 36, 2596 338, 0, 38, 39, 0, 0, 0, 0, 110, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2598 0, 0, 0, 0, 1369, 0, 0, 0, 0, 0, 2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 2600 0, 0, 0, 0, 0, 0, 0, 634, 2, 205, 2601 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2602 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2603 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2604 0, 0, 0, 31, 0, 0, 0, 0, 8, 9, 2605 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2606 20, 21, 22, 23, 24, 25, -294, 0, 26, 27, 2607 28, 34, 0, 35, 0, 36, 0, 31, 38, 39, 2608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2610 1371, 0, 0, 0, 0, 34, 0, 0, 0, 0, 2611 37, 0, 336, 337, 40, 687, -294, 0, 0, 0, 2612 0, 41, 42, 634, 2, 205, 4, 5, 6, 7, 2632 0, 206, 39, 0, 2, 205, 4, 5, 6, 7, 2613 2633 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2614 18, 19, 20, 21, 22, 23, 24, 25, 0, 338,2615 26, 27, 28, 0, 0, 0, 0, 110, 0, 31,2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2634 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2635 26, 27, 28, 0, 0, 0, 0, 0, 269, 31, 2636 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 2617 2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2618 2638 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2619 0, 36, 0, 0, 206, 39, 0, 2, 205, 4,2639 0, 36, 0, 0, 38, 39, 0, 2, 205, 4, 2620 2640 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2621 2641 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2622 2642 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2623 0, 269, 31, 0, 0, 0, 0, 0, 0, 629,2643 0, 687, 31, 0, 0, 0, 0, 0, 0, 634, 2624 2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625 2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 2628 2648 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2629 2649 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2630 0, 0, 0, 0, 687, 31, 0, 0, 0, 0,2650 0, 0, 0, 0, 599, 31, 0, 0, 0, 0, 2631 2651 0, 0, 634, 0, 0, 0, 0, 0, 0, 0, 2632 2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2633 2653 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2634 38, 39, 0, 2, 205, 4, 5, 6, 7, 8, 2635 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2636 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2637 27, 28, 0, 0, 0, 0, 0, 599, 31, 0, 2638 0, 0, 0, 0, 0, 634, 0, 0, 0, 0, 2654 206, 39, 8, 9, 10, 11, 12, 13, 14, 15, 2655 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2656 0, 0, 26, 27, 28, 0, 0, 0, 0, 281, 2657 282, 31, 283, 0, 0, 0, 0, 207, 0, 0, 2658 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, 2659 0, 0, 0, 0, 0, 0, 0, 0, 284, 34, 2660 0, 0, 0, 0, 285, 0, 38, 39, 286, 0, 2661 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2662 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2639 2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 0, 0, 0, 0, 0, 34, 0, 35, 0, 2641 36, 0, 0, 206, 39, 8, 9, 10, 11, 12, 2664 0, 294, 0, 525, 0, 0, 170, 0, 0, 0, 2665 296, 297, 298, 299, 300, 301, 8, 9, 10, 11, 2666 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2667 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2668 0, 0, 0, 281, 282, 31, 283, 8, 9, 10, 2669 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2670 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2671 0, 0, 284, 34, 0, 0, 31, 0, 285, 0, 2672 38, 39, 286, 0, 0, 287, 288, 289, 290, 41, 2673 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2674 293, 0, 0, 0, 34, 0, 0, 0, 0, 37, 2675 0, 336, 337, 40, 0, 294, 0, 599, -3, 0, 2676 41, 42, 0, 0, 296, 600, 298, 299, 300, 301, 2677 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2678 18, 19, 20, 21, 22, 23, 24, 25, 338, 0, 2679 26, 27, 28, 0, 0, 0, 110, 281, 282, 31, 2680 283, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2681 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2682 0, 26, 27, 28, 0, 0, 284, 34, 0, 0, 2683 31, 453, 649, 0, 38, 39, 286, 0, 0, 287, 2684 288, 289, 290, 41, 42, 0, 291, 292, 0, 0, 2685 0, 0, 0, 0, 293, 0, 0, 0, 34, 0, 2686 0, 0, 0, 0, 0, 38, 39, 0, 0, 294, 2687 -35, 766, 0, 0, 0, 0, 0, 0, 296, 297, 2688 298, 299, 300, 301, 8, 9, 10, 11, 12, 13, 2689 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2690 24, 25, 454, 0, 26, 27, 28, 0, 0, 0, 2691 110, 281, 282, 31, 283, 0, 0, 0, 0, 0, 2692 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2693 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2694 284, 34, 26, 27, 28, 0, 285, 0, 38, 39, 2695 286, 31, 0, 287, 288, 289, 290, 41, 42, 0, 2696 291, 292, 0, 0, 0, 0, 0, 0, 293, 0, 2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2698 0, 0, 0, 294, 0, 295, 38, 39, 0, 0, 2699 0, 0, 296, 297, 298, 299, 300, 301, 8, 9, 2700 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2701 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2702 28, 643, 0, 338, 0, 281, 282, 31, 283, 0, 2703 0, 110, 0, 0, 0, 0, 8, 9, 10, 11, 2704 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2705 22, 23, 24, 25, 284, 34, 26, 27, 28, 0, 2706 285, 0, 38, 39, 286, 31, 0, 287, 288, 289, 2707 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2708 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2709 0, 0, 0, 34, 0, 0, 0, 294, 0, 156, 2710 38, 39, 0, 0, 0, 0, 296, 297, 298, 299, 2711 300, 301, 8, 9, 10, 11, 12, 13, 14, 15, 2712 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2713 0, 0, 26, 27, 28, 643, 0, 338, 0, 281, 2714 282, 31, 283, 0, 0, 634, 0, 0, 0, 0, 2715 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2716 18, 19, 20, 21, 22, 23, 24, 25, 284, 34, 2717 26, 27, 28, 0, 285, 0, 38, 39, 286, 31, 2718 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2719 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2720 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2721 0, 294, 0, 599, 38, 39, 0, 0, 0, 0, 2722 296, 600, 298, 299, 300, 301, 8, 9, 10, 11, 2723 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2724 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2725 0, 256, 0, 281, 282, 31, 283, 0, 0, 110, 2726 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2727 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2728 24, 25, 284, 34, 26, 27, 28, 0, 285, 0, 2729 38, 39, 286, 31, 0, 287, 288, 289, 290, 41, 2730 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2731 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732 0, 34, 0, 0, 0, 294, 0, 378, 38, 39, 2733 0, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2734 474, 2, 205, 4, 5, 6, 7, 8, 9, 10, 2735 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2736 21, 22, 23, 24, 25, 156, 0, 26, 27, 28, 2737 0, 0, 0, 110, 0, 0, 31, 0, 0, 0, 2738 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2739 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2740 26, 27, 28, 0, 34, 0, 35, 0, 36, 31, 2741 0, 38, 39, 0, 0, 0, 0, 0, 8, 9, 2742 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2743 20, 21, 22, 23, 24, 25, 0, 34, 26, 27, 2744 28, 0, 37, 0, 38, 39, 40, 31, 0, 0, 2745 0, -3, 0, 41, 42, 0, 8, 9, 10, 11, 2746 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2747 22, 23, 24, 25, 0, 34, 26, 27, 28, 43, 2748 37, 156, 38, 39, 40, 31, 0, 0, 0, 45, 2749 0, 41, 42, 0, 8, 9, 10, 11, 12, 13, 2750 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2751 24, 25, 0, 34, 26, 27, 28, 43, 37, 44, 2752 206, 39, 40, 31, 0, 0, 0, 45, 0, 41, 2753 42, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2754 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2755 -294, 34, 26, 27, 28, 43, 37, 269, 336, 337, 2756 40, 31, 0, 0, 0, 208, 0, 41, 42, 0, 2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2758 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2759 0, 0, 0, 643, 0, 338, 38, 39, 0, 0, 2760 -294, 0, 0, 634, 0, 8, 9, 10, 11, 12, 2642 2761 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2643 2762 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2644 0, 0, 281, 282, 31, 283, 0, 0, 0, 0, 2645 207, 0, 0, 0, 0, 0, 0, 0, 270, 0, 2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2647 0, 284, 34, 0, 0, 0, 0, 285, 0, 38, 2648 39, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2649 0, 291, 292, 0, 0, 0, 0, 0, 0, 293, 2650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2651 0, 0, 0, 0, 294, 0, 525, 0, 0, 170, 2652 0, 0, 0, 296, 297, 298, 299, 300, 301, 8, 2653 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2654 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2655 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2656 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2657 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2658 26, 27, 28, 0, 0, 284, 34, 0, 0, 31, 2659 0, 285, 0, 38, 39, 286, 0, 0, 287, 288, 2660 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2661 0, 0, 0, 293, 0, 0, 0, 34, 0, 0, 2662 0, 0, 37, 0, 336, 337, 40, 0, 294, 0, 2663 599, -3, 0, 41, 42, 0, 0, 296, 600, 298, 2664 299, 300, 301, 8, 9, 10, 11, 12, 13, 14, 2763 0, 643, 0, 338, 31, 453, 0, 0, 0, 0, 2764 0, 634, 0, 8, 9, 10, 11, 12, 13, 14, 2665 2765 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2666 25, 338, 0, 26, 27, 28, 0, 0, 0, 110, 2667 281, 282, 31, 283, 8, 9, 10, 11, 12, 13, 2668 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2669 24, 25, 0, 0, 26, 27, 28, 0, 0, 284, 2670 34, 0, 0, 31, 453, 649, 0, 38, 39, 286, 2671 0, 0, 287, 288, 289, 290, 41, 42, 0, 291, 2672 292, 0, 0, 0, 0, 0, 0, 293, 0, 0, 2673 0, 34, 0, 0, 0, 0, 0, 0, 38, 39, 2674 0, 0, 294, -35, 766, 0, 0, 0, 0, 0, 2675 0, 296, 297, 298, 299, 300, 301, 8, 9, 10, 2676 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2677 21, 22, 23, 24, 25, 454, 0, 26, 27, 28, 2678 0, 0, 0, 110, 281, 282, 31, 283, 0, 0, 2679 0, 0, 0, 0, 0, 8, 9, 10, 11, 12, 2680 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2681 23, 24, 25, 284, 34, 26, 27, 28, 0, 285, 2682 0, 38, 39, 286, 31, 0, 287, 288, 289, 290, 2683 41, 42, 0, 291, 292, 0, 0, 0, 0, 0, 2684 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2685 0, 0, 34, 0, 0, 0, 294, 0, 295, 38, 2686 39, 0, 0, 0, 0, 296, 297, 298, 299, 300, 2687 301, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2688 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2689 0, 26, 27, 28, 643, 0, 338, 0, 281, 282, 2690 31, 283, 0, 0, 634, 0, 0, 0, 0, 8, 2691 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2692 19, 20, 21, 22, 23, 24, 25, 284, 34, 26, 2693 27, 28, 0, 285, 0, 38, 39, 286, 31, 0, 2694 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2695 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 2696 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 2697 294, 0, 156, 38, 39, 0, 0, 0, 0, 296, 2698 297, 298, 299, 300, 301, 8, 9, 10, 11, 12, 2699 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2700 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2701 256, 0, 281, 282, 31, 283, 0, 0, 110, 0, 2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2704 0, 284, 34, 0, 0, 0, 0, 285, 0, 38, 2705 39, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2706 0, 291, 292, 0, 0, 0, 0, 0, 0, 293, 2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2708 0, 0, 0, 0, 294, 0, 599, 0, 0, 0, 2709 0, 0, 0, 296, 600, 298, 299, 300, 301, 8, 2710 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2711 19, 20, 21, 22, 23, 24, 25, 0, 0, 26, 2712 27, 28, 0, 0, 0, 0, 281, 282, 31, 283, 2713 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2714 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2715 26, 27, 28, 0, 0, 284, 34, 0, 0, 31, 2716 0, 285, 0, 38, 39, 286, 0, 0, 287, 288, 2717 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2718 0, 0, 0, 293, 0, 0, 0, 34, 0, 0, 2719 0, 0, 37, 0, 38, 39, 40, 0, 294, 0, 2720 378, 0, 0, 41, 42, 0, 0, 296, 380, 298, 2721 299, 300, 301, 0, 0, 0, 0, 0, 0, 0, 2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2723 0, 44, 0, 0, 0, 0, 0, 0, 0, 45, 2724 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2725 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2726 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2727 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2728 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2729 26, 27, 28, 0, 0, 0, 0, 34, 0, 31, 2730 0, 0, 37, 0, 206, 39, 40, 0, 0, 0, 2731 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, 2732 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2733 0, 0, 37, 0, 336, 337, 40, 0, 0, 43, 2734 0, 269, 0, 41, 42, 0, 0, 0, 0, 208, 2735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2736 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 2737 0, 338, 0, 0, 0, 0, 0, 0, 0, 634, 2738 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2739 18, 19, 20, 21, 22, 23, 24, 25, -294, 0, 2740 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2741 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2742 18, 19, 20, 21, 22, 23, 24, 25, -294, 0, 2743 26, 27, 28, 0, 0, 0, 0, 34, 0, 31, 2744 0, 0, 0, 0, 38, 39, 0, 0, -294, 0, 2745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2746 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 2747 0, 0, 0, 0, 38, 39, 0, 0, -294, 643, 2748 0, 338, 0, 0, 0, 0, 0, 0, 0, 110, 2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 2751 0, 338, 0, 0, 0, 0, 0, 0, 0, 634, 2752 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2753 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2754 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2755 453, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2756 17, 18, 19, 20, 21, 22, 23, 24, 25, -294, 2757 0, 26, 27, 28, 0, 0, 0, 34, 0, 0, 2758 31, 0, 0, 0, 38, 39, 0, 0, 0, 0, 2759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2760 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2761 0, 0, 0, 0, 0, 38, 39, 0, 0, -294, 2762 0, 454, 0, 0, 0, 947, 0, 0, 0, 110, 2763 0, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2764 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2765 25, 0, 338, 26, 27, 28, 0, 0, 0, 0, 2766 110, 0, 31, 453, 8, 9, 10, 11, 12, 13, 2767 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2768 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2769 34, 0, 0, 31, 0, 0, 0, 38, 39, 0, 2770 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2771 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2772 0, 34, 26, 27, 28, 0, 0, 0, 38, 39, 2773 0, 31, 0, 0, 454, 0, 0, 0, 1235, 0, 2774 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2776 0, 0, 0, 0, 0, 156, 206, 39, 0, 0, 2777 0, 0, 0, 110, 0, 8, 9, 10, 11, 12, 2778 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2779 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2780 0, 0, 0, 269, 31, 0, 0, 0, 0, 0, 2781 0, 270, 0, 8, 9, 10, 11, 12, 13, 14, 2782 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2783 25, 0, 34, 26, 27, 28, 0, 0, 0, 38, 2766 25, -294, 34, 26, 27, 28, 0, 0, 0, 38, 2784 2767 39, 0, 31, 8, 9, 10, 11, 12, 13, 14, 2785 2768 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2786 2769 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2787 34, 0, 31, 0, 0, 0, 256, 38, 39, 0,2788 0, 0, 0, 0, 634, 0, 0, 0, 0, 0,2770 34, 0, 31, 453, 0, 0, 454, 38, 39, 0, 2771 711, -294, 0, 0, 110, 0, 0, 0, 0, 0, 2789 2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2790 2773 34, 0, 0, 0, 0, 0, 0, 38, 39, 0, 2791 2774 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, 2792 0, 0, 634, 0, 0, 8, 9, 10, 11, 12,2775 0, 0, 110, 0, 0, 8, 9, 10, 11, 12, 2793 2776 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2794 23, 24, 25, 0, 454, 26, 27, 28, 0, 0, 2795 0, 0, 110, 0, 31, 8, 9, 10, 11, 12, 2777 23, 24, 25, 0, 454, 26, 27, 28, 1109, 0, 2778 0, 0, 110, 0, 31, 453, 8, 9, 10, 11, 2779 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2780 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2781 0, 0, 34, 0, 0, 31, 0, 0, 0, 38, 2782 39, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2783 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2784 24, 25, 0, 34, 26, 27, 28, 0, 0, 0, 2785 206, 39, 0, 31, 0, 0, 454, 0, 0, 0, 2786 1236, 0, 0, 0, 110, 0, 0, 0, 0, 0, 2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2788 0, 34, 0, 0, 0, 0, 0, 269, 38, 39, 2789 0, 0, 0, 0, 0, 270, 0, 8, 9, 10, 2790 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2791 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2792 0, 0, 0, 0, 0, 256, 31, 0, 0, 0, 2793 0, 0, 0, 634, 0, 8, 9, 10, 11, 12, 2794 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2795 23, 24, 25, 0, 34, 26, 27, 28, 0, 0, 2796 0, 38, 39, 0, 31, 8, 9, 10, 11, 12, 2796 2797 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2797 2798 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2798 0, 0, 34, 0, 31, 0, 0, 0, 0, 206, 2799 39, 0, 0, 8, 9, 10, 11, 12, 13, 14, 2799 0, 0, 34, 0, 31, 0, 0, 0, 338, 38, 2800 39, 0, 0, 0, 0, 0, 634, 0, 0, 0, 2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802 0, 0, 34, 0, 0, 0, 0, 0, 0, 206, 2803 39, 0, 0, 0, 0, 0, 454, 0, 0, 0, 2804 0, 0, 0, 0, 110, 0, 0, 8, 9, 10, 2805 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2806 21, 22, 23, 24, 25, 0, 269, 26, 27, 28, 2807 0, 0, 0, 0, 629, 0, 31, 8, 9, 10, 2808 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2809 21, 22, 23, 24, 25, 0, 0, 26, 27, 28, 2810 0, 0, 0, 0, 34, 0, 31, 0, 0, 0, 2811 0, 38, 39, 0, 0, 8, 9, 10, 11, 12, 2812 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2813 23, 24, 25, 0, 34, 26, 27, 28, 0, 0, 2814 0, 38, 39, 0, 31, 0, 0, 0, 599, 0, 2815 0, 0, 0, 0, 0, 0, 634, 0, 0, 0, 2816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2817 0, 0, 34, 0, 0, 0, 0, 0, 338, 38, 2818 39, 0, 0, 0, 0, 0, 110, 2, 205, 4, 2819 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2800 2820 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2801 25, 0, 34, 26, 27, 28, 0, 0, 0, 38, 2802 39, 0, 31, 0, 0, 0, 269, 0, 0, 0, 2803 0, 0, 0, 0, 629, 0, 0, 0, 0, 0, 2821 25, 0, 0, 26, 27, 28, 44, 0, 0, 0, 2822 0, 0, 31, 0, 110, 0, 0, 0, 0, 0, 2804 2823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2805 34, 0, 0, 0, 0, 0, 599, 38, 39, 0, 2806 0, 0, 0, 0, 634, 0, 8, 9, 10, 11, 2807 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2808 22, 23, 24, 25, 0, 0, 26, 27, 28, 0, 2809 0, 0, 0, 0, 338, 31, 0, 0, 0, 0, 2810 0, 0, 110, 0, 8, 9, 10, 11, 12, 13, 2824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2825 34, 0, 35, 0, 36, 0, 0, 38, 39, 281, 2826 282, 0, 283, 1063, 0, 1064, 0, 0, 1065, 1066, 2827 1067, 1068, 1069, 1070, 1071, 1072, 0, 0, 1551, 1073, 2828 0, 0, 0, 1074, 1075, 0, 33, 0, 284, 0, 2829 0, 0, 0, -415, 649, 0, 0, 0, 286, 0, 2830 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2831 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2833 0, 294, 0, 378, 0, 0, 170, 0, 0, 0, 2834 296, 380, 298, 299, 300, 301, 0, 0, 0, 0, 2835 1077, 0, 281, 282, -129, 283, 1063, 0, 1064, 0, 2836 0, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 0, 2837 0, 0, 1073, 0, 0, 0, 1074, 1075, 0, 33, 2838 0, 284, 0, 0, 0, 0, 0, 649, 0, 0, 2839 0, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2840 0, 291, 292, 0, 0, 0, 0, 0, 0, 293, 2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2842 0, 0, 0, 0, 294, 0, 378, 0, 0, 170, 2843 0, 0, 0, 296, 380, 298, 299, 300, 301, 0, 2844 0, 0, 0, 1077, 0, 0, 0, -129, 2, 205, 2845 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2811 2846 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2812 24, 25, 0, 34, 26, 27, 28, 0, 0, 0, 2813 38, 39, 0, 31, 0, 0, 2, 205, 4, 5, 2814 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2815 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2816 0, 34, 26, 27, 28, 0, 0, 44, 206, 39, 2817 0, 31, 0, 281, 282, 110, 283, 1063, 0, 1064, 2847 24, 25, 0, 0, 26, 27, 28, 0, 0, 0, 2848 0, 0, 0, 31, 0, 281, 282, 0, 283, 1063, 2849 0, 1064, 1421, 1422, 1065, 1066, 1067, 1068, 1069, 1070, 2850 1071, 1072, 0, 0, 1551, 1073, 0, 0, 0, 1074, 2851 1075, 34, 33, 35, 284, 36, 0, 0, 38, 39, 2852 649, 0, 0, 0, 286, 0, 0, 287, 288, 289, 2853 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2854 1330, 0, 293, 0, 0, 0, 0, 0, 0, 0, 2855 0, 0, 0, 0, 0, 0, 0, 294, 0, 378, 2856 0, 0, 170, 0, 0, 0, 296, 380, 298, 299, 2857 300, 301, 0, 0, 281, 282, 1077, 283, 1063, 0, 2858 1064, 1421, 1422, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 2859 1072, 0, 0, 0, 1073, 0, 0, 0, 1074, 1075, 2860 0, 33, 0, 284, 0, 0, 0, 0, 0, 649, 2861 0, 0, 0, 286, 0, 0, 287, 288, 289, 290, 2862 41, 42, 0, 291, 292, 0, 0, 0, 0, 0, 2863 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 2864 0, 0, 0, 0, 0, 0, 294, 0, 378, 0, 2865 0, 170, 0, 0, 0, 296, 380, 298, 299, 300, 2866 301, 0, 0, 281, 282, 1077, 283, 1063, 0, 1064, 2818 2867 0, 0, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 2819 0, 0, 1549, 1073, 0, 0, 0, 1074, 1075, 34, 2820 33, 35, 284, 36, 0, 0, 38, 39, 649, 0, 2821 0, 0, 286, 629, 0, 287, 288, 289, 290, 41, 2868 0, 0, 0, 1073, 0, 0, 0, 1074, 1075, 0, 2869 33, 0, 284, 0, 0, 0, 0, 0, 649, 0, 2870 0, 0, 286, 0, 0, 287, 288, 289, 290, 41, 2871 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2872 293, 281, 282, 0, 283, 0, 0, 0, 0, 0, 2873 0, 0, 0, 0, 0, 294, 0, 378, 0, 0, 2874 170, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2875 284, 0, 0, 0, 1077, 0, 649, 0, 0, 0, 2876 286, 0, 0, 287, 288, 289, 290, 41, 42, 0, 2877 291, 292, 0, 0, 0, 0, 0, 0, 293, 281, 2878 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 2879 0, 0, 0, 294, 0, 785, 0, 0, 281, 282, 2880 0, 283, 296, 380, 298, 299, 300, 301, 284, 0, 2881 0, 0, 0, 0, 285, 0, 0, 0, 286, 0, 2882 0, 287, 288, 289, 290, 41, 42, 284, 291, 292, 2883 0, 0, 0, 285, 0, 0, 293, 286, 0, 0, 2884 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2885 0, 294, 0, 378, 0, 293, 281, 282, 0, 283, 2886 296, 827, 298, 299, 300, 301, 0, 0, 0, 0, 2887 513, 0, 0, 0, 0, 281, 282, 0, 283, 296, 2888 380, 298, 299, 300, 301, 284, 0, 0, 0, 0, 2889 0, 285, 0, 0, 0, 286, 0, 0, 287, 288, 2890 289, 290, 41, 42, 284, 291, 292, 0, 0, 0, 2891 285, 0, 0, 293, 286, 0, 0, 287, 288, 289, 2892 290, 41, 42, 0, 291, 292, 0, 0, 294, 0, 2893 0, 0, 293, 281, 282, 0, 283, 296, 380, 298, 2894 299, 300, 301, 0, 0, 0, 0, 518, 0, 0, 2895 0, 0, 0, 0, 0, 0, 296, 380, 298, 299, 2896 300, 301, 284, 0, 0, 0, 0, 0, 285, 0, 2897 0, 0, 286, 0, 0, 287, 288, 289, 290, 41, 2822 2898 42, 0, 291, 292, 0, 0, 0, 0, 0, 0, 2823 2899 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2824 0, 0, -413, 0, 0, 294, 0, 378, 0, 0, 2825 170, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2826 0, 0, 0, 0, 1077, 0, 281, 282, -129, 283, 2827 1063, 0, 1064, 0, 0, 1065, 1066, 1067, 1068, 1069, 2828 1070, 1071, 1072, 0, 0, 0, 1073, 0, 0, 0, 2829 1074, 1075, 0, 33, 0, 284, 0, 0, 0, 0, 2830 0, 649, 0, 0, 0, 286, 0, 0, 287, 288, 2831 289, 290, 41, 42, 0, 291, 292, 0, 0, 0, 2832 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 2833 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 2834 378, 0, 0, 170, 0, 0, 0, 296, 380, 298, 2835 299, 300, 301, 0, 0, 0, 0, 1077, 0, 0, 2836 0, -129, 2, 205, 4, 5, 6, 7, 8, 9, 2900 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 2901 0, 0, 0, 0, 296, 380, 298, 299, 300, 301, 2902 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2903 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2904 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 2905 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2908 0, 0, 0, 34, 0, 35, 0, 36, 37, 0, 2909 173, 174, 40, 0, 0, 0, 0, 0, 0, 41, 2910 42, 204, 2, 205, 4, 5, 6, 7, 8, 9, 2837 2911 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2838 2912 20, 21, 22, 23, 24, 25, 0, 0, 26, 27, 2839 28, 0, 0, 0, 0, 0, 0, 31, 0, 281, 2840 282, 0, 283, 1063, 0, 1064, 1419, 1420, 1065, 1066, 2841 1067, 1068, 1069, 1070, 1071, 1072, 0, 0, 1549, 1073, 2842 0, 0, 0, 1074, 1075, 34, 33, 35, 284, 36, 2843 0, 0, 38, 39, 649, 0, 0, 0, 286, 0, 2844 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2845 0, 0, 0, 0, 1328, 0, 293, 0, 0, 0, 2846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2847 0, 294, 0, 378, 0, 0, 170, 0, 0, 0, 2848 296, 380, 298, 299, 300, 301, 0, 0, 281, 282, 2849 1077, 283, 1063, 0, 1064, 1419, 1420, 1065, 1066, 1067, 2850 1068, 1069, 1070, 1071, 1072, 0, 0, 0, 1073, 0, 2851 0, 0, 1074, 1075, 0, 33, 0, 284, 0, 0, 2852 0, 0, 0, 649, 0, 0, 0, 286, 0, 0, 2853 287, 288, 289, 290, 41, 42, 0, 291, 292, 0, 2854 0, 0, 0, 0, 0, 293, 0, 0, 0, 0, 2855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2856 294, 0, 378, 0, 0, 170, 0, 0, 0, 296, 2857 380, 298, 299, 300, 301, 0, 0, 281, 282, 1077, 2858 283, 1063, 0, 1064, 0, 0, 1065, 1066, 1067, 1068, 2859 1069, 1070, 1071, 1072, 0, 0, 0, 1073, 0, 0, 2860 0, 1074, 1075, 0, 33, 0, 284, 0, 0, 0, 2861 0, 0, 649, 0, 0, 0, 286, 0, 0, 287, 2862 288, 289, 290, 41, 42, 0, 291, 292, 0, 0, 2863 0, 0, 0, 0, 293, 281, 282, 0, 283, 0, 2864 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 2865 0, 378, 0, 0, 170, 0, 0, 0, 296, 380, 2866 298, 299, 300, 301, 284, 0, 0, 0, 1077, 0, 2867 285, 0, 0, 0, 286, 0, 0, 287, 288, 289, 2868 290, 41, 42, 0, 291, 292, 0, 0, 0, 0, 2869 0, 0, 293, 281, 282, 0, 283, 0, 0, 0, 2870 0, 0, 0, 0, 0, 0, 0, 294, 0, 378, 2871 0, 0, 281, 282, 0, 283, 296, 380, 298, 299, 2872 300, 301, 284, 0, 0, 0, 0, 0, 285, 0, 2873 0, 0, 286, 0, 0, 287, 288, 289, 290, 41, 2874 42, 284, 291, 292, 0, 0, 0, 649, 0, 0, 2875 293, 286, 0, 0, 287, 288, 289, 290, 41, 42, 2876 0, 291, 292, 0, 0, 294, 0, 378, 0, 293, 2877 281, 282, 0, 283, 296, 734, 298, 299, 300, 301, 2878 0, 0, 0, 0, 294, 0, 785, 0, 0, 281, 2879 282, 0, 283, 296, 380, 298, 299, 300, 301, 284, 2880 0, 0, 0, 0, 0, 285, 0, 0, 0, 286, 2881 0, 0, 287, 288, 289, 290, 41, 42, 284, 291, 2882 292, 0, 0, 0, 285, 0, 0, 293, 286, 0, 2883 0, 287, 288, 289, 290, 41, 42, 0, 291, 292, 2884 0, 0, 294, 0, 378, 0, 293, 281, 282, 0, 2885 283, 296, 827, 298, 299, 300, 301, 0, 0, 0, 2886 0, 294, 0, 0, 0, 0, 281, 282, 0, 283, 2887 296, 380, 298, 299, 300, 301, 284, 0, 0, 0, 2888 0, 0, 285, 0, 0, 0, 286, 0, 0, 287, 2889 288, 289, 290, 41, 42, 284, 291, 292, 0, 0, 2890 0, 285, 0, 0, 293, 286, 0, 0, 287, 288, 2891 289, 290, 41, 42, 0, 291, 292, 0, 0, 518, 2892 0, 0, 0, 293, 0, 0, 0, 0, 296, 380, 2893 298, 299, 300, 301, 0, 0, 0, 0, 521, 0, 2894 0, 0, 0, 0, 0, 0, 0, 296, 380, 298, 2895 299, 300, 301, 204, 2, 205, 4, 5, 6, 7, 2896 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2897 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 2898 26, 27, 28, 0, 0, 0, 0, 0, 0, 31, 2913 28, 0, 0, 0, 0, 0, 0, 31, 0, 0, 2899 2914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2900 2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2901 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 2902 0, 36, 0, 0, 206, 39, 474, 2, 205, 4, 2916 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2917 0, 0, 206, 39, 474, 2, 205, 4, 5, 6, 2918 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2919 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2920 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 2921 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2923 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2924 35, 0, 36, 0, 0, 38, 39, 2, 205, 4, 2903 2925 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2904 2926 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2905 2927 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2906 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2928 0, 0, 31, 0, 8, 9, 10, 11, 12, 13, 2929 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2930 24, 25, 0, 0, 26, 27, 28, 492, 493, 494, 2931 34, 0, 35, 31, 36, 0, 0, 206, 39, 0, 2907 2932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2908 2933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2909 34, 0, 35, 0, 36, 0, 0, 38, 39, 2, 2910 205, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2911 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2912 23, 24, 25, 0, 0, 26, 27, 28, 0, 0, 2913 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 2914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2916 0, 0, 34, 0, 35, 0, 36, 0, 0, 206, 2917 39 2934 0, 34, 0, 0, 0, 0, 0, 0, 38, 39 2918 2935 }; 2919 2936 2920 2937 #define yypact_value_is_default(yystate) \ 2921 ((yystate) == (-13 56))2938 ((yystate) == (-1332)) 2922 2939 2923 2940 #define yytable_value_is_error(yytable_value) \ … … 2926 2943 static const yytype_int16 yycheck[] = 2927 2944 { 2928 0, 1, 0, 184, 43, 698, 115, 184, 43, 184, 2929 43, 238, 55, 698, 1, 167, 168, 698, 104, 203, 2930 543, 294, 184, 455, 185, 218, 280, 278, 456, 29, 2931 30, 656, 32, 184, 32, 348, 611, 184, 520, 185, 2932 759, 611, 1, 43, 184, 45, 1006, 45, 186, 629, 2933 499, 579, 609, 0, 503, 55, 902, 999, 462, 1042, 2934 1043, 61, 105, 61, 64, 108, 64, 67, 154, 67, 2935 902, 348, 780, 43, 43, 609, 609, 32, 39, 51, 2936 67, 81, 82, 264, 777, 32, 1419, 264, 609, 264, 2937 1338, 200, 777, 609, 28, 1055, 777, 529, 723, 63, 2938 95, 1062, 264, 609, 265, 105, 699, 39, 108, 110, 2939 417, 82, 43, 264, 699, 115, 117, 264, 109, 265, 2940 1475, 497, 260, 261, 264, 609, 64, 363, 721, 82, 2941 437, 367, 39, 0, 612, 130, 721, 109, 445, 110, 2942 618, 1074, 1075, 344, 78, 184, 146, 82, 146, 184, 2943 111, 184, 425, 426, 154, 1510, 0, 1512, 111, 159, 2944 1493, 159, 1043, 425, 426, 32, 107, 227, 132, 0, 2945 1, 109, 109, 109, 217, 111, 255, 109, 39, 111, 2946 0, 1, 283, 119, 184, 185, 246, 185, 32, 0, 2947 131, 39, 0, 1441, 72, 296, 297, 64, 44, 45, 2948 200, 32, 109, 39, 111, 83, 84, 308, 208, 1142, 2949 208, 680, 32, 39, 184, 184, 409, 217, 495, 812, 2950 220, 32, 220, 744, 32, 264, 110, 227, 271, 264, 2951 1062, 264, 116, 64, 109, 278, 67, 613, 744, 501, 2952 513, 617, 242, 344, 405, 518, 246, 67, 521, 11, 2953 250, 251, 250, 184, 132, 341, 131, 511, 520, 405, 2954 744, 109, 638, 111, 264, 265, 642, 265, 0, 115, 2955 109, 271, 111, 109, 109, 111, 851, 45, 278, 380, 2956 119, 851, 839, 109, 370, 111, 395, 82, 489, 110, 2957 718, 819, 251, 293, 455, 250, 117, 890, 611, 85, 2958 32, 1009, 575, 250, 347, 839, 839, 1290, 1291, 455, 2959 45, 43, 82, 45, 423, 1257, 44, 45, 839, 112, 2960 429, 364, 117, 839, 586, 368, 487, 113, 328, 61, 2961 328, 114, 64, 839, 293, 67, 116, 82, 417, 109, 2962 96, 487, 110, 1304, 3, 112, 815, 347, 348, 116, 2963 44, 45, 1071, 220, 3, 839, 825, 489, 437, 116, 2964 1241, 597, 72, 841, 364, 110, 445, 123, 368, 82, 2965 72, 840, 117, 83, 84, 110, 72, 145, 0, 379, 2966 1226, 83, 84, 250, 691, 978, 114, 83, 84, 220, 2967 960, 644, 645, 978, 1226, 395, 109, 96, 129, 600, 2968 131, 111, 959, 0, 640, 405, 250, 405, 1526, 662, 2969 1291, 255, 109, 513, 146, 515, 1009, 119, 518, 250, 2970 114, 521, 676, 423, 123, 959, 959, 159, 629, 429, 2971 250, 431, 1415, 634, 1526, 1553, 132, 1496, 72, 250, 2972 208, 1021, 250, 1502, 255, 131, 532, 1407, 1408, 83, 2973 84, 116, 184, 185, 1546, 455, 557, 558, 559, 112, 2974 460, 1553, 109, 116, 1523, 465, 1059, 132, 116, 1528, 2975 238, 110, 1304, 208, 474, 471, 208, 111, 117, 479, 2976 109, 110, 349, 736, 132, 115, 116, 487, 220, 487, 2977 109, 491, 131, 491, 80, 495, 697, 873, 498, 600, 2978 500, 131, 270, 1464, 239, 657, 938, 758, 762, 109, 2979 1471, 643, 644, 645, 946, 474, 1141, 698, 250, 968, 2980 520, 698, 1004, 698, 928, 111, 109, 113, 666, 297, 2981 662, 117, 264, 109, 1415, 270, 698, 537, 851, 700, 2982 540, 1134, 542, 543, 491, 109, 1116, 698, 116, 1134, 2983 116, 698, 1030, 1031, 700, 664, 72, 110, 698, 294, 2984 992, 520, 297, 1524, 132, 697, 132, 83, 84, 110, 2985 1039, 1040, 773, 417, 851, 828, 344, 110, 537, 1423, 2986 112, 540, 110, 542, 543, 1304, 116, 630, 116, 965, 2987 590, 30, 110, 437, 830, 111, 328, 597, 834, 1192, 2988 1193, 445, 132, 646, 736, 110, 417, 1192, 1193, 609, 2989 696, 611, 691, 480, 90, 91, 348, 119, 661, 643, 2990 644, 645, 124, 125, 491, 109, 437, 111, 1097, 1098, 2991 630, 590, 1464, 734, 445, 80, 1132, 116, 662, 1471, 2992 1136, 773, 81, 82, 72, 112, 646, 491, 76, 116, 2993 126, 127, 652, 132, 733, 83, 84, 425, 426, 116, 2994 491, 661, 1381, 663, 664, 665, 111, 110, 113, 116, 2995 110, 491, 117, 405, 1102, 132, 116, 1521, 489, 780, 2996 491, 109, 1526, 491, 680, 132, 772, 964, 924, 116, 2997 115, 119, 1524, 109, 116, 888, 828, 109, 698, 111, 2998 700, 116, 1546, 109, 663, 132, 665, 119, 116, 1553, 2999 132, 109, 736, 713, 116, 758, 909, 132, 453, 719, 3000 64, 456, 110, 455, 132, 68, 827, 462, 116, 72, 3001 132, 731, 75, 501, 77, 72, 10, 11, 12, 13, 3002 14, 84, 894, 970, 744, 745, 83, 84, 110, 1468, 3003 72, 1470, 520, 109, 116, 111, 132, 116, 758, 491, 3004 3, 83, 84, 495, 631, 39, 112, 10, 11, 12, 3005 13, 14, 731, 132, 111, 110, 110, 938, 513, 109, 3006 515, 116, 116, 518, 112, 946, 521, 109, 116, 110, 3007 598, 132, 938, 67, 112, 116, 39, 1320, 116, 110, 3008 946, 110, 1271, 242, 828, 116, 1525, 116, 109, 1402, 3009 1279, 1280, 1281, 109, 45, 111, 110, 1402, 586, 815, 3010 1021, 110, 116, 112, 67, 110, 1419, 116, 114, 825, 3011 61, 116, 600, 64, 1419, 110, 67, 1530, 109, 839, 3012 111, 116, 131, 132, 840, 1530, 1, 691, 72, 1530, 3013 1034, 851, 76, 72, 114, 74, 75, 724, 1327, 83, 3014 84, 629, 64, 72, 83, 84, 634, 1103, 211, 132, 3015 110, 738, 121, 122, 83, 84, 116, 609, 1132, 611, 3016 691, 132, 1136, 1137, 114, 109, 697, 111, 109, 733, 3017 45, 109, 72, 111, 894, 119, 76, 88, 89, 1492, 3018 1493, 901, 902, 83, 84, 1057, 110, 1492, 1493, 82, 3019 1042, 110, 116, 110, 116, 146, 109, 116, 111, 116, 3020 1021, 110, 733, 109, 924, 110, 109, 116, 159, 109, 3021 112, 116, 1205, 1206, 109, 1208, 111, 82, 938, 119, 3022 379, 1214, 120, 902, 1217, 109, 946, 111, 129, 104, 3023 564, 565, 566, 567, 185, 110, 109, 159, 111, 128, 3024 1161, 1062, 773, 94, 964, 832, 698, 72, 700, 74, 3025 75, 64, 92, 93, 85, 86, 87, 208, 83, 84, 3026 115, 116, 969, 718, 984, 109, 110, 111, 81, 220, 3027 145, 116, 117, 993, 109, 110, 111, 1251, 109, 154, 3028 111, 1001, 113, 114, 1004, 703, 1006, 705, 351, 114, 3029 353, 111, 744, 745, 131, 1124, 110, 111, 220, 58, 3030 59, 460, 109, 116, 109, 984, 465, 835, 112, 1161, 3031 109, 110, 111, 115, 116, 902, 109, 110, 111, 109, 3032 1241, 112, 1001, 1039, 1040, 1004, 110, 1006, 110, 204, 3033 58, 59, 60, 208, 110, 1055, 258, 110, 902, 498, 3034 262, 500, 116, 117, 110, 1065, 159, 110, 1068, 1069, 3035 1070, 902, 112, 1505, 116, 117, 72, 1178, 74, 75, 3036 76, 111, 902, 238, 239, 1339, 112, 83, 84, 1343, 3037 131, 902, 116, 1093, 902, 114, 1055, 328, 441, 44, 3038 45, 1097, 1098, 109, 1377, 112, 1065, 839, 110, 1068, 3039 1069, 1070, 110, 109, 72, 270, 74, 75, 273, 851, 3040 1263, 1264, 1265, 1555, 1124, 83, 84, 220, 112, 4, 3041 5, 6, 7, 8, 9, 1221, 560, 561, 969, 294, 3042 112, 112, 297, 562, 563, 568, 569, 349, 112, 969, 3043 117, 109, 3, 29, 117, 117, 114, 1024, 1290, 10, 3044 11, 12, 13, 14, 72, 258, 74, 75, 76, 262, 3045 116, 110, 110, 114, 405, 83, 84, 112, 10, 11, 3046 12, 13, 14, 117, 115, 110, 341, 115, 39, 344, 3047 116, 1445, 115, 928, 69, 1062, 71, 109, 116, 1199, 3048 110, 109, 970, 111, 110, 132, 938, 39, 363, 117, 3049 110, 119, 367, 652, 946, 370, 67, 1204, 1062, 117, 3050 110, 1221, 72, 110, 74, 75, 1226, 110, 430, 110, 3051 3, 1062, 964, 83, 84, 67, 116, 10, 11, 12, 3052 13, 14, 1062, 1239, 4, 5, 6, 7, 8, 9, 3053 110, 1062, 110, 1021, 1062, 110, 349, 132, 1245, 115, 3054 29, 111, 110, 1263, 1264, 1265, 39, 1226, 110, 110, 3055 425, 426, 110, 33, 713, 1271, 110, 109, 480, 111, 3056 719, 902, 110, 1279, 1280, 1281, 110, 119, 72, 1398, 3057 74, 75, 76, 110, 67, 110, 131, 110, 453, 83, 3058 84, 456, 112, 110, 1263, 1264, 1265, 462, 110, 69, 3059 115, 71, 110, 1540, 85, 86, 87, 116, 112, 474, 3060 1320, 1321, 112, 110, 4, 5, 6, 7, 8, 9, 3061 110, 1327, 110, 471, 116, 116, 1203, 430, 109, 114, 3062 111, 117, 113, 114, 499, 112, 501, 110, 503, 1530, 3063 1161, 1338, 116, 1530, 1397, 1530, 110, 116, 513, 1226, 3064 515, 1320, 1321, 518, 116, 520, 521, 1102, 1530, 110, 3065 1531, 117, 1203, 1204, 112, 1375, 109, 532, 1378, 1530, 3066 109, 109, 1226, 1530, 1204, 1531, 109, 480, 109, 69, 3067 1530, 71, 112, 132, 1555, 1226, 1505, 1397, 1398, 115, 3068 110, 603, 110, 110, 129, 114, 1226, 1407, 1408, 1555, 3069 72, 115, 74, 75, 1245, 1226, 1375, 112, 1226, 1378, 3070 132, 83, 84, 1423, 110, 1245, 116, 112, 1428, 631, 3071 1241, 586, 1299, 116, 636, 112, 55, 1304, 110, 110, 3072 110, 47, 597, 112, 1065, 600, 1446, 109, 1407, 1408, 3073 110, 112, 114, 112, 1441, 894, 112, 53, 1458, 112, 3074 1304, 112, 901, 115, 1423, 132, 132, 132, 1299, 1428, 3075 110, 115, 117, 1304, 629, 132, 110, 132, 115, 634, 3076 112, 112, 0, 1, 1304, 640, 105, 1446, 112, 108, 3077 112, 1530, 112, 1304, 112, 1530, 1304, 1530, 112, 1458, 3078 96, 112, 110, 110, 109, 1505, 1506, 1338, 112, 112, 3079 603, 109, 109, 60, 32, 1515, 110, 110, 1338, 114, 3080 132, 1521, 724, 112, 112, 117, 1526, 45, 110, 112, 3081 1530, 1531, 110, 1531, 96, 154, 738, 96, 631, 109, 3082 109, 696, 680, 636, 1544, 132, 1546, 1506, 115, 67, 3083 1550, 112, 110, 1553, 993, 1555, 1515, 1555, 110, 110, 3084 110, 1561, 1521, 718, 51, 1565, 53, 1526, 116, 56, 3085 57, 58, 72, 60, 74, 75, 76, 42, 72, 117, 3086 74, 75, 76, 83, 84, 1544, 104, 1546, 75, 83, 3087 84, 1550, 132, 748, 1553, 132, 192, 1464, 217, 110, 3088 87, 88, 1561, 110, 1471, 1226, 1565, 96, 96, 109, 3089 1441, 72, 132, 74, 75, 76, 132, 772, 110, 215, 3090 1464, 1441, 83, 84, 110, 110, 117, 1471, 146, 225, 3091 832, 724, 110, 1464, 132, 115, 154, 155, 112, 112, 3092 1471, 109, 132, 115, 1464, 738, 115, 110, 109, 132, 3093 111, 1471, 271, 1464, 1093, 110, 1464, 1524, 119, 278, 3094 1471, 132, 72, 1471, 74, 75, 76, 185, 110, 110, 3095 1077, 570, 573, 83, 84, 830, 571, 815, 572, 834, 3096 1524, 574, 200, 1226, 64, 203, 204, 825, 1493, 1565, 3097 208, 1383, 1343, 1524, 74, 1137, 1314, 1471, 294, 109, 3098 1321, 111, 840, 1093, 1524, 453, 453, 946, 705, 119, 3099 465, 229, 948, 1524, 993, 233, 1524, 235, 590, 748, 3100 894, 10, 11, 12, 13, 14, 244, 758, 347, 658, 3101 1245, 966, 250, 491, 578, 578, 116, 255, 1473, 832, 3102 1475, 578, -1, -1, -1, 364, -1, 265, -1, 368, 3103 39, -1, -1, -1, 1375, 273, -1, 1378, -1, -1, 3104 1199, -1, -1, -1, -1, -1, -1, -1, -1, 924, 3105 -1, -1, 1540, 928, -1, 1510, -1, 1512, 67, 159, 3106 -1, -1, -1, 72, -1, 74, 75, 76, 72, -1, 3107 74, 75, 76, -1, 83, 84, 0, -1, 1530, 83, 3108 84, -1, 1423, -1, -1, -1, 72, 1428, 74, 75, 3109 76, -1, 431, 968, 969, 970, -1, 83, 84, -1, 3110 109, -1, 1024, 341, -1, 109, 344, 111, 32, -1, 3111 119, -1, 350, -1, -1, 119, -1, 1458, -1, -1, 3112 220, -1, -1, 109, -1, 363, 442, -1, -1, 367, 3113 -1, -1, 370, 119, -1, -1, -1, 344, 345, -1, 3114 -1, -1, -1, 67, -1, -1, 1021, -1, -1, 356, 3115 357, 10, 11, 12, 13, 14, -1, -1, 258, -1, 3116 476, -1, 262, 72, -1, 74, 75, 76, -1, -1, 3117 -1, -1, -1, -1, 83, 84, -1, -1, 278, 417, 3118 39, 1039, 1040, -1, -1, -1, 26, 27, 28, -1, 3119 -1, -1, -1, -1, 432, -1, -1, 513, -1, 437, 3120 109, -1, 518, 1544, -1, 521, -1, 445, 67, 1550, 3121 119, 1024, 10, 11, 12, 13, 14, -1, -1, -1, 3122 1561, -1, -1, -1, 1565, -1, -1, 1102, 1103, -1, 3123 -1, 155, -1, 471, -1, -1, 474, -1, -1, 1097, 3124 1098, 39, -1, -1, 10, 11, 12, 13, 14, 349, 3125 109, 489, 111, 491, -1, -1, -1, 97, 597, 99, 3126 119, 499, -1, -1, -1, 503, -1, -1, -1, 67, 3127 -1, -1, -1, 39, 72, -1, 74, 75, 76, -1, 3128 -1, 1203, -1, -1, 124, 83, 84, -1, -1, -1, 3129 -1, 630, -1, -1, 532, 533, -1, -1, -1, -1, 3130 -1, 67, -1, -1, -1, 229, 72, 646, 74, 75, 3131 76, 109, -1, 111, -1, -1, -1, 83, 84, -1, 3132 -1, 119, 661, -1, -1, -1, 250, -1, -1, -1, 3133 430, 255, -1, -1, -1, 10, 11, 12, 13, 14, 3134 180, 579, -1, 109, -1, 111, 1221, 447, 188, -1, 3135 190, 191, -1, 119, -1, 195, -1, 197, 198, 597, 3136 598, -1, 600, 679, 39, -1, -1, -1, -1, -1, 3137 1245, -1, 688, 611, -1, -1, 692, 1299, -1, -1, 3138 480, 1239, -1, 10, 11, 12, 13, 14, -1, -1, 3139 1203, 629, 67, -1, -1, -1, 634, 72, -1, 74, 3140 75, 76, 640, -1, -1, 643, 644, 645, 83, 84, 3141 -1, -1, 39, 1271, -1, -1, -1, -1, -1, 758, 3142 -1, 1279, 1280, 1281, 662, -1, 350, 267, -1, -1, 2945 0, 1, 0, 203, 184, 184, 520, 698, 238, 43, 2946 115, 184, 1, 698, 43, 43, 543, 185, 629, 0, 2947 104, 218, 184, 280, 185, 456, 455, 698, 348, 29, 2948 30, 184, 32, 184, 32, 1062, 184, 902, 167, 168, 2949 609, 348, 1, 43, 656, 45, 278, 45, 1043, 611, 2950 1006, 32, 1042, 1043, 32, 55, 497, 0, 759, 611, 2951 28, 61, 612, 61, 64, 609, 64, 67, 618, 67, 2952 154, 609, 499, 579, 1340, 718, 503, 999, 67, 609, 2953 609, 81, 82, 780, 264, 264, 777, 51, 186, 32, 2954 1421, 264, 777, 609, 82, 200, 1425, 265, 344, 1055, 2955 529, 39, 264, 902, 265, 105, 777, 0, 108, 39, 2956 78, 264, 417, 264, 609, 115, 264, 0, 43, 72, 2957 43, 45, 363, 643, 644, 645, 367, 489, 44, 45, 2958 83, 84, 437, 64, 0, 43, 82, 39, 227, 32, 2959 445, 39, 662, 44, 45, 109, 146, 95, 146, 32, 2960 184, 0, 1, 39, 154, 184, 184, 246, 111, 159, 2961 63, 159, 260, 261, 1495, 111, 32, 44, 45, 1477, 2962 109, 64, 613, 111, 85, 495, 617, 1443, 109, 109, 2963 30, 111, 130, 32, 184, 185, 110, 185, 4, 5, 2964 6, 7, 8, 9, 1523, 109, 39, 638, 114, 1528, 2965 200, 642, 113, 255, 1512, 39, 1514, 109, 208, 111, 2966 208, 294, 409, 114, 744, 64, 736, 217, 67, 1548, 2967 220, 145, 220, 109, 902, 111, 1555, 227, 744, 132, 2968 264, 81, 82, 96, 82, 264, 264, 405, 115, 11, 2969 644, 645, 242, 489, 405, 82, 246, 109, 1243, 744, 2970 250, 251, 250, 69, 511, 71, 112, 341, 662, 184, 2971 123, 184, 110, 1062, 264, 265, 109, 265, 111, 250, 2972 839, 271, 250, 0, 1, 109, 184, 111, 278, 1306, 2973 117, 643, 644, 645, 208, 928, 370, 455, 0, 851, 2974 395, 841, 251, 293, 455, 839, 114, 107, 1293, 851, 2975 662, 839, 1292, 1293, 611, 32, 3, 250, 828, 839, 2976 839, 82, 1009, 819, 238, 110, 132, 116, 423, 487, 2977 32, 131, 117, 839, 429, 116, 487, 220, 328, 116, 2978 328, 43, 736, 45, 293, 697, 82, 1259, 109, 951, 2979 67, 132, 425, 426, 839, 132, 270, 347, 348, 61, 2980 425, 426, 64, 116, 600, 67, 597, 250, 699, 55, 2981 90, 91, 1227, 109, 364, 417, 72, 250, 368, 132, 2982 1071, 220, 255, 297, 736, 1074, 1075, 83, 84, 379, 2983 721, 109, 110, 629, 250, 437, 691, 1065, 634, 255, 2984 959, 96, 242, 445, 109, 395, 126, 127, 960, 640, 2985 110, 250, 72, 109, 3, 405, 116, 405, 82, 105, 2986 1021, 773, 108, 83, 84, 959, 131, 116, 123, 676, 2987 344, 959, 1417, 423, 828, 109, 501, 1417, 1227, 429, 2988 513, 431, 873, 68, 146, 518, 110, 72, 521, 1466, 2989 75, 1528, 77, 117, 1143, 520, 1473, 159, 532, 84, 2990 1528, 697, 72, 1409, 1410, 455, 349, 121, 122, 72, 2991 460, 1548, 132, 83, 84, 109, 828, 111, 1555, 116, 2992 83, 84, 184, 185, 474, 119, 110, 1555, 116, 479, 2993 1030, 1031, 699, 117, 112, 132, 0, 487, 116, 487, 2994 1004, 491, 575, 491, 132, 495, 208, 131, 498, 1526, 2995 500, 425, 426, 0, 721, 762, 119, 1306, 220, 938, 2996 491, 586, 132, 88, 89, 474, 947, 946, 698, 698, 2997 520, 217, 131, 250, 965, 698, 758, 773, 657, 379, 2998 1142, 851, 700, 80, 417, 109, 698, 537, 250, 700, 2999 540, 968, 542, 543, 851, 698, 72, 698, 491, 1227, 3000 698, 417, 264, 116, 437, 1117, 109, 83, 84, 664, 3001 110, 520, 445, 992, 111, 109, 113, 117, 666, 132, 3002 117, 437, 115, 116, 110, 271, 211, 501, 537, 445, 3003 116, 540, 278, 542, 543, 111, 109, 480, 131, 830, 3004 590, 116, 3, 834, 109, 812, 520, 597, 491, 10, 3005 11, 12, 13, 14, 109, 1306, 489, 132, 491, 609, 3006 460, 611, 696, 116, 53, 72, 328, 598, 116, 4, 3007 5, 6, 7, 8, 9, 491, 83, 84, 39, 132, 3008 630, 590, 110, 116, 132, 119, 348, 978, 116, 691, 3009 124, 125, 491, 112, 964, 1323, 646, 116, 498, 132, 3010 500, 347, 652, 116, 111, 110, 67, 96, 0, 1, 3011 1498, 661, 586, 663, 664, 665, 1504, 1466, 364, 132, 3012 80, 1102, 368, 890, 1473, 129, 600, 131, 116, 116, 3013 1042, 733, 1383, 924, 69, 72, 71, 1525, 772, 110, 3014 32, 888, 1530, 405, 132, 132, 83, 84, 698, 1377, 3015 700, 111, 1380, 113, 663, 629, 665, 117, 112, 109, 3016 634, 111, 909, 713, 116, 110, 351, 112, 353, 719, 3017 110, 116, 64, 723, 111, 67, 116, 1526, 110, 110, 3018 132, 731, 45, 110, 116, 116, 131, 132, 631, 109, 3019 970, 111, 110, 455, 744, 745, 112, 1425, 61, 119, 3020 116, 64, 1430, 192, 67, 112, 72, 110, 758, 116, 3021 76, 978, 72, 116, 491, 894, 76, 83, 84, 1470, 3022 938, 1472, 731, 83, 84, 1021, 215, 938, 946, 491, 3023 112, 110, 1460, 495, 116, 946, 225, 10, 11, 12, 3024 13, 14, 1009, 109, 1135, 1322, 92, 93, 110, 109, 3025 1162, 111, 652, 119, 116, 110, 441, 72, 691, 119, 3026 109, 116, 111, 155, 697, 109, 39, 111, 83, 84, 3027 10, 11, 12, 13, 14, 691, 1527, 109, 109, 111, 3028 513, 724, 515, 146, 1034, 518, 1133, 119, 521, 839, 3029 1137, 1532, 1059, 110, 67, 738, 159, 1532, 109, 39, 3030 733, 851, 1193, 1194, 835, 294, 115, 116, 110, 110, 3031 110, 1532, 1103, 713, 116, 116, 116, 733, 1546, 719, 3032 116, 117, 185, 723, 1552, 115, 1133, 67, 220, 109, 3033 1137, 1138, 109, 110, 111, 1563, 109, 132, 111, 1567, 3034 773, 703, 110, 705, 894, 208, 119, 609, 116, 611, 3035 72, 901, 902, 110, 76, 110, 111, 220, 250, 116, 3036 64, 83, 84, 110, 1, 109, 1162, 111, 1135, 116, 3037 72, 902, 74, 75, 924, 85, 86, 87, 1057, 109, 3038 1292, 83, 84, 72, 630, 74, 75, 109, 938, 832, 3039 58, 59, 110, 902, 83, 84, 946, 119, 116, 109, 3040 646, 111, 109, 113, 114, 110, 112, 109, 45, 132, 3041 110, 116, 114, 110, 964, 661, 116, 115, 116, 116, 3042 109, 114, 109, 680, 111, 114, 1193, 1194, 114, 72, 3043 969, 74, 75, 76, 984, 109, 698, 111, 700, 114, 3044 83, 84, 109, 993, 111, 109, 1253, 1243, 109, 110, 3045 111, 1001, 132, 442, 1004, 109, 1006, 111, 82, 902, 3046 72, 132, 74, 75, 109, 328, 109, 104, 111, 902, 3047 1125, 83, 84, 110, 117, 984, 119, 72, 109, 74, 3048 75, 82, 744, 745, 116, 117, 902, 476, 83, 84, 3049 112, 109, 1001, 111, 894, 1004, 970, 1006, 109, 110, 3050 111, 901, 114, 902, 120, 1055, 116, 117, 145, 109, 3051 110, 111, 758, 1404, 128, 1065, 111, 154, 1068, 1069, 3052 1070, 58, 59, 60, 513, 1265, 1266, 1267, 1507, 518, 3053 1421, 1062, 521, 72, 1341, 74, 75, 76, 1345, 129, 3054 432, 94, 405, 1093, 83, 84, 1055, 1021, 44, 45, 3055 10, 11, 12, 13, 14, 131, 1065, 111, 815, 1068, 3056 1069, 1070, 564, 565, 566, 567, 109, 204, 825, 109, 3057 969, 208, 110, 1206, 1207, 1125, 1209, 839, 1557, 39, 3058 112, 1024, 1215, 840, 72, 1218, 74, 75, 1222, 851, 3059 560, 561, 112, 993, 110, 83, 84, 562, 563, 491, 3060 110, 238, 239, 1494, 1495, 110, 72, 67, 74, 75, 3061 76, 110, 72, 110, 74, 75, 76, 83, 84, 1062, 3062 568, 569, 109, 83, 84, 902, 112, 111, 131, 1062, 3063 112, 114, 109, 270, 114, 116, 273, 1404, 114, 112, 3064 1447, 533, 110, 109, 45, 111, 1062, 110, 112, 109, 3065 1200, 111, 117, 119, 1421, 112, 112, 294, 112, 119, 3066 297, 29, 117, 1062, 117, 116, 1205, 110, 110, 114, 3067 117, 112, 1222, 110, 132, 115, 938, 1227, 3, 115, 3068 115, 109, 116, 110, 946, 10, 11, 12, 13, 14, 3069 679, 110, 969, 1093, 116, 110, 1227, 117, 110, 688, 3070 110, 110, 964, 692, 341, 116, 598, 344, 1247, 110, 3071 110, 110, 3, 110, 39, 1265, 1266, 1267, 1227, 10, 3072 11, 12, 13, 14, 110, 110, 363, 1494, 1495, 1162, 3073 367, 110, 110, 370, 10, 11, 12, 13, 14, 110, 3074 110, 110, 67, 110, 110, 1400, 1379, 110, 39, 29, 3075 115, 643, 644, 645, 131, 112, 1265, 1266, 1267, 110, 3076 110, 1204, 1542, 39, 110, 110, 114, 116, 112, 112, 3077 662, 110, 1322, 1323, 110, 1306, 67, 110, 116, 110, 3078 117, 116, 1039, 1040, 1227, 1062, 116, 116, 425, 426, 3079 112, 67, 116, 110, 1227, 110, 112, 85, 86, 87, 3080 1200, 1340, 1532, 1532, 109, 1204, 1205, 208, 109, 1532, 3081 1243, 1227, 109, 1322, 1323, 1533, 453, 109, 112, 456, 3082 1532, 109, 1533, 111, 109, 113, 114, 1377, 1227, 1532, 3083 1380, 1532, 132, 109, 1532, 111, 117, 474, 239, 1557, 3084 1097, 1098, 115, 119, 736, 110, 1557, 110, 1247, 1399, 3085 1400, 115, 1507, 110, 129, 115, 114, 112, 1301, 1409, 3086 1410, 132, 499, 1306, 501, 110, 503, 116, 1377, 270, 3087 112, 1380, 116, 1306, 112, 1425, 513, 110, 515, 110, 3088 1430, 518, 110, 520, 521, 112, 471, 112, 112, 110, 3089 1306, 47, 112, 294, 112, 532, 297, 112, 1448, 115, 3090 1409, 1410, 1301, 132, 1443, 110, 132, 1306, 115, 132, 3091 1460, 117, 110, 132, 115, 132, 1425, 112, 112, 112, 3092 112, 1430, 72, 112, 74, 75, 76, 112, 1205, 112, 3093 112, 110, 110, 83, 84, 1466, 828, 926, 112, 1448, 3094 112, 1340, 1473, 835, 0, 1, 109, 109, 1532, 586, 3095 1227, 1460, 109, 1532, 1532, 60, 110, 1507, 1508, 109, 3096 597, 111, 55, 600, 110, 114, 132, 1517, 112, 119, 3097 1247, 112, 117, 1523, 110, 112, 32, 110, 1528, 96, 3098 96, 109, 1532, 1533, 109, 1533, 115, 110, 112, 45, 3099 132, 110, 629, 42, 116, 1526, 1546, 634, 1548, 1508, 3100 110, 110, 1552, 640, 117, 1555, 132, 1557, 1517, 1557, 3101 902, 67, 105, 1563, 1523, 108, 1273, 1567, 132, 1528, 3102 110, 110, 96, 1466, 1281, 1282, 1283, 96, 132, 1306, 3103 1473, 110, 110, 1466, 132, 117, 132, 1546, 110, 1548, 3104 1473, 112, 110, 1552, 1443, 115, 1555, 132, 104, 112, 3105 1466, 109, 453, 115, 1563, 456, 132, 1473, 1567, 696, 3106 115, 154, 110, 1340, 64, 110, 132, 1466, 1542, 110, 3107 110, 1077, 1329, 571, 1473, 570, 1227, 969, 572, 64, 3108 64, 718, 573, 1526, 1073, 574, 1495, 1385, 1567, 74, 3109 146, 1316, 1138, 1526, 986, 680, 1473, 81, 154, 155, 3110 1345, 1093, 705, 946, 4, 5, 6, 7, 8, 9, 3111 1526, 748, 513, 453, 515, 471, 116, 518, 723, 453, 3112 521, 948, 993, 590, 217, 894, 966, 1526, 658, 185, 3113 1247, 116, 116, 33, 578, 772, 491, 758, 10, 11, 3114 12, 13, 14, -1, 200, 578, 748, 203, 204, 578, 3115 1042, 1043, 208, 1399, -1, -1, -1, -1, -1, 159, 3116 -1, -1, -1, -1, -1, -1, 1443, 39, -1, 69, 3117 1062, 71, -1, 229, 159, 159, -1, 233, 271, 235, 3118 72, -1, 74, 75, 76, 278, -1, -1, 244, 1466, 3119 -1, 83, 84, 830, 250, 67, 1473, 834, -1, 255, 3120 72, -1, 74, 75, 76, -1, -1, -1, -1, 265, 3121 -1, 83, 84, -1, -1, -1, -1, 273, 283, -1, 3122 220, -1, -1, -1, -1, -1, 26, 27, 28, -1, 3123 815, 296, 297, -1, -1, 220, 220, 109, -1, 111, 3124 825, -1, -1, 308, -1, -1, -1, 119, -1, 1526, 3125 -1, -1, -1, -1, 347, 840, -1, -1, 258, -1, 3126 -1, -1, 262, 10, 11, 12, 13, 14, -1, -1, 3127 1532, 364, -1, 258, 258, 368, -1, 262, 262, 344, 3128 -1, -1, -1, -1, -1, 341, -1, 924, 344, -1, 3129 -1, 928, 39, 278, 350, -1, -1, 97, -1, 99, 3130 -1, -1, -1, -1, -1, -1, -1, 363, -1, -1, 3131 947, 367, 1204, 1205, 370, 380, -1, 718, -1, -1, 3132 67, -1, -1, -1, 680, 72, 1315, 74, 75, 76, 3133 -1, 968, 969, 970, -1, 1227, 83, 84, 431, -1, 3134 72, -1, 74, 75, 76, -1, -1, -1, -1, 349, 3135 -1, 83, 84, -1, -1, 1247, 72, -1, 74, 75, 3136 76, 417, 109, -1, 349, 349, -1, 83, 84, -1, 3137 -1, 72, 119, 74, 75, 76, 432, 109, -1, 111, 3138 180, 437, 83, 84, 1021, -1, -1, 119, -1, 445, 3139 190, 191, -1, 109, -1, 195, -1, 197, 198, -1, 3140 1292, 1293, -1, 119, -1, -1, -1, -1, 109, 1301, 3141 -1, -1, -1, -1, 1306, 471, -1, -1, 474, -1, 3142 51, -1, 53, -1, -1, 56, 57, 58, -1, 60, 3143 430, -1, -1, 489, -1, 491, -1, -1, -1, -1, 3144 -1, -1, -1, 499, 75, 430, 430, 503, 1340, 10, 3145 11, 12, 13, 14, 1039, 1040, 87, 88, -1, 815, 3146 -1, -1, 447, -1, -1, 1102, 1103, -1, -1, 825, 3147 72, -1, 74, 75, 76, -1, 532, 533, 39, -1, 3148 480, 83, 84, -1, 840, 1474, -1, 1476, -1, -1, 3149 -1, -1, 557, 558, 559, 480, 480, 72, -1, 74, 3150 75, 76, -1, -1, 597, -1, 67, 109, 83, 84, 3151 -1, -1, 1097, 1098, -1, -1, -1, 119, -1, -1, 3152 -1, -1, 1511, 579, 1513, 1417, -1, 928, -1, -1, 3153 -1, -1, -1, -1, 109, 600, -1, 630, -1, -1, 3154 -1, 597, 598, -1, 600, -1, 947, -1, 109, -1, 3155 111, 1443, -1, 646, -1, 611, -1, -1, 119, -1, 3156 -1, -1, -1, -1, -1, -1, -1, 1556, 661, 1558, 3157 -1, -1, -1, 629, 1466, -1, -1, -1, 634, -1, 3158 -1, 1473, 1571, 1572, 640, 1222, -1, 643, 644, 645, 3159 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3160 0, -1, -1, 603, -1, -1, 662, -1, -1, -1, 3161 1247, -1, -1, -1, -1, -1, -1, -1, 603, 603, 3162 -1, -1, -1, -1, 680, -1, -1, -1, -1, -1, 3163 -1, 631, 32, -1, 1526, 691, 636, -1, -1, -1, 3164 696, 697, -1, -1, 700, -1, 631, 631, -1, -1, 3165 -1, 636, 636, -1, -1, -1, 1241, -1, -1, -1, 3166 -1, -1, -1, -1, -1, 758, -1, 67, -1, 734, 3167 -1, -1, -1, -1, -1, -1, -1, 733, -1, -1, 3168 736, -1, -1, 1039, 1040, -1, -1, -1, 1273, 745, 3169 -1, -1, 748, -1, -1, -1, 1281, 1282, 1283, -1, 3170 -1, 1102, -1, 1340, -1, -1, -1, -1, -1, -1, 3171 -1, -1, -1, 344, 345, 780, 772, 773, -1, -1, 3172 -1, -1, 778, -1, 724, 356, 357, -1, -1, 26, 3173 27, 28, -1, -1, -1, -1, -1, -1, 738, 724, 3174 724, 1097, 1098, -1, 1329, -1, -1, -1, -1, -1, 3175 -1, -1, -1, 738, 738, 155, -1, -1, -1, 815, 3176 -1, -1, 827, -1, -1, -1, -1, -1, -1, 825, 3177 -1, -1, 828, 758, 830, -1, -1, 833, 834, 835, 3178 -1, -1, 582, 583, 840, -1, -1, -1, -1, -1, 3179 -1, -1, -1, -1, 850, -1, -1, -1, -1, -1, 3180 97, -1, 99, -1, -1, -1, 1443, 10, 11, 12, 3181 13, 14, 612, -1, -1, 615, 616, -1, 618, -1, 3182 620, 621, -1, -1, -1, 625, 626, 124, -1, 229, 3183 -1, 924, 832, -1, -1, -1, 39, -1, 1475, -1, 3184 1477, -1, -1, -1, -1, -1, 902, 832, 832, -1, 3185 250, -1, -1, -1, -1, 255, 188, -1, -1, -1, 3186 -1, -1, -1, 195, 67, -1, -1, -1, 924, 72, 3187 -1, 74, 75, 76, -1, 1512, -1, 1514, -1, -1, 3188 83, 84, -1, 180, -1, 1241, -1, -1, -1, -1, 3189 -1, 188, -1, 190, 191, -1, -1, -1, 195, -1, 3190 197, 198, -1, -1, 960, 1542, 109, -1, 111, 709, 3191 710, -1, 968, 969, -1, 715, 119, 1273, -1, 10, 3192 11, 12, 13, 14, -1, 1281, 1282, 1283, -1, -1, 3193 986, -1, -1, -1, -1, 267, -1, -1, -1, 10, 3194 11, 12, 13, 14, -1, -1, -1, -1, 39, -1, 3195 350, -1, -1, -1, -1, -1, 1021, -1, -1, -1, 3196 -1, -1, -1, -1, -1, 1021, -1, -1, 39, -1, 3197 267, -1, -1, 1329, -1, -1, 67, -1, 1034, -1, 3198 -1, 72, -1, 1039, 1040, 76, 1042, 1043, -1, -1, 3199 -1, 323, 83, 84, -1, -1, 67, 1062, -1, 331, 3200 -1, 72, 334, 74, 75, 76, 1062, -1, -1, -1, 3201 -1, -1, 83, 84, -1, -1, -1, 417, 109, -1, 3202 -1, 0, -1, -1, 1024, -1, -1, -1, 119, -1, 3203 -1, -1, 432, -1, -1, -1, -1, 437, 109, 1024, 3204 1024, 1097, 1098, -1, -1, 445, -1, 1103, 119, -1, 3205 -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, 3206 -1, -1, -1, -1, -1, 397, -1, -1, -1, 401, 3207 -1, 471, -1, -1, 1475, -1, 1477, -1, 97, 98, 3208 99, 100, 101, 102, 103, 104, 105, 106, 67, 489, 3209 -1, 491, -1, -1, 725, -1, 727, -1, -1, -1, 3210 -1, -1, -1, 734, 735, -1, 1162, -1, 739, -1, 3211 -1, 1512, 131, 1514, 1179, 10, 11, 12, 13, 14, 3212 751, -1, -1, -1, -1, 756, -1, -1, -1, 1222, 3213 -1, -1, -1, 533, -1, -1, -1, -1, -1, -1, 3214 -1, -1, -1, -1, 39, -1, -1, -1, -1, 1205, 3215 -1, 782, -1, -1, 486, -1, -1, -1, -1, -1, 3216 -1, -1, -1, -1, -1, -1, 1222, -1, -1, -1, 3217 -1, 1227, 67, -1, -1, -1, 155, 72, -1, -1, 3218 -1, 76, -1, -1, -1, 1241, -1, 1243, 83, 84, 3219 -1, 1247, -1, -1, -1, -1, 827, -1, 598, -1, 3220 -1, -1, -1, -1, 1204, -1, -1, -1, -1, -1, 3221 -1, -1, -1, -1, 109, -1, -1, 1273, -1, 1204, 3222 1204, -1, -1, -1, 119, 1281, 1282, 1283, -1, -1, 3223 -1, -1, -1, -1, -1, -1, 1292, 1293, -1, -1, 3224 -1, -1, -1, 643, 644, 645, 578, 579, -1, -1, 3225 1306, -1, -1, 884, 885, 886, 887, -1, 889, -1, 3226 -1, -1, 662, -1, -1, -1, -1, -1, -1, -1, 3227 -1, 250, -1, 1329, 905, -1, 255, -1, -1, -1, 3228 680, -1, -1, -1, 1340, 582, 583, -1, 919, -1, 3229 -1, 691, -1, -1, -1, -1, -1, 697, -1, 1099, 3230 -1, 1301, -1, -1, -1, -1, 1399, -1, -1, -1, 3231 -1, -1, -1, -1, -1, 612, 1301, 1301, 615, 616, 3232 -1, 618, -1, 620, 621, -1, -1, 958, 625, 626, 3233 -1, -1, -1, 733, -1, 667, 736, -1, -1, 671, 3234 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3235 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3236 -1, 1417, -1, -1, -1, -1, -1, 998, -1, 39, 3237 -1, 350, 704, 773, 1005, -1, -1, -1, -1, 1010, 3238 -1, -1, -1, -1, 1015, -1, 1017, 1443, -1, -1, 3239 1021, 1022, 1023, -1, -1, 1026, -1, 67, -1, -1, 3240 -1, -1, -1, -1, 1035, -1, -1, 704, 78, -1, 3241 1466, -1, 709, 710, -1, 815, -1, 1473, 715, -1, 3242 -1, -1, 1053, 1054, 1224, 825, -1, -1, 828, -1, 3243 -1, -1, -1, 833, -1, 835, -1, -1, 417, -1, 3244 840, -1, -1, -1, -1, -1, -1, -1, -1, 1080, 3245 -1, -1, 1083, 432, -1, -1, -1, -1, 437, -1, 3246 -1, -1, -1, -1, -1, -1, 445, -1, -1, -1, 3247 1526, -1, -1, -1, -1, -1, -1, 1533, -1, -1, 3248 -1, -1, -1, -1, -1, -1, -1, 819, -1, -1, 3249 -1, 1122, 471, -1, -1, -1, -1, 1128, 1129, -1, 3250 -1, -1, 902, -1, -1, -1, -1, -1, -1, 1140, 3251 489, -1, 491, 0, 1145, -1, -1, 1148, -1, 1150, 3252 -1, -1, 1153, -1, -1, -1, -1, -1, -1, -1, 3253 -1, -1, -1, -1, -1, 1166, -1, -1, -1, -1, 3254 -1, -1, -1, -1, -1, 32, 37, 38, 1179, 40, 3255 1181, 1182, 1183, 1184, 533, -1, -1, -1, -1, -1, 3256 -1, -1, -1, -1, -1, -1, 1197, -1, 1199, -1, 3257 -1, -1, 1203, -1, -1, 66, -1, -1, -1, -1, 3258 67, 72, -1, 74, 75, 76, 986, -1, 79, 80, 3259 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3260 932, 1232, 1233, 94, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, -1, -1, -1, -1, -1, 109, 598, 3262 111, -1, 113, 114, -1, -1, -1, 118, 119, 120, 3263 121, 122, 123, -1, -1, -1, -1, -1, -1, 1039, 3264 1040, -1, 1042, 1043, -1, -1, -1, -1, -1, -1, 3265 -1, -1, -1, 1284, 1285, -1, -1, -1, -1, -1, 3266 -1, -1, 1062, 1294, 643, 644, 645, -1, 155, -1, 3267 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1011, 3268 -1, -1, -1, 662, -1, -1, -1, -1, -1, -1, 3269 -1, -1, -1, -1, -1, 1027, -1, 1097, 1098, -1, 3270 -1, 680, -1, -1, -1, -1, -1, -1, -1, -1, 3271 -1, -1, 691, -1, -1, 1346, -1, -1, 697, -1, 3272 -1, -1, -1, -1, -1, -1, -1, 1358, -1, 1360, 3273 1361, 1362, 37, 38, -1, 40, -1, -1, -1, -1, 3274 -1, 1372, -1, -1, -1, -1, -1, -1, -1, -1, 3275 1381, -1, -1, -1, 733, -1, -1, 736, -1, -1, 3276 -1, 66, 1162, 250, -1, -1, 1397, 72, 255, -1, 3277 -1, 76, 1104, -1, 79, 80, 81, 82, 83, 84, 3278 -1, 86, 87, -1, -1, -1, -1, -1, 0, 94, 3279 -1, -1, -1, -1, 773, -1, -1, -1, -1, -1, 3280 -1, -1, 1099, -1, 109, 1205, 111, -1, -1, 114, 3281 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3282 32, -1, 1453, 1454, -1, -1, -1, 1227, -1, -1, 3283 -1, -1, -1, -1, -1, 1466, 815, -1, -1, -1, 3284 -1, 1241, 1473, 1243, -1, -1, 825, -1, -1, 828, 3285 -1, -1, -1, -1, 833, 67, 835, -1, -1, -1, 3286 -1, 840, -1, 350, -1, -1, -1, -1, -1, -1, 3287 -1, -1, -1, 1273, -1, 1506, -1, -1, -1, 1510, 3288 -1, 1281, 1282, 1283, -1, -1, -1, -1, -1, -1, 3289 -1, -1, 1292, 1293, -1, -1, -1, -1, -1, -1, 3290 -1, -1, -1, -1, -1, -1, 1306, -1, 1539, -1, 3291 1541, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3292 -1, -1, -1, 902, -1, -1, -1, 1224, -1, 1329, 3293 417, -1, -1, -1, -1, -1, -1, -1, 1569, 1570, 3294 -1, -1, -1, 155, -1, 432, 1577, 1578, -1, -1, 3295 437, -1, -1, -1, -1, -1, 0, -1, 445, 3, 3296 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3297 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3298 24, 25, 26, 27, 471, -1, 30, 31, 32, 33, 3299 -1, -1, 36, -1, -1, 39, 40, -1, -1, -1, 3300 -1, -1, 489, -1, 491, -1, -1, 986, -1, -1, 3301 -1, -1, -1, -1, -1, -1, -1, 1417, -1, -1, 3302 64, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3303 74, 75, 76, -1, -1, -1, -1, -1, 250, 83, 3304 84, -1, -1, 255, -1, -1, 533, -1, 7, -1, 3305 -1, 10, 11, 12, 13, 14, -1, -1, -1, -1, 3306 1039, 1040, -1, 1042, 1043, 109, 1466, 111, -1, -1, 3307 -1, -1, -1, 1473, -1, 119, -1, -1, 37, 38, 3308 39, 40, -1, 1062, -1, 10, 11, 12, 13, 14, 3309 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3310 25, 26, 27, 28, -1, -1, -1, 66, 67, -1, 3311 -1, 598, -1, 72, 39, -1, -1, 76, 1097, 1098, 3312 79, 80, 81, 82, 83, 84, 1526, 86, 87, -1, 3313 -1, -1, -1, -1, -1, 94, -1, -1, 350, -1, 3314 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 3315 109, -1, 111, 78, -1, -1, 643, 644, 645, 118, 3316 119, 120, 121, 122, 123, -1, -1, -1, -1, -1, 3317 -1, -1, -1, -1, -1, 662, -1, -1, -1, -1, 3318 -1, -1, -1, 1162, -1, -1, -1, -1, -1, -1, 3319 -1, -1, -1, 680, -1, -1, -1, -1, -1, -1, 3320 -1, -1, -1, -1, 691, 417, -1, -1, -1, 45, 3321 697, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3322 432, -1, -1, -1, -1, 437, 1205, -1, 64, -1, 3323 -1, -1, -1, 445, -1, -1, -1, -1, -1, -1, 3324 -1, -1, -1, -1, -1, -1, 733, -1, 1227, 736, 3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, 3326 -1, -1, 1241, -1, 1243, -1, -1, -1, -1, -1, 3327 -1, -1, -1, -1, 110, -1, -1, 489, -1, 491, 3328 116, -1, -1, -1, -1, -1, 773, -1, -1, -1, 3329 -1, -1, -1, -1, 1273, -1, -1, -1, -1, -1, 3330 -1, -1, 1281, 1282, 1283, -1, -1, -1, -1, 145, 3331 -1, -1, -1, 1292, 1293, -1, -1, -1, -1, 155, 3332 -1, 533, -1, 159, -1, -1, -1, 1306, 815, -1, 3333 -1, -1, -1, -1, -1, -1, -1, -1, 825, -1, 3334 -1, 828, -1, -1, -1, -1, 833, -1, 835, -1, 3335 1329, -1, -1, 840, 10, 11, 12, 13, 14, 15, 3336 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3337 26, 27, 208, -1, 30, 31, 32, -1, -1, -1, 3338 -1, -1, -1, 39, 220, -1, 598, -1, -1, -1, 3339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3340 -1, -1, 238, 239, -1, -1, -1, -1, -1, -1, 3341 -1, 67, -1, -1, -1, 902, -1, -1, 74, 75, 3342 -1, -1, -1, -1, -1, -1, 262, -1, -1, -1, 3343 -1, 643, 644, 645, 270, -1, -1, -1, 1417, -1, 3344 -1, -1, -1, -1, 281, -1, 283, 284, -1, -1, 3345 662, -1, -1, -1, 291, 292, -1, -1, 294, 296, 3346 297, 297, -1, 119, -1, -1, -1, -1, 680, -1, 3347 -1, 308, -1, -1, -1, -1, -1, -1, -1, 691, 3348 -1, -1, -1, -1, -1, 697, -1, 1466, 37, 38, 3349 -1, 40, -1, -1, 1473, -1, -1, -1, -1, 986, 3350 -1, -1, -1, -1, -1, -1, -1, 344, 344, -1, 3351 -1, -1, -1, 349, -1, -1, -1, 66, -1, -1, 3352 -1, 733, -1, 72, 736, -1, -1, 76, -1, -1, 3353 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3354 -1, -1, -1, 380, -1, 94, -1, 1526, -1, -1, 3355 -1, -1, 1039, 1040, -1, 1042, 1043, -1, -1, -1, 3356 109, 773, 111, -1, -1, -1, -1, -1, 117, 118, 3357 119, 120, 121, 122, 123, 1062, -1, -1, -1, -1, 3358 -1, -1, -1, -1, -1, 64, -1, -1, -1, 425, 3359 426, -1, -1, -1, -1, 74, 432, 76, -1, 78, 3360 -1, -1, -1, 815, -1, -1, 85, -1, -1, -1, 3361 1097, 1098, -1, 825, -1, -1, 828, 453, -1, -1, 3362 456, 833, -1, 835, -1, -1, -1, -1, 840, -1, 3363 -1, -1, -1, -1, -1, -1, -1, 116, -1, 118, 3364 119, 120, -1, -1, -1, -1, -1, -1, -1, -1, 3365 -1, -1, -1, 489, -1, -1, -1, -1, -1, -1, 3366 -1, -1, -1, -1, -1, 501, -1, -1, -1, -1, 3367 -1, -1, -1, -1, -1, 1162, -1, 513, -1, 515, 3368 159, -1, 518, -1, 520, 521, -1, -1, -1, -1, 3369 902, -1, -1, -1, -1, -1, -1, 533, -1, -1, 3370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3371 -1, -1, -1, -1, -1, -1, -1, -1, 1205, -1, 3372 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 3373 567, 568, 569, 570, 571, 572, 573, 574, -1, -1, 3374 1227, 220, -1, 222, 223, 224, -1, -1, -1, -1, 3375 586, -1, -1, -1, 1241, -1, 1243, -1, -1, -1, 3376 -1, -1, 598, 600, 600, -1, -1, 603, -1, -1, 3377 -1, -1, -1, -1, 986, -1, -1, -1, -1, 258, 3378 -1, -1, -1, 262, -1, -1, 1273, -1, -1, -1, 3379 -1, -1, -1, 629, 1281, 1282, 1283, -1, 634, 278, 3380 -1, -1, -1, -1, -1, 1292, 1293, 643, 644, 645, 3381 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1306, 3382 -1, -1, -1, -1, -1, -1, 662, 1039, 1040, -1, 3383 1042, 1043, -1, -1, -1, -1, -1, -1, -1, -1, 3384 -1, -1, 1329, -1, -1, -1, -1, -1, -1, 328, 3385 1062, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3386 -1, 697, 699, -1, -1, -1, -1, -1, -1, -1, 3387 349, -1, -1, -1, -1, 354, 355, 44, -1, -1, 3388 -1, -1, 718, 362, 721, 1097, 1098, -1, -1, -1, 3389 -1, -1, -1, -1, -1, -1, -1, 734, -1, -1, 3390 736, -1, 738, 10, 11, 12, 13, 14, 15, 16, 3391 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3392 27, -1, -1, 90, -1, -1, 405, -1, -1, -1, 3393 1417, -1, 39, 100, -1, -1, -1, 773, -1, -1, 3394 -1, -1, -1, 780, 423, -1, -1, -1, -1, 428, 3395 1162, 430, -1, -1, -1, -1, -1, -1, -1, -1, 3396 67, -1, -1, -1, -1, -1, -1, -1, 447, -1, 3397 -1, 450, 451, -1, -1, 812, -1, -1, -1, 1466, 3398 -1, -1, -1, -1, -1, -1, 1473, 466, -1, 156, 3399 827, -1, 828, 1205, -1, -1, 832, -1, -1, 835, 3400 -1, 480, -1, 170, -1, -1, -1, -1, 487, -1, 3401 -1, -1, -1, -1, -1, 1227, -1, -1, -1, -1, 3402 -1, -1, -1, -1, -1, -1, 193, -1, -1, 1241, 3403 -1, 1243, -1, -1, -1, -1, -1, -1, -1, 1526, 3404 207, -1, -1, -1, -1, -1, -1, -1, -1, 216, 3405 -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, 3406 -1, 1273, -1, -1, -1, -1, -1, -1, -1, 1281, 3407 1282, 1283, -1, -1, -1, -1, -1, -1, -1, -1, 3408 1292, 1293, -1, -1, 251, -1, -1, -1, -1, 256, 3409 -1, -1, 928, -1, 1306, -1, -1, -1, -1, -1, 3410 -1, -1, 269, -1, -1, -1, -1, -1, 275, -1, 3411 277, 947, -1, -1, -1, -1, -1, 1329, -1, -1, 3412 -1, -1, -1, -1, 603, -1, -1, -1, 295, -1, 3413 -1, -1, -1, -1, 970, -1, -1, -1, -1, -1, 3414 -1, 978, -1, -1, -1, -1, -1, -1, -1, -1, 3415 986, -1, 631, -1, -1, -1, -1, 636, -1, -1, 3416 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3417 -1, 338, 1009, -1, -1, -1, 343, -1, -1, -1, 3418 -1, -1, -1, -1, 1021, 1021, -1, -1, -1, -1, 3419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3420 -1, -1, -1, -1, 371, 1417, 1042, 1043, 375, 376, 3421 -1, 378, -1, -1, -1, -1, -1, -1, 385, 386, 3422 -1, 388, 389, -1, 391, 1062, 393, -1, -1, -1, 3423 -1, -1, 7, -1, -1, 10, 11, 12, 13, 14, 3424 -1, -1, -1, 410, -1, 724, -1, -1, -1, -1, 3425 -1, 418, -1, -1, 1466, -1, -1, -1, -1, 738, 3426 -1, 1473, 37, 38, 39, 40, 1102, -1, -1, -1, 3427 -1, -1, -1, -1, -1, -1, 443, -1, -1, 758, 3428 -1, -1, -1, -1, -1, -1, -1, 454, -1, -1, 3429 -1, 66, 67, -1, -1, -1, -1, 72, 1135, -1, 3430 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3431 477, 86, 87, -1, 1526, -1, 483, -1, -1, 94, 3432 -1, 488, -1, -1, -1, -1, 1162, -1, -1, -1, 3143 3433 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3144 67, -1, 680, -1, 119, 72, -1, 74, 75, 76, 3145 -1, -1, -1, 691, -1, -1, 83, 84, 696, 697, 3146 -1, -1, 700, 1338, -1, -1, -1, -1, -1, 1327, 3147 -1, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3148 -1, -1, 109, -1, -1, -1, 1299, -1, -1, -1, 3149 -1, -1, 119, 417, -1, 733, -1, -1, 736, -1, 3150 -1, 39, -1, 603, -1, -1, -1, 745, 432, -1, 3151 748, -1, -1, 437, -1, -1, -1, -1, 725, -1, 3152 727, 445, -1, -1, -1, -1, -1, 734, 735, 67, 3153 -1, 631, 739, -1, 772, 773, 636, -1, -1, -1, 3154 778, -1, -1, -1, 751, -1, -1, 471, -1, 756, 3155 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 3156 -1, -1, -1, -1, -1, 489, 1441, 491, -1, -1, 3157 -1, 109, -1, 111, -1, 782, -1, 815, -1, -1, 3158 -1, 119, -1, -1, 131, 924, -1, 825, -1, -1, 3159 828, -1, 830, -1, -1, 833, 834, 835, 1473, -1, 3160 1475, -1, 840, -1, -1, -1, -1, -1, -1, 533, 3161 926, -1, 850, -1, -1, -1, -1, -1, -1, -1, 3162 827, -1, -1, -1, 724, -1, -1, -1, -1, -1, 3163 -1, -1, -1, -1, -1, 1510, -1, 1512, 738, -1, 3164 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3165 20, 21, 22, 23, 24, 25, 26, 27, 758, -1, 3166 30, 31, 32, -1, 902, 1540, -1, -1, -1, 39, 3167 -1, -1, -1, -1, 598, -1, -1, 884, 885, 886, 3168 887, -1, 889, -1, -1, -1, 924, -1, 10, 11, 3169 12, 13, 14, -1, -1, -1, 0, 67, 905, -1, 3170 -1, -1, 72, -1, 74, 75, 76, -1, -1, -1, 3171 -1, -1, 919, 83, 84, -1, -1, 39, -1, 643, 3172 644, 645, 960, -1, -1, -1, -1, -1, 32, -1, 3173 968, 969, 832, -1, -1, -1, -1, -1, 662, 109, 3174 -1, 111, 582, 583, -1, 67, -1, -1, 986, 119, 3175 72, 958, -1, -1, 76, -1, 680, 1073, -1, -1, 3176 -1, 83, 84, 67, -1, -1, -1, 691, -1, -1, 3177 -1, -1, 612, 697, -1, 615, 616, -1, 618, -1, 3178 620, 621, -1, 1021, -1, 625, 626, 109, -1, -1, 3179 -1, 998, -1, -1, -1, -1, 1034, 119, 1005, -1, 3180 -1, 1039, 1040, 1010, 1042, 1043, -1, -1, 1015, 733, 3181 1017, -1, 736, -1, 1021, 1022, 1023, -1, -1, 1026, 3182 -1, -1, -1, -1, 1062, -1, -1, -1, 1035, -1, 3183 -1, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3184 -1, -1, -1, -1, -1, -1, 1053, 1054, -1, 773, 3185 -1, 155, -1, -1, -1, 0, -1, -1, -1, 1097, 3186 1098, 39, -1, -1, 704, 1103, -1, -1, -1, 709, 3187 710, -1, -1, 1080, -1, 715, 1083, -1, -1, -1, 3188 -1, -1, 1221, -1, -1, -1, -1, 32, -1, 67, 3189 -1, 815, -1, -1, 72, -1, -1, -1, 76, -1, 3190 -1, 825, -1, -1, 828, 83, 84, -1, -1, 833, 3191 -1, 835, -1, -1, 1121, -1, 840, -1, -1, -1, 3192 1127, 1128, 67, 1161, 1024, -1, -1, -1, -1, -1, 3193 -1, 109, 1139, -1, -1, -1, -1, 1144, -1, -1, 3194 1147, 119, 1149, -1, -1, 1152, 250, -1, -1, -1, 3195 -1, 255, 188, -1, -1, -1, -1, -1, 1165, 195, 3196 -1, -1, -1, -1, -1, -1, 1204, -1, -1, -1, 3197 -1, 1178, 0, 1180, 1181, 1182, 1183, -1, 902, -1, 3198 -1, -1, -1, 1221, -1, -1, -1, -1, 1226, 1196, 3199 -1, 1198, -1, -1, -1, 1202, -1, 1313, -1, -1, 3200 -1, 1239, -1, 1241, 32, 0, 1, 1245, -1, -1, 3201 155, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3202 -1, -1, -1, -1, 1231, 1232, -1, -1, -1, -1, 3203 -1, 267, -1, 1271, -1, -1, -1, 32, -1, 67, 3204 -1, 1279, 1280, 1281, -1, -1, 350, -1, -1, -1, 3205 -1, -1, 1290, 1291, -1, -1, -1, -1, 1397, -1, 3206 -1, -1, 986, -1, -1, -1, 1304, -1, -1, 64, 3207 -1, -1, 67, -1, -1, 1282, 1283, -1, -1, -1, 3208 -1, -1, -1, -1, -1, 1292, -1, 323, -1, 1327, 3209 -1, -1, -1, -1, -1, 331, -1, -1, 334, -1, 3210 1338, -1, -1, 1203, -1, 250, -1, -1, -1, -1, 3211 255, -1, -1, 417, -1, 1039, 1040, -1, 1042, 1043, 3212 -1, -1, -1, -1, -1, -1, -1, 155, 432, -1, 3213 -1, -1, -1, 437, -1, -1, -1, 1344, 1062, -1, 3214 -1, 445, -1, -1, -1, -1, -1, -1, -1, 1356, 3215 -1, 1358, 1359, 1360, -1, -1, 1472, -1, 1474, -1, 3216 155, 397, -1, 1370, -1, 401, -1, 471, -1, -1, 3217 -1, -1, 1379, 1097, 1098, -1, -1, 1415, -1, -1, 3218 -1, -1, -1, -1, -1, 489, -1, 491, 1395, -1, 3219 -1, -1, -1, 1509, -1, 1511, -1, -1, -1, 1299, 3220 -1, -1, -1, 1441, -1, 350, -1, -1, -1, -1, 3434 819, -1, 1179, 118, 119, 120, 121, 122, 123, -1, 3435 -1, -1, -1, 832, -1, -1, 1193, 1194, 525, -1, 3436 -1, -1, -1, -1, -1, -1, -1, -1, 1204, -1, 3437 -1, -1, 851, -1, 541, -1, -1, -1, -1, -1, 3438 -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3439 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3440 22, 23, 24, 25, 26, 27, -1, 1243, 30, 31, 3441 32, 578, -1, -1, -1, -1, -1, 39, -1, -1, 3442 587, -1, -1, -1, -1, -1, -1, 594, -1, -1, 3443 -1, -1, 599, -1, -1, -1, -1, -1, -1, -1, 3444 -1, -1, -1, 610, -1, 67, -1, 69, -1, 71, 3445 72, -1, 74, 75, 76, -1, 1292, 1293, -1, 938, 3446 -1, 83, 84, -1, -1, 1301, -1, -1, -1, -1, 3221 3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3222 -1, -1, 250, -1, -1, 220, 1464, 255, -1, 533, 3223 -1, -1, -1, 1471, -1, -1, -1, 1161, 1554, -1, 3224 1556, -1, -1, -1, 1451, 1452, -1, -1, -1, -1, 3225 486, -1, -1, 1569, 1570, 250, -1, 1464, -1, 1099, 3226 -1, -1, -1, -1, 1471, -1, -1, -1, -1, -1, 3227 -1, -1, 417, -1, -1, -1, -1, -1, -1, -1, 3228 1204, -1, -1, -1, -1, -1, 1524, 432, -1, -1, 3229 -1, -1, 437, 1531, 598, -1, -1, 1504, -1, -1, 3230 445, 1508, 1226, -1, -1, -1, -1, -1, -1, -1, 3231 -1, -1, -1, -1, -1, 1239, -1, 1241, -1, -1, 3232 -1, -1, 350, -1, -1, -1, 471, -1, -1, -1, 3233 1537, -1, 1539, -1, -1, -1, -1, -1, -1, 643, 3234 644, 645, 578, 579, 489, -1, 491, 1271, -1, -1, 3235 -1, -1, -1, -1, -1, 1279, 1280, 1281, 662, -1, 3236 1567, 1568, -1, -1, -1, -1, 1290, 1291, 1575, 1576, 3237 -1, -1, -1, -1, -1, -1, 680, -1, -1, -1, 3238 1304, -1, -1, 1223, -1, -1, -1, 691, 533, 417, 3239 -1, -1, -1, 697, -1, -1, -1, -1, -1, -1, 3240 -1, -1, -1, 1327, 432, -1, -1, -1, -1, 437, 3241 -1, -1, -1, -1, -1, -1, -1, 445, -1, -1, 3242 -1, -1, -1, -1, -1, -1, -1, -1, -1, 733, 3243 -1, 667, 736, -1, -1, 671, -1, 432, -1, -1, 3244 -1, -1, -1, 471, -1, -1, -1, -1, -1, -1, 3245 -1, -1, -1, 598, -1, -1, -1, -1, -1, -1, 3246 -1, 489, -1, 491, -1, -1, -1, -1, 704, 773, 3247 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3248 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3249 27, 1415, -1, -1, -1, -1, 491, -1, 643, 644, 3250 645, -1, 39, -1, -1, 533, -1, -1, -1, -1, 3251 -1, 815, -1, -1, -1, -1, -1, 662, -1, -1, 3252 -1, 825, -1, -1, 828, -1, -1, -1, -1, 833, 3253 67, 835, -1, -1, -1, 680, 840, -1, 533, -1, 3254 1464, -1, -1, -1, -1, -1, 691, 1471, -1, -1, 3255 -1, -1, 697, -1, -1, -1, -1, -1, -1, -1, 3448 -1, -1, -1, -1, 651, 964, -1, 109, -1, 111, 3449 -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, 3256 3450 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3257 598, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3258 -1, -1, -1, 819, -1, -1, -1, -1, 733, -1, 3259 -1, 736, -1, -1, -1, 26, 27, 28, 902, -1, 3260 1524, -1, -1, 598, -1, -1, -1, -1, -1, -1, 3261 -1, -1, -1, -1, -1, 643, 644, 645, -1, -1, 3262 -1, -1, -1, -1, -1, -1, -1, -1, 773, -1, 3263 -1, -1, -1, -1, 662, -1, -1, -1, -1, -1, 3264 -1, -1, -1, -1, -1, -1, -1, -1, 643, 644, 3265 645, -1, 680, -1, -1, -1, -1, -1, -1, -1, 3266 -1, -1, -1, 691, -1, -1, 97, 662, 99, 697, 3267 815, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3268 825, -1, 986, 828, -1, -1, -1, -1, 833, -1, 3269 835, -1, -1, -1, -1, 840, 932, -1, -1, -1, 3270 -1, -1, -1, -1, -1, 733, -1, -1, 736, 4, 3271 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3451 -1, -1, -1, 992, -1, -1, -1, -1, -1, -1, 3452 687, -1, -1, -1, -1, -1, 10, 11, 12, 13, 3453 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3454 24, 25, 26, 27, 28, 1024, 30, 31, 32, -1, 3455 -1, -1, -1, -1, -1, 39, 1035, -1, -1, -1, 3456 -1, -1, -1, -1, -1, -1, -1, 1404, -1, -1, 3457 -1, -1, -1, -1, -1, 742, -1, -1, -1, -1, 3458 -1, 1417, -1, 67, 1421, 752, 753, -1, -1, -1, 3459 74, 75, -1, -1, 78, -1, -1, -1, -1, 766, 3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3461 -1, -1, -1, -1, -1, -1, 783, -1, 785, -1, 3462 -1, -1, 789, -1, -1, 109, -1, 111, -1, -1, 3463 -1, -1, -1, -1, -1, 119, -1, -1, 1117, 1475, 3464 -1, 1477, -1, -1, -1, -1, -1, -1, -1, -1, 3465 -1, -1, -1, -1, -1, -1, -1, 1494, 1495, -1, 3466 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3467 37, 38, -1, 40, -1, -1, 1512, -1, 1514, -1, 3468 -1, -1, -1, -1, -1, -1, -1, -1, 855, -1, 3469 -1, -1, -1, -1, -1, 862, -1, -1, -1, 66, 3470 -1, -1, -1, -1, -1, 72, 1542, -1, 875, 76, 3471 877, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3472 87, -1, -1, -1, 891, 1204, -1, 94, -1, -1, 3473 -1, 898, -1, -1, -1, -1, -1, -1, -1, -1, 3474 -1, -1, 109, 910, 111, -1, 913, -1, -1, 116, 3475 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3476 -1, -1, -1, -1, 931, -1, -1, -1, -1, -1, 3477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3478 -1, -1, -1, -1, 154, 155, -1, -1, -1, -1, 3479 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, 3482 -1, -1, 1301, -1, -1, 195, -1, 3, 4, 5, 3483 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3484 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3485 26, 27, -1, 1020, 30, 31, 32, 33, -1, -1, 3486 36, -1, -1, 39, 40, 10, 11, 12, 13, 14, 3272 3487 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3273 25, 26, 27, -1, -1, 1039, 1040, -1, 1042, 1043, 3274 -1, 736, -1, -1, 39, 773, -1, -1, -1, 180, 3275 -1, -1, -1, -1, -1, -1, -1, 902, 1062, 190, 3276 191, -1, -1, -1, 195, -1, 197, 198, -1, -1, 3277 -1, -1, 67, -1, 69, 1011, 71, 72, -1, 74, 3278 75, 76, -1, -1, -1, -1, -1, 815, 83, 84, 3279 -1, 1027, -1, 1097, 1098, -1, -1, 825, -1, -1, 3280 828, -1, -1, -1, -1, 833, -1, 835, -1, -1, 3281 -1, -1, 840, -1, 10, 11, 12, 13, 14, 15, 3282 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3283 26, 27, 28, 828, 30, 31, 32, -1, -1, -1, 3284 835, 986, -1, 39, -1, -1, -1, -1, -1, -1, 3285 -1, -1, -1, -1, -1, -1, -1, 1161, -1, -1, 3286 -1, -1, -1, -1, -1, -1, -1, -1, 1104, -1, 3287 -1, 67, -1, -1, 902, -1, 72, -1, 74, 75, 3288 76, -1, 78, -1, -1, -1, -1, 83, 84, -1, 3289 -1, -1, -1, -1, 1039, 1040, -1, 1042, 1043, -1, 3290 1204, -1, -1, -1, -1, -1, -1, 902, -1, -1, 3291 -1, -1, -1, 109, -1, 111, -1, 1062, -1, -1, 3292 -1, -1, 1226, 119, -1, 45, -1, -1, -1, -1, 3293 -1, -1, -1, -1, -1, 1239, -1, 1241, -1, -1, 3294 -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, 3295 -1, -1, 1097, 1098, -1, -1, -1, -1, 986, -1, 3296 37, 38, -1, 40, -1, -1, -1, 1271, -1, -1, 3297 -1, -1, -1, -1, 969, 1279, 1280, 1281, -1, -1, 3298 -1, -1, -1, -1, -1, -1, 1290, 1291, -1, 66, 3299 110, 986, -1, -1, -1, 72, 116, -1, -1, 76, 3300 1304, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3301 87, 1039, 1040, -1, 1042, 1043, 1161, 94, -1, -1, 3302 -1, -1, -1, 1327, -1, 145, -1, -1, -1, -1, 3303 -1, -1, 109, -1, 1062, 155, -1, -1, -1, 159, 3304 -1, 118, 119, 120, 121, 122, 123, 1042, 1043, -1, 3305 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1204, 3306 -1, -1, -1, -1, -1, -1, -1, 1062, -1, 1097, 3307 1098, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3308 -1, 1226, -1, -1, -1, -1, -1, -1, 208, -1, 3309 -1, -1, -1, -1, 1239, -1, 1241, -1, -1, -1, 3310 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3311 -1, 1415, -1, -1, -1, -1, -1, -1, 238, 239, 3312 -1, -1, -1, -1, -1, -1, 1271, -1, -1, -1, 3313 -1, -1, -1, 1161, 1279, 1280, 1281, -1, -1, -1, 3314 -1, -1, 262, -1, -1, 1290, 1291, -1, -1, -1, 3315 270, 582, 583, -1, -1, -1, -1, -1, -1, 1304, 3316 1464, -1, -1, -1, -1, -1, -1, 1471, -1, -1, 3317 -1, -1, -1, -1, 294, -1, 1204, 297, -1, -1, 3318 -1, 612, 1327, -1, 615, 616, -1, 618, -1, 620, 3319 621, -1, -1, -1, 625, 626, -1, -1, 1226, -1, 3320 -1, -1, -1, -1, -1, -1, -1, -1, 1203, 1204, 3321 -1, 1239, -1, 1241, -1, -1, -1, -1, -1, -1, 3322 1524, -1, -1, -1, 344, -1, -1, -1, -1, 349, 3323 -1, 1226, -1, -1, -1, -1, -1, -1, -1, -1, 3324 -1, -1, -1, 1271, -1, -1, 64, -1, -1, -1, 3325 1245, 1279, 1280, 1281, -1, -1, 74, -1, 76, -1, 3326 78, -1, 1290, 1291, -1, -1, -1, 85, -1, -1, 3327 1415, -1, -1, -1, -1, -1, 1304, -1, 709, 710, 3328 -1, -1, -1, -1, 715, -1, -1, -1, -1, -1, 3329 -1, -1, -1, -1, -1, 1290, 1291, -1, 116, 1327, 3330 118, 119, 120, -1, 1299, 425, 426, -1, -1, 1304, 3331 -1, -1, 432, -1, -1, -1, -1, -1, -1, 1464, 3332 -1, -1, -1, -1, -1, -1, 1471, -1, -1, -1, 3333 -1, -1, -1, 453, -1, -1, 456, -1, -1, -1, 3334 -1, 159, 462, 1338, 3, 4, 5, 6, 7, 8, 3488 25, 26, 27, -1, -1, 30, 31, 32, 64, -1, 3489 -1, 67, -1, 69, 39, 71, 72, 267, 74, 75, 3490 76, -1, -1, -1, -1, -1, -1, 83, 84, 1076, 3491 -1, -1, -1, -1, -1, -1, 1083, -1, -1, -1, 3492 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3493 75, -1, -1, 109, -1, 111, -1, -1, -1, 115, 3494 -1, -1, -1, 119, -1, 145, 1113, -1, -1, -1, 3495 -1, 1118, -1, 323, -1, 155, -1, -1, -1, 1126, 3496 -1, 331, 332, -1, 334, 335, -1, 167, 168, -1, 3497 -1, -1, -1, -1, 344, -1, -1, -1, 348, -1, 3498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3499 1157, -1, -1, -1, -1, -1, -1, 367, -1, -1, 3500 370, -1, 1169, -1, -1, 1172, -1, 1174, -1, -1, 3501 37, 38, -1, 40, -1, -1, -1, -1, -1, -1, 3502 -1, 1188, 1189, -1, -1, -1, -1, 397, -1, -1, 3503 -1, 401, -1, -1, -1, -1, -1, -1, 238, 66, 3504 -1, -1, -1, 1210, -1, 72, -1, -1, -1, 76, 3505 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3506 87, -1, 432, 263, -1, -1, -1, 94, -1, -1, 3507 1237, -1, -1, -1, -1, -1, -1, -1, 1557, -1, 3508 -1, -1, 109, -1, 111, 455, -1, 114, -1, -1, 3509 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3511 -1, -1, -1, -1, -1, -1, 486, -1, -1, 489, 3512 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3335 3513 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3336 19, 20, 21, 22, 23, 24, 25, 26, 27, 489, 3337 -1, 30, 31, 32, -1, -1, -1, -1, -1, 1524, 3338 39, 501, -1, -1, -1, -1, -1, 1415, -1, -1, 3339 -1, -1, 44, 513, -1, 515, -1, -1, 518, -1, 3340 520, 521, 220, -1, 222, 223, 224, -1, 67, -1, 3341 69, -1, 71, 533, -1, 74, 75, -1, -1, -1, 3342 1415, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3343 -1, -1, -1, -1, -1, -1, 1464, -1, 90, -1, 3344 258, -1, -1, 1471, 262, -1, 1441, -1, 100, -1, 3345 -1, -1, -1, -1, -1, 114, -1, -1, -1, -1, 3346 278, -1, -1, -1, -1, -1, 586, -1, -1, 1464, 3347 -1, -1, -1, -1, -1, -1, 1471, -1, 598, -1, 3348 600, -1, -1, 603, -1, -1, -1, -1, -1, -1, 3349 -1, -1, -1, -1, -1, -1, 1524, -1, -1, -1, 3350 -1, -1, -1, -1, 156, -1, -1, -1, -1, 629, 3351 328, -1, -1, -1, 634, -1, -1, -1, 170, -1, 3352 -1, -1, -1, 643, 644, 645, -1, -1, -1, 1524, 3353 -1, 349, -1, -1, -1, -1, 354, 355, -1, -1, 3354 -1, 193, 662, -1, 362, -1, -1, -1, -1, -1, 3355 -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, 3356 -1, -1, 7, -1, 216, 10, 11, 12, 13, 14, 3357 -1, -1, -1, -1, 226, -1, -1, 697, -1, -1, 3358 -1, -1, -1, -1, -1, -1, -1, 405, -1, -1, 3359 -1, -1, 37, 38, 39, 40, -1, -1, 718, 251, 3360 -1, -1, -1, -1, 256, 423, -1, -1, -1, -1, 3361 428, -1, 430, -1, -1, -1, 736, 269, 738, -1, 3362 -1, 66, 67, 275, -1, 277, -1, 72, -1, 447, 3363 -1, 76, 450, 451, 79, 80, 81, 82, 83, 84, 3364 -1, 86, 87, 295, -1, -1, -1, -1, 466, 94, 3365 -1, -1, -1, 773, -1, -1, -1, -1, -1, -1, 3366 -1, -1, 480, -1, 109, -1, 111, -1, 1099, 487, 3367 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3368 -1, -1, -1, -1, -1, -1, 338, -1, -1, -1, 3369 -1, 343, -1, -1, -1, -1, -1, -1, -1, -1, 3370 -1, -1, -1, -1, -1, -1, -1, -1, 828, -1, 3371 -1, -1, 832, -1, -1, 835, -1, -1, -1, 371, 3372 -1, -1, -1, 375, 376, -1, 378, -1, -1, -1, 3373 -1, -1, -1, 385, 386, -1, 388, 389, -1, 391, 3374 -1, 393, -1, -1, -1, -1, -1, 7, -1, -1, 3375 10, 11, 12, 13, 14, -1, -1, -1, 410, -1, 3376 -1, -1, -1, -1, -1, -1, 418, -1, -1, -1, 3377 -1, -1, -1, -1, -1, -1, -1, 37, 38, 39, 3378 40, -1, -1, -1, -1, 603, -1, -1, -1, -1, 3379 -1, 443, 1223, -1, -1, -1, -1, -1, -1, -1, 3380 -1, -1, 454, -1, -1, -1, 66, 67, 928, -1, 3381 -1, -1, 72, 631, -1, -1, 76, -1, 636, 79, 3382 80, 81, 82, 83, 84, 477, 86, 87, -1, -1, 3383 -1, 483, -1, -1, 94, -1, 488, -1, -1, -1, 3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3385 970, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3386 120, 121, 122, 123, -1, -1, 986, -1, -1, -1, 3387 -1, -1, -1, 525, -1, -1, -1, -1, -1, -1, 3388 -1, -1, -1, -1, -1, -1, -1, -1, -1, 541, 3389 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3390 -1, 1021, -1, -1, -1, -1, 724, -1, -1, -1, 3391 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3392 738, -1, 1042, 1043, -1, -1, 578, -1, -1, -1, 3393 -1, -1, -1, -1, -1, 587, -1, -1, -1, -1, 3394 758, -1, 594, -1, -1, 37, 38, 599, 40, -1, 3395 -1, -1, -1, -1, -1, -1, -1, -1, 610, -1, 3396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3397 -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 3398 72, -1, 1102, -1, 76, -1, -1, 79, 80, 81, 3399 82, 83, 84, -1, 86, 87, -1, -1, -1, 651, 3400 -1, 819, 94, -1, -1, -1, -1, -1, -1, -1, 3401 -1, -1, -1, -1, 832, -1, -1, 109, -1, 111, 3402 -1, -1, 114, -1, -1, -1, 118, 119, 120, 121, 3403 122, 123, -1, 851, -1, 687, -1, -1, -1, -1, 3404 -1, 1161, -1, -1, 3, 4, 5, 6, 7, 8, 3514 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3515 -1, 30, 31, 32, 33, -1, -1, 36, -1, 529, 3516 39, -1, 532, 533, -1, -1, -1, -1, 1335, -1, 3517 1337, -1, -1, -1, -1, -1, -1, -1, -1, 379, 3518 -1, -1, -1, 1350, -1, 1352, -1, -1, 67, -1, 3519 69, -1, 71, -1, -1, 74, 75, -1, -1, 78, 3520 -1, -1, -1, 1370, -1, -1, -1, -1, 578, 579, 3521 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1386, 3522 1387, -1, -1, -1, -1, -1, -1, 597, 598, -1, 3523 600, 1398, 111, -1, 1401, -1, -1, -1, -1, 609, 3524 119, 611, 612, -1, -1, -1, -1, -1, 618, -1, 3525 -1, -1, -1, -1, -1, -1, 1423, -1, 628, 629, 3526 -1, -1, -1, -1, 634, 1432, -1, -1, 1435, -1, 3527 1437, 1438, 1439, 643, 644, 645, -1, -1, -1, -1, 3528 -1, 481, -1, -1, -1, -1, -1, -1, -1, -1, 3529 -1, -1, 662, -1, -1, -1, -1, 667, 668, -1, 3530 -1, 671, 672, -1, -1, -1, -1, -1, 678, -1, 3531 -1, -1, 1479, -1, 1481, -1, -1, 1484, -1, -1, 3532 520, -1, -1, -1, -1, -1, 696, 697, 698, -1, 3533 700, -1, 1499, 533, 704, -1, -1, -1, -1, -1, 3534 540, -1, -1, 543, -1, -1, -1, -1, -1, -1, 3535 -1, -1, -1, -1, 554, 555, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, 736, 737, -1, -1, 3537 -1, -1, -1, -1, -1, -1, 576, -1, -1, -1, 3538 -1, -1, -1, -1, -1, -1, 586, -1, -1, -1, 3539 -1, -1, -1, 593, -1, -1, -1, -1, 598, -1, 3540 -1, -1, 772, 773, -1, -1, -1, 777, 778, -1, 3541 -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 3405 3542 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3406 3543 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3407 -1, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3408 39, 40, -1, 1203, -1, -1, -1, -1, -1, -1, 3409 742, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3410 752, 753, -1, -1, -1, 64, -1, -1, 67, -1, 3411 69, -1, 71, 72, 766, 74, 75, 76, -1, -1, 3412 938, 1241, 154, 155, 83, 84, -1, -1, -1, -1, 3413 -1, 783, -1, 785, -1, -1, -1, 789, -1, -1, 3414 -1, -1, -1, -1, -1, -1, 964, -1, -1, -1, 3415 109, -1, 111, -1, -1, -1, 188, -1, -1, -1, 3416 119, -1, -1, 195, -1, -1, -1, -1, -1, -1, 3417 1290, 1291, -1, -1, 992, -1, -1, -1, -1, 1299, 3418 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3419 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3420 30, 31, 32, 855, -1, -1, 1024, -1, -1, 39, 3421 862, -1, -1, -1, -1, -1, -1, 1035, -1, -1, 3422 -1, -1, -1, 875, -1, 877, -1, -1, -1, -1, 3423 -1, -1, -1, -1, -1, 267, -1, 67, -1, 891, 3424 -1, -1, 72, -1, 74, 75, 898, -1, -1, -1, 3425 -1, -1, -1, 83, 84, -1, -1, -1, 910, -1, 3426 -1, 913, -1, -1, -1, -1, -1, -1, -1, -1, 3427 -1, -1, -1, -1, -1, -1, -1, -1, -1, 931, 3428 -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 3429 -1, 323, -1, -1, -1, 1415, -1, -1, 1116, 331, 3430 332, -1, 334, 335, -1, -1, -1, -1, -1, -1, 3431 -1, -1, 344, -1, -1, -1, 348, -1, -1, -1, 3432 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3433 -1, -1, -1, -1, -1, 367, -1, -1, 370, -1, 3434 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3435 -1, -1, -1, 1473, -1, 1475, -1, -1, -1, -1, 3436 37, 38, -1, 40, -1, 397, -1, -1, 1020, 401, 3437 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3438 -1, -1, -1, -1, -1, 1203, -1, -1, -1, 66, 3439 1510, 145, 1512, -1, -1, 72, -1, 74, 75, 76, 3440 432, 155, 79, 80, 81, 82, 83, 84, -1, 86, 3441 87, -1, -1, 167, 168, -1, -1, 94, -1, -1, 3442 1540, -1, -1, 455, 1076, -1, -1, -1, -1, -1, 3443 -1, 1083, 109, -1, 111, -1, 113, 114, -1, -1, 3444 -1, 118, 119, 120, 121, 122, 123, -1, -1, -1, 3445 -1, -1, -1, -1, 486, -1, -1, 489, -1, -1, 3446 1112, -1, -1, -1, -1, 1117, -1, -1, -1, -1, 3447 -1, -1, -1, 1125, -1, -1, -1, -1, -1, -1, 3448 -1, 1299, -1, -1, 238, -1, -1, -1, -1, -1, 3449 -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, 3450 532, 533, -1, -1, 1156, -1, -1, -1, -1, 263, 3451 -1, -1, -1, -1, -1, -1, 1168, -1, -1, 1171, 3452 -1, 1173, -1, -1, -1, -1, -1, -1, -1, -1, 3453 -1, -1, -1, -1, -1, 1187, 1188, -1, -1, -1, 3454 -1, -1, -1, -1, -1, -1, 578, 579, -1, -1, 3455 -1, -1, -1, -1, -1, -1, -1, 1209, -1, -1, 3456 -1, -1, -1, -1, -1, 597, 598, -1, 600, -1, 3457 -1, -1, -1, -1, -1, -1, -1, 609, -1, 611, 3458 612, -1, -1, -1, 1236, -1, 618, -1, -1, 281, 3459 -1, 283, 284, -1, -1, -1, 628, 629, -1, 291, 3460 292, -1, 634, -1, 296, 297, -1, -1, -1, -1, 3461 -1, 643, 644, 645, -1, -1, 308, -1, -1, -1, 3462 -1, -1, -1, -1, -1, 379, -1, -1, -1, -1, 3463 662, -1, -1, -1, -1, 667, 668, -1, -1, 671, 3464 672, -1, -1, -1, -1, -1, 678, -1, -1, -1, 3465 -1, -1, 344, -1, -1, -1, -1, -1, -1, -1, 3466 -1, -1, -1, -1, 696, 697, 698, -1, 700, -1, 3467 -1, -1, 704, -1, -1, -1, -1, -1, -1, 37, 3468 38, 1333, 40, 1335, -1, -1, -1, -1, 380, -1, 3469 -1, -1, -1, -1, -1, -1, 1348, -1, 1350, -1, 3470 -1, -1, -1, -1, 736, 737, -1, -1, 66, -1, 3471 -1, -1, -1, -1, 72, -1, 1368, -1, 76, -1, 3472 -1, 79, 80, 81, 82, 83, 84, 481, 86, 87, 3473 -1, -1, 1384, 1385, -1, -1, 94, 1555, -1, -1, 3474 772, 773, -1, -1, 1396, 777, 778, 1399, -1, -1, 3475 -1, 109, -1, 111, -1, -1, -1, -1, -1, 117, 3476 118, 119, 120, 121, 122, 123, 520, -1, -1, 1421, 3477 -1, -1, -1, -1, -1, -1, -1, -1, 1430, 533, 3478 -1, 1433, -1, 1435, 1436, 1437, 540, 819, -1, 543, 3479 -1, -1, -1, -1, -1, -1, 828, -1, -1, -1, 3480 554, 555, 834, 835, -1, -1, -1, 839, -1, 841, 3481 -1, -1, -1, -1, -1, -1, -1, -1, -1, 851, 3482 -1, -1, 576, -1, -1, 1477, -1, 1479, -1, -1, 3483 1482, -1, 586, -1, -1, -1, -1, -1, -1, 593, 3484 -1, -1, -1, -1, 598, 1497, -1, -1, -1, -1, 3485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3486 -1, -1, -1, -1, -1, 557, 558, 559, 560, 561, 3487 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 3488 572, 573, 574, -1, -1, -1, -1, -1, -1, -1, 3489 -1, -1, 924, -1, 648, -1, -1, -1, -1, -1, 3490 932, -1, -1, 657, -1, -1, 938, -1, 600, -1, 3491 -1, -1, -1, -1, 946, -1, -1, -1, -1, -1, 3492 -1, -1, -1, -1, -1, -1, -1, 959, 960, -1, 3493 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3494 -1, -1, -1, 697, -1, -1, -1, -1, -1, -1, 3495 -1, -1, -1, -1, 986, -1, -1, -1, -1, -1, 3496 992, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3497 19, 20, 21, 22, 23, 24, 25, 26, 27, 1011, 3498 1012, 30, 31, 32, -1, -1, -1, -1, -1, 1021, 3499 39, 40, -1, -1, -1, 1027, 1028, -1, 1030, 1031, 3500 1032, -1, -1, -1, -1, -1, -1, 699, -1, -1, 3501 1042, 1043, -1, -1, -1, -1, -1, -1, 67, 773, 3502 -1, 775, -1, -1, -1, 74, 75, 781, -1, 721, 3503 -1, -1, -1, -1, 788, -1, -1, -1, -1, -1, 3504 -1, -1, 734, -1, -1, -1, -1, -1, -1, -1, 3505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3506 -1, -1, 111, -1, -1, -1, 115, -1, -1, -1, 3507 119, 1103, 1104, 1105, -1, -1, -1, -1, 832, 833, 3508 -1, 835, -1, -1, 1116, -1, -1, -1, 780, -1, 3509 -1, -1, -1, -1, -1, -1, 850, -1, -1, -1, 3544 -1, 30, 31, 32, 33, -1, -1, 36, 648, 819, 3545 39, 40, -1, -1, -1, -1, -1, 657, 828, -1, 3546 -1, -1, -1, -1, 834, 835, -1, -1, -1, 839, 3547 -1, 841, -1, -1, -1, 64, -1, -1, 67, -1, 3548 69, 851, 71, 72, -1, 74, 75, 76, -1, -1, 3549 -1, -1, -1, -1, 83, 84, -1, 697, -1, -1, 3510 3550 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3511 3551 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3512 812, -1, -1, -1, -1, -1, -1, -1, -1, 1161, 3513 -1, -1, -1, -1, -1, 827, 890, -1, -1, -1, 3514 894, -1, -1, 0, -1, -1, 3, 4, 5, 6, 3515 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3516 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3517 27, -1, -1, 30, 31, 32, 33, -1, -1, 36, 3518 -1, -1, 39, 40, -1, -1, -1, -1, -1, 1221, 3552 109, -1, 111, -1, -1, -1, -1, -1, -1, -1, 3553 119, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3554 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3555 25, 26, 27, 28, 924, 30, 31, 32, -1, -1, 3556 -1, -1, 932, -1, 39, -1, -1, -1, 938, -1, 3557 -1, -1, -1, 773, -1, 775, 946, -1, -1, -1, 3558 -1, 781, -1, -1, -1, -1, -1, -1, 788, 959, 3559 960, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3560 75, 76, -1, 78, -1, -1, -1, -1, 83, 84, 3561 -1, -1, -1, -1, -1, -1, 986, -1, -1, -1, 3562 -1, -1, 992, -1, -1, -1, -1, -1, -1, -1, 3563 -1, -1, 832, 833, 109, 835, 111, -1, -1, -1, 3564 -1, 1011, 1012, -1, 119, -1, -1, -1, -1, -1, 3565 850, 1021, -1, -1, -1, -1, -1, 1027, 1028, -1, 3566 1030, 1031, 1032, -1, -1, -1, -1, -1, -1, -1, 3567 -1, -1, 1042, 1043, -1, -1, -1, -1, -1, -1, 3519 3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520 -1, -1, -1, -1, -1, -1, -1, 64, -1, 1241, 3521 67, -1, 69, -1, 71, 72, 970, 74, 75, 76, 3522 -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, 3523 -1, -1, 986, 987, -1, -1, -1, -1, -1, 993, 3524 -1, -1, -1, -1, -1, 999, -1, -1, 1002, -1, 3525 1004, -1, 109, -1, 111, -1, -1, -1, 1290, 1291, 3526 -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 3527 1024, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3528 -1, 1035, -1, -1, -1, -1, 978, -1, -1, -1, 3569 890, -1, -1, -1, 894, 3, 4, 5, 6, 7, 3570 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3571 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3572 -1, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3573 -1, 39, -1, 1103, 1104, 1105, -1, -1, -1, -1, 3574 -1, -1, -1, -1, -1, -1, -1, 1117, -1, -1, 3575 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3576 -1, 69, -1, 71, -1, -1, 74, 75, -1, -1, 3577 970, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3578 -1, -1, -1, -1, -1, -1, 986, 987, -1, -1, 3579 -1, -1, 1162, 993, -1, -1, -1, 37, 38, 999, 3580 40, -1, 1002, 111, 1004, -1, -1, -1, -1, -1, 3581 -1, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3582 -1, -1, -1, -1, 1024, -1, 66, -1, -1, -1, 3583 -1, -1, 72, -1, -1, 1035, 76, -1, -1, 79, 3584 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3585 -1, -1, 1222, -1, 94, 37, 38, 1057, 40, 1059, 3586 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3587 -1, 111, -1, 1243, 1074, 1075, -1, -1, 118, 119, 3588 120, 121, 122, 123, 66, -1, -1, -1, -1, -1, 3589 72, -1, -1, -1, 76, 1095, -1, 79, 80, 81, 3590 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3591 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3592 -1, -1, 1292, 1293, -1, -1, -1, 109, -1, 111, 3593 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 3594 122, 123, -1, 1143, -1, -1, -1, -1, -1, -1, 3529 3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3530 -1, -1, -1, 1057, -1, 1059, -1, -1, -1, -1, 3531 -1, -1, -1, -1, -1, -1, -1, 1009, -1, -1, 3532 1074, 1075, -1, -1, -1, -1, -1, -1, -1, 1021, 3533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3534 -1, 1095, -1, -1, 3, 4, 5, 6, 7, 8, 3535 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3536 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3537 1062, 30, 31, 32, 33, -1, -1, 36, -1, -1, 3538 39, 40, -1, 1415, -1, -1, -1, -1, 1142, -1, 3539 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540 -1, -1, -1, -1, -1, 64, -1, 1161, 67, -1, 3541 69, -1, 71, 72, -1, 74, 75, 76, -1, -1, 3542 -1, -1, 1176, 1177, 83, 84, -1, -1, -1, -1, 3543 -1, -1, 37, 38, -1, 40, -1, -1, -1, -1, 3544 -1, -1, 1134, -1, -1, -1, -1, -1, -1, -1, 3545 109, -1, 111, -1, -1, -1, 115, -1, -1, -1, 3546 119, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3547 -1, 76, -1, 1505, 79, 80, 81, 82, 83, 84, 3548 -1, 86, 87, -1, -1, -1, 1178, -1, -1, 94, 3549 -1, -1, -1, -1, -1, -1, -1, -1, 1530, 1531, 3550 1192, 1193, -1, 1257, 109, -1, 111, -1, -1, -1, 3551 -1, 116, -1, 118, 119, 120, 121, 122, 123, -1, 3552 -1, -1, -1, 1555, -1, 3, 4, 5, 6, 7, 3596 -1, -1, 1162, -1, -1, -1, -1, -1, -1, -1, 3597 -1, -1, -1, -1, -1, -1, -1, 1177, 1178, -1, 3598 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 3553 3599 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3554 3600 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3555 3601 -1, -1, 30, 31, 32, 33, -1, -1, 36, 37, 3556 38, 39, 40, 41, 1318, 43, 1320, -1, 46, 47,3602 38, 39, 40, 41, -1, 43, -1, -1, 46, 47, 3557 3603 48, 49, 50, 51, 52, 53, -1, -1, -1, 57, 3558 -1, -1, -1, 61, 62, -1, 64, -1, 66, 67,3559 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1,3604 -1, -1, -1, 61, 62, -1, 64, 1417, 66, 67, 3605 -1, 69, -1, 71, 72, -1, 74, 75, 76, 1259, 3560 3606 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3561 3607 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, … … 3563 3609 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3564 3610 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3565 128, -1, 1406, -1, 132, -1, -1, -1, -1, -1, 3566 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3567 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3568 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3569 33, -1, -1, 36, 37, 38, 39, 40, -1, -1, 3611 128, -1, -1, -1, 132, -1, -1, -1, -1, -1, 3612 1320, -1, 1322, -1, -1, -1, -1, -1, -1, -1, 3613 -1, -1, -1, -1, -1, -1, -1, 1507, 10, 11, 3614 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3615 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3616 32, -1, 1532, 1533, -1, -1, -1, 39, -1, -1, 3570 3617 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3571 1402, -1, -1, 37, 38, -1, 40, -1, -1, -1, 3572 -1, -1, -1, 66, 67, -1, 69, 1419, 71, 72, 3573 -1, 74, 75, 76, 1488, -1, 79, 80, 81, 82, 3574 83, 84, 66, 86, 87, -1, -1, -1, 72, -1, 3575 -1, 94, 76, -1, -1, 79, 80, 81, 82, 83, 3576 84, -1, 86, 87, -1, -1, 109, -1, 111, -1, 3577 94, -1, -1, -1, -1, 118, 119, 120, 121, 122, 3578 123, -1, -1, -1, -1, 109, 1540, 111, -1, 132, 3579 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3580 1492, 1493, 3, 4, 5, 6, 7, 8, 9, 10, 3581 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3582 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3583 31, 32, 33, -1, -1, 36, 37, 38, 39, 40, 3584 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3585 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3586 30, 31, 32, -1, -1, 66, 67, -1, 69, 39, 3587 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3588 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3589 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3590 -1, -1, 72, -1, 74, 75, -1, -1, 109, -1, 3591 111, -1, -1, 83, 84, -1, -1, 118, 119, 120, 3592 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3593 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3594 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3595 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3596 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3618 -1, -1, -1, -1, -1, -1, -1, 1557, -1, -1, 3619 -1, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3620 -1, -1, 74, 75, -1, -1, -1, -1, 1408, -1, 3621 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 3622 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3623 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3624 -1, -1, 30, 31, 32, 33, -1, 119, 36, 37, 3625 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3597 3626 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3598 27, 28, -1, -1, -1, 66, 67, -1, 69, -1, 3599 71, 72, 39, 74, 75, 76, -1, -1, 79, 80, 3600 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3601 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3602 67, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3603 111, 78, -1, -1, -1, 116, -1, 118, 119, 120, 3604 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3605 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3606 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3607 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3608 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3627 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3628 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3629 1490, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3630 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3631 67, -1, -1, -1, -1, 72, -1, 74, 75, -1, 3632 -1, 109, -1, 111, -1, -1, 83, 84, -1, -1, 3633 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3634 -1, -1, 1542, -1, 132, 3, 4, 5, 6, 7, 3635 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3636 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3637 -1, -1, 30, 31, 32, 33, -1, -1, 36, 37, 3638 38, 39, 40, 10, 11, 12, 13, 14, 15, 16, 3609 3639 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3610 27, 28, -1, -1, -1, 66, 67, -1, 69, -1, 3611 71, 72, 39, 74, 75, 76, -1, -1, 79, 80, 3612 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3613 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3614 67, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3615 111, 78, -1, -1, -1, 116, -1, 118, 119, 120, 3616 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3617 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3618 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3619 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3620 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3621 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3622 30, 31, 32, -1, -1, 66, 67, -1, 69, 39, 3623 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3624 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3625 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3626 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3627 111, -1, -1, -1, -1, 116, -1, 118, 119, 120, 3628 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3629 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3630 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3631 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3632 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3633 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3634 30, 31, 32, -1, -1, 66, 67, -1, 69, 39, 3635 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3636 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3637 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3638 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3639 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, 3640 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3641 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3642 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3643 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3640 27, -1, -1, 30, 31, 32, -1, -1, 66, 67, 3641 -1, 69, 39, 71, 72, -1, 74, 75, 76, -1, 3642 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3643 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3644 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, 3645 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3646 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3647 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3648 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3649 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3650 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3651 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3652 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3653 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3654 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3655 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3657 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3658 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3659 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3660 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3661 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3662 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3663 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3664 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3665 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3666 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3667 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3668 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3669 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3670 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3671 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3672 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3673 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3674 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3675 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3676 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3677 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3678 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3679 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3681 -1, 109, -1, 111, -1, -1, -1, -1, 116, -1, 3682 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3683 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3684 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3685 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3686 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3687 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3688 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3689 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3690 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3691 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3694 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3695 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3696 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3697 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3698 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3701 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3702 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3703 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3705 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3706 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3707 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3708 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3709 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3710 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3712 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3713 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3714 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3715 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3718 118, 119, 120, 121, 122, 123, 4, 5, 6, 7, 3719 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3720 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3721 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3722 38, 39, 40, -1, -1, -1, -1, -1, -1, -1, 3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3724 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3725 -1, 69, -1, 71, 72, -1, 74, 75, 76, -1, 3726 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3727 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3728 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3729 -1, 109, -1, 111, -1, -1, -1, -1, -1, -1, 3730 118, 119, 120, 121, 122, 123, 3, 4, 5, 6, 3731 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3732 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3733 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3734 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 3644 3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3645 3736 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3646 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3647 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3648 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3649 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3650 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3651 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, 3652 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3653 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3654 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3655 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3657 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3658 -1, -1, -1, -1, -1, 66, 67, -1, 69, -1, 3659 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3660 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3661 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3662 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3663 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, 3664 121, 122, 123, 4, 5, 6, 7, 8, 9, 10, 3665 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3666 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3667 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3668 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3669 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3670 30, 31, 32, -1, -1, 66, 67, -1, 69, 39, 3671 71, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3672 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3673 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3674 -1, -1, -1, -1, 74, 75, -1, -1, 109, -1, 3675 111, -1, -1, -1, -1, -1, -1, 118, 119, 120, 3676 121, 122, 123, 3, 4, 5, 6, 7, 8, 9, 3677 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3678 20, 21, 22, 23, 24, 25, 26, 27, -1, 119, 3679 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3680 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3681 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3682 -1, 30, 31, 32, 33, 34, 35, 67, -1, 69, 3683 39, 71, 72, -1, 74, 75, 76, -1, -1, -1, 3684 -1, -1, -1, 83, 84, -1, -1, -1, -1, -1, 3685 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3686 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3687 -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 3688 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3689 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3690 23, 24, 25, 26, 27, 28, -1, 30, 31, 32, 3691 33, -1, -1, 36, -1, -1, 39, -1, -1, -1, 3692 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3694 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3695 -1, 74, 75, -1, -1, 78, 3, 4, 5, 6, 3696 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3697 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3698 27, -1, -1, 30, 31, 32, 33, -1, 111, 36, 3699 -1, -1, 39, -1, -1, -1, 119, -1, -1, -1, 3700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3701 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3702 67, -1, 69, -1, 71, -1, -1, 74, 75, 3, 3737 67, -1, 69, -1, 71, -1, -1, 74, 75, -1, 3703 3738 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3704 3739 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, … … 3707 3742 -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 3708 3743 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3709 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3710 74, 75, -1, 4, 5, 6, 7, 8, 9, 10, 3711 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3712 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3713 31, 32, -1, -1, -1, -1, -1, 111, 39, -1, 3714 -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, 3744 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 3745 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 3746 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3715 3747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3717 71, 72, -1, 74, 75, 76, -1, -1, -1, -1, 3718 -1, -1, 83, 84, -1, -1, -1, -1, -1, -1, 3719 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3720 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3721 111, -1, -1, -1, -1, -1, -1, -1, 119, 4, 3748 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 3749 -1, -1, -1, -1, -1, 119, 4, 5, 6, 7, 3750 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3751 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3752 -1, -1, 30, 31, 32, -1, -1, -1, -1, -1, 3753 -1, 39, -1, -1, -1, -1, 10, 11, 12, 13, 3754 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3755 24, 25, 26, 27, -1, -1, 30, 31, 32, 67, 3756 -1, 69, -1, 71, -1, 39, 74, 75, -1, 4, 3722 3757 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3723 3758 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3724 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3725 -1, -1, -1, -1, 39, -1, -1, -1, -1, 10, 3726 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3727 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3728 31, 32, 67, -1, 69, -1, 71, -1, 39, 74, 3729 75, -1, 4, 5, 6, 7, 8, 9, 10, 11, 3730 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3731 22, 23, 24, 25, 26, 27, 67, -1, 30, 31, 3732 32, -1, -1, 74, 75, 110, 111, 39, -1, -1, 3733 -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, 3759 25, 26, 27, 67, -1, 30, 31, 32, 72, -1, 3760 74, 75, 110, 111, 39, -1, -1, -1, -1, 83, 3761 84, 119, -1, -1, -1, -1, -1, -1, -1, -1, 3734 3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3735 -1, -1, -1, -1, -1, 67, -1, 69, 109, 71,3736 111, -1, 74, 75, -1, -1, -1, -1, 119, -1,3763 -1, -1, 67, -1, 69, -1, 71, 111, -1, 74, 3764 75, -1, -1, -1, -1, 119, -1, -1, -1, -1, 3737 3765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3738 -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, 3739 -1, -1, -1, -1, -1, -1, -1, -1, -1, 111, 3740 -1, -1, -1, -1, -1, -1, -1, 119, 4, 5, 3741 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3742 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3743 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3744 -1, -1, -1, 39, -1, -1, -1, -1, 10, 11, 3745 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3746 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 3747 32, 67, -1, 69, -1, 71, -1, 39, 74, 75, 3766 -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, 3767 -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3768 -1, -1, -1, -1, 119, 4, 5, 6, 7, 8, 3769 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3770 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3771 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 3772 39, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3773 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3774 25, 26, 27, 28, -1, 30, 31, 32, 67, -1, 3775 69, -1, 71, -1, 39, 74, 75, -1, -1, -1, 3776 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3777 -1, -1, -1, -1, -1, -1, -1, 96, -1, -1, 3778 -1, -1, 67, -1, -1, -1, -1, 72, -1, 74, 3779 75, 76, 111, 78, -1, -1, -1, -1, 83, 84, 3780 119, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3781 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3782 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3783 -1, -1, -1, -1, 119, -1, 39, -1, -1, -1, 3748 3784 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3749 3785 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3750 96, -1, -1, -1, -1, 67, -1, -1, -1, -1, 3751 72, -1, 74, 75, 76, 111, 78, -1, -1, -1, 3752 -1, 83, 84, 119, 4, 5, 6, 7, 8, 9, 3786 -1, -1, -1, -1, 67, -1, 69, -1, 71, -1, 3787 -1, 74, 75, -1, 4, 5, 6, 7, 8, 9, 3753 3788 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3754 20, 21, 22, 23, 24, 25, 26, 27, -1, 111,3755 30, 31, 32, -1, -1, -1, -1, 119, -1, 39,3756 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,3789 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3790 30, 31, 32, -1, -1, -1, -1, -1, 111, 39, 3791 -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3757 3792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3758 3793 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, … … 3772 3807 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3773 3808 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3774 74, 75, -1, 4, 5, 6, 7, 8, 9, 10,3775 1 1, 12, 13, 14, 15, 16, 17, 18, 19, 20,3776 21, 22, 23, 24, 25, 26, 27, -1, -1, 30,3777 3 1, 32, -1, -1, -1, -1, -1, 111, 39, -1,3809 74, 75, 10, 11, 12, 13, 14, 15, 16, 17, 3810 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3811 -1, -1, 30, 31, 32, -1, -1, -1, -1, 37, 3812 38, 39, 40, -1, -1, -1, -1, 111, -1, -1, 3778 3813 -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, 3814 -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, 3815 -1, -1, -1, -1, 72, -1, 74, 75, 76, -1, 3816 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3817 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3779 3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3780 -1, -1, -1, -1, -1, -1, 67, -1, 69, -1, 3781 71, -1, -1, 74, 75, 10, 11, 12, 13, 14, 3819 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3820 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3821 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3822 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3823 -1, -1, -1, 37, 38, 39, 40, 10, 11, 12, 3824 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3825 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3826 -1, -1, 66, 67, -1, -1, 39, -1, 72, -1, 3827 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3828 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3829 94, -1, -1, -1, 67, -1, -1, -1, -1, 72, 3830 -1, 74, 75, 76, -1, 109, -1, 111, 112, -1, 3831 83, 84, -1, -1, 118, 119, 120, 121, 122, 123, 3832 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3833 20, 21, 22, 23, 24, 25, 26, 27, 111, -1, 3834 30, 31, 32, -1, -1, -1, 119, 37, 38, 39, 3835 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3836 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3837 -1, 30, 31, 32, -1, -1, 66, 67, -1, -1, 3838 39, 40, 72, -1, 74, 75, 76, -1, -1, 79, 3839 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 3840 -1, -1, -1, -1, 94, -1, -1, -1, 67, -1, 3841 -1, -1, -1, -1, -1, 74, 75, -1, -1, 109, 3842 110, 111, -1, -1, -1, -1, -1, -1, 118, 119, 3843 120, 121, 122, 123, 10, 11, 12, 13, 14, 15, 3844 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3845 26, 27, 111, -1, 30, 31, 32, -1, -1, -1, 3846 119, 37, 38, 39, 40, -1, -1, -1, -1, -1, 3847 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3848 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3849 66, 67, 30, 31, 32, -1, 72, -1, 74, 75, 3850 76, 39, -1, 79, 80, 81, 82, 83, 84, -1, 3851 86, 87, -1, -1, -1, -1, -1, -1, 94, -1, 3852 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3853 -1, -1, -1, 109, -1, 111, 74, 75, -1, -1, 3854 -1, -1, 118, 119, 120, 121, 122, 123, 10, 11, 3855 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3856 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3857 32, 109, -1, 111, -1, 37, 38, 39, 40, -1, 3858 -1, 119, -1, -1, -1, -1, 10, 11, 12, 13, 3859 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3860 24, 25, 26, 27, 66, 67, 30, 31, 32, -1, 3861 72, -1, 74, 75, 76, 39, -1, 79, 80, 81, 3862 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 3863 -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, -1, 67, -1, -1, -1, 109, -1, 111, 3865 74, 75, -1, -1, -1, -1, 118, 119, 120, 121, 3866 122, 123, 10, 11, 12, 13, 14, 15, 16, 17, 3867 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3868 -1, -1, 30, 31, 32, 109, -1, 111, -1, 37, 3869 38, 39, 40, -1, -1, 119, -1, -1, -1, -1, 3870 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3871 20, 21, 22, 23, 24, 25, 26, 27, 66, 67, 3872 30, 31, 32, -1, 72, -1, 74, 75, 76, 39, 3873 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3874 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3875 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3876 -1, 109, -1, 111, 74, 75, -1, -1, -1, -1, 3877 118, 119, 120, 121, 122, 123, 10, 11, 12, 13, 3878 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3879 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3880 -1, 111, -1, 37, 38, 39, 40, -1, -1, 119, 3881 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3882 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3883 26, 27, 66, 67, 30, 31, 32, -1, 72, -1, 3884 74, 75, 76, 39, -1, 79, 80, 81, 82, 83, 3885 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3886 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, 67, -1, -1, -1, 109, -1, 111, 74, 75, 3888 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3889 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3890 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3891 23, 24, 25, 26, 27, 111, -1, 30, 31, 32, 3892 -1, -1, -1, 119, -1, -1, 39, -1, -1, -1, 3893 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3894 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3895 30, 31, 32, -1, 67, -1, 69, -1, 71, 39, 3896 -1, 74, 75, -1, -1, -1, -1, -1, 10, 11, 3897 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3898 22, 23, 24, 25, 26, 27, -1, 67, 30, 31, 3899 32, -1, 72, -1, 74, 75, 76, 39, -1, -1, 3900 -1, 114, -1, 83, 84, -1, 10, 11, 12, 13, 3901 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3902 24, 25, 26, 27, -1, 67, 30, 31, 32, 109, 3903 72, 111, 74, 75, 76, 39, -1, -1, -1, 119, 3904 -1, 83, 84, -1, 10, 11, 12, 13, 14, 15, 3905 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3906 26, 27, -1, 67, 30, 31, 32, 109, 72, 111, 3907 74, 75, 76, 39, -1, -1, -1, 119, -1, 83, 3908 84, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3909 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3910 28, 67, 30, 31, 32, 109, 72, 111, 74, 75, 3911 76, 39, -1, -1, -1, 119, -1, 83, 84, -1, 3912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3913 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3914 -1, -1, -1, 109, -1, 111, 74, 75, -1, -1, 3915 78, -1, -1, 119, -1, 10, 11, 12, 13, 14, 3782 3916 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3783 3917 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3784 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3785 111, -1, -1, -1, -1, -1, -1, -1, 119, -1, 3786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3787 -1, 66, 67, -1, -1, -1, -1, 72, -1, 74, 3788 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3789 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3790 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3791 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3792 -1, -1, -1, 118, 119, 120, 121, 122, 123, 10, 3793 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3794 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3795 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3796 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3797 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3798 30, 31, 32, -1, -1, 66, 67, -1, -1, 39, 3799 -1, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3800 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3801 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3802 -1, -1, 72, -1, 74, 75, 76, -1, 109, -1, 3803 111, 112, -1, 83, 84, -1, -1, 118, 119, 120, 3804 121, 122, 123, 10, 11, 12, 13, 14, 15, 16, 3805 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3806 27, 111, -1, 30, 31, 32, -1, -1, -1, 119, 3807 37, 38, 39, 40, 10, 11, 12, 13, 14, 15, 3808 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3809 26, 27, -1, -1, 30, 31, 32, -1, -1, 66, 3810 67, -1, -1, 39, 40, 72, -1, 74, 75, 76, 3811 -1, -1, 79, 80, 81, 82, 83, 84, -1, 86, 3812 87, -1, -1, -1, -1, -1, -1, 94, -1, -1, 3813 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75, 3814 -1, -1, 109, 110, 111, -1, -1, -1, -1, -1, 3815 -1, 118, 119, 120, 121, 122, 123, 10, 11, 12, 3816 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3817 23, 24, 25, 26, 27, 111, -1, 30, 31, 32, 3818 -1, -1, -1, 119, 37, 38, 39, 40, -1, -1, 3819 -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 3820 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3821 25, 26, 27, 66, 67, 30, 31, 32, -1, 72, 3822 -1, 74, 75, 76, 39, -1, 79, 80, 81, 82, 3823 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 3824 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 3825 -1, -1, 67, -1, -1, -1, 109, -1, 111, 74, 3826 75, -1, -1, -1, -1, 118, 119, 120, 121, 122, 3827 123, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3828 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3829 -1, 30, 31, 32, 109, -1, 111, -1, 37, 38, 3830 39, 40, -1, -1, 119, -1, -1, -1, -1, 10, 3831 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3832 21, 22, 23, 24, 25, 26, 27, 66, 67, 30, 3833 31, 32, -1, 72, -1, 74, 75, 76, 39, -1, 3834 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3835 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 3836 -1, -1, -1, -1, -1, -1, 67, -1, -1, -1, 3837 109, -1, 111, 74, 75, -1, -1, -1, -1, 118, 3838 119, 120, 121, 122, 123, 10, 11, 12, 13, 14, 3839 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3840 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3841 111, -1, 37, 38, 39, 40, -1, -1, 119, -1, 3842 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3844 -1, 66, 67, -1, -1, -1, -1, 72, -1, 74, 3845 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3846 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3848 -1, -1, -1, -1, 109, -1, 111, -1, -1, -1, 3849 -1, -1, -1, 118, 119, 120, 121, 122, 123, 10, 3850 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3851 21, 22, 23, 24, 25, 26, 27, -1, -1, 30, 3852 31, 32, -1, -1, -1, -1, 37, 38, 39, 40, 3853 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3854 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3855 30, 31, 32, -1, -1, 66, 67, -1, -1, 39, 3856 -1, 72, -1, 74, 75, 76, -1, -1, 79, 80, 3857 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3858 -1, -1, -1, 94, -1, -1, -1, 67, -1, -1, 3859 -1, -1, 72, -1, 74, 75, 76, -1, 109, -1, 3860 111, -1, -1, 83, 84, -1, -1, 118, 119, 120, 3861 121, 122, 123, -1, -1, -1, -1, -1, -1, -1, 3862 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3863 -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 3864 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3865 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3866 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3867 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3868 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3869 30, 31, 32, -1, -1, -1, -1, 67, -1, 39, 3870 -1, -1, 72, -1, 74, 75, 76, -1, -1, -1, 3871 -1, -1, -1, 83, 84, -1, -1, -1, -1, -1, 3872 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3873 -1, -1, 72, -1, 74, 75, 76, -1, -1, 109, 3874 -1, 111, -1, 83, 84, -1, -1, -1, -1, 119, 3875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3876 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3877 -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 3878 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3879 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3880 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3881 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3882 20, 21, 22, 23, 24, 25, 26, 27, 28, -1, 3883 30, 31, 32, -1, -1, -1, -1, 67, -1, 39, 3884 -1, -1, -1, -1, 74, 75, -1, -1, 78, -1, 3885 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3886 -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 3887 -1, -1, -1, -1, 74, 75, -1, -1, 78, 109, 3888 -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 3889 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3890 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 3891 -1, 111, -1, -1, -1, -1, -1, -1, -1, 119, 3892 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3893 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 3894 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 3895 40, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3896 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3897 -1, 30, 31, 32, -1, -1, -1, 67, -1, -1, 3898 39, -1, -1, -1, 74, 75, -1, -1, -1, -1, 3899 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3900 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 3901 -1, -1, -1, -1, -1, 74, 75, -1, -1, 78, 3902 -1, 111, -1, -1, -1, 115, -1, -1, -1, 119, 3903 -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3904 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3905 27, -1, 111, 30, 31, 32, -1, -1, -1, -1, 3906 119, -1, 39, 40, 10, 11, 12, 13, 14, 15, 3907 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3908 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3909 67, -1, -1, 39, -1, -1, -1, 74, 75, -1, 3910 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3911 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3912 -1, 67, 30, 31, 32, -1, -1, -1, 74, 75, 3913 -1, 39, -1, -1, 111, -1, -1, -1, 115, -1, 3914 -1, -1, 119, -1, -1, -1, -1, -1, -1, -1, 3915 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3916 -1, -1, -1, -1, -1, 111, 74, 75, -1, -1, 3917 -1, -1, -1, 119, -1, 10, 11, 12, 13, 14, 3918 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3919 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3920 -1, -1, -1, 111, 39, -1, -1, -1, -1, -1, 3918 -1, 109, -1, 111, 39, 40, -1, -1, -1, -1, 3921 3919 -1, 119, -1, 10, 11, 12, 13, 14, 15, 16, 3922 3920 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3923 27, -1, 67, 30, 31, 32, -1, -1, -1, 74,3921 27, 28, 67, 30, 31, 32, -1, -1, -1, 74, 3924 3922 75, -1, 39, 10, 11, 12, 13, 14, 15, 16, 3925 3923 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3926 3924 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 3927 67, -1, 39, -1, -1, -1, 111, 74, 75, -1,3928 -1, -1, -1, -1, 119, -1, -1, -1, -1, -1,3925 67, -1, 39, 40, -1, -1, 111, 74, 75, -1, 3926 115, 78, -1, -1, 119, -1, -1, -1, -1, -1, 3929 3927 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3930 3928 67, -1, -1, -1, -1, -1, -1, 74, 75, -1, … … 3932 3930 -1, -1, 119, -1, -1, 10, 11, 12, 13, 14, 3933 3931 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3934 25, 26, 27, -1, 111, 30, 31, 32, -1, -1, 3935 -1, -1, 119, -1, 39, 10, 11, 12, 13, 14, 3932 25, 26, 27, -1, 111, 30, 31, 32, 115, -1, 3933 -1, -1, 119, -1, 39, 40, 10, 11, 12, 13, 3934 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3935 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3936 -1, -1, 67, -1, -1, 39, -1, -1, -1, 74, 3937 75, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3938 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3939 26, 27, -1, 67, 30, 31, 32, -1, -1, -1, 3940 74, 75, -1, 39, -1, -1, 111, -1, -1, -1, 3941 115, -1, -1, -1, 119, -1, -1, -1, -1, -1, 3942 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3943 -1, 67, -1, -1, -1, -1, -1, 111, 74, 75, 3944 -1, -1, -1, -1, -1, 119, -1, 10, 11, 12, 3945 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3946 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3947 -1, -1, -1, -1, -1, 111, 39, -1, -1, -1, 3948 -1, -1, -1, 119, -1, 10, 11, 12, 13, 14, 3949 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3950 25, 26, 27, -1, 67, 30, 31, 32, -1, -1, 3951 -1, 74, 75, -1, 39, 10, 11, 12, 13, 14, 3936 3952 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3937 3953 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3938 -1, -1, 67, -1, 39, -1, -1, -1, -1, 74, 3939 75, -1, -1, 10, 11, 12, 13, 14, 15, 16, 3954 -1, -1, 67, -1, 39, -1, -1, -1, 111, 74, 3955 75, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3956 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3957 -1, -1, 67, -1, -1, -1, -1, -1, -1, 74, 3958 75, -1, -1, -1, -1, -1, 111, -1, -1, -1, 3959 -1, -1, -1, -1, 119, -1, -1, 10, 11, 12, 3960 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3961 23, 24, 25, 26, 27, -1, 111, 30, 31, 32, 3962 -1, -1, -1, -1, 119, -1, 39, 10, 11, 12, 3963 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3964 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3965 -1, -1, -1, -1, 67, -1, 39, -1, -1, -1, 3966 -1, 74, 75, -1, -1, 10, 11, 12, 13, 14, 3967 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3968 25, 26, 27, -1, 67, 30, 31, 32, -1, -1, 3969 -1, 74, 75, -1, 39, -1, -1, -1, 111, -1, 3970 -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, 3971 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3972 -1, -1, 67, -1, -1, -1, -1, -1, 111, 74, 3973 75, -1, -1, -1, -1, -1, 119, 4, 5, 6, 3974 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3940 3975 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3941 27, -1, 67, 30, 31, 32, -1, -1, -1, 74, 3942 75, -1, 39, -1, -1, -1, 111, -1, -1, -1, 3943 -1, -1, -1, -1, 119, -1, -1, -1, -1, -1, 3976 27, -1, -1, 30, 31, 32, 111, -1, -1, -1, 3977 -1, -1, 39, -1, 119, -1, -1, -1, -1, -1, 3944 3978 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3945 67, -1, -1, -1, -1, -1, 111, 74, 75, -1, 3946 -1, -1, -1, -1, 119, -1, 10, 11, 12, 13, 3947 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3948 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3949 -1, -1, -1, -1, 111, 39, -1, -1, -1, -1, 3950 -1, -1, 119, -1, 10, 11, 12, 13, 14, 15, 3979 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3980 67, -1, 69, -1, 71, -1, -1, 74, 75, 37, 3981 38, -1, 40, 41, -1, 43, -1, -1, 46, 47, 3982 48, 49, 50, 51, 52, 53, -1, -1, 56, 57, 3983 -1, -1, -1, 61, 62, -1, 64, -1, 66, -1, 3984 -1, -1, -1, 110, 72, -1, -1, -1, 76, -1, 3985 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3986 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 3987 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3988 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3989 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 3990 128, -1, 37, 38, 132, 40, 41, -1, 43, -1, 3991 -1, 46, 47, 48, 49, 50, 51, 52, 53, -1, 3992 -1, -1, 57, -1, -1, -1, 61, 62, -1, 64, 3993 -1, 66, -1, -1, -1, -1, -1, 72, -1, -1, 3994 -1, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3995 -1, 86, 87, -1, -1, -1, -1, -1, -1, 94, 3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3997 -1, -1, -1, -1, 109, -1, 111, -1, -1, 114, 3998 -1, -1, -1, 118, 119, 120, 121, 122, 123, -1, 3999 -1, -1, -1, 128, -1, -1, -1, 132, 4, 5, 4000 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3951 4001 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3952 26, 27, -1, 67, 30, 31, 32, -1, -1, -1, 3953 74, 75, -1, 39, -1, -1, 4, 5, 6, 7, 3954 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3955 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3956 -1, 67, 30, 31, 32, -1, -1, 111, 74, 75, 3957 -1, 39, -1, 37, 38, 119, 40, 41, -1, 43, 4002 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 4003 -1, -1, -1, 39, -1, 37, 38, -1, 40, 41, 4004 -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 4005 52, 53, -1, -1, 56, 57, -1, -1, -1, 61, 4006 62, 67, 64, 69, 66, 71, -1, -1, 74, 75, 4007 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 4008 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 4009 96, -1, 94, -1, -1, -1, -1, -1, -1, -1, 4010 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 4011 -1, -1, 114, -1, -1, -1, 118, 119, 120, 121, 4012 122, 123, -1, -1, 37, 38, 128, 40, 41, -1, 4013 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 4014 53, -1, -1, -1, 57, -1, -1, -1, 61, 62, 4015 -1, 64, -1, 66, -1, -1, -1, -1, -1, 72, 4016 -1, -1, -1, 76, -1, -1, 79, 80, 81, 82, 4017 83, 84, -1, 86, 87, -1, -1, -1, -1, -1, 4018 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 4019 -1, -1, -1, -1, -1, -1, 109, -1, 111, -1, 4020 -1, 114, -1, -1, -1, 118, 119, 120, 121, 122, 4021 123, -1, -1, 37, 38, 128, 40, 41, -1, 43, 3958 4022 -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 3959 -1, -1, 56, 57, -1, -1, -1, 61, 62, 67, 3960 64, 69, 66, 71, -1, -1, 74, 75, 72, -1, 3961 -1, -1, 76, 119, -1, 79, 80, 81, 82, 83, 4023 -1, -1, -1, 57, -1, -1, -1, 61, 62, -1, 4024 64, -1, 66, -1, -1, -1, -1, -1, 72, -1, 4025 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4026 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 4027 94, 37, 38, -1, 40, -1, -1, -1, -1, -1, 4028 -1, -1, -1, -1, -1, 109, -1, 111, -1, -1, 4029 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4030 66, -1, -1, -1, 128, -1, 72, -1, -1, -1, 4031 76, -1, -1, 79, 80, 81, 82, 83, 84, -1, 4032 86, 87, -1, -1, -1, -1, -1, -1, 94, 37, 4033 38, -1, 40, -1, -1, -1, -1, -1, -1, -1, 4034 -1, -1, -1, 109, -1, 111, -1, -1, 37, 38, 4035 -1, 40, 118, 119, 120, 121, 122, 123, 66, -1, 4036 -1, -1, -1, -1, 72, -1, -1, -1, 76, -1, 4037 -1, 79, 80, 81, 82, 83, 84, 66, 86, 87, 4038 -1, -1, -1, 72, -1, -1, 94, 76, -1, -1, 4039 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 4040 -1, 109, -1, 111, -1, 94, 37, 38, -1, 40, 4041 118, 119, 120, 121, 122, 123, -1, -1, -1, -1, 4042 109, -1, -1, -1, -1, 37, 38, -1, 40, 118, 4043 119, 120, 121, 122, 123, 66, -1, -1, -1, -1, 4044 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 4045 81, 82, 83, 84, 66, 86, 87, -1, -1, -1, 4046 72, -1, -1, 94, 76, -1, -1, 79, 80, 81, 4047 82, 83, 84, -1, 86, 87, -1, -1, 109, -1, 4048 -1, -1, 94, 37, 38, -1, 40, 118, 119, 120, 4049 121, 122, 123, -1, -1, -1, -1, 109, -1, -1, 4050 -1, -1, -1, -1, -1, -1, 118, 119, 120, 121, 4051 122, 123, 66, -1, -1, -1, -1, -1, 72, -1, 4052 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 3962 4053 84, -1, 86, 87, -1, -1, -1, -1, -1, -1, 3963 4054 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3964 -1, -1, 110, -1, -1, 109, -1, 111, -1, -1, 3965 114, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3966 -1, -1, -1, -1, 128, -1, 37, 38, 132, 40, 3967 41, -1, 43, -1, -1, 46, 47, 48, 49, 50, 3968 51, 52, 53, -1, -1, -1, 57, -1, -1, -1, 3969 61, 62, -1, 64, -1, 66, -1, -1, -1, -1, 3970 -1, 72, -1, -1, -1, 76, -1, -1, 79, 80, 3971 81, 82, 83, 84, -1, 86, 87, -1, -1, -1, 3972 -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, 3973 -1, -1, -1, -1, -1, -1, -1, -1, 109, -1, 3974 111, -1, -1, 114, -1, -1, -1, 118, 119, 120, 3975 121, 122, 123, -1, -1, -1, -1, 128, -1, -1, 3976 -1, 132, 4, 5, 6, 7, 8, 9, 10, 11, 4055 -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, 4056 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 4057 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 4058 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 4059 24, 25, 26, 27, -1, -1, -1, -1, -1, -1, 4060 -1, -1, -1, -1, -1, 39, -1, -1, -1, -1, 4061 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4062 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4063 -1, -1, -1, 67, -1, 69, -1, 71, 72, -1, 4064 74, 75, 76, -1, -1, -1, -1, -1, -1, 83, 4065 84, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3977 4066 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3978 4067 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3979 32, -1, -1, -1, -1, -1, -1, 39, -1, 37, 3980 38, -1, 40, 41, -1, 43, 44, 45, 46, 47, 3981 48, 49, 50, 51, 52, 53, -1, -1, 56, 57, 3982 -1, -1, -1, 61, 62, 67, 64, 69, 66, 71, 3983 -1, -1, 74, 75, 72, -1, -1, -1, 76, -1, 3984 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 3985 -1, -1, -1, -1, 96, -1, 94, -1, -1, -1, 3986 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3987 -1, 109, -1, 111, -1, -1, 114, -1, -1, -1, 3988 118, 119, 120, 121, 122, 123, -1, -1, 37, 38, 3989 128, 40, 41, -1, 43, 44, 45, 46, 47, 48, 3990 49, 50, 51, 52, 53, -1, -1, -1, 57, -1, 3991 -1, -1, 61, 62, -1, 64, -1, 66, -1, -1, 3992 -1, -1, -1, 72, -1, -1, -1, 76, -1, -1, 3993 79, 80, 81, 82, 83, 84, -1, 86, 87, -1, 3994 -1, -1, -1, -1, -1, 94, -1, -1, -1, -1, 3995 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3996 109, -1, 111, -1, -1, 114, -1, -1, -1, 118, 3997 119, 120, 121, 122, 123, -1, -1, 37, 38, 128, 3998 40, 41, -1, 43, -1, -1, 46, 47, 48, 49, 3999 50, 51, 52, 53, -1, -1, -1, 57, -1, -1, 4000 -1, 61, 62, -1, 64, -1, 66, -1, -1, -1, 4001 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 4002 80, 81, 82, 83, 84, -1, 86, 87, -1, -1, 4003 -1, -1, -1, -1, 94, 37, 38, -1, 40, -1, 4004 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 4005 -1, 111, -1, -1, 114, -1, -1, -1, 118, 119, 4006 120, 121, 122, 123, 66, -1, -1, -1, 128, -1, 4007 72, -1, -1, -1, 76, -1, -1, 79, 80, 81, 4008 82, 83, 84, -1, 86, 87, -1, -1, -1, -1, 4009 -1, -1, 94, 37, 38, -1, 40, -1, -1, -1, 4010 -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, 4011 -1, -1, 37, 38, -1, 40, 118, 119, 120, 121, 4012 122, 123, 66, -1, -1, -1, -1, -1, 72, -1, 4013 -1, -1, 76, -1, -1, 79, 80, 81, 82, 83, 4014 84, 66, 86, 87, -1, -1, -1, 72, -1, -1, 4015 94, 76, -1, -1, 79, 80, 81, 82, 83, 84, 4016 -1, 86, 87, -1, -1, 109, -1, 111, -1, 94, 4017 37, 38, -1, 40, 118, 119, 120, 121, 122, 123, 4018 -1, -1, -1, -1, 109, -1, 111, -1, -1, 37, 4019 38, -1, 40, 118, 119, 120, 121, 122, 123, 66, 4020 -1, -1, -1, -1, -1, 72, -1, -1, -1, 76, 4021 -1, -1, 79, 80, 81, 82, 83, 84, 66, 86, 4022 87, -1, -1, -1, 72, -1, -1, 94, 76, -1, 4023 -1, 79, 80, 81, 82, 83, 84, -1, 86, 87, 4024 -1, -1, 109, -1, 111, -1, 94, 37, 38, -1, 4025 40, 118, 119, 120, 121, 122, 123, -1, -1, -1, 4026 -1, 109, -1, -1, -1, -1, 37, 38, -1, 40, 4027 118, 119, 120, 121, 122, 123, 66, -1, -1, -1, 4028 -1, -1, 72, -1, -1, -1, 76, -1, -1, 79, 4029 80, 81, 82, 83, 84, 66, 86, 87, -1, -1, 4030 -1, 72, -1, -1, 94, 76, -1, -1, 79, 80, 4031 81, 82, 83, 84, -1, 86, 87, -1, -1, 109, 4032 -1, -1, -1, 94, -1, -1, -1, -1, 118, 119, 4033 120, 121, 122, 123, -1, -1, -1, -1, 109, -1, 4034 -1, -1, -1, -1, -1, -1, -1, 118, 119, 120, 4035 121, 122, 123, 3, 4, 5, 6, 7, 8, 9, 4036 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 4037 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, 4038 30, 31, 32, -1, -1, -1, -1, -1, -1, 39, 4068 32, -1, -1, -1, -1, -1, -1, 39, -1, -1, 4039 4069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4040 4070 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4041 -1, -1, -1, -1, -1, -1, -1, 67, -1, 69, 4042 -1, 71, -1, -1, 74, 75, 3, 4, 5, 6, 4071 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 4072 -1, -1, 74, 75, 3, 4, 5, 6, 7, 8, 4073 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4074 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 4075 -1, 30, 31, 32, -1, -1, -1, -1, -1, -1, 4076 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4077 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4078 -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, 4079 69, -1, 71, -1, -1, 74, 75, 4, 5, 6, 4043 4080 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 4044 4081 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 4045 4082 27, -1, -1, 30, 31, 32, -1, -1, -1, -1, 4046 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, 4083 -1, -1, 39, -1, 10, 11, 12, 13, 14, 15, 4084 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 4085 26, 27, -1, -1, 30, 31, 32, 33, 34, 35, 4086 67, -1, 69, 39, 71, -1, -1, 74, 75, -1, 4047 4087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4048 4088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4049 67, -1, 69, -1, 71, -1, -1, 74, 75, 4, 4050 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 4051 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 4052 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 4053 -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, 4054 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4055 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4056 -1, -1, 67, -1, 69, -1, 71, -1, -1, 74, 4057 75 4089 -1, 67, -1, -1, -1, -1, -1, -1, 74, 75 4058 4090 }; 4059 4091 … … 4070 4102 222, 223, 224, 225, 226, 227, 228, 230, 231, 232, 4071 4103 233, 234, 235, 236, 237, 239, 240, 241, 242, 243, 4072 244, 24 5, 253, 254, 280, 281, 282, 290, 293, 299,4073 30 0, 302, 304, 305, 311, 316, 320, 321, 322, 323,4074 32 4, 325, 326, 327, 347, 364, 365, 366, 367, 72,4104 244, 246, 254, 255, 282, 283, 284, 292, 295, 301, 4105 302, 304, 306, 307, 313, 318, 322, 323, 324, 325, 4106 326, 327, 328, 329, 349, 366, 367, 368, 369, 72, 4075 4107 119, 139, 140, 214, 216, 224, 226, 236, 240, 242, 4076 28 1, 82, 109, 309, 310, 311, 309, 309, 72, 74,4077 75, 76, 138, 139, 27 0, 271, 291, 292, 74, 75,4078 27 1, 109, 302, 11, 198, 109, 119, 316, 321, 322,4079 32 3, 325, 326, 327, 112, 134, 111, 217, 224, 226,4080 32 0, 324, 363, 364, 367, 368, 135, 107, 131, 274,4081 114, 135, 172, 74, 75, 137, 2 69, 135, 135, 135,4082 116, 135, 74, 75, 109, 119, 30 6, 315, 316, 317,4083 3 18, 319, 320, 324, 328, 329, 330, 331, 332, 338,4108 283, 82, 109, 311, 312, 313, 311, 311, 72, 74, 4109 75, 76, 138, 139, 272, 273, 293, 294, 74, 75, 4110 273, 109, 304, 11, 198, 109, 119, 318, 323, 324, 4111 325, 327, 328, 329, 112, 134, 111, 217, 224, 226, 4112 322, 326, 365, 366, 369, 370, 135, 107, 131, 276, 4113 114, 135, 172, 74, 75, 137, 271, 135, 135, 135, 4114 116, 135, 74, 75, 109, 119, 308, 317, 318, 319, 4115 320, 321, 322, 326, 330, 331, 332, 333, 334, 340, 4084 4116 3, 28, 78, 238, 3, 5, 74, 111, 119, 216, 4085 227, 231, 234, 243, 28 2, 320, 324, 367, 214, 216,4086 226, 236, 240, 242, 28 1, 320, 324, 33, 232, 232,4117 227, 231, 234, 243, 284, 322, 326, 369, 214, 216, 4118 226, 236, 240, 242, 283, 322, 326, 33, 232, 232, 4087 4119 227, 234, 135, 232, 227, 232, 227, 75, 109, 114, 4088 27 1, 282, 114, 271, 232, 227, 116, 135, 135, 0,4089 134, 109, 172, 3 09, 309, 134, 111, 224, 226, 365,4090 2 69, 269, 226, 131, 109, 119, 306, 316, 320, 111,4091 119, 36 7, 303, 229, 311, 109, 287, 109, 109, 51,4120 273, 284, 114, 273, 232, 227, 116, 135, 135, 0, 4121 134, 109, 172, 311, 311, 134, 111, 224, 226, 367, 4122 271, 271, 226, 131, 109, 119, 308, 318, 322, 111, 4123 119, 369, 305, 229, 313, 109, 289, 109, 109, 51, 4092 4124 109, 37, 38, 40, 66, 72, 76, 79, 80, 81, 4093 4125 82, 86, 87, 94, 109, 111, 118, 119, 120, 121, 4094 4126 122, 123, 136, 140, 141, 142, 143, 148, 149, 150, 4095 4127 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 4096 161, 163, 165, 224, 27 3, 289, 363, 368, 226, 110,4128 161, 163, 165, 224, 275, 291, 365, 370, 226, 110, 4097 4129 110, 110, 110, 110, 110, 110, 74, 75, 111, 224, 4098 2 69, 347, 365, 111, 119, 163, 216, 217, 223, 226,4099 230, 231, 236, 239, 240, 242, 2 59, 260, 264, 265,4100 26 6, 267, 281, 347, 359, 360, 361, 362, 367, 368,4101 112, 109, 32 0, 324, 367, 109, 116, 132, 111, 114,4102 119, 163, 27 5, 275, 115, 134, 116, 132, 109, 116,4103 132, 116, 132, 116, 132, 3 09, 132, 316, 317, 318,4104 3 19, 329, 330, 331, 332, 226, 315, 328, 64, 308,4105 111, 3 09, 346, 347, 309, 309, 172, 134, 109, 309,4106 34 6, 309, 309, 226, 306, 109, 109, 225, 226, 224,4107 226, 112, 134, 224, 36 3, 368, 172, 134, 269, 274,4108 216, 231, 32 0, 324, 172, 134, 291, 226, 236, 132,4109 226, 226, 2 89, 40, 111, 224, 246, 247, 248, 249,4110 36 3, 367, 114, 255, 271, 114, 226, 291, 132, 132,4111 30 2, 134, 139, 268, 3, 135, 206, 207, 221, 223,4112 226, 134, 3 08, 109, 308, 163, 316, 226, 109, 134,4113 2 69, 114, 33, 34, 35, 224, 283, 284, 286, 134,4114 129, 131, 2 88, 134, 227, 233, 234, 269, 312, 313,4115 31 4, 109, 141, 109, 148, 109, 148, 150, 109, 148,4130 271, 349, 367, 111, 119, 163, 216, 217, 223, 226, 4131 230, 231, 236, 239, 240, 242, 261, 262, 266, 267, 4132 268, 269, 283, 349, 361, 362, 363, 364, 369, 370, 4133 112, 109, 322, 326, 369, 109, 116, 132, 111, 114, 4134 119, 163, 277, 277, 115, 134, 116, 132, 109, 116, 4135 132, 116, 132, 116, 132, 311, 132, 318, 319, 320, 4136 321, 331, 332, 333, 334, 226, 317, 330, 64, 310, 4137 111, 311, 348, 349, 311, 311, 172, 134, 109, 311, 4138 348, 311, 311, 226, 308, 109, 109, 225, 226, 224, 4139 226, 112, 134, 224, 365, 370, 172, 134, 271, 276, 4140 216, 231, 322, 326, 172, 134, 293, 226, 236, 132, 4141 226, 226, 291, 40, 111, 224, 247, 248, 249, 250, 4142 365, 369, 245, 257, 273, 256, 226, 293, 132, 132, 4143 304, 134, 139, 270, 3, 135, 206, 207, 221, 223, 4144 226, 134, 310, 109, 310, 163, 318, 226, 109, 134, 4145 271, 114, 33, 34, 35, 224, 285, 286, 288, 134, 4146 129, 131, 290, 134, 227, 233, 234, 271, 314, 315, 4147 316, 109, 141, 109, 148, 109, 148, 150, 109, 148, 4116 4148 109, 109, 148, 148, 139, 111, 163, 168, 172, 224, 4117 27 2, 363, 112, 134, 150, 150, 82, 85, 86, 87,4149 274, 365, 112, 134, 150, 150, 82, 85, 86, 87, 4118 4150 109, 111, 113, 114, 97, 98, 99, 100, 101, 102, 4119 4151 103, 104, 105, 106, 131, 167, 150, 119, 124, 125, 4120 4152 121, 122, 88, 89, 90, 91, 126, 127, 92, 93, 4121 120, 128, 129, 94, 95, 130, 131, 37 0, 109, 119,4122 34 2, 343, 344, 345, 346, 110, 116, 109, 346, 347,4123 109, 34 6, 347, 134, 109, 224, 365, 112, 134, 111,4124 119, 135, 224, 226, 3 58, 359, 367, 368, 135, 109,4125 111, 119, 31 6, 333, 334, 335, 336, 337, 338, 339,4126 34 0, 341, 347, 348, 349, 350, 351, 352, 353, 119,4127 36 7, 226, 135, 135, 119, 224, 226, 360, 269, 224,4128 34 7, 360, 269, 109, 134, 134, 134, 112, 134, 72,4129 80, 111, 113, 140, 27 1, 275, 276, 277, 278, 279,4130 134, 134, 134, 134, 134, 134, 30 6, 110, 110, 110,4131 110, 110, 110, 110, 31 5, 328, 109, 274, 112, 206,4132 134, 30 6, 168, 273, 168, 273, 306, 111, 206, 308,4133 172, 134, 206, 110, 24 8, 249, 112, 134, 109, 117,4134 119, 25 0, 252, 315, 316, 328, 346, 354, 355, 356,4135 35 7, 115, 247, 116, 132, 116, 132, 271, 246, 116,4136 3 69, 131, 256, 255, 226, 261, 262, 263, 266, 267,4137 110, 116, 172, 134, 119, 163, 134, 223, 226, 26 0,4138 3 59, 367, 300, 301, 109, 119, 333, 110, 116, 370,4139 27 1, 283, 109, 114, 271, 273, 283, 110, 116, 109,4140 141, 110, 117, 27 2, 272, 272, 111, 139, 145, 163,4141 27 3, 272, 112, 134, 110, 116, 110, 109, 119, 354,4153 120, 128, 129, 94, 95, 130, 131, 372, 109, 119, 4154 344, 345, 346, 347, 348, 110, 116, 109, 348, 349, 4155 109, 348, 349, 134, 109, 224, 367, 112, 134, 111, 4156 119, 135, 224, 226, 360, 361, 369, 370, 135, 109, 4157 111, 119, 318, 335, 336, 337, 338, 339, 340, 341, 4158 342, 343, 349, 350, 351, 352, 353, 354, 355, 119, 4159 369, 226, 135, 135, 119, 224, 226, 362, 271, 224, 4160 349, 362, 271, 109, 134, 134, 134, 112, 134, 72, 4161 80, 111, 113, 140, 273, 277, 278, 279, 280, 281, 4162 134, 134, 134, 134, 134, 134, 308, 110, 110, 110, 4163 110, 110, 110, 110, 317, 330, 109, 276, 112, 206, 4164 134, 308, 168, 275, 168, 275, 308, 111, 206, 310, 4165 172, 134, 206, 110, 249, 250, 112, 134, 109, 117, 4166 119, 251, 253, 317, 318, 330, 348, 356, 357, 358, 4167 359, 115, 248, 116, 132, 116, 132, 273, 114, 116, 4168 371, 131, 258, 114, 226, 263, 264, 265, 268, 269, 4169 110, 116, 172, 134, 119, 163, 134, 223, 226, 262, 4170 361, 369, 302, 303, 109, 119, 335, 110, 116, 372, 4171 273, 285, 109, 114, 273, 275, 285, 110, 116, 109, 4172 141, 110, 117, 274, 274, 274, 111, 139, 145, 163, 4173 275, 274, 112, 134, 110, 116, 110, 109, 119, 356, 4142 4174 110, 116, 163, 111, 139, 111, 144, 145, 134, 111, 4143 4175 139, 144, 163, 163, 150, 150, 150, 151, 151, 152, 4144 4176 152, 153, 153, 153, 153, 154, 154, 155, 156, 157, 4145 158, 159, 117, 168, 163, 134, 34 3, 344, 345, 226,4146 34 2, 309, 309, 163, 273, 134, 268, 119, 134, 224,4147 34 7, 360, 226, 230, 112, 134, 112, 367, 112, 109,4148 134, 31 6, 334, 335, 336, 339, 349, 350, 351, 112,4149 134, 226, 33 3, 337, 348, 109, 309, 352, 370, 309,4150 3 09, 370, 109, 309, 352, 309, 309, 309, 309, 347,4151 224, 3 58, 368, 269, 112, 116, 112, 116, 370, 224,4152 36 0, 370, 257, 258, 259, 260, 257, 257, 269, 163,4153 134, 111, 27 1, 117, 116, 369, 275, 80, 111, 117,4154 2 79, 29, 208, 209, 269, 257, 139, 306, 139, 308,4155 109, 34 6, 347, 109, 346, 347, 141, 347, 172, 261,4177 158, 159, 117, 168, 163, 134, 345, 346, 347, 226, 4178 344, 311, 311, 163, 275, 134, 270, 119, 134, 224, 4179 349, 362, 226, 230, 112, 134, 112, 369, 112, 109, 4180 134, 318, 336, 337, 338, 341, 351, 352, 353, 112, 4181 134, 226, 335, 339, 350, 109, 311, 354, 372, 311, 4182 311, 372, 109, 311, 354, 311, 311, 311, 311, 349, 4183 224, 360, 370, 271, 112, 116, 112, 116, 372, 224, 4184 362, 372, 259, 260, 261, 262, 259, 259, 271, 163, 4185 134, 111, 273, 117, 116, 371, 277, 80, 111, 117, 4186 281, 29, 208, 209, 271, 259, 139, 308, 139, 310, 4187 109, 348, 349, 109, 348, 349, 141, 349, 172, 263, 4156 4188 110, 110, 110, 110, 112, 172, 206, 172, 114, 132, 4157 132, 111, 31 6, 355, 356, 357, 161, 162, 226, 354,4158 25 1, 252, 251, 309, 309, 271, 309, 115, 271, 115,4159 162, 369, 135, 135, 139, 221, 135, 135, 257, 109,4160 119, 36 7, 135, 115, 226, 284, 285, 135, 134, 134,4161 109, 135, 110, 31 3, 168, 169, 117, 132, 111, 141,4189 132, 111, 318, 357, 358, 359, 161, 162, 226, 356, 4190 252, 253, 252, 311, 311, 273, 311, 247, 273, 115, 4191 162, 257, 135, 135, 139, 221, 135, 135, 259, 109, 4192 119, 369, 135, 115, 226, 286, 287, 135, 134, 134, 4193 109, 135, 110, 315, 168, 169, 117, 132, 111, 141, 4162 4194 199, 200, 201, 110, 116, 110, 134, 117, 110, 110, 4163 4195 110, 163, 226, 114, 150, 165, 163, 164, 166, 116, 4164 4196 135, 134, 134, 110, 116, 163, 134, 115, 161, 117, 4165 26 1, 110, 110, 110, 342, 261, 110, 257, 224, 360,4166 111, 119, 163, 163, 226, 3 39, 261, 110, 110, 110,4167 110, 110, 110, 110, 7, 226, 33 3, 337, 348, 134,4168 134, 37 0, 134, 134, 110, 135, 135, 135, 135, 274,4169 135, 161, 162, 163, 30 7, 134, 275, 277, 115, 134,4170 210, 27 1, 40, 41, 43, 46, 47, 48, 49, 50,4197 263, 110, 110, 110, 344, 263, 110, 259, 224, 362, 4198 111, 119, 163, 163, 226, 341, 263, 110, 110, 110, 4199 110, 110, 110, 110, 7, 226, 335, 339, 350, 134, 4200 134, 372, 134, 134, 110, 135, 135, 135, 135, 276, 4201 135, 161, 162, 163, 309, 134, 277, 279, 115, 134, 4202 210, 273, 40, 41, 43, 46, 47, 48, 49, 50, 4171 4203 51, 52, 53, 57, 61, 62, 111, 128, 139, 169, 4172 4204 170, 171, 172, 173, 174, 176, 177, 189, 191, 192, 4173 197, 211, 305, 29, 135, 131, 274, 134, 134, 110, 4174 135, 172, 246, 112, 110, 110, 110, 354, 250, 256, 4175 115, 110, 116, 112, 112, 135, 226, 116, 370, 287, 4176 110, 283, 214, 216, 224, 295, 296, 297, 298, 289, 4177 110, 110, 117, 162, 109, 110, 117, 116, 139, 163, 4178 163, 276, 116, 135, 166, 112, 139, 146, 147, 163, 4179 145, 135, 146, 161, 165, 135, 109, 346, 347, 135, 4180 135, 134, 135, 135, 135, 163, 110, 135, 109, 346, 4181 347, 109, 352, 109, 352, 347, 225, 7, 119, 135, 4182 163, 261, 261, 260, 264, 264, 265, 116, 116, 110, 4183 110, 112, 96, 123, 135, 135, 146, 275, 163, 116, 4184 132, 211, 215, 226, 230, 109, 109, 170, 109, 109, 4185 132, 139, 132, 139, 119, 139, 169, 109, 172, 164, 4186 164, 112, 143, 117, 132, 135, 134, 135, 210, 110, 4187 163, 261, 261, 309, 110, 115, 109, 346, 347, 134, 4188 110, 134, 135, 306, 115, 134, 135, 135, 110, 114, 4189 199, 112, 162, 132, 199, 201, 110, 116, 135, 369, 4190 164, 112, 135, 85, 113, 116, 135, 135, 112, 135, 4191 110, 134, 110, 110, 112, 112, 112, 135, 110, 134, 4192 134, 134, 163, 163, 135, 112, 135, 135, 135, 135, 4193 134, 134, 162, 162, 112, 112, 135, 135, 271, 226, 4194 168, 168, 47, 168, 134, 132, 132, 168, 132, 132, 4195 168, 58, 59, 60, 193, 194, 195, 132, 63, 132, 4196 114, 309, 174, 115, 132, 135, 135, 134, 96, 266, 4197 267, 110, 296, 116, 132, 116, 132, 115, 294, 117, 4198 141, 110, 110, 117, 166, 112, 115, 112, 111, 147, 4199 111, 147, 147, 112, 112, 112, 261, 112, 261, 261, 4200 261, 135, 135, 112, 112, 110, 110, 112, 116, 96, 4201 260, 96, 135, 112, 112, 110, 110, 109, 110, 169, 4202 190, 211, 132, 110, 109, 109, 172, 195, 58, 59, 4203 163, 144, 170, 110, 110, 261, 114, 134, 134, 295, 4204 141, 202, 109, 132, 202, 135, 117, 134, 134, 135, 4205 135, 135, 135, 112, 112, 134, 135, 112, 170, 44, 4206 45, 114, 180, 181, 182, 168, 170, 135, 110, 169, 4207 114, 182, 96, 134, 96, 134, 109, 109, 132, 115, 4208 135, 134, 269, 306, 115, 116, 117, 162, 110, 112, 4209 163, 146, 146, 110, 110, 110, 110, 264, 42, 162, 4210 178, 179, 307, 117, 134, 170, 180, 110, 132, 170, 4211 132, 134, 110, 134, 110, 134, 96, 134, 96, 134, 4212 132, 110, 295, 141, 139, 203, 110, 132, 117, 135, 4213 135, 170, 96, 116, 117, 135, 204, 205, 211, 132, 4214 169, 169, 204, 172, 196, 224, 363, 172, 196, 110, 4215 134, 110, 134, 115, 110, 116, 163, 112, 112, 162, 4216 178, 181, 183, 184, 134, 132, 181, 185, 186, 135, 4217 109, 119, 306, 354, 139, 135, 172, 196, 172, 196, 4218 109, 132, 139, 170, 175, 115, 181, 211, 169, 56, 4219 175, 188, 115, 181, 110, 226, 110, 135, 135, 289, 4220 170, 175, 132, 187, 188, 175, 188, 172, 172, 110, 4221 110, 110, 187, 135, 135, 172, 172, 135, 135 4205 197, 211, 307, 29, 135, 131, 276, 134, 134, 110, 4206 135, 172, 247, 112, 110, 110, 110, 356, 251, 115, 4207 258, 371, 110, 116, 112, 112, 135, 226, 116, 372, 4208 289, 110, 285, 214, 216, 224, 297, 298, 299, 300, 4209 291, 110, 110, 117, 162, 109, 110, 117, 116, 139, 4210 163, 163, 278, 116, 135, 166, 112, 139, 146, 147, 4211 163, 145, 135, 146, 161, 165, 135, 109, 348, 349, 4212 135, 135, 134, 135, 135, 135, 163, 110, 135, 109, 4213 348, 349, 109, 354, 109, 354, 349, 225, 7, 119, 4214 135, 163, 263, 263, 262, 266, 266, 267, 116, 116, 4215 110, 110, 112, 96, 123, 135, 135, 146, 277, 163, 4216 116, 132, 211, 215, 226, 230, 109, 109, 170, 109, 4217 109, 132, 139, 132, 139, 119, 139, 169, 109, 172, 4218 164, 164, 112, 143, 117, 132, 135, 134, 135, 210, 4219 110, 163, 263, 263, 311, 110, 115, 109, 348, 349, 4220 115, 134, 110, 134, 135, 308, 115, 134, 135, 135, 4221 110, 114, 199, 112, 162, 132, 199, 201, 110, 116, 4222 135, 371, 164, 112, 135, 85, 113, 116, 135, 135, 4223 112, 135, 110, 134, 110, 110, 112, 112, 112, 135, 4224 110, 134, 134, 134, 163, 163, 135, 112, 135, 135, 4225 135, 135, 134, 134, 162, 162, 112, 112, 135, 135, 4226 273, 226, 168, 168, 47, 168, 134, 132, 132, 168, 4227 132, 132, 168, 58, 59, 60, 193, 194, 195, 132, 4228 63, 132, 114, 311, 174, 115, 132, 135, 135, 134, 4229 96, 268, 269, 110, 298, 116, 132, 116, 132, 115, 4230 296, 117, 141, 110, 110, 117, 166, 112, 115, 112, 4231 111, 147, 111, 147, 147, 112, 112, 112, 263, 112, 4232 263, 263, 263, 135, 135, 112, 112, 110, 110, 112, 4233 116, 96, 262, 96, 135, 112, 112, 110, 110, 109, 4234 110, 169, 190, 211, 132, 110, 109, 109, 172, 195, 4235 58, 59, 163, 144, 170, 110, 110, 263, 114, 134, 4236 134, 297, 141, 202, 109, 132, 202, 135, 117, 134, 4237 134, 135, 135, 135, 135, 112, 112, 134, 135, 112, 4238 170, 44, 45, 114, 180, 181, 182, 168, 170, 135, 4239 110, 169, 114, 182, 96, 134, 96, 134, 109, 109, 4240 132, 115, 135, 134, 271, 308, 115, 116, 117, 162, 4241 110, 112, 163, 146, 146, 110, 110, 110, 110, 266, 4242 42, 162, 178, 179, 309, 117, 134, 170, 180, 110, 4243 132, 170, 132, 134, 110, 134, 110, 134, 96, 134, 4244 96, 134, 132, 110, 297, 141, 139, 203, 110, 132, 4245 117, 135, 135, 170, 96, 116, 117, 135, 204, 205, 4246 211, 132, 169, 169, 204, 172, 196, 224, 365, 172, 4247 196, 110, 134, 110, 134, 115, 110, 116, 163, 112, 4248 112, 162, 178, 181, 183, 184, 134, 132, 181, 185, 4249 186, 135, 109, 119, 308, 356, 139, 135, 172, 196, 4250 172, 196, 109, 132, 139, 170, 175, 115, 181, 211, 4251 169, 56, 175, 188, 115, 181, 110, 226, 110, 135, 4252 135, 291, 170, 175, 132, 187, 188, 175, 188, 172, 4253 172, 110, 110, 110, 187, 135, 135, 172, 172, 135, 4254 135 4222 4255 }; 4223 4256 … … 7031 7064 /* Line 1806 of yacc.c */ 7032 7065 #line 1440 "parser.yy" 7033 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); } 7066 { 7067 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7068 (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (2)].aggKey), (yyvsp[(2) - (2)].tok), 0, 0 ); 7069 } 7034 7070 break; 7035 7071 … … 7037 7073 7038 7074 /* Line 1806 of yacc.c */ 7039 #line 144 2"parser.yy"7040 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (5)].aggKey), (yyvsp[(2) - (5)].tok), 0, (yyvsp[(4) - (5)].decl) ); }7075 #line 1445 "parser.yy" 7076 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7041 7077 break; 7042 7078 … … 7044 7080 7045 7081 /* Line 1806 of yacc.c */ 7046 #line 1444 "parser.yy" 7082 #line 1447 "parser.yy" 7083 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), 0, (yyvsp[(5) - (6)].decl)); } 7084 break; 7085 7086 case 369: 7087 7088 /* Line 1806 of yacc.c */ 7089 #line 1449 "parser.yy" 7047 7090 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), 0, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl) ); } 7048 7091 break; 7049 7092 7050 case 3 69:7051 7052 /* Line 1806 of yacc.c */ 7053 #line 14 46"parser.yy"7093 case 370: 7094 7095 /* Line 1806 of yacc.c */ 7096 #line 1451 "parser.yy" 7054 7097 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7055 7098 break; 7056 7099 7057 case 37 0:7058 7059 /* Line 1806 of yacc.c */ 7060 #line 145 1"parser.yy"7100 case 371: 7101 7102 /* Line 1806 of yacc.c */ 7103 #line 1456 "parser.yy" 7061 7104 { (yyval.aggKey) = DeclarationNode::Struct; } 7062 7105 break; 7063 7106 7064 case 37 1:7065 7066 /* Line 1806 of yacc.c */ 7067 #line 145 3"parser.yy"7107 case 372: 7108 7109 /* Line 1806 of yacc.c */ 7110 #line 1458 "parser.yy" 7068 7111 { (yyval.aggKey) = DeclarationNode::Union; } 7069 7112 break; 7070 7113 7071 case 37 2:7072 7073 /* Line 1806 of yacc.c */ 7074 #line 14 58"parser.yy"7114 case 373: 7115 7116 /* Line 1806 of yacc.c */ 7117 #line 1463 "parser.yy" 7075 7118 { (yyval.decl) = (yyvsp[(1) - (1)].decl); } 7076 7119 break; 7077 7120 7078 case 37 3:7079 7080 /* Line 1806 of yacc.c */ 7081 #line 146 0"parser.yy"7121 case 374: 7122 7123 /* Line 1806 of yacc.c */ 7124 #line 1465 "parser.yy" 7082 7125 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7083 7126 break; 7084 7127 7085 case 37 5:7086 7087 /* Line 1806 of yacc.c */ 7088 #line 14 66"parser.yy"7128 case 376: 7129 7130 /* Line 1806 of yacc.c */ 7131 #line 1471 "parser.yy" 7089 7132 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7090 7133 break; 7091 7134 7092 case 37 7:7093 7094 /* Line 1806 of yacc.c */ 7095 #line 14 69"parser.yy"7135 case 378: 7136 7137 /* Line 1806 of yacc.c */ 7138 #line 1474 "parser.yy" 7096 7139 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7097 7140 break; 7098 7141 7099 case 3 79:7100 7101 /* Line 1806 of yacc.c */ 7102 #line 14 75"parser.yy"7142 case 380: 7143 7144 /* Line 1806 of yacc.c */ 7145 #line 1480 "parser.yy" 7103 7146 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 7104 7147 break; 7105 7148 7106 case 38 0:7107 7108 /* Line 1806 of yacc.c */ 7109 #line 14 77"parser.yy"7149 case 381: 7150 7151 /* Line 1806 of yacc.c */ 7152 #line 1482 "parser.yy" 7110 7153 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 7111 7154 break; 7112 7155 7113 case 38 1:7114 7115 /* Line 1806 of yacc.c */ 7116 #line 14 79"parser.yy"7156 case 382: 7157 7158 /* Line 1806 of yacc.c */ 7159 #line 1484 "parser.yy" 7117 7160 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 7118 7161 break; 7119 7162 7120 case 38 2:7121 7122 /* Line 1806 of yacc.c */ 7123 #line 148 4"parser.yy"7163 case 383: 7164 7165 /* Line 1806 of yacc.c */ 7166 #line 1489 "parser.yy" 7124 7167 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7125 7168 break; 7126 7169 7127 case 38 3:7128 7129 /* Line 1806 of yacc.c */ 7130 #line 14 86"parser.yy"7170 case 384: 7171 7172 /* Line 1806 of yacc.c */ 7173 #line 1491 "parser.yy" 7131 7174 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7132 7175 break; 7133 7176 7134 case 38 4:7135 7136 /* Line 1806 of yacc.c */ 7137 #line 149 1"parser.yy"7177 case 385: 7178 7179 /* Line 1806 of yacc.c */ 7180 #line 1496 "parser.yy" 7138 7181 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7139 7182 break; 7140 7183 7141 case 38 5:7142 7143 /* Line 1806 of yacc.c */ 7144 #line 149 3"parser.yy"7184 case 386: 7185 7186 /* Line 1806 of yacc.c */ 7187 #line 1498 "parser.yy" 7145 7188 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7146 7189 break; 7147 7190 7148 case 38 6:7149 7150 /* Line 1806 of yacc.c */ 7151 #line 1 496"parser.yy"7191 case 387: 7192 7193 /* Line 1806 of yacc.c */ 7194 #line 1501 "parser.yy" 7152 7195 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7153 7196 break; 7154 7197 7155 case 38 7:7156 7157 /* Line 1806 of yacc.c */ 7158 #line 1 499"parser.yy"7198 case 388: 7199 7200 /* Line 1806 of yacc.c */ 7201 #line 1504 "parser.yy" 7159 7202 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7160 7203 break; 7161 7204 7162 case 3 89:7163 7164 /* Line 1806 of yacc.c */ 7165 #line 15 05"parser.yy"7205 case 390: 7206 7207 /* Line 1806 of yacc.c */ 7208 #line 1510 "parser.yy" 7166 7209 { (yyval.en) = 0; } 7167 7210 break; 7168 7211 7169 case 39 0:7170 7171 /* Line 1806 of yacc.c */ 7172 #line 15 07"parser.yy"7212 case 391: 7213 7214 /* Line 1806 of yacc.c */ 7215 #line 1512 "parser.yy" 7173 7216 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7174 7217 break; 7175 7218 7176 case 39 1:7177 7178 /* Line 1806 of yacc.c */ 7179 #line 151 2"parser.yy"7219 case 392: 7220 7221 /* Line 1806 of yacc.c */ 7222 #line 1517 "parser.yy" 7180 7223 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7181 7224 break; 7182 7225 7183 case 39 3:7184 7185 /* Line 1806 of yacc.c */ 7186 #line 152 1"parser.yy"7226 case 394: 7227 7228 /* Line 1806 of yacc.c */ 7229 #line 1526 "parser.yy" 7187 7230 { (yyval.decl) = DeclarationNode::newEnum( 0, (yyvsp[(3) - (5)].decl) ); } 7188 7231 break; 7189 7232 7190 case 394:7191 7192 /* Line 1806 of yacc.c */7193 #line 1523 "parser.yy"7194 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (6)].tok), (yyvsp[(4) - (6)].decl) ); }7195 break;7196 7197 7233 case 395: 7198 7234 7199 7235 /* Line 1806 of yacc.c */ 7200 #line 1525 "parser.yy" 7201 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); } 7236 #line 1528 "parser.yy" 7237 { 7238 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); 7239 (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (2)].tok), 0 ); 7240 } 7202 7241 break; 7203 7242 … … 7205 7244 7206 7245 /* Line 1806 of yacc.c */ 7207 #line 1530 "parser.yy" 7246 #line 1533 "parser.yy" 7247 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7248 break; 7249 7250 case 397: 7251 7252 /* Line 1806 of yacc.c */ 7253 #line 1535 "parser.yy" 7254 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7255 break; 7256 7257 case 398: 7258 7259 /* Line 1806 of yacc.c */ 7260 #line 1540 "parser.yy" 7208 7261 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7209 7262 break; 7210 7263 7211 case 39 7:7212 7213 /* Line 1806 of yacc.c */ 7214 #line 15 32 "parser.yy"7264 case 399: 7265 7266 /* Line 1806 of yacc.c */ 7267 #line 1542 "parser.yy" 7215 7268 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7216 7269 break; 7217 7270 7218 case 398:7219 7220 /* Line 1806 of yacc.c */ 7221 #line 15 37 "parser.yy"7271 case 400: 7272 7273 /* Line 1806 of yacc.c */ 7274 #line 1547 "parser.yy" 7222 7275 { (yyval.en) = 0; } 7223 7276 break; 7224 7277 7225 case 399:7226 7227 /* Line 1806 of yacc.c */ 7228 #line 15 39 "parser.yy"7278 case 401: 7279 7280 /* Line 1806 of yacc.c */ 7281 #line 1549 "parser.yy" 7229 7282 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7230 7283 break; 7231 7284 7232 case 40 0:7233 7234 /* Line 1806 of yacc.c */ 7235 #line 15 46 "parser.yy"7285 case 402: 7286 7287 /* Line 1806 of yacc.c */ 7288 #line 1556 "parser.yy" 7236 7289 { (yyval.decl) = 0; } 7237 7290 break; 7238 7291 7239 case 40 4:7240 7241 /* Line 1806 of yacc.c */ 7242 #line 15 54 "parser.yy"7292 case 406: 7293 7294 /* Line 1806 of yacc.c */ 7295 #line 1564 "parser.yy" 7243 7296 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7244 7297 break; 7245 7298 7246 case 40 5:7247 7248 /* Line 1806 of yacc.c */ 7249 #line 15 56 "parser.yy"7299 case 407: 7300 7301 /* Line 1806 of yacc.c */ 7302 #line 1566 "parser.yy" 7250 7303 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7251 7304 break; 7252 7305 7253 case 40 6:7254 7255 /* Line 1806 of yacc.c */ 7256 #line 15 58 "parser.yy"7306 case 408: 7307 7308 /* Line 1806 of yacc.c */ 7309 #line 1568 "parser.yy" 7257 7310 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7258 7311 break; 7259 7312 7260 case 408:7261 7262 /* Line 1806 of yacc.c */7263 #line 1566 "parser.yy"7264 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7265 break;7266 7267 case 409:7268 7269 /* Line 1806 of yacc.c */7270 #line 1568 "parser.yy"7271 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }7272 break;7273 7274 7313 case 410: 7275 7276 /* Line 1806 of yacc.c */7277 #line 1570 "parser.yy"7278 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }7279 break;7280 7281 case 412:7282 7314 7283 7315 /* Line 1806 of yacc.c */ … … 7286 7318 break; 7287 7319 7288 case 413: 7289 7290 /* Line 1806 of yacc.c */ 7291 #line 1581 "parser.yy" 7320 case 411: 7321 7322 /* Line 1806 of yacc.c */ 7323 #line 1578 "parser.yy" 7324 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7325 break; 7326 7327 case 412: 7328 7329 /* Line 1806 of yacc.c */ 7330 #line 1580 "parser.yy" 7331 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7332 break; 7333 7334 case 414: 7335 7336 /* Line 1806 of yacc.c */ 7337 #line 1586 "parser.yy" 7338 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7339 break; 7340 7341 case 415: 7342 7343 /* Line 1806 of yacc.c */ 7344 #line 1591 "parser.yy" 7292 7345 { (yyval.decl) = 0; } 7293 7346 break; 7294 7347 7295 case 41 6:7296 7297 /* Line 1806 of yacc.c */ 7298 #line 15 88 "parser.yy"7348 case 418: 7349 7350 /* Line 1806 of yacc.c */ 7351 #line 1598 "parser.yy" 7299 7352 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7300 7353 break; 7301 7354 7302 case 4 19:7303 7304 /* Line 1806 of yacc.c */ 7305 #line 1 595 "parser.yy"7355 case 421: 7356 7357 /* Line 1806 of yacc.c */ 7358 #line 1605 "parser.yy" 7306 7359 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7307 7360 break; 7308 7361 7309 case 42 0:7310 7311 /* Line 1806 of yacc.c */ 7312 #line 1 597 "parser.yy"7362 case 422: 7363 7364 /* Line 1806 of yacc.c */ 7365 #line 1607 "parser.yy" 7313 7366 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7314 7367 break; 7315 7368 7316 case 42 2:7317 7318 /* Line 1806 of yacc.c */ 7319 #line 16 06 "parser.yy"7369 case 424: 7370 7371 /* Line 1806 of yacc.c */ 7372 #line 1616 "parser.yy" 7320 7373 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7321 7374 break; 7322 7375 7323 case 42 3:7324 7325 /* Line 1806 of yacc.c */ 7326 #line 16 09 "parser.yy"7376 case 425: 7377 7378 /* Line 1806 of yacc.c */ 7379 #line 1619 "parser.yy" 7327 7380 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7328 7381 break; 7329 7382 7330 case 42 4:7331 7332 /* Line 1806 of yacc.c */ 7333 #line 16 11 "parser.yy"7383 case 426: 7384 7385 /* Line 1806 of yacc.c */ 7386 #line 1621 "parser.yy" 7334 7387 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7335 7388 break; 7336 7389 7337 case 4 29:7338 7339 /* Line 1806 of yacc.c */ 7340 #line 16 21 "parser.yy"7390 case 431: 7391 7392 /* Line 1806 of yacc.c */ 7393 #line 1631 "parser.yy" 7341 7394 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7342 7395 break; 7343 7396 7344 case 43 1:7345 7346 /* Line 1806 of yacc.c */ 7347 #line 16 27 "parser.yy"7397 case 433: 7398 7399 /* Line 1806 of yacc.c */ 7400 #line 1637 "parser.yy" 7348 7401 { 7349 7402 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7352 7405 break; 7353 7406 7354 case 43 2:7355 7356 /* Line 1806 of yacc.c */ 7357 #line 16 32 "parser.yy"7407 case 434: 7408 7409 /* Line 1806 of yacc.c */ 7410 #line 1642 "parser.yy" 7358 7411 { 7359 7412 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7362 7415 break; 7363 7416 7364 case 43 4:7365 7366 /* Line 1806 of yacc.c */ 7367 #line 16 41 "parser.yy"7417 case 436: 7418 7419 /* Line 1806 of yacc.c */ 7420 #line 1651 "parser.yy" 7368 7421 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7369 7422 break; 7370 7423 7371 case 43 5:7372 7373 /* Line 1806 of yacc.c */ 7374 #line 16 50 "parser.yy"7424 case 437: 7425 7426 /* Line 1806 of yacc.c */ 7427 #line 1660 "parser.yy" 7375 7428 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7376 7429 break; 7377 7430 7378 case 43 6:7379 7380 /* Line 1806 of yacc.c */ 7381 #line 16 52 "parser.yy"7431 case 438: 7432 7433 /* Line 1806 of yacc.c */ 7434 #line 1662 "parser.yy" 7382 7435 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7383 7436 break; 7384 7437 7385 case 4 48:7386 7387 /* Line 1806 of yacc.c */ 7388 #line 16 77 "parser.yy"7438 case 450: 7439 7440 /* Line 1806 of yacc.c */ 7441 #line 1687 "parser.yy" 7389 7442 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7390 7443 break; 7391 7444 7392 case 45 2:7393 7394 /* Line 1806 of yacc.c */ 7395 #line 16 85 "parser.yy"7445 case 454: 7446 7447 /* Line 1806 of yacc.c */ 7448 #line 1695 "parser.yy" 7396 7449 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7397 7450 break; 7398 7451 7399 case 45 3:7400 7401 /* Line 1806 of yacc.c */ 7402 #line 1 690 "parser.yy"7452 case 455: 7453 7454 /* Line 1806 of yacc.c */ 7455 #line 1700 "parser.yy" 7403 7456 { (yyval.in) = 0; } 7404 7457 break; 7405 7458 7406 case 45 4:7407 7408 /* Line 1806 of yacc.c */ 7409 #line 1 692 "parser.yy"7459 case 456: 7460 7461 /* Line 1806 of yacc.c */ 7462 #line 1702 "parser.yy" 7410 7463 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7411 7464 break; 7412 7465 7413 case 45 5:7414 7415 /* Line 1806 of yacc.c */ 7416 #line 1 694 "parser.yy"7466 case 457: 7467 7468 /* Line 1806 of yacc.c */ 7469 #line 1704 "parser.yy" 7417 7470 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7418 7471 break; 7419 7472 7420 case 45 6:7421 7422 /* Line 1806 of yacc.c */ 7423 #line 1 698 "parser.yy"7473 case 458: 7474 7475 /* Line 1806 of yacc.c */ 7476 #line 1708 "parser.yy" 7424 7477 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7425 7478 break; 7426 7479 7427 case 45 7:7428 7429 /* Line 1806 of yacc.c */ 7430 #line 1 699 "parser.yy"7480 case 459: 7481 7482 /* Line 1806 of yacc.c */ 7483 #line 1709 "parser.yy" 7431 7484 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7432 7485 break; 7433 7486 7434 case 4 58:7435 7436 /* Line 1806 of yacc.c */ 7437 #line 17 04 "parser.yy"7487 case 460: 7488 7489 /* Line 1806 of yacc.c */ 7490 #line 1714 "parser.yy" 7438 7491 { (yyval.in) = 0; } 7439 7492 break; 7440 7493 7441 case 46 0:7442 7443 /* Line 1806 of yacc.c */ 7444 #line 17 06 "parser.yy"7494 case 462: 7495 7496 /* Line 1806 of yacc.c */ 7497 #line 1716 "parser.yy" 7445 7498 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7446 7499 break; 7447 7500 7448 case 46 1:7449 7450 /* Line 1806 of yacc.c */ 7451 #line 17 07 "parser.yy"7501 case 463: 7502 7503 /* Line 1806 of yacc.c */ 7504 #line 1717 "parser.yy" 7452 7505 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_link( (yyvsp[(3) - (3)].in) ) ); } 7453 7506 break; 7454 7507 7455 case 46 2:7456 7457 /* Line 1806 of yacc.c */ 7458 #line 17 09 "parser.yy"7508 case 464: 7509 7510 /* Line 1806 of yacc.c */ 7511 #line 1719 "parser.yy" 7459 7512 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_link( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7460 7513 break; 7461 7514 7462 case 46 4:7463 7464 /* Line 1806 of yacc.c */ 7465 #line 17 25 "parser.yy"7515 case 466: 7516 7517 /* Line 1806 of yacc.c */ 7518 #line 1735 "parser.yy" 7466 7519 { (yyval.en) = new VarRefNode( (yyvsp[(1) - (2)].tok) ); } 7467 7520 break; 7468 7521 7469 case 46 6:7470 7471 /* Line 1806 of yacc.c */ 7472 #line 17 31 "parser.yy"7522 case 468: 7523 7524 /* Line 1806 of yacc.c */ 7525 #line 1741 "parser.yy" 7473 7526 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_link( (yyvsp[(2) - (2)].en) )); } 7474 7527 break; 7475 7528 7476 case 46 7:7477 7478 /* Line 1806 of yacc.c */ 7479 #line 17 39 "parser.yy"7529 case 469: 7530 7531 /* Line 1806 of yacc.c */ 7532 #line 1749 "parser.yy" 7480 7533 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(1) - (1)].tok) ) ); } 7481 7534 break; 7482 7535 7483 case 4 68:7484 7485 /* Line 1806 of yacc.c */ 7486 #line 17 41 "parser.yy"7536 case 470: 7537 7538 /* Line 1806 of yacc.c */ 7539 #line 1751 "parser.yy" 7487 7540 { (yyval.en) = new DesignatorNode( new VarRefNode( (yyvsp[(2) - (2)].tok) ) ); } 7488 7541 break; 7489 7542 7490 case 4 69:7491 7492 /* Line 1806 of yacc.c */ 7493 #line 17 44 "parser.yy"7543 case 471: 7544 7545 /* Line 1806 of yacc.c */ 7546 #line 1754 "parser.yy" 7494 7547 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7495 7548 break; 7496 7549 7497 case 47 0:7498 7499 /* Line 1806 of yacc.c */ 7500 #line 17 46 "parser.yy"7550 case 472: 7551 7552 /* Line 1806 of yacc.c */ 7553 #line 1756 "parser.yy" 7501 7554 { (yyval.en) = new DesignatorNode( (yyvsp[(3) - (5)].en), true ); } 7502 7555 break; 7503 7556 7504 case 47 1:7505 7506 /* Line 1806 of yacc.c */ 7507 #line 17 48 "parser.yy"7557 case 473: 7558 7559 /* Line 1806 of yacc.c */ 7560 #line 1758 "parser.yy" 7508 7561 { (yyval.en) = new DesignatorNode( new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ), true ); } 7509 7562 break; 7510 7563 7511 case 47 2:7512 7513 /* Line 1806 of yacc.c */ 7514 #line 17 50 "parser.yy"7564 case 474: 7565 7566 /* Line 1806 of yacc.c */ 7567 #line 1760 "parser.yy" 7515 7568 { (yyval.en) = new DesignatorNode( (yyvsp[(4) - (6)].en) ); } 7516 7569 break; 7517 7570 7518 case 474:7519 7520 /* Line 1806 of yacc.c */7521 #line 1774 "parser.yy"7522 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }7523 break;7524 7525 case 475:7526 7527 /* Line 1806 of yacc.c */7528 #line 1776 "parser.yy"7529 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }7530 break;7531 7532 7571 case 476: 7533 7534 /* Line 1806 of yacc.c */7535 #line 1778 "parser.yy"7536 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }7537 break;7538 7539 case 478:7540 7572 7541 7573 /* Line 1806 of yacc.c */ … … 7544 7576 break; 7545 7577 7546 case 47 9:7578 case 477: 7547 7579 7548 7580 /* Line 1806 of yacc.c */ … … 7551 7583 break; 7552 7584 7585 case 478: 7586 7587 /* Line 1806 of yacc.c */ 7588 #line 1788 "parser.yy" 7589 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7590 break; 7591 7553 7592 case 480: 7554 7593 7555 7594 /* Line 1806 of yacc.c */ 7556 #line 1791 "parser.yy" 7595 #line 1794 "parser.yy" 7596 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7597 break; 7598 7599 case 481: 7600 7601 /* Line 1806 of yacc.c */ 7602 #line 1796 "parser.yy" 7603 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7604 break; 7605 7606 case 482: 7607 7608 /* Line 1806 of yacc.c */ 7609 #line 1801 "parser.yy" 7557 7610 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7558 7611 break; 7559 7612 7560 case 48 2:7561 7562 /* Line 1806 of yacc.c */ 7563 #line 1 797 "parser.yy"7613 case 484: 7614 7615 /* Line 1806 of yacc.c */ 7616 #line 1807 "parser.yy" 7564 7617 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7565 7618 break; 7566 7619 7567 case 48 3:7568 7569 /* Line 1806 of yacc.c */ 7570 #line 18 02 "parser.yy"7620 case 485: 7621 7622 /* Line 1806 of yacc.c */ 7623 #line 1812 "parser.yy" 7571 7624 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7572 7625 break; 7573 7626 7574 case 48 4:7575 7576 /* Line 1806 of yacc.c */ 7577 #line 18 04 "parser.yy"7627 case 486: 7628 7629 /* Line 1806 of yacc.c */ 7630 #line 1814 "parser.yy" 7578 7631 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7579 7632 break; 7580 7633 7581 case 48 6:7582 7583 /* Line 1806 of yacc.c */ 7584 #line 18 10 "parser.yy"7634 case 488: 7635 7636 /* Line 1806 of yacc.c */ 7637 #line 1820 "parser.yy" 7585 7638 { (yyval.tclass) = DeclarationNode::Type; } 7586 7639 break; 7587 7640 7588 case 48 7:7589 7590 /* Line 1806 of yacc.c */ 7591 #line 18 12 "parser.yy"7641 case 489: 7642 7643 /* Line 1806 of yacc.c */ 7644 #line 1822 "parser.yy" 7592 7645 { (yyval.tclass) = DeclarationNode::Ftype; } 7593 7646 break; 7594 7647 7595 case 4 88:7596 7597 /* Line 1806 of yacc.c */ 7598 #line 18 14 "parser.yy"7648 case 490: 7649 7650 /* Line 1806 of yacc.c */ 7651 #line 1824 "parser.yy" 7599 7652 { (yyval.tclass) = DeclarationNode::Dtype; } 7600 7653 break; 7601 7654 7602 case 4 89:7603 7604 /* Line 1806 of yacc.c */ 7605 #line 18 19 "parser.yy"7655 case 491: 7656 7657 /* Line 1806 of yacc.c */ 7658 #line 1829 "parser.yy" 7606 7659 { (yyval.decl) = 0; } 7607 7660 break; 7608 7661 7609 case 49 0:7610 7611 /* Line 1806 of yacc.c */ 7612 #line 18 21 "parser.yy"7662 case 492: 7663 7664 /* Line 1806 of yacc.c */ 7665 #line 1831 "parser.yy" 7613 7666 { (yyval.decl) = (yyvsp[(1) - (2)].decl) == 0 ? (yyvsp[(2) - (2)].decl) : (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ); } 7614 7667 break; 7615 7668 7616 case 49 1:7617 7618 /* Line 1806 of yacc.c */ 7619 #line 18 26 "parser.yy"7669 case 493: 7670 7671 /* Line 1806 of yacc.c */ 7672 #line 1836 "parser.yy" 7620 7673 { 7621 7674 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7624 7677 break; 7625 7678 7626 case 49 2:7627 7628 /* Line 1806 of yacc.c */ 7629 #line 18 31 "parser.yy"7679 case 494: 7680 7681 /* Line 1806 of yacc.c */ 7682 #line 1841 "parser.yy" 7630 7683 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7631 7684 break; 7632 7685 7633 case 49 3:7634 7635 /* Line 1806 of yacc.c */ 7636 #line 18 33 "parser.yy"7686 case 495: 7687 7688 /* Line 1806 of yacc.c */ 7689 #line 1843 "parser.yy" 7637 7690 { (yyval.decl) = 0; } 7638 7691 break; 7639 7692 7640 case 49 4:7641 7642 /* Line 1806 of yacc.c */ 7643 #line 18 38 "parser.yy"7693 case 496: 7694 7695 /* Line 1806 of yacc.c */ 7696 #line 1848 "parser.yy" 7644 7697 { (yyval.en) = new TypeValueNode( (yyvsp[(1) - (1)].decl) ); } 7645 7698 break; 7646 7699 7647 case 49 6:7648 7649 /* Line 1806 of yacc.c */ 7650 #line 18 41 "parser.yy"7700 case 498: 7701 7702 /* Line 1806 of yacc.c */ 7703 #line 1851 "parser.yy" 7651 7704 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( new TypeValueNode( (yyvsp[(3) - (3)].decl) ))); } 7652 7705 break; 7653 7706 7654 case 49 7:7655 7656 /* Line 1806 of yacc.c */ 7657 #line 18 43 "parser.yy"7707 case 499: 7708 7709 /* Line 1806 of yacc.c */ 7710 #line 1853 "parser.yy" 7658 7711 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_link( (yyvsp[(3) - (3)].en) )); } 7659 7712 break; 7660 7713 7661 case 498:7662 7663 /* Line 1806 of yacc.c */ 7664 #line 18 48 "parser.yy"7714 case 500: 7715 7716 /* Line 1806 of yacc.c */ 7717 #line 1858 "parser.yy" 7665 7718 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7666 7719 break; 7667 7720 7668 case 499:7669 7670 /* Line 1806 of yacc.c */ 7671 #line 18 50 "parser.yy"7721 case 501: 7722 7723 /* Line 1806 of yacc.c */ 7724 #line 1860 "parser.yy" 7672 7725 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7673 7726 break; 7674 7727 7675 case 50 0:7676 7677 /* Line 1806 of yacc.c */ 7678 #line 18 52 "parser.yy"7728 case 502: 7729 7730 /* Line 1806 of yacc.c */ 7731 #line 1862 "parser.yy" 7679 7732 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7680 7733 break; 7681 7734 7682 case 50 1:7683 7684 /* Line 1806 of yacc.c */ 7685 #line 18 57 "parser.yy"7735 case 503: 7736 7737 /* Line 1806 of yacc.c */ 7738 #line 1867 "parser.yy" 7686 7739 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7687 7740 break; 7688 7741 7689 case 50 2:7690 7691 /* Line 1806 of yacc.c */ 7692 #line 18 59 "parser.yy"7742 case 504: 7743 7744 /* Line 1806 of yacc.c */ 7745 #line 1869 "parser.yy" 7693 7746 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7694 7747 break; 7695 7748 7696 case 50 3:7697 7698 /* Line 1806 of yacc.c */ 7699 #line 18 64 "parser.yy"7749 case 505: 7750 7751 /* Line 1806 of yacc.c */ 7752 #line 1874 "parser.yy" 7700 7753 { 7701 7754 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7704 7757 break; 7705 7758 7706 case 50 4:7707 7708 /* Line 1806 of yacc.c */ 7709 #line 18 69 "parser.yy"7759 case 506: 7760 7761 /* Line 1806 of yacc.c */ 7762 #line 1879 "parser.yy" 7710 7763 { 7711 7764 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7714 7767 break; 7715 7768 7716 case 50 5:7717 7718 /* Line 1806 of yacc.c */ 7719 #line 18 77 "parser.yy"7769 case 507: 7770 7771 /* Line 1806 of yacc.c */ 7772 #line 1887 "parser.yy" 7720 7773 { 7721 7774 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7724 7777 break; 7725 7778 7726 case 50 6:7727 7728 /* Line 1806 of yacc.c */ 7729 #line 18 82 "parser.yy"7779 case 508: 7780 7781 /* Line 1806 of yacc.c */ 7782 #line 1892 "parser.yy" 7730 7783 { 7731 7784 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7734 7787 break; 7735 7788 7736 case 50 7:7737 7738 /* Line 1806 of yacc.c */ 7739 #line 18 87 "parser.yy"7789 case 509: 7790 7791 /* Line 1806 of yacc.c */ 7792 #line 1897 "parser.yy" 7740 7793 { 7741 7794 typedefTable.leaveTrait(); … … 7745 7798 break; 7746 7799 7747 case 5 09:7748 7749 /* Line 1806 of yacc.c */ 7750 #line 1 897 "parser.yy"7800 case 511: 7801 7802 /* Line 1806 of yacc.c */ 7803 #line 1907 "parser.yy" 7751 7804 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7752 7805 break; 7753 7806 7754 case 51 2:7755 7756 /* Line 1806 of yacc.c */ 7757 #line 19 07 "parser.yy"7807 case 514: 7808 7809 /* Line 1806 of yacc.c */ 7810 #line 1917 "parser.yy" 7758 7811 { 7759 7812 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7762 7815 break; 7763 7816 7764 case 51 3:7765 7766 /* Line 1806 of yacc.c */ 7767 #line 19 12 "parser.yy"7817 case 515: 7818 7819 /* Line 1806 of yacc.c */ 7820 #line 1922 "parser.yy" 7768 7821 { 7769 7822 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7772 7825 break; 7773 7826 7774 case 51 4:7775 7776 /* Line 1806 of yacc.c */ 7777 #line 19 17 "parser.yy"7827 case 516: 7828 7829 /* Line 1806 of yacc.c */ 7830 #line 1927 "parser.yy" 7778 7831 { 7779 7832 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7782 7835 break; 7783 7836 7784 case 51 5:7785 7786 /* Line 1806 of yacc.c */ 7787 #line 19 25 "parser.yy"7837 case 517: 7838 7839 /* Line 1806 of yacc.c */ 7840 #line 1935 "parser.yy" 7788 7841 { 7789 7842 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7792 7845 break; 7793 7846 7794 case 51 6:7795 7796 /* Line 1806 of yacc.c */ 7797 #line 19 30 "parser.yy"7847 case 518: 7848 7849 /* Line 1806 of yacc.c */ 7850 #line 1940 "parser.yy" 7798 7851 { 7799 7852 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7802 7855 break; 7803 7856 7804 case 51 7:7805 7806 /* Line 1806 of yacc.c */ 7807 #line 19 40 "parser.yy"7857 case 519: 7858 7859 /* Line 1806 of yacc.c */ 7860 #line 1950 "parser.yy" 7808 7861 {} 7809 7862 break; 7810 7863 7811 case 5 18:7812 7813 /* Line 1806 of yacc.c */ 7814 #line 19 42 "parser.yy"7864 case 520: 7865 7866 /* Line 1806 of yacc.c */ 7867 #line 1952 "parser.yy" 7815 7868 { 7816 7869 if ( theTree ) { … … 7822 7875 break; 7823 7876 7824 case 52 0:7825 7826 /* Line 1806 of yacc.c */ 7827 #line 19 54 "parser.yy"7877 case 522: 7878 7879 /* Line 1806 of yacc.c */ 7880 #line 1964 "parser.yy" 7828 7881 { (yyval.decl) = ( (yyvsp[(1) - (3)].decl) != NULL ) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7829 7882 break; 7830 7883 7831 case 52 1:7832 7833 /* Line 1806 of yacc.c */ 7834 #line 19 59 "parser.yy"7884 case 523: 7885 7886 /* Line 1806 of yacc.c */ 7887 #line 1969 "parser.yy" 7835 7888 { (yyval.decl) = 0; } 7836 7889 break; 7837 7890 7838 case 52 5:7839 7840 /* Line 1806 of yacc.c */ 7841 #line 19 67 "parser.yy"7891 case 527: 7892 7893 /* Line 1806 of yacc.c */ 7894 #line 1977 "parser.yy" 7842 7895 {} 7843 7896 break; 7844 7897 7845 case 52 6:7846 7847 /* Line 1806 of yacc.c */ 7848 #line 19 69 "parser.yy"7898 case 528: 7899 7900 /* Line 1806 of yacc.c */ 7901 #line 1979 "parser.yy" 7849 7902 { 7850 7903 linkageStack.push( linkage ); … … 7853 7906 break; 7854 7907 7855 case 52 7:7856 7857 /* Line 1806 of yacc.c */ 7858 #line 19 74 "parser.yy"7908 case 529: 7909 7910 /* Line 1806 of yacc.c */ 7911 #line 1984 "parser.yy" 7859 7912 { 7860 7913 linkage = linkageStack.top(); … … 7864 7917 break; 7865 7918 7866 case 5 28:7867 7868 /* Line 1806 of yacc.c */ 7869 #line 19 80 "parser.yy"7919 case 530: 7920 7921 /* Line 1806 of yacc.c */ 7922 #line 1990 "parser.yy" 7870 7923 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7871 7924 break; 7872 7925 7873 case 53 0:7874 7875 /* Line 1806 of yacc.c */ 7876 #line 1990 "parser.yy"7926 case 532: 7927 7928 /* Line 1806 of yacc.c */ 7929 #line 2000 "parser.yy" 7877 7930 { 7878 7931 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7882 7935 break; 7883 7936 7884 case 53 1:7885 7886 /* Line 1806 of yacc.c */ 7887 #line 1996 "parser.yy"7937 case 533: 7938 7939 /* Line 1806 of yacc.c */ 7940 #line 2006 "parser.yy" 7888 7941 { 7889 7942 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7893 7946 break; 7894 7947 7895 case 53 2:7896 7897 /* Line 1806 of yacc.c */ 7898 #line 20 05 "parser.yy"7948 case 534: 7949 7950 /* Line 1806 of yacc.c */ 7951 #line 2015 "parser.yy" 7899 7952 { 7900 7953 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7904 7957 break; 7905 7958 7906 case 53 3:7907 7908 /* Line 1806 of yacc.c */ 7909 #line 20 11 "parser.yy"7959 case 535: 7960 7961 /* Line 1806 of yacc.c */ 7962 #line 2021 "parser.yy" 7910 7963 { 7911 7964 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7915 7968 break; 7916 7969 7917 case 53 4:7918 7919 /* Line 1806 of yacc.c */ 7920 #line 20 17 "parser.yy"7970 case 536: 7971 7972 /* Line 1806 of yacc.c */ 7973 #line 2027 "parser.yy" 7921 7974 { 7922 7975 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7926 7979 break; 7927 7980 7928 case 53 5:7929 7930 /* Line 1806 of yacc.c */ 7931 #line 20 23 "parser.yy"7981 case 537: 7982 7983 /* Line 1806 of yacc.c */ 7984 #line 2033 "parser.yy" 7932 7985 { 7933 7986 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7937 7990 break; 7938 7991 7939 case 53 6:7940 7941 /* Line 1806 of yacc.c */ 7942 #line 20 29 "parser.yy"7992 case 538: 7993 7994 /* Line 1806 of yacc.c */ 7995 #line 2039 "parser.yy" 7943 7996 { 7944 7997 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7948 8001 break; 7949 8002 7950 case 53 7:7951 7952 /* Line 1806 of yacc.c */ 7953 #line 20 37 "parser.yy"8003 case 539: 8004 8005 /* Line 1806 of yacc.c */ 8006 #line 2047 "parser.yy" 7954 8007 { 7955 8008 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7959 8012 break; 7960 8013 7961 case 5 38:7962 7963 /* Line 1806 of yacc.c */ 7964 #line 20 43 "parser.yy"8014 case 540: 8015 8016 /* Line 1806 of yacc.c */ 8017 #line 2053 "parser.yy" 7965 8018 { 7966 8019 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7970 8023 break; 7971 8024 7972 case 5 39:7973 7974 /* Line 1806 of yacc.c */ 7975 #line 20 51 "parser.yy"8025 case 541: 8026 8027 /* Line 1806 of yacc.c */ 8028 #line 2061 "parser.yy" 7976 8029 { 7977 8030 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7981 8034 break; 7982 8035 7983 case 54 0:7984 7985 /* Line 1806 of yacc.c */ 7986 #line 20 57 "parser.yy"8036 case 542: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2067 "parser.yy" 7987 8040 { 7988 8041 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7992 8045 break; 7993 8046 7994 case 54 4:7995 7996 /* Line 1806 of yacc.c */ 7997 #line 20 72 "parser.yy"8047 case 546: 8048 8049 /* Line 1806 of yacc.c */ 8050 #line 2082 "parser.yy" 7998 8051 { (yyval.en) = new CompositeExprNode( new OperatorNode( OperatorNode::Range ), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ); } 7999 8052 break; 8000 8053 8001 case 54 7:8002 8003 /* Line 1806 of yacc.c */ 8004 #line 20 82 "parser.yy"8054 case 549: 8055 8056 /* Line 1806 of yacc.c */ 8057 #line 2092 "parser.yy" 8005 8058 { (yyval.decl) = 0; } 8006 8059 break; 8007 8060 8008 case 55 0:8009 8010 /* Line 1806 of yacc.c */ 8011 #line 20 89 "parser.yy"8061 case 552: 8062 8063 /* Line 1806 of yacc.c */ 8064 #line 2099 "parser.yy" 8012 8065 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8013 8066 break; 8014 8067 8015 case 55 1:8016 8017 /* Line 1806 of yacc.c */ 8018 #line 2 095 "parser.yy"8068 case 553: 8069 8070 /* Line 1806 of yacc.c */ 8071 #line 2105 "parser.yy" 8019 8072 { (yyval.decl) = 0; } 8020 8073 break; 8021 8074 8022 case 55 7:8023 8024 /* Line 1806 of yacc.c */ 8025 #line 21 10 "parser.yy"8075 case 559: 8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2120 "parser.yy" 8026 8079 {} 8027 8080 break; 8028 8081 8029 case 5 58:8030 8031 /* Line 1806 of yacc.c */ 8032 #line 21 11 "parser.yy"8082 case 560: 8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2121 "parser.yy" 8033 8086 {} 8034 8087 break; 8035 8088 8036 case 5 59:8037 8038 /* Line 1806 of yacc.c */ 8039 #line 21 12 "parser.yy"8089 case 561: 8090 8091 /* Line 1806 of yacc.c */ 8092 #line 2122 "parser.yy" 8040 8093 {} 8041 8094 break; 8042 8095 8043 case 56 0:8044 8045 /* Line 1806 of yacc.c */ 8046 #line 21 13 "parser.yy"8096 case 562: 8097 8098 /* Line 1806 of yacc.c */ 8099 #line 2123 "parser.yy" 8047 8100 {} 8048 8101 break; 8049 8102 8050 case 56 1:8051 8052 /* Line 1806 of yacc.c */ 8053 #line 21 48 "parser.yy"8103 case 563: 8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2158 "parser.yy" 8054 8107 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8055 8108 break; 8056 8109 8057 case 56 3:8058 8059 /* Line 1806 of yacc.c */ 8060 #line 21 51 "parser.yy"8110 case 565: 8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2161 "parser.yy" 8061 8114 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8062 8115 break; 8063 8116 8064 case 56 4:8065 8066 /* Line 1806 of yacc.c */ 8067 #line 21 53 "parser.yy"8117 case 566: 8118 8119 /* Line 1806 of yacc.c */ 8120 #line 2163 "parser.yy" 8068 8121 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8069 8122 break; 8070 8123 8071 case 56 5:8072 8073 /* Line 1806 of yacc.c */ 8074 #line 21 58 "parser.yy"8124 case 567: 8125 8126 /* Line 1806 of yacc.c */ 8127 #line 2168 "parser.yy" 8075 8128 { 8076 8129 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8079 8132 break; 8080 8133 8081 case 56 6:8082 8083 /* Line 1806 of yacc.c */ 8084 #line 21 63 "parser.yy"8134 case 568: 8135 8136 /* Line 1806 of yacc.c */ 8137 #line 2173 "parser.yy" 8085 8138 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8086 8139 break; 8087 8140 8088 case 56 7:8089 8090 /* Line 1806 of yacc.c */ 8091 #line 21 68 "parser.yy"8141 case 569: 8142 8143 /* Line 1806 of yacc.c */ 8144 #line 2178 "parser.yy" 8092 8145 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8093 8146 break; 8094 8147 8095 case 5 68:8096 8097 /* Line 1806 of yacc.c */ 8098 #line 21 70 "parser.yy"8148 case 570: 8149 8150 /* Line 1806 of yacc.c */ 8151 #line 2180 "parser.yy" 8099 8152 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8100 8153 break; 8101 8154 8102 case 5 69:8103 8104 /* Line 1806 of yacc.c */ 8105 #line 21 72 "parser.yy"8155 case 571: 8156 8157 /* Line 1806 of yacc.c */ 8158 #line 2182 "parser.yy" 8106 8159 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8107 8160 break; 8108 8161 8109 case 57 0:8110 8111 /* Line 1806 of yacc.c */ 8112 #line 21 77 "parser.yy"8162 case 572: 8163 8164 /* Line 1806 of yacc.c */ 8165 #line 2187 "parser.yy" 8113 8166 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8114 8167 break; 8115 8168 8116 case 57 1:8117 8118 /* Line 1806 of yacc.c */ 8119 #line 21 79 "parser.yy"8169 case 573: 8170 8171 /* Line 1806 of yacc.c */ 8172 #line 2189 "parser.yy" 8120 8173 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8121 8174 break; 8122 8175 8123 case 57 2:8124 8125 /* Line 1806 of yacc.c */ 8126 #line 21 81 "parser.yy"8176 case 574: 8177 8178 /* Line 1806 of yacc.c */ 8179 #line 2191 "parser.yy" 8127 8180 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8128 8181 break; 8129 8182 8130 case 57 3:8131 8132 /* Line 1806 of yacc.c */ 8133 #line 21 83 "parser.yy"8183 case 575: 8184 8185 /* Line 1806 of yacc.c */ 8186 #line 2193 "parser.yy" 8134 8187 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8135 8188 break; 8136 8189 8137 case 57 4:8138 8139 /* Line 1806 of yacc.c */ 8140 #line 21 88 "parser.yy"8190 case 576: 8191 8192 /* Line 1806 of yacc.c */ 8193 #line 2198 "parser.yy" 8141 8194 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8142 8195 break; 8143 8196 8144 case 57 5:8145 8146 /* Line 1806 of yacc.c */ 8147 #line 2 190 "parser.yy"8197 case 577: 8198 8199 /* Line 1806 of yacc.c */ 8200 #line 2200 "parser.yy" 8148 8201 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8149 8202 break; 8150 8203 8151 case 57 6:8152 8153 /* Line 1806 of yacc.c */ 8154 #line 22 00 "parser.yy"8204 case 578: 8205 8206 /* Line 1806 of yacc.c */ 8207 #line 2210 "parser.yy" 8155 8208 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8156 8209 break; 8157 8210 8158 case 5 78:8159 8160 /* Line 1806 of yacc.c */ 8161 #line 22 03 "parser.yy"8211 case 580: 8212 8213 /* Line 1806 of yacc.c */ 8214 #line 2213 "parser.yy" 8162 8215 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8163 8216 break; 8164 8217 8165 case 5 79:8166 8167 /* Line 1806 of yacc.c */ 8168 #line 22 08 "parser.yy"8218 case 581: 8219 8220 /* Line 1806 of yacc.c */ 8221 #line 2218 "parser.yy" 8169 8222 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8170 8223 break; 8171 8224 8172 case 58 0:8173 8174 /* Line 1806 of yacc.c */ 8175 #line 22 10 "parser.yy"8225 case 582: 8226 8227 /* Line 1806 of yacc.c */ 8228 #line 2220 "parser.yy" 8176 8229 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8177 8230 break; 8178 8231 8179 case 58 1:8180 8181 /* Line 1806 of yacc.c */ 8182 #line 22 12 "parser.yy"8232 case 583: 8233 8234 /* Line 1806 of yacc.c */ 8235 #line 2222 "parser.yy" 8183 8236 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8184 8237 break; 8185 8238 8186 case 58 2:8187 8188 /* Line 1806 of yacc.c */ 8189 #line 22 17 "parser.yy"8239 case 584: 8240 8241 /* Line 1806 of yacc.c */ 8242 #line 2227 "parser.yy" 8190 8243 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8191 8244 break; 8192 8245 8193 case 58 3:8194 8195 /* Line 1806 of yacc.c */ 8196 #line 22 19 "parser.yy"8246 case 585: 8247 8248 /* Line 1806 of yacc.c */ 8249 #line 2229 "parser.yy" 8197 8250 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8198 8251 break; 8199 8252 8200 case 58 4:8201 8202 /* Line 1806 of yacc.c */ 8203 #line 22 21 "parser.yy"8253 case 586: 8254 8255 /* Line 1806 of yacc.c */ 8256 #line 2231 "parser.yy" 8204 8257 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8205 8258 break; 8206 8259 8207 case 58 5:8208 8209 /* Line 1806 of yacc.c */ 8210 #line 22 26 "parser.yy"8260 case 587: 8261 8262 /* Line 1806 of yacc.c */ 8263 #line 2236 "parser.yy" 8211 8264 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8212 8265 break; 8213 8266 8214 case 58 6:8215 8216 /* Line 1806 of yacc.c */ 8217 #line 22 28 "parser.yy"8267 case 588: 8268 8269 /* Line 1806 of yacc.c */ 8270 #line 2238 "parser.yy" 8218 8271 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8219 8272 break; 8220 8273 8221 case 58 7:8222 8223 /* Line 1806 of yacc.c */ 8224 #line 22 30 "parser.yy"8274 case 589: 8275 8276 /* Line 1806 of yacc.c */ 8277 #line 2240 "parser.yy" 8225 8278 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8226 8279 break; 8227 8280 8228 case 59 1:8229 8230 /* Line 1806 of yacc.c */ 8231 #line 22 45 "parser.yy"8281 case 593: 8282 8283 /* Line 1806 of yacc.c */ 8284 #line 2255 "parser.yy" 8232 8285 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8233 8286 break; 8234 8287 8235 case 59 2:8236 8237 /* Line 1806 of yacc.c */ 8238 #line 22 47 "parser.yy"8288 case 594: 8289 8290 /* Line 1806 of yacc.c */ 8291 #line 2257 "parser.yy" 8239 8292 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8240 8293 break; 8241 8294 8242 case 59 3:8243 8244 /* Line 1806 of yacc.c */ 8245 #line 22 49 "parser.yy"8295 case 595: 8296 8297 /* Line 1806 of yacc.c */ 8298 #line 2259 "parser.yy" 8246 8299 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8247 8300 break; 8248 8301 8249 case 59 4:8250 8251 /* Line 1806 of yacc.c */ 8252 #line 22 54 "parser.yy"8302 case 596: 8303 8304 /* Line 1806 of yacc.c */ 8305 #line 2264 "parser.yy" 8253 8306 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8254 8307 break; 8255 8308 8256 case 59 5:8257 8258 /* Line 1806 of yacc.c */ 8259 #line 22 56 "parser.yy"8309 case 597: 8310 8311 /* Line 1806 of yacc.c */ 8312 #line 2266 "parser.yy" 8260 8313 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8261 8314 break; 8262 8315 8263 case 59 6:8264 8265 /* Line 1806 of yacc.c */ 8266 #line 22 58 "parser.yy"8316 case 598: 8317 8318 /* Line 1806 of yacc.c */ 8319 #line 2268 "parser.yy" 8267 8320 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8268 8321 break; 8269 8322 8270 case 59 7:8271 8272 /* Line 1806 of yacc.c */ 8273 #line 22 63 "parser.yy"8323 case 599: 8324 8325 /* Line 1806 of yacc.c */ 8326 #line 2273 "parser.yy" 8274 8327 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8275 8328 break; 8276 8329 8277 case 598:8278 8279 /* Line 1806 of yacc.c */ 8280 #line 22 65 "parser.yy"8330 case 600: 8331 8332 /* Line 1806 of yacc.c */ 8333 #line 2275 "parser.yy" 8281 8334 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8282 8335 break; 8283 8336 8284 case 599:8285 8286 /* Line 1806 of yacc.c */ 8287 #line 22 67 "parser.yy"8337 case 601: 8338 8339 /* Line 1806 of yacc.c */ 8340 #line 2277 "parser.yy" 8288 8341 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8289 8342 break; 8290 8343 8291 case 60 0:8292 8293 /* Line 1806 of yacc.c */ 8294 #line 22 82 "parser.yy"8344 case 602: 8345 8346 /* Line 1806 of yacc.c */ 8347 #line 2292 "parser.yy" 8295 8348 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8296 8349 break; 8297 8350 8298 case 60 2:8299 8300 /* Line 1806 of yacc.c */ 8301 #line 22 85 "parser.yy"8351 case 604: 8352 8353 /* Line 1806 of yacc.c */ 8354 #line 2295 "parser.yy" 8302 8355 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8303 8356 break; 8304 8357 8305 case 60 3:8306 8307 /* Line 1806 of yacc.c */ 8308 #line 22 87 "parser.yy"8358 case 605: 8359 8360 /* Line 1806 of yacc.c */ 8361 #line 2297 "parser.yy" 8309 8362 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8310 8363 break; 8311 8364 8312 case 60 5:8313 8314 /* Line 1806 of yacc.c */ 8315 #line 2 293 "parser.yy"8365 case 607: 8366 8367 /* Line 1806 of yacc.c */ 8368 #line 2303 "parser.yy" 8316 8369 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8317 8370 break; 8318 8371 8319 case 60 6:8320 8321 /* Line 1806 of yacc.c */ 8322 #line 2 298 "parser.yy"8372 case 608: 8373 8374 /* Line 1806 of yacc.c */ 8375 #line 2308 "parser.yy" 8323 8376 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8324 8377 break; 8325 8378 8326 case 60 7:8327 8328 /* Line 1806 of yacc.c */ 8329 #line 23 00 "parser.yy"8379 case 609: 8380 8381 /* Line 1806 of yacc.c */ 8382 #line 2310 "parser.yy" 8330 8383 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8331 8384 break; 8332 8385 8333 case 6 08:8334 8335 /* Line 1806 of yacc.c */ 8336 #line 23 02 "parser.yy"8386 case 610: 8387 8388 /* Line 1806 of yacc.c */ 8389 #line 2312 "parser.yy" 8337 8390 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8338 8391 break; 8339 8392 8340 case 6 09:8341 8342 /* Line 1806 of yacc.c */ 8343 #line 23 07 "parser.yy"8393 case 611: 8394 8395 /* Line 1806 of yacc.c */ 8396 #line 2317 "parser.yy" 8344 8397 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8345 8398 break; 8346 8399 8347 case 61 0:8348 8349 /* Line 1806 of yacc.c */ 8350 #line 23 09 "parser.yy"8400 case 612: 8401 8402 /* Line 1806 of yacc.c */ 8403 #line 2319 "parser.yy" 8351 8404 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8352 8405 break; 8353 8406 8354 case 61 1:8355 8356 /* Line 1806 of yacc.c */ 8357 #line 23 11 "parser.yy"8407 case 613: 8408 8409 /* Line 1806 of yacc.c */ 8410 #line 2321 "parser.yy" 8358 8411 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8359 8412 break; 8360 8413 8361 case 61 2:8362 8363 /* Line 1806 of yacc.c */ 8364 #line 23 13 "parser.yy"8414 case 614: 8415 8416 /* Line 1806 of yacc.c */ 8417 #line 2323 "parser.yy" 8365 8418 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8366 8419 break; 8367 8420 8368 case 61 3:8369 8370 /* Line 1806 of yacc.c */ 8371 #line 23 18 "parser.yy"8421 case 615: 8422 8423 /* Line 1806 of yacc.c */ 8424 #line 2328 "parser.yy" 8372 8425 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8373 8426 break; 8374 8427 8375 case 61 4:8376 8377 /* Line 1806 of yacc.c */ 8378 #line 23 20 "parser.yy"8428 case 616: 8429 8430 /* Line 1806 of yacc.c */ 8431 #line 2330 "parser.yy" 8379 8432 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8380 8433 break; 8381 8434 8382 case 61 5:8383 8384 /* Line 1806 of yacc.c */ 8385 #line 23 22 "parser.yy"8435 case 617: 8436 8437 /* Line 1806 of yacc.c */ 8438 #line 2332 "parser.yy" 8386 8439 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8387 8440 break; 8388 8441 8389 case 61 6:8390 8391 /* Line 1806 of yacc.c */ 8392 #line 23 32 "parser.yy"8442 case 618: 8443 8444 /* Line 1806 of yacc.c */ 8445 #line 2342 "parser.yy" 8393 8446 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8394 8447 break; 8395 8448 8396 case 6 18:8397 8398 /* Line 1806 of yacc.c */ 8399 #line 23 35 "parser.yy"8449 case 620: 8450 8451 /* Line 1806 of yacc.c */ 8452 #line 2345 "parser.yy" 8400 8453 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8401 8454 break; 8402 8455 8403 case 6 19:8404 8405 /* Line 1806 of yacc.c */ 8406 #line 23 37 "parser.yy"8456 case 621: 8457 8458 /* Line 1806 of yacc.c */ 8459 #line 2347 "parser.yy" 8407 8460 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8408 8461 break; 8409 8462 8410 case 62 0:8411 8412 /* Line 1806 of yacc.c */ 8413 #line 23 42 "parser.yy"8463 case 622: 8464 8465 /* Line 1806 of yacc.c */ 8466 #line 2352 "parser.yy" 8414 8467 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8415 8468 break; 8416 8469 8417 case 62 1:8418 8419 /* Line 1806 of yacc.c */ 8420 #line 23 44 "parser.yy"8470 case 623: 8471 8472 /* Line 1806 of yacc.c */ 8473 #line 2354 "parser.yy" 8421 8474 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8422 8475 break; 8423 8476 8424 case 62 2:8425 8426 /* Line 1806 of yacc.c */ 8427 #line 23 46 "parser.yy"8477 case 624: 8478 8479 /* Line 1806 of yacc.c */ 8480 #line 2356 "parser.yy" 8428 8481 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8429 8482 break; 8430 8483 8431 case 62 3:8432 8433 /* Line 1806 of yacc.c */ 8434 #line 23 51 "parser.yy"8484 case 625: 8485 8486 /* Line 1806 of yacc.c */ 8487 #line 2361 "parser.yy" 8435 8488 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8436 8489 break; 8437 8490 8438 case 62 4:8439 8440 /* Line 1806 of yacc.c */ 8441 #line 23 53 "parser.yy"8491 case 626: 8492 8493 /* Line 1806 of yacc.c */ 8494 #line 2363 "parser.yy" 8442 8495 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8443 8496 break; 8444 8497 8445 case 62 5:8446 8447 /* Line 1806 of yacc.c */ 8448 #line 23 55 "parser.yy"8498 case 627: 8499 8500 /* Line 1806 of yacc.c */ 8501 #line 2365 "parser.yy" 8449 8502 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8450 8503 break; 8451 8504 8452 case 62 6:8453 8454 /* Line 1806 of yacc.c */ 8455 #line 23 57 "parser.yy"8505 case 628: 8506 8507 /* Line 1806 of yacc.c */ 8508 #line 2367 "parser.yy" 8456 8509 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8457 8510 break; 8458 8511 8459 case 62 7:8460 8461 /* Line 1806 of yacc.c */ 8462 #line 23 62 "parser.yy"8512 case 629: 8513 8514 /* Line 1806 of yacc.c */ 8515 #line 2372 "parser.yy" 8463 8516 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8464 8517 break; 8465 8518 8466 case 6 28:8467 8468 /* Line 1806 of yacc.c */ 8469 #line 23 64 "parser.yy"8519 case 630: 8520 8521 /* Line 1806 of yacc.c */ 8522 #line 2374 "parser.yy" 8470 8523 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8471 8524 break; 8472 8525 8473 case 6 29:8474 8475 /* Line 1806 of yacc.c */ 8476 #line 23 66 "parser.yy"8526 case 631: 8527 8528 /* Line 1806 of yacc.c */ 8529 #line 2376 "parser.yy" 8477 8530 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8478 8531 break; 8479 8532 8480 case 63 0:8481 8482 /* Line 1806 of yacc.c */ 8483 #line 2 397 "parser.yy"8533 case 632: 8534 8535 /* Line 1806 of yacc.c */ 8536 #line 2407 "parser.yy" 8484 8537 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8485 8538 break; 8486 8539 8487 case 63 2:8488 8489 /* Line 1806 of yacc.c */ 8490 #line 24 00 "parser.yy"8540 case 634: 8541 8542 /* Line 1806 of yacc.c */ 8543 #line 2410 "parser.yy" 8491 8544 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8492 8545 break; 8493 8546 8494 case 63 3:8495 8496 /* Line 1806 of yacc.c */ 8497 #line 24 02 "parser.yy"8547 case 635: 8548 8549 /* Line 1806 of yacc.c */ 8550 #line 2412 "parser.yy" 8498 8551 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8499 8552 break; 8500 8553 8501 case 63 4:8502 8503 /* Line 1806 of yacc.c */ 8504 #line 24 07 "parser.yy"8554 case 636: 8555 8556 /* Line 1806 of yacc.c */ 8557 #line 2417 "parser.yy" 8505 8558 { 8506 8559 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8509 8562 break; 8510 8563 8511 case 63 5:8512 8513 /* Line 1806 of yacc.c */ 8514 #line 24 12 "parser.yy"8564 case 637: 8565 8566 /* Line 1806 of yacc.c */ 8567 #line 2422 "parser.yy" 8515 8568 { 8516 8569 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8519 8572 break; 8520 8573 8521 case 63 6:8522 8523 /* Line 1806 of yacc.c */ 8524 #line 24 20 "parser.yy"8574 case 638: 8575 8576 /* Line 1806 of yacc.c */ 8577 #line 2430 "parser.yy" 8525 8578 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8526 8579 break; 8527 8580 8528 case 63 7:8529 8530 /* Line 1806 of yacc.c */ 8531 #line 24 22 "parser.yy"8581 case 639: 8582 8583 /* Line 1806 of yacc.c */ 8584 #line 2432 "parser.yy" 8532 8585 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8533 8586 break; 8534 8587 8535 case 6 38:8536 8537 /* Line 1806 of yacc.c */ 8538 #line 24 24 "parser.yy"8588 case 640: 8589 8590 /* Line 1806 of yacc.c */ 8591 #line 2434 "parser.yy" 8539 8592 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8540 8593 break; 8541 8594 8542 case 6 39:8543 8544 /* Line 1806 of yacc.c */ 8545 #line 24 29 "parser.yy"8595 case 641: 8596 8597 /* Line 1806 of yacc.c */ 8598 #line 2439 "parser.yy" 8546 8599 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8547 8600 break; 8548 8601 8549 case 64 0:8550 8551 /* Line 1806 of yacc.c */ 8552 #line 24 31 "parser.yy"8602 case 642: 8603 8604 /* Line 1806 of yacc.c */ 8605 #line 2441 "parser.yy" 8553 8606 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8554 8607 break; 8555 8608 8556 case 64 1:8557 8558 /* Line 1806 of yacc.c */ 8559 #line 24 36 "parser.yy"8609 case 643: 8610 8611 /* Line 1806 of yacc.c */ 8612 #line 2446 "parser.yy" 8560 8613 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8561 8614 break; 8562 8615 8563 case 64 2:8564 8565 /* Line 1806 of yacc.c */ 8566 #line 24 38 "parser.yy"8616 case 644: 8617 8618 /* Line 1806 of yacc.c */ 8619 #line 2448 "parser.yy" 8567 8620 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8568 8621 break; 8569 8622 8570 case 64 4:8571 8572 /* Line 1806 of yacc.c */ 8573 #line 24 53 "parser.yy"8623 case 646: 8624 8625 /* Line 1806 of yacc.c */ 8626 #line 2463 "parser.yy" 8574 8627 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8575 8628 break; 8576 8629 8577 case 64 5:8578 8579 /* Line 1806 of yacc.c */ 8580 #line 24 55 "parser.yy"8630 case 647: 8631 8632 /* Line 1806 of yacc.c */ 8633 #line 2465 "parser.yy" 8581 8634 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8582 8635 break; 8583 8636 8584 case 64 6:8585 8586 /* Line 1806 of yacc.c */ 8587 #line 24 60 "parser.yy"8637 case 648: 8638 8639 /* Line 1806 of yacc.c */ 8640 #line 2470 "parser.yy" 8588 8641 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8589 8642 break; 8590 8643 8591 case 64 7:8592 8593 /* Line 1806 of yacc.c */ 8594 #line 24 62 "parser.yy"8644 case 649: 8645 8646 /* Line 1806 of yacc.c */ 8647 #line 2472 "parser.yy" 8595 8648 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8596 8649 break; 8597 8650 8598 case 6 48:8599 8600 /* Line 1806 of yacc.c */ 8601 #line 24 64 "parser.yy"8651 case 650: 8652 8653 /* Line 1806 of yacc.c */ 8654 #line 2474 "parser.yy" 8602 8655 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8603 8656 break; 8604 8657 8605 case 6 49:8606 8607 /* Line 1806 of yacc.c */ 8608 #line 24 66 "parser.yy"8658 case 651: 8659 8660 /* Line 1806 of yacc.c */ 8661 #line 2476 "parser.yy" 8609 8662 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8610 8663 break; 8611 8664 8612 case 650:8613 8614 /* Line 1806 of yacc.c */8615 #line 2468 "parser.yy"8616 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8617 break;8618 8619 8665 case 652: 8620 8621 /* Line 1806 of yacc.c */8622 #line 2474 "parser.yy"8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8624 break;8625 8626 case 653:8627 8628 /* Line 1806 of yacc.c */8629 #line 2476 "parser.yy"8630 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8631 break;8632 8633 case 654:8634 8666 8635 8667 /* Line 1806 of yacc.c */ … … 8638 8670 break; 8639 8671 8672 case 654: 8673 8674 /* Line 1806 of yacc.c */ 8675 #line 2484 "parser.yy" 8676 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8677 break; 8678 8640 8679 case 655: 8641 8680 8642 8681 /* Line 1806 of yacc.c */ 8643 #line 2483 "parser.yy" 8682 #line 2486 "parser.yy" 8683 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8684 break; 8685 8686 case 656: 8687 8688 /* Line 1806 of yacc.c */ 8689 #line 2488 "parser.yy" 8690 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8691 break; 8692 8693 case 657: 8694 8695 /* Line 1806 of yacc.c */ 8696 #line 2493 "parser.yy" 8644 8697 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8645 8698 break; 8646 8699 8647 case 65 6:8648 8649 /* Line 1806 of yacc.c */ 8650 #line 24 85 "parser.yy"8700 case 658: 8701 8702 /* Line 1806 of yacc.c */ 8703 #line 2495 "parser.yy" 8651 8704 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8652 8705 break; 8653 8706 8654 case 65 7:8655 8656 /* Line 1806 of yacc.c */ 8657 #line 24 87 "parser.yy"8707 case 659: 8708 8709 /* Line 1806 of yacc.c */ 8710 #line 2497 "parser.yy" 8658 8711 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8659 8712 break; 8660 8713 8661 case 6 58:8662 8663 /* Line 1806 of yacc.c */ 8664 #line 2 493 "parser.yy"8714 case 660: 8715 8716 /* Line 1806 of yacc.c */ 8717 #line 2503 "parser.yy" 8665 8718 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8666 8719 break; 8667 8720 8668 case 6 59:8669 8670 /* Line 1806 of yacc.c */ 8671 #line 2 495 "parser.yy"8721 case 661: 8722 8723 /* Line 1806 of yacc.c */ 8724 #line 2505 "parser.yy" 8672 8725 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8673 8726 break; 8674 8727 8675 case 66 1:8676 8677 /* Line 1806 of yacc.c */ 8678 #line 25 01 "parser.yy"8728 case 663: 8729 8730 /* Line 1806 of yacc.c */ 8731 #line 2511 "parser.yy" 8679 8732 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8680 8733 break; 8681 8734 8682 case 66 2:8683 8684 /* Line 1806 of yacc.c */ 8685 #line 25 03 "parser.yy"8735 case 664: 8736 8737 /* Line 1806 of yacc.c */ 8738 #line 2513 "parser.yy" 8686 8739 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8687 8740 break; 8688 8741 8689 case 66 3:8690 8691 /* Line 1806 of yacc.c */ 8692 #line 25 05 "parser.yy"8742 case 665: 8743 8744 /* Line 1806 of yacc.c */ 8745 #line 2515 "parser.yy" 8693 8746 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8694 8747 break; 8695 8748 8696 case 66 4:8697 8698 /* Line 1806 of yacc.c */ 8699 #line 25 07 "parser.yy"8749 case 666: 8750 8751 /* Line 1806 of yacc.c */ 8752 #line 2517 "parser.yy" 8700 8753 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8701 8754 break; 8702 8755 8703 case 66 6:8704 8705 /* Line 1806 of yacc.c */ 8706 #line 25 22 "parser.yy"8756 case 668: 8757 8758 /* Line 1806 of yacc.c */ 8759 #line 2532 "parser.yy" 8707 8760 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8708 8761 break; 8709 8762 8710 case 66 7:8711 8712 /* Line 1806 of yacc.c */ 8713 #line 25 24 "parser.yy"8763 case 669: 8764 8765 /* Line 1806 of yacc.c */ 8766 #line 2534 "parser.yy" 8714 8767 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8715 8768 break; 8716 8769 8717 case 6 68:8718 8719 /* Line 1806 of yacc.c */ 8720 #line 25 29 "parser.yy"8770 case 670: 8771 8772 /* Line 1806 of yacc.c */ 8773 #line 2539 "parser.yy" 8721 8774 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8722 8775 break; 8723 8776 8724 case 6 69:8725 8726 /* Line 1806 of yacc.c */ 8727 #line 25 31 "parser.yy"8777 case 671: 8778 8779 /* Line 1806 of yacc.c */ 8780 #line 2541 "parser.yy" 8728 8781 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8729 8782 break; 8730 8783 8731 case 67 0:8732 8733 /* Line 1806 of yacc.c */ 8734 #line 25 33 "parser.yy"8784 case 672: 8785 8786 /* Line 1806 of yacc.c */ 8787 #line 2543 "parser.yy" 8735 8788 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8736 8789 break; 8737 8790 8738 case 67 1:8739 8740 /* Line 1806 of yacc.c */ 8741 #line 25 35 "parser.yy"8791 case 673: 8792 8793 /* Line 1806 of yacc.c */ 8794 #line 2545 "parser.yy" 8742 8795 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8743 8796 break; 8744 8797 8745 case 672:8746 8747 /* Line 1806 of yacc.c */8748 #line 2537 "parser.yy"8749 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8750 break;8751 8752 8798 case 674: 8753 8754 /* Line 1806 of yacc.c */8755 #line 2543 "parser.yy"8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8757 break;8758 8759 case 675:8760 8761 /* Line 1806 of yacc.c */8762 #line 2545 "parser.yy"8763 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8764 break;8765 8766 case 676:8767 8799 8768 8800 /* Line 1806 of yacc.c */ … … 8771 8803 break; 8772 8804 8805 case 676: 8806 8807 /* Line 1806 of yacc.c */ 8808 #line 2553 "parser.yy" 8809 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8810 break; 8811 8773 8812 case 677: 8774 8813 8775 8814 /* Line 1806 of yacc.c */ 8776 #line 2552 "parser.yy" 8815 #line 2555 "parser.yy" 8816 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8817 break; 8818 8819 case 678: 8820 8821 /* Line 1806 of yacc.c */ 8822 #line 2557 "parser.yy" 8823 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8824 break; 8825 8826 case 679: 8827 8828 /* Line 1806 of yacc.c */ 8829 #line 2562 "parser.yy" 8777 8830 { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); } 8778 8831 break; 8779 8832 8780 case 6 78:8781 8782 /* Line 1806 of yacc.c */ 8783 #line 25 54 "parser.yy"8833 case 680: 8834 8835 /* Line 1806 of yacc.c */ 8836 #line 2564 "parser.yy" 8784 8837 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8785 8838 break; 8786 8839 8787 case 6 79:8788 8789 /* Line 1806 of yacc.c */ 8790 #line 25 56 "parser.yy"8840 case 681: 8841 8842 /* Line 1806 of yacc.c */ 8843 #line 2566 "parser.yy" 8791 8844 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8792 8845 break; 8793 8846 8794 case 68 1:8795 8796 /* Line 1806 of yacc.c */ 8797 #line 25 63 "parser.yy"8847 case 683: 8848 8849 /* Line 1806 of yacc.c */ 8850 #line 2573 "parser.yy" 8798 8851 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8799 8852 break; 8800 8853 8801 case 68 3:8802 8803 /* Line 1806 of yacc.c */ 8804 #line 25 74 "parser.yy"8854 case 685: 8855 8856 /* Line 1806 of yacc.c */ 8857 #line 2584 "parser.yy" 8805 8858 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8806 8859 break; 8807 8860 8808 case 68 4:8809 8810 /* Line 1806 of yacc.c */ 8811 #line 25 77 "parser.yy"8861 case 686: 8862 8863 /* Line 1806 of yacc.c */ 8864 #line 2587 "parser.yy" 8812 8865 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8813 8866 break; 8814 8867 8815 case 68 5:8816 8817 /* Line 1806 of yacc.c */ 8818 #line 25 79 "parser.yy"8868 case 687: 8869 8870 /* Line 1806 of yacc.c */ 8871 #line 2589 "parser.yy" 8819 8872 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8820 8873 break; 8821 8874 8822 case 68 6:8823 8824 /* Line 1806 of yacc.c */ 8825 #line 25 82 "parser.yy"8875 case 688: 8876 8877 /* Line 1806 of yacc.c */ 8878 #line 2592 "parser.yy" 8826 8879 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8827 8880 break; 8828 8881 8829 case 68 7:8830 8831 /* Line 1806 of yacc.c */ 8832 #line 25 84 "parser.yy"8882 case 689: 8883 8884 /* Line 1806 of yacc.c */ 8885 #line 2594 "parser.yy" 8833 8886 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8834 8887 break; 8835 8888 8836 case 6 88:8837 8838 /* Line 1806 of yacc.c */ 8839 #line 25 86 "parser.yy"8889 case 690: 8890 8891 /* Line 1806 of yacc.c */ 8892 #line 2596 "parser.yy" 8840 8893 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8841 8894 break; 8842 8895 8843 case 69 0:8844 8845 /* Line 1806 of yacc.c */ 8846 #line 26 00 "parser.yy"8896 case 692: 8897 8898 /* Line 1806 of yacc.c */ 8899 #line 2610 "parser.yy" 8847 8900 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8848 8901 break; 8849 8902 8850 case 69 1:8851 8852 /* Line 1806 of yacc.c */ 8853 #line 26 02 "parser.yy"8903 case 693: 8904 8905 /* Line 1806 of yacc.c */ 8906 #line 2612 "parser.yy" 8854 8907 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8855 8908 break; 8856 8909 8857 case 69 2:8858 8859 /* Line 1806 of yacc.c */ 8860 #line 26 07 "parser.yy"8910 case 694: 8911 8912 /* Line 1806 of yacc.c */ 8913 #line 2617 "parser.yy" 8861 8914 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8862 8915 break; 8863 8916 8864 case 69 3:8865 8866 /* Line 1806 of yacc.c */ 8867 #line 26 09 "parser.yy"8917 case 695: 8918 8919 /* Line 1806 of yacc.c */ 8920 #line 2619 "parser.yy" 8868 8921 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8869 8922 break; 8870 8923 8871 case 69 4:8872 8873 /* Line 1806 of yacc.c */ 8874 #line 26 11 "parser.yy"8924 case 696: 8925 8926 /* Line 1806 of yacc.c */ 8927 #line 2621 "parser.yy" 8875 8928 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8876 8929 break; 8877 8930 8878 case 69 5:8879 8880 /* Line 1806 of yacc.c */ 8881 #line 26 13 "parser.yy"8931 case 697: 8932 8933 /* Line 1806 of yacc.c */ 8934 #line 2623 "parser.yy" 8882 8935 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8883 8936 break; 8884 8937 8885 case 696:8886 8887 /* Line 1806 of yacc.c */8888 #line 2615 "parser.yy"8889 { (yyval.decl) = (yyvsp[(2) - (3)].decl); }8890 break;8891 8892 8938 case 698: 8893 8894 /* Line 1806 of yacc.c */8895 #line 2621 "parser.yy"8896 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8897 break;8898 8899 case 699:8900 8901 /* Line 1806 of yacc.c */8902 #line 2623 "parser.yy"8903 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }8904 break;8905 8906 case 700:8907 8939 8908 8940 /* Line 1806 of yacc.c */ … … 8911 8943 break; 8912 8944 8945 case 700: 8946 8947 /* Line 1806 of yacc.c */ 8948 #line 2631 "parser.yy" 8949 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8950 break; 8951 8913 8952 case 701: 8914 8953 8915 8954 /* Line 1806 of yacc.c */ 8916 #line 2630 "parser.yy" 8955 #line 2633 "parser.yy" 8956 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8957 break; 8958 8959 case 702: 8960 8961 /* Line 1806 of yacc.c */ 8962 #line 2635 "parser.yy" 8963 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8964 break; 8965 8966 case 703: 8967 8968 /* Line 1806 of yacc.c */ 8969 #line 2640 "parser.yy" 8917 8970 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8918 8971 break; 8919 8972 8920 case 70 2:8921 8922 /* Line 1806 of yacc.c */ 8923 #line 26 32 "parser.yy"8973 case 704: 8974 8975 /* Line 1806 of yacc.c */ 8976 #line 2642 "parser.yy" 8924 8977 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8925 8978 break; 8926 8979 8927 case 70 5:8928 8929 /* Line 1806 of yacc.c */ 8930 #line 26 42 "parser.yy"8980 case 707: 8981 8982 /* Line 1806 of yacc.c */ 8983 #line 2652 "parser.yy" 8931 8984 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8932 8985 break; 8933 8986 8934 case 7 08:8935 8936 /* Line 1806 of yacc.c */ 8937 #line 26 52 "parser.yy"8987 case 710: 8988 8989 /* Line 1806 of yacc.c */ 8990 #line 2662 "parser.yy" 8938 8991 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8939 8992 break; 8940 8993 8941 case 7 09:8942 8943 /* Line 1806 of yacc.c */ 8944 #line 26 54 "parser.yy"8994 case 711: 8995 8996 /* Line 1806 of yacc.c */ 8997 #line 2664 "parser.yy" 8945 8998 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8946 8999 break; 8947 9000 8948 case 71 0:8949 8950 /* Line 1806 of yacc.c */ 8951 #line 26 56 "parser.yy"9001 case 712: 9002 9003 /* Line 1806 of yacc.c */ 9004 #line 2666 "parser.yy" 8952 9005 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8953 9006 break; 8954 9007 8955 case 71 1:8956 8957 /* Line 1806 of yacc.c */ 8958 #line 26 58 "parser.yy"9008 case 713: 9009 9010 /* Line 1806 of yacc.c */ 9011 #line 2668 "parser.yy" 8959 9012 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8960 9013 break; 8961 9014 8962 case 71 2:8963 8964 /* Line 1806 of yacc.c */ 8965 #line 26 60 "parser.yy"9015 case 714: 9016 9017 /* Line 1806 of yacc.c */ 9018 #line 2670 "parser.yy" 8966 9019 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8967 9020 break; 8968 9021 8969 case 71 3:8970 8971 /* Line 1806 of yacc.c */ 8972 #line 26 62 "parser.yy"9022 case 715: 9023 9024 /* Line 1806 of yacc.c */ 9025 #line 2672 "parser.yy" 8973 9026 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8974 9027 break; 8975 9028 8976 case 714:8977 8978 /* Line 1806 of yacc.c */8979 #line 2669 "parser.yy"8980 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8981 break;8982 8983 case 715:8984 8985 /* Line 1806 of yacc.c */8986 #line 2671 "parser.yy"8987 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }8988 break;8989 8990 9029 case 716: 8991 8992 /* Line 1806 of yacc.c */8993 #line 2673 "parser.yy"8994 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }8995 break;8996 8997 case 717:8998 8999 /* Line 1806 of yacc.c */9000 #line 2675 "parser.yy"9001 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }9002 break;9003 9004 case 718:9005 9006 /* Line 1806 of yacc.c */9007 #line 2677 "parser.yy"9008 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }9009 break;9010 9011 case 719:9012 9030 9013 9031 /* Line 1806 of yacc.c */ … … 9016 9034 break; 9017 9035 9018 case 7 20:9036 case 717: 9019 9037 9020 9038 /* Line 1806 of yacc.c */ … … 9023 9041 break; 9024 9042 9025 case 7 21:9043 case 718: 9026 9044 9027 9045 /* Line 1806 of yacc.c */ … … 9030 9048 break; 9031 9049 9032 case 7 22:9050 case 719: 9033 9051 9034 9052 /* Line 1806 of yacc.c */ … … 9037 9055 break; 9038 9056 9039 case 72 3:9057 case 720: 9040 9058 9041 9059 /* Line 1806 of yacc.c */ … … 9044 9062 break; 9045 9063 9064 case 721: 9065 9066 /* Line 1806 of yacc.c */ 9067 #line 2689 "parser.yy" 9068 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9069 break; 9070 9071 case 722: 9072 9073 /* Line 1806 of yacc.c */ 9074 #line 2691 "parser.yy" 9075 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9076 break; 9077 9078 case 723: 9079 9080 /* Line 1806 of yacc.c */ 9081 #line 2693 "parser.yy" 9082 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9083 break; 9084 9046 9085 case 724: 9047 9086 9048 9087 /* Line 1806 of yacc.c */ 9049 #line 2692 "parser.yy" 9088 #line 2695 "parser.yy" 9089 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 9090 break; 9091 9092 case 725: 9093 9094 /* Line 1806 of yacc.c */ 9095 #line 2697 "parser.yy" 9096 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9097 break; 9098 9099 case 726: 9100 9101 /* Line 1806 of yacc.c */ 9102 #line 2702 "parser.yy" 9050 9103 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 9051 9104 break; 9052 9105 9053 case 72 5:9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2 694 "parser.yy"9106 case 727: 9107 9108 /* Line 1806 of yacc.c */ 9109 #line 2704 "parser.yy" 9057 9110 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 9058 9111 break; 9059 9112 9060 case 72 6:9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2 699 "parser.yy"9113 case 728: 9114 9115 /* Line 1806 of yacc.c */ 9116 #line 2709 "parser.yy" 9064 9117 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 9065 9118 break; 9066 9119 9067 case 72 7:9068 9069 /* Line 1806 of yacc.c */ 9070 #line 27 01 "parser.yy"9120 case 729: 9121 9122 /* Line 1806 of yacc.c */ 9123 #line 2711 "parser.yy" 9071 9124 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 9072 9125 break; 9073 9126 9074 case 7 29:9075 9076 /* Line 1806 of yacc.c */ 9077 #line 27 28 "parser.yy"9127 case 731: 9128 9129 /* Line 1806 of yacc.c */ 9130 #line 2738 "parser.yy" 9078 9131 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 9079 9132 break; 9080 9133 9081 case 73 3:9082 9083 /* Line 1806 of yacc.c */ 9084 #line 27 39 "parser.yy"9134 case 735: 9135 9136 /* Line 1806 of yacc.c */ 9137 #line 2749 "parser.yy" 9085 9138 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9086 9139 break; 9087 9140 9088 case 73 4:9089 9090 /* Line 1806 of yacc.c */ 9091 #line 27 41 "parser.yy"9141 case 736: 9142 9143 /* Line 1806 of yacc.c */ 9144 #line 2751 "parser.yy" 9092 9145 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9093 9146 break; 9094 9147 9095 case 73 5:9096 9097 /* Line 1806 of yacc.c */ 9098 #line 27 43 "parser.yy"9148 case 737: 9149 9150 /* Line 1806 of yacc.c */ 9151 #line 2753 "parser.yy" 9099 9152 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9100 9153 break; 9101 9154 9102 case 73 6:9103 9104 /* Line 1806 of yacc.c */ 9105 #line 27 45 "parser.yy"9155 case 738: 9156 9157 /* Line 1806 of yacc.c */ 9158 #line 2755 "parser.yy" 9106 9159 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9107 9160 break; 9108 9161 9109 case 73 7:9110 9111 /* Line 1806 of yacc.c */ 9112 #line 27 47 "parser.yy"9162 case 739: 9163 9164 /* Line 1806 of yacc.c */ 9165 #line 2757 "parser.yy" 9113 9166 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9114 9167 break; 9115 9168 9116 case 7 38:9117 9118 /* Line 1806 of yacc.c */ 9119 #line 27 49 "parser.yy"9169 case 740: 9170 9171 /* Line 1806 of yacc.c */ 9172 #line 2759 "parser.yy" 9120 9173 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9121 9174 break; 9122 9175 9123 case 7 39:9124 9125 /* Line 1806 of yacc.c */ 9126 #line 27 56 "parser.yy"9176 case 741: 9177 9178 /* Line 1806 of yacc.c */ 9179 #line 2766 "parser.yy" 9127 9180 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9128 9181 break; 9129 9182 9130 case 74 0:9131 9132 /* Line 1806 of yacc.c */ 9133 #line 27 58 "parser.yy"9183 case 742: 9184 9185 /* Line 1806 of yacc.c */ 9186 #line 2768 "parser.yy" 9134 9187 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9135 9188 break; 9136 9189 9137 case 74 1:9138 9139 /* Line 1806 of yacc.c */ 9140 #line 27 60 "parser.yy"9190 case 743: 9191 9192 /* Line 1806 of yacc.c */ 9193 #line 2770 "parser.yy" 9141 9194 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9142 9195 break; 9143 9196 9144 case 74 2:9145 9146 /* Line 1806 of yacc.c */ 9147 #line 27 62 "parser.yy"9197 case 744: 9198 9199 /* Line 1806 of yacc.c */ 9200 #line 2772 "parser.yy" 9148 9201 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9149 9202 break; 9150 9203 9151 case 74 3:9152 9153 /* Line 1806 of yacc.c */ 9154 #line 27 64 "parser.yy"9204 case 745: 9205 9206 /* Line 1806 of yacc.c */ 9207 #line 2774 "parser.yy" 9155 9208 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 9156 9209 break; 9157 9210 9158 case 74 4:9159 9160 /* Line 1806 of yacc.c */ 9161 #line 27 66 "parser.yy"9211 case 746: 9212 9213 /* Line 1806 of yacc.c */ 9214 #line 2776 "parser.yy" 9162 9215 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9163 9216 break; 9164 9217 9165 case 74 5:9166 9167 /* Line 1806 of yacc.c */ 9168 #line 27 71 "parser.yy"9218 case 747: 9219 9220 /* Line 1806 of yacc.c */ 9221 #line 2781 "parser.yy" 9169 9222 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9170 9223 break; 9171 9224 9172 case 74 6:9173 9174 /* Line 1806 of yacc.c */ 9175 #line 27 76 "parser.yy"9225 case 748: 9226 9227 /* Line 1806 of yacc.c */ 9228 #line 2786 "parser.yy" 9176 9229 { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); } 9177 9230 break; 9178 9231 9179 case 74 7:9180 9181 /* Line 1806 of yacc.c */ 9182 #line 27 78 "parser.yy"9232 case 749: 9233 9234 /* Line 1806 of yacc.c */ 9235 #line 2788 "parser.yy" 9183 9236 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9184 9237 break; 9185 9238 9186 case 7 48:9187 9188 /* Line 1806 of yacc.c */ 9189 #line 27 80 "parser.yy"9239 case 750: 9240 9241 /* Line 1806 of yacc.c */ 9242 #line 2790 "parser.yy" 9190 9243 { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); } 9191 9244 break; 9192 9245 9193 case 75 1:9194 9195 /* Line 1806 of yacc.c */ 9196 #line 28 04 "parser.yy"9246 case 753: 9247 9248 /* Line 1806 of yacc.c */ 9249 #line 2814 "parser.yy" 9197 9250 { (yyval.en) = 0; } 9198 9251 break; 9199 9252 9200 case 75 2:9201 9202 /* Line 1806 of yacc.c */ 9203 #line 28 06 "parser.yy"9253 case 754: 9254 9255 /* Line 1806 of yacc.c */ 9256 #line 2816 "parser.yy" 9204 9257 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9205 9258 break; … … 9208 9261 9209 9262 /* Line 1806 of yacc.c */ 9210 #line 92 11"Parser/parser.cc"9263 #line 9264 "Parser/parser.cc" 9211 9264 default: break; 9212 9265 } … … 9439 9492 9440 9493 /* Line 2067 of yacc.c */ 9441 #line 28 09 "parser.yy"9494 #line 2819 "parser.yy" 9442 9495 9443 9496 // ----end of grammar---- … … 9446 9499 std::cout << "Error "; 9447 9500 if ( yyfilename ) { 9448 9501 std::cout << "in file " << yyfilename << " "; 9449 9502 } // if 9450 9503 std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl; -
src/Parser/parser.yy
r37218fc r37f0da8 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 8 16:21:55201613 // Update Count : 15 0812 // Last Modified On : Wed Apr 13 16:58:43 2016 13 // Update Count : 1519 14 14 // 15 15 … … 1438 1438 { $$ = DeclarationNode::newAggregate( $1, 0, 0, $3 ); } 1439 1439 | aggregate_key no_attr_identifier_or_type_name 1440 { $$ = DeclarationNode::newAggregate( $1, $2, 0, 0 ); } 1441 | aggregate_key no_attr_identifier_or_type_name '{' field_declaration_list '}' 1442 { $$ = DeclarationNode::newAggregate( $1, $2, 0, $4 ); } 1440 { 1441 typedefTable.makeTypedef( *$2 ); 1442 $$ = DeclarationNode::newAggregate( $1, $2, 0, 0 ); 1443 } 1444 | aggregate_key no_attr_identifier_or_type_name 1445 { typedefTable.makeTypedef( *$2 ); } 1446 '{' field_declaration_list '}' 1447 { $$ = DeclarationNode::newAggregate( $1, $2, 0, $5); } 1443 1448 | aggregate_key '(' type_name_list ')' '{' field_declaration_list '}' // CFA 1444 1449 { $$ = DeclarationNode::newAggregate( $1, 0, $3, $6 ); } 1445 1450 | aggregate_key typegen_name // CFA, S/R conflict 1446 1451 { $$ = $2; } … … 1520 1525 enum_key '{' enumerator_list comma_opt '}' 1521 1526 { $$ = DeclarationNode::newEnum( 0, $3 ); } 1522 | enum_key no_attr_identifier_or_type_name '{' enumerator_list comma_opt '}'1523 { $$ = DeclarationNode::newEnum( $2, $4 ); }1524 1527 | enum_key no_attr_identifier_or_type_name 1525 { $$ = DeclarationNode::newEnum( $2, 0 ); } 1528 { 1529 typedefTable.makeTypedef( *$2 ); 1530 $$ = DeclarationNode::newEnum( $2, 0 ); 1531 } 1532 | enum_key no_attr_identifier_or_type_name 1533 { typedefTable.makeTypedef( *$2 ); } 1534 '{' enumerator_list comma_opt '}' 1535 { $$ = DeclarationNode::newEnum( $2, $5 ); } 1526 1536 ; 1527 1537 … … 2813 2823 std::cout << "Error "; 2814 2824 if ( yyfilename ) { 2815 2825 std::cout << "in file " << yyfilename << " "; 2816 2826 } // if 2817 2827 std::cout << "at line " << yylineno << " reading token \"" << (yytext[0] == '\0' ? "EOF" : yytext) << "\"" << std::endl; -
src/SymTab/Validate.cc
r37218fc r37f0da8 10 10 // Created On : Sun May 17 21:50:04 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Apr 7 16:45:30 201613 // Update Count : 2 4312 // Last Modified On : Wed Apr 13 16:39:30 2016 13 // Update Count : 251 14 14 // 15 15 … … 190 190 AggDecl *handleAggregate( AggDecl * aggDecl ); 191 191 192 template<typename AggDecl> 193 void addImplicitTypedef( AggDecl * aggDecl ); 194 192 195 typedef std::map< std::string, std::pair< TypedefDecl *, int > > TypedefMap; 193 196 TypedefMap typedefNames; … … 1014 1017 } 1015 1018 1016 // there may be typedefs nested within aggregates 1017 // in order for everything to work properly, these 1018 // should be removed as well 1019 // there may be typedefs nested within aggregates in order for everything to work properly, these should be removed 1020 // as well 1019 1021 template<typename AggDecl> 1020 1022 AggDecl *EliminateTypedef::handleAggregate( AggDecl * aggDecl ) { … … 1030 1032 return aggDecl; 1031 1033 } 1032 1034 1035 template<typename AggDecl> 1036 void EliminateTypedef::addImplicitTypedef( AggDecl * aggDecl ) { 1037 if ( typedefNames.count( aggDecl->get_name() ) == 0 ) { 1038 Type *type; 1039 if ( StructDecl * newDeclStructDecl = dynamic_cast< StructDecl * >( aggDecl ) ) { 1040 type = new StructInstType( Type::Qualifiers(), newDeclStructDecl->get_name() ); 1041 } else if ( UnionDecl * newDeclUnionDecl = dynamic_cast< UnionDecl * >( aggDecl ) ) { 1042 type = new UnionInstType( Type::Qualifiers(), newDeclUnionDecl->get_name() ); 1043 } else if ( EnumDecl * newDeclEnumDecl = dynamic_cast< EnumDecl * >( aggDecl ) ) { 1044 type = new EnumInstType( Type::Qualifiers(), newDeclEnumDecl->get_name() ); 1045 } // if 1046 TypedefDecl * tyDecl = new TypedefDecl( aggDecl->get_name(), DeclarationNode::NoStorageClass, type ); 1047 typedefNames[ aggDecl->get_name() ] = std::make_pair( tyDecl, scopeLevel ); 1048 } // if 1049 } 1033 1050 Declaration *EliminateTypedef::mutate( StructDecl * structDecl ) { 1051 addImplicitTypedef( structDecl ); 1034 1052 Mutator::mutate( structDecl ); 1035 1053 return handleAggregate( structDecl ); … … 1037 1055 1038 1056 Declaration *EliminateTypedef::mutate( UnionDecl * unionDecl ) { 1057 addImplicitTypedef( unionDecl ); 1039 1058 Mutator::mutate( unionDecl ); 1040 1059 return handleAggregate( unionDecl ); … … 1042 1061 1043 1062 Declaration *EliminateTypedef::mutate( EnumDecl * enumDecl ) { 1063 addImplicitTypedef( enumDecl ); 1044 1064 Mutator::mutate( enumDecl ); 1045 1065 return handleAggregate( enumDecl ); 1046 1066 } 1047 1067 1048 1068 Declaration *EliminateTypedef::mutate( TraitDecl * contextDecl ) { 1049 1069 Mutator::mutate( contextDecl ); 1050 1070 return handleAggregate( contextDecl ); -
src/libcfa/iostream
r37218fc r37f0da8 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Apr 5 22:32:37201613 // Update Count : 9 012 // Last Modified On : Sun Apr 10 23:00:12 2016 13 // Update Count : 92 14 14 // 15 15 … … 20 20 21 21 trait ostream( dtype ostype ) { 22 _Bool sepPrt( ostype * ); 23 void sepOn( ostype * ); 24 void sepOff( ostype * ); 25 void sepReset( ostype * ); 26 void sepReset( ostype *, _Bool ); 27 void sepSet( ostype *, const char * ); 28 const char * sepGet( ostype * ); 29 _Bool sepDisable( ostype * ); 30 _Bool sepEnable( ostype * ); 22 _Bool sepPrt( ostype * ); // return separator state (on/off) 23 void sepOn( ostype * ); // turn separator state on 24 void sepOff( ostype * ); // turn separator state off 25 void sepReset( ostype * ); // set separator state to default state 26 void sepReset( ostype *, _Bool ); // set separator and default state 27 void sepSet( ostype *, const char * ); // set separator to string (15 character maximum) 28 const char * sepGet( ostype * ); // get separator string 29 _Bool sepDisable( ostype * ); // set default state to off, and return previous state 30 _Bool sepEnable( ostype * ); // set default state to on, and return previous state 31 31 32 int fail( ostype * ); 32 33 int flush( ostype * ); -
src/libcfa/rational.c
r37218fc r37f0da8 11 11 // Created On : Wed Apr 6 17:54:28 2016 12 12 // Last Modified By : Peter A. Buhr 13 // Last Modified On : Fri Apr 8 17:35:05201614 // Update Count : 1813 // Last Modified On : Tue Apr 12 21:26:42 2016 14 // Update Count : 21 15 15 // 16 16 … … 19 19 #include "stdlib" 20 20 21 extern "C" {22 #include <stdlib.h> // exit23 } // extern24 25 21 26 22 // constants … … 30 26 31 27 32 // helper 28 // helper routines 33 29 34 30 // Calculate greatest common denominator of two numbers, the first of which may be negative. Used to reduce rationals. 31 // alternative: https://en.wikipedia.org/wiki/Binary_GCD_algorithm 35 32 static long int gcd( long int a, long int b ) { 36 33 for ( ;; ) { // Euclid's algorithm -
src/libcfa/stdlib
r37218fc r37f0da8 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Apr 1 22:26:14201613 // Update Count : 7312 // Last Modified On : Wed Apr 13 14:45:53 2016 13 // Update Count : 85 14 14 // 15 15 … … 18 18 extern "C" { 19 19 #include <stddef.h> // size_t 20 #include <math.h> // floor21 20 } // extern "C" 22 21 22 //--------------------------------------- 23 24 extern "C" { 25 #ifndef EXIT_FAILURE 26 #define EXIT_FAILURE 1 // failing exit status 27 #define EXIT_SUCCESS 0 // successful exit status 28 #endif // ! EXIT_FAILURE 29 void exit( int rc ); 30 } // extern "C" 31 32 //--------------------------------------- 33 34 extern "C" { 35 void * malloc( size_t ); // use default C routine for void * 36 } // extern "C" 23 37 forall( otype T ) T * malloc( void ); 24 38 forall( otype T ) T * malloc( char fill ); 25 39 forall( otype T ) T * malloc( T * ptr, size_t size ); 26 40 forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill ); 27 forall( otype T ) T * calloc( size_t size ); 41 extern "C" { 42 void * calloc( size_t nmemb, size_t size ); // use default C routine for void * 43 } // extern "C" 44 forall( otype T ) T * calloc( size_t nmemb ); 45 extern "C" { 46 void * realloc( void * ptr, size_t size ); // use default C routine for void * 47 } // extern "C" 28 48 forall( otype T ) T * realloc( T * ptr, size_t size ); 29 49 forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill ); … … 81 101 char abs( char ); 82 102 extern "C" { 83 int abs( int ); // use default C routine for int103 int abs( int ); // use default C routine for int 84 104 } // extern "C" 85 105 long int abs( long int ); … … 96 116 float floor( float ); 97 117 extern "C" { 98 double floor( double ); // use C routine for double118 double floor( double ); // use C routine for double 99 119 } // extern "C" 100 120 long double floor( long double ); … … 102 122 float ceil( float ); 103 123 extern "C" { 104 double ceil( double ); // use C routine for double124 double ceil( double ); // use C routine for double 105 125 } // extern "C" 106 126 long double ceil( long double ); -
src/libcfa/stdlib.c
r37218fc r37f0da8 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Mar 30 10:48:41201613 // Update Count : 1 4912 // Last Modified On : Wed Apr 13 14:49:58 2016 13 // Update Count : 155 14 14 // 15 15 … … 28 28 29 29 forall( otype T ) T * malloc( void ) { 30 printf( "malloc1\n" );30 //printf( "malloc1\n" ); 31 31 return (T *)malloc( sizeof(T) ); 32 32 } // malloc 33 forall( otype T ) T * malloc( size_t size ) {34 printf( "malloc2\n" );35 return (T *)(void *)malloc( size );36 } // malloc37 33 forall( otype T ) T * malloc( char fill ) { 38 printf( "malloc3\n" );34 //printf( "malloc3\n" ); 39 35 T * ptr = (T *)malloc( sizeof(T) ); 40 36 return memset( ptr ); 41 37 } // malloc 42 38 43 forall( otype T ) T * calloc( size_t size) {44 printf( "calloc\n" );45 return (T *)calloc( size, sizeof(T) );39 forall( otype T ) T * calloc( size_t nmemb ) { 40 //printf( "calloc\n" ); 41 return (T *)calloc( nmemb, sizeof(T) ); 46 42 } // calloc 47 43 48 44 forall( otype T ) T * realloc( T * ptr, size_t size ) { 49 printf( "realloc1\n" );45 //printf( "realloc1\n" ); 50 46 return (T *)(void *)realloc( (void *)ptr, size ); 51 47 } // realloc 52 48 forall( otype T ) T * realloc( T * ptr, size_t size, unsigned char fill ) { 53 printf( "realloc2\n" );49 //printf( "realloc2\n" ); 54 50 char * nptr = (T *)(void *)realloc( (void *)ptr, size ); 55 51 size_t unused = malloc_usable_size( nptr ); … … 59 55 60 56 forall( otype T ) T * malloc( T * ptr, size_t size ) { 61 printf( "malloc4\n" );57 //printf( "malloc4\n" ); 62 58 return (T *)realloc( ptr, size ); 63 59 } // malloc 64 60 forall( otype T ) T * malloc( T * ptr, size_t size, unsigned char fill ) { 65 printf( "malloc5\n" );61 //printf( "malloc5\n" ); 66 62 return (T *)realloc( ptr, size, fill ); 67 63 } // malloc 68 64 69 65 forall( otype T ) T * aligned_alloc( size_t alignment ) { 70 printf( "aligned_alloc\n" );66 //printf( "aligned_alloc\n" ); 71 67 return (T *)memalign( alignment, sizeof(T) ); 72 68 } // aligned_alloc 73 69 74 70 forall( otype T ) T * memalign( size_t alignment ) { 75 printf( "memalign\n" );71 //printf( "memalign\n" ); 76 72 return (T *)memalign( alignment, sizeof(T) ); 77 73 } // memalign 78 74 79 75 forall( otype T ) int posix_memalign( T ** ptr, size_t alignment ) { 80 printf( "posix_memalign\n" );76 //printf( "posix_memalign\n" ); 81 77 return posix_memalign( (void **)ptr, alignment, sizeof(T) ); 82 78 } // posix_memalign 83 79 84 80 forall( otype T ) T * memset( T * ptr, unsigned char fill ) { // use default value '\0' for fill 85 printf( "memset1\n" );81 //printf( "memset1\n" ); 86 82 return (T *)memset( ptr, (int)fill, malloc_usable_size( ptr ) ); 87 83 } // memset 88 84 forall( otype T ) T * memset( T * ptr ) { // remove when default value available 89 printf( "memset2\n" );85 //printf( "memset2\n" ); 90 86 return (T *)memset( ptr, 0, malloc_usable_size( ptr ) ); 91 87 } // memset
Note: See TracChangeset
for help on using the changeset viewer.