Changeset 3f0c6a5


Ignore:
Timestamp:
Oct 28, 2016, 1:40:31 PM (9 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
066d77a
Parents:
77971f6 (diff), 47a8d17 (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.
Message:

Merge branch 'master' into tuples

Conflicts:

src/Parser/parser.cc
src/Parser/parser.yy

Files:
1 added
18 edited

Legend:

Unmodified
Added
Removed
  • Makefile.in

    r77971f6 r3f0c6a5  
    132132CFA_PREFIX = @CFA_PREFIX@
    133133CFLAGS = @CFLAGS@
     134CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    134135CPP = @CPP@
    135136CPPFLAGS = @CPPFLAGS@
  • config.h.in

    r77971f6 r3f0c6a5  
    1818/* Location of cfa install. */
    1919#undef CFA_PREFIX
     20
     21/* Major.Minor */
     22#undef CFA_VERSION
     23
     24/* Build version number. */
     25#undef CFA_VERSION_BUILD
     26
     27/* Major.Minor.Patch.Build */
     28#undef CFA_VERSION_FULL
     29
     30/* Major.Minor.Patch */
     31#undef CFA_VERSION_LONG
     32
     33/* Major version number. */
     34#undef CFA_VERSION_MAJOR
     35
     36/* Minor version number. */
     37#undef CFA_VERSION_MINOR
     38
     39/* Patch version number. */
     40#undef CFA_VERSION_PATCH
     41
     42/* Major */
     43#undef CFA_VERSION_SHORT
    2044
    2145/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
  • configure

    r77971f6 r3f0c6a5  
    646646CFA_BACKEND_CC
    647647BACKEND_CC
     648CONFIG_STATUS_DEPENDENCIES
    648649MAINT
    649650MAINTAINER_MODE_FALSE
     
    29632964
    29642965                        # may require auto* software to be installed
     2966
     2967ver_major=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\1/'`
     2968ver_minor=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\2/'`
     2969ver_patch=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\3/'`
     2970ver_build=`cat version | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\4/'`
     2971ver_short="\"${ver_major}\""
     2972ver__long="\"${ver_major}.${ver_minor}\""
     2973ver__norm="\"${ver_major}.${ver_minor}.${ver_patch}\""
     2974ver__full="\"${ver_major}.${ver_minor}.${ver_patch}.${ver_build}\""
     2975
     2976CONFIG_STATUS_DEPENDENCIES='$(top_srcdir)/version'
     2977
     2978
     2979cat >>confdefs.h <<_ACEOF
     2980#define CFA_VERSION_MAJOR ${ver_major}
     2981_ACEOF
     2982
     2983
     2984cat >>confdefs.h <<_ACEOF
     2985#define CFA_VERSION_MINOR ${ver_minor}
     2986_ACEOF
     2987
     2988
     2989cat >>confdefs.h <<_ACEOF
     2990#define CFA_VERSION_PATCH ${ver_patch}
     2991_ACEOF
     2992
     2993
     2994cat >>confdefs.h <<_ACEOF
     2995#define CFA_VERSION_BUILD ${ver_build}
     2996_ACEOF
     2997
     2998
     2999cat >>confdefs.h <<_ACEOF
     3000#define CFA_VERSION_SHORT ${ver_short}
     3001_ACEOF
     3002
     3003
     3004cat >>confdefs.h <<_ACEOF
     3005#define CFA_VERSION ${ver__long}
     3006_ACEOF
     3007
     3008
     3009cat >>confdefs.h <<_ACEOF
     3010#define CFA_VERSION_LONG ${ver__norm}
     3011_ACEOF
     3012
     3013
     3014cat >>confdefs.h <<_ACEOF
     3015#define CFA_VERSION_FULL ${ver__full}
     3016_ACEOF
     3017
    29653018
    29663019# Installation paths
  • configure.ac

    r77971f6 r3f0c6a5  
    1717AM_INIT_AUTOMAKE
    1818AM_MAINTAINER_MODE(enable)                      # may require auto* software to be installed
     19
     20ver_major=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\1/'`
     21ver_minor=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\2/'`
     22ver_patch=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\3/'`
     23ver_build=`cat version | sed -r 's/([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)\.([[0-9]]+)/\4/'`
     24ver_short="\"${ver_major}\""
     25ver__long="\"${ver_major}.${ver_minor}\""
     26ver__norm="\"${ver_major}.${ver_minor}.${ver_patch}\""
     27ver__full="\"${ver_major}.${ver_minor}.${ver_patch}.${ver_build}\""
     28
     29AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$(top_srcdir)/version'])
     30AC_DEFINE_UNQUOTED(CFA_VERSION_MAJOR, ${ver_major}, [Major version number.])
     31AC_DEFINE_UNQUOTED(CFA_VERSION_MINOR, ${ver_minor}, [Minor version number.])
     32AC_DEFINE_UNQUOTED(CFA_VERSION_PATCH, ${ver_patch}, [Patch version number.])
     33AC_DEFINE_UNQUOTED(CFA_VERSION_BUILD, ${ver_build}, [Build version number.])
     34AC_DEFINE_UNQUOTED(CFA_VERSION_SHORT, ${ver_short}, [Major])
     35AC_DEFINE_UNQUOTED(CFA_VERSION, ${ver__long}, [Major.Minor])
     36AC_DEFINE_UNQUOTED(CFA_VERSION_LONG, ${ver__norm}, [Major.Minor.Patch])
     37AC_DEFINE_UNQUOTED(CFA_VERSION_FULL, ${ver__full}, [Major.Minor.Patch.Build])
    1938
    2039# Installation paths
  • doc/LaTeXmacros/common.tex

    r77971f6 r3f0c6a5  
    1111%% Created On       : Sat Apr  9 10:06:17 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Sun Aug 14 08:27:29 2016
    14 %% Update Count     : 231
     13%% Last Modified On : Tue Oct 25 22:04:19 2016
     14%% Update Count     : 234
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    4141\newcommand{\CCeleven}{\rm C\kern-.1em\hbox{+\kern-.25em+}11\xspace} % C++11 symbolic name
    4242\newcommand{\Celeven}{C11\xspace}               % C11 symbolic name
    43 \newcommand{\Csharp}{\rm C\hbox{\#}\xspace} % C# symbolic name
    44 
     43\newcommand{\Csharp}{C\raisebox{0.4ex}{\#}\xspace}      % C# symbolic name
    4544
    4645%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    126125\newcommand{\@sIndex}[2][\@empty]{#2\ifx#1\@empty\index{#2}\else\index{#1@{\protect#2}}\fi}
    127126
    128 % inline text and code index (cannot use �)
     127% inline text and code index (cannot use ©)
    129128\newcommand{\Indexc}[1]{\lstinline$#1$\index{#1@\lstinline$#1$}}
    130 % code index (cannot use �)
     129% code index (cannot use ©)
    131130\newcommand{\indexc}[1]{\index{#1@\lstinline$#1$}}
    132131
     
    266265% CFA programming language, based on ANSI C (with some gcc additions)
    267266\lstdefinelanguage{CFA}[ANSI]{C}{
    268         morekeywords=[1]{_Alignas,_Alignof,__alignof,__alignof__,asm,__asm,__asm__,_At,_Atomic,__attribute,__attribute__,auto,
     267        morekeywords={_Alignas,_Alignof,__alignof,__alignof__,asm,__asm,__asm__,_At,_Atomic,__attribute,__attribute__,auto,
    269268                _Bool,catch,catchResume,choose,_Complex,__complex,__complex__,__const,__const__,disable,dtype,enable,__extension__,
    270269                fallthrough,fallthru,finally,forall,ftype,_Generic,_Imaginary,inline,__label__,lvalue,_Noreturn,otype,restrict,_Static_assert,
    271270                _Thread_local,throw,throwResume,trait,try,typeof,__typeof,__typeof__,},
    272         morekeywords=[2]{mutex,nomutex,thread,wait,signal,accept,monitor}
    273271}%
    274272
     
    276274language=CFA,
    277275columns=fullflexible,
    278 basicstyle=\linespread{0.9}\tt\small,           % reduce line spacing and use typewriter font
    279 keywordstyle=[2]\color{blue},                           % second set of keywords for concurency
    280 stringstyle=\sf\color{Mahogany},                        % use sanserif font
    281 commentstyle=\itshape\color{OliveGreen},                % green and italic comments
    282 tabsize=4,                                                      % 4 space tabbing
     276basicstyle=\linespread{0.9}\sf,                 % reduce line spacing and use sanserif font
     277stringstyle=\tt,                                                % use typewriter font
     278tabsize=4,                                                              % 4 space tabbing
    283279xleftmargin=\parindentlnth,                             % indent code to paragraph indentation
    284 extendedchars=true,                                     % allow ASCII characters in the range 128-255
    285 escapechar=§,                                           % escape to latex in CFA code
     280extendedchars=true,                                             % allow ASCII characters in the range 128-255
     281escapechar=§,                                                   % escape to latex in CFA code
    286282mathescape=true,                                                % allow $...$ LaTeX math escapes in code
    287 %keepspaces=true,                                               %
     283%keepspaces=true,                                               % 
    288284showstringspaces=false,                                 % do not show spaces with cup
    289 showlines=true,                                         % show blank lines at end of code
    290 aboveskip=4pt,                                          % spacing above/below code block
     285showlines=true,                                                 % show blank lines at end of code
     286aboveskip=4pt,                                                  % spacing above/below code block
    291287belowskip=3pt,
    292288moredelim=**[is][\color{red}]{®}{®},    % red highlighting
     
    295291moredelim=[is][\lstset{keywords={}}]{¶}{¶}, % temporarily turn off keywords
    296292% replace/adjust listing characters that look bad in sanserif
    297 literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1 {©}{{\"u}}1
     293literate={-}{\raisebox{-0.15ex}{\texttt{-}}}1 {^}{\raisebox{0.6ex}{$\scriptscriptstyle\land\,$}}1
    298294        {~}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}}1 {_}{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}1 {`}{\ttfamily\upshape\hspace*{-0.1ex}`}1
    299295        {<-}{$\leftarrow$}2 {=>}{$\Rightarrow$}2,
  • doc/user/user.tex

    r77971f6 r3f0c6a5  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Thu Sep 29 11:50:28 2016
    14 %% Update Count     : 1325
     13%% Last Modified On : Tue Oct 25 23:03:59 2016
     14%% Update Count     : 1357
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    326326\begin{description}
    327327\item
    328 \Indexc{__CFA__}\index{preprocessor variables!__CFA__@{©__CFA__©}}
    329 is always available during preprocessing and its value is the current major \Index{version number} of \CFA.\footnote{
     328\Indexc{__CFA_MAJOR__}\index{preprocessor variables!__CFA__@{©__CFA__©}}
     329is available during preprocessing and its value is the major \Index{version number} of \CFA.\footnote{
    330330The C preprocessor allows only integer values in a preprocessor variable so a value like ``\Version'' is not allowed.
    331331Hence, the need to have three variables for the major, minor and patch version number.}
     
    333333\item
    334334\Indexc{__CFA_MINOR__}\index{preprocessor variables!__CFA_MINOR__@{©__CFA_MINOR__©}}
    335 is always available during preprocessing and its value is the current minor \Index{version number} of \CFA.
     335is available during preprocessing and its value is the minor \Index{version number} of \CFA.
    336336
    337337\item
    338338\Indexc{__CFA_PATCH__}\index{preprocessor variables!__CFA_PATCH__@©__CFA_PATCH__©}
    339 is always available during preprocessing and its value is the current patch \Index{version number} of \CFA.
    340 
    341 \item
     339is available during preprocessing and its value is the patch \Index{level number} of \CFA.
     340
     341\item
     342\Indexc{__CFA__}\index{preprocessor variables!__CFA__@©__CFA__©} and
    342343\Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©}
    343 is always available during preprocessing and has no value.
     344are always available during preprocessing and have no value.
    344345\end{description}
    345346These preprocessor variables allow conditional compilation of programs that must work differently in these situations.
  • src/Makefile.in

    r77971f6 r3f0c6a5  
    265265CFA_PREFIX = @CFA_PREFIX@
    266266CFLAGS = @CFLAGS@
     267CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    267268CPP = @CPP@
    268269CPPFLAGS = @CPPFLAGS@
  • src/Parser/lex.cc

    r77971f6 r3f0c6a5  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 181
    385 #define YY_END_OF_BUFFER 182
     384#define YY_NUM_RULES 183
     385#define YY_END_OF_BUFFER 184
    386386/* This struct is not used in this scanner,
    387387   but its presence is necessary. */
     
    391391        flex_int32_t yy_nxt;
    392392        };
    393 static yyconst flex_int16_t yy_accept[892] =
     393static yyconst flex_int16_t yy_accept[895] =
    394394    {   0,
    395         0,    0,    0,    0,    0,    0,  116,  116,  119,  119,
    396       182,  180,    7,    9,    8,  139,  118,  103,  144,  147,
    397       115,  126,  127,  142,  140,  130,  141,  133,  143,  108,
    398       109,  110,  131,  132,  149,  151,  150,  152,  180,  103,
    399       124,  180,  125,  145,  103,  105,  103,  103,  103,  103,
     395        0,    0,    0,    0,    0,    0,  118,  118,  121,  121,
     396      184,  182,    7,    9,    8,  141,  120,  103,  146,  149,
     397      117,  128,  129,  144,  142,  132,  143,  135,  145,  108,
     398      109,  110,  133,  134,  151,  153,  152,  154,  182,  103,
     399      126,  182,  127,  147,  103,  105,  103,  103,  103,  103,
    400400      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    401       103,  103,  128,  148,  129,  146,    7,  180,    4,    4,
    402       181,  106,  181,  107,  116,  117,  123,  119,  120,    7,
    403         9,    0,    8,  156,  175,  103,    0,  168,  138,  161,
    404       169,  166,  153,  164,  154,  165,  163,    0,  113,    3,
    405 
    406         0,  167,  113,  111,    0,    0,  111,  111,    0,    0,
    407       111,  110,  110,  110,    0,  110,  136,  137,  135,  157,
    408       159,  155,  160,  158,    0,    0,    0,    0,    0,    0,
     401      103,  103,  130,  150,  131,  148,    7,  182,    4,    4,
     402      183,  106,  183,  107,  118,  119,  125,  121,  122,    7,
     403        9,    0,    8,  158,  177,  103,    0,  170,  140,  163,
     404      171,  168,  155,  166,  156,  167,  165,    0,  114,    3,
     405
     406        0,  169,  113,  111,    0,    0,  111,  111,    0,    0,
     407      111,  110,  110,  110,    0,  110,  138,  139,  137,  159,
     408      161,  157,  162,  160,    0,    0,    0,    0,    0,    0,
    409409        0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
    410       174,    0,  118,  115,  103,    0,    0,  171,    0,  103,
     410      176,    0,  120,  117,  103,    0,    0,  173,    0,  103,
    411411      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    412412      103,  103,  103,  103,  103,  103,   38,  103,  103,  103,
    413413      103,  103,  103,  103,  103,  103,  103,   57,  103,  103,
    414414      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    415       103,  103,  103,  103,  170,  162,    7,    0,    0,    0,
    416 
    417         2,    0,    5,  106,    0,    0,    0,  116,    0,  122,
    418       121,  121,    0,    0,    0,  119,    0,    0,    0,    0,
     415      103,  103,  103,  103,  172,  164,    7,    0,    0,    0,
     416
     417        2,    0,    5,  106,    0,    0,    0,  118,    0,  124,
     418      123,  123,    0,    0,    0,  121,    0,    0,    0,    0,
    419419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,  134,  113,  113,    0,  113,  113,    0,    0,    6,
    421         0,  111,    0,    0,    0,  113,    0,  111,  111,  111,
     420        0,  136,  114,  115,    0,  115,  115,    0,    0,    6,
     421      115,  111,    0,    0,    0,  115,    0,  111,  111,  111,
    422422      111,    0,  112,    0,    0,  110,  110,  110,  110,    0,
    423       172,  173,    0,  178,  176,    0,    0,    0,  104,    0,
     423      174,  175,    0,  180,  178,    0,    0,    0,  104,    0,
    424424        0,    0,    0,    0,    0,    0,    0,  103,   17,  103,
    425425      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     
    431431      103,  103,  103,  103,  103,   90,  103,  103,  103,  103,
    432432      103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
    433         0,  121,    0,    0,    0,    0,    0,  121,    0,    0,
    434       179,    0,    0,    0,    0,    0,    0,    0,  113,    0,
    435       113,    0,  113,    0,    0,  113,    0,  111,  111,    0,
    436         0,  112,  112,    0,  112,    0,  112,  110,  110,    0,
    437         0,    0,    0,    0,    0,    0,    0,    0,    0,  177,
    438 
     433        0,  123,    0,    0,    0,    0,    0,  123,    0,    0,
     434      181,    0,    0,    0,    0,    0,    0,    0,  115,    0,
     435      115,    0,  115,    0,  115,    0,    0,  115,    0,  111,
     436      111,    0,    0,  112,  112,    0,  112,    0,  112,  110,
     437      110,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     438
     439        0,  179,  103,  103,  103,  103,  103,  103,  103,  103,
    439440      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     441      103,  103,  103,  103,  103,   21,  103,   24,  103,   27,
     442      103,  103,  103,  103,  103,  103,  103,   41,  103,   43,
     443      103,  103,  103,  103,  103,  103,  103,   56,  103,   67,
    440444      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    441       103,  103,  103,   21,  103,   24,  103,   27,  103,  103,
    442       103,  103,  103,  103,  103,   41,  103,   43,  103,  103,
    443       103,  103,  103,  103,  103,   56,  103,   67,  103,  103,
     445      103,  103,  103,  103,  103,  103,   98,  103,  103,    0,
     446        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     447        0,    0,    0,  123,    0,    0,    0,    0,    0,  115,
     448        0,    0,    0,    0,    0,    0,    0,  112,  112,    0,
     449
     450      116,    0,  112,  112,    0,    0,    0,    0,    0,    0,
     451        0,    0,    0,    0,    0,    0,    0,  103,  103,   22,
     452      103,  103,  103,  103,  103,  103,  103,   15,  103,  103,
    444453      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    445       103,  103,  103,  103,   98,  103,  103,    0,    0,    0,
     454      103,  103,   23,   25,  103,   32,  103,  103,  103,  103,
     455       40,  103,  103,  103,  103,   49,  103,  103,   54,  103,
     456      103,   71,  103,  103,  103,   77,  103,  103,  103,  103,
     457      103,   87,   89,  103,  103,   95,  103,  103,  102,    0,
    446458        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    447         0,  121,    0,    0,    0,    0,    0,  113,    0,    0,
    448         0,    0,    0,    0,  112,  112,    0,  114,    0,  112,
    449 
    450       112,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    451         0,    0,    0,    0,  103,  103,   22,  103,  103,  103,
    452       103,  103,  103,  103,   15,  103,  103,  103,  103,  103,
    453       103,  103,  103,  103,  103,  103,  103,  103,  103,   23,
    454        25,  103,   32,  103,  103,  103,  103,   40,  103,  103,
    455       103,  103,   49,  103,  103,   54,  103,  103,   71,  103,
    456       103,  103,   77,  103,  103,  103,  103,  103,   87,   89,
    457       103,  103,   95,  103,  103,  102,    0,    0,    0,    0,
     459        0,    0,    0,    0,    0,    0,    0,    0,  116,    0,
     460
     461        0,  112,  116,  116,  116,  116,    0,  112,    0,    0,
     462        0,    0,    0,    0,    0,    0,    0,    0,  103,    0,
     463      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     464      103,  103,  103,  103,  103,  103,   59,  103,  103,  103,
     465      103,  103,  103,  103,  103,   28,  103,  103,  103,   39,
     466       42,   45,  103,  103,   52,  103,   61,   68,  103,  103,
     467       76,   78,   81,   82,   84,   85,  103,  103,   92,  103,
     468      103,    0,    1,    0,    0,    0,    0,    0,    0,  106,
     469        0,    0,    0,  123,    0,    0,    0,    0,  116,    0,
     470      116,  116,    0,    0,    0,    0,    0,    0,    0,    0,
     471
     472        0,  103,  103,   18,  103,  103,  103,  103,  103,  103,
     473      103,   16,  103,  103,  103,   33,  103,  103,  103,  103,
     474      103,  103,  103,  103,  103,  103,  103,  103,   36,   37,
     475      103,   48,   53,  103,  103,  103,   91,  103,  103,    0,
    458476        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    459         0,    0,    0,    0,    0,  114,    0,    0,  112,  114,
    460 
    461       114,  114,  114,    0,  112,    0,    0,    0,    0,    0,
    462         0,    0,    0,    0,    0,  103,    0,  103,  103,  103,
    463       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    464       103,  103,  103,   59,  103,  103,  103,  103,  103,  103,
    465       103,  103,   28,  103,  103,  103,   39,   42,   45,  103,
    466       103,   52,  103,   61,   68,  103,  103,   76,   78,   81,
    467        82,   84,   85,  103,  103,   92,  103,  103,    0,    1,
    468         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
    469       121,    0,    0,    0,    0,  114,    0,  114,  114,    0,
    470         0,    0,    0,    0,    0,    0,    0,    0,  103,  103,
    471 
    472        18,  103,  103,  103,  103,  103,  103,  103,   16,  103,
    473       103,  103,   33,  103,  103,  103,  103,  103,  103,  103,
    474       103,  103,  103,  103,  103,   36,   37,  103,   48,   53,
    475       103,  103,  103,   91,  103,  103,    0,    0,    0,    0,
    476         0,    0,    0,    0,    0,    0,    0,    0,    0,   10,
    477        11,   29,   55,  103,  103,  103,  103,  103,  103,  103,
    478       103,  103,  103,  103,   60,   62,   65,  103,  103,   79,
    479        93,  103,  103,   35,  103,   47,   72,   73,  103,   96,
    480        99,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    481         0,    0,    0,  103,   69,  103,  103,   12,  103,  103,
    482 
    483        30,   34,  103,  103,  103,   66,  103,  103,  103,  103,
    484       103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
    485         0,    0,    0,    0,    0,    0,   58,  103,  103,  103,
    486       103,  103,  103,  103,   50,   63,   74,   80,   94,  100,
    487       103,  103,  103,    0,    0,    0,    0,    0,    0,    0,
    488         0,  103,  103,   13,   19,  103,  103,   31,  103,  103,
    489       103,   26,   46,   88,    0,    0,  103,  103,  103,  103,
    490       103,  103,   75,  101,  103,   86,   20,  103,  103,   44,
    491        83,  103,  103,  103,  103,  103,  103,  103,   97,   70,
    492         0
     477        0,    0,   10,   11,   29,   55,  103,  103,  103,  103,
     478      103,  103,  103,  103,  103,  103,  103,   60,   62,   65,
     479      103,  103,   79,   93,  103,  103,   35,  103,   47,   72,
     480       73,  103,   96,   99,    0,    0,    0,    0,    0,    0,
     481        0,    0,    0,    0,    0,    0,  103,   69,  103,  103,
     482
     483       12,  103,  103,   30,   34,  103,  103,  103,   66,  103,
     484      103,  103,  103,  103,  103,  103,    0,    0,    0,    0,
     485        0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
     486      103,  103,  103,  103,  103,  103,  103,   50,   63,   74,
     487       80,   94,  100,  103,  103,  103,    0,    0,    0,    0,
     488        0,    0,    0,    0,  103,  103,   13,   19,  103,  103,
     489       31,  103,  103,  103,   26,   46,   88,    0,    0,  103,
     490      103,  103,  103,  103,  103,   75,  101,  103,   86,   20,
     491      103,  103,   44,   83,  103,  103,  103,  103,  103,  103,
     492      103,   97,   70,    0
    493493
    494494    } ;
     
    539539    } ;
    540540
    541 static yyconst flex_int16_t yy_base[1066] =
     541static yyconst flex_int16_t yy_base[1069] =
    542542    {   0,
    543         0,   84, 2285, 2282,   94,    0,  177,  178,  179,  180,
    544      2298, 2825,  191, 2825,  197,   55, 2825, 2244,   60,  173,
    545      2825, 2825, 2825,   56,  188, 2825,  191,  189,  204,  216,
    546       275,    0, 2262, 2825,  216, 2260,  152,  344,  155,  220,
    547      2825,  159, 2825,  217,  226, 2825,  185,  154,  212,  251,
     543        0,   84, 2307, 2305,   94,    0,  177,  178,  179,  180,
     544     2319, 2845,  191, 2845,  197,   55, 2845, 2265,   60,  173,
     545     2845, 2845, 2845,   56,  188, 2845,  191,  189,  204,  216,
     546      275,    0, 2284, 2845,  216, 2283,  152,  344,  155,  220,
     547     2845,  159, 2845,  217,  226, 2845,  185,  154,  212,  251,
    548548      237,  270,  235,  257,  241,  205,  193,  305,  314,  333,
    549       238,  228, 2825,  225, 2825, 2255,  402,  390, 2825, 2266,
    550      2825, 2234,  235, 2825,    0, 2825,  426,    0, 2825,  417,
    551      2825,  439,  451, 2825,  498, 2232,  264, 2825, 2825, 2825,
    552      2825, 2825, 2248, 2825, 2245, 2825, 2825, 2257,  559, 2825,
    553 
    554      2274, 2825,  438,  444,  511,  534,  289,  253,  197,  380,
    555       305,    0,  319,  280,  198,  322, 2825, 2825, 2825, 2243,
    556      2825, 2825, 2825, 2240, 2237,  218,  255, 2252,  298,  350,
    557       368,  312,  440,  398,  405, 2233,  441, 2181,  446, 2209,
    558      2825,  335, 2825, 2825,  468, 2203, 2202, 2825, 2175,  439,
     549      238,  228, 2845,  225, 2845, 2278,  402,  390, 2845, 2287,
     550     2845, 2255,  235, 2845,    0, 2845,  426,    0, 2845,  417,
     551     2845,  439,  451, 2845,  498, 2254,  264, 2845, 2845, 2845,
     552     2845, 2845, 2271, 2845, 2268, 2845, 2845, 2278,  559, 2845,
     553
     554     2295, 2845,  438,  444,  511,  534,  289,  253,  197,  380,
     555      305,    0,  319,  280,  198,  322, 2845, 2845, 2845, 2265,
     556     2845, 2845, 2845, 2263, 2260,  218,  255, 2273,  298,  350,
     557      368,  312,  440,  398,  405, 2254,  441, 2203,  446, 2232,
     558     2845,  335, 2845, 2845,  468, 2226, 2223, 2845, 2196,  439,
    559559      282,  433,  372,  281,  437,  434,  428,  570,  444,  466,
    560560      464,  469,  475,  321,  492,  438,  471,  445,  474,  512,
    561       489,  503,  496,  521,  276,  515,  516, 2202,  526,  510,
     561      489,  503,  496,  521,  276,  515,  516, 2224,  526,  510,
    562562      519,  525,  543,  522,  560,  553,  523,  561,  551,  544,
    563       599,  582,  593,  584, 2825, 2825,  660,  651, 2249,  666,
    564 
    565      2825,  678, 2825, 2196,  607, 2192, 2191,    0,  693, 2825,
    566      2825,  684, 2189, 2186, 2183,    0, 2206,  578,  608,  617,
    567       654,  679,  650,  683,  684,  687, 2203,  690,  691, 2179,
    568      2159, 2825,    0,  683,  710,  686,  700, 2157, 2209, 2825,
    569       714,    0,  427,  746,  764,  786,  808,  621, 2825, 2165,
    570      2138,    0,  794, 2184,  795,  709, 2825, 2160, 2134,  832,
    571      2825, 2825, 2165, 2825, 2825,  711,  714, 2142, 2142,  717,
    572      2138, 2136, 2133,    0, 2130,    0, 2101,  694,  679,  712,
    573       709,  711,  698,  566,  726,  743,  771,  741,  790,  784,
    574       800,  795,  742,  744,  814,  816,  818, 2131,  819,  745,
    575 
    576       820,  821,  822,  823,  824,  746,  825,  748,  659,  831,
    577       826,  833,  838,  839,  848,  850,  851,  844,  834,  857,
    578      2129,  858,  859,  860,  862,  861,  864,  865,  867,  868,
    579       866,  871,  876,  872,  878, 2126,  880,  689,  881,  882,
    580       892,  896,  893,  953,  954, 2120, 2119, 2118,    0, 2116,
    581         0,  941,  945, 2113,    0, 2112,    0, 2111,    0, 2131,
    582      2825,  940,  941, 2108, 2105,    0, 2104,    0, 2825,  953,
    583       975,  964, 2825,  981,  997, 1021, 2102, 2825, 2825,  939,
    584       940, 1006,  982, 1041,  310, 1039, 1004, 2825, 2825, 2099,
    585      2095, 2091,    0, 2089,    0, 2087,    0, 2084,    0, 2825,
    586 
    587       886,  941,  960,  962,  977,  976,  980,  982, 1017, 1010,
    588      1002,  998, 1022, 1031, 1028, 1033, 1034, 1037, 1040, 1043,
    589      1038, 1041, 1053, 2085, 1055, 2083, 1045, 2080, 1056, 1061,
    590      1063, 1065, 1066, 1067, 1070, 2077, 1071, 2076, 1073, 1074,
    591      1075, 1078, 1080, 1081, 1085, 2075, 1087, 2073, 1084, 1089,
    592      1091, 1097, 1099, 1092, 1102, 1103, 1105, 1106, 1108,  905,
    593      1109, 1116, 1110, 1122, 2070, 1120, 1123, 1179, 2064,    0,
    594      2063,    0, 2062,    0, 2060,    0, 1166, 2057,    0, 2054,
    595         0, 2053, 2052, 2050,    0, 2047,    0, 1173, 2044, 1179,
    596      1137, 1195, 1181, 1178, 1176, 2825, 1219, 1231, 1253, 2055,
    597 
    598      2030, 2040, 2037,    0, 2034,    0, 2033,    0, 2032,    0,
    599      2030,    0, 2027,    0, 1141, 1172, 2027, 1180, 1155, 1196,
    600      1157, 1216, 1207, 1231, 1125, 1210, 1232, 1214, 1187, 1236,
    601      1235, 1237, 1238, 1272, 1249, 1252, 1250, 1253, 1254, 2026,
    602      1261, 1256, 2025, 1260, 1263, 1264, 1257, 2023, 1271, 1268,
    603      1269, 1273, 2020, 1275, 1282, 2017, 1283, 1284, 2016, 1276,
    604      1286, 1289, 2015, 1294, 1291, 1296, 1295, 1297, 1310, 2013,
    605      1305, 1308, 2010, 1307, 1300, 2009, 2058, 2003,    0, 2000,
    606         0, 1999,    0, 1998,    0, 1996,    0, 1963,    0, 1961,
    607         0, 1960,    0, 1355, 1361, 1389, 1372, 1957, 2825, 1378,
    608 
    609      1325, 1365, 1379, 1954, 2825, 1953,    0, 1952,    0, 1950,
    610         0, 1947,    0,    0,    0, 1947,    0, 1366, 1312, 1311,
    611      1341, 1323, 1368, 1369, 1374, 1356, 1383, 1372, 1388, 1390,
    612      1393, 1395, 1396, 1398, 1400, 1431, 1406, 1407, 1411, 1408,
    613      1413, 1414, 1946, 1409, 1416, 1419, 1945, 1943, 1940, 1422,
    614      1424, 1939, 1429, 1938, 1936, 1425, 1430, 1933, 1932, 1931,
    615      1929, 1926, 1922, 1436, 1433, 1918, 1439, 1440, 1964, 2825,
    616      1895,    0, 1894,    0,    0,    0, 1896,    0,    0,    0,
    617      2825,    0,    0,    0,    0, 1486, 1891, 2825, 2825, 1492,
    618      1888,    0, 1887,    0,    0,    0,    0, 1886, 1447, 1444,
    619 
    620      1887, 1449, 1471, 1479, 1450, 1480, 1482, 1469, 1884, 1486,
    621      1490, 1488, 1502, 1452, 1510, 1504, 1491, 1519, 1506, 1498,
    622      1508, 1512, 1513, 1514, 1515, 1883, 1882, 1518, 1880, 1877,
    623      1517, 1520, 1523, 1876, 1521, 1525,    0,    0,    0, 1872,
    624      1870, 1867, 1575,    0, 1866, 1865, 1863, 1860, 1859, 1861,
    625      1859, 1856, 1855, 1531, 1538, 1527, 1528, 1530, 1533, 1552,
    626      1539, 1554, 1553, 1586, 1854, 1559, 1852, 1560, 1561, 1564,
    627      1570, 1572, 1571, 1849, 1574, 1848, 1847, 1845, 1575, 1842,
    628      1841, 1837, 1835, 1828, 1826, 1825, 1822, 1821, 1820, 1818,
    629      1801, 1792, 1791, 1576, 1791, 1579, 1577, 1580, 1582, 1581,
    630 
    631      1585, 1784, 1589, 1616, 1593, 1781, 1591, 1599, 1605, 1592,
    632      1606, 1609, 1610, 1771, 1769, 1768, 1747, 1746, 1745, 1738,
    633      1736, 1735, 1693, 1689, 1688, 1687, 1689, 1611, 1612, 1614,
    634      1615, 1618, 1625, 1621, 1686, 1683, 1627, 1682, 1681, 1631,
    635      1635, 1441, 1637, 1677, 1674, 1354, 1319, 1318, 1267, 1212,
    636      1210, 1639, 1640, 1211, 1647, 1623, 1649, 1178, 1652, 1653,
    637      1657, 1177, 1126,  964,  937,  903, 1641, 1643, 1659, 1663,
    638      1664, 1665,  788,  752, 1629,  607,  487, 1666, 1669,  394,
    639       357, 1670, 1672, 1671, 1674, 1676, 1675, 1678,  233,  137,
    640      2825, 1750, 1763, 1776, 1786, 1796, 1809, 1819, 1832, 1845,
    641 
    642      1858, 1866, 1876, 1883, 1890, 1897, 1904, 1911, 1918, 1925,
    643      1932, 1939, 1952, 1959, 1963, 1971, 1974, 1981, 1988, 1995,
    644      1998, 2005, 2011, 2024, 2037, 2044, 2051, 2058, 2065, 2068,
    645      2075, 2078, 2085, 2088, 2095, 2098, 2105, 2108, 2115, 2118,
    646      2125, 2128, 2135, 2143, 2150, 2157, 2164, 2171, 2174, 2181,
    647      2184, 2191, 2194, 2201, 2207, 2220, 2227, 2234, 2237, 2244,
    648      2247, 2254, 2257, 2264, 2267, 2274, 2277, 2284, 2287, 2294,
    649      2301, 2304, 2311, 2314, 2321, 2328, 2335, 2338, 2345, 2348,
    650      2355, 2358, 2365, 2368, 2375, 2378, 2385, 2391, 2404, 2411,
    651      2418, 2421, 2428, 2431, 2438, 2441, 2448, 2451, 2458, 2461,
    652 
    653      2468, 2471, 2478, 2481, 2488, 2491, 2498, 2505, 2508, 2515,
    654      2518, 2525, 2528, 2535, 2538, 2541, 2547, 2554, 2563, 2570,
    655      2577, 2580, 2587, 2590, 2593, 2599, 2606, 2609, 2612, 2615,
    656      2618, 2621, 2624, 2627, 2634, 2637, 2644, 2647, 2650, 2653,
    657      2656, 2666, 2673, 2676, 2679, 2682, 2689, 2696, 2703, 2706,
    658      2713, 2720, 2727, 2734, 2741, 2748, 2755, 2762, 2769, 2776,
    659      2783, 2790, 2797, 2804, 2811
     563      599,  582,  593,  584, 2845, 2845,  660,  651, 2272,  666,
     564
     565     2845,  678, 2845, 2219,  607, 2213, 2212,    0,  693, 2845,
     566     2845,  684, 2211, 2209, 2206,    0, 2227,  578,  608,  617,
     567      654,  679,  650,  683,  684,  687, 2224,  690,  691, 2201,
     568     2199, 2845,    0,  683,  710,  686,  700, 2179, 2230, 2845,
     569      730,  722,  427,  747,  756,  787,  770,  621, 2845, 2188,
     570     2161,    0,  795, 2205,  796,  700, 2845, 2181, 2156,  809,
     571     2845, 2845, 2188, 2845, 2845,  728,  733, 2165, 2163,  701,
     572     2159, 2158, 2156,    0, 2153,    0, 2122,  736,  746,  747,
     573      716,  689,  748,  566,  789,  659,  801,  751,  754,  785,
     574      776,  787,  808,  796,  739,  711,  806, 2152,  807,  815,
     575
     576      817,  821,  809,  819,  827,  830,  831,  832,  833,  834,
     577      839,  840,  841,  842,  846,  853,  854,  844,  847,  855,
     578     2151,  860,  862,  861,  866,  864,  867,  869,  870,  872,
     579      873,  874,  878,  875,  883, 2149,  882,  928,  885,  888,
     580      894,  899,  892,  956,  958, 2143, 2140, 2139,    0, 2138,
     581        0,  945,  949, 2136,    0, 2133,    0, 2132,    0, 2153,
     582     2845,  930,  944, 2131, 2126,    0, 2125,    0, 2845,  959,
     583      979,  970, 2845,  985, 1025, 2124, 1001, 1047, 2122, 2845,
     584     2845,  943,  987, 1033,  986, 1072,  310, 1064,  987, 2845,
     585     2845, 2119, 2115, 2111,    0, 2109,    0, 2107,    0, 2104,
     586
     587        0, 2845,  913,  947,  964,  966, 1005,  927, 1049,  939,
     588     1051,  968,  991,  986, 1041, 1053, 1003, 1059, 1063, 1066,
     589     1023, 1064, 1062, 1065,  978, 2105, 1072, 2103, 1078, 2100,
     590     1071, 1074, 1076, 1080, 1091, 1093, 1095, 2097, 1094, 2096,
     591     1082, 1098, 1099, 1100, 1101, 1105, 1106, 2095, 1107, 2093,
     592     1110, 1112, 1111, 1117, 1118, 1113, 1119, 1123, 1126, 1127,
     593     1129, 1130, 1131, 1140, 1142, 1143, 2090, 1144, 1147, 1195,
     594     2084,    0, 2083,    0, 2082,    0, 2080,    0, 1190, 2077,
     595        0, 2074,    0, 2073, 2072, 2070,    0, 2067,    0, 1197,
     596     2064, 1203, 1219, 1205, 1244, 1210, 1202, 1200, 2845, 1260,
     597
     598     1278, 1271, 2075, 2050, 2060, 2057,    0, 2054,    0, 2053,
     599        0, 2052,    0, 2050,    0, 2047,    0, 1164, 1152, 2047,
     600     1184, 1182, 1226, 1157, 1227, 1196, 1254, 1146, 1237, 1255,
     601     1256, 1204, 1258, 1271, 1261, 1260, 1292, 1274, 1262, 1277,
     602     1278, 1280, 2046, 1186, 1289, 2045, 1279, 1282, 1290, 1295,
     603     2043, 1299, 1300, 1301, 1303, 2040, 1306, 1302, 2037, 1310,
     604     1311, 2036, 1309, 1312, 1315, 2035, 1220, 1314, 1316, 1322,
     605     1326, 1333, 2033, 1328, 1329, 2030, 1330, 1335, 2029, 2078,
     606     2023,    0, 2020,    0, 2019,    0, 2018,    0, 2016,    0,
     607     1983,    0, 1981,    0, 1980,    0, 1379, 1385, 1413, 1396,
     608
     609     1977, 2845, 1402, 1351, 1389, 1403, 1974, 2845, 1973,    0,
     610     1972,    0, 1970,    0, 1967,    0,    0,    0, 1967,    0,
     611     1390, 1336, 1397, 1365, 1345, 1392, 1393, 1409, 1381, 1407,
     612     1412, 1414, 1419, 1420, 1422, 1424, 1427, 1431,  926, 1429,
     613     1432, 1438, 1433, 1435, 1440, 1966, 1437, 1441, 1445, 1965,
     614     1963, 1960, 1450, 1453, 1959, 1455, 1958, 1956, 1456, 1459,
     615     1953, 1952, 1951, 1949, 1942, 1940, 1458, 1461, 1939, 1464,
     616     1462, 1986, 2845, 1929,    0, 1925,    0,    0,    0, 1924,
     617        0,    0,    0, 2845,    0,    0,    0,    0, 1511, 1918,
     618     2845, 2845, 1517, 1917,    0, 1916,    0,    0,    0,    0,
     619
     620     1914, 1474, 1468, 1914, 1443, 1493, 1498, 1476, 1504, 1505,
     621     1494, 1913, 1334, 1509, 1506, 1510, 1511, 1545, 1525, 1518,
     622     1543, 1530, 1523, 1529, 1531, 1534, 1535, 1539, 1912, 1910,
     623     1540, 1907, 1906, 1542, 1538, 1544, 1905, 1546, 1550,    0,
     624        0,    0, 1900, 1897, 1896, 1596,    0, 1895, 1893, 1890,
     625     1889, 1888, 1889, 1886, 1885, 1884, 1552, 1557, 1573, 1549,
     626     1551, 1553, 1575, 1555, 1577, 1582, 1607, 1882, 1583, 1879,
     627     1584, 1589, 1585, 1590, 1591, 1594, 1878, 1597, 1877, 1875,
     628     1872, 1598, 1871, 1870, 1865, 1862, 1861, 1860, 1858, 1851,
     629     1849, 1848, 1845, 1844, 1843, 1841, 1600, 1827, 1601, 1605,
     630
     631     1608, 1602, 1609, 1610, 1818, 1614, 1629, 1615, 1817, 1604,
     632     1616, 1625, 1630, 1380, 1631, 1633, 1811, 1804, 1801, 1794,
     633     1792, 1791, 1770, 1769, 1768, 1761, 1759, 1758, 1716, 1716,
     634     1634, 1636, 1635, 1637, 1640, 1641, 1645, 1715, 1713, 1647,
     635     1712, 1711, 1648, 1652, 1653, 1654, 1703, 1701, 1700, 1698,
     636     1696, 1476, 1472, 1343, 1657, 1667, 1259, 1656, 1660, 1668,
     637     1150, 1671, 1675, 1676, 1031, 1027,  793,  752,  675, 1669,
     638     1677, 1680, 1681, 1682, 1684,  645,  607, 1686,  487,  441,
     639     1688, 1690,  394,  357, 1693, 1694, 1695, 1697, 1696, 1698,
     640     1700,  233,  137, 2845, 1773, 1786, 1799, 1809, 1819, 1832,
     641
     642     1842, 1855, 1868, 1881, 1889, 1899, 1906, 1913, 1920, 1927,
     643     1934, 1941, 1948, 1955, 1962, 1969, 1973, 1981, 1987, 1994,
     644     2001, 2008, 2015, 2018, 2025, 2031, 2044, 2057, 2064, 2071,
     645     2078, 2085, 2088, 2095, 2098, 2105, 2108, 2115, 2118, 2125,
     646     2128, 2135, 2138, 2145, 2148, 2155, 2163, 2170, 2177, 2184,
     647     2191, 2194, 2201, 2204, 2211, 2214, 2221, 2227, 2240, 2247,
     648     2254, 2257, 2264, 2267, 2274, 2277, 2284, 2287, 2294, 2297,
     649     2304, 2307, 2314, 2321, 2324, 2331, 2334, 2341, 2348, 2355,
     650     2358, 2365, 2368, 2375, 2378, 2385, 2388, 2395, 2398, 2405,
     651     2411, 2424, 2431, 2438, 2441, 2448, 2451, 2458, 2461, 2468,
     652
     653     2471, 2478, 2481, 2488, 2491, 2498, 2501, 2508, 2511, 2518,
     654     2525, 2528, 2535, 2538, 2545, 2548, 2555, 2558, 2561, 2567,
     655     2574, 2583, 2590, 2597, 2600, 2607, 2610, 2613, 2619, 2626,
     656     2629, 2632, 2635, 2638, 2641, 2644, 2647, 2654, 2657, 2664,
     657     2667, 2670, 2673, 2676, 2686, 2693, 2696, 2699, 2702, 2709,
     658     2716, 2723, 2726, 2733, 2740, 2747, 2754, 2761, 2768, 2775,
     659     2782, 2789, 2796, 2803, 2810, 2817, 2824, 2831
    660660    } ;
    661661
    662 static yyconst flex_int16_t yy_def[1066] =
     662static yyconst flex_int16_t yy_def[1069] =
    663663    {   0,
    664       891,    1,  892,  892,  891,    5,  893,  893,  894,  894,
    665       891,  891,  891,  891,  891,  891,  891,  895,  891,  891,
    666       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    667       891,   31,  891,  891,  891,  891,  891,  891,  896,  895,
    668       891,  891,  891,  891,  895,  891,  895,  895,  895,  895,
    669       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    670       895,  895,  891,  891,  891,  891,  891,  897,  891,  891,
    671       891,  898,  891,  891,  899,  891,  891,  900,  891,  891,
    672       891,  891,  891,  891,  891,  895,  891,  891,  891,  891,
    673       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    674 
    675       901,  891,   99,   30,  891,  891,  891,  891,  902,   30,
    676       891,   31,  891,  891,   31,  891,  891,  891,  891,  891,
    677       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    678       891,  891,  891,  891,  891,  891,  891,  891,  891,  903,
    679       891,  891,  891,  891,  895,  904,  905,  891,  891,  895,
    680       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    681       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    682       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    683       895,  895,  895,  895,  895,  895,  895,  895,  895,  895,
    684       895,  895,  895,  895,  891,  891,  891,  897,  897,  897,
    685 
    686       891,  897,  891,  898,  891,  906,  907,  899,  891,  891,
    687       891,  891,  908,  909,  910,  900,  891,  891,  891,  891,
    688       891,  891,  891,  891,  891,  891,  891,  891,  891,  911,
    689       912,  891,   99,  891,  891,  891,  891,   99,  913,  891,
    690       891,  104,  104,  891,  891,  891,  891,  891,  891,  891,
    691       891,  914,  915,  916,  891,  891,  891,  891,  891,  891,
    692       891,  891,  891,  891,  891,  891,  891,  891,  903,  891,
    693       917,  918,  919,  920,  921,  922,  891,  923,  923,  923,
    694       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    695       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    696 
    697       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    698       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    699       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    700       923,  923,  923,  923,  923,  923,  923,  923,  923,  923,
    701       923,  923,  923,  924,  925,  926,  927,  928,  929,  930,
    702       931,  891,  891,  932,  933,  934,  935,  936,  937,  891,
    703       891,  891,  891,  891,  938,  939,  940,  941,  891,  891,
    704       891,  891,  891,  891,  891,  371,  376,  891,  891,  942,
    705       943,  944,  891,  891,  891,  944,  891,  891,  891,  945,
    706       946,  947,  948,  949,  950,  951,  952,  953,  954,  891,
    707 
    708       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    709       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    710       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    711       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    712       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    713       955,  955,  955,  955,  955,  955,  955,  955,  955,  955,
    714       955,  955,  955,  955,  955,  955,  955,  956,  957,  958,
    715       959,  960,  961,  962,  963,  964,  891,  965,  966,  967,
    716       968,  969,  969,  970,  971,  972,  973,  891,  488,  891,
    717       974,  891,  974,  891,  891,  891,  891,  891,  891,  891,
    718 
    719       891,  975,  976,  977,  978,  979,  980,  981,  982,  983,
    720       984,  985,  986,  987,  988,  988,  988,  988,  988,  988,
    721       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    722       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    723       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    724       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    725       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
    726       988,  988,  988,  988,  988,  988,  989,  990,  991,  992,
     664      894,    1,  895,  895,  894,    5,  896,  896,  897,  897,
     665      894,  894,  894,  894,  894,  894,  894,  898,  894,  894,
     666      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     667      894,   31,  894,  894,  894,  894,  894,  894,  899,  898,
     668      894,  894,  894,  894,  898,  894,  898,  898,  898,  898,
     669      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     670      898,  898,  894,  894,  894,  894,  894,  900,  894,  894,
     671      894,  901,  894,  894,  902,  894,  894,  903,  894,  894,
     672      894,  894,  894,  894,  894,  898,  894,  894,  894,  894,
     673      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     674
     675      904,  894,  894,   30,  894,  894,  894,  894,  905,   30,
     676      894,   31,  894,  894,   31,  894,  894,  894,  894,  894,
     677      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     678      894,  894,  894,  894,  894,  894,  894,  894,  894,  906,
     679      894,  894,  894,  894,  898,  907,  908,  894,  894,  898,
     680      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     681      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     682      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     683      898,  898,  898,  898,  898,  898,  898,  898,  898,  898,
     684      898,  898,  898,  898,  894,  894,  894,  900,  900,  900,
     685
     686      894,  900,  894,  901,  894,  909,  910,  902,  894,  894,
     687      894,  894,  911,  912,  913,  903,  894,  894,  894,  894,
     688      894,  894,  894,  894,  894,  894,  894,  894,  894,  914,
     689      915,  894,   99,  894,  894,  894,  894,   99,  904,  894,
     690       99,  110,  242,  894,  894,  894,  894,  894,  894,  894,
     691      894,  916,  917,  918,  894,  894,  894,  894,  894,  894,
     692      894,  894,  894,  894,  894,  894,  894,  894,  919,  894,
     693      920,  921,  922,  923,  924,  925,  894,  926,  926,  926,
     694      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     695      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     696
     697      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     698      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     699      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     700      926,  926,  926,  926,  926,  926,  926,  926,  926,  926,
     701      926,  926,  926,  927,  928,  929,  930,  931,  932,  933,
     702      934,  894,  894,  935,  936,  937,  938,  939,  940,  894,
     703      894,  894,  894,  894,  941,  942,  943,  944,  894,  894,
     704      894,  894,  894,  894,  894,  375,  894,  371,  378,  894,
     705      894,  945,  946,  947,  894,  894,  894,  947,  894,  894,
     706      894,  948,  949,  950,  951,  952,  953,  954,  955,  956,
     707
     708      957,  894,  958,  958,  958,  958,  958,  958,  958,  958,
     709      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     710      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     711      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     712      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     713      958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
     714      958,  958,  958,  958,  958,  958,  958,  958,  958,  959,
     715      960,  961,  962,  963,  964,  965,  966,  967,  894,  968,
     716      969,  970,  971,  972,  972,  973,  974,  975,  976,  894,
     717      490,  894,  894,  977,  894,  977,  894,  894,  894,  894,
     718
     719      894,  894,  894,  894,  978,  979,  980,  981,  982,  983,
     720      984,  985,  986,  987,  988,  989,  990,  991,  991,  991,
     721      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     722      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     723      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     724      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     725      991,  991,  991,  991,  991,  991,  991,  991,  991,  991,
     726      991,  991,  991,  991,  991,  991,  991,  991,  991,  992,
    727727      993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
    728      1003, 1004, 1005,  891,  891,  891,  891, 1006,  891,  596,
    729 
    730       891,  891,  891,  600,  891, 1007, 1008, 1009, 1010, 1011,
    731      1012, 1013, 1014, 1015, 1016, 1017, 1018, 1017, 1017, 1017,
    732      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    733      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    734      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    735      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
    736      1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1019,  891,
    737      1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
    738       891, 1030, 1031, 1032, 1033,  891,  686,  891,  891,  891,
    739      1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1042,
    740 
    741      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    742      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    743      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    744      1042, 1042, 1042, 1042, 1042, 1042, 1043, 1044, 1045, 1046,
    745      1047, 1048,  891, 1049, 1034, 1036, 1050, 1051, 1041, 1042,
    746      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    747      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    748      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    749      1042, 1052, 1053, 1046, 1054, 1047, 1055, 1048, 1056, 1057,
    750      1050, 1058, 1051, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    751 
    752      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    753      1042, 1042, 1042, 1059, 1052, 1060, 1053, 1061, 1054, 1062,
    754      1055, 1063, 1056, 1064, 1057, 1058, 1042, 1042, 1042, 1042,
    755      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    756      1042, 1042, 1042, 1065, 1059, 1060, 1061, 1062, 1036, 1063,
    757      1064, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    758      1042, 1042, 1042, 1042, 1065, 1036, 1042, 1042, 1042, 1042,
    759      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    760      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
    761         0,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    762 
    763       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    764       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    765       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    766       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    767       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    768       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    769       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    770       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    771       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    772       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    773 
    774       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    775       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    776       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    777       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    778       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    779       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    780       891,  891,  891,  891,  891
     728     1003, 1004, 1005, 1006, 1007, 1008,  894,  894,  894,  894,
     729
     730     1009,  894,  599,  894,  894,  894,  603,  894, 1010, 1011,
     731     1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
     732     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     733     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     734     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     735     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     736     1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
     737     1020, 1022,  894, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
     738     1030, 1031, 1032,  894, 1033, 1034, 1035, 1036,  894,  689,
     739      894,  894,  894, 1037, 1038, 1039, 1040, 1041, 1042, 1043,
     740
     741     1044, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     742     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     743     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     744     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1046,
     745     1047, 1048, 1049, 1050, 1051,  894, 1052, 1037, 1039, 1053,
     746     1054, 1044, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     747     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     748     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     749     1045, 1045, 1045, 1045, 1055, 1056, 1049, 1057, 1050, 1058,
     750     1051, 1059, 1060, 1053, 1061, 1054, 1045, 1045, 1045, 1045,
     751
     752     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     753     1045, 1045, 1045, 1045, 1045, 1045, 1062, 1055, 1063, 1056,
     754     1064, 1057, 1065, 1058, 1066, 1059, 1067, 1060, 1061, 1045,
     755     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     756     1045, 1045, 1045, 1045, 1045, 1045, 1068, 1062, 1063, 1064,
     757     1065, 1039, 1066, 1067, 1045, 1045, 1045, 1045, 1045, 1045,
     758     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1068, 1039, 1045,
     759     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     760     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
     761     1045, 1045, 1045,    0,  894,  894,  894,  894,  894,  894,
     762
     763      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     764      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     765      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     766      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     767      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     768      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     769      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     770      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     771      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     772      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     773
     774      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     775      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     776      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     777      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     778      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     779      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     780      894,  894,  894,  894,  894,  894,  894,  894
    781781    } ;
    782782
    783 static yyconst flex_int16_t yy_nxt[2911] =
     783static yyconst flex_int16_t yy_nxt[2931] =
    784784    {   0,
    785785       12,   13,   14,   15,   15,   15,   13,   16,   17,   12,
     
    806806
    807807       83,   83,   83,   82,   91,   93,   87,  142,  146,   98,
    808        95,   99,   99,   99,   99,   99,   99,  252,  891,   94,
     808       95,   99,   99,   99,   99,   99,   99,  252,  894,   94,
    809809      100,   85,   96,   97,   85,  101,  161,  118,  143,   77,
    810810       77,   77,   77,  144,  147,  102,  103,   87,  104,  104,
     
    821821      115,  264,  248,   87,   87,  173,  106,  174,  249,  231,
    822822      175,  143,  116,  263,  176,  264,  144,  259,  317,  283,
    823       114,  125,  280,  500,  249,  126,  127,   87,  128,  191,
     823      114,  125,  280,  503,  249,  126,  127,   87,  128,  191,
    824824      129,  130,  256,  131,  249,  132,   87,  265,  257,  184,
    825       185,  257,  248,   87,  133,  134,  135,  501,  188,  186,
     825      185,  257,  248,   87,  133,  134,  135,  504,  188,  186,
    826826      249,  263,  187,  264,  271,   87,  189,  265,  145,  256,
    827827      305,  200,  201,  190,  257,  136,  200,  257,  137,  263,
    828828
    829       891,  264,  192,  197,   81,   82,   82,   82,  197,   87,
     829      894,  264,  192,  197,   81,   82,   82,   82,  197,   87,
    830830      272,  198,  202,  202,  202,  202,  202,  202,   80,   81,
    831831       82,   82,   82,   80,   87,  138,  139,  209,  210,  263,
    832       891,  264,  209,  282,  211,  255,  263,  267,  264,  211,
    833        82,   81,   82,   82,   82,   82,   87,  891,  212,  212,
    834       212,  212,   82,   81,   83,   83,   83,   82,  891,  211,
    835        99,   99,   99,   99,   99,   99,  242,  242,  242,  242,
     832      894,  264,  209,  282,  211,  255,  263,  267,  264,  211,
     833       82,   81,   82,   82,   82,   82,   87,  894,  212,  212,
     834      212,  212,   82,   81,   83,   83,   83,   82,  894,  211,
     835      241,  241,  241,  241,  241,  241,  242,  242,  242,  242,
    836836      266,  263,  263,  264,  264,  213,  143,  263,  211,  264,
    837        87,  144,  375,  211,  211,   87,   87,  211,  211,   87,
    838        87,   87,  286,  241,  891,  211,   87,   87,  211,  243,
     837       87,  144,  377,  211,  211,   87,   87,  211,  211,   87,
     838       87,   87,  286,   87,  894,  211,   87,   87,  211,  243,
    839839
    840840      211,  214,  211,  281,  215,  217,  278,  284,  285,  218,
    841841      219,  307,  298,  279,  220,  221,   87,  222,   87,  223,
    842        87,   87,  891,   87,  309,  300,   87,   87,  224,  225,
     842       87,   87,  894,   87,  309,  300,   87,   87,  224,  225,
    843843      226,  103,  303,  105,  105,  105,  105,  105,  105,   87,
    844844      299,   87,  301,  302,   87,  304,  308,  310,   87,  227,
     
    852852      331,  361,   87,   87,  238,  337,  326,  327,   87,  236,
    853853      235,  236,   87,  329,  237,  332,  236,  287,  288,  289,
    854       336,  290,  291,  334,   87,  292,   87,  293,  407,  360,
     854      336,  290,  291,  334,   87,  292,   87,  293,  409,  360,
    855855      330,  361,  294,  295,  296,   87,  297,  339,  360,  343,
    856856      361,   87,  200,  201,  338,  340,  346,  200,  341,   87,
    857857      342,  197,   81,   82,   82,   82,  197,  200,  201,  198,
    858       378,  361,  200,  202,  202,  202,  202,  202,  202,  344,
     858      380,  361,  200,  202,  202,  202,  202,  202,  202,  344,
    859859      201,  360,  347,  361,  344,  360,  345,  361,  202,  202,
    860       202,  202,  202,  202,  209,  210,  378,  143,  361,  209,
     860      202,  202,  202,  202,  209,  210,  380,   87,  361,  209,
    861861
    862862      202,  202,  202,  202,  202,  202,  352,  352,  352,  352,
    863863      360,   87,  361,  362,  360,  360,  361,  361,  360,  363,
    864864      361,  360,  360,  361,  361,  369,  369,  370,  369,  370,
    865       435,   87,  371,  371,  371,  371,  371,  371,  373,  353,
    866       373,   87,  263,  373,  264,  263,   87,  264,  369,  402,
    867        87,  369,  234,  235,  236,  406,  237,  236,  388,  401,
    868       373,   87,  373,   87,   87,  372,  390,  373,  105,  105,
    869       105,  105,  105,  105,  236,  235,  236,  404,   87,  237,
    870       405,  236,  403,  408,  388,  106,  246,  246,  246,  246,
    871       246,  246,  391,   87,   87,   87,   87,   87,   87,  419,
    872 
    873        87,  255,  425,  432,   87,  420,  434,  106,  376,  376,
    874       376,  376,  376,  376,  381,  409,  413,  105,  105,  105,
    875       105,  105,  105,   87,  234,  245,  236,  245,  237,  236,
    876       246,  246,  246,  246,  246,  246,   87,  383,  410,  384,
    877        87,  377,   87,  385,  411,  412,  236,   87,  236,  386,
    878       255,  237,   87,  236,  112,  112,  112,  112,  112,  112,
    879       414,  387,  415,  417,  418,  384,   87,  416,   87,  385,
    880        87,   87,   87,   87,   87,   87,   87,   87,   87,  421,
    881       427,  426,  433,   87,  437,   87,   87,  260,  423,  424,
    882        87,   87,  436,  429,  428,  422,   87,  430,  431,  439,
    883 
    884        87,  438,   87,   87,  446,  441,  440,  442,  443,   87,
    885        87,   87,   87,   87,   87,  445,   87,   87,   87,   87,
    886        87,  448,  447,   87,   87,  444,  449,  451,   87,  456,
    887        87,  450,   87,   87,   87,  452,  455,  454,   87,  453,
    888       457,  462,  460,  461,   87,   87,  458,  464,   87,  515,
    889       459,  463,  465,  466,  344,  201,  201,   87,  891,  344,
    890       467,  345,  199,  211,  211,  211,  211,  352,  352,  352,
    891       352,  360,  360,  361,  361,  371,  371,  371,  371,  371,
    892       371,  370,  569,  370,  492,  492,  371,  371,  371,  371,
    893       371,  371,  891,   87,  493,  494,  477,  488,  488,  488,
    894 
    895       488,  488,  488,  233,  233,  233,  233,  233,  233,  516,
    896       492,  492,   87,  234,   87,  236,   87,  237,  236,  242,
    897       242,  242,  242,  105,  105,  495,  381,  517,   87,   87,
    898       489,  496,   87,  518,   87,  236,  374,  236,  519,  520,
    899       237,  521,  236,  376,  376,  376,  376,  376,  376,  383,
    900        87,  384,  375,  496,   87,  385,  522,  496,  497,  891,
    901       497,  386,   87,  498,  498,  498,  498,  498,  498,   87,
    902       525,  495,  526,  387,   87,  524,  377,  384,  523,  496,
    903        87,  385,  383,   87,  384,   87,   87,  527,  385,   87,
    904        87,  532,   87,   87,  502,   87,  499,   87,  535,  528,
    905 
    906       529,  537,  530,  531,  533,   87,  387,   87,   87,  541,
    907       384,  534,  538,   87,  385,   87,  536,   87,   87,   87,
    908       539,  540,   87,   87,  546,   87,   87,   87,  544,  542,
    909        87,  548,   87,   87,  547,  543,   87,   87,  549,   87,
    910       545,   87,  552,   87,   87,  550,  556,  554,  551,   87,
    911       559,   87,  553,  555,   87,   87,  557,   87,   87,  558,
    912        87,   87,   87,  564,  560,  567,  563,  568,   87,  561,
    913       566,  562,   87,  565,   87,   87,  571,   87,   87,  573,
    914       627,  201,  492,  570,  576,  574,  572,  577,  211,  211,
    915       211,  211,  493,   87,  575,  488,  488,  488,  488,  488,
    916 
    917       488,  376,  376,  376,  376,  376,  376,   87,  492,   87,
    918       618,  234,  595,  236,  595,  237,  236,  596,  596,  596,
    919       596,  596,  596,  492,   87,  599,  492,  621,  489,   87,
    920        87,  623,   87,  236,  490,  236,  598,  619,  237,   87,
    921       236,  498,  498,  498,  498,  498,  498,  620,   87,  492,
    922       597,  599,  492,  600,  600,  600,  600,  600,  600,   87,
    923       631,  622,   87,   87,  625,  891,   87,  891,   87,  601,
    924       497,  602,  497,  603,  602,  498,  498,  498,  498,  498,
    925       498,  624,  628,   87,   87,  630,  604,   87,   87,   87,
    926        87,  602,  633,  602,  626,  636,  603,  632,  602,  629,
    927 
    928       634,   87,   87,  635,   87,   87,   87,  642,   87,   87,
    929       637,  641,   87,   87,  640,   87,   87,  643,  647,  639,
    930        87,   87,  866,   87,   87,   87,  638,   87,   87,  644,
    931       645,  646,  648,  650,   87,   87,   87,  649,   87,  653,
    932       651,   87,  652,   87,  654,  655,   87,   87,   87,   87,
    933       656,  657,   87,  660,  659,  661,  664,   87,  658,   87,
    934        87,  663,   87,   87,   87,  668,  665,  688,  688,  662,
    935       666,  701,  702,  891,  891,   87,  667,  488,  488,  488,
    936       488,  488,  488,  596,  596,  596,  596,  596,  596,  595,
    937       688,  595,  704,   87,  596,  596,  596,  596,  596,  596,
    938 
    939       600,  600,  600,  600,  600,  600,  703,  688,   87,  891,
    940       594,  686,  686,  686,  686,  686,  686,  689,   87,  689,
    941        87,   87,  689,  699,   87,  708,   87,  601,  706,  602,
    942       688,  603,  602,  604,  707,   87,  700,  710,  709,  689,
    943        87,  689,   87,  705,  687,   87,  689,   87,   87,  602,
    944        87,  602,   87,  716,  603,  718,  602,  712,   87,   87,
    945        87,   87,  711,   87,  714,   87,   87,  713,   87,  717,
    946       715,   87,  721,  719,   87,  724,   87,   87,  722,  720,
    947       727,   87,   87,   87,  725,   87,  731,  723,   87,  732,
    948       726,   87,   87,   87,  728,  734,   87,  733,  730,   87,
    949 
    950       735,   87,   87,  729,   87,  863,  751,  736,  686,  686,
    951       686,  686,  686,  686,  600,  600,  600,  600,  600,  600,
    952       750,   87,  755,   87,  601,  763,  602,  752,  603,  602,
    953       753,   87,   87,  764,   87,  756,  754,  757,   87,  758,
    954        87,  687,   87,   87,  759,  767,  602,  690,  602,  761,
    955        87,  603,  766,  602,   87,  760,   87,  762,   87,  765,
    956        87,  768,   87,  769,   87,   87,   87,   87,  770,   87,
    957        87,   87,   87,   87,  771,   87,  774,   87,  772,   87,
    958        87,  780,   87,   87,  796,   87,  781,  773,  775,  777,
    959        87,   87,  798,  776,  778,  797,  779,  686,  686,  686,
    960 
    961       686,  686,  686,  794,   87,   87,   87,  795,  799,  802,
    962       804,   87,   87,   87,  805,  806,   87,  801,  803,  808,
    963       807,  800,   87,   87,   87,  809,   87,   87,   87,   87,
    964       743,   87,   87,   87,   87,  830,  832,   87,   87,  810,
    965       833,   87,  835,   87,   87,   87,  811,  829,  836,  812,
    966       813,   87,  828,  840,  838,  827,  831,   87,   87,  834,
    967       839,   87,   87,   87,   87,  837,   87,   87,   87,  854,
    968        87,  853,  842,   87,  841,   87,  855,   87,  843,   87,
    969       858,   87,  860,   87,  852,  870,  861,   87,  856,   87,
    970       859,   87,   87,   87,  857,   87,  862,  868,  864,   87,
    971 
    972       867,   87,  869,  881,   87,   87,  871,  872,  873,   87,
    973       876,   87,  874,  875,  877,   87,   87,   87,   87,  879,
    974       880,   87,   87,   87,   87,  878,   87,   87,   87,  891,
    975        87,  884,  865,   87,   87,   87,  883,  885,   87,  882,
    976       890,   87,  891,  891,  851,  886,  888,  887,  891,  889,
    977        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
    978        69,   69,   69,   75,   75,   75,   75,   75,   75,   75,
    979        75,   75,   75,   75,   75,   75,   78,   78,   78,   78,
    980        78,   78,   78,   78,   78,   78,   78,   78,   78,   86,
    981       850,  891,   86,  848,   86,   86,   86,   86,   86,  140,
    982 
    983       891,  847,  891,  140,  140,  140,  140,  140,  140,  199,
    984       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
    985       199,  199,  204,  846,  891,  204,  845,  204,  204,  204,
    986       204,  204,  208,   87,  208,  208,   87,  208,  208,  208,
    987       208,  208,  208,   87,  208,  216,  891,  826,  216,  216,
    988       216,  216,  216,  216,  216,  216,  891,  216,  239,  239,
    989       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
    990       239,  253,  253,  825,  253,  823,  891,  821,  253,  269,
    991       891,  819,  269,  891,  269,  269,  269,  269,  269,  273,
    992       817,  273,  815,   87,   87,  273,  275,   87,  275,   87,
    993 
    994        87,   87,  275,  348,   87,  348,   87,   87,   87,  348,
    995       350,   87,  350,   87,  891,  793,  350,  354,  791,  354,
    996       891,  891,  788,  354,  356,  786,  356,  784,   87,   87,
    997       356,  358,   87,  358,   87,   87,   87,  358,  365,   87,
    998       365,  749,  746,  745,  365,  367,  743,  367,  205,  739,
    999       738,  367,  239,  239,  239,  239,  239,  239,  239,  239,
    1000       239,  239,  239,  239,  239,  380,  670,  380,  382,  382,
    1001        87,  382,  382,  382,   87,  382,  253,  253,   87,  253,
    1002       392,   87,  392,   87,   87,   87,  392,  394,   87,  394,
    1003        87,   87,   87,  394,  396,   87,  396,   87,   87,   87,
    1004 
    1005       396,  273,  697,  273,  398,  696,  398,  694,  692,  690,
    1006       398,  275,  598,  275,   86,  685,  684,   86,  682,   86,
     865      894,  411,  371,  371,  371,  371,  371,  371,  373,  353,
     866      373,   87,  103,  373,  242,  242,  242,  242,  369,  390,
     867      392,  369,  375,  375,  375,  375,  375,  375,  407,  263,
     868      373,  264,  373,   87,  263,  372,  264,  373,   87,  105,
     869      105,  105,  105,  105,  105,  390,  393,  243,  246,  246,
     870      246,  246,  246,  246,  406,  376,  106,  245,   87,  245,
     871      424,   87,  246,  246,  246,  246,  246,  246,   87,   87,
     872
     873       87,  403,  255,   87,  423,  408,   87,  894,  106,  378,
     874      378,  378,  378,  378,  378,  383,  404,  405,  105,  105,
     875      105,  105,  105,  105,  416,  234,  415,  236,   87,  237,
     876      236,  112,  112,  112,  112,  112,  112,   87,  385,   87,
     877      386,   87,  379,  418,  387,   87,  410,  236,   87,  236,
     878      388,  255,  237,   87,  236,  419,  420,  422,   87,   87,
     879       87,   87,  389,  417,  260,  421,  386,   87,  412,   87,
     880      387,   87,  427,   87,  413,  414,  425,  426,  428,   87,
     881      429,  430,   87,   87,   87,   87,   87,  434,  435,  431,
     882      436,   87,   87,   87,   87,  438,   87,  439,   87,   87,
     883
     884      432,  433,  441,  443,  437,   87,   87,   87,  440,  442,
     885      444,  445,   87,   87,   87,  447,   87,  448,   87,   87,
     886      449,   87,   87,  450,   87,   87,   87,   87,  446,  451,
     887       87,  453,  452,  458,   87,   87,  143,   87,  454,  457,
     888       87,  456,  455,  464,   87,  462,   87,  459,  463,  460,
     889      721,   87,  461,  466,  467,  465,  468,  344,  201,  469,
     890      201,  360,  344,  361,  345,   87,  199,  211,  211,  211,
     891      211,  352,  352,  352,  352,  360,  518,  361,   87,   87,
     892       87,  371,  371,  371,  371,  371,  371,  370,  495,  370,
     893      523,   87,  371,  371,  371,  371,  371,  371,  496,   87,
     894
     895      479,  490,  490,  490,  490,  490,  490,  233,  233,  233,
     896      233,  233,  233,  525,  495,  519,   87,  234,   87,  236,
     897       87,  237,  236,  242,  242,  242,  242,  105,  105,  498,
     898       87,  520,  495,  527,  491,  499,  499,  521,   87,  236,
     899      374,  236,  497,   87,  237,  542,  236,  375,  375,  375,
     900      375,  375,  375,  383,  498,   87,  377,   87,  495,  528,
     901      529,  499,  499,  234,  235,  236,  522,  237,  236,  378,
     902      378,  378,  378,  378,  378,   87,  385,  533,  386,   87,
     903      376,  538,  387,   87,  894,  236,  235,  236,  388,  500,
     904      237,  500,  236,   87,  501,  501,  501,  501,  501,  501,
     905
     906      389,   87,  379,   87,  386,   87,  530,  385,  387,  386,
     907      524,   87,  526,  387,   87,   87,   87,   87,   87,  505,
     908      535,  531,  532,   87,   87,  540,   87,  502,   87,  534,
     909       87,  389,   87,  536,   87,  386,  541,  539,  543,  387,
     910      537,  547,  544,   87,  545,   87,   87,   87,  546,  549,
     911       87,   87,   87,   87,  553,  548,  551,   87,   87,   87,
     912      550,  552,   87,   87,   87,   87,  555,  559,  557,   87,
     913       87,   87,  554,  562,  556,   87,  560,  558,   87,   87,
     914      567,   87,   87,   87,  563,  561,  570,  566,  571,  564,
     915      565,  569,   87,  568,   87,   87,   87,  201,   87,   87,
     916
     917      574,  630,   87,  580,   87,  573,  577,  572,  579,   87,
     918      575,  576,  211,  211,  211,  211,   87,  622,  578,  490,
     919      490,  490,  490,  490,  490,  375,  375,  375,  375,  375,
     920      375,  626,  645,  621,   87,  234,   87,  236,   87,  237,
     921      236,  378,  378,  378,  378,  378,  378,  495,   87,  602,
     922      495,  623,  491,  628,  624,  495,   87,  236,  492,  236,
     923      496,  598,  237,  598,  236,  601,  599,  599,  599,  599,
     924      599,  599,   87,  495,  493,  602,  495,  634,   87,   87,
     925      662,  495,  501,  501,  501,  501,  501,  501,  500,   87,
     926      500,  625,  627,  501,  501,  501,  501,  501,  501,  600,
     927
     928      603,  603,  603,  603,  603,  603,   87,   87,   87,  631,
     929       87,   87,   87,   87,   87,  639,  604,  629,  605,  635,
     930      606,  605,  632,   87,  637,  638,   87,  633,  636,   87,
     931       87,   87,   87,  607,   87,  640,  641,  644,  605,  643,
     932      605,   87,   87,  606,   87,  605,  642,   87,  647,  648,
     933      646,   87,   87,   87,   87,   87,  650,  649,   87,  656,
     934      651,   87,   87,   87,   87,  653,   87,   87,   87,  652,
     935      654,  657,  658,  655,   87,  664,  663,  660,   87,  667,
     936       87,   87,   87,  659,  661,   87,   87,   87,   87,  668,
     937      666,  669,  762,  691,  691,  704,  665,   87,  894,  670,
     938
     939      671,  490,  490,  490,  490,  490,  490,  599,  599,  599,
     940      599,  599,  599,  598,  707,  598,  691,   87,  599,  599,
     941      599,  599,  599,  599,  603,  603,  603,  603,  603,  603,
     942      706,  691,   87,   87,  597,  689,  689,  689,  689,  689,
     943      689,  692,   87,  692,   87,   87,  692,  702,  844,   87,
     944      711,  604,  709,  605,  691,  606,  605,  607,  705,   87,
     945      703,   87,  712,  692,   87,  692,   87,  708,  690,  710,
     946      692,   87,   87,  605,   87,  605,   87,  713,  606,   87,
     947      605,   87,  719,   87,   87,   87,  715,   87,  714,   87,
     948       87,  717,   87,   87,  716,   87,  722,   87,  718,  724,
     949
     950      720,  727,   87,  725,  723,   87,  730,   87,   87,  726,
     951       87,   87,  728,   87,   87,  729,   87,  734,  735,  736,
     952       87,  755,  731,  737,  733,  738,   87,  894,   87,  739,
     953      754,  869,  732,  689,  689,  689,  689,  689,  689,  603,
     954      603,  603,  603,  603,  603,   87,   87,  753,  758,  604,
     955       87,  605,  756,  606,  605,  757,   87,   87,   87,  759,
     956      760,   87,   87,   87,  761,  765,  690,  764,  767,  770,
     957       87,  605,  693,  605,  763,   87,  606,   87,  605,  769,
     958      768,   87,   87,   87,  766,  771,   87,   87,  772,  773,
     959       87,   87,   87,  774,   87,   87,   87,   87,   87,  775,
     960
     961      777,   87,   87,   87,   87,   87,  783,   87,  776,   87,
     962      778,  784,  781,  801,  780,  779,  800,  782,  689,  689,
     963      689,  689,  689,  689,  797,   87,  798,   87,  802,   87,
     964      799,  807,  805,  804,   87,   87,   87,   87,  808,  809,
     965      811,   87,   87,   87,  803,  812,   87,  806,  810,   87,
     966       87,  746,   87,   87,   87,  838,   87,   87,  813,   87,
     967       87,   87,   87,  833,  835,  836,   87,   87,   87,  814,
     968      839,  841,  815,  816,  831,  832,  834,   87,  840,  830,
     969      842,   87,   87,   87,  837,   87,   87,   87,   87,   87,
     970      857,  843,   87,   87,  845,  856,  861,   87,  858,   87,
     971
     972       87,  846,  863,  864,   87,   87,   87,  855,   87,   87,
     973      859,  872,   87,  865,  862,  867,  860,  866,  870,   87,
     974       87,   87,  873,   87,  871,  874,  875,   87,   87,   87,
     975      876,  877,   87,   87,   87,  880,   87,  882,   87,  883,
     976       87,  878,   87,  881,  879,   87,   87,   87,   87,   87,
     977       87,  894,   87,  894,  887,  894,  894,  886,  868,  888,
     978      884,  885,  893,   87,   87,   87,  891,   87,   87,  889,
     979      890,  894,  892,   69,   69,   69,   69,   69,   69,   69,
     980       69,   69,   69,   69,   69,   69,   75,   75,   75,   75,
     981       75,   75,   75,   75,   75,   75,   75,   75,   75,   78,
     982
     983       78,   78,   78,   78,   78,   78,   78,   78,   78,   78,
     984       78,   78,   86,  894,  854,   86,  894,   86,   86,   86,
     985       86,   86,  140,  853,  894,  851,  140,  140,  140,  140,
     986      140,  140,  199,  199,  199,  199,  199,  199,  199,  199,
     987      199,  199,  199,  199,  199,  204,  894,  850,  204,  894,
     988      204,  204,  204,  204,  204,  208,  849,  208,  208,  894,
     989      208,  208,  208,  208,  208,  208,  848,  208,  216,   87,
     990       87,  216,  216,  216,  216,  216,  216,  216,  216,   87,
     991      216,  239,  239,  239,  239,  239,  239,  239,  239,  239,
     992      239,  239,  239,  239,  253,  253,  894,  253,  829,  894,
     993
     994      828,  253,  269,  826,  894,  269,  824,  269,  269,  269,
     995      269,  269,  273,  894,  273,  822,  894,  820,  273,  275,
     996      818,  275,   87,   87,   87,  275,  348,   87,  348,   87,
     997       87,   87,  348,  350,   87,  350,   87,   87,   87,  350,
     998      354,   87,  354,  894,  796,  794,  354,  356,  894,  356,
     999      894,  791,  789,  356,  358,  787,  358,   87,   87,   87,
     1000      358,  365,   87,  365,   87,   87,   87,  365,  367,  752,
     1001      367,  749,  748,  746,  367,  382,  205,  382,  384,  384,
     1002      742,  384,  384,  384,  741,  384,  253,  253,  673,  253,
     1003      269,   87,   87,  269,   87,  269,  269,  269,  269,  269,
     1004
     1005      394,   87,  394,   87,   87,   87,  394,  396,   87,  396,
     1006       87,   87,   87,  396,  398,   87,  398,   87,   87,   87,
     1007      398,  273,  700,  273,  400,  699,  400,  697,  695,  693,
     1008      400,  275,  601,  275,   86,  688,  687,   86,  685,   86,
    10071009       86,   86,   86,   86,  199,  199,  199,  199,  199,  199,
    1008       199,  199,  199,  199,  199,  199,  199,  468,  468,  468,
    1009       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
    1010       469,  680,  469,  678,  676,  674,  469,  471,  672,  471,
    1011       670,   87,   87,  471,  473,   87,  473,   87,   87,   87,
    1012       473,  348,   87,  348,  475,   87,  475,   87,   87,   87,
    1013       475,  350,  617,  350,  478,  615,  478,  613,  611,  609,
    1014       478,  354,  607,  354,  480,  502,  480,  605,  605,  594,
    1015 
    1016       480,  356,  593,  356,  482,  591,  482,  483,  483,  589,
    1017       482,  358,  587,  358,  484,  585,  484,  583,  581,  579,
    1018       484,  365,   87,  365,  486,   87,  486,   87,   87,   87,
    1019       486,  367,   87,  367,  491,   87,  491,   87,  491,  514,
    1020       491,  380,  512,  380,  510,  380,  508,  380,  382,  382,
    1021       506,  382,  382,  382,  504,  382,  503,  490,  503,  487,
    1022       485,  361,  503,  505,  361,  505,  483,  481,  479,  505,
    1023       507,  476,  507,  474,  472,  470,  507,  392,   87,  392,
    1024       509,   87,  509,   87,  400,  399,  509,  394,  397,  394,
    1025       511,  395,  511,  393,  270,  265,  511,  396,  264,  396,
    1026 
    1027       513,  389,  513,  389,  252,  379,  513,  398,  379,  398,
    1028        86,  240,  374,   86,  368,   86,   86,   86,   86,   86,
    1029       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
    1030       468,  468,  468,  578,  366,  578,  364,  360,  359,  578,
    1031       469,  357,  469,  580,  355,  580,  351,  349,  205,  580,
    1032       471,  201,  471,  582,   87,  582,  277,  276,  274,  582,
    1033       473,  270,  473,  584,  265,  584,  268,  265,  263,  584,
    1034       475,  262,  475,  586,  261,  586,  240,  232,   85,  586,
    1035       478,   85,  478,  588,   87,  588,  205,  203,   85,  588,
    1036       480,  122,  480,  482,  117,  482,   87,  891,   70,  482,
    1037 
    1038       590,   70,  590,  891,  891,  891,  590,  484,  891,  484,
    1039       592,  891,  592,  891,  891,  891,  592,  486,  891,  486,
    1040       491,  891,  491,  891,  491,  891,  491,  382,  891,  382,
    1041       891,  891,  891,  382,  606,  891,  606,  891,  891,  891,
    1042       606,  503,  891,  503,  608,  891,  608,  891,  891,  891,
    1043       608,  505,  891,  505,  610,  891,  610,  891,  891,  891,
    1044       610,  507,  891,  507,  612,  891,  612,  891,  891,  891,
    1045       612,  509,  891,  509,  614,  891,  614,  891,  891,  891,
    1046       614,  511,  891,  511,  616,  891,  616,  891,  891,  891,
    1047       616,  513,  891,  513,   86,  891,  891,   86,  891,   86,
    1048 
    1049        86,   86,   86,   86,  669,  669,  669,  669,  669,  669,
    1050       669,  669,  669,  669,  669,  669,  669,  671,  891,  671,
    1051       891,  891,  891,  671,  578,  891,  578,  673,  891,  673,
    1052       891,  891,  891,  673,  580,  891,  580,  675,  891,  675,
    1053       891,  891,  891,  675,  582,  891,  582,  677,  891,  677,
    1054       891,  891,  891,  677,  584,  891,  584,  679,  891,  679,
    1055       891,  891,  891,  679,  586,  891,  586,  681,  891,  681,
    1056       891,  891,  891,  681,  588,  891,  588,  683,  891,  683,
    1057       891,  891,  891,  683,  590,  891,  590,   86,  891,   86,
    1058       891,  891,  891,   86,  592,  891,  592,  491,  891,  491,
    1059 
    1060       891,  891,  891,  491,  691,  891,  691,  891,  891,  891,
    1061       691,  606,  891,  606,  693,  891,  693,  891,  891,  891,
    1062       693,  608,  891,  608,  695,  891,  695,  891,  891,  891,
    1063       695,  610,  891,  610,  140,  891,  140,  891,  891,  891,
    1064       140,  612,  891,  612,  698,  891,  698,  614,  891,  614,
    1065        86,  891,  891,   86,  891,   86,   86,   86,   86,   86,
    1066       616,  891,  616,  669,  669,  669,  669,  669,  669,  669,
    1067       669,  669,  669,  669,  669,  669,  737,  891,  737,  891,
    1068       891,  891,  737,  671,  891,  671,  204,  891,  204,  891,
    1069       891,  891,  204,  673,  891,  673,  740,  891,  740,  675,
    1070 
    1071       891,  675,  204,  891,  891,  204,  891,  204,  204,  204,
    1072       204,  204,  677,  891,  677,  741,  891,  741,  679,  891,
    1073       679,  681,  891,  681,  742,  891,  742,  683,  891,  683,
    1074        86,  891,   86,  744,  891,  744,  891,  891,  891,  744,
    1075       691,  891,  691,  269,  891,  269,  891,  891,  891,  269,
    1076       693,  891,  693,  747,  891,  747,  695,  891,  695,  140,
    1077       891,  140,  748,  891,  748,  891,  891,  891,  748,   86,
    1078       891,  891,   86,  891,   86,   86,   86,   86,   86,  782,
    1079       891,  782,  737,  891,  737,  204,  891,  204,  783,  891,
    1080       783,  891,  891,  891,  783,  785,  891,  785,  891,  891,
    1081 
    1082       891,  785,  787,  891,  787,  891,  891,  891,  787,  789,
    1083       891,  789,  790,  891,  790,  891,  891,  891,  790,  792,
    1084       891,  792,  891,  891,  891,  792,  814,  891,  814,  891,
    1085       891,  891,  814,  816,  891,  816,  891,  891,  891,  816,
    1086       818,  891,  818,  891,  891,  891,  818,  820,  891,  820,
    1087       891,  891,  891,  820,  822,  891,  822,  891,  891,  891,
    1088       822,  824,  891,  824,  891,  891,  891,  824,  616,  891,
    1089       616,  891,  891,  891,  616,  844,  891,  844,  891,  891,
    1090       891,  844,  677,  891,  677,  891,  891,  891,  677,  681,
    1091       891,  681,  891,  891,  891,  681,   86,  891,   86,  891,
    1092 
    1093       891,  891,   86,  849,  891,  849,  891,  891,  891,  849,
    1094       140,  891,  140,  891,  891,  891,  140,  204,  891,  204,
    1095       891,  891,  891,  204,   11,  891,  891,  891,  891,  891,
    1096       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1097       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1098       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1099       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1100       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1101       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1102       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1103 
    1104       891,  891,  891,  891,  891,  891,  891,  891,  891,  891
     1010      199,  199,  199,  199,  199,  199,  199,  470,  470,  470,
     1011      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
     1012      471,  683,  471,  681,  679,  677,  471,  473,  675,  473,
     1013      673,   87,   87,  473,  475,   87,  475,   87,   87,   87,
     1014      475,  348,   87,  348,  477,   87,  477,   87,   87,   87,
     1015
     1016      477,  350,  620,  350,  480,  618,  480,  616,  614,  612,
     1017      480,  354,  610,  354,  482,  505,  482,  608,  608,  597,
     1018      482,  356,  596,  356,  484,  594,  484,  485,  485,  592,
     1019      484,  358,  590,  358,  486,  588,  486,  586,  584,  582,
     1020      486,  365,   87,  365,  488,   87,  488,   87,   87,   87,
     1021      488,  367,   87,  367,  494,   87,  494,   87,  494,  517,
     1022      494,  382,  515,  382,  513,  382,  511,  382,  384,  384,
     1023      509,  384,  384,  384,  507,  384,  506,  493,  506,  492,
     1024      489,  487,  506,  508,  361,  508,  361,  485,  483,  508,
     1025      510,  481,  510,  478,  476,  474,  510,  394,  472,  394,
     1026
     1027      512,   87,  512,   87,   87,  402,  512,  396,  401,  396,
     1028      514,  399,  514,  397,  395,  270,  514,  398,  265,  398,
     1029      516,  264,  516,  391,  391,  252,  516,  400,  381,  400,
     1030       86,  381,  240,   86,  374,   86,   86,   86,   86,   86,
     1031      470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
     1032      470,  470,  470,  581,  368,  581,  366,  364,  360,  581,
     1033      471,  359,  471,  583,  357,  583,  355,  351,  349,  583,
     1034      473,  205,  473,  585,  201,  585,   87,  277,  276,  585,
     1035      475,  274,  475,  587,  270,  587,  265,  268,  265,  587,
     1036      477,  263,  477,  589,  262,  589,  261,  240,  232,  589,
     1037
     1038      480,   85,  480,  591,   85,  591,   87,  205,  203,  591,
     1039      482,   85,  482,  484,  122,  484,  117,   87,  894,  484,
     1040      593,   70,  593,   70,  894,  894,  593,  486,  894,  486,
     1041      595,  894,  595,  894,  894,  894,  595,  488,  894,  488,
     1042      494,  894,  494,  894,  494,  894,  494,  384,  894,  384,
     1043      894,  894,  894,  384,  609,  894,  609,  894,  894,  894,
     1044      609,  506,  894,  506,  611,  894,  611,  894,  894,  894,
     1045      611,  508,  894,  508,  613,  894,  613,  894,  894,  894,
     1046      613,  510,  894,  510,  615,  894,  615,  894,  894,  894,
     1047      615,  512,  894,  512,  617,  894,  617,  894,  894,  894,
     1048
     1049      617,  514,  894,  514,  619,  894,  619,  894,  894,  894,
     1050      619,  516,  894,  516,   86,  894,  894,   86,  894,   86,
     1051       86,   86,   86,   86,  672,  672,  672,  672,  672,  672,
     1052      672,  672,  672,  672,  672,  672,  672,  674,  894,  674,
     1053      894,  894,  894,  674,  581,  894,  581,  676,  894,  676,
     1054      894,  894,  894,  676,  583,  894,  583,  678,  894,  678,
     1055      894,  894,  894,  678,  585,  894,  585,  680,  894,  680,
     1056      894,  894,  894,  680,  587,  894,  587,  682,  894,  682,
     1057      894,  894,  894,  682,  589,  894,  589,  684,  894,  684,
     1058      894,  894,  894,  684,  591,  894,  591,  686,  894,  686,
     1059
     1060      894,  894,  894,  686,  593,  894,  593,   86,  894,   86,
     1061      894,  894,  894,   86,  595,  894,  595,  494,  894,  494,
     1062      894,  894,  894,  494,  694,  894,  694,  894,  894,  894,
     1063      694,  609,  894,  609,  696,  894,  696,  894,  894,  894,
     1064      696,  611,  894,  611,  698,  894,  698,  894,  894,  894,
     1065      698,  613,  894,  613,  140,  894,  140,  894,  894,  894,
     1066      140,  615,  894,  615,  701,  894,  701,  617,  894,  617,
     1067       86,  894,  894,   86,  894,   86,   86,   86,   86,   86,
     1068      619,  894,  619,  672,  672,  672,  672,  672,  672,  672,
     1069      672,  672,  672,  672,  672,  672,  740,  894,  740,  894,
     1070
     1071      894,  894,  740,  674,  894,  674,  204,  894,  204,  894,
     1072      894,  894,  204,  676,  894,  676,  743,  894,  743,  678,
     1073      894,  678,  204,  894,  894,  204,  894,  204,  204,  204,
     1074      204,  204,  680,  894,  680,  744,  894,  744,  682,  894,
     1075      682,  684,  894,  684,  745,  894,  745,  686,  894,  686,
     1076       86,  894,   86,  747,  894,  747,  894,  894,  894,  747,
     1077      694,  894,  694,  269,  894,  269,  894,  894,  894,  269,
     1078      696,  894,  696,  750,  894,  750,  698,  894,  698,  140,
     1079      894,  140,  751,  894,  751,  894,  894,  894,  751,   86,
     1080      894,  894,   86,  894,   86,   86,   86,   86,   86,  785,
     1081
     1082      894,  785,  740,  894,  740,  204,  894,  204,  786,  894,
     1083      786,  894,  894,  894,  786,  788,  894,  788,  894,  894,
     1084      894,  788,  790,  894,  790,  894,  894,  894,  790,  792,
     1085      894,  792,  793,  894,  793,  894,  894,  894,  793,  795,
     1086      894,  795,  894,  894,  894,  795,  817,  894,  817,  894,
     1087      894,  894,  817,  819,  894,  819,  894,  894,  894,  819,
     1088      821,  894,  821,  894,  894,  894,  821,  823,  894,  823,
     1089      894,  894,  894,  823,  825,  894,  825,  894,  894,  894,
     1090      825,  827,  894,  827,  894,  894,  894,  827,  619,  894,
     1091      619,  894,  894,  894,  619,  847,  894,  847,  894,  894,
     1092
     1093      894,  847,  680,  894,  680,  894,  894,  894,  680,  684,
     1094      894,  684,  894,  894,  894,  684,   86,  894,   86,  894,
     1095      894,  894,   86,  852,  894,  852,  894,  894,  894,  852,
     1096      140,  894,  140,  894,  894,  894,  140,  204,  894,  204,
     1097      894,  894,  894,  204,   11,  894,  894,  894,  894,  894,
     1098      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1099      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1100      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1101      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1102      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1103
     1104      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1105      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1106      894,  894,  894,  894,  894,  894,  894,  894,  894,  894
    11051107    } ;
    11061108
    1107 static yyconst flex_int16_t yy_chk[2911] =
     1109static yyconst flex_int16_t yy_chk[2931] =
    11081110    {   0,
    11091111        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11261128        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11271129        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1128         8,    9,   10,   37,   37,   20,   39,    9,   10,  890,
     1130        8,    9,   10,   37,   37,   20,   39,    9,   10,  893,
    11291131        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    11301132
     
    11371139       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    11381140       45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
    1139        62,   45,   49,   30,   73,  889,  127,   53,  127,   51,
     1141       62,   45,   49,   30,   73,  892,  127,   53,  127,   51,
    11401142       61,   30,   62,   55,   30,   31,  108,   31,   31,   31,
    11411143
     
    11451147       31,  129,  107,  154,  151,   52,   31,   52,  107,   87,
    11461148       52,   60,   31,  132,   52,  132,   60,  114,  175,  154,
    1147        31,   38,  151,  385,  111,   38,   38,   58,   38,   60,
     1149       31,   38,  151,  387,  111,   38,   38,   58,   38,   60,
    11481150       38,   38,  113,   38,  107,   38,   59,  130,  113,   58,
    1149        58,  116,  111,  164,   38,   38,   38,  385,   59,   58,
     1151       58,  116,  111,  164,   38,   38,   38,  387,   59,   58,
    11501152      111,  130,   58,  130,  142,   60,   59,  131,   60,  116,
    11511153      164,   68,   68,   59,  113,   38,   68,  116,   38,  131,
    11521154
    1153       110,  131,   60,   67,   67,   67,   67,   67,   67,  881,
     1155      110,  131,   60,   67,   67,   67,   67,   67,   67,  884,
    11541156      142,   67,   68,   68,   68,   68,   68,   68,   80,   80,
    11551157       80,   80,   80,   80,  153,   38,   38,   77,   77,  134,
    11561158      110,  134,   77,  153,   77,  110,  135,  135,  135,   77,
    1157        82,   82,   82,   82,   82,   82,  880,  243,   77,   77,
     1159       82,   82,   82,   82,   82,   82,  883,  243,   77,   77,
    11581160       77,   77,   83,   83,   83,   83,   83,   83,  110,   77,
    11591161      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
    11601162      133,  133,  137,  133,  137,   77,  145,  139,   77,  139,
    11611163      157,  145,  243,   77,   77,  152,  156,   77,   77,  155,
    1162       166,  150,  157,  103,  104,   77,  159,  168,   77,  104,
     1164      166,  150,  157,  880,  104,   77,  159,  168,   77,  104,
    11631165
    11641166       77,   77,   77,  152,   77,   85,  150,  155,  156,   85,
    11651167       85,  166,  159,  150,   85,   85,  161,   85,  160,   85,
    11661168      145,  162,  104,  167,  168,  161,  169,  163,   85,   85,
    1167        85,  105,  163,  105,  105,  105,  105,  105,  105,  877,
     1169       85,  105,  163,  105,  105,  105,  105,  105,  105,  879,
    11681170      160,  171,  162,  162,  165,  163,  167,  169,  173,   85,
    11691171      105,  106,   85,  106,  165,  172,  106,  106,  106,  106,
     
    11781180      189,  158,  158,  188,  192,  158,  194,  158,  284,  219,
    11791181      185,  219,  158,  158,  158,  193,  158,  192,  220,  194,
    1180       220,  191,  198,  198,  191,  192,  205,  198,  193,  876,
     1182      220,  191,  198,  198,  191,  192,  205,  198,  193,  877,
    11811183      193,  197,  197,  197,  197,  197,  197,  200,  200,  197,
    11821184      248,  221,  200,  198,  198,  198,  198,  198,  198,  202,
    11831185      202,  223,  205,  223,  202,  221,  202,  221,  200,  200,
    1184       200,  200,  200,  200,  209,  209,  248,  338,  222,  209,
     1186      200,  200,  200,  200,  209,  209,  248,  876,  222,  209,
    11851187
    11861188      202,  202,  202,  202,  202,  202,  212,  212,  212,  212,
    1187       222,  309,  222,  224,  224,  225,  224,  225,  226,  226,
     1189      222,  286,  222,  224,  224,  225,  224,  225,  226,  226,
    11881190      226,  228,  229,  228,  229,  234,  234,  235,  236,  235,
    1189       309,  279,  235,  235,  235,  235,  235,  235,  237,  212,
    1190       237,  338,  266,  237,  266,  267,  278,  267,  234,  279,
    1191       283,  236,  241,  241,  241,  283,  241,  241,  256,  278,
    1192       237,  281,  237,  282,  280,  235,  270,  237,  244,  244,
    1193       244,  244,  244,  244,  241,  241,  241,  281,  285,  241,
    1194       282,  241,  280,  285,  256,  244,  245,  245,  245,  245,
    1195       245,  245,  270,  288,  293,  286,  294,  300,  306,  293,
    1196 
    1197       308,  244,  300,  306,  874,  294,  308,  244,  246,  246,
    1198       246,  246,  246,  246,  253,  286,  288,  255,  255,  255,
    1199       255,  255,  255,  287,  246,  247,  246,  247,  246,  246,
    1200       247,  247,  247,  247,  247,  247,  290,  253,  287,  253,
    1201       873,  246,  289,  253,  287,  287,  246,  292,  246,  253,
    1202       255,  246,  291,  246,  260,  260,  260,  260,  260,  260,
    1203       289,  253,  290,  292,  292,  253,  295,  291,  296,  253,
    1204       297,  299,  301,  302,  303,  304,  305,  307,  311,  295,
    1205       302,  301,  307,  310,  311,  312,  319,  260,  297,  299,
    1206       313,  314,  310,  304,  303,  296,  318,  305,  305,  313,
    1207 
    1208       315,  312,  316,  317,  319,  315,  314,  316,  317,  320,
    1209       322,  323,  324,  326,  325,  318,  327,  328,  331,  329,
    1210       330,  322,  320,  332,  334,  317,  323,  325,  333,  330,
    1211       335,  324,  337,  339,  340,  326,  329,  328,  401,  327,
    1212       331,  337,  334,  335,  341,  343,  332,  340,  342,  401,
    1213       333,  339,  341,  342,  344,  344,  345,  460,  866,  344,
    1214       343,  344,  345,  352,  352,  352,  352,  353,  353,  353,
    1215       353,  362,  363,  362,  363,  370,  370,  370,  370,  370,
    1216       370,  372,  460,  372,  380,  381,  372,  372,  372,  372,
    1217       372,  372,  865,  402,  380,  381,  352,  371,  371,  371,
    1218 
    1219       371,  371,  371,  374,  374,  374,  374,  374,  374,  402,
    1220       380,  381,  403,  371,  404,  371,  864,  371,  371,  375,
    1221       375,  375,  375,  375,  375,  383,  382,  403,  406,  405,
    1222       371,  383,  407,  404,  408,  371,  374,  371,  405,  406,
    1223       371,  407,  371,  376,  376,  376,  376,  376,  376,  382,
    1224       412,  382,  375,  387,  411,  382,  408,  383,  384,  386,
    1225       384,  382,  410,  384,  384,  384,  384,  384,  384,  409,
    1226       411,  387,  412,  382,  413,  410,  376,  382,  409,  387,
    1227       415,  382,  386,  414,  386,  416,  417,  413,  386,  418,
    1228       421,  417,  419,  422,  386,  420,  384,  427,  419,  414,
    1229 
    1230       414,  421,  415,  416,  418,  423,  386,  425,  429,  427,
    1231       386,  418,  422,  430,  386,  431,  420,  432,  433,  434,
    1232       423,  425,  435,  437,  433,  439,  440,  441,  431,  429,
    1233       442,  435,  443,  444,  434,  430,  449,  445,  437,  447,
    1234       432,  450,  441,  451,  454,  439,  445,  443,  440,  452,
    1235       450,  453,  442,  444,  455,  456,  447,  457,  458,  449,
    1236       459,  461,  463,  455,  451,  458,  454,  459,  462,  452,
    1237       457,  453,  466,  456,  464,  467,  462,  525,  863,  463,
    1238       525,  468,  491,  461,  467,  464,  462,  468,  477,  477,
    1239       477,  477,  491,  515,  466,  488,  488,  488,  488,  488,
    1240 
    1241       488,  490,  490,  490,  490,  490,  490,  519,  491,  521,
    1242       515,  488,  492,  488,  492,  488,  488,  492,  492,  492,
    1243       492,  492,  492,  494,  516,  495,  493,  519,  488,  862,
    1244       858,  521,  518,  488,  490,  488,  493,  516,  488,  529,
    1245       488,  497,  497,  497,  497,  497,  497,  518,  520,  494,
    1246       492,  495,  493,  498,  498,  498,  498,  498,  498,  523,
    1247       529,  520,  526,  854,  523,  851,  528,  850,  522,  498,
    1248       499,  498,  499,  498,  498,  499,  499,  499,  499,  499,
    1249       499,  522,  526,  524,  527,  528,  498,  531,  530,  532,
    1250       533,  498,  531,  498,  524,  534,  498,  530,  498,  527,
    1251 
    1252       532,  535,  537,  533,  536,  538,  539,  541,  542,  547,
    1253       535,  539,  544,  541,  538,  545,  546,  542,  547,  537,
    1254       550,  551,  849,  549,  534,  552,  536,  554,  560,  544,
    1255       545,  546,  549,  551,  555,  557,  558,  550,  561,  555,
    1256       552,  562,  554,  565,  557,  558,  564,  567,  566,  568,
    1257       560,  561,  575,  565,  564,  566,  569,  571,  562,  574,
    1258       572,  568,  569,  620,  619,  575,  571,  601,  601,  567,
    1259       572,  619,  620,  848,  847,  622,  574,  594,  594,  594,
    1260       594,  594,  594,  595,  595,  595,  595,  595,  595,  597,
    1261       601,  597,  622,  621,  597,  597,  597,  597,  597,  597,
    1262 
    1263       600,  600,  600,  600,  600,  600,  621,  602,  626,  846,
    1264       594,  596,  596,  596,  596,  596,  596,  603,  618,  603,
    1265       623,  624,  603,  618,  628,  626,  625,  596,  624,  596,
    1266       602,  596,  596,  600,  625,  627,  618,  628,  627,  603,
    1267       629,  603,  630,  623,  596,  631,  603,  632,  633,  596,
    1268       634,  596,  635,  634,  596,  636,  596,  630,  637,  638,
    1269       640,  644,  629,  639,  632,  641,  642,  631,  645,  635,
    1270       633,  646,  639,  637,  650,  642,  651,  656,  640,  638,
    1271       646,  653,  657,  636,  644,  665,  656,  641,  664,  657,
    1272       645,  667,  668,  842,  650,  665,  700,  664,  653,  699,
    1273 
    1274       667,  702,  705,  651,  714,  842,  700,  668,  686,  686,
    1275       686,  686,  686,  686,  690,  690,  690,  690,  690,  690,
    1276       699,  708,  705,  703,  686,  714,  686,  702,  686,  686,
    1277       703,  704,  706,  715,  707,  706,  704,  707,  710,  708,
    1278       712,  686,  711,  717,  710,  718,  686,  690,  686,  712,
    1279       720,  686,  717,  686,  713,  711,  716,  713,  719,  716,
    1280       721,  719,  715,  720,  722,  723,  724,  725,  721,  731,
    1281       728,  718,  732,  735,  722,  733,  725,  736,  723,  756,
    1282       757,  735,  758,  754,  756,  759,  736,  724,  728,  731,
    1283       755,  761,  758,  728,  732,  757,  733,  743,  743,  743,
    1284 
    1285       743,  743,  743,  754,  760,  763,  762,  755,  759,  762,
    1286       764,  766,  768,  769,  766,  768,  770,  761,  763,  770,
    1287       769,  760,  771,  773,  772,  771,  775,  779,  794,  797,
    1288       743,  796,  798,  800,  799,  798,  800,  801,  764,  772,
    1289       801,  803,  804,  807,  810,  805,  773,  797,  805,  775,
    1290       779,  808,  796,  810,  808,  794,  799,  809,  811,  803,
    1291       809,  812,  813,  828,  829,  807,  830,  831,  804,  830,
    1292       832,  829,  812,  834,  811,  856,  831,  833,  813,  837,
    1293       833,  875,  837,  840,  828,  856,  840,  841,  832,  843,
    1294       834,  852,  853,  867,  832,  868,  841,  853,  843,  855,
    1295 
    1296       852,  857,  855,  875,  859,  860,  857,  859,  860,  861,
    1297       868,  869,  861,  867,  869,  870,  871,  872,  878,  871,
    1298       872,  879,  882,  884,  883,  870,  885,  887,  886,  845,
    1299       888,  882,  844,  839,  838,  836,  879,  883,  835,  878,
    1300       888,  827,  826,  825,  824,  884,  886,  885,  823,  887,
    1301       892,  892,  892,  892,  892,  892,  892,  892,  892,  892,
    1302       892,  892,  892,  893,  893,  893,  893,  893,  893,  893,
    1303       893,  893,  893,  893,  893,  893,  894,  894,  894,  894,
    1304       894,  894,  894,  894,  894,  894,  894,  894,  894,  895,
    1305       822,  821,  895,  820,  895,  895,  895,  895,  895,  896,
    1306 
    1307       819,  818,  817,  896,  896,  896,  896,  896,  896,  897,
     1191      869,  286,  235,  235,  235,  235,  235,  235,  237,  212,
     1192      237,  282,  242,  237,  242,  242,  242,  242,  234,  256,
     1193      270,  236,  241,  241,  241,  241,  241,  241,  282,  266,
     1194      237,  266,  237,  296,  267,  235,  267,  237,  281,  244,
     1195      244,  244,  244,  244,  244,  256,  270,  242,  245,  245,
     1196      245,  245,  245,  245,  281,  241,  244,  247,  278,  247,
     1197      296,  295,  247,  247,  247,  247,  247,  247,  279,  280,
     1198
     1199      283,  278,  244,  288,  295,  283,  289,  868,  244,  246,
     1200      246,  246,  246,  246,  246,  253,  279,  280,  255,  255,
     1201      255,  255,  255,  255,  289,  246,  288,  246,  291,  246,
     1202      246,  260,  260,  260,  260,  260,  260,  290,  253,  292,
     1203      253,  285,  246,  291,  253,  867,  285,  246,  294,  246,
     1204      253,  255,  246,  287,  246,  292,  292,  294,  297,  299,
     1205      293,  303,  253,  290,  260,  293,  253,  300,  287,  301,
     1206      253,  304,  300,  302,  287,  287,  297,  299,  301,  305,
     1207      302,  303,  306,  307,  308,  309,  310,  306,  307,  304,
     1208      308,  311,  312,  313,  314,  310,  318,  311,  315,  319,
     1209
     1210      305,  305,  313,  315,  309,  316,  317,  320,  312,  314,
     1211      316,  317,  322,  324,  323,  318,  326,  319,  325,  327,
     1212      320,  328,  329,  322,  330,  331,  332,  334,  317,  323,
     1213      333,  325,  324,  330,  337,  335,  338,  339,  326,  329,
     1214      340,  328,  327,  337,  343,  334,  341,  331,  335,  332,
     1215      639,  342,  333,  340,  341,  339,  342,  344,  344,  343,
     1216      345,  362,  344,  362,  344,  403,  345,  352,  352,  352,
     1217      352,  353,  353,  353,  353,  363,  403,  363,  639,  408,
     1218      338,  370,  370,  370,  370,  370,  370,  372,  382,  372,
     1219      408,  410,  372,  372,  372,  372,  372,  372,  382,  404,
     1220
     1221      352,  371,  371,  371,  371,  371,  371,  374,  374,  374,
     1222      374,  374,  374,  410,  382,  404,  405,  371,  406,  371,
     1223      412,  371,  371,  377,  377,  377,  377,  377,  377,  385,
     1224      425,  405,  383,  412,  371,  385,  389,  406,  414,  371,
     1225      374,  371,  383,  413,  371,  425,  371,  375,  375,  375,
     1226      375,  375,  375,  384,  389,  417,  377,  407,  383,  413,
     1227      414,  385,  389,  375,  375,  375,  407,  375,  375,  378,
     1228      378,  378,  378,  378,  378,  421,  384,  417,  384,  866,
     1229      375,  421,  384,  865,  388,  375,  375,  375,  384,  386,
     1230      375,  386,  375,  415,  386,  386,  386,  386,  386,  386,
     1231
     1232      384,  409,  378,  411,  384,  416,  415,  388,  384,  388,
     1233      409,  418,  411,  388,  423,  419,  422,  424,  420,  388,
     1234      419,  416,  416,  431,  427,  423,  432,  386,  433,  418,
     1235      429,  388,  434,  420,  441,  388,  424,  422,  427,  388,
     1236      420,  433,  429,  435,  431,  436,  439,  437,  432,  435,
     1237      442,  443,  444,  445,  441,  434,  437,  446,  447,  449,
     1238      436,  439,  451,  453,  452,  456,  443,  447,  445,  454,
     1239      455,  457,  442,  452,  444,  458,  449,  446,  459,  460,
     1240      457,  461,  462,  463,  453,  451,  460,  456,  461,  454,
     1241      455,  459,  464,  458,  465,  466,  468,  470,  528,  469,
     1242
     1243      464,  528,  861,  470,  519,  463,  466,  462,  469,  524,
     1244      464,  465,  479,  479,  479,  479,  518,  519,  468,  490,
     1245      490,  490,  490,  490,  490,  492,  492,  492,  492,  492,
     1246      492,  524,  544,  518,  522,  490,  521,  490,  544,  490,
     1247      490,  493,  493,  493,  493,  493,  493,  497,  526,  498,
     1248      494,  521,  490,  526,  522,  496,  532,  490,  492,  490,
     1249      494,  495,  490,  495,  490,  496,  495,  495,  495,  495,
     1250      495,  495,  567,  497,  493,  498,  494,  532,  523,  525,
     1251      567,  496,  500,  500,  500,  500,  500,  500,  502,  529,
     1252      502,  523,  525,  502,  502,  502,  502,  502,  502,  495,
     1253
     1254      501,  501,  501,  501,  501,  501,  527,  530,  531,  529,
     1255      533,  857,  536,  535,  539,  537,  501,  527,  501,  533,
     1256      501,  501,  530,  534,  535,  536,  538,  531,  534,  540,
     1257      541,  547,  542,  501,  548,  538,  539,  542,  501,  541,
     1258      501,  545,  549,  501,  537,  501,  540,  550,  547,  548,
     1259      545,  552,  553,  554,  558,  555,  550,  549,  557,  558,
     1260      552,  563,  560,  561,  564,  554,  568,  565,  569,  553,
     1261      555,  560,  561,  557,  570,  569,  568,  564,  571,  572,
     1262      574,  575,  577,  563,  565,  572,  713,  578,  622,  574,
     1263      571,  575,  713,  604,  604,  622,  570,  625,  854,  577,
     1264
     1265      578,  597,  597,  597,  597,  597,  597,  598,  598,  598,
     1266      598,  598,  598,  600,  625,  600,  604,  624,  600,  600,
     1267      600,  600,  600,  600,  603,  603,  603,  603,  603,  603,
     1268      624,  605,  814,  629,  597,  599,  599,  599,  599,  599,
     1269      599,  606,  621,  606,  626,  627,  606,  621,  814,  623,
     1270      629,  599,  627,  599,  605,  599,  599,  603,  623,  630,
     1271      621,  628,  630,  606,  631,  606,  632,  626,  599,  628,
     1272      606,  633,  634,  599,  635,  599,  636,  631,  599,  637,
     1273      599,  640,  637,  638,  641,  643,  633,  644,  632,  647,
     1274      642,  635,  645,  648,  634,  705,  640,  649,  636,  642,
     1275
     1276      638,  645,  653,  643,  641,  654,  649,  656,  659,  644,
     1277      667,  660,  647,  668,  671,  648,  670,  659,  660,  667,
     1278      703,  705,  653,  668,  656,  670,  702,  853,  708,  671,
     1279      703,  852,  654,  689,  689,  689,  689,  689,  689,  693,
     1280      693,  693,  693,  693,  693,  706,  711,  702,  708,  689,
     1281      707,  689,  706,  689,  689,  707,  709,  710,  715,  709,
     1282      710,  714,  716,  717,  711,  716,  689,  715,  718,  721,
     1283      720,  689,  693,  689,  714,  723,  689,  719,  689,  720,
     1284      719,  724,  722,  725,  717,  722,  726,  727,  723,  724,
     1285      735,  728,  731,  725,  734,  721,  736,  718,  738,  726,
     1286
     1287      728,  760,  739,  761,  757,  762,  738,  764,  727,  758,
     1288      731,  739,  735,  761,  734,  731,  760,  736,  746,  746,
     1289      746,  746,  746,  746,  757,  759,  758,  763,  762,  765,
     1290      759,  767,  765,  764,  766,  769,  771,  773,  769,  771,
     1291      773,  772,  774,  775,  763,  774,  776,  766,  772,  778,
     1292      782,  746,  797,  799,  802,  807,  810,  800,  775,  767,
     1293      801,  803,  804,  801,  803,  804,  806,  808,  811,  776,
     1294      808,  811,  778,  782,  799,  800,  802,  812,  810,  797,
     1295      812,  807,  813,  815,  806,  816,  831,  833,  832,  834,
     1296      833,  813,  835,  836,  815,  832,  836,  837,  834,  840,
     1297
     1298      843,  816,  840,  843,  844,  845,  846,  831,  858,  855,
     1299      835,  858,  859,  844,  837,  846,  835,  845,  855,  856,
     1300      860,  870,  859,  862,  856,  860,  862,  863,  864,  871,
     1301      863,  864,  872,  873,  874,  872,  875,  874,  878,  875,
     1302      881,  870,  882,  873,  871,  885,  886,  887,  889,  888,
     1303      890,  851,  891,  850,  885,  849,  848,  882,  847,  886,
     1304      878,  881,  891,  842,  841,  839,  889,  838,  830,  887,
     1305      888,  829,  890,  895,  895,  895,  895,  895,  895,  895,
     1306      895,  895,  895,  895,  895,  895,  896,  896,  896,  896,
     1307      896,  896,  896,  896,  896,  896,  896,  896,  896,  897,
     1308
    13081309      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
    1309       897,  897,  898,  816,  815,  898,  814,  898,  898,  898,
    1310       898,  898,  899,  806,  899,  899,  802,  899,  899,  899,
    1311       899,  899,  899,  795,  899,  900,  793,  792,  900,  900,
    1312       900,  900,  900,  900,  900,  900,  791,  900,  901,  901,
    1313       901,  901,  901,  901,  901,  901,  901,  901,  901,  901,
    1314       901,  902,  902,  790,  902,  789,  788,  787,  902,  903,
    1315       786,  785,  903,  784,  903,  903,  903,  903,  903,  904,
    1316       783,  904,  782,  781,  780,  904,  905,  778,  905,  777,
    1317 
    1318       776,  774,  905,  906,  767,  906,  765,  753,  752,  906,
    1319       907,  751,  907,  750,  749,  748,  907,  908,  747,  908,
    1320       746,  745,  742,  908,  909,  741,  909,  740,  734,  730,
    1321       909,  910,  729,  910,  727,  726,  709,  910,  911,  701,
    1322       911,  698,  693,  691,  911,  912,  687,  912,  677,  673,
    1323       671,  912,  913,  913,  913,  913,  913,  913,  913,  913,
    1324       913,  913,  913,  913,  913,  914,  669,  914,  915,  915,
    1325       666,  915,  915,  915,  663,  915,  916,  916,  662,  916,
    1326       917,  661,  917,  660,  659,  658,  917,  918,  655,  918,
    1327       654,  652,  649,  918,  919,  648,  919,  647,  643,  616,
    1328 
    1329       919,  920,  612,  920,  921,  610,  921,  608,  606,  604,
    1330       921,  922,  598,  922,  923,  592,  590,  923,  588,  923,
    1331       923,  923,  923,  923,  924,  924,  924,  924,  924,  924,
    1332       924,  924,  924,  924,  924,  924,  924,  925,  925,  925,
    1333       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
    1334       926,  586,  926,  584,  582,  580,  926,  927,  578,  927,
    1335       577,  576,  573,  927,  928,  570,  928,  563,  559,  556,
    1336       928,  929,  553,  929,  930,  548,  930,  543,  540,  517,
    1337       930,  931,  513,  931,  932,  511,  932,  509,  507,  505,
    1338       932,  933,  503,  933,  934,  502,  934,  501,  500,  489,
    1339 
    1340       934,  935,  486,  935,  936,  484,  936,  483,  482,  480,
    1341       936,  937,  478,  937,  938,  475,  938,  473,  471,  469,
    1342       938,  939,  465,  939,  940,  448,  940,  446,  438,  436,
    1343       940,  941,  428,  941,  942,  426,  942,  424,  942,  398,
    1344       942,  943,  396,  943,  394,  943,  392,  943,  944,  944,
    1345       391,  944,  944,  944,  390,  944,  945,  377,  945,  367,
    1346       365,  364,  945,  946,  360,  946,  358,  356,  354,  946,
    1347       947,  350,  947,  348,  347,  346,  947,  948,  336,  948,
    1348       949,  321,  949,  298,  277,  275,  949,  950,  273,  950,
    1349       951,  272,  951,  271,  269,  268,  951,  952,  263,  952,
    1350 
    1351       953,  259,  953,  258,  254,  251,  953,  954,  250,  954,
    1352       955,  239,  238,  955,  231,  955,  955,  955,  955,  955,
    1353       956,  956,  956,  956,  956,  956,  956,  956,  956,  956,
    1354       956,  956,  956,  957,  230,  957,  227,  217,  215,  957,
    1355       958,  214,  958,  959,  213,  959,  207,  206,  204,  959,
    1356       960,  199,  960,  961,  178,  961,  149,  147,  146,  961,
    1357       962,  140,  962,  963,  138,  963,  136,  128,  125,  963,
    1358       964,  124,  964,  965,  120,  965,  101,   98,   95,  965,
    1359       966,   93,  966,  967,   86,  967,   72,   70,   66,  967,
    1360       968,   36,  968,  969,   33,  969,   18,   11,    4,  969,
    1361 
    1362       970,    3,  970,    0,    0,    0,  970,  971,    0,  971,
    1363       972,    0,  972,    0,    0,    0,  972,  973,    0,  973,
    1364       974,    0,  974,    0,  974,    0,  974,  975,    0,  975,
    1365         0,    0,    0,  975,  976,    0,  976,    0,    0,    0,
    1366       976,  977,    0,  977,  978,    0,  978,    0,    0,    0,
    1367       978,  979,    0,  979,  980,    0,  980,    0,    0,    0,
    1368       980,  981,    0,  981,  982,    0,  982,    0,    0,    0,
    1369       982,  983,    0,  983,  984,    0,  984,    0,    0,    0,
    1370       984,  985,    0,  985,  986,    0,  986,    0,    0,    0,
    1371       986,  987,    0,  987,  988,    0,    0,  988,    0,  988,
    1372 
    1373       988,  988,  988,  988,  989,  989,  989,  989,  989,  989,
    1374       989,  989,  989,  989,  989,  989,  989,  990,    0,  990,
    1375         0,    0,    0,  990,  991,    0,  991,  992,    0,  992,
    1376         0,    0,    0,  992,  993,    0,  993,  994,    0,  994,
    1377         0,    0,    0,  994,  995,    0,  995,  996,    0,  996,
    1378         0,    0,    0,  996,  997,    0,  997,  998,    0,  998,
    1379         0,    0,    0,  998,  999,    0,  999, 1000,    0, 1000,
    1380         0,    0,    0, 1000, 1001,    0, 1001, 1002,    0, 1002,
    1381         0,    0,    0, 1002, 1003,    0, 1003, 1004,    0, 1004,
    1382         0,    0,    0, 1004, 1005,    0, 1005, 1006,    0, 1006,
    1383 
    1384         0,    0,    0, 1006, 1007,    0, 1007,    0,    0,    0,
    1385      1007, 1008,    0, 1008, 1009,    0, 1009,    0,    0,    0,
    1386      1009, 1010,    0, 1010, 1011,    0, 1011,    0,    0,    0,
    1387      1011, 1012,    0, 1012, 1013,    0, 1013,    0,    0,    0,
    1388      1013, 1014,    0, 1014, 1015,    0, 1015, 1016,    0, 1016,
    1389      1017,    0,    0, 1017,    0, 1017, 1017, 1017, 1017, 1017,
    1390      1018,    0, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
    1391      1019, 1019, 1019, 1019, 1019, 1019, 1020,    0, 1020,    0,
    1392         0,    0, 1020, 1021,    0, 1021, 1022,    0, 1022,    0,
    1393         0,    0, 1022, 1023,    0, 1023, 1024,    0, 1024, 1025,
    1394 
    1395         0, 1025, 1026,    0,    0, 1026,    0, 1026, 1026, 1026,
    1396      1026, 1026, 1027,    0, 1027, 1028,    0, 1028, 1029,    0,
    1397      1029, 1030,    0, 1030, 1031,    0, 1031, 1032,    0, 1032,
    1398      1033,    0, 1033, 1034,    0, 1034,    0,    0,    0, 1034,
    1399      1035,    0, 1035, 1036,    0, 1036,    0,    0,    0, 1036,
    1400      1037,    0, 1037, 1038,    0, 1038, 1039,    0, 1039, 1040,
    1401         0, 1040, 1041,    0, 1041,    0,    0,    0, 1041, 1042,
    1402         0,    0, 1042,    0, 1042, 1042, 1042, 1042, 1042, 1043,
    1403         0, 1043, 1044,    0, 1044, 1045,    0, 1045, 1046,    0,
    1404      1046,    0,    0,    0, 1046, 1047,    0, 1047,    0,    0,
    1405 
    1406         0, 1047, 1048,    0, 1048,    0,    0,    0, 1048, 1049,
    1407         0, 1049, 1050,    0, 1050,    0,    0,    0, 1050, 1051,
    1408         0, 1051,    0,    0,    0, 1051, 1052,    0, 1052,    0,
    1409         0,    0, 1052, 1053,    0, 1053,    0,    0,    0, 1053,
    1410      1054,    0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,
    1411         0,    0,    0, 1055, 1056,    0, 1056,    0,    0,    0,
    1412      1056, 1057,    0, 1057,    0,    0,    0, 1057, 1058,    0,
    1413      1058,    0,    0,    0, 1058, 1059,    0, 1059,    0,    0,
    1414         0, 1059, 1060,    0, 1060,    0,    0,    0, 1060, 1061,
    1415         0, 1061,    0,    0,    0, 1061, 1062,    0, 1062,    0,
    1416 
    1417         0,    0, 1062, 1063,    0, 1063,    0,    0,    0, 1063,
    1418      1064,    0, 1064,    0,    0,    0, 1064, 1065,    0, 1065,
    1419         0,    0,    0, 1065,  891,  891,  891,  891,  891,  891,
    1420       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1421       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1422       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1423       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1424       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1425       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1426       891,  891,  891,  891,  891,  891,  891,  891,  891,  891,
    1427 
    1428       891,  891,  891,  891,  891,  891,  891,  891,  891,  891
     1310      897,  897,  898,  828,  827,  898,  826,  898,  898,  898,
     1311      898,  898,  899,  825,  824,  823,  899,  899,  899,  899,
     1312      899,  899,  900,  900,  900,  900,  900,  900,  900,  900,
     1313      900,  900,  900,  900,  900,  901,  822,  821,  901,  820,
     1314      901,  901,  901,  901,  901,  902,  819,  902,  902,  818,
     1315      902,  902,  902,  902,  902,  902,  817,  902,  903,  809,
     1316      805,  903,  903,  903,  903,  903,  903,  903,  903,  798,
     1317      903,  904,  904,  904,  904,  904,  904,  904,  904,  904,
     1318      904,  904,  904,  904,  905,  905,  796,  905,  795,  794,
     1319
     1320      793,  905,  906,  792,  791,  906,  790,  906,  906,  906,
     1321      906,  906,  907,  789,  907,  788,  787,  786,  907,  908,
     1322      785,  908,  784,  783,  781,  908,  909,  780,  909,  779,
     1323      777,  770,  909,  910,  768,  910,  756,  755,  754,  910,
     1324      911,  753,  911,  752,  751,  750,  911,  912,  749,  912,
     1325      748,  745,  744,  912,  913,  743,  913,  737,  733,  732,
     1326      913,  914,  730,  914,  729,  712,  704,  914,  915,  701,
     1327      915,  696,  694,  690,  915,  916,  680,  916,  917,  917,
     1328      676,  917,  917,  917,  674,  917,  918,  918,  672,  918,
     1329      919,  669,  666,  919,  665,  919,  919,  919,  919,  919,
     1330
     1331      920,  664,  920,  663,  662,  661,  920,  921,  658,  921,
     1332      657,  655,  652,  921,  922,  651,  922,  650,  646,  619,
     1333      922,  923,  615,  923,  924,  613,  924,  611,  609,  607,
     1334      924,  925,  601,  925,  926,  595,  593,  926,  591,  926,
     1335      926,  926,  926,  926,  927,  927,  927,  927,  927,  927,
     1336      927,  927,  927,  927,  927,  927,  927,  928,  928,  928,
     1337      928,  928,  928,  928,  928,  928,  928,  928,  928,  928,
     1338      929,  589,  929,  587,  585,  583,  929,  930,  581,  930,
     1339      580,  579,  576,  930,  931,  573,  931,  566,  562,  559,
     1340      931,  932,  556,  932,  933,  551,  933,  546,  543,  520,
     1341
     1342      933,  934,  516,  934,  935,  514,  935,  512,  510,  508,
     1343      935,  936,  506,  936,  937,  505,  937,  504,  503,  491,
     1344      937,  938,  488,  938,  939,  486,  939,  485,  484,  482,
     1345      939,  940,  480,  940,  941,  477,  941,  475,  473,  471,
     1346      941,  942,  467,  942,  943,  450,  943,  448,  440,  438,
     1347      943,  944,  430,  944,  945,  428,  945,  426,  945,  400,
     1348      945,  946,  398,  946,  396,  946,  394,  946,  947,  947,
     1349      393,  947,  947,  947,  392,  947,  948,  379,  948,  376,
     1350      367,  365,  948,  949,  364,  949,  360,  358,  356,  949,
     1351      950,  354,  950,  350,  348,  347,  950,  951,  346,  951,
     1352
     1353      952,  336,  952,  321,  298,  277,  952,  953,  275,  953,
     1354      954,  273,  954,  272,  271,  269,  954,  955,  268,  955,
     1355      956,  263,  956,  259,  258,  254,  956,  957,  251,  957,
     1356      958,  250,  239,  958,  238,  958,  958,  958,  958,  958,
     1357      959,  959,  959,  959,  959,  959,  959,  959,  959,  959,
     1358      959,  959,  959,  960,  231,  960,  230,  227,  217,  960,
     1359      961,  215,  961,  962,  214,  962,  213,  207,  206,  962,
     1360      963,  204,  963,  964,  199,  964,  178,  149,  147,  964,
     1361      965,  146,  965,  966,  140,  966,  138,  136,  128,  966,
     1362      967,  125,  967,  968,  124,  968,  120,  101,   98,  968,
     1363
     1364      969,   95,  969,  970,   93,  970,   86,   72,   70,  970,
     1365      971,   66,  971,  972,   36,  972,   33,   18,   11,  972,
     1366      973,    4,  973,    3,    0,    0,  973,  974,    0,  974,
     1367      975,    0,  975,    0,    0,    0,  975,  976,    0,  976,
     1368      977,    0,  977,    0,  977,    0,  977,  978,    0,  978,
     1369        0,    0,    0,  978,  979,    0,  979,    0,    0,    0,
     1370      979,  980,    0,  980,  981,    0,  981,    0,    0,    0,
     1371      981,  982,    0,  982,  983,    0,  983,    0,    0,    0,
     1372      983,  984,    0,  984,  985,    0,  985,    0,    0,    0,
     1373      985,  986,    0,  986,  987,    0,  987,    0,    0,    0,
     1374
     1375      987,  988,    0,  988,  989,    0,  989,    0,    0,    0,
     1376      989,  990,    0,  990,  991,    0,    0,  991,    0,  991,
     1377      991,  991,  991,  991,  992,  992,  992,  992,  992,  992,
     1378      992,  992,  992,  992,  992,  992,  992,  993,    0,  993,
     1379        0,    0,    0,  993,  994,    0,  994,  995,    0,  995,
     1380        0,    0,    0,  995,  996,    0,  996,  997,    0,  997,
     1381        0,    0,    0,  997,  998,    0,  998,  999,    0,  999,
     1382        0,    0,    0,  999, 1000,    0, 1000, 1001,    0, 1001,
     1383        0,    0,    0, 1001, 1002,    0, 1002, 1003,    0, 1003,
     1384        0,    0,    0, 1003, 1004,    0, 1004, 1005,    0, 1005,
     1385
     1386        0,    0,    0, 1005, 1006,    0, 1006, 1007,    0, 1007,
     1387        0,    0,    0, 1007, 1008,    0, 1008, 1009,    0, 1009,
     1388        0,    0,    0, 1009, 1010,    0, 1010,    0,    0,    0,
     1389     1010, 1011,    0, 1011, 1012,    0, 1012,    0,    0,    0,
     1390     1012, 1013,    0, 1013, 1014,    0, 1014,    0,    0,    0,
     1391     1014, 1015,    0, 1015, 1016,    0, 1016,    0,    0,    0,
     1392     1016, 1017,    0, 1017, 1018,    0, 1018, 1019,    0, 1019,
     1393     1020,    0,    0, 1020,    0, 1020, 1020, 1020, 1020, 1020,
     1394     1021,    0, 1021, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
     1395     1022, 1022, 1022, 1022, 1022, 1022, 1023,    0, 1023,    0,
     1396
     1397        0,    0, 1023, 1024,    0, 1024, 1025,    0, 1025,    0,
     1398        0,    0, 1025, 1026,    0, 1026, 1027,    0, 1027, 1028,
     1399        0, 1028, 1029,    0,    0, 1029,    0, 1029, 1029, 1029,
     1400     1029, 1029, 1030,    0, 1030, 1031,    0, 1031, 1032,    0,
     1401     1032, 1033,    0, 1033, 1034,    0, 1034, 1035,    0, 1035,
     1402     1036,    0, 1036, 1037,    0, 1037,    0,    0,    0, 1037,
     1403     1038,    0, 1038, 1039,    0, 1039,    0,    0,    0, 1039,
     1404     1040,    0, 1040, 1041,    0, 1041, 1042,    0, 1042, 1043,
     1405        0, 1043, 1044,    0, 1044,    0,    0,    0, 1044, 1045,
     1406        0,    0, 1045,    0, 1045, 1045, 1045, 1045, 1045, 1046,
     1407
     1408        0, 1046, 1047,    0, 1047, 1048,    0, 1048, 1049,    0,
     1409     1049,    0,    0,    0, 1049, 1050,    0, 1050,    0,    0,
     1410        0, 1050, 1051,    0, 1051,    0,    0,    0, 1051, 1052,
     1411        0, 1052, 1053,    0, 1053,    0,    0,    0, 1053, 1054,
     1412        0, 1054,    0,    0,    0, 1054, 1055,    0, 1055,    0,
     1413        0,    0, 1055, 1056,    0, 1056,    0,    0,    0, 1056,
     1414     1057,    0, 1057,    0,    0,    0, 1057, 1058,    0, 1058,
     1415        0,    0,    0, 1058, 1059,    0, 1059,    0,    0,    0,
     1416     1059, 1060,    0, 1060,    0,    0,    0, 1060, 1061,    0,
     1417     1061,    0,    0,    0, 1061, 1062,    0, 1062,    0,    0,
     1418
     1419        0, 1062, 1063,    0, 1063,    0,    0,    0, 1063, 1064,
     1420        0, 1064,    0,    0,    0, 1064, 1065,    0, 1065,    0,
     1421        0,    0, 1065, 1066,    0, 1066,    0,    0,    0, 1066,
     1422     1067,    0, 1067,    0,    0,    0, 1067, 1068,    0, 1068,
     1423        0,    0,    0, 1068,  894,  894,  894,  894,  894,  894,
     1424      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1425      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1426      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1427      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1428      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1429
     1430      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1431      894,  894,  894,  894,  894,  894,  894,  894,  894,  894,
     1432      894,  894,  894,  894,  894,  894,  894,  894,  894,  894
    14291433    } ;
    14301434
    14311435/* Table of booleans, true if rule could match eol. */
    1432 static yyconst flex_int32_t yy_rule_can_match_eol[182] =
     1436static yyconst flex_int32_t yy_rule_can_match_eol[184] =
    14331437    {   0,
    143414381, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14371441    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14381442    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1439     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
    1440     1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     1443    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
     1444    0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14411445    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14421446    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1443     0, 0,     };
     1447    0, 0, 0, 0,     };
    14441448
    14451449static yy_state_type yy_last_accepting_state;
     
    14691473 * Created On       : Sat Sep 22 08:58:10 2001
    14701474 * Last Modified By : Peter A. Buhr
    1471  * Last Modified On : Tue Oct 18 22:19:37 2016
    1472  * Update Count     : 488
     1475 * Last Modified On : Wed Oct 26 17:32:30 2016
     1476 * Update Count     : 499
    14731477 */
    14741478#line 20 "lex.ll"
     
    15311535
    15321536
    1533 #line 1534 "Parser/lex.cc"
     1537#line 1538 "Parser/lex.cc"
    15341538
    15351539#define INITIAL 0
     
    17231727        register int yy_act;
    17241728   
    1725 #line 136 "lex.ll"
     1729#line 138 "lex.ll"
    17261730
    17271731                                   /* line directives */
    1728 #line 1729 "Parser/lex.cc"
     1732#line 1733 "Parser/lex.cc"
    17291733
    17301734        if ( !(yy_init) )
     
    17801784                                {
    17811785                                yy_current_state = (int) yy_def[yy_current_state];
    1782                                 if ( yy_current_state >= 892 )
     1786                                if ( yy_current_state >= 895 )
    17831787                                        yy_c = yy_meta[(unsigned int) yy_c];
    17841788                                }
     
    17861790                        ++yy_cp;
    17871791                        }
    1788                 while ( yy_base[yy_current_state] != 2825 );
     1792                while ( yy_base[yy_current_state] != 2845 );
    17891793
    17901794yy_find_action:
     
    18231827/* rule 1 can match eol */
    18241828YY_RULE_SETUP
    1825 #line 138 "lex.ll"
     1829#line 140 "lex.ll"
    18261830{
    18271831        /* " stop highlighting */
     
    18491853/* rule 2 can match eol */
    18501854YY_RULE_SETUP
    1851 #line 160 "lex.ll"
     1855#line 162 "lex.ll"
    18521856;
    18531857        YY_BREAK
     
    18551859case 3:
    18561860YY_RULE_SETUP
    1857 #line 163 "lex.ll"
     1861#line 165 "lex.ll"
    18581862{ BEGIN COMMENT; }
    18591863        YY_BREAK
     
    18611865/* rule 4 can match eol */
    18621866YY_RULE_SETUP
    1863 #line 164 "lex.ll"
     1867#line 166 "lex.ll"
    18641868;
    18651869        YY_BREAK
    18661870case 5:
    18671871YY_RULE_SETUP
    1868 #line 165 "lex.ll"
     1872#line 167 "lex.ll"
    18691873{ BEGIN 0; }
    18701874        YY_BREAK
     
    18731877/* rule 6 can match eol */
    18741878YY_RULE_SETUP
    1875 #line 168 "lex.ll"
     1879#line 170 "lex.ll"
    18761880;
    18771881        YY_BREAK
     
    18791883case 7:
    18801884YY_RULE_SETUP
    1881 #line 171 "lex.ll"
     1885#line 173 "lex.ll"
    18821886{ WHITE_RETURN(' '); }
    18831887        YY_BREAK
    18841888case 8:
    18851889YY_RULE_SETUP
    1886 #line 172 "lex.ll"
     1890#line 174 "lex.ll"
    18871891{ WHITE_RETURN(' '); }
    18881892        YY_BREAK
     
    18901894/* rule 9 can match eol */
    18911895YY_RULE_SETUP
    1892 #line 173 "lex.ll"
     1896#line 175 "lex.ll"
    18931897{ NEWLINE_RETURN(); }
    18941898        YY_BREAK
     
    18961900case 10:
    18971901YY_RULE_SETUP
    1898 #line 176 "lex.ll"
     1902#line 178 "lex.ll"
    18991903{ KEYWORD_RETURN(ALIGNAS); }                    // C11
    19001904        YY_BREAK
    19011905case 11:
    19021906YY_RULE_SETUP
    1903 #line 177 "lex.ll"
     1907#line 179 "lex.ll"
    19041908{ KEYWORD_RETURN(ALIGNOF); }                    // C11
    19051909        YY_BREAK
    19061910case 12:
    19071911YY_RULE_SETUP
    1908 #line 178 "lex.ll"
     1912#line 180 "lex.ll"
    19091913{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    19101914        YY_BREAK
    19111915case 13:
    19121916YY_RULE_SETUP
    1913 #line 179 "lex.ll"
     1917#line 181 "lex.ll"
    19141918{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
    19151919        YY_BREAK
    19161920case 14:
    19171921YY_RULE_SETUP
    1918 #line 180 "lex.ll"
     1922#line 182 "lex.ll"
    19191923{ KEYWORD_RETURN(ASM); }
    19201924        YY_BREAK
    19211925case 15:
    19221926YY_RULE_SETUP
    1923 #line 181 "lex.ll"
     1927#line 183 "lex.ll"
    19241928{ KEYWORD_RETURN(ASM); }                                // GCC
    19251929        YY_BREAK
    19261930case 16:
    19271931YY_RULE_SETUP
    1928 #line 182 "lex.ll"
     1932#line 184 "lex.ll"
    19291933{ KEYWORD_RETURN(ASM); }                                // GCC
    19301934        YY_BREAK
    19311935case 17:
    19321936YY_RULE_SETUP
    1933 #line 183 "lex.ll"
     1937#line 185 "lex.ll"
    19341938{ KEYWORD_RETURN(AT); }                                 // CFA
    19351939        YY_BREAK
    19361940case 18:
    19371941YY_RULE_SETUP
    1938 #line 184 "lex.ll"
     1942#line 186 "lex.ll"
    19391943{ KEYWORD_RETURN(ATOMIC); }                             // C11
    19401944        YY_BREAK
    19411945case 19:
    19421946YY_RULE_SETUP
    1943 #line 185 "lex.ll"
     1947#line 187 "lex.ll"
    19441948{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19451949        YY_BREAK
    19461950case 20:
    19471951YY_RULE_SETUP
    1948 #line 186 "lex.ll"
     1952#line 188 "lex.ll"
    19491953{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    19501954        YY_BREAK
    19511955case 21:
    19521956YY_RULE_SETUP
    1953 #line 187 "lex.ll"
     1957#line 189 "lex.ll"
    19541958{ KEYWORD_RETURN(AUTO); }
    19551959        YY_BREAK
    19561960case 22:
    19571961YY_RULE_SETUP
    1958 #line 188 "lex.ll"
     1962#line 190 "lex.ll"
    19591963{ KEYWORD_RETURN(BOOL); }                               // C99
    19601964        YY_BREAK
    19611965case 23:
    19621966YY_RULE_SETUP
    1963 #line 189 "lex.ll"
     1967#line 191 "lex.ll"
    19641968{ KEYWORD_RETURN(BREAK); }
    19651969        YY_BREAK
    19661970case 24:
    19671971YY_RULE_SETUP
    1968 #line 190 "lex.ll"
     1972#line 192 "lex.ll"
    19691973{ KEYWORD_RETURN(CASE); }
    19701974        YY_BREAK
    19711975case 25:
    19721976YY_RULE_SETUP
    1973 #line 191 "lex.ll"
     1977#line 193 "lex.ll"
    19741978{ KEYWORD_RETURN(CATCH); }                              // CFA
    19751979        YY_BREAK
    19761980case 26:
    19771981YY_RULE_SETUP
    1978 #line 192 "lex.ll"
     1982#line 194 "lex.ll"
    19791983{ KEYWORD_RETURN(CATCHRESUME); }                // CFA
    19801984        YY_BREAK
    19811985case 27:
    19821986YY_RULE_SETUP
    1983 #line 193 "lex.ll"
     1987#line 195 "lex.ll"
    19841988{ KEYWORD_RETURN(CHAR); }
    19851989        YY_BREAK
    19861990case 28:
    19871991YY_RULE_SETUP
    1988 #line 194 "lex.ll"
     1992#line 196 "lex.ll"
    19891993{ KEYWORD_RETURN(CHOOSE); }                             // CFA
    19901994        YY_BREAK
    19911995case 29:
    19921996YY_RULE_SETUP
    1993 #line 195 "lex.ll"
     1997#line 197 "lex.ll"
    19941998{ KEYWORD_RETURN(COMPLEX); }                    // C99
    19951999        YY_BREAK
    19962000case 30:
    19972001YY_RULE_SETUP
    1998 #line 196 "lex.ll"
     2002#line 198 "lex.ll"
    19992003{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    20002004        YY_BREAK
    20012005case 31:
    20022006YY_RULE_SETUP
    2003 #line 197 "lex.ll"
     2007#line 199 "lex.ll"
    20042008{ KEYWORD_RETURN(COMPLEX); }                    // GCC
    20052009        YY_BREAK
    20062010case 32:
    20072011YY_RULE_SETUP
    2008 #line 198 "lex.ll"
     2012#line 200 "lex.ll"
    20092013{ KEYWORD_RETURN(CONST); }
    20102014        YY_BREAK
    20112015case 33:
    20122016YY_RULE_SETUP
    2013 #line 199 "lex.ll"
     2017#line 201 "lex.ll"
    20142018{ KEYWORD_RETURN(CONST); }                              // GCC
    20152019        YY_BREAK
    20162020case 34:
    20172021YY_RULE_SETUP
    2018 #line 200 "lex.ll"
     2022#line 202 "lex.ll"
    20192023{ KEYWORD_RETURN(CONST); }                              // GCC
    20202024        YY_BREAK
    20212025case 35:
    20222026YY_RULE_SETUP
    2023 #line 201 "lex.ll"
     2027#line 203 "lex.ll"
    20242028{ KEYWORD_RETURN(CONTINUE); }
    20252029        YY_BREAK
    20262030case 36:
    20272031YY_RULE_SETUP
    2028 #line 202 "lex.ll"
     2032#line 204 "lex.ll"
    20292033{ KEYWORD_RETURN(DEFAULT); }
    20302034        YY_BREAK
    20312035case 37:
    20322036YY_RULE_SETUP
    2033 #line 203 "lex.ll"
     2037#line 205 "lex.ll"
    20342038{ KEYWORD_RETURN(DISABLE); }                    // CFA
    20352039        YY_BREAK
    20362040case 38:
    20372041YY_RULE_SETUP
    2038 #line 204 "lex.ll"
     2042#line 206 "lex.ll"
    20392043{ KEYWORD_RETURN(DO); }
    20402044        YY_BREAK
    20412045case 39:
    20422046YY_RULE_SETUP
    2043 #line 205 "lex.ll"
     2047#line 207 "lex.ll"
    20442048{ KEYWORD_RETURN(DOUBLE); }
    20452049        YY_BREAK
    20462050case 40:
    20472051YY_RULE_SETUP
    2048 #line 206 "lex.ll"
     2052#line 208 "lex.ll"
    20492053{ KEYWORD_RETURN(DTYPE); }                              // CFA
    20502054        YY_BREAK
    20512055case 41:
    20522056YY_RULE_SETUP
    2053 #line 207 "lex.ll"
     2057#line 209 "lex.ll"
    20542058{ KEYWORD_RETURN(ELSE); }
    20552059        YY_BREAK
    20562060case 42:
    20572061YY_RULE_SETUP
    2058 #line 208 "lex.ll"
     2062#line 210 "lex.ll"
    20592063{ KEYWORD_RETURN(ENABLE); }                             // CFA
    20602064        YY_BREAK
    20612065case 43:
    20622066YY_RULE_SETUP
    2063 #line 209 "lex.ll"
     2067#line 211 "lex.ll"
    20642068{ KEYWORD_RETURN(ENUM); }
    20652069        YY_BREAK
    20662070case 44:
    20672071YY_RULE_SETUP
    2068 #line 210 "lex.ll"
     2072#line 212 "lex.ll"
    20692073{ KEYWORD_RETURN(EXTENSION); }                  // GCC
    20702074        YY_BREAK
    20712075case 45:
    20722076YY_RULE_SETUP
    2073 #line 211 "lex.ll"
     2077#line 213 "lex.ll"
    20742078{ KEYWORD_RETURN(EXTERN); }
    20752079        YY_BREAK
    20762080case 46:
    20772081YY_RULE_SETUP
    2078 #line 212 "lex.ll"
     2082#line 214 "lex.ll"
    20792083{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20802084        YY_BREAK
    20812085case 47:
    20822086YY_RULE_SETUP
    2083 #line 213 "lex.ll"
     2087#line 215 "lex.ll"
    20842088{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
    20852089        YY_BREAK
    20862090case 48:
    20872091YY_RULE_SETUP
    2088 #line 214 "lex.ll"
     2092#line 216 "lex.ll"
    20892093{ KEYWORD_RETURN(FINALLY); }                    // CFA
    20902094        YY_BREAK
    20912095case 49:
    20922096YY_RULE_SETUP
    2093 #line 215 "lex.ll"
     2097#line 217 "lex.ll"
    20942098{ KEYWORD_RETURN(FLOAT); }
    20952099        YY_BREAK
    20962100case 50:
    20972101YY_RULE_SETUP
    2098 #line 216 "lex.ll"
     2102#line 218 "lex.ll"
    20992103{ KEYWORD_RETURN(FLOAT); }                              // GCC
    21002104        YY_BREAK
    21012105case 51:
    21022106YY_RULE_SETUP
    2103 #line 217 "lex.ll"
     2107#line 219 "lex.ll"
    21042108{ KEYWORD_RETURN(FOR); }
    21052109        YY_BREAK
    21062110case 52:
    21072111YY_RULE_SETUP
    2108 #line 218 "lex.ll"
     2112#line 220 "lex.ll"
    21092113{ KEYWORD_RETURN(FORALL); }                             // CFA
    21102114        YY_BREAK
    21112115case 53:
    21122116YY_RULE_SETUP
    2113 #line 219 "lex.ll"
     2117#line 221 "lex.ll"
    21142118{ KEYWORD_RETURN(FORTRAN); }
    21152119        YY_BREAK
    21162120case 54:
    21172121YY_RULE_SETUP
    2118 #line 220 "lex.ll"
     2122#line 222 "lex.ll"
    21192123{ KEYWORD_RETURN(FTYPE); }                              // CFA
    21202124        YY_BREAK
    21212125case 55:
    21222126YY_RULE_SETUP
    2123 #line 221 "lex.ll"
     2127#line 223 "lex.ll"
    21242128{ KEYWORD_RETURN(GENERIC); }                    // C11
    21252129        YY_BREAK
    21262130case 56:
    21272131YY_RULE_SETUP
    2128 #line 222 "lex.ll"
     2132#line 224 "lex.ll"
    21292133{ KEYWORD_RETURN(GOTO); }
    21302134        YY_BREAK
    21312135case 57:
    21322136YY_RULE_SETUP
    2133 #line 223 "lex.ll"
     2137#line 225 "lex.ll"
    21342138{ KEYWORD_RETURN(IF); }
    21352139        YY_BREAK
    21362140case 58:
    21372141YY_RULE_SETUP
    2138 #line 224 "lex.ll"
     2142#line 226 "lex.ll"
    21392143{ KEYWORD_RETURN(IMAGINARY); }                  // C99
    21402144        YY_BREAK
    21412145case 59:
    21422146YY_RULE_SETUP
    2143 #line 225 "lex.ll"
     2147#line 227 "lex.ll"
    21442148{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21452149        YY_BREAK
    21462150case 60:
    21472151YY_RULE_SETUP
    2148 #line 226 "lex.ll"
     2152#line 228 "lex.ll"
    21492153{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
    21502154        YY_BREAK
    21512155case 61:
    21522156YY_RULE_SETUP
    2153 #line 227 "lex.ll"
     2157#line 229 "lex.ll"
    21542158{ KEYWORD_RETURN(INLINE); }                             // C99
    21552159        YY_BREAK
    21562160case 62:
    21572161YY_RULE_SETUP
    2158 #line 228 "lex.ll"
     2162#line 230 "lex.ll"
    21592163{ KEYWORD_RETURN(INLINE); }                             // GCC
    21602164        YY_BREAK
    21612165case 63:
    21622166YY_RULE_SETUP
    2163 #line 229 "lex.ll"
     2167#line 231 "lex.ll"
    21642168{ KEYWORD_RETURN(INLINE); }                             // GCC
    21652169        YY_BREAK
    21662170case 64:
    21672171YY_RULE_SETUP
    2168 #line 230 "lex.ll"
     2172#line 232 "lex.ll"
    21692173{ KEYWORD_RETURN(INT); }
    21702174        YY_BREAK
    21712175case 65:
    21722176YY_RULE_SETUP
    2173 #line 231 "lex.ll"
     2177#line 233 "lex.ll"
    21742178{ KEYWORD_RETURN(INT); }                                // GCC
    21752179        YY_BREAK
    21762180case 66:
    21772181YY_RULE_SETUP
    2178 #line 232 "lex.ll"
     2182#line 234 "lex.ll"
    21792183{ KEYWORD_RETURN(LABEL); }                              // GCC
    21802184        YY_BREAK
    21812185case 67:
    21822186YY_RULE_SETUP
    2183 #line 233 "lex.ll"
     2187#line 235 "lex.ll"
    21842188{ KEYWORD_RETURN(LONG); }
    21852189        YY_BREAK
    21862190case 68:
    21872191YY_RULE_SETUP
    2188 #line 234 "lex.ll"
     2192#line 236 "lex.ll"
    21892193{ KEYWORD_RETURN(LVALUE); }                             // CFA
    21902194        YY_BREAK
    21912195case 69:
    21922196YY_RULE_SETUP
    2193 #line 235 "lex.ll"
     2197#line 237 "lex.ll"
    21942198{ KEYWORD_RETURN(NORETURN); }                   // C11
    21952199        YY_BREAK
    21962200case 70:
    21972201YY_RULE_SETUP
    2198 #line 236 "lex.ll"
     2202#line 238 "lex.ll"
    21992203{ KEYWORD_RETURN(OFFSETOF); }           // GCC
    22002204        YY_BREAK
    22012205case 71:
    22022206YY_RULE_SETUP
    2203 #line 237 "lex.ll"
     2207#line 239 "lex.ll"
    22042208{ KEYWORD_RETURN(OTYPE); }                              // CFA
    22052209        YY_BREAK
    22062210case 72:
    22072211YY_RULE_SETUP
    2208 #line 238 "lex.ll"
     2212#line 240 "lex.ll"
    22092213{ KEYWORD_RETURN(REGISTER); }
    22102214        YY_BREAK
    22112215case 73:
    22122216YY_RULE_SETUP
    2213 #line 239 "lex.ll"
     2217#line 241 "lex.ll"
    22142218{ KEYWORD_RETURN(RESTRICT); }                   // C99
    22152219        YY_BREAK
    22162220case 74:
    22172221YY_RULE_SETUP
    2218 #line 240 "lex.ll"
     2222#line 242 "lex.ll"
    22192223{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22202224        YY_BREAK
    22212225case 75:
    22222226YY_RULE_SETUP
    2223 #line 241 "lex.ll"
     2227#line 243 "lex.ll"
    22242228{ KEYWORD_RETURN(RESTRICT); }                   // GCC
    22252229        YY_BREAK
    22262230case 76:
    22272231YY_RULE_SETUP
    2228 #line 242 "lex.ll"
     2232#line 244 "lex.ll"
    22292233{ KEYWORD_RETURN(RETURN); }
    22302234        YY_BREAK
    22312235case 77:
    22322236YY_RULE_SETUP
    2233 #line 243 "lex.ll"
     2237#line 245 "lex.ll"
    22342238{ KEYWORD_RETURN(SHORT); }
    22352239        YY_BREAK
    22362240case 78:
    22372241YY_RULE_SETUP
    2238 #line 244 "lex.ll"
     2242#line 246 "lex.ll"
    22392243{ KEYWORD_RETURN(SIGNED); }
    22402244        YY_BREAK
    22412245case 79:
    22422246YY_RULE_SETUP
    2243 #line 245 "lex.ll"
     2247#line 247 "lex.ll"
    22442248{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22452249        YY_BREAK
    22462250case 80:
    22472251YY_RULE_SETUP
    2248 #line 246 "lex.ll"
     2252#line 248 "lex.ll"
    22492253{ KEYWORD_RETURN(SIGNED); }                             // GCC
    22502254        YY_BREAK
    22512255case 81:
    22522256YY_RULE_SETUP
    2253 #line 247 "lex.ll"
     2257#line 249 "lex.ll"
    22542258{ KEYWORD_RETURN(SIZEOF); }
    22552259        YY_BREAK
    22562260case 82:
    22572261YY_RULE_SETUP
    2258 #line 248 "lex.ll"
     2262#line 250 "lex.ll"
    22592263{ KEYWORD_RETURN(STATIC); }
    22602264        YY_BREAK
    22612265case 83:
    22622266YY_RULE_SETUP
    2263 #line 249 "lex.ll"
     2267#line 251 "lex.ll"
    22642268{ KEYWORD_RETURN(STATICASSERT); }               // C11
    22652269        YY_BREAK
    22662270case 84:
    22672271YY_RULE_SETUP
    2268 #line 250 "lex.ll"
     2272#line 252 "lex.ll"
    22692273{ KEYWORD_RETURN(STRUCT); }
    22702274        YY_BREAK
    22712275case 85:
    22722276YY_RULE_SETUP
    2273 #line 251 "lex.ll"
     2277#line 253 "lex.ll"
    22742278{ KEYWORD_RETURN(SWITCH); }
    22752279        YY_BREAK
    22762280case 86:
    22772281YY_RULE_SETUP
    2278 #line 252 "lex.ll"
     2282#line 254 "lex.ll"
    22792283{ KEYWORD_RETURN(THREADLOCAL); }                // C11
    22802284        YY_BREAK
    22812285case 87:
    22822286YY_RULE_SETUP
    2283 #line 253 "lex.ll"
     2287#line 255 "lex.ll"
    22842288{ KEYWORD_RETURN(THROW); }                              // CFA
    22852289        YY_BREAK
    22862290case 88:
    22872291YY_RULE_SETUP
    2288 #line 254 "lex.ll"
     2292#line 256 "lex.ll"
    22892293{ KEYWORD_RETURN(THROWRESUME); }                // CFA
    22902294        YY_BREAK
    22912295case 89:
    22922296YY_RULE_SETUP
    2293 #line 255 "lex.ll"
     2297#line 257 "lex.ll"
    22942298{ KEYWORD_RETURN(TRAIT); }                              // CFA
    22952299        YY_BREAK
    22962300case 90:
    22972301YY_RULE_SETUP
    2298 #line 256 "lex.ll"
     2302#line 258 "lex.ll"
    22992303{ KEYWORD_RETURN(TRY); }                                // CFA
    23002304        YY_BREAK
    23012305case 91:
    23022306YY_RULE_SETUP
    2303 #line 257 "lex.ll"
     2307#line 259 "lex.ll"
    23042308{ KEYWORD_RETURN(TYPEDEF); }
    23052309        YY_BREAK
    23062310case 92:
    2307 YY_RULE_SETUP
    2308 #line 258 "lex.ll"
    2309 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2310         YY_BREAK
    2311 case 93:
    2312 YY_RULE_SETUP
    2313 #line 259 "lex.ll"
    2314 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2315         YY_BREAK
    2316 case 94:
    23172311YY_RULE_SETUP
    23182312#line 260 "lex.ll"
    23192313{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23202314        YY_BREAK
     2315case 93:
     2316YY_RULE_SETUP
     2317#line 261 "lex.ll"
     2318{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2319        YY_BREAK
     2320case 94:
     2321YY_RULE_SETUP
     2322#line 262 "lex.ll"
     2323{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2324        YY_BREAK
    23212325case 95:
    23222326YY_RULE_SETUP
    2323 #line 261 "lex.ll"
     2327#line 263 "lex.ll"
    23242328{ KEYWORD_RETURN(UNION); }
    23252329        YY_BREAK
    23262330case 96:
    23272331YY_RULE_SETUP
    2328 #line 262 "lex.ll"
     2332#line 264 "lex.ll"
    23292333{ KEYWORD_RETURN(UNSIGNED); }
    23302334        YY_BREAK
    23312335case 97:
    23322336YY_RULE_SETUP
    2333 #line 263 "lex.ll"
     2337#line 265 "lex.ll"
    23342338{ KEYWORD_RETURN(VALIST); }                     // GCC
    23352339        YY_BREAK
    23362340case 98:
    23372341YY_RULE_SETUP
    2338 #line 264 "lex.ll"
     2342#line 266 "lex.ll"
    23392343{ KEYWORD_RETURN(VOID); }
    23402344        YY_BREAK
    23412345case 99:
    23422346YY_RULE_SETUP
    2343 #line 265 "lex.ll"
     2347#line 267 "lex.ll"
    23442348{ KEYWORD_RETURN(VOLATILE); }
    23452349        YY_BREAK
    23462350case 100:
    23472351YY_RULE_SETUP
    2348 #line 266 "lex.ll"
     2352#line 268 "lex.ll"
    23492353{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23502354        YY_BREAK
    23512355case 101:
    23522356YY_RULE_SETUP
    2353 #line 267 "lex.ll"
     2357#line 269 "lex.ll"
    23542358{ KEYWORD_RETURN(VOLATILE); }                   // GCC
    23552359        YY_BREAK
    23562360case 102:
    23572361YY_RULE_SETUP
    2358 #line 268 "lex.ll"
     2362#line 270 "lex.ll"
    23592363{ KEYWORD_RETURN(WHILE); }
    23602364        YY_BREAK
     
    23622366case 103:
    23632367YY_RULE_SETUP
    2364 #line 271 "lex.ll"
     2368#line 273 "lex.ll"
    23652369{ IDENTIFIER_RETURN(); }
    23662370        YY_BREAK
    23672371case 104:
    23682372YY_RULE_SETUP
    2369 #line 272 "lex.ll"
     2373#line 274 "lex.ll"
    23702374{ ATTRIBUTE_RETURN(); }
    23712375        YY_BREAK
    23722376case 105:
    23732377YY_RULE_SETUP
    2374 #line 273 "lex.ll"
     2378#line 275 "lex.ll"
    23752379{ BEGIN BKQUOTE; }
    23762380        YY_BREAK
    23772381case 106:
    23782382YY_RULE_SETUP
    2379 #line 274 "lex.ll"
     2383#line 276 "lex.ll"
    23802384{ IDENTIFIER_RETURN(); }
    23812385        YY_BREAK
    23822386case 107:
    23832387YY_RULE_SETUP
    2384 #line 275 "lex.ll"
     2388#line 277 "lex.ll"
    23852389{ BEGIN 0; }
    23862390        YY_BREAK
     
    23882392case 108:
    23892393YY_RULE_SETUP
    2390 #line 278 "lex.ll"
     2394#line 280 "lex.ll"
    23912395{ NUMERIC_RETURN(ZERO); }                               // CFA
    23922396        YY_BREAK
    23932397case 109:
    23942398YY_RULE_SETUP
    2395 #line 279 "lex.ll"
     2399#line 281 "lex.ll"
    23962400{ NUMERIC_RETURN(ONE); }                                // CFA
    23972401        YY_BREAK
    23982402case 110:
    2399 YY_RULE_SETUP
    2400 #line 280 "lex.ll"
    2401 { NUMERIC_RETURN(INTEGERconstant); }
    2402         YY_BREAK
    2403 case 111:
    2404 YY_RULE_SETUP
    2405 #line 281 "lex.ll"
    2406 { NUMERIC_RETURN(INTEGERconstant); }
    2407         YY_BREAK
    2408 case 112:
    24092403YY_RULE_SETUP
    24102404#line 282 "lex.ll"
    24112405{ NUMERIC_RETURN(INTEGERconstant); }
    24122406        YY_BREAK
     2407case 111:
     2408YY_RULE_SETUP
     2409#line 283 "lex.ll"
     2410{ NUMERIC_RETURN(INTEGERconstant); }
     2411        YY_BREAK
     2412case 112:
     2413YY_RULE_SETUP
     2414#line 284 "lex.ll"
     2415{ NUMERIC_RETURN(INTEGERconstant); }
     2416        YY_BREAK
    24132417case 113:
    24142418YY_RULE_SETUP
    2415 #line 283 "lex.ll"
     2419#line 285 "lex.ll"
     2420{ NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
     2421        YY_BREAK
     2422case 114:
     2423YY_RULE_SETUP
     2424#line 286 "lex.ll"
     2425{ NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
     2426        YY_BREAK
     2427case 115:
     2428YY_RULE_SETUP
     2429#line 287 "lex.ll"
    24162430{ NUMERIC_RETURN(FLOATINGconstant); }
    24172431        YY_BREAK
    2418 case 114:
    2419 YY_RULE_SETUP
    2420 #line 284 "lex.ll"
     2432case 116:
     2433YY_RULE_SETUP
     2434#line 288 "lex.ll"
    24212435{ NUMERIC_RETURN(FLOATINGconstant); }
    24222436        YY_BREAK
    24232437/* character constant, allows empty value */
    2424 case 115:
    2425 YY_RULE_SETUP
    2426 #line 287 "lex.ll"
     2438case 117:
     2439YY_RULE_SETUP
     2440#line 291 "lex.ll"
    24272441{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24282442        YY_BREAK
    2429 case 116:
    2430 YY_RULE_SETUP
    2431 #line 288 "lex.ll"
     2443case 118:
     2444YY_RULE_SETUP
     2445#line 292 "lex.ll"
    24322446{ strtext->append( yytext, yyleng ); }
    24332447        YY_BREAK
    2434 case 117:
    2435 /* rule 117 can match eol */
    2436 YY_RULE_SETUP
    2437 #line 289 "lex.ll"
     2448case 119:
     2449/* rule 119 can match eol */
     2450YY_RULE_SETUP
     2451#line 293 "lex.ll"
    24382452{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    24392453        YY_BREAK
    24402454/* ' stop highlighting */
    24412455/* string constant */
    2442 case 118:
    2443 YY_RULE_SETUP
    2444 #line 293 "lex.ll"
     2456case 120:
     2457YY_RULE_SETUP
     2458#line 297 "lex.ll"
    24452459{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24462460        YY_BREAK
    2447 case 119:
    2448 YY_RULE_SETUP
    2449 #line 294 "lex.ll"
     2461case 121:
     2462YY_RULE_SETUP
     2463#line 298 "lex.ll"
    24502464{ strtext->append( yytext, yyleng ); }
    24512465        YY_BREAK
    2452 case 120:
    2453 /* rule 120 can match eol */
    2454 YY_RULE_SETUP
    2455 #line 295 "lex.ll"
     2466case 122:
     2467/* rule 122 can match eol */
     2468YY_RULE_SETUP
     2469#line 299 "lex.ll"
    24562470{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    24572471        YY_BREAK
    24582472/* " stop highlighting */
    24592473/* common character/string constant */
    2460 case 121:
    2461 YY_RULE_SETUP
    2462 #line 299 "lex.ll"
     2474case 123:
     2475YY_RULE_SETUP
     2476#line 303 "lex.ll"
    24632477{ rm_underscore(); strtext->append( yytext, yyleng ); }
    24642478        YY_BREAK
    2465 case 122:
    2466 /* rule 122 can match eol */
    2467 YY_RULE_SETUP
    2468 #line 300 "lex.ll"
     2479case 124:
     2480/* rule 124 can match eol */
     2481YY_RULE_SETUP
     2482#line 304 "lex.ll"
    24692483{}                                              // continuation (ALSO HANDLED BY CPP)
    24702484        YY_BREAK
    2471 case 123:
    2472 YY_RULE_SETUP
    2473 #line 301 "lex.ll"
     2485case 125:
     2486YY_RULE_SETUP
     2487#line 305 "lex.ll"
    24742488{ strtext->append( yytext, yyleng ); } // unknown escape character
    24752489        YY_BREAK
    24762490/* punctuation */
    2477 case 124:
    2478 YY_RULE_SETUP
    2479 #line 304 "lex.ll"
    2480 { ASCIIOP_RETURN(); }
    2481         YY_BREAK
    2482 case 125:
    2483 YY_RULE_SETUP
    2484 #line 305 "lex.ll"
    2485 { ASCIIOP_RETURN(); }
    2486         YY_BREAK
    24872491case 126:
    2488 YY_RULE_SETUP
    2489 #line 306 "lex.ll"
    2490 { ASCIIOP_RETURN(); }
    2491         YY_BREAK
    2492 case 127:
    2493 YY_RULE_SETUP
    2494 #line 307 "lex.ll"
    2495 { ASCIIOP_RETURN(); }
    2496         YY_BREAK
    2497 case 128:
    24982492YY_RULE_SETUP
    24992493#line 308 "lex.ll"
    25002494{ ASCIIOP_RETURN(); }
    25012495        YY_BREAK
    2502 case 129:
     2496case 127:
    25032497YY_RULE_SETUP
    25042498#line 309 "lex.ll"
    25052499{ ASCIIOP_RETURN(); }
    25062500        YY_BREAK
    2507 case 130:
     2501case 128:
    25082502YY_RULE_SETUP
    25092503#line 310 "lex.ll"
    2510 { ASCIIOP_RETURN(); }                                   // also operator
    2511         YY_BREAK
    2512 case 131:
     2504{ ASCIIOP_RETURN(); }
     2505        YY_BREAK
     2506case 129:
    25132507YY_RULE_SETUP
    25142508#line 311 "lex.ll"
    25152509{ ASCIIOP_RETURN(); }
    25162510        YY_BREAK
    2517 case 132:
     2511case 130:
    25182512YY_RULE_SETUP
    25192513#line 312 "lex.ll"
    25202514{ ASCIIOP_RETURN(); }
    25212515        YY_BREAK
     2516case 131:
     2517YY_RULE_SETUP
     2518#line 313 "lex.ll"
     2519{ ASCIIOP_RETURN(); }
     2520        YY_BREAK
     2521case 132:
     2522YY_RULE_SETUP
     2523#line 314 "lex.ll"
     2524{ ASCIIOP_RETURN(); }                                   // also operator
     2525        YY_BREAK
    25222526case 133:
    25232527YY_RULE_SETUP
    2524 #line 313 "lex.ll"
     2528#line 315 "lex.ll"
     2529{ ASCIIOP_RETURN(); }
     2530        YY_BREAK
     2531case 134:
     2532YY_RULE_SETUP
     2533#line 316 "lex.ll"
     2534{ ASCIIOP_RETURN(); }
     2535        YY_BREAK
     2536case 135:
     2537YY_RULE_SETUP
     2538#line 317 "lex.ll"
    25252539{ ASCIIOP_RETURN(); }                                   // also operator
    25262540        YY_BREAK
    2527 case 134:
    2528 YY_RULE_SETUP
    2529 #line 314 "lex.ll"
     2541case 136:
     2542YY_RULE_SETUP
     2543#line 318 "lex.ll"
    25302544{ NAMEDOP_RETURN(ELLIPSIS); }
    25312545        YY_BREAK
    25322546/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2533 case 135:
    2534 YY_RULE_SETUP
    2535 #line 317 "lex.ll"
     2547case 137:
     2548YY_RULE_SETUP
     2549#line 321 "lex.ll"
    25362550{ RETURN_VAL('['); }
    25372551        YY_BREAK
    2538 case 136:
    2539 YY_RULE_SETUP
    2540 #line 318 "lex.ll"
     2552case 138:
     2553YY_RULE_SETUP
     2554#line 322 "lex.ll"
    25412555{ RETURN_VAL(']'); }
    25422556        YY_BREAK
    2543 case 137:
    2544 YY_RULE_SETUP
    2545 #line 319 "lex.ll"
     2557case 139:
     2558YY_RULE_SETUP
     2559#line 323 "lex.ll"
    25462560{ RETURN_VAL('{'); }
    25472561        YY_BREAK
    2548 case 138:
    2549 YY_RULE_SETUP
    2550 #line 320 "lex.ll"
     2562case 140:
     2563YY_RULE_SETUP
     2564#line 324 "lex.ll"
    25512565{ RETURN_VAL('}'); }
    25522566        YY_BREAK
    25532567/* operators */
    2554 case 139:
    2555 YY_RULE_SETUP
    2556 #line 323 "lex.ll"
    2557 { ASCIIOP_RETURN(); }
    2558         YY_BREAK
    2559 case 140:
    2560 YY_RULE_SETUP
    2561 #line 324 "lex.ll"
    2562 { ASCIIOP_RETURN(); }
    2563         YY_BREAK
    25642568case 141:
    2565 YY_RULE_SETUP
    2566 #line 325 "lex.ll"
    2567 { ASCIIOP_RETURN(); }
    2568         YY_BREAK
    2569 case 142:
    2570 YY_RULE_SETUP
    2571 #line 326 "lex.ll"
    2572 { ASCIIOP_RETURN(); }
    2573         YY_BREAK
    2574 case 143:
    25752569YY_RULE_SETUP
    25762570#line 327 "lex.ll"
    25772571{ ASCIIOP_RETURN(); }
    25782572        YY_BREAK
    2579 case 144:
     2573case 142:
    25802574YY_RULE_SETUP
    25812575#line 328 "lex.ll"
    25822576{ ASCIIOP_RETURN(); }
    25832577        YY_BREAK
    2584 case 145:
     2578case 143:
    25852579YY_RULE_SETUP
    25862580#line 329 "lex.ll"
    25872581{ ASCIIOP_RETURN(); }
    25882582        YY_BREAK
    2589 case 146:
     2583case 144:
    25902584YY_RULE_SETUP
    25912585#line 330 "lex.ll"
    25922586{ ASCIIOP_RETURN(); }
    25932587        YY_BREAK
    2594 case 147:
     2588case 145:
    25952589YY_RULE_SETUP
    25962590#line 331 "lex.ll"
    25972591{ ASCIIOP_RETURN(); }
    25982592        YY_BREAK
    2599 case 148:
     2593case 146:
    26002594YY_RULE_SETUP
    26012595#line 332 "lex.ll"
    26022596{ ASCIIOP_RETURN(); }
    26032597        YY_BREAK
    2604 case 149:
     2598case 147:
    26052599YY_RULE_SETUP
    26062600#line 333 "lex.ll"
    26072601{ ASCIIOP_RETURN(); }
    26082602        YY_BREAK
    2609 case 150:
     2603case 148:
    26102604YY_RULE_SETUP
    26112605#line 334 "lex.ll"
    26122606{ ASCIIOP_RETURN(); }
    26132607        YY_BREAK
    2614 case 151:
     2608case 149:
    26152609YY_RULE_SETUP
    26162610#line 335 "lex.ll"
    26172611{ ASCIIOP_RETURN(); }
    26182612        YY_BREAK
    2619 case 152:
     2613case 150:
    26202614YY_RULE_SETUP
    26212615#line 336 "lex.ll"
    26222616{ ASCIIOP_RETURN(); }
    26232617        YY_BREAK
     2618case 151:
     2619YY_RULE_SETUP
     2620#line 337 "lex.ll"
     2621{ ASCIIOP_RETURN(); }
     2622        YY_BREAK
     2623case 152:
     2624YY_RULE_SETUP
     2625#line 338 "lex.ll"
     2626{ ASCIIOP_RETURN(); }
     2627        YY_BREAK
    26242628case 153:
    26252629YY_RULE_SETUP
    2626 #line 338 "lex.ll"
     2630#line 339 "lex.ll"
     2631{ ASCIIOP_RETURN(); }
     2632        YY_BREAK
     2633case 154:
     2634YY_RULE_SETUP
     2635#line 340 "lex.ll"
     2636{ ASCIIOP_RETURN(); }
     2637        YY_BREAK
     2638case 155:
     2639YY_RULE_SETUP
     2640#line 342 "lex.ll"
    26272641{ NAMEDOP_RETURN(ICR); }
    26282642        YY_BREAK
    2629 case 154:
    2630 YY_RULE_SETUP
    2631 #line 339 "lex.ll"
     2643case 156:
     2644YY_RULE_SETUP
     2645#line 343 "lex.ll"
    26322646{ NAMEDOP_RETURN(DECR); }
    26332647        YY_BREAK
    2634 case 155:
    2635 YY_RULE_SETUP
    2636 #line 340 "lex.ll"
     2648case 157:
     2649YY_RULE_SETUP
     2650#line 344 "lex.ll"
    26372651{ NAMEDOP_RETURN(EQ); }
    26382652        YY_BREAK
    2639 case 156:
    2640 YY_RULE_SETUP
    2641 #line 341 "lex.ll"
     2653case 158:
     2654YY_RULE_SETUP
     2655#line 345 "lex.ll"
    26422656{ NAMEDOP_RETURN(NE); }
    26432657        YY_BREAK
    2644 case 157:
    2645 YY_RULE_SETUP
    2646 #line 342 "lex.ll"
     2658case 159:
     2659YY_RULE_SETUP
     2660#line 346 "lex.ll"
    26472661{ NAMEDOP_RETURN(LS); }
    26482662        YY_BREAK
    2649 case 158:
    2650 YY_RULE_SETUP
    2651 #line 343 "lex.ll"
     2663case 160:
     2664YY_RULE_SETUP
     2665#line 347 "lex.ll"
    26522666{ NAMEDOP_RETURN(RS); }
    26532667        YY_BREAK
    2654 case 159:
    2655 YY_RULE_SETUP
    2656 #line 344 "lex.ll"
     2668case 161:
     2669YY_RULE_SETUP
     2670#line 348 "lex.ll"
    26572671{ NAMEDOP_RETURN(LE); }
    26582672        YY_BREAK
    2659 case 160:
    2660 YY_RULE_SETUP
    2661 #line 345 "lex.ll"
     2673case 162:
     2674YY_RULE_SETUP
     2675#line 349 "lex.ll"
    26622676{ NAMEDOP_RETURN(GE); }
    26632677        YY_BREAK
    2664 case 161:
    2665 YY_RULE_SETUP
    2666 #line 346 "lex.ll"
     2678case 163:
     2679YY_RULE_SETUP
     2680#line 350 "lex.ll"
    26672681{ NAMEDOP_RETURN(ANDAND); }
    26682682        YY_BREAK
    2669 case 162:
    2670 YY_RULE_SETUP
    2671 #line 347 "lex.ll"
     2683case 164:
     2684YY_RULE_SETUP
     2685#line 351 "lex.ll"
    26722686{ NAMEDOP_RETURN(OROR); }
    26732687        YY_BREAK
    2674 case 163:
    2675 YY_RULE_SETUP
    2676 #line 348 "lex.ll"
     2688case 165:
     2689YY_RULE_SETUP
     2690#line 352 "lex.ll"
    26772691{ NAMEDOP_RETURN(ARROW); }
    26782692        YY_BREAK
    2679 case 164:
    2680 YY_RULE_SETUP
    2681 #line 349 "lex.ll"
     2693case 166:
     2694YY_RULE_SETUP
     2695#line 353 "lex.ll"
    26822696{ NAMEDOP_RETURN(PLUSassign); }
    26832697        YY_BREAK
    2684 case 165:
    2685 YY_RULE_SETUP
    2686 #line 350 "lex.ll"
     2698case 167:
     2699YY_RULE_SETUP
     2700#line 354 "lex.ll"
    26872701{ NAMEDOP_RETURN(MINUSassign); }
    26882702        YY_BREAK
    2689 case 166:
    2690 YY_RULE_SETUP
    2691 #line 351 "lex.ll"
     2703case 168:
     2704YY_RULE_SETUP
     2705#line 355 "lex.ll"
    26922706{ NAMEDOP_RETURN(MULTassign); }
    26932707        YY_BREAK
    2694 case 167:
    2695 YY_RULE_SETUP
    2696 #line 352 "lex.ll"
     2708case 169:
     2709YY_RULE_SETUP
     2710#line 356 "lex.ll"
    26972711{ NAMEDOP_RETURN(DIVassign); }
    26982712        YY_BREAK
    2699 case 168:
    2700 YY_RULE_SETUP
    2701 #line 353 "lex.ll"
     2713case 170:
     2714YY_RULE_SETUP
     2715#line 357 "lex.ll"
    27022716{ NAMEDOP_RETURN(MODassign); }
    27032717        YY_BREAK
    2704 case 169:
    2705 YY_RULE_SETUP
    2706 #line 354 "lex.ll"
     2718case 171:
     2719YY_RULE_SETUP
     2720#line 358 "lex.ll"
    27072721{ NAMEDOP_RETURN(ANDassign); }
    27082722        YY_BREAK
    2709 case 170:
    2710 YY_RULE_SETUP
    2711 #line 355 "lex.ll"
     2723case 172:
     2724YY_RULE_SETUP
     2725#line 359 "lex.ll"
    27122726{ NAMEDOP_RETURN(ORassign); }
    27132727        YY_BREAK
    2714 case 171:
    2715 YY_RULE_SETUP
    2716 #line 356 "lex.ll"
     2728case 173:
     2729YY_RULE_SETUP
     2730#line 360 "lex.ll"
    27172731{ NAMEDOP_RETURN(ERassign); }
    27182732        YY_BREAK
    2719 case 172:
    2720 YY_RULE_SETUP
    2721 #line 357 "lex.ll"
     2733case 174:
     2734YY_RULE_SETUP
     2735#line 361 "lex.ll"
    27222736{ NAMEDOP_RETURN(LSassign); }
    27232737        YY_BREAK
    2724 case 173:
    2725 YY_RULE_SETUP
    2726 #line 358 "lex.ll"
     2738case 175:
     2739YY_RULE_SETUP
     2740#line 362 "lex.ll"
    27272741{ NAMEDOP_RETURN(RSassign); }
    27282742        YY_BREAK
    2729 case 174:
    2730 YY_RULE_SETUP
    2731 #line 360 "lex.ll"
     2743case 176:
     2744YY_RULE_SETUP
     2745#line 364 "lex.ll"
    27322746{ NAMEDOP_RETURN(ATassign); }                   // CFA
    27332747        YY_BREAK
    27342748/* CFA, operator identifier */
    2735 case 175:
    2736 YY_RULE_SETUP
    2737 #line 363 "lex.ll"
     2749case 177:
     2750YY_RULE_SETUP
     2751#line 367 "lex.ll"
    27382752{ IDENTIFIER_RETURN(); }                                // unary
    27392753        YY_BREAK
    2740 case 176:
    2741 YY_RULE_SETUP
    2742 #line 364 "lex.ll"
     2754case 178:
     2755YY_RULE_SETUP
     2756#line 368 "lex.ll"
    27432757{ IDENTIFIER_RETURN(); }
    27442758        YY_BREAK
    2745 case 177:
    2746 YY_RULE_SETUP
    2747 #line 365 "lex.ll"
     2759case 179:
     2760YY_RULE_SETUP
     2761#line 369 "lex.ll"
    27482762{ IDENTIFIER_RETURN(); }
    27492763        YY_BREAK
    2750 case 178:
    2751 YY_RULE_SETUP
    2752 #line 366 "lex.ll"
     2764case 180:
     2765YY_RULE_SETUP
     2766#line 370 "lex.ll"
    27532767{ IDENTIFIER_RETURN(); }                // binary
    27542768        YY_BREAK
     
    27792793          an argument list.
    27802794        */
    2781 case 179:
    2782 YY_RULE_SETUP
    2783 #line 393 "lex.ll"
     2795case 181:
     2796YY_RULE_SETUP
     2797#line 397 "lex.ll"
    27842798{
    27852799        // 1 or 2 character unary operator ?
     
    27942808        YY_BREAK
    27952809/* unknown characters */
    2796 case 180:
    2797 YY_RULE_SETUP
    2798 #line 405 "lex.ll"
     2810case 182:
     2811YY_RULE_SETUP
     2812#line 409 "lex.ll"
    27992813{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    28002814        YY_BREAK
    2801 case 181:
    2802 YY_RULE_SETUP
    2803 #line 407 "lex.ll"
     2815case 183:
     2816YY_RULE_SETUP
     2817#line 411 "lex.ll"
    28042818ECHO;
    28052819        YY_BREAK
    2806 #line 2807 "Parser/lex.cc"
     2820#line 2821 "Parser/lex.cc"
    28072821case YY_STATE_EOF(INITIAL):
    28082822case YY_STATE_EOF(COMMENT):
     
    31013115                        {
    31023116                        yy_current_state = (int) yy_def[yy_current_state];
    3103                         if ( yy_current_state >= 892 )
     3117                        if ( yy_current_state >= 895 )
    31043118                                yy_c = yy_meta[(unsigned int) yy_c];
    31053119                        }
     
    31293143                {
    31303144                yy_current_state = (int) yy_def[yy_current_state];
    3131                 if ( yy_current_state >= 892 )
     3145                if ( yy_current_state >= 895 )
    31323146                        yy_c = yy_meta[(unsigned int) yy_c];
    31333147                }
    31343148        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3135         yy_is_jam = (yy_current_state == 891);
     3149        yy_is_jam = (yy_current_state == 894);
    31363150
    31373151        return yy_is_jam ? 0 : yy_current_state;
     
    37793793#define YYTABLES_NAME "yytables"
    37803794
    3781 #line 407 "lex.ll"
     3795#line 411 "lex.ll"
    37823796
    37833797
  • src/Parser/lex.ll

    r77971f6 r3f0c6a5  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Tue Oct 18 22:19:37 2016
    13  * Update Count     : 488
     12 * Last Modified On : Wed Oct 26 17:32:30 2016
     13 * Update Count     : 499
    1414 */
    1515
     
    9191
    9292decimal_digits ({decimal})|({decimal}({decimal}|"_")*{decimal})
    93 fractional_constant ({decimal_digits}?"."{decimal_digits})|({decimal_digits}".")
     93real_decimal {decimal_digits}"."
     94real_fraction "."{decimal_digits}
     95real_constant {decimal_digits}?{real_fraction}
    9496exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    9597                                // GCC: D (double), DL (long double) and iI (imaginary) suffixes
    9698floating_suffix "_"?([fFdDlL][iI]?|"DL"|[iI][lLfFdD]?)
    9799                                //floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
    98 floating_constant (({fractional_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
     100floating_constant (({real_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
    99101
    100102binary_exponent "_"?[pP]"_"?[+-]?{decimal_digits}
     
    281283{octal_constant} { NUMERIC_RETURN(INTEGERconstant); }
    282284{hex_constant}  { NUMERIC_RETURN(INTEGERconstant); }
     285{real_decimal}  { NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
     286{real_fraction} { NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
    283287{floating_constant}     { NUMERIC_RETURN(FLOATINGconstant); }
    284288{hex_floating_constant} { NUMERIC_RETURN(FLOATINGconstant); }
  • src/Parser/parser.cc

    r77971f6 r3f0c6a5  
    201201     ATTR_TYPEGENname = 333,
    202202     INTEGERconstant = 334,
    203      FLOATINGconstant = 335,
    204      CHARACTERconstant = 336,
    205      STRINGliteral = 337,
    206      ZERO = 338,
    207      ONE = 339,
    208      ARROW = 340,
    209      ICR = 341,
    210      DECR = 342,
    211      LS = 343,
    212      RS = 344,
    213      LE = 345,
    214      GE = 346,
    215      EQ = 347,
    216      NE = 348,
    217      ANDAND = 349,
    218      OROR = 350,
    219      ELLIPSIS = 351,
    220      MULTassign = 352,
    221      DIVassign = 353,
    222      MODassign = 354,
    223      PLUSassign = 355,
    224      MINUSassign = 356,
    225      LSassign = 357,
    226      RSassign = 358,
    227      ANDassign = 359,
    228      ERassign = 360,
    229      ORassign = 361,
    230      ATassign = 362,
    231      THEN = 363
     203     CHARACTERconstant = 335,
     204     STRINGliteral = 336,
     205     REALDECIMALconstant = 337,
     206     REALFRACTIONconstant = 338,
     207     FLOATINGconstant = 339,
     208     ZERO = 340,
     209     ONE = 341,
     210     ARROW = 342,
     211     ICR = 343,
     212     DECR = 344,
     213     LS = 345,
     214     RS = 346,
     215     LE = 347,
     216     GE = 348,
     217     EQ = 349,
     218     NE = 350,
     219     ANDAND = 351,
     220     OROR = 352,
     221     ELLIPSIS = 353,
     222     MULTassign = 354,
     223     DIVassign = 355,
     224     MODassign = 356,
     225     PLUSassign = 357,
     226     MINUSassign = 358,
     227     LSassign = 359,
     228     RSassign = 360,
     229     ANDassign = 361,
     230     ERassign = 362,
     231     ORassign = 363,
     232     ATassign = 364,
     233     THEN = 365
    232234   };
    233235#endif
     
    310312#define ATTR_TYPEGENname 333
    311313#define INTEGERconstant 334
    312 #define FLOATINGconstant 335
    313 #define CHARACTERconstant 336
    314 #define STRINGliteral 337
    315 #define ZERO 338
    316 #define ONE 339
    317 #define ARROW 340
    318 #define ICR 341
    319 #define DECR 342
    320 #define LS 343
    321 #define RS 344
    322 #define LE 345
    323 #define GE 346
    324 #define EQ 347
    325 #define NE 348
    326 #define ANDAND 349
    327 #define OROR 350
    328 #define ELLIPSIS 351
    329 #define MULTassign 352
    330 #define DIVassign 353
    331 #define MODassign 354
    332 #define PLUSassign 355
    333 #define MINUSassign 356
    334 #define LSassign 357
    335 #define RSassign 358
    336 #define ANDassign 359
    337 #define ERassign 360
    338 #define ORassign 361
    339 #define ATassign 362
    340 #define THEN 363
     314#define CHARACTERconstant 335
     315#define STRINGliteral 336
     316#define REALDECIMALconstant 337
     317#define REALFRACTIONconstant 338
     318#define FLOATINGconstant 339
     319#define ZERO 340
     320#define ONE 341
     321#define ARROW 342
     322#define ICR 343
     323#define DECR 344
     324#define LS 345
     325#define RS 346
     326#define LE 347
     327#define GE 348
     328#define EQ 349
     329#define NE 350
     330#define ANDAND 351
     331#define OROR 352
     332#define ELLIPSIS 353
     333#define MULTassign 354
     334#define DIVassign 355
     335#define MODassign 356
     336#define PLUSassign 357
     337#define MINUSassign 358
     338#define LSassign 359
     339#define RSassign 360
     340#define ANDassign 361
     341#define ERassign 362
     342#define ORassign 363
     343#define ATassign 364
     344#define THEN 365
    341345
    342346
     
    348352
    349353/* Line 293 of yacc.c  */
    350 #line 116 "parser.yy"
     354#line 120 "parser.yy"
    351355
    352356        Token tok;
     
    368372
    369373/* Line 293 of yacc.c  */
    370 #line 371 "Parser/parser.cc"
     374#line 375 "Parser/parser.cc"
    371375} YYSTYPE;
    372376# define YYSTYPE_IS_TRIVIAL 1
     
    380384
    381385/* Line 343 of yacc.c  */
    382 #line 383 "Parser/parser.cc"
     386#line 387 "Parser/parser.cc"
    383387
    384388#ifdef short
     
    597601
    598602/* YYFINAL -- State number of the termination state.  */
    599 #define YYFINAL  250
     603#define YYFINAL  249
    600604/* YYLAST -- Last index in YYTABLE.  */
    601 #define YYLAST   10888
     605#define YYLAST   10266
    602606
    603607/* YYNTOKENS -- Number of terminals.  */
    604 #define YYNTOKENS  133
     608#define YYNTOKENS  135
    605609/* YYNNTS -- Number of nonterminals.  */
    606 #define YYNNTS  242
     610#define YYNNTS  243
    607611/* YYNRULES -- Number of rules.  */
    608 #define YYNRULES  754
     612#define YYNRULES  755
    609613/* YYNRULES -- Number of states.  */
    610 #define YYNSTATES  1558
     614#define YYNSTATES  1538
    611615
    612616/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    613617#define YYUNDEFTOK  2
    614 #define YYMAXUTOK   363
     618#define YYMAXUTOK   365
    615619
    616620#define YYTRANSLATE(YYX)                                                \
     
    623627       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    624628       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    625        2,     2,     2,   121,     2,     2,     2,   124,   118,     2,
    626      109,   110,   117,   119,   116,   120,   113,   123,     2,     2,
    627        2,     2,     2,     2,     2,     2,     2,     2,   130,   132,
    628      125,   131,   126,   129,     2,     2,     2,     2,     2,     2,
     629       2,     2,     2,   123,     2,     2,     2,   126,   120,     2,
     630     111,   112,   119,   121,   118,   122,   115,   125,     2,     2,
     631       2,     2,     2,     2,     2,     2,     2,     2,   132,   134,
     632     127,   133,   128,   131,     2,     2,     2,     2,     2,     2,
    629633       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    630634       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    631        2,   111,     2,   112,   127,     2,     2,     2,     2,     2,
     635       2,   113,     2,   114,   129,     2,     2,     2,     2,     2,
    632636       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    633637       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    634        2,     2,     2,   114,   128,   115,   122,     2,     2,     2,
     638       2,     2,     2,   116,   130,   117,   124,     2,     2,     2,
    635639       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    636640       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    656660      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    657661      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    658      105,   106,   107,   108
     662     105,   106,   107,   108,   109,   110
    659663};
    660664
     
    665669{
    666670       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    667       17,    19,    21,    23,    25,    27,    29,    31,    33,    36,
    668       38,    40,    44,    48,    50,    57,    62,    66,    74,    78,
    669       82,    90,    93,    96,   104,   109,   111,   115,   116,   118,
    670      120,   124,   126,   130,   138,   142,   150,   152,   154,   156,
    671      158,   160,   163,   166,   169,   172,   175,   178,   183,   186,
    672      191,   198,   200,   205,   210,   212,   214,   216,   218,   220,
    673      222,   224,   229,   234,   236,   240,   244,   248,   250,   254,
    674      258,   260,   264,   268,   270,   274,   278,   282,   286,   288,
    675      292,   296,   298,   302,   304,   308,   310,   314,   316,   320,
    676      322,   326,   328,   334,   339,   345,   347,   349,   353,   356,
    677      357,   359,   361,   363,   365,   367,   369,   371,   373,   375,
    678      377,   379,   381,   383,   386,   392,   399,   407,   409,   413,
    679      415,   419,   420,   422,   424,   426,   428,   430,   432,   434,
    680      436,   438,   445,   450,   453,   461,   463,   467,   469,   472,
    681      474,   477,   479,   482,   485,   491,   499,   505,   515,   521,
    682      531,   533,   537,   539,   541,   545,   549,   552,   554,   557,
    683      560,   561,   563,   566,   570,   571,   573,   576,   580,   584,
    684      589,   590,   592,   594,   597,   603,   611,   618,   625,   630,
    685      634,   639,   642,   646,   649,   653,   657,   661,   665,   671,
    686      675,   679,   684,   686,   692,   699,   705,   712,   722,   733,
    687      743,   754,   757,   759,   762,   765,   768,   770,   777,   786,
    688      797,   810,   825,   826,   828,   829,   831,   833,   837,   842,
    689      850,   851,   853,   857,   859,   863,   865,   867,   869,   873,
    690      875,   877,   879,   883,   884,   886,   890,   895,   897,   901,
    691      903,   905,   909,   913,   917,   921,   925,   928,   932,   939,
    692      943,   947,   952,   954,   957,   960,   964,   970,   979,   987,
    693      995,  1001,  1011,  1014,  1017,  1023,  1027,  1033,  1038,  1042,
    694     1047,  1052,  1060,  1064,  1068,  1072,  1076,  1081,  1088,  1090,
    695     1092,  1094,  1096,  1098,  1100,  1102,  1104,  1105,  1107,  1109,
    696     1112,  1114,  1116,  1118,  1120,  1122,  1124,  1126,  1127,  1133,
    697     1135,  1138,  1142,  1144,  1147,  1149,  1151,  1153,  1155,  1157,
    698     1159,  1161,  1163,  1165,  1167,  1169,  1171,  1173,  1175,  1177,
    699     1179,  1181,  1183,  1185,  1187,  1189,  1191,  1194,  1197,  1201,
    700     1205,  1207,  1211,  1213,  1216,  1219,  1222,  1227,  1232,  1237,
    701     1242,  1244,  1247,  1250,  1254,  1256,  1259,  1262,  1264,  1267,
    702     1270,  1274,  1276,  1279,  1282,  1284,  1286,  1291,  1294,  1295,
    703     1302,  1310,  1313,  1316,  1319,  1320,  1323,  1326,  1330,  1333,
    704     1337,  1339,  1342,  1346,  1349,  1352,  1357,  1358,  1360,  1363,
    705     1366,  1368,  1369,  1371,  1374,  1377,  1383,  1386,  1387,  1395,
    706     1398,  1403,  1404,  1407,  1408,  1410,  1412,  1414,  1420,  1426,
    707     1432,  1434,  1440,  1446,  1456,  1458,  1464,  1465,  1467,  1469,
    708     1475,  1477,  1479,  1485,  1491,  1493,  1497,  1501,  1506,  1508,
    709     1510,  1512,  1514,  1517,  1519,  1523,  1527,  1529,  1532,  1534,
    710     1538,  1540,  1542,  1544,  1546,  1548,  1550,  1552,  1554,  1556,
    711     1558,  1560,  1563,  1565,  1567,  1569,  1572,  1573,  1576,  1579,
    712     1581,  1586,  1587,  1589,  1592,  1596,  1601,  1604,  1607,  1609,
    713     1612,  1615,  1621,  1627,  1635,  1642,  1644,  1647,  1650,  1654,
    714     1656,  1659,  1662,  1667,  1670,  1675,  1676,  1681,  1684,  1686,
    715     1688,  1690,  1691,  1694,  1700,  1706,  1720,  1722,  1724,  1728,
    716     1732,  1735,  1739,  1743,  1746,  1751,  1753,  1760,  1770,  1771,
    717     1783,  1785,  1789,  1793,  1797,  1799,  1801,  1807,  1810,  1816,
    718     1817,  1819,  1821,  1825,  1826,  1828,  1830,  1832,  1834,  1835,
    719     1842,  1845,  1847,  1850,  1855,  1858,  1862,  1866,  1870,  1875,
    720     1881,  1887,  1893,  1900,  1902,  1904,  1906,  1910,  1911,  1917,
    721     1918,  1920,  1922,  1925,  1932,  1934,  1938,  1939,  1941,  1946,
    722     1948,  1950,  1952,  1954,  1957,  1959,  1962,  1965,  1967,  1971,
    723     1974,  1978,  1982,  1985,  1990,  1995,  1999,  2008,  2012,  2015,
    724     2017,  2020,  2027,  2036,  2040,  2043,  2047,  2051,  2056,  2061,
    725     2065,  2067,  2069,  2071,  2076,  2083,  2087,  2090,  2094,  2098,
    726     2103,  2108,  2112,  2115,  2117,  2120,  2123,  2125,  2129,  2132,
    727     2136,  2140,  2143,  2148,  2153,  2157,  2164,  2173,  2177,  2180,
    728     2182,  2185,  2188,  2191,  2195,  2199,  2202,  2207,  2212,  2216,
    729     2223,  2232,  2236,  2239,  2241,  2244,  2247,  2249,  2251,  2254,
    730     2258,  2262,  2265,  2270,  2277,  2286,  2288,  2291,  2294,  2296,
    731     2299,  2302,  2306,  2310,  2312,  2317,  2322,  2326,  2332,  2341,
    732     2345,  2348,  2352,  2354,  2360,  2366,  2373,  2380,  2382,  2385,
    733     2388,  2390,  2393,  2396,  2400,  2404,  2406,  2411,  2416,  2420,
    734     2426,  2435,  2439,  2441,  2444,  2446,  2449,  2456,  2462,  2469,
    735     2477,  2485,  2487,  2490,  2493,  2495,  2498,  2501,  2505,  2509,
    736     2511,  2516,  2521,  2525,  2534,  2538,  2540,  2542,  2545,  2547,
    737     2549,  2552,  2556,  2559,  2563,  2566,  2570,  2574,  2577,  2582,
    738     2586,  2589,  2593,  2596,  2601,  2605,  2608,  2615,  2622,  2629,
    739     2637,  2639,  2642,  2644,  2646,  2648,  2651,  2655,  2658,  2662,
    740     2665,  2669,  2673,  2678,  2681,  2685,  2690,  2693,  2699,  2705,
    741     2712,  2719,  2720,  2722,  2723
     671      17,    19,    21,    23,    25,    27,    29,    31,    33,    35,
     672      37,    40,    42,    44,    46,    50,    54,    56,    63,    68,
     673      72,    80,    83,    87,    95,    98,   101,   109,   114,   116,
     674     120,   121,   123,   125,   129,   131,   134,   141,   145,   153,
     675     157,   165,   168,   171,   174,   175,   178,   180,   182,   184,
     676     187,   190,   193,   196,   199,   202,   207,   210,   215,   222,
     677     224,   229,   234,   236,   238,   240,   242,   244,   246,   248,
     678     253,   255,   259,   263,   267,   269,   273,   277,   279,   283,
     679     287,   289,   293,   297,   301,   305,   307,   311,   315,   317,
     680     321,   323,   327,   329,   333,   335,   339,   341,   345,   347,
     681     353,   358,   360,   362,   366,   367,   369,   371,   373,   375,
     682     377,   379,   381,   383,   385,   387,   389,   391,   393,   400,
     683     408,   410,   414,   416,   420,   421,   423,   425,   427,   429,
     684     431,   433,   435,   437,   439,   446,   451,   454,   462,   464,
     685     468,   470,   473,   475,   478,   480,   483,   486,   492,   500,
     686     506,   516,   522,   532,   534,   538,   540,   542,   546,   550,
     687     553,   555,   558,   561,   562,   564,   567,   571,   572,   574,
     688     577,   581,   585,   590,   591,   593,   595,   598,   604,   612,
     689     619,   626,   631,   635,   640,   643,   647,   650,   654,   658,
     690     662,   666,   672,   676,   680,   685,   687,   693,   700,   706,
     691     713,   723,   734,   744,   755,   758,   760,   763,   766,   769,
     692     771,   778,   787,   798,   811,   826,   827,   829,   830,   832,
     693     834,   838,   843,   851,   852,   854,   858,   860,   864,   866,
     694     868,   870,   874,   876,   878,   880,   884,   885,   887,   891,
     695     896,   898,   902,   904,   906,   910,   914,   918,   922,   926,
     696     929,   933,   940,   944,   948,   953,   955,   958,   961,   965,
     697     971,   979,   987,   993,  1003,  1006,  1009,  1015,  1019,  1025,
     698    1030,  1034,  1039,  1044,  1052,  1056,  1060,  1064,  1068,  1073,
     699    1080,  1082,  1084,  1086,  1088,  1090,  1092,  1094,  1096,  1097,
     700    1099,  1101,  1104,  1106,  1108,  1110,  1112,  1114,  1116,  1118,
     701    1119,  1125,  1127,  1130,  1134,  1136,  1139,  1141,  1143,  1145,
     702    1147,  1149,  1151,  1153,  1155,  1157,  1159,  1161,  1163,  1165,
     703    1167,  1169,  1171,  1173,  1175,  1177,  1179,  1181,  1183,  1186,
     704    1189,  1193,  1197,  1199,  1203,  1205,  1208,  1211,  1214,  1219,
     705    1224,  1229,  1234,  1236,  1239,  1242,  1246,  1248,  1251,  1254,
     706    1256,  1259,  1262,  1266,  1268,  1271,  1274,  1276,  1278,  1283,
     707    1286,  1287,  1294,  1302,  1305,  1308,  1311,  1312,  1315,  1318,
     708    1322,  1325,  1329,  1331,  1334,  1338,  1341,  1344,  1349,  1350,
     709    1352,  1355,  1358,  1360,  1361,  1363,  1366,  1369,  1375,  1378,
     710    1379,  1387,  1390,  1395,  1396,  1399,  1400,  1402,  1404,  1406,
     711    1412,  1418,  1424,  1426,  1432,  1438,  1448,  1450,  1456,  1457,
     712    1459,  1461,  1467,  1469,  1471,  1477,  1483,  1485,  1489,  1493,
     713    1498,  1500,  1502,  1504,  1506,  1509,  1511,  1515,  1519,  1521,
     714    1524,  1526,  1530,  1532,  1534,  1536,  1538,  1540,  1542,  1544,
     715    1546,  1548,  1550,  1552,  1555,  1557,  1559,  1561,  1564,  1565,
     716    1568,  1571,  1573,  1578,  1579,  1581,  1584,  1588,  1593,  1596,
     717    1599,  1601,  1604,  1607,  1613,  1619,  1627,  1634,  1636,  1639,
     718    1642,  1646,  1648,  1651,  1654,  1659,  1662,  1667,  1668,  1673,
     719    1676,  1678,  1680,  1682,  1683,  1686,  1692,  1698,  1712,  1714,
     720    1716,  1720,  1724,  1727,  1731,  1735,  1738,  1743,  1745,  1752,
     721    1762,  1763,  1775,  1777,  1781,  1785,  1789,  1791,  1793,  1799,
     722    1802,  1808,  1809,  1811,  1813,  1817,  1818,  1820,  1822,  1824,
     723    1826,  1827,  1834,  1837,  1839,  1842,  1847,  1850,  1854,  1858,
     724    1862,  1867,  1873,  1879,  1885,  1892,  1894,  1896,  1898,  1902,
     725    1903,  1909,  1910,  1912,  1914,  1917,  1924,  1926,  1930,  1931,
     726    1933,  1938,  1940,  1942,  1944,  1946,  1949,  1951,  1954,  1957,
     727    1959,  1963,  1966,  1970,  1974,  1977,  1982,  1987,  1991,  2000,
     728    2004,  2007,  2009,  2012,  2019,  2028,  2032,  2035,  2039,  2043,
     729    2048,  2053,  2057,  2059,  2061,  2063,  2068,  2075,  2079,  2082,
     730    2086,  2090,  2095,  2100,  2104,  2107,  2109,  2112,  2115,  2117,
     731    2121,  2124,  2128,  2132,  2135,  2140,  2145,  2149,  2156,  2165,
     732    2169,  2172,  2174,  2177,  2180,  2183,  2187,  2191,  2194,  2199,
     733    2204,  2208,  2215,  2224,  2228,  2231,  2233,  2236,  2239,  2241,
     734    2243,  2246,  2250,  2254,  2257,  2262,  2269,  2278,  2280,  2283,
     735    2286,  2288,  2291,  2294,  2298,  2302,  2304,  2309,  2314,  2318,
     736    2324,  2333,  2337,  2340,  2344,  2346,  2352,  2358,  2365,  2372,
     737    2374,  2377,  2380,  2382,  2385,  2388,  2392,  2396,  2398,  2403,
     738    2408,  2412,  2418,  2427,  2431,  2433,  2436,  2438,  2441,  2448,
     739    2454,  2461,  2469,  2477,  2479,  2482,  2485,  2487,  2490,  2493,
     740    2497,  2501,  2503,  2508,  2513,  2517,  2526,  2530,  2532,  2534,
     741    2537,  2539,  2541,  2544,  2548,  2551,  2555,  2558,  2562,  2566,
     742    2569,  2574,  2578,  2581,  2585,  2588,  2593,  2597,  2600,  2607,
     743    2614,  2621,  2629,  2631,  2634,  2636,  2638,  2640,  2643,  2647,
     744    2650,  2654,  2657,  2661,  2665,  2670,  2673,  2677,  2682,  2685,
     745    2691,  2698,  2705,  2706,  2708,  2709
    742746};
    743747
     
    745749static const yytype_int16 yyrhs[] =
    746750{
    747      303,     0,    -1,    -1,    -1,    79,    -1,    80,    -1,    81,
    748       -1,    72,    -1,    76,    -1,   140,    -1,    72,    -1,    76,
    749       -1,    72,    -1,   140,    -1,    83,    -1,    84,    -1,   142,
    750       -1,    82,    -1,   142,    82,    -1,    72,    -1,   140,    -1,
    751      109,   171,   110,    -1,   109,   175,   110,    -1,   143,    -1,
    752      144,   111,   134,   166,   135,   112,    -1,   144,   109,   145,
    753      110,    -1,   144,   113,   139,    -1,   144,   113,   111,   134,
    754      147,   135,   112,    -1,   144,   113,    79,    -1,   144,    85,
    755      139,    -1,   144,    85,   111,   134,   147,   135,   112,    -1,
    756      144,    86,    -1,   144,    87,    -1,   109,   276,   110,   114,
    757      280,   373,   115,    -1,   144,   114,   145,   115,    -1,   146,
    758       -1,   145,   116,   146,    -1,    -1,   166,    -1,   148,    -1,
    759      147,   116,   148,    -1,   149,    -1,   149,   113,   148,    -1,
    760      149,   113,   111,   134,   147,   135,   112,    -1,   149,    85,
    761      148,    -1,   149,    85,   111,   134,   147,   135,   112,    -1,
    762      139,    -1,    79,    -1,   144,    -1,   136,    -1,   141,    -1,
    763       40,   153,    -1,   151,   153,    -1,   152,   153,    -1,    86,
    764      150,    -1,    87,   150,    -1,    37,   150,    -1,    37,   109,
    765      276,   110,    -1,    66,   150,    -1,    66,   109,   276,   110,
    766       -1,    38,   109,   276,   116,   139,   110,    -1,    76,    -1,
    767       76,   109,   146,   110,    -1,    76,   109,   277,   110,    -1,
    768      117,    -1,   118,    -1,   119,    -1,   120,    -1,   121,    -1,
    769      122,    -1,   150,    -1,   109,   276,   110,   153,    -1,   109,
    770      276,   110,   169,    -1,   153,    -1,   154,   117,   153,    -1,
    771      154,   123,   153,    -1,   154,   124,   153,    -1,   154,    -1,
    772      155,   119,   154,    -1,   155,   120,   154,    -1,   155,    -1,
    773      156,    88,   155,    -1,   156,    89,   155,    -1,   156,    -1,
    774      157,   125,   156,    -1,   157,   126,   156,    -1,   157,    90,
    775      156,    -1,   157,    91,   156,    -1,   157,    -1,   158,    92,
    776      157,    -1,   158,    93,   157,    -1,   158,    -1,   159,   118,
    777      158,    -1,   159,    -1,   160,   127,   159,    -1,   160,    -1,
    778      161,   128,   160,    -1,   161,    -1,   162,    94,   161,    -1,
    779      162,    -1,   163,    95,   162,    -1,   163,    -1,   163,   129,
    780      171,   130,   164,    -1,   163,   129,   130,   164,    -1,   163,
    781      129,   171,   130,   169,    -1,   164,    -1,   164,    -1,   150,
    782      168,   166,    -1,   169,   374,    -1,    -1,   166,    -1,   131,
    783       -1,   107,    -1,    97,    -1,    98,    -1,    99,    -1,   100,
    784       -1,   101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,
    785       -1,   106,    -1,   111,   112,    -1,   111,   134,   166,   135,
    786      112,    -1,   111,   134,   116,   170,   135,   112,    -1,   111,
    787      134,   166,   116,   170,   135,   112,    -1,   167,    -1,   170,
    788      116,   167,    -1,   166,    -1,   171,   116,   166,    -1,    -1,
    789      171,    -1,   174,    -1,   175,    -1,   179,    -1,   180,    -1,
    790      192,    -1,   194,    -1,   195,    -1,   200,    -1,   127,   144,
    791      114,   145,   115,   132,    -1,    72,   130,   313,   173,    -1,
    792      114,   115,    -1,   114,   134,   134,   211,   176,   135,   115,
    793       -1,   177,    -1,   176,   134,   177,    -1,   214,    -1,    40,
    794      214,    -1,   309,    -1,   173,   135,    -1,   173,    -1,   178,
    795      173,    -1,   172,   132,    -1,    41,   109,   171,   110,   173,
    796       -1,    41,   109,   171,   110,   173,    42,   173,    -1,    43,
    797      109,   171,   110,   185,    -1,    43,   109,   171,   110,   114,
    798      134,   207,   186,   115,    -1,    53,   109,   171,   110,   185,
    799       -1,    53,   109,   171,   110,   114,   134,   207,   188,   115,
    800       -1,   165,    -1,   165,    96,   165,    -1,   311,    -1,   181,
    801       -1,   182,   116,   181,    -1,    44,   182,   130,    -1,    45,
    802      130,    -1,   183,    -1,   184,   183,    -1,   184,   173,    -1,
    803       -1,   187,    -1,   184,   178,    -1,   187,   184,   178,    -1,
    804       -1,   189,    -1,   184,   191,    -1,   184,   178,   190,    -1,
    805      189,   184,   191,    -1,   189,   184,   178,   190,    -1,    -1,
    806      191,    -1,    56,    -1,    56,   132,    -1,    47,   109,   171,
    807      110,   173,    -1,    46,   173,    47,   109,   171,   110,   132,
    808       -1,    48,   109,   134,   193,   110,   173,    -1,   172,   135,
    809      132,   172,   132,   172,    -1,   214,   172,   132,   172,    -1,
    810       51,    72,   132,    -1,    51,   117,   171,   132,    -1,    50,
    811      132,    -1,    50,    72,   132,    -1,    49,   132,    -1,    49,
    812       72,   132,    -1,    52,   172,   132,    -1,    61,   167,   132,
    813       -1,    62,   167,   132,    -1,    62,   167,    63,   166,   132,
    814       -1,    57,   175,   196,    -1,    57,   175,   198,    -1,    57,
    815      175,   196,   198,    -1,   197,    -1,    58,   109,    96,   110,
    816      175,    -1,   197,    58,   109,    96,   110,   175,    -1,    59,
    817      109,    96,   110,   175,    -1,   197,    59,   109,    96,   110,
    818      175,    -1,    58,   109,   134,   134,   199,   135,   110,   175,
    819      135,    -1,   197,    58,   109,   134,   134,   199,   135,   110,
    820      175,   135,    -1,    59,   109,   134,   134,   199,   135,   110,
    821      175,   135,    -1,   197,    59,   109,   134,   134,   199,   135,
    822      110,   175,   135,    -1,    60,   175,    -1,   227,    -1,   227,
    823      310,    -1,   227,   358,    -1,   367,   139,    -1,   367,    -1,
    824       64,   201,   109,   141,   110,   132,    -1,    64,   201,   109,
    825      141,   130,   202,   110,   132,    -1,    64,   201,   109,   141,
    826      130,   202,   130,   202,   110,   132,    -1,    64,   201,   109,
    827      141,   130,   202,   130,   202,   130,   205,   110,   132,    -1,
    828       64,   201,    51,   109,   141,   130,   130,   202,   130,   205,
    829      130,   206,   110,   132,    -1,    -1,    11,    -1,    -1,   203,
    830       -1,   204,    -1,   203,   116,   204,    -1,   141,   109,   165,
    831      110,    -1,   111,   165,   112,   141,   109,   165,   110,    -1,
    832       -1,   141,    -1,   205,   116,   141,    -1,   139,    -1,   206,
    833      116,   139,    -1,   135,    -1,   208,    -1,   214,    -1,   208,
    834      134,   214,    -1,   135,    -1,   210,    -1,   224,    -1,   210,
    835      134,   224,    -1,    -1,   212,    -1,    29,   213,   132,    -1,
    836      212,    29,   213,   132,    -1,   275,    -1,   213,   116,   275,
    837       -1,   215,    -1,   224,    -1,   216,   135,   132,    -1,   221,
    838      135,   132,    -1,   218,   135,   132,    -1,   294,   135,   132,
    839       -1,   297,   135,   132,    -1,   217,   278,    -1,   233,   217,
    840      278,    -1,   216,   135,   116,   134,   273,   278,    -1,   368,
    841      273,   312,    -1,   371,   273,   312,    -1,   229,   371,   273,
    842      312,    -1,   219,    -1,   229,   219,    -1,   233,   219,    -1,
    843      233,   229,   219,    -1,   218,   135,   116,   134,   273,    -1,
    844      111,   112,   273,   109,   134,   261,   135,   110,    -1,   371,
    845      273,   109,   134,   261,   135,   110,    -1,   220,   273,   109,
    846      134,   261,   135,   110,    -1,   111,   134,   263,   135,   112,
    847       -1,   111,   134,   263,   135,   116,   134,   264,   135,   112,
    848       -1,     3,   217,    -1,     3,   219,    -1,   221,   135,   116,
    849      134,   139,    -1,     3,   227,   310,    -1,   222,   135,   116,
    850      134,   310,    -1,   229,     3,   227,   310,    -1,   227,     3,
    851      310,    -1,   227,     3,   229,   310,    -1,     3,   139,   131,
    852      166,    -1,   223,   135,   116,   134,   139,   131,   166,    -1,
    853      225,   135,   132,    -1,   222,   135,   132,    -1,   223,   135,
    854      132,    -1,   241,   135,   132,    -1,   226,   310,   312,   278,
    855       -1,   225,   116,   313,   310,   312,   278,    -1,   237,    -1,
    856      241,    -1,   243,    -1,   284,    -1,   238,    -1,   242,    -1,
    857      244,    -1,   285,    -1,    -1,   229,    -1,   230,    -1,   229,
    858      230,    -1,   231,    -1,   315,    -1,    10,    -1,    12,    -1,
    859       11,    -1,    14,    -1,    67,    -1,    -1,    13,   109,   232,
    860      287,   110,    -1,   234,    -1,   229,   234,    -1,   233,   229,
    861      234,    -1,   235,    -1,   234,   235,    -1,     5,    -1,     7,
    862       -1,     4,    -1,     6,    -1,     8,    -1,     9,    -1,    69,
    863       -1,    71,    -1,    16,    -1,    21,    -1,    20,    -1,    18,
    864       -1,    19,    -1,    17,    -1,    22,    -1,    23,    -1,    15,
    865       -1,    25,    -1,    26,    -1,    27,    -1,    24,    -1,   238,
    866       -1,   233,   238,    -1,   237,   235,    -1,   237,   235,   229,
    867       -1,   237,   235,   238,    -1,   239,    -1,   228,   240,   228,
    868       -1,   236,    -1,   229,   236,    -1,   239,   230,    -1,   239,
    869      236,    -1,    28,   109,   277,   110,    -1,    28,   109,   171,
    870      110,    -1,    78,   109,   277,   110,    -1,    78,   109,   171,
    871      110,    -1,   242,    -1,   233,   242,    -1,   241,   235,    -1,
    872      241,   235,   229,    -1,   245,    -1,   229,   245,    -1,   242,
    873      230,    -1,   244,    -1,   233,   244,    -1,   243,   235,    -1,
    874      243,   235,   229,    -1,    74,    -1,   229,    74,    -1,   244,
    875      230,    -1,   246,    -1,   257,    -1,   248,   114,   249,   115,
    876       -1,   248,   275,    -1,    -1,   248,   275,   247,   114,   249,
    877      115,    -1,   248,   109,   293,   110,   114,   249,   115,    -1,
    878      248,   286,    -1,    31,   313,    -1,    32,   313,    -1,    -1,
    879      249,   250,    -1,   251,   132,    -1,    40,   251,   132,    -1,
    880      252,   132,    -1,    40,   252,   132,    -1,   367,    -1,   367,
    881      275,    -1,   251,   116,   275,    -1,   251,   116,    -1,   227,
    882      253,    -1,   252,   116,   313,   253,    -1,    -1,   255,    -1,
    883      319,   254,    -1,   332,   254,    -1,   358,    -1,    -1,   255,
    884       -1,   130,   165,    -1,    30,   313,    -1,   256,   114,   259,
    885      373,   115,    -1,   256,   275,    -1,    -1,   256,   275,   258,
    886      114,   259,   373,   115,    -1,   275,   260,    -1,   259,   116,
    887      275,   260,    -1,    -1,   131,   165,    -1,    -1,   262,    -1,
    888      264,    -1,   263,    -1,   263,   135,   116,   134,   264,    -1,
    889      264,   135,   116,   134,    96,    -1,   263,   135,   116,   134,
    890       96,    -1,   268,    -1,   264,   135,   116,   134,   268,    -1,
    891      263,   135,   116,   134,   268,    -1,   263,   135,   116,   134,
    892      264,   135,   116,   134,   268,    -1,   269,    -1,   264,   135,
    893      116,   134,   269,    -1,    -1,   266,    -1,   267,    -1,   267,
    894      135,   116,   134,    96,    -1,   271,    -1,   270,    -1,   267,
    895      135,   116,   134,   271,    -1,   267,   135,   116,   134,   270,
    896       -1,   270,    -1,   363,   273,   374,    -1,   371,   273,   374,
    897       -1,   229,   371,   273,   374,    -1,   219,    -1,   271,    -1,
    898      363,    -1,   371,    -1,   229,   371,    -1,   372,    -1,   226,
    899      337,   374,    -1,   226,   341,   374,    -1,   226,    -1,   226,
    900      352,    -1,   139,    -1,   272,   116,   139,    -1,   137,    -1,
    901       74,    -1,    75,    -1,   138,    -1,    74,    -1,    75,    -1,
    902      139,    -1,    74,    -1,    75,    -1,   367,    -1,   227,    -1,
    903      227,   358,    -1,   367,    -1,   372,    -1,   227,    -1,   227,
    904      346,    -1,    -1,   131,   279,    -1,   107,   279,    -1,   166,
    905       -1,   114,   280,   373,   115,    -1,    -1,   279,    -1,   281,
    906      279,    -1,   280,   116,   279,    -1,   280,   116,   281,   279,
    907       -1,   282,   130,    -1,   275,   130,    -1,   283,    -1,   282,
    908      283,    -1,   113,   275,    -1,   111,   134,   166,   135,   112,
    909       -1,   111,   134,   311,   135,   112,    -1,   111,   134,   165,
    910       96,   165,   135,   112,    -1,   113,   111,   134,   147,   135,
    911      112,    -1,   285,    -1,   233,   285,    -1,   284,   235,    -1,
    912      284,   235,   229,    -1,   286,    -1,   229,   286,    -1,   285,
    913      230,    -1,    75,   109,   293,   110,    -1,   288,   374,    -1,
    914      287,   116,   288,   374,    -1,    -1,   290,   275,   289,   291,
    915       -1,   227,   337,    -1,    33,    -1,    35,    -1,    34,    -1,
    916       -1,   291,   292,    -1,   128,   275,   109,   293,   110,    -1,
    917      128,   114,   134,   299,   115,    -1,   128,   109,   134,   287,
    918      135,   110,   114,   134,   299,   115,   109,   293,   110,    -1,
    919      277,    -1,   166,    -1,   293,   116,   277,    -1,   293,   116,
    920      166,    -1,    33,   295,    -1,   234,    33,   295,    -1,   294,
    921      116,   295,    -1,   296,   291,    -1,   296,   291,   131,   277,
    922       -1,   275,    -1,   274,   109,   134,   287,   135,   110,    -1,
    923       36,   275,   109,   134,   287,   135,   110,   114,   115,    -1,
    924       -1,    36,   275,   109,   134,   287,   135,   110,   114,   298,
    925      299,   115,    -1,   300,    -1,   299,   134,   300,    -1,   301,
    926      135,   132,    -1,   302,   135,   132,    -1,   217,    -1,   219,
    927       -1,   301,   135,   116,   134,   273,    -1,   227,   310,    -1,
    928      302,   135,   116,   134,   310,    -1,    -1,   304,    -1,   306,
    929       -1,   304,   134,   306,    -1,    -1,   304,    -1,   214,    -1,
    930      308,    -1,   200,    -1,    -1,     5,    82,   307,   114,   305,
    931      115,    -1,    40,   306,    -1,   309,    -1,   324,   175,    -1,
    932      328,   134,   209,   175,    -1,   218,   175,    -1,   226,   324,
    933      175,    -1,   229,   324,   175,    -1,   233,   324,   175,    -1,
    934      233,   229,   324,   175,    -1,   226,   328,   134,   209,   175,
    935       -1,   229,   328,   134,   209,   175,    -1,   233,   328,   134,
    936      209,   175,    -1,   233,   229,   328,   134,   209,   175,    -1,
    937      319,    -1,   332,    -1,   324,    -1,   165,   122,   165,    -1,
    938       -1,    64,   109,   142,   110,   313,    -1,    -1,   314,    -1,
    939      315,    -1,   314,   315,    -1,    39,   109,   109,   316,   110,
    940      110,    -1,   317,    -1,   316,   116,   317,    -1,    -1,   318,
    941       -1,   318,   109,   172,   110,    -1,   273,    -1,   235,    -1,
    942      236,    -1,   230,    -1,   320,   313,    -1,   321,    -1,   322,
    943      313,    -1,   323,   313,    -1,   137,    -1,   109,   320,   110,
    944       -1,   151,   319,    -1,   151,   229,   319,    -1,   109,   321,
    945      110,    -1,   320,   350,    -1,   109,   321,   110,   350,    -1,
    946      109,   322,   110,   351,    -1,   109,   322,   110,    -1,   109,
    947      321,   110,   109,   134,   265,   135,   110,    -1,   109,   323,
    948      110,    -1,   325,   313,    -1,   326,    -1,   327,   313,    -1,
    949      320,   109,   134,   265,   135,   110,    -1,   109,   326,   110,
    950      109,   134,   265,   135,   110,    -1,   109,   325,   110,    -1,
    951      151,   324,    -1,   151,   229,   324,    -1,   109,   326,   110,
    952       -1,   109,   326,   110,   350,    -1,   109,   327,   110,   351,
    953       -1,   109,   327,   110,    -1,   329,    -1,   330,    -1,   331,
    954       -1,   320,   109,   272,   110,    -1,   109,   330,   110,   109,
    955      272,   110,    -1,   109,   329,   110,    -1,   151,   328,    -1,
    956      151,   229,   328,    -1,   109,   330,   110,    -1,   109,   330,
    957      110,   350,    -1,   109,   331,   110,   351,    -1,   109,   331,
    958      110,    -1,   333,   313,    -1,   334,    -1,   335,   313,    -1,
    959      336,   313,    -1,   342,    -1,   109,   333,   110,    -1,   151,
    960      332,    -1,   151,   229,   332,    -1,   109,   334,   110,    -1,
    961      333,   350,    -1,   109,   334,   110,   350,    -1,   109,   335,
    962      110,   351,    -1,   109,   335,   110,    -1,   333,   109,   134,
    963      265,   135,   110,    -1,   109,   334,   110,   109,   134,   265,
    964      135,   110,    -1,   109,   336,   110,    -1,   320,   313,    -1,
    965      338,    -1,   339,   313,    -1,   340,   313,    -1,   151,   337,
    966       -1,   151,   229,   337,    -1,   109,   338,   110,    -1,   320,
    967      356,    -1,   109,   338,   110,   350,    -1,   109,   339,   110,
    968      351,    -1,   109,   339,   110,    -1,   320,   109,   134,   265,
    969      135,   110,    -1,   109,   338,   110,   109,   134,   265,   135,
    970      110,    -1,   109,   340,   110,    -1,   342,   313,    -1,   343,
    971       -1,   344,   313,    -1,   345,   313,    -1,    74,    -1,    75,
    972       -1,   151,   341,    -1,   151,   229,   341,    -1,   109,   343,
    973      110,    -1,   342,   356,    -1,   109,   343,   110,   356,    -1,
    974      342,   109,   134,   265,   135,   110,    -1,   109,   343,   110,
    975      109,   134,   265,   135,   110,    -1,   347,    -1,   348,   313,
    976       -1,   349,   313,    -1,   151,    -1,   151,   229,    -1,   151,
    977      346,    -1,   151,   229,   346,    -1,   109,   347,   110,    -1,
    978      350,    -1,   109,   347,   110,   350,    -1,   109,   348,   110,
    979      351,    -1,   109,   348,   110,    -1,   109,   134,   265,   135,
    980      110,    -1,   109,   347,   110,   109,   134,   265,   135,   110,
    981       -1,   109,   349,   110,    -1,   111,   112,    -1,   111,   112,
    982      351,    -1,   351,    -1,   111,   134,   166,   135,   112,    -1,
    983      111,   134,   117,   135,   112,    -1,   351,   111,   134,   166,
    984      135,   112,    -1,   351,   111,   134,   117,   135,   112,    -1,
    985      353,    -1,   354,   313,    -1,   355,   313,    -1,   151,    -1,
    986      151,   229,    -1,   151,   352,    -1,   151,   229,   352,    -1,
    987      109,   353,   110,    -1,   356,    -1,   109,   353,   110,   356,
    988       -1,   109,   354,   110,   351,    -1,   109,   354,   110,    -1,
    989      109,   134,   265,   135,   110,    -1,   109,   353,   110,   109,
    990      134,   265,   135,   110,    -1,   109,   355,   110,    -1,   357,
    991       -1,   357,   351,    -1,   351,    -1,   111,   112,    -1,   111,
    992      134,   229,   117,   135,   112,    -1,   111,   134,   229,   135,
    993      112,    -1,   111,   134,   229,   166,   135,   112,    -1,   111,
    994      134,     7,   228,   166,   135,   112,    -1,   111,   134,   229,
    995        7,   166,   135,   112,    -1,   359,    -1,   360,   313,    -1,
    996      361,   313,    -1,   151,    -1,   151,   229,    -1,   151,   358,
    997       -1,   151,   229,   358,    -1,   109,   359,   110,    -1,   350,
    998       -1,   109,   359,   110,   350,    -1,   109,   360,   110,   351,
    999       -1,   109,   360,   110,    -1,   109,   359,   110,   109,   134,
    1000      265,   135,   110,    -1,   109,   361,   110,    -1,   363,    -1,
    1001      371,    -1,   229,   371,    -1,   364,    -1,   365,    -1,   151,
    1002      227,    -1,   229,   151,   227,    -1,   151,   372,    -1,   229,
    1003      151,   372,    -1,   151,   362,    -1,   229,   151,   362,    -1,
    1004      111,   112,   227,    -1,   366,   227,    -1,   111,   112,   351,
    1005      227,    -1,   366,   351,   227,    -1,   351,   227,    -1,   111,
    1006      112,   364,    -1,   366,   364,    -1,   111,   112,   351,   364,
    1007       -1,   366,   351,   364,    -1,   351,   364,    -1,   111,   134,
    1008      229,   117,   135,   112,    -1,   111,   134,   229,   166,   135,
    1009      112,    -1,   111,   134,   233,   166,   135,   112,    -1,   111,
    1010      134,   233,   229,   166,   135,   112,    -1,   371,    -1,   229,
    1011      371,    -1,   368,    -1,   369,    -1,   370,    -1,   151,   227,
    1012       -1,   229,   151,   227,    -1,   151,   372,    -1,   229,   151,
    1013      372,    -1,   151,   367,    -1,   229,   151,   367,    -1,   111,
    1014      112,   227,    -1,   111,   112,   351,   227,    -1,   351,   227,
    1015       -1,   111,   112,   369,    -1,   111,   112,   351,   369,    -1,
    1016      351,   369,    -1,   111,   134,   264,   135,   112,    -1,   111,
    1017      112,   109,   261,   110,    -1,   371,   109,   134,   261,   135,
    1018      110,    -1,   220,   109,   134,   261,   135,   110,    -1,    -1,
    1019      116,    -1,    -1,   131,   166,    -1
     751     306,     0,    -1,    -1,    -1,    79,    -1,    82,    -1,    83,
     752      -1,    84,    -1,    80,    -1,    72,    -1,    76,    -1,   142,
     753      -1,    72,    -1,    76,    -1,    72,    -1,   142,    -1,    85,
     754      -1,    86,    -1,   144,    -1,    81,    -1,   144,    81,    -1,
     755      72,    -1,   142,    -1,   172,    -1,   111,   174,   112,    -1,
     756     111,   178,   112,    -1,   145,    -1,   146,   113,   136,   169,
     757     137,   114,    -1,   146,   111,   147,   112,    -1,   146,   115,
     758     141,    -1,   146,   115,   113,   136,   149,   137,   114,    -1,
     759     146,    83,    -1,   146,    87,   141,    -1,   146,    87,   113,
     760     136,   149,   137,   114,    -1,   146,    88,    -1,   146,    89,
     761      -1,   111,   279,   112,   116,   283,   376,   117,    -1,   146,
     762     116,   147,   117,    -1,   148,    -1,   147,   118,   148,    -1,
     763      -1,   169,    -1,   150,    -1,   149,   118,   150,    -1,   151,
     764      -1,    82,   150,    -1,    82,   113,   136,   149,   137,   114,
     765      -1,   151,   115,   150,    -1,   151,   115,   113,   136,   149,
     766     137,   114,    -1,   151,    87,   150,    -1,   151,    87,   113,
     767     136,   149,   137,   114,    -1,    79,   152,    -1,    84,   152,
     768      -1,   141,   152,    -1,    -1,   152,    83,    -1,   146,    -1,
     769     138,    -1,   143,    -1,    40,   156,    -1,   154,   156,    -1,
     770     155,   156,    -1,    88,   153,    -1,    89,   153,    -1,    37,
     771     153,    -1,    37,   111,   279,   112,    -1,    66,   153,    -1,
     772      66,   111,   279,   112,    -1,    38,   111,   279,   118,   141,
     773     112,    -1,    76,    -1,    76,   111,   148,   112,    -1,    76,
     774     111,   280,   112,    -1,   119,    -1,   120,    -1,   121,    -1,
     775     122,    -1,   123,    -1,   124,    -1,   153,    -1,   111,   279,
     776     112,   156,    -1,   156,    -1,   157,   119,   156,    -1,   157,
     777     125,   156,    -1,   157,   126,   156,    -1,   157,    -1,   158,
     778     121,   157,    -1,   158,   122,   157,    -1,   158,    -1,   159,
     779      90,   158,    -1,   159,    91,   158,    -1,   159,    -1,   160,
     780     127,   159,    -1,   160,   128,   159,    -1,   160,    92,   159,
     781      -1,   160,    93,   159,    -1,   160,    -1,   161,    94,   160,
     782      -1,   161,    95,   160,    -1,   161,    -1,   162,   120,   161,
     783      -1,   162,    -1,   163,   129,   162,    -1,   163,    -1,   164,
     784     130,   163,    -1,   164,    -1,   165,    96,   164,    -1,   165,
     785      -1,   166,    97,   165,    -1,   166,    -1,   166,   131,   174,
     786     132,   167,    -1,   166,   131,   132,   167,    -1,   167,    -1,
     787     167,    -1,   153,   171,   169,    -1,    -1,   169,    -1,   133,
     788      -1,   109,    -1,    99,    -1,   100,    -1,   101,    -1,   102,
     789      -1,   103,    -1,   104,    -1,   105,    -1,   106,    -1,   107,
     790      -1,   108,    -1,   113,   136,   118,   173,   137,   114,    -1,
     791     113,   136,   169,   118,   173,   137,   114,    -1,   170,    -1,
     792     173,   118,   170,    -1,   169,    -1,   174,   118,   169,    -1,
     793      -1,   174,    -1,   177,    -1,   178,    -1,   182,    -1,   183,
     794      -1,   195,    -1,   197,    -1,   198,    -1,   203,    -1,   129,
     795     146,   116,   147,   117,   134,    -1,    72,   132,   316,   176,
     796      -1,   116,   117,    -1,   116,   136,   136,   214,   179,   137,
     797     117,    -1,   180,    -1,   179,   136,   180,    -1,   217,    -1,
     798      40,   217,    -1,   312,    -1,   176,   137,    -1,   176,    -1,
     799     181,   176,    -1,   175,   134,    -1,    41,   111,   174,   112,
     800     176,    -1,    41,   111,   174,   112,   176,    42,   176,    -1,
     801      43,   111,   174,   112,   188,    -1,    43,   111,   174,   112,
     802     116,   136,   210,   189,   117,    -1,    53,   111,   174,   112,
     803     188,    -1,    53,   111,   174,   112,   116,   136,   210,   191,
     804     117,    -1,   168,    -1,   168,    98,   168,    -1,   314,    -1,
     805     184,    -1,   185,   118,   184,    -1,    44,   185,   132,    -1,
     806      45,   132,    -1,   186,    -1,   187,   186,    -1,   187,   176,
     807      -1,    -1,   190,    -1,   187,   181,    -1,   190,   187,   181,
     808      -1,    -1,   192,    -1,   187,   194,    -1,   187,   181,   193,
     809      -1,   192,   187,   194,    -1,   192,   187,   181,   193,    -1,
     810      -1,   194,    -1,    56,    -1,    56,   134,    -1,    47,   111,
     811     174,   112,   176,    -1,    46,   176,    47,   111,   174,   112,
     812     134,    -1,    48,   111,   136,   196,   112,   176,    -1,   175,
     813     137,   134,   175,   134,   175,    -1,   217,   175,   134,   175,
     814      -1,    51,    72,   134,    -1,    51,   119,   174,   134,    -1,
     815      50,   134,    -1,    50,    72,   134,    -1,    49,   134,    -1,
     816      49,    72,   134,    -1,    52,   175,   134,    -1,    61,   170,
     817     134,    -1,    62,   170,   134,    -1,    62,   170,    63,   169,
     818     134,    -1,    57,   178,   199,    -1,    57,   178,   201,    -1,
     819      57,   178,   199,   201,    -1,   200,    -1,    58,   111,    98,
     820     112,   178,    -1,   200,    58,   111,    98,   112,   178,    -1,
     821      59,   111,    98,   112,   178,    -1,   200,    59,   111,    98,
     822     112,   178,    -1,    58,   111,   136,   136,   202,   137,   112,
     823     178,   137,    -1,   200,    58,   111,   136,   136,   202,   137,
     824     112,   178,   137,    -1,    59,   111,   136,   136,   202,   137,
     825     112,   178,   137,    -1,   200,    59,   111,   136,   136,   202,
     826     137,   112,   178,   137,    -1,    60,   178,    -1,   230,    -1,
     827     230,   313,    -1,   230,   361,    -1,   370,   141,    -1,   370,
     828      -1,    64,   204,   111,   143,   112,   134,    -1,    64,   204,
     829     111,   143,   132,   205,   112,   134,    -1,    64,   204,   111,
     830     143,   132,   205,   132,   205,   112,   134,    -1,    64,   204,
     831     111,   143,   132,   205,   132,   205,   132,   208,   112,   134,
     832      -1,    64,   204,    51,   111,   143,   132,   132,   205,   132,
     833     208,   132,   209,   112,   134,    -1,    -1,    11,    -1,    -1,
     834     206,    -1,   207,    -1,   206,   118,   207,    -1,   143,   111,
     835     168,   112,    -1,   113,   168,   114,   143,   111,   168,   112,
     836      -1,    -1,   143,    -1,   208,   118,   143,    -1,   141,    -1,
     837     209,   118,   141,    -1,   137,    -1,   211,    -1,   217,    -1,
     838     211,   136,   217,    -1,   137,    -1,   213,    -1,   227,    -1,
     839     213,   136,   227,    -1,    -1,   215,    -1,    29,   216,   134,
     840      -1,   215,    29,   216,   134,    -1,   278,    -1,   216,   118,
     841     278,    -1,   218,    -1,   227,    -1,   219,   137,   134,    -1,
     842     224,   137,   134,    -1,   221,   137,   134,    -1,   297,   137,
     843     134,    -1,   300,   137,   134,    -1,   220,   281,    -1,   236,
     844     220,   281,    -1,   219,   137,   118,   136,   276,   281,    -1,
     845     371,   276,   315,    -1,   374,   276,   315,    -1,   232,   374,
     846     276,   315,    -1,   222,    -1,   232,   222,    -1,   236,   222,
     847      -1,   236,   232,   222,    -1,   221,   137,   118,   136,   276,
     848      -1,   374,   276,   111,   136,   264,   137,   112,    -1,   223,
     849     276,   111,   136,   264,   137,   112,    -1,   113,   136,   266,
     850     137,   114,    -1,   113,   136,   266,   137,   118,   136,   267,
     851     137,   114,    -1,     3,   220,    -1,     3,   222,    -1,   224,
     852     137,   118,   136,   141,    -1,     3,   230,   313,    -1,   225,
     853     137,   118,   136,   313,    -1,   232,     3,   230,   313,    -1,
     854     230,     3,   313,    -1,   230,     3,   232,   313,    -1,     3,
     855     141,   133,   169,    -1,   226,   137,   118,   136,   141,   133,
     856     169,    -1,   228,   137,   134,    -1,   225,   137,   134,    -1,
     857     226,   137,   134,    -1,   244,   137,   134,    -1,   229,   313,
     858     315,   281,    -1,   228,   118,   316,   313,   315,   281,    -1,
     859     240,    -1,   244,    -1,   246,    -1,   287,    -1,   241,    -1,
     860     245,    -1,   247,    -1,   288,    -1,    -1,   232,    -1,   233,
     861      -1,   232,   233,    -1,   234,    -1,   318,    -1,    10,    -1,
     862      12,    -1,    11,    -1,    14,    -1,    67,    -1,    -1,    13,
     863     111,   235,   290,   112,    -1,   237,    -1,   232,   237,    -1,
     864     236,   232,   237,    -1,   238,    -1,   237,   238,    -1,     5,
     865      -1,     7,    -1,     4,    -1,     6,    -1,     8,    -1,     9,
     866      -1,    69,    -1,    71,    -1,    16,    -1,    21,    -1,    20,
     867      -1,    18,    -1,    19,    -1,    17,    -1,    22,    -1,    23,
     868      -1,    15,    -1,    25,    -1,    26,    -1,    27,    -1,    24,
     869      -1,   241,    -1,   236,   241,    -1,   240,   238,    -1,   240,
     870     238,   232,    -1,   240,   238,   241,    -1,   242,    -1,   231,
     871     243,   231,    -1,   239,    -1,   232,   239,    -1,   242,   233,
     872      -1,   242,   239,    -1,    28,   111,   280,   112,    -1,    28,
     873     111,   174,   112,    -1,    78,   111,   280,   112,    -1,    78,
     874     111,   174,   112,    -1,   245,    -1,   236,   245,    -1,   244,
     875     238,    -1,   244,   238,   232,    -1,   248,    -1,   232,   248,
     876      -1,   245,   233,    -1,   247,    -1,   236,   247,    -1,   246,
     877     238,    -1,   246,   238,   232,    -1,    74,    -1,   232,    74,
     878      -1,   247,   233,    -1,   249,    -1,   260,    -1,   251,   116,
     879     252,   117,    -1,   251,   278,    -1,    -1,   251,   278,   250,
     880     116,   252,   117,    -1,   251,   111,   296,   112,   116,   252,
     881     117,    -1,   251,   289,    -1,    31,   316,    -1,    32,   316,
     882      -1,    -1,   252,   253,    -1,   254,   134,    -1,    40,   254,
     883     134,    -1,   255,   134,    -1,    40,   255,   134,    -1,   370,
     884      -1,   370,   278,    -1,   254,   118,   278,    -1,   254,   118,
     885      -1,   230,   256,    -1,   255,   118,   316,   256,    -1,    -1,
     886     258,    -1,   322,   257,    -1,   335,   257,    -1,   361,    -1,
     887      -1,   258,    -1,   132,   168,    -1,    30,   316,    -1,   259,
     888     116,   262,   376,   117,    -1,   259,   278,    -1,    -1,   259,
     889     278,   261,   116,   262,   376,   117,    -1,   278,   263,    -1,
     890     262,   118,   278,   263,    -1,    -1,   133,   168,    -1,    -1,
     891     265,    -1,   267,    -1,   266,    -1,   266,   137,   118,   136,
     892     267,    -1,   267,   137,   118,   136,    98,    -1,   266,   137,
     893     118,   136,    98,    -1,   271,    -1,   267,   137,   118,   136,
     894     271,    -1,   266,   137,   118,   136,   271,    -1,   266,   137,
     895     118,   136,   267,   137,   118,   136,   271,    -1,   272,    -1,
     896     267,   137,   118,   136,   272,    -1,    -1,   269,    -1,   270,
     897      -1,   270,   137,   118,   136,    98,    -1,   274,    -1,   273,
     898      -1,   270,   137,   118,   136,   274,    -1,   270,   137,   118,
     899     136,   273,    -1,   273,    -1,   366,   276,   377,    -1,   374,
     900     276,   377,    -1,   232,   374,   276,   377,    -1,   222,    -1,
     901     274,    -1,   366,    -1,   374,    -1,   232,   374,    -1,   375,
     902      -1,   229,   340,   377,    -1,   229,   344,   377,    -1,   229,
     903      -1,   229,   355,    -1,   141,    -1,   275,   118,   141,    -1,
     904     139,    -1,    74,    -1,    75,    -1,   140,    -1,    74,    -1,
     905      75,    -1,   141,    -1,    74,    -1,    75,    -1,   370,    -1,
     906     230,    -1,   230,   361,    -1,   370,    -1,   375,    -1,   230,
     907      -1,   230,   349,    -1,    -1,   133,   282,    -1,   109,   282,
     908      -1,   169,    -1,   116,   283,   376,   117,    -1,    -1,   282,
     909      -1,   284,   282,    -1,   283,   118,   282,    -1,   283,   118,
     910     284,   282,    -1,   285,   132,    -1,   278,   132,    -1,   286,
     911      -1,   285,   286,    -1,   115,   278,    -1,   113,   136,   169,
     912     137,   114,    -1,   113,   136,   314,   137,   114,    -1,   113,
     913     136,   168,    98,   168,   137,   114,    -1,   115,   113,   136,
     914     149,   137,   114,    -1,   288,    -1,   236,   288,    -1,   287,
     915     238,    -1,   287,   238,   232,    -1,   289,    -1,   232,   289,
     916      -1,   288,   233,    -1,    75,   111,   296,   112,    -1,   291,
     917     377,    -1,   290,   118,   291,   377,    -1,    -1,   293,   278,
     918     292,   294,    -1,   230,   340,    -1,    33,    -1,    35,    -1,
     919      34,    -1,    -1,   294,   295,    -1,   130,   278,   111,   296,
     920     112,    -1,   130,   116,   136,   302,   117,    -1,   130,   111,
     921     136,   290,   137,   112,   116,   136,   302,   117,   111,   296,
     922     112,    -1,   280,    -1,   169,    -1,   296,   118,   280,    -1,
     923     296,   118,   169,    -1,    33,   298,    -1,   237,    33,   298,
     924      -1,   297,   118,   298,    -1,   299,   294,    -1,   299,   294,
     925     133,   280,    -1,   278,    -1,   277,   111,   136,   290,   137,
     926     112,    -1,    36,   278,   111,   136,   290,   137,   112,   116,
     927     117,    -1,    -1,    36,   278,   111,   136,   290,   137,   112,
     928     116,   301,   302,   117,    -1,   303,    -1,   302,   136,   303,
     929      -1,   304,   137,   134,    -1,   305,   137,   134,    -1,   220,
     930      -1,   222,    -1,   304,   137,   118,   136,   276,    -1,   230,
     931     313,    -1,   305,   137,   118,   136,   313,    -1,    -1,   307,
     932      -1,   309,    -1,   307,   136,   309,    -1,    -1,   307,    -1,
     933     217,    -1,   311,    -1,   203,    -1,    -1,     5,    81,   310,
     934     116,   308,   117,    -1,    40,   309,    -1,   312,    -1,   327,
     935     178,    -1,   331,   136,   212,   178,    -1,   221,   178,    -1,
     936     229,   327,   178,    -1,   232,   327,   178,    -1,   236,   327,
     937     178,    -1,   236,   232,   327,   178,    -1,   229,   331,   136,
     938     212,   178,    -1,   232,   331,   136,   212,   178,    -1,   236,
     939     331,   136,   212,   178,    -1,   236,   232,   331,   136,   212,
     940     178,    -1,   322,    -1,   335,    -1,   327,    -1,   168,   124,
     941     168,    -1,    -1,    64,   111,   144,   112,   316,    -1,    -1,
     942     317,    -1,   318,    -1,   317,   318,    -1,    39,   111,   111,
     943     319,   112,   112,    -1,   320,    -1,   319,   118,   320,    -1,
     944      -1,   321,    -1,   321,   111,   175,   112,    -1,   276,    -1,
     945     238,    -1,   239,    -1,   233,    -1,   323,   316,    -1,   324,
     946      -1,   325,   316,    -1,   326,   316,    -1,   139,    -1,   111,
     947     323,   112,    -1,   154,   322,    -1,   154,   232,   322,    -1,
     948     111,   324,   112,    -1,   323,   353,    -1,   111,   324,   112,
     949     353,    -1,   111,   325,   112,   354,    -1,   111,   325,   112,
     950      -1,   111,   324,   112,   111,   136,   268,   137,   112,    -1,
     951     111,   326,   112,    -1,   328,   316,    -1,   329,    -1,   330,
     952     316,    -1,   323,   111,   136,   268,   137,   112,    -1,   111,
     953     329,   112,   111,   136,   268,   137,   112,    -1,   111,   328,
     954     112,    -1,   154,   327,    -1,   154,   232,   327,    -1,   111,
     955     329,   112,    -1,   111,   329,   112,   353,    -1,   111,   330,
     956     112,   354,    -1,   111,   330,   112,    -1,   332,    -1,   333,
     957      -1,   334,    -1,   323,   111,   275,   112,    -1,   111,   333,
     958     112,   111,   275,   112,    -1,   111,   332,   112,    -1,   154,
     959     331,    -1,   154,   232,   331,    -1,   111,   333,   112,    -1,
     960     111,   333,   112,   353,    -1,   111,   334,   112,   354,    -1,
     961     111,   334,   112,    -1,   336,   316,    -1,   337,    -1,   338,
     962     316,    -1,   339,   316,    -1,   345,    -1,   111,   336,   112,
     963      -1,   154,   335,    -1,   154,   232,   335,    -1,   111,   337,
     964     112,    -1,   336,   353,    -1,   111,   337,   112,   353,    -1,
     965     111,   338,   112,   354,    -1,   111,   338,   112,    -1,   336,
     966     111,   136,   268,   137,   112,    -1,   111,   337,   112,   111,
     967     136,   268,   137,   112,    -1,   111,   339,   112,    -1,   323,
     968     316,    -1,   341,    -1,   342,   316,    -1,   343,   316,    -1,
     969     154,   340,    -1,   154,   232,   340,    -1,   111,   341,   112,
     970      -1,   323,   359,    -1,   111,   341,   112,   353,    -1,   111,
     971     342,   112,   354,    -1,   111,   342,   112,    -1,   323,   111,
     972     136,   268,   137,   112,    -1,   111,   341,   112,   111,   136,
     973     268,   137,   112,    -1,   111,   343,   112,    -1,   345,   316,
     974      -1,   346,    -1,   347,   316,    -1,   348,   316,    -1,    74,
     975      -1,    75,    -1,   154,   344,    -1,   154,   232,   344,    -1,
     976     111,   346,   112,    -1,   345,   359,    -1,   111,   346,   112,
     977     359,    -1,   345,   111,   136,   268,   137,   112,    -1,   111,
     978     346,   112,   111,   136,   268,   137,   112,    -1,   350,    -1,
     979     351,   316,    -1,   352,   316,    -1,   154,    -1,   154,   232,
     980      -1,   154,   349,    -1,   154,   232,   349,    -1,   111,   350,
     981     112,    -1,   353,    -1,   111,   350,   112,   353,    -1,   111,
     982     351,   112,   354,    -1,   111,   351,   112,    -1,   111,   136,
     983     268,   137,   112,    -1,   111,   350,   112,   111,   136,   268,
     984     137,   112,    -1,   111,   352,   112,    -1,   113,   114,    -1,
     985     113,   114,   354,    -1,   354,    -1,   113,   136,   169,   137,
     986     114,    -1,   113,   136,   119,   137,   114,    -1,   354,   113,
     987     136,   169,   137,   114,    -1,   354,   113,   136,   119,   137,
     988     114,    -1,   356,    -1,   357,   316,    -1,   358,   316,    -1,
     989     154,    -1,   154,   232,    -1,   154,   355,    -1,   154,   232,
     990     355,    -1,   111,   356,   112,    -1,   359,    -1,   111,   356,
     991     112,   359,    -1,   111,   357,   112,   354,    -1,   111,   357,
     992     112,    -1,   111,   136,   268,   137,   112,    -1,   111,   356,
     993     112,   111,   136,   268,   137,   112,    -1,   111,   358,   112,
     994      -1,   360,    -1,   360,   354,    -1,   354,    -1,   113,   114,
     995      -1,   113,   136,   232,   119,   137,   114,    -1,   113,   136,
     996     232,   137,   114,    -1,   113,   136,   232,   169,   137,   114,
     997      -1,   113,   136,     7,   231,   169,   137,   114,    -1,   113,
     998     136,   232,     7,   169,   137,   114,    -1,   362,    -1,   363,
     999     316,    -1,   364,   316,    -1,   154,    -1,   154,   232,    -1,
     1000     154,   361,    -1,   154,   232,   361,    -1,   111,   362,   112,
     1001      -1,   353,    -1,   111,   362,   112,   353,    -1,   111,   363,
     1002     112,   354,    -1,   111,   363,   112,    -1,   111,   362,   112,
     1003     111,   136,   268,   137,   112,    -1,   111,   364,   112,    -1,
     1004     366,    -1,   374,    -1,   232,   374,    -1,   367,    -1,   368,
     1005      -1,   154,   230,    -1,   232,   154,   230,    -1,   154,   375,
     1006      -1,   232,   154,   375,    -1,   154,   365,    -1,   232,   154,
     1007     365,    -1,   113,   114,   230,    -1,   369,   230,    -1,   113,
     1008     114,   354,   230,    -1,   369,   354,   230,    -1,   354,   230,
     1009      -1,   113,   114,   367,    -1,   369,   367,    -1,   113,   114,
     1010     354,   367,    -1,   369,   354,   367,    -1,   354,   367,    -1,
     1011     113,   136,   232,   119,   137,   114,    -1,   113,   136,   232,
     1012     169,   137,   114,    -1,   113,   136,   236,   169,   137,   114,
     1013      -1,   113,   136,   236,   232,   169,   137,   114,    -1,   374,
     1014      -1,   232,   374,    -1,   371,    -1,   372,    -1,   373,    -1,
     1015     154,   230,    -1,   232,   154,   230,    -1,   154,   375,    -1,
     1016     232,   154,   375,    -1,   154,   370,    -1,   232,   154,   370,
     1017      -1,   113,   114,   230,    -1,   113,   114,   354,   230,    -1,
     1018     354,   230,    -1,   113,   114,   372,    -1,   113,   114,   354,
     1019     372,    -1,   354,   372,    -1,   113,   136,   267,   137,   114,
     1020      -1,   374,   111,   136,   264,   137,   112,    -1,   223,   111,
     1021     136,   264,   137,   112,    -1,    -1,   118,    -1,    -1,   133,
     1022     169,    -1
    10201023};
    10211024
     
    10231026static const yytype_uint16 yyrline[] =
    10241027{
    1025        0,   301,   301,   305,   312,   313,   314,   318,   319,   320,
    1026      324,   325,   329,   330,   334,   335,   339,   343,   344,   355,
    1027      357,   359,   361,   366,   367,   373,   377,   379,   381,   383,
    1028      385,   387,   389,   391,   393,   402,   403,   409,   410,   414,
    1029      415,   419,   422,   424,   426,   428,   433,   436,   441,   444,
    1030      446,   448,   453,   466,   468,   470,   472,   474,   476,   478,
    1031      480,   482,   484,   486,   493,   494,   500,   501,   502,   503,
    1032      507,   508,   510,   515,   516,   518,   520,   525,   526,   528,
    1033      533,   534,   536,   541,   542,   544,   546,   548,   553,   554,
    1034      556,   561,   562,   567,   568,   573,   574,   579,   580,   585,
    1035      586,   591,   592,   595,   597,   602,   607,   608,   610,   616,
    1036      617,   621,   622,   623,   624,   625,   626,   627,   628,   629,
    1037      630,   631,   632,   638,   640,   642,   644,   649,   650,   655,
    1038      656,   662,   663,   669,   670,   671,   672,   673,   674,   675,
    1039      676,   677,   687,   694,   696,   706,   707,   712,   714,   720,
    1040      722,   726,   727,   732,   737,   740,   742,   744,   754,   756,
    1041      767,   768,   770,   774,   776,   780,   781,   786,   787,   791,
    1042      796,   797,   801,   803,   809,   810,   814,   816,   818,   820,
    1043      826,   827,   831,   833,   838,   840,   842,   847,   849,   854,
    1044      856,   860,   863,   867,   870,   874,   876,   878,   880,   885,
    1045      887,   889,   894,   896,   898,   900,   902,   907,   909,   911,
    1046      913,   918,   930,   931,   936,   938,   943,   947,   949,   951,
    1047      953,   955,   961,   962,   968,   969,   973,   974,   979,   981,
    1048      987,   988,   990,   995,  1000,  1010,  1012,  1016,  1017,  1022,
    1049     1024,  1028,  1029,  1033,  1035,  1039,  1040,  1044,  1045,  1049,
    1050     1050,  1065,  1066,  1067,  1068,  1069,  1073,  1078,  1085,  1095,
    1051     1100,  1105,  1113,  1118,  1123,  1128,  1133,  1141,  1163,  1168,
    1052     1175,  1177,  1184,  1189,  1194,  1205,  1210,  1215,  1220,  1225,
    1053     1234,  1239,  1247,  1248,  1249,  1250,  1256,  1261,  1269,  1270,
    1054     1271,  1272,  1276,  1277,  1278,  1279,  1284,  1285,  1294,  1295,
    1055     1300,  1301,  1306,  1308,  1310,  1312,  1314,  1317,  1316,  1328,
    1056     1329,  1331,  1341,  1342,  1347,  1349,  1351,  1353,  1355,  1358,
    1057     1360,  1363,  1368,  1370,  1372,  1374,  1376,  1378,  1380,  1382,
    1058     1384,  1386,  1388,  1390,  1392,  1398,  1399,  1401,  1403,  1405,
    1059     1410,  1411,  1417,  1418,  1420,  1422,  1427,  1429,  1431,  1433,
    1060     1438,  1439,  1441,  1443,  1448,  1449,  1451,  1456,  1457,  1459,
    1061     1461,  1466,  1468,  1470,  1475,  1476,  1480,  1482,  1488,  1487,
    1062     1491,  1493,  1498,  1500,  1506,  1507,  1512,  1513,  1515,  1516,
    1063     1525,  1526,  1528,  1530,  1535,  1537,  1543,  1544,  1546,  1549,
    1064     1552,  1557,  1558,  1563,  1568,  1572,  1574,  1580,  1579,  1586,
    1065     1588,  1594,  1595,  1603,  1604,  1608,  1609,  1610,  1612,  1614,
    1066     1621,  1622,  1624,  1626,  1631,  1632,  1638,  1639,  1643,  1644,
    1067     1649,  1650,  1651,  1653,  1661,  1662,  1664,  1667,  1669,  1673,
    1068     1674,  1675,  1677,  1679,  1683,  1688,  1696,  1697,  1706,  1708,
    1069     1713,  1714,  1715,  1719,  1720,  1721,  1725,  1726,  1727,  1731,
    1070     1732,  1733,  1738,  1739,  1740,  1741,  1747,  1748,  1750,  1755,
    1071     1756,  1761,  1762,  1763,  1764,  1765,  1780,  1781,  1786,  1787,
    1072     1793,  1795,  1798,  1800,  1802,  1825,  1826,  1828,  1830,  1835,
    1073     1836,  1838,  1843,  1848,  1849,  1855,  1854,  1858,  1862,  1864,
    1074     1866,  1872,  1873,  1878,  1883,  1885,  1890,  1892,  1893,  1895,
    1075     1900,  1902,  1904,  1909,  1911,  1916,  1921,  1929,  1935,  1934,
    1076     1948,  1949,  1954,  1955,  1959,  1964,  1969,  1977,  1982,  1993,
    1077     1994,  1999,  2000,  2006,  2007,  2011,  2012,  2013,  2016,  2015,
    1078     2026,  2035,  2041,  2047,  2056,  2062,  2068,  2074,  2080,  2088,
    1079     2094,  2102,  2108,  2117,  2118,  2119,  2123,  2127,  2129,  2134,
    1080     2135,  2139,  2140,  2145,  2151,  2152,  2155,  2157,  2158,  2162,
    1081     2163,  2164,  2165,  2199,  2201,  2202,  2204,  2209,  2214,  2219,
    1082     2221,  2223,  2228,  2230,  2232,  2234,  2239,  2241,  2250,  2252,
    1083     2253,  2258,  2260,  2262,  2267,  2269,  2271,  2276,  2278,  2280,
    1084     2289,  2290,  2291,  2295,  2297,  2299,  2304,  2306,  2308,  2313,
    1085     2315,  2317,  2332,  2334,  2335,  2337,  2342,  2343,  2348,  2350,
    1086     2352,  2357,  2359,  2361,  2363,  2368,  2370,  2372,  2382,  2384,
    1087     2385,  2387,  2392,  2394,  2396,  2401,  2403,  2405,  2407,  2412,
    1088     2414,  2416,  2447,  2449,  2450,  2452,  2457,  2462,  2470,  2472,
    1089     2474,  2479,  2481,  2486,  2488,  2502,  2503,  2505,  2510,  2512,
    1090     2514,  2516,  2518,  2523,  2524,  2526,  2528,  2533,  2535,  2537,
    1091     2543,  2545,  2547,  2551,  2553,  2555,  2557,  2571,  2572,  2574,
    1092     2579,  2581,  2583,  2585,  2587,  2592,  2593,  2595,  2597,  2602,
    1093     2604,  2606,  2612,  2613,  2615,  2624,  2627,  2629,  2632,  2634,
    1094     2636,  2649,  2650,  2652,  2657,  2659,  2661,  2663,  2665,  2670,
    1095     2671,  2673,  2675,  2680,  2682,  2690,  2691,  2692,  2697,  2698,
    1096     2702,  2704,  2706,  2708,  2710,  2712,  2719,  2721,  2723,  2725,
    1097     2727,  2730,  2732,  2734,  2736,  2738,  2743,  2745,  2747,  2752,
    1098     2778,  2779,  2781,  2785,  2786,  2790,  2792,  2794,  2796,  2798,
    1099     2800,  2807,  2809,  2811,  2813,  2815,  2817,  2822,  2827,  2829,
    1100     2831,  2849,  2851,  2856,  2857
     1028       0,   305,   305,   309,   316,   317,   318,   319,   320,   324,
     1029     325,   326,   330,   331,   335,   336,   340,   341,   345,   349,
     1030     350,   361,   363,   365,   366,   368,   373,   374,   380,   382,
     1031     384,   386,   388,   390,   392,   394,   396,   398,   407,   408,
     1032     414,   415,   419,   420,   424,   425,   427,   429,   431,   433,
     1033     435,   440,   442,   444,   448,   450,   454,   457,   459,   461,
     1034     466,   479,   481,   483,   485,   487,   489,   491,   493,   495,
     1035     497,   499,   506,   507,   513,   514,   515,   516,   520,   521,
     1036     528,   529,   531,   533,   538,   539,   541,   546,   547,   549,
     1037     554,   555,   557,   559,   561,   566,   567,   569,   574,   575,
     1038     580,   581,   586,   587,   592,   593,   598,   599,   604,   605,
     1039     608,   615,   620,   621,   629,   630,   634,   635,   636,   637,
     1040     638,   639,   640,   641,   642,   643,   644,   645,   655,   657,
     1041     662,   663,   668,   669,   675,   676,   682,   683,   684,   685,
     1042     686,   687,   688,   689,   690,   700,   707,   709,   719,   720,
     1043     725,   727,   733,   735,   739,   740,   745,   750,   753,   755,
     1044     757,   767,   769,   780,   781,   783,   787,   789,   793,   794,
     1045     799,   800,   804,   809,   810,   814,   816,   822,   823,   827,
     1046     829,   831,   833,   839,   840,   844,   846,   851,   853,   855,
     1047     860,   862,   867,   869,   873,   876,   880,   883,   887,   889,
     1048     891,   893,   898,   900,   902,   907,   909,   911,   913,   915,
     1049     920,   922,   924,   926,   931,   943,   944,   949,   951,   956,
     1050     960,   962,   964,   966,   968,   974,   975,   981,   982,   986,
     1051     987,   992,   994,  1000,  1001,  1003,  1008,  1013,  1023,  1025,
     1052    1029,  1030,  1035,  1037,  1041,  1042,  1046,  1048,  1052,  1053,
     1053    1057,  1058,  1062,  1063,  1078,  1079,  1080,  1081,  1082,  1086,
     1054    1091,  1098,  1108,  1113,  1118,  1126,  1131,  1136,  1141,  1146,
     1055    1176,  1181,  1188,  1190,  1197,  1202,  1207,  1218,  1223,  1228,
     1056    1233,  1238,  1247,  1252,  1260,  1261,  1262,  1263,  1269,  1274,
     1057    1282,  1283,  1284,  1285,  1289,  1290,  1291,  1292,  1297,  1298,
     1058    1307,  1308,  1313,  1314,  1319,  1321,  1323,  1325,  1327,  1330,
     1059    1329,  1341,  1342,  1344,  1354,  1355,  1360,  1362,  1364,  1366,
     1060    1368,  1371,  1373,  1376,  1381,  1383,  1385,  1387,  1389,  1391,
     1061    1393,  1395,  1397,  1399,  1401,  1403,  1405,  1411,  1412,  1414,
     1062    1416,  1418,  1423,  1424,  1430,  1431,  1433,  1435,  1440,  1442,
     1063    1444,  1446,  1451,  1452,  1454,  1456,  1461,  1462,  1464,  1469,
     1064    1470,  1472,  1474,  1479,  1481,  1483,  1488,  1489,  1493,  1495,
     1065    1501,  1500,  1504,  1506,  1511,  1513,  1519,  1520,  1525,  1526,
     1066    1528,  1529,  1538,  1539,  1541,  1543,  1548,  1550,  1556,  1557,
     1067    1559,  1562,  1565,  1570,  1571,  1576,  1581,  1585,  1587,  1593,
     1068    1592,  1599,  1601,  1607,  1608,  1616,  1617,  1621,  1622,  1623,
     1069    1625,  1627,  1634,  1635,  1637,  1639,  1644,  1645,  1651,  1652,
     1070    1656,  1657,  1662,  1663,  1664,  1666,  1674,  1675,  1677,  1680,
     1071    1682,  1686,  1687,  1688,  1690,  1692,  1696,  1701,  1709,  1710,
     1072    1719,  1721,  1726,  1727,  1728,  1732,  1733,  1734,  1738,  1739,
     1073    1740,  1744,  1745,  1746,  1751,  1752,  1753,  1754,  1760,  1761,
     1074    1763,  1768,  1769,  1774,  1775,  1776,  1777,  1778,  1793,  1794,
     1075    1799,  1800,  1806,  1808,  1811,  1813,  1815,  1838,  1839,  1841,
     1076    1843,  1848,  1849,  1851,  1856,  1861,  1862,  1868,  1867,  1871,
     1077    1875,  1877,  1879,  1885,  1886,  1891,  1896,  1898,  1903,  1905,
     1078    1906,  1908,  1913,  1915,  1917,  1922,  1924,  1929,  1934,  1942,
     1079    1948,  1947,  1961,  1962,  1967,  1968,  1972,  1977,  1982,  1990,
     1080    1995,  2006,  2007,  2012,  2013,  2019,  2020,  2024,  2025,  2026,
     1081    2029,  2028,  2039,  2048,  2054,  2060,  2069,  2075,  2081,  2087,
     1082    2093,  2101,  2107,  2115,  2121,  2130,  2131,  2132,  2136,  2140,
     1083    2142,  2147,  2148,  2152,  2153,  2158,  2164,  2165,  2168,  2170,
     1084    2171,  2175,  2176,  2177,  2178,  2212,  2214,  2215,  2217,  2222,
     1085    2227,  2232,  2234,  2236,  2241,  2243,  2245,  2247,  2252,  2254,
     1086    2263,  2265,  2266,  2271,  2273,  2275,  2280,  2282,  2284,  2289,
     1087    2291,  2293,  2302,  2303,  2304,  2308,  2310,  2312,  2317,  2319,
     1088    2321,  2326,  2328,  2330,  2345,  2347,  2348,  2350,  2355,  2356,
     1089    2361,  2363,  2365,  2370,  2372,  2374,  2376,  2381,  2383,  2385,
     1090    2395,  2397,  2398,  2400,  2405,  2407,  2409,  2414,  2416,  2418,
     1091    2420,  2425,  2427,  2429,  2460,  2462,  2463,  2465,  2470,  2475,
     1092    2483,  2485,  2487,  2492,  2494,  2499,  2501,  2515,  2516,  2518,
     1093    2523,  2525,  2527,  2529,  2531,  2536,  2537,  2539,  2541,  2546,
     1094    2548,  2550,  2556,  2558,  2560,  2564,  2566,  2568,  2570,  2584,
     1095    2585,  2587,  2592,  2594,  2596,  2598,  2600,  2605,  2606,  2608,
     1096    2610,  2615,  2617,  2619,  2625,  2626,  2628,  2637,  2640,  2642,
     1097    2645,  2647,  2649,  2662,  2663,  2665,  2670,  2672,  2674,  2676,
     1098    2678,  2683,  2684,  2686,  2688,  2693,  2695,  2703,  2704,  2705,
     1099    2710,  2711,  2715,  2717,  2719,  2721,  2723,  2725,  2732,  2734,
     1100    2736,  2738,  2740,  2743,  2745,  2747,  2749,  2751,  2756,  2758,
     1101    2760,  2765,  2791,  2792,  2794,  2798,  2799,  2803,  2805,  2807,
     1102    2809,  2811,  2813,  2820,  2822,  2824,  2826,  2828,  2830,  2835,
     1103    2842,  2844,  2862,  2864,  2869,  2870
    11011104};
    11021105#endif
     
    11191122  "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
    11201123  "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    1121   "INTEGERconstant", "FLOATINGconstant", "CHARACTERconstant",
    1122   "STRINGliteral", "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE",
    1123   "GE", "EQ", "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign",
    1124   "DIVassign", "MODassign", "PLUSassign", "MINUSassign", "LSassign",
    1125   "RSassign", "ANDassign", "ERassign", "ORassign", "ATassign", "THEN",
    1126   "'('", "')'", "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'",
    1127   "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'",
    1128   "'?'", "':'", "'='", "';'", "$accept", "push", "pop", "constant",
    1129   "identifier", "no_01_identifier", "no_attr_identifier", "zero_one",
    1130   "string_literal", "string_literal_list", "primary_expression",
    1131   "postfix_expression", "argument_expression_list", "argument_expression",
    1132   "field_list", "field", "field_name", "unary_expression",
     1124  "INTEGERconstant", "CHARACTERconstant", "STRINGliteral",
     1125  "REALDECIMALconstant", "REALFRACTIONconstant", "FLOATINGconstant",
     1126  "ZERO", "ONE", "ARROW", "ICR", "DECR", "LS", "RS", "LE", "GE", "EQ",
     1127  "NE", "ANDAND", "OROR", "ELLIPSIS", "MULTassign", "DIVassign",
     1128  "MODassign", "PLUSassign", "MINUSassign", "LSassign", "RSassign",
     1129  "ANDassign", "ERassign", "ORassign", "ATassign", "THEN", "'('", "')'",
     1130  "'['", "']'", "'.'", "'{'", "'}'", "','", "'*'", "'&'", "'+'", "'-'",
     1131  "'!'", "'~'", "'/'", "'%'", "'<'", "'>'", "'^'", "'|'", "'?'", "':'",
     1132  "'='", "';'", "$accept", "push", "pop", "constant", "identifier",
     1133  "no_01_identifier", "no_attr_identifier", "zero_one", "string_literal",
     1134  "string_literal_list", "primary_expression", "postfix_expression",
     1135  "argument_expression_list", "argument_expression", "field_list", "field",
     1136  "field_name", "fraction_constants", "unary_expression",
    11331137  "ptrref_operator", "unary_operator", "cast_expression",
    11341138  "multiplicative_expression", "additive_expression", "shift_expression",
     
    12301234     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12311235     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    1232      355,   356,   357,   358,   359,   360,   361,   362,   363,    40,
    1233       41,    91,    93,    46,   123,   125,    44,    42,    38,    43,
    1234       45,    33,   126,    47,    37,    60,    62,    94,   124,    63,
    1235       58,    61,    59
     1236     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     1237     365,    40,    41,    91,    93,    46,   123,   125,    44,    42,
     1238      38,    43,    45,    33,   126,    47,    37,    60,    62,    94,
     1239     124,    63,    58,    61,    59
    12361240};
    12371241# endif
     
    12401244static const yytype_uint16 yyr1[] =
    12411245{
    1242        0,   133,   134,   135,   136,   136,   136,   137,   137,   137,
    1243      138,   138,   139,   139,   140,   140,   141,   142,   142,   143,
    1244      143,   143,   143,   144,   144,   144,   144,   144,   144,   144,
    1245      144,   144,   144,   144,   144,   145,   145,   146,   146,   147,
    1246      147,   148,   148,   148,   148,   148,   149,   149,   150,   150,
    1247      150,   150,   150,   150,   150,   150,   150,   150,   150,   150,
    1248      150,   150,   150,   150,   151,   151,   152,   152,   152,   152,
    1249      153,   153,   153,   154,   154,   154,   154,   155,   155,   155,
    1250      156,   156,   156,   157,   157,   157,   157,   157,   158,   158,
    1251      158,   159,   159,   160,   160,   161,   161,   162,   162,   163,
    1252      163,   164,   164,   164,   164,   165,   166,   166,   166,   167,
    1253      167,   168,   168,   168,   168,   168,   168,   168,   168,   168,
    1254      168,   168,   168,   169,   169,   169,   169,   170,   170,   171,
    1255      171,   172,   172,   173,   173,   173,   173,   173,   173,   173,
    1256      173,   173,   174,   175,   175,   176,   176,   177,   177,   177,
    1257      177,   178,   178,   179,   180,   180,   180,   180,   180,   180,
    1258      181,   181,   181,   182,   182,   183,   183,   184,   184,   185,
    1259      186,   186,   187,   187,   188,   188,   189,   189,   189,   189,
    1260      190,   190,   191,   191,   192,   192,   192,   193,   193,   194,
    1261      194,   194,   194,   194,   194,   194,   194,   194,   194,   195,
    1262      195,   195,   196,   196,   196,   196,   196,   197,   197,   197,
    1263      197,   198,   199,   199,   199,   199,   199,   200,   200,   200,
    1264      200,   200,   201,   201,   202,   202,   203,   203,   204,   204,
    1265      205,   205,   205,   206,   206,   207,   207,   208,   208,   209,
    1266      209,   210,   210,   211,   211,   212,   212,   213,   213,   214,
    1267      214,   215,   215,   215,   215,   215,   216,   216,   216,   217,
    1268      217,   217,   218,   218,   218,   218,   218,   219,   219,   219,
    1269      220,   220,   221,   221,   221,   222,   222,   222,   222,   222,
    1270      223,   223,   224,   224,   224,   224,   225,   225,   226,   226,
    1271      226,   226,   227,   227,   227,   227,   228,   228,   229,   229,
    1272      230,   230,   231,   231,   231,   231,   231,   232,   231,   233,
    1273      233,   233,   234,   234,   235,   235,   235,   235,   235,   235,
    1274      235,   235,   236,   236,   236,   236,   236,   236,   236,   236,
    1275      236,   236,   236,   236,   236,   237,   237,   237,   237,   237,
    1276      238,   238,   239,   239,   239,   239,   240,   240,   240,   240,
    1277      241,   241,   241,   241,   242,   242,   242,   243,   243,   243,
    1278      243,   244,   244,   244,   245,   245,   246,   246,   247,   246,
    1279      246,   246,   248,   248,   249,   249,   250,   250,   250,   250,
    1280      251,   251,   251,   251,   252,   252,   253,   253,   253,   253,
    1281      253,   254,   254,   255,   256,   257,   257,   258,   257,   259,
    1282      259,   260,   260,   261,   261,   262,   262,   262,   262,   262,
    1283      263,   263,   263,   263,   264,   264,   265,   265,   266,   266,
    1284      267,   267,   267,   267,   268,   268,   268,   268,   268,   269,
    1285      269,   269,   269,   269,   270,   270,   271,   271,   272,   272,
    1286      273,   273,   273,   274,   274,   274,   275,   275,   275,   276,
    1287      276,   276,   277,   277,   277,   277,   278,   278,   278,   279,
    1288      279,   280,   280,   280,   280,   280,   281,   281,   282,   282,
    1289      283,   283,   283,   283,   283,   284,   284,   284,   284,   285,
    1290      285,   285,   286,   287,   287,   289,   288,   288,   290,   290,
    1291      290,   291,   291,   292,   292,   292,   293,   293,   293,   293,
    1292      294,   294,   294,   295,   295,   296,   296,   297,   298,   297,
    1293      299,   299,   300,   300,   301,   301,   301,   302,   302,   303,
    1294      303,   304,   304,   305,   305,   306,   306,   306,   307,   306,
    1295      306,   308,   308,   308,   309,   309,   309,   309,   309,   309,
    1296      309,   309,   309,   310,   310,   310,   311,   312,   312,   313,
    1297      313,   314,   314,   315,   316,   316,   317,   317,   317,   318,
    1298      318,   318,   318,   319,   319,   319,   319,   320,   320,   321,
    1299      321,   321,   322,   322,   322,   322,   323,   323,   324,   324,
    1300      324,   325,   325,   325,   326,   326,   326,   327,   327,   327,
    1301      328,   328,   328,   329,   329,   329,   330,   330,   330,   331,
    1302      331,   331,   332,   332,   332,   332,   333,   333,   334,   334,
    1303      334,   335,   335,   335,   335,   336,   336,   336,   337,   337,
    1304      337,   337,   338,   338,   338,   339,   339,   339,   339,   340,
    1305      340,   340,   341,   341,   341,   341,   342,   342,   343,   343,
    1306      343,   344,   344,   345,   345,   346,   346,   346,   347,   347,
    1307      347,   347,   347,   348,   348,   348,   348,   349,   349,   349,
    1308      350,   350,   350,   351,   351,   351,   351,   352,   352,   352,
    1309      353,   353,   353,   353,   353,   354,   354,   354,   354,   355,
    1310      355,   355,   356,   356,   356,   357,   357,   357,   357,   357,
    1311      357,   358,   358,   358,   359,   359,   359,   359,   359,   360,
    1312      360,   360,   360,   361,   361,   362,   362,   362,   363,   363,
    1313      364,   364,   364,   364,   364,   364,   365,   365,   365,   365,
    1314      365,   365,   365,   365,   365,   365,   366,   366,   366,   366,
    1315      367,   367,   367,   368,   368,   369,   369,   369,   369,   369,
    1316      369,   370,   370,   370,   370,   370,   370,   371,   372,   372,
    1317      372,   373,   373,   374,   374
     1246       0,   135,   136,   137,   138,   138,   138,   138,   138,   139,
     1247     139,   139,   140,   140,   141,   141,   142,   142,   143,   144,
     1248     144,   145,   145,   145,   145,   145,   146,   146,   146,   146,
     1249     146,   146,   146,   146,   146,   146,   146,   146,   147,   147,
     1250     148,   148,   149,   149,   150,   150,   150,   150,   150,   150,
     1251     150,   151,   151,   151,   152,   152,   153,   153,   153,   153,
     1252     153,   153,   153,   153,   153,   153,   153,   153,   153,   153,
     1253     153,   153,   154,   154,   155,   155,   155,   155,   156,   156,
     1254     157,   157,   157,   157,   158,   158,   158,   159,   159,   159,
     1255     160,   160,   160,   160,   160,   161,   161,   161,   162,   162,
     1256     163,   163,   164,   164,   165,   165,   166,   166,   167,   167,
     1257     167,   168,   169,   169,   170,   170,   171,   171,   171,   171,
     1258     171,   171,   171,   171,   171,   171,   171,   171,   172,   172,
     1259     173,   173,   174,   174,   175,   175,   176,   176,   176,   176,
     1260     176,   176,   176,   176,   176,   177,   178,   178,   179,   179,
     1261     180,   180,   180,   180,   181,   181,   182,   183,   183,   183,
     1262     183,   183,   183,   184,   184,   184,   185,   185,   186,   186,
     1263     187,   187,   188,   189,   189,   190,   190,   191,   191,   192,
     1264     192,   192,   192,   193,   193,   194,   194,   195,   195,   195,
     1265     196,   196,   197,   197,   197,   197,   197,   197,   197,   197,
     1266     197,   197,   198,   198,   198,   199,   199,   199,   199,   199,
     1267     200,   200,   200,   200,   201,   202,   202,   202,   202,   202,
     1268     203,   203,   203,   203,   203,   204,   204,   205,   205,   206,
     1269     206,   207,   207,   208,   208,   208,   209,   209,   210,   210,
     1270     211,   211,   212,   212,   213,   213,   214,   214,   215,   215,
     1271     216,   216,   217,   217,   218,   218,   218,   218,   218,   219,
     1272     219,   219,   220,   220,   220,   221,   221,   221,   221,   221,
     1273     222,   222,   223,   223,   224,   224,   224,   225,   225,   225,
     1274     225,   225,   226,   226,   227,   227,   227,   227,   228,   228,
     1275     229,   229,   229,   229,   230,   230,   230,   230,   231,   231,
     1276     232,   232,   233,   233,   234,   234,   234,   234,   234,   235,
     1277     234,   236,   236,   236,   237,   237,   238,   238,   238,   238,
     1278     238,   238,   238,   238,   239,   239,   239,   239,   239,   239,
     1279     239,   239,   239,   239,   239,   239,   239,   240,   240,   240,
     1280     240,   240,   241,   241,   242,   242,   242,   242,   243,   243,
     1281     243,   243,   244,   244,   244,   244,   245,   245,   245,   246,
     1282     246,   246,   246,   247,   247,   247,   248,   248,   249,   249,
     1283     250,   249,   249,   249,   251,   251,   252,   252,   253,   253,
     1284     253,   253,   254,   254,   254,   254,   255,   255,   256,   256,
     1285     256,   256,   256,   257,   257,   258,   259,   260,   260,   261,
     1286     260,   262,   262,   263,   263,   264,   264,   265,   265,   265,
     1287     265,   265,   266,   266,   266,   266,   267,   267,   268,   268,
     1288     269,   269,   270,   270,   270,   270,   271,   271,   271,   271,
     1289     271,   272,   272,   272,   272,   272,   273,   273,   274,   274,
     1290     275,   275,   276,   276,   276,   277,   277,   277,   278,   278,
     1291     278,   279,   279,   279,   280,   280,   280,   280,   281,   281,
     1292     281,   282,   282,   283,   283,   283,   283,   283,   284,   284,
     1293     285,   285,   286,   286,   286,   286,   286,   287,   287,   287,
     1294     287,   288,   288,   288,   289,   290,   290,   292,   291,   291,
     1295     293,   293,   293,   294,   294,   295,   295,   295,   296,   296,
     1296     296,   296,   297,   297,   297,   298,   298,   299,   299,   300,
     1297     301,   300,   302,   302,   303,   303,   304,   304,   304,   305,
     1298     305,   306,   306,   307,   307,   308,   308,   309,   309,   309,
     1299     310,   309,   309,   311,   311,   311,   312,   312,   312,   312,
     1300     312,   312,   312,   312,   312,   313,   313,   313,   314,   315,
     1301     315,   316,   316,   317,   317,   318,   319,   319,   320,   320,
     1302     320,   321,   321,   321,   321,   322,   322,   322,   322,   323,
     1303     323,   324,   324,   324,   325,   325,   325,   325,   326,   326,
     1304     327,   327,   327,   328,   328,   328,   329,   329,   329,   330,
     1305     330,   330,   331,   331,   331,   332,   332,   332,   333,   333,
     1306     333,   334,   334,   334,   335,   335,   335,   335,   336,   336,
     1307     337,   337,   337,   338,   338,   338,   338,   339,   339,   339,
     1308     340,   340,   340,   340,   341,   341,   341,   342,   342,   342,
     1309     342,   343,   343,   343,   344,   344,   344,   344,   345,   345,
     1310     346,   346,   346,   347,   347,   348,   348,   349,   349,   349,
     1311     350,   350,   350,   350,   350,   351,   351,   351,   351,   352,
     1312     352,   352,   353,   353,   353,   354,   354,   354,   354,   355,
     1313     355,   355,   356,   356,   356,   356,   356,   357,   357,   357,
     1314     357,   358,   358,   358,   359,   359,   359,   360,   360,   360,
     1315     360,   360,   360,   361,   361,   361,   362,   362,   362,   362,
     1316     362,   363,   363,   363,   363,   364,   364,   365,   365,   365,
     1317     366,   366,   367,   367,   367,   367,   367,   367,   368,   368,
     1318     368,   368,   368,   368,   368,   368,   368,   368,   369,   369,
     1319     369,   369,   370,   370,   370,   371,   371,   372,   372,   372,
     1320     372,   372,   372,   373,   373,   373,   373,   373,   373,   374,
     1321     375,   375,   376,   376,   377,   377
    13181322};
    13191323
     
    13221326{
    13231327       0,     2,     0,     0,     1,     1,     1,     1,     1,     1,
    1324        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
    1325        1,     3,     3,     1,     6,     4,     3,     7,     3,     3,
    1326        7,     2,     2,     7,     4,     1,     3,     0,     1,     1,
    1327        3,     1,     3,     7,     3,     7,     1,     1,     1,     1,
    1328        1,     2,     2,     2,     2,     2,     2,     4,     2,     4,
    1329        6,     1,     4,     4,     1,     1,     1,     1,     1,     1,
    1330        1,     4,     4,     1,     3,     3,     3,     1,     3,     3,
    1331        1,     3,     3,     1,     3,     3,     3,     3,     1,     3,
    1332        3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
    1333        3,     1,     5,     4,     5,     1,     1,     3,     2,     0,
    13341328       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1335        1,     1,     1,     2,     5,     6,     7,     1,     3,     1,
    1336        3,     0,     1,     1,     1,     1,     1,     1,     1,     1,
    1337        1,     6,     4,     2,     7,     1,     3,     1,     2,     1,
    1338        2,     1,     2,     2,     5,     7,     5,     9,     5,     9,
    1339        1,     3,     1,     1,     3,     3,     2,     1,     2,     2,
    1340        0,     1,     2,     3,     0,     1,     2,     3,     3,     4,
    1341        0,     1,     1,     2,     5,     7,     6,     6,     4,     3,
    1342        4,     2,     3,     2,     3,     3,     3,     3,     5,     3,
    1343        3,     4,     1,     5,     6,     5,     6,     9,    10,     9,
    1344       10,     2,     1,     2,     2,     2,     1,     6,     8,    10,
    1345       12,    14,     0,     1,     0,     1,     1,     3,     4,     7,
    1346        0,     1,     3,     1,     3,     1,     1,     1,     3,     1,
    1347        1,     1,     3,     0,     1,     3,     4,     1,     3,     1,
    1348        1,     3,     3,     3,     3,     3,     2,     3,     6,     3,
    1349        3,     4,     1,     2,     2,     3,     5,     8,     7,     7,
    1350        5,     9,     2,     2,     5,     3,     5,     4,     3,     4,
    1351        4,     7,     3,     3,     3,     3,     4,     6,     1,     1,
    1352        1,     1,     1,     1,     1,     1,     0,     1,     1,     2,
    1353        1,     1,     1,     1,     1,     1,     1,     0,     5,     1,
    1354        2,     3,     1,     2,     1,     1,     1,     1,     1,     1,
     1329       2,     1,     1,     1,     3,     3,     1,     6,     4,     3,
     1330       7,     2,     3,     7,     2,     2,     7,     4,     1,     3,
     1331       0,     1,     1,     3,     1,     2,     6,     3,     7,     3,
     1332       7,     2,     2,     2,     0,     2,     1,     1,     1,     2,
     1333       2,     2,     2,     2,     2,     4,     2,     4,     6,     1,
     1334       4,     4,     1,     1,     1,     1,     1,     1,     1,     4,
     1335       1,     3,     3,     3,     1,     3,     3,     1,     3,     3,
     1336       1,     3,     3,     3,     3,     1,     3,     3,     1,     3,
     1337       1,     3,     1,     3,     1,     3,     1,     3,     1,     5,
     1338       4,     1,     1,     3,     0,     1,     1,     1,     1,     1,
     1339       1,     1,     1,     1,     1,     1,     1,     1,     6,     7,
     1340       1,     3,     1,     3,     0,     1,     1,     1,     1,     1,
     1341       1,     1,     1,     1,     6,     4,     2,     7,     1,     3,
     1342       1,     2,     1,     2,     1,     2,     2,     5,     7,     5,
     1343       9,     5,     9,     1,     3,     1,     1,     3,     3,     2,
     1344       1,     2,     2,     0,     1,     2,     3,     0,     1,     2,
     1345       3,     3,     4,     0,     1,     1,     2,     5,     7,     6,
     1346       6,     4,     3,     4,     2,     3,     2,     3,     3,     3,
     1347       3,     5,     3,     3,     4,     1,     5,     6,     5,     6,
     1348       9,    10,     9,    10,     2,     1,     2,     2,     2,     1,
     1349       6,     8,    10,    12,    14,     0,     1,     0,     1,     1,
     1350       3,     4,     7,     0,     1,     3,     1,     3,     1,     1,
     1351       1,     3,     1,     1,     1,     3,     0,     1,     3,     4,
     1352       1,     3,     1,     1,     3,     3,     3,     3,     3,     2,
     1353       3,     6,     3,     3,     4,     1,     2,     2,     3,     5,
     1354       7,     7,     5,     9,     2,     2,     5,     3,     5,     4,
     1355       3,     4,     4,     7,     3,     3,     3,     3,     4,     6,
     1356       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
     1357       1,     2,     1,     1,     1,     1,     1,     1,     1,     0,
     1358       5,     1,     2,     3,     1,     2,     1,     1,     1,     1,
    13551359       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1356        1,     1,     1,     1,     1,     1,     2,     2,     3,     3,
    1357        1,     3,     1,     2,     2,     2,     4,     4,     4,     4,
    1358        1,     2,     2,     3,     1,     2,     2,     1,     2,     2,
    1359        3,     1,     2,     2,     1,     1,     4,     2,     0,     6,
    1360        7,     2,     2,     2,     0,     2,     2,     3,     2,     3,
    1361        1,     2,     3,     2,     2,     4,     0,     1,     2,     2,
    1362        1,     0,     1,     2,     2,     5,     2,     0,     7,     2,
    1363        4,     0,     2,     0,     1,     1,     1,     5,     5,     5,
    1364        1,     5,     5,     9,     1,     5,     0,     1,     1,     5,
    1365        1,     1,     5,     5,     1,     3,     3,     4,     1,     1,
    1366        1,     1,     2,     1,     3,     3,     1,     2,     1,     3,
    1367        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1368        1,     2,     1,     1,     1,     2,     0,     2,     2,     1,
    1369        4,     0,     1,     2,     3,     4,     2,     2,     1,     2,
    1370        2,     5,     5,     7,     6,     1,     2,     2,     3,     1,
    1371        2,     2,     4,     2,     4,     0,     4,     2,     1,     1,
    1372        1,     0,     2,     5,     5,    13,     1,     1,     3,     3,
    1373        2,     3,     3,     2,     4,     1,     6,     9,     0,    11,
    1374        1,     3,     3,     3,     1,     1,     5,     2,     5,     0,
    1375        1,     1,     3,     0,     1,     1,     1,     1,     0,     6,
    1376        2,     1,     2,     4,     2,     3,     3,     3,     4,     5,
    1377        5,     5,     6,     1,     1,     1,     3,     0,     5,     0,
    1378        1,     1,     2,     6,     1,     3,     0,     1,     4,     1,
    1379        1,     1,     1,     2,     1,     2,     2,     1,     3,     2,
    1380        3,     3,     2,     4,     4,     3,     8,     3,     2,     1,
    1381        2,     6,     8,     3,     2,     3,     3,     4,     4,     3,
    1382        1,     1,     1,     4,     6,     3,     2,     3,     3,     4,
    1383        4,     3,     2,     1,     2,     2,     1,     3,     2,     3,
    1384        3,     2,     4,     4,     3,     6,     8,     3,     2,     1,
    1385        2,     2,     2,     3,     3,     2,     4,     4,     3,     6,
    1386        8,     3,     2,     1,     2,     2,     1,     1,     2,     3,
    1387        3,     2,     4,     6,     8,     1,     2,     2,     1,     2,
    1388        2,     3,     3,     1,     4,     4,     3,     5,     8,     3,
    1389        2,     3,     1,     5,     5,     6,     6,     1,     2,     2,
     1360       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
     1361       3,     3,     1,     3,     1,     2,     2,     2,     4,     4,
     1362       4,     4,     1,     2,     2,     3,     1,     2,     2,     1,
     1363       2,     2,     3,     1,     2,     2,     1,     1,     4,     2,
     1364       0,     6,     7,     2,     2,     2,     0,     2,     2,     3,
     1365       2,     3,     1,     2,     3,     2,     2,     4,     0,     1,
     1366       2,     2,     1,     0,     1,     2,     2,     5,     2,     0,
     1367       7,     2,     4,     0,     2,     0,     1,     1,     1,     5,
     1368       5,     5,     1,     5,     5,     9,     1,     5,     0,     1,
     1369       1,     5,     1,     1,     5,     5,     1,     3,     3,     4,
     1370       1,     1,     1,     1,     2,     1,     3,     3,     1,     2,
     1371       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
     1372       1,     1,     1,     2,     1,     1,     1,     2,     0,     2,
     1373       2,     1,     4,     0,     1,     2,     3,     4,     2,     2,
     1374       1,     2,     2,     5,     5,     7,     6,     1,     2,     2,
     1375       3,     1,     2,     2,     4,     2,     4,     0,     4,     2,
     1376       1,     1,     1,     0,     2,     5,     5,    13,     1,     1,
     1377       3,     3,     2,     3,     3,     2,     4,     1,     6,     9,
     1378       0,    11,     1,     3,     3,     3,     1,     1,     5,     2,
     1379       5,     0,     1,     1,     3,     0,     1,     1,     1,     1,
     1380       0,     6,     2,     1,     2,     4,     2,     3,     3,     3,
     1381       4,     5,     5,     5,     6,     1,     1,     1,     3,     0,
     1382       5,     0,     1,     1,     2,     6,     1,     3,     0,     1,
     1383       4,     1,     1,     1,     1,     2,     1,     2,     2,     1,
     1384       3,     2,     3,     3,     2,     4,     4,     3,     8,     3,
     1385       2,     1,     2,     6,     8,     3,     2,     3,     3,     4,
     1386       4,     3,     1,     1,     1,     4,     6,     3,     2,     3,
     1387       3,     4,     4,     3,     2,     1,     2,     2,     1,     3,
     1388       2,     3,     3,     2,     4,     4,     3,     6,     8,     3,
     1389       2,     1,     2,     2,     2,     3,     3,     2,     4,     4,
     1390       3,     6,     8,     3,     2,     1,     2,     2,     1,     1,
     1391       2,     3,     3,     2,     4,     6,     8,     1,     2,     2,
    13901392       1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
    1391        8,     3,     1,     2,     1,     2,     6,     5,     6,     7,
    1392        7,     1,     2,     2,     1,     2,     2,     3,     3,     1,
    1393        4,     4,     3,     8,     3,     1,     1,     2,     1,     1,
    1394        2,     3,     2,     3,     2,     3,     3,     2,     4,     3,
    1395        2,     3,     2,     4,     3,     2,     6,     6,     6,     7,
    1396        1,     2,     1,     1,     1,     2,     3,     2,     3,     2,
    1397        3,     3,     4,     2,     3,     4,     2,     5,     5,     6,
    1398        6,     0,     1,     0,     2
     1393       8,     3,     2,     3,     1,     5,     5,     6,     6,     1,
     1394       2,     2,     1,     2,     2,     3,     3,     1,     4,     4,
     1395       3,     5,     8,     3,     1,     2,     1,     2,     6,     5,
     1396       6,     7,     7,     1,     2,     2,     1,     2,     2,     3,
     1397       3,     1,     4,     4,     3,     8,     3,     1,     1,     2,
     1398       1,     1,     2,     3,     2,     3,     2,     3,     3,     2,
     1399       4,     3,     2,     3,     2,     4,     3,     2,     6,     6,
     1400       6,     7,     1,     2,     1,     1,     1,     2,     3,     2,
     1401       3,     2,     3,     3,     4,     2,     3,     4,     2,     5,
     1402       6,     6,     0,     1,     0,     2
    13991403};
    14001404
     
    14041408static const yytype_uint16 yydefact[] =
    14051409{
    1406      296,   296,   316,   314,   317,   315,   318,   319,   302,   304,
    1407      303,     0,   305,   330,   322,   327,   325,   326,   324,   323,
    1408      328,   329,   334,   331,   332,   333,   549,   549,   549,     0,
    1409        0,     0,   296,   222,   306,   320,   321,     7,   361,     0,
    1410        8,    14,    15,     0,     2,    64,    65,   567,     9,   296,
    1411      527,   525,   249,     3,   456,     3,   262,     0,     3,     3,
    1412        3,   250,     3,     0,     0,     0,   297,   298,   300,   296,
    1413      309,   312,   342,   288,   335,   340,   289,   350,   290,   357,
    1414      354,   364,     0,     0,   365,   291,   475,   479,     3,     3,
    1415        0,     2,   521,   526,   531,   301,     0,     0,   549,   579,
    1416      549,     2,   590,   591,   592,   296,     0,   733,   734,     0,
    1417       12,     0,    13,   296,   272,   273,     0,   297,   292,   293,
    1418      294,   295,   528,   307,   394,   550,   551,   372,   373,    12,
    1419      447,   448,    11,   443,   446,     0,   505,   500,   491,   447,
    1420      448,     0,     0,   530,   223,     0,   296,     0,     0,     0,
    1421        0,     0,     0,     0,     0,   296,   296,     2,     0,   735,
    1422      297,   584,   596,   739,   732,   730,   737,     0,     0,     0,
    1423      256,     2,     0,   534,   441,   442,   440,     0,     0,     0,
    1424        0,   549,     0,   636,   637,     0,     0,   547,   543,   549,
    1425      564,   549,   549,   545,     2,   544,   549,   603,   549,   549,
    1426      606,     0,     0,     0,   296,   296,   314,   362,     2,   296,
    1427      263,   299,   310,   343,   355,   480,     0,     2,     0,   456,
    1428      264,   297,   336,   351,   358,   476,     0,     2,     0,   313,
    1429      337,   344,   345,     0,   352,   356,   359,   363,   448,   296,
    1430      374,   367,   371,     0,   396,   477,   481,     0,     0,     0,
    1431        1,   296,     2,   532,   578,   580,   296,     2,   743,   297,
    1432      746,   547,   547,     0,   297,     0,     0,   275,   549,   545,
    1433        2,   296,     0,     0,   296,   552,     2,   503,     2,   556,
    1434        0,     0,     0,     0,     0,     0,    19,    61,     4,     5,
    1435        6,    17,     0,     0,   296,     2,    66,    67,    68,    69,
    1436       49,    20,    50,    16,    23,    48,    70,   296,     0,    73,
    1437       77,    80,    83,    88,    91,    93,    95,    97,    99,   101,
    1438      106,   497,   753,   454,   496,     0,   452,   453,     0,   568,
    1439      583,   586,   589,   595,   598,   601,   361,     0,     2,   741,
    1440        0,   296,   744,     2,    64,   296,     3,   428,     0,   436,
    1441      297,   296,   309,   335,   289,   350,   357,     3,     3,   410,
    1442      414,   424,   429,   475,   296,   430,   708,   709,   296,   431,
    1443      433,   296,     2,   585,   597,   731,     2,     2,   251,     2,
    1444      461,     0,   459,   458,   457,   143,     2,     2,   253,     2,
    1445        2,   252,     2,   283,     2,   284,     0,   282,     0,     0,
    1446        0,     0,     0,     0,     0,     0,     0,   569,   608,     0,
    1447      456,     2,   563,   572,   662,   565,   566,   535,   296,     2,
    1448      602,   611,   604,   605,     0,   278,   296,   296,   341,   297,
    1449        0,   297,     0,   296,   736,   740,   738,   536,   296,   547,
    1450      257,   265,   311,     0,     2,   537,   296,   501,   338,   339,
    1451      285,   353,   360,     0,   296,     0,   751,   401,     0,   478,
    1452      502,   254,   255,   522,   296,   438,     0,   296,   239,     0,
    1453        2,   241,     0,   297,     0,   259,     2,   260,   280,     0,
    1454        0,     2,   296,   547,   296,   488,   490,   489,     0,     0,
    1455      753,     0,   296,     0,   296,   492,   296,   562,   560,   561,
    1456      559,     0,   554,   557,     0,     0,   296,    56,   296,    70,
    1457       51,   296,    58,   296,   296,    54,    55,     2,   129,     0,
    1458        0,   450,     0,   449,   730,   123,   296,    18,     0,    31,
    1459       32,    37,     2,     0,    37,   113,   114,   115,   116,   117,
    1460      118,   119,   120,   121,   122,   112,   111,     0,    52,    53,
     1410     298,   298,   318,   316,   319,   317,   320,   321,   304,   306,
     1411     305,     0,   307,   332,   324,   329,   327,   328,   326,   325,
     1412     330,   331,   336,   333,   334,   335,   551,   551,   551,     0,
     1413       0,     0,   298,   225,   308,   322,   323,     9,   363,     0,
     1414      10,    16,    17,     0,     2,    72,    73,   569,    11,   298,
     1415     529,   527,   252,     3,   458,     3,   265,     0,     3,     3,
     1416       3,   253,     3,     0,     0,     0,   299,   300,   302,   298,
     1417     311,   314,   344,   290,   337,   342,   291,   352,   292,   359,
     1418     356,   366,     0,     0,   367,   293,   477,   481,     3,     3,
     1419       0,     2,   523,   528,   533,   303,     0,     0,   551,   581,
     1420     551,     2,   592,   593,   594,   298,     0,   735,   736,     0,
     1421      14,     0,    15,   298,   274,   275,     0,   299,   294,   295,
     1422     296,   297,   530,   309,   396,   552,   553,   374,   375,    14,
     1423     449,   450,    13,   445,   448,     0,   507,   502,   493,   449,
     1424     450,     0,     0,   532,   226,     0,   298,     0,     0,     0,
     1425       0,     0,     0,     0,     0,   298,   298,     0,   737,   299,
     1426     586,   598,   741,   734,   732,   739,     0,     0,     0,   259,
     1427       2,     0,   536,   443,   444,   442,     0,     0,     0,     0,
     1428     551,     0,   638,   639,     0,     0,   549,   545,   551,   566,
     1429     551,   551,   547,     2,   546,   551,   605,   551,   551,   608,
     1430       0,     0,     0,   298,   298,   316,   364,     2,   298,   266,
     1431     301,   312,   345,   357,   482,     0,     2,     0,   458,   267,
     1432     299,   338,   353,   360,   478,     0,     2,     0,   315,   339,
     1433     346,   347,     0,   354,   358,   361,   365,   450,   298,   376,
     1434     369,   373,     0,   398,   479,   483,     0,     0,     0,     1,
     1435     298,     2,   534,   580,   582,   298,     2,   745,   299,   748,
     1436     549,   549,     0,   299,     0,     0,   277,   551,   547,     2,
     1437     298,     0,     0,   298,   554,     2,   505,     2,   558,     0,
     1438       0,     0,     0,     0,     0,    21,    69,     4,     8,    19,
     1439       5,     6,     7,     0,     0,   298,     2,    74,    75,    76,
     1440      77,    57,    22,    58,    18,    26,    56,    78,   298,     0,
     1441      80,    84,    87,    90,    95,    98,   100,   102,   104,   106,
     1442     108,   112,   499,    23,   456,   498,     0,   454,   455,     0,
     1443     570,   585,   588,   591,   597,   600,   603,     2,   743,   298,
     1444     746,     2,    72,   298,     3,   430,     0,   438,   299,   298,
     1445     311,   337,   291,   352,   359,     3,     3,   412,   416,   426,
     1446     431,   477,   298,   432,   710,   711,   298,   433,   435,     2,
     1447     587,   599,   733,     2,     2,   254,     2,   463,     0,   461,
     1448     460,   459,   146,     2,     2,   256,     2,     2,   255,     2,
     1449     285,     2,   286,     0,   284,     0,     0,     0,     0,     0,
     1450       0,     0,     0,     0,   571,   610,     0,   458,     2,   565,
     1451     574,   664,   567,   568,   537,   298,     2,   604,   613,   606,
     1452     607,     0,   280,   298,   298,   343,   299,     0,   299,   298,
     1453     738,   742,   740,   538,   298,   549,   260,   268,   313,     0,
     1454       2,   539,   298,   503,   340,   341,   287,   355,   362,     0,
     1455     298,     0,   752,   403,     0,   480,   504,   257,   258,   524,
     1456     298,   440,     0,   298,   242,     0,     2,   244,     0,   299,
     1457       0,   262,     2,   263,   282,     0,     0,     2,   298,   549,
     1458     298,   490,   492,   491,     0,     0,   754,     0,   298,     0,
     1459     298,   494,   298,   564,   562,   563,   561,     0,   556,   559,
     1460       0,     0,   298,    64,   298,    78,    59,   298,    66,   298,
     1461     298,    62,    63,     2,   132,     0,     0,   452,     0,   451,
     1462     732,   298,    20,    31,     0,    34,    35,    40,     2,     0,
     1463      40,   118,   119,   120,   121,   122,   123,   124,   125,   126,
     1464     127,   117,   116,     0,    60,    61,     0,     0,     0,     0,
    14611465       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1462        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1463      108,     2,   648,   455,   645,   549,   549,   653,   482,   296,
    1464        2,   587,   588,     0,   599,   600,     0,     2,   742,   745,
    1465      123,   296,     0,     2,   710,   297,   714,   705,   706,   712,
    1466        0,     2,     2,   670,   549,   753,   619,   549,   549,   753,
    1467      549,   633,   549,   549,   684,   437,   667,   549,   549,   675,
    1468      682,   296,   432,   297,     0,     0,   296,   720,   297,   725,
    1469      753,   717,   296,   722,   753,   296,   296,   296,     0,   123,
    1470        0,    19,     2,     0,    20,     0,   462,   751,     0,     0,
    1471      468,   243,     0,   296,     0,     0,     0,   547,   571,   575,
    1472      577,   607,   610,   614,   617,   570,   609,     0,   286,   660,
    1473        0,   296,   279,     0,     0,     0,     0,   277,     2,     0,
    1474      261,   538,   296,     0,     0,   296,     2,   366,   386,   375,
    1475        0,     0,   380,   374,   752,     0,     0,   399,     0,   297,
    1476        3,   417,     3,   421,   420,   593,     0,   533,   296,    64,
    1477        3,   296,   436,   297,     3,   430,   431,     2,     0,     0,
    1478        0,   487,   308,   296,   483,   485,     3,     2,     2,     0,
    1479      504,     3,     0,   556,   131,     0,     0,   224,     0,     0,
    1480        0,     0,    38,     0,     0,   123,   296,    21,     0,    22,
    1481        0,   694,   699,   451,   691,   549,   549,     0,   109,     3,
    1482        2,    29,     0,    35,     0,    28,     2,    26,     0,   107,
    1483       74,    75,    76,    78,    79,    81,    82,    86,    87,    84,
    1484       85,    89,    90,    92,    94,    96,    98,   100,     0,     0,
    1485      754,   296,     0,     0,     0,   649,   650,   646,   647,   499,
    1486      498,   296,     0,   296,   716,   296,   721,   297,   296,   664,
    1487      296,   296,   707,   663,     2,   296,     0,     0,     0,     0,
    1488        0,     0,     0,     0,   685,     0,   671,   622,   638,   672,
    1489        2,   618,   625,   434,   620,   621,   435,     2,   632,   641,
    1490      634,   635,   668,   669,   683,   711,   715,   713,   753,   270,
    1491        2,   747,     2,   425,   719,   724,   426,     0,   404,     3,
    1492        3,     3,     3,   456,     3,     0,     2,   470,   467,   752,
    1493        0,   463,     2,   466,   469,     0,   296,   244,   266,     3,
    1494      274,   276,     0,   456,     2,   573,   574,     2,   612,   613,
    1495        0,   661,   539,     3,   347,   346,   349,   348,   296,   540,
    1496        0,   541,   374,     0,     0,   296,   296,     0,     0,   694,
    1497      384,   387,   391,   549,   391,   390,   383,   376,   549,   378,
    1498      381,   296,   401,   395,   105,   402,   751,     0,     0,   439,
    1499      242,     0,     0,     3,     2,   670,   432,     0,   529,     0,
    1500      753,   491,     0,   296,   296,   296,     0,   553,   555,   132,
    1501        0,     0,   217,     0,     0,     0,   225,   226,    57,     0,
    1502       59,    62,    63,     0,     2,   130,     0,     0,     0,   695,
    1503      696,   692,   693,   461,    71,    72,   110,   127,     3,   109,
    1504        0,     0,    25,    37,     3,     0,    34,   103,     0,     3,
    1505      652,   656,   659,   651,     3,   594,     3,   718,   723,     2,
    1506       64,   296,     3,     3,   297,     0,     3,   624,   628,   631,
    1507      640,   674,   678,   681,   296,     3,   623,   639,   673,   296,
    1508      296,   427,   296,   296,   748,     0,     0,     0,     0,   258,
    1509        0,   105,     0,     3,     3,     0,   464,     0,   460,     0,
    1510        0,   247,   296,     0,     0,   131,     0,     0,     0,     0,
    1511        0,   131,     0,     0,   109,   109,    19,     2,     0,     0,
    1512        3,   133,   134,     2,   145,   135,   136,   137,   138,   139,
    1513      140,   147,   149,     0,     0,     0,   287,   296,   296,   549,
    1514        0,   542,   296,   377,   379,     0,   393,   695,   388,   392,
    1515      389,   382,   386,   369,   400,     0,   581,     2,   666,   665,
    1516        0,   671,     2,   484,   486,   506,     3,   514,   515,     0,
    1517        2,   510,     3,     3,     0,     0,   558,   224,     0,     0,
    1518        0,   224,     0,     0,   123,   698,   702,   704,   697,   751,
    1519      109,     0,     3,   663,    47,    46,     3,    39,    41,    36,
    1520        0,     3,   102,   104,     0,     2,   654,   655,     0,     0,
    1521      296,     0,     0,     0,     3,   640,     0,     2,   626,   627,
    1522        2,   642,     2,   676,   677,     0,     0,    64,     0,     3,
    1523        3,     3,     3,   412,   411,   415,     2,     2,   750,   749,
    1524      124,     0,     0,     0,     0,     3,   465,     3,     0,   245,
    1525      148,     3,   297,   296,     0,     0,     0,     0,     2,     0,
    1526      193,     0,   191,     0,     0,     0,     0,     0,     0,     0,
    1527      549,   123,     0,   153,   150,   296,     0,     0,   269,   281,
    1528        3,     3,   548,   615,   370,   385,   398,   296,   268,   296,
    1529        0,   517,   494,   296,     0,     0,   493,   508,     0,     0,
    1530        0,   218,     0,   227,    60,     2,   700,   701,     0,   128,
    1531      125,     0,     0,     0,     0,     0,    24,     0,   657,   296,
    1532      582,   267,   726,   727,   728,     0,   679,   296,   296,   296,
    1533        3,     3,     0,   687,     0,     0,     0,     0,   296,   296,
    1534        3,   546,   124,   472,     0,     0,   248,   297,     0,     0,
    1535        0,     0,   296,   194,   192,   189,     0,   195,     0,     0,
    1536        0,     0,   199,   202,   200,   196,     0,   197,   131,    37,
    1537      146,   144,   246,     0,     0,   419,   423,   422,     0,   511,
    1538        2,   512,     2,   513,   507,   296,   230,     0,   228,     0,
    1539      230,   296,    33,   126,    40,    30,     2,    44,     2,    42,
    1540       27,     3,   729,     3,     3,     3,     0,     0,   686,   688,
    1541      629,   643,   271,     2,   409,     3,   408,     0,   474,   471,
    1542      131,     0,     0,   131,     3,     0,   131,   190,     0,     2,
    1543        2,   211,   201,     0,     0,     0,   142,     0,   576,   616,
    1544        2,     0,     0,     2,   231,     0,     0,   219,     0,     3,
    1545        0,     0,     0,     0,     0,     0,   689,   690,   296,     0,
    1546      473,   154,     0,     0,     2,   167,   131,   156,     0,   184,
    1547        0,   131,     0,     2,   158,     0,     2,     0,     2,     2,
    1548        2,   198,    34,   296,   516,   518,   509,     0,     0,     0,
    1549        0,     0,     3,     3,   658,   630,   644,   680,   413,   131,
    1550      160,   163,     0,   162,   166,     3,   169,   168,     0,   131,
    1551      186,   131,     3,     0,   296,     0,   296,     0,     2,     0,
    1552        2,   141,     2,   232,   233,     0,   229,   220,   703,     0,
    1553        0,   155,     0,     0,   165,   235,   170,     2,   237,   185,
    1554        0,   188,   174,   203,     3,   212,   216,   205,     3,     0,
    1555      296,     0,   296,     0,     0,     0,    45,    43,   161,   164,
    1556      131,     0,   171,   296,   131,   131,     0,   175,     0,     0,
    1557      694,   213,   214,   215,     0,   204,     3,   206,     3,   296,
    1558      221,   234,   151,   172,   157,   131,   238,   187,   182,   180,
    1559      176,   159,   131,     0,   695,     0,     0,     0,     0,   152,
    1560      173,   183,   177,   181,   180,   178,     3,     3,     0,     0,
    1561      495,   179,   207,   209,     3,     3,   208,   210
     1466       0,     0,     0,     0,     0,     2,   650,   457,   647,   551,
     1467     551,   655,   484,   298,     2,   589,   590,     0,   601,   602,
     1468       0,   744,   747,   298,   298,     0,   712,   299,   716,   707,
     1469     708,   714,     0,     2,     2,   672,   551,   754,   621,   551,
     1470     551,   754,   551,   635,   551,   551,   686,   439,   669,   551,
     1471     551,   677,   684,   298,   434,   299,     0,     0,   298,   722,
     1472     299,   727,   754,   719,   298,   724,   754,   298,   298,     0,
     1473       0,    21,     2,     0,    22,     0,   464,   752,     0,     0,
     1474     470,   246,     0,   298,     0,     0,     0,   549,   573,   577,
     1475     579,   609,   612,   616,   619,   572,   611,     0,   288,   662,
     1476       0,   298,   281,     0,     0,     0,     0,   279,     2,     0,
     1477     264,   540,   298,     0,     0,   298,     2,   368,   388,   377,
     1478       0,     0,   382,   376,   753,     0,     0,   401,     0,   299,
     1479       3,   419,     3,   423,   422,   595,     0,   535,   298,    72,
     1480       3,   298,   438,   299,     3,   432,   433,     2,     0,     0,
     1481       0,   489,   310,   298,     0,   485,   487,     3,     2,     2,
     1482       0,   506,     3,     0,   558,   134,     0,     0,   227,     0,
     1483       0,     0,     0,    41,     0,     0,   298,    24,     0,    25,
     1484       0,   696,   701,   453,   693,   551,   551,     0,   114,     3,
     1485       2,    32,     0,    38,     0,     2,    29,     0,   113,    81,
     1486      82,    83,    85,    86,    88,    89,    93,    94,    91,    92,
     1487      96,    97,    99,   101,   103,   105,   107,     0,     0,   298,
     1488       0,     0,     0,   651,   652,   648,   649,   501,   500,   298,
     1489       0,   718,   298,   723,   299,   298,   666,   709,   665,     2,
     1490     298,     0,     0,     0,     0,     0,     0,     0,     0,   687,
     1491       0,   673,   624,   640,   674,     2,   620,   627,   436,   622,
     1492     623,   437,     2,   634,   643,   636,   637,   670,   671,   685,
     1493     713,   717,   715,   754,   272,     2,   749,     2,   427,   721,
     1494     726,   428,     3,   406,     3,     3,     3,   458,     0,     0,
     1495       2,   472,   469,   753,     0,   465,     2,   468,   471,     0,
     1496     298,   247,   269,     3,   276,   278,     0,   458,     2,   575,
     1497     576,     2,   614,   615,     0,   663,   541,     3,   349,   348,
     1498     351,   350,   298,   542,     0,   543,   376,     0,     0,   298,
     1499       0,     0,   696,   386,   389,   393,   551,   393,   392,   385,
     1500     378,   551,   380,   383,   298,   403,   397,   111,   404,   752,
     1501       0,     0,   441,   245,     0,     0,     3,     2,   672,   434,
     1502       0,   531,     0,   754,   755,   493,     0,   298,   298,   298,
     1503       0,   555,   557,   135,     0,     0,   220,     0,     0,     0,
     1504     228,   229,    65,     0,    67,    70,    71,     0,   133,     0,
     1505       0,     0,   697,   698,   694,   695,   463,    79,   115,   130,
     1506       3,   114,     0,    28,    40,     3,     0,    37,   110,     0,
     1507       3,   654,   658,   661,   653,     3,   596,   720,   725,     2,
     1508      72,   298,     3,     3,   299,     0,     3,   626,   630,   633,
     1509     642,   676,   680,   683,   298,     3,   625,   641,   675,   298,
     1510     298,   429,   298,   298,     0,     0,     0,     0,   261,   111,
     1511       0,     3,     3,     0,   466,     0,   462,     0,     0,   250,
     1512     298,     0,     0,   134,     0,     0,     0,     0,     0,   134,
     1513       0,     0,   114,   114,    21,     0,     0,     3,   136,   137,
     1514       2,   148,   138,   139,   140,   141,   142,   143,   150,   152,
     1515       0,     0,     0,   289,   298,   298,   551,     0,   544,   298,
     1516     379,   381,     0,   395,   697,   390,   394,   391,   384,   388,
     1517     371,   402,     0,   583,     2,   668,   667,     0,   673,     2,
     1518     486,   488,   508,     3,   516,   517,     0,     2,   512,     3,
     1519       3,     0,     0,   560,   227,     0,     0,     0,   227,     0,
     1520       0,   700,   704,   706,   699,   752,   114,     0,     3,    54,
     1521       0,    54,    54,     3,    42,    44,    39,     0,     3,   109,
     1522       0,     2,   656,   657,     0,   298,     0,     0,     0,     3,
     1523     642,     0,     2,   628,   629,     2,   644,     2,   678,   679,
     1524       0,     0,    72,     0,     3,     3,     3,     3,   414,   413,
     1525     417,   751,     2,     2,   750,     0,     0,     0,     0,     3,
     1526     467,     3,     0,   248,   151,     3,   299,   298,     0,     0,
     1527       0,     0,     2,     0,   196,     0,   194,     0,     0,     0,
     1528       0,     0,     0,     0,   551,     0,   156,   153,   298,     0,
     1529       0,   271,   283,     3,     3,   550,   617,   372,   387,   400,
     1530     298,   270,   298,     0,   519,   496,   298,     0,     0,   495,
     1531     510,     0,     0,     0,   221,     0,   230,    68,     2,   702,
     1532     703,     0,   131,   128,     0,    51,     2,    45,    52,    53,
     1533       0,     0,     0,     0,    27,     0,   659,   298,   584,   728,
     1534     729,   730,     0,   681,   298,   298,   298,     3,     3,     0,
     1535     689,     0,     0,     0,     0,   298,   298,     3,   548,   473,
     1536     474,     0,   251,   299,     0,     0,     0,     0,   298,   197,
     1537     195,   192,     0,   198,     0,     0,     0,     0,   202,   205,
     1538     203,   199,     0,   200,   134,    40,   149,   147,   249,     0,
     1539       0,   421,   425,   424,     0,   513,     2,   514,     2,   515,
     1540     509,   298,   233,     0,   231,     0,   233,   298,    36,   129,
     1541      55,     0,    43,    33,     2,    49,     2,    47,    30,     3,
     1542     731,     3,     3,     3,     0,     0,   688,   690,   631,   645,
     1543     273,     2,   411,     3,   410,     0,   476,   134,     0,     0,
     1544     134,     3,     0,   134,   193,     0,     2,     2,   214,   204,
     1545       0,     0,     0,   145,     0,   578,   618,     2,     0,     0,
     1546       2,   234,     0,     0,   222,     0,     3,     3,     0,     0,
     1547       0,     0,     0,     0,   691,   692,   298,     0,   475,   157,
     1548       0,     0,     2,   170,   134,   159,     0,   187,     0,   134,
     1549       0,     2,   161,     0,     2,     0,     2,     2,     2,   201,
     1550      37,   298,   518,   520,   511,     0,     0,     0,     0,     0,
     1551       0,     3,     3,   660,   632,   646,   682,   415,   134,   163,
     1552     166,     0,   165,   169,     3,   172,   171,     0,   134,   189,
     1553     134,     3,     0,   298,     0,   298,     0,     2,     0,     2,
     1554     144,     2,   235,   236,     0,   232,   223,   705,    46,     0,
     1555       0,   158,     0,     0,   168,   238,   173,     2,   240,   188,
     1556       0,   191,   177,   206,     3,   215,   219,   208,     3,     0,
     1557     298,     0,   298,     0,     0,     0,    50,    48,   164,   167,
     1558     134,     0,   174,   298,   134,   134,     0,   178,     0,     0,
     1559     696,   216,   217,   218,     0,   207,     3,   209,     3,   298,
     1560     224,   237,   154,   175,   160,   134,   241,   190,   185,   183,
     1561     179,   162,   134,     0,   697,     0,     0,     0,     0,   155,
     1562     176,   186,   180,   184,   183,   181,     3,     3,     0,     0,
     1563     497,   182,   210,   212,     3,     3,   211,   213
    15621564};
    15631565
     
    15651567static const yytype_int16 yydefgoto[] =
    15661568{
    1567       -1,   815,   468,   300,    47,   133,   134,   301,   302,   303,
    1568      304,   305,   762,   763,  1136,  1137,  1138,   306,   381,   308,
     1569      -1,   800,   464,   301,    47,   133,   134,   302,   303,   304,
     1570     305,   306,   752,   753,  1113,  1114,  1115,  1225,   307,   378,
    15691571     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
    1570      319,   320,  1032,   518,   977,   547,   322,   978,   949,  1059,
    1571     1522,  1061,  1062,  1063,  1064,  1523,  1065,  1066,  1441,  1442,
    1572     1405,  1406,  1407,  1501,  1502,  1506,  1507,  1542,  1543,  1067,
    1573     1365,  1068,  1069,  1302,  1303,  1304,  1484,  1070,   145,   955,
    1574      956,   957,  1385,  1465,  1476,  1477,   469,   470,   876,   877,
    1575     1040,    51,    52,    53,    54,    55,   347,   158,    58,    59,
    1576       60,    61,    62,   349,    64,    65,   264,    67,    68,   274,
    1577      351,   352,    71,    72,    73,   118,    75,   204,   354,   119,
    1578       78,   120,    80,    81,   455,    82,   454,   689,   690,   691,
    1579      910,  1088,   911,    83,    84,   458,   456,   697,   857,   858,
    1580      859,   860,   700,   701,   702,   359,   360,   361,   362,   466,
    1581      340,   135,   136,   522,   324,   170,   646,   647,   648,   649,
    1582      650,    85,   121,    87,   489,   490,   941,   491,   277,   495,
    1583      325,    88,   137,   138,    89,  1325,  1110,  1111,  1112,  1113,
    1584       90,    91,   718,    92,   273,    93,    94,   187,  1034,   680,
    1585      412,   125,    95,   501,   502,   503,   188,   268,   190,   191,
    1586      192,   269,    98,    99,   100,   101,   102,   103,   104,   195,
    1587      196,   197,   198,   199,   827,   606,   607,   608,   609,   200,
    1588      611,   612,   613,   573,   574,   575,   576,   752,   105,   615,
    1589      616,   617,   618,   619,   620,   970,   754,   755,   756,   596,
    1590      365,   366,   367,   368,   326,   164,   107,   108,   109,   370,
    1591      695,   570
     1572     319,   320,   321,  1010,   514,   959,   543,   323,   960,   933,
     1573    1036,  1502,  1038,  1039,  1040,  1041,  1503,  1042,  1043,  1420,
     1574    1421,  1383,  1384,  1385,  1481,  1482,  1486,  1487,  1522,  1523,
     1575    1044,  1342,  1045,  1046,  1278,  1279,  1280,  1464,  1047,   145,
     1576     939,   940,   941,  1362,  1444,  1456,  1457,   465,   466,   860,
     1577     861,  1018,    51,    52,    53,    54,    55,   345,   157,    58,
     1578      59,    60,    61,    62,   347,    64,    65,   263,    67,    68,
     1579     273,   349,   350,    71,    72,    73,   118,    75,   203,   352,
     1580     119,    78,   120,    80,    81,   451,    82,   450,   679,   680,
     1581     681,   893,  1065,   894,    83,    84,   454,   452,   687,   842,
     1582     843,   355,   356,   690,   691,   692,   357,   358,   359,   360,
     1583     462,   176,   135,   136,   518,   325,   169,   636,   637,   638,
     1584     639,   640,    85,   121,    87,   485,   486,   925,   487,   276,
     1585     491,   326,    88,   137,   138,    89,  1301,  1087,  1088,  1089,
     1586    1090,    90,    91,   708,    92,   272,    93,    94,   186,  1012,
     1587     670,   409,   125,    95,   497,   498,   499,   187,   267,   189,
     1588     190,   191,   268,    98,    99,   100,   101,   102,   103,   104,
     1589     194,   195,   196,   197,   198,   812,   598,   599,   600,   601,
     1590     199,   603,   604,   605,   567,   568,   569,   570,   742,   105,
     1591     607,   608,   609,   610,   611,   612,   953,   744,   745,   746,
     1592     588,   363,   364,   365,   366,   327,   163,   107,   108,   109,
     1593     368,   685,   715
    15921594};
    15931595
    15941596/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15951597   STATE-NUM.  */
    1596 #define YYPACT_NINF -1338
     1598#define YYPACT_NINF -1333
    15971599static const yytype_int16 yypact[] =
    15981600{
    1599     4794,  8872, -1338,   118, -1338, -1338, -1338, -1338, -1338, -1338,
    1600    -1338,   -32, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1601    -1338, -1338, -1338, -1338, -1338, -1338,    75,    75,    75,   889,
    1602      761,    17,  6057,   231, -1338, -1338, -1338, -1338, -1338,   166,
    1603    -1338, -1338, -1338,   566,   192, -1338, -1338, -1338, -1338,  4939,
    1604    -1338, -1338, -1338, -1338,   195,   234, -1338,  1148, -1338, -1338,
    1605    -1338, -1338,   170,  2042,   352,    44,  7574, -1338, -1338,  9333,
    1606     1157, -1338, -1338,  1542,   364,  3919,   608,   982,  1542,  1041,
    1607    -1338, -1338,   474,   402, -1338,  1542,  1242, -1338,   273, -1338,
    1608      455,   478, -1338, -1338, -1338, -1338,   354,   234,    75, -1338,
    1609       75, -1338, -1338, -1338, -1338,  9218,  1148, -1338, -1338,  1148,
    1610    -1338,   387, -1338,  9518, -1338, -1338,  2342,  9556, -1338,   992,
    1611      992,   992, -1338, -1338, -1338,    75, -1338, -1338, -1338,   374,
    1612      386,   471, -1338, -1338, -1338,   480, -1338, -1338, -1338, -1338,
    1613    -1338,   525,   539, -1338, -1338,    53,  8841,  1022,    54,   558,
    1614      563,   587,   592,   605,   615,  8759,  7097,   644,   585, -1338,
    1615     9371, -1338, -1338, -1338, -1338,   619, -1338,   349,  4637,  4637,
    1616    -1338,   657,   446, -1338, -1338, -1338, -1338,   651,   453,   454,
    1617      476,    75,   659, -1338, -1338,  2042,  2592,   742, -1338,    57,
    1618    -1338,    75,    75,   234, -1338, -1338,   101, -1338,    75,    75,
    1619    -1338,  3079,   687,   706,   992,  6771, -1338, -1338,   707,  4939,
    1620    -1338, -1338,  1542, -1338, -1338, -1338,   234, -1338,  1148,   195,
    1621    -1338,  7912, -1338,   992,   992,   992,   234, -1338,   889, -1338,
    1622     4555, -1338, -1338,   691,   992, -1338,   992, -1338,   166,  8841,
    1623    -1338,   713, -1338,   761,   725,   992, -1338,   889,   756,   768,
    1624    -1338,  6057,   675, -1338, -1338, -1338,  9300, -1338, -1338,  2361,
    1625    -1338,   742,   105, 10239,  9556,  2342,  3079, -1338,   194, -1338,
    1626    -1338,  9518,  1148,   743,  7605, -1338, -1338,   126, -1338, 10586,
    1627      755,   847, 10372,   832, 10391, 10448, -1338,   839, -1338, -1338,
    1628    -1338, -1338, 10467, 10467,  8615,   824, -1338, -1338, -1338, -1338,
    1629    -1338, -1338, -1338,   901, -1338,   679,  3121,  8954, 10391, -1338,
    1630      507,   418,   680,   295,   694,   894,   852,   888,   930,    66,
    1631    -1338, -1338,   938,   665, -1338,   380, -1338, -1338,  1022, -1338,
    1632    -1338,    12,   949, -1338,   338,   949,   961,   166, -1338, -1338,
    1633      968,  9218, -1338,   983,   984,  9067, -1338, -1338,   776,  1555,
    1634     8330,  6771,  1542, -1338,  1542,   992,   992, -1338, -1338, -1338,
    1635    -1338, -1338, -1338,   992,  9218,  1148, -1338, -1338,  9594,  1098,
    1636    -1338,  8061, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
    1637     5881, 10391, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1638    -1338, -1338, -1338, -1338, -1338, -1338,  2342, -1338,   489,   993,
    1639      994,  1000,   732,  1004,  1007,  1008,  2592, -1338, -1338,   969,
    1640      195,  1030, -1338, -1338,  1024, -1338, -1338, -1338,  9300, -1338,
    1641    -1338, -1338, -1338, -1338,  3079, -1338,  8841,  8841, -1338,   992,
    1642     2342,  6890,  1148,  8403, -1338, -1338, -1338, -1338,  9300,   105,
    1643    -1338, -1338,  1542,   234, -1338, -1338,  9300, -1338,  6655, -1338,
    1644    -1338,   992,   992,   465,  8248,  1029,  1028,  1015,  1033,   992,
    1645    -1338, -1338, -1338, -1338,  9742, -1338,   591,  6518, -1338,   234,
    1646     1044, -1338,  2342, 10668, 10296, -1338, -1338, -1338, -1338,   929,
    1647     3079, -1338,  8476,   742,  5771, -1338, -1338, -1338,  1039,   645,
    1648      938,   761,  7605,   809,  9518, -1338,  7605, -1338, -1338, -1338,
    1649    -1338,   688, -1338,  1046,   847,   251,  8615, -1338,  9627, -1338,
    1650    -1338,  8615, -1338,  8728,  8615, -1338, -1338,  1048, -1338,   751,
    1651     1043,   711,  1057, -1338, -1338,  9447,  6740, -1338,   107, -1338,
    1652    -1338, 10239, -1338,   318, 10239, -1338, -1338, -1338, -1338, -1338,
    1653    -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10239, -1338, -1338,
    1654    10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,
    1655    10391, 10391, 10391, 10391, 10391, 10391, 10391, 10391,  4422, 10239,
    1656    -1338,   665,  1831, -1338, -1338,    75,    75, -1338, -1338,  8841,
    1657    -1338, -1338,  1024,   675, -1338,  1024, 10315, -1338, -1338, -1338,
    1658     5500,  6740,  1056,  1064, -1338,  9556, -1338, -1338,   619, -1338,
    1659     1065,  1323,  1067,  2196,   209,   938, -1338,    75,    75,   938,
    1660      243, -1338,    75,    75,  1024, -1338, -1338,    75,    75, -1338,
    1661      949,  9665,  1148, 10813,   217,   306,  9665, -1338,  2361, -1338,
    1662      938, -1338,  9218, -1338,   212,  8027,  8027,  8027,  1148, -1338,
    1663     6120,  1053,   995,   535,  1061,  1066, -1338,  1071,  4637,   421,
    1664    -1338,  1166,  1148,  8027,   675,  2342,   675,   742,   394,   949,
    1665    -1338, -1338,   788,   949, -1338, -1338, -1338,   847, -1338,   949,
    1666      234,  9742, -1338,   764,  1087,   806,  1088, -1338,  1089,   234,
    1667    -1338, -1338,  9300,   234,  1090,  9627,  1096, -1338,  1729, -1338,
    1668      527,   550,   761, -1338,   761,  1102, 10391, -1338,   761, 10813,
    1669    -1338, -1338,  1092, -1338, -1338, -1338,   675, -1338, 10741,   984,
    1670    -1338,  8027,   857,  8330, -1338, -1338,   619,  1103,  1112,  1039,
    1671     3523, -1338, -1338,  7605, -1338, -1338,  1097, -1338, -1338,  1121,
    1672    -1338,  1097,  1124, 10586, 10239,  1105,  1104,    94,  1128,  1123,
    1673     1132,  1133, -1338,  1136,  1138,  9485,  6859, -1338, 10239, -1338,
    1674      711,  1914, -1338, -1338, -1338,    75,    75,  6186, 10239,  1134,
    1675    -1338, -1338,   822, -1338, 10239, -1338, -1338, -1338,   715, -1338,
    1676    -1338, -1338, -1338,   507,   507,   418,   418,   680,   680,   680,
    1677      680,   295,   295,   694,   894,   852,   888,   930, 10391,   250,
    1678    -1338,  9742,  1151,  1153,  1158,  1831, -1338, -1338, -1338, -1338,
    1679    -1338,  9742,   827,  8027, -1338,  9218, -1338,  7216,  9180, -1338,
    1680     8061,  7097, -1338, -1338,  1323,  9742,   936,  1159,  1162,  1164,
    1681     1167,  1170,  1175,  1178, -1338,  3437,  2196, -1338, -1338, -1338,
    1682    -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1683    -1338, -1338, -1338, -1338,  1024, -1338, -1338, -1338,   938, -1338,
    1684    -1338, -1338, -1338, -1338, -1338, -1338, -1338,  1179, -1338,  1180,
    1685     1181, -1338, -1338,   195,  1134,  6120, -1338, -1338, -1338,  5881,
    1686     1143, -1338, -1338, -1338, -1338,   761,  6348,  1247, -1338, -1338,
    1687    -1338, -1338,  1165,   195, -1338, -1338,  1024, -1338, -1338,  1024,
    1688      230,  1024, -1338, -1338, -1338, -1338, -1338, -1338,  9409, -1338,
    1689      234, -1338, -1338,   554,   555,  9594,  7335,  2114, 10391,  2586,
    1690    -1338, -1338,  1163,    40,  1163, -1338,   761, -1338,    75, -1338,
    1691    -1338,  8985,  1015, -1338, -1338, -1338,  1028,  1185,  1186, -1338,
    1692    -1338,  1189,  1191, -1338,   857,  1994, -1338,   444, -1338,  3523,
    1693      938, -1338,  1195,  7605,  9703,  8841,  1196, -1338, -1338,  1192,
    1694     1200,  1182, -1338, 10391,  1205,   298,  1203, -1338,  1206,   675,
    1695     1206, -1338, -1338,  1206,  1209, -1338,  1214,  1216,  1217,  1914,
    1696    -1338, -1338, -1338,  5881, -1338, -1338, -1338, -1338,  1215, 10239,
    1697     1220,   831, -1338, 10239, -1338,   831, -1338, -1338, 10239, -1338,
    1698      972,   949, -1338, -1338, -1338, -1338, -1338, -1338, -1338,   995,
    1699      984,  9067, -1338, -1338,  7454,  1229, -1338,   975,   949, -1338,
    1700      979,   991,   949, -1338,   992,  3705, -1338, -1338, -1338,  9742,
    1701     9742, -1338,  8403,  8403, -1338,  1226,  1232,  1235,  1240, -1338,
    1702     1244,   564,    43,  1134, -1338,   831, -1338,  4637, -1338, 10239,
    1703      582, -1338,  6621,  1243,  1245, 10182,  1248,  1251,    46,    70,
    1704      103, 10239,  1252,   234, 10239, 10239,  1238,  1257,   333,  1239,
    1705    -1338, -1338, -1338,  1258, -1338, -1338, -1338, -1338, -1338, -1338,
    1706    -1338, -1338, -1338,   761,  1268, 10239, -1338,  9742,  9742,    75,
    1707     1269, -1338,  9098, -1338, -1338,   767, -1338,  2586, -1338, -1338,
    1708    -1338, -1338,  1729, -1338, -1338,  1270, -1338, -1338, -1338, -1338,
    1709     1273,  1994, -1338, -1338,  1256, -1338,  1097, -1338, -1338,  2342,
    1710     1271, -1338, -1338, -1338,   836,  1276, -1338,    94,  1279, 10391,
    1711     1265,    94,    94,  1293,  9447,  1023,   949, -1338, -1338,  1071,
    1712    10239,  1292,  1215,   513, -1338, -1338,  1296, -1338,    -5, -1338,
    1713     1297,  1296, -1338, -1338,  1304, -1338, -1338,  1024,  1306,  1309,
    1714     6978,  1310,  1312,  1313, -1338, -1338,  1316, -1338, -1338,  1024,
    1715    -1338, -1338, -1338, -1338,  1024, 10239, 10239,   984,  1315, -1338,
    1716    -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1717    -1338, 10391, 10391,  1317,  1318,  1296, -1338, -1338,   761, -1338,
    1718    -1338, -1338,  7839,  9703, 10239, 10239,  1381, 10239, -1338,  1299,
    1719    -1338,  1303, -1338,  1305, 10239,  1311, 10239,  1014,  1314,    39,
    1720       75,  5221,  1493, -1338, -1338,  6348,  1321,   584, -1338, -1338,
    1721    -1338, -1338, -1338, -1338, -1338, -1338, -1338, 10002, -1338,  8476,
    1722     1328, -1338, -1338,  9703,   589,   606, -1338,  1327,  1325,   847,
    1723     1334, -1338,   331, -1338, -1338, -1338, -1338,  1024,  1332, -1338,
    1724    -1338,  1336,   831,  1339,   320,   457, -1338,  1341, -1338,  9742,
    1725    -1338, -1338, -1338, -1338, -1338,  1345, -1338,  9742,  9742,  9742,
    1726    -1338, -1338,  1351, -1338,  1355,  1358,  1360,   623,  8100,  8215,
    1727    -1338, -1338,   463, -1338,  1361,  1370, -1338,  8549,   841,   866,
    1728     1374,   868,  6487, -1338, -1338, -1338,   616, -1338,   881,  1375,
    1729     1379,   234,  1429,   861, -1338, -1338, 10239, -1338, 10182, 10239,
    1730    -1338, -1338, -1338,  1383,  1384, -1338, -1338, -1338,  1382, -1338,
    1731    -1338, -1338, -1338, -1338, -1338,  9703,   847,  1386, -1338,  1366,
    1732      847,  9742, -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338,
    1733    -1338, -1338, -1338, -1338, -1338, -1338,  1389,  1390, -1338, -1338,
    1734    -1338, -1338, -1338, -1338, -1338,  1395, -1338,  1394, -1338, -1338,
    1735    10182,   334, 10239, 10182, -1338,  1398, 10239, -1338,   339,  1415,
    1736     1417, -1338, -1338,  1405,  1406,  1393, -1338,   840, -1338, -1338,
    1737    -1338,  1148,  2342,  1403, -1338,   329, 10391, -1338,   897, -1338,
    1738      831,   831,  1411,  1412,  1416,  1421, -1338, -1338,  8403,  1423,
    1739    -1338,  1485, 10391,  1407, -1338, -1338, 10094, -1338,   898, -1338,
    1740     1410, 10182,  1422, -1338, -1338,  1434, -1338,  1443, -1338,  1459,
    1741     1461, -1338,  1428,  9703, -1338, -1338, -1338,   847,   675,  1452,
    1742     1431,  1455,  1296,  1296, -1338, -1338, -1338, -1338, -1338, 10182,
    1743       81, -1338,   447, -1338, -1338,  7690, -1338, -1338,  1435, 10239,
    1744    -1338, 10239,  7690,   234,  9627,   234,  9627,  1465, -1338,  1466,
    1745    -1338, -1338,  1456, -1338, -1338,   909, -1338, -1338, -1338,  1470,
    1746     1471, -1338, 10391, 10391, -1338, -1338,   880,   254, -1338, -1338,
    1747     1453, -1338,   880, -1338, -1338,  2645,   675, -1338, -1338,   234,
    1748     9627,   234,  9627,  1480,  1458,   675, -1338, -1338, -1338, -1338,
    1749    10094,  1476,   880,  7766, 10239, 10006,  1478,   880,  1486,  2645,
    1750     2922, -1338, -1338, -1338,  1487, -1338, -1338, -1338, -1338,  8841,
    1751    -1338, -1338, -1338,  9873, -1338, 10094, -1338, -1338,  1467,  9785,
    1752    -1338, -1338, 10006,   234,  2922,   234,  1495,  1498,   927, -1338,
    1753     9873, -1338, -1338, -1338,  9785, -1338, -1338, -1338,   234,   234,
    1754    -1338, -1338, -1338, -1338, -1338, -1338, -1338, -1338
     1601    6694,  7975, -1333,   -14, -1333, -1333, -1333, -1333, -1333, -1333,
     1602   -1333,    26, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1603   -1333, -1333, -1333, -1333, -1333, -1333,   109,   109,   109,   759,
     1604     860,    66,  6930,   241, -1333, -1333, -1333, -1333, -1333,   199,
     1605   -1333, -1333, -1333,  1264,   207, -1333, -1333, -1333, -1333,  8320,
     1606   -1333, -1333, -1333, -1333,     3,   216, -1333,  1096, -1333, -1333,
     1607   -1333, -1333,   265,  1996,   389,    54,  5394, -1333, -1333,  8320,
     1608     780, -1333, -1333,   554,   416,  3688,   749,   995,   554,  1130,
     1609   -1333, -1333,   768,   826, -1333,   554,  1144, -1333,   313, -1333,
     1610     443,   462, -1333, -1333, -1333, -1333,   358,   216,   109, -1333,
     1611     109, -1333, -1333, -1333, -1333,  8461,  1096, -1333, -1333,  1096,
     1612   -1333,   414, -1333,  8545, -1333, -1333,  2376,  8575, -1333,  1138,
     1613    1138,  1138, -1333, -1333, -1333,   109, -1333, -1333, -1333,   370,
     1614     444,   488, -1333, -1333, -1333,   518, -1333, -1333, -1333, -1333,
     1615   -1333,   525,   576, -1333, -1333,    50,  8059,  1902,   238,   538,
     1616     578,   604,   613,   618,   635,  8659,  6327,   649, -1333,  8431,
     1617   -1333, -1333, -1333, -1333,   661, -1333,   -10,  9338,  9338, -1333,
     1618     662,   181, -1333, -1333, -1333, -1333,   680,   348,   393,   400,
     1619     109,   685, -1333, -1333,  1996,  2098,   801, -1333,    51, -1333,
     1620     109,   109,   216, -1333, -1333,   180, -1333,   109,   109, -1333,
     1621    2242,   712,   751,  1138,  6116, -1333, -1333, -1333,  8320, -1333,
     1622   -1333,   554, -1333, -1333, -1333,   216, -1333,  1096,     3, -1333,
     1623    7196, -1333,  1138,  1138,  1138,   216, -1333,   759, -1333,  4572,
     1624   -1333, -1333,   739,  1138, -1333,  1138, -1333,   199,  8059, -1333,
     1625     775, -1333,   860,   777,  1138, -1333,   759,   771,   804, -1333,
     1626    6930,   594, -1333, -1333, -1333,  4461, -1333, -1333,  5315, -1333,
     1627     801,   101,  9515,  8575,  2376,  2242, -1333,   187, -1333, -1333,
     1628    8545,  1096,   786, 10191, -1333, -1333,   434, -1333,  9931,   803,
     1629     866,  9574,   842,  9515,  9633, -1333,   845, -1333, -1333, -1333,
     1630   -1333, -1333, -1333,  9692,  9692,  7829,   207, -1333, -1333, -1333,
     1631   -1333, -1333, -1333, -1333,   885, -1333,  1691,  2462,  8059,  9515,
     1632   -1333,   558,   367,   614,   669,   742,   852,   846,   858,   883,
     1633     -13, -1333, -1333, -1333,   737, -1333,   269, -1333, -1333,  1902,
     1634   -1333, -1333,   465,   880, -1333,   586,   880, -1333, -1333,  8461,
     1635   -1333,   890,   897,  8174, -1333, -1333,  1514,  1088,  7619,  6116,
     1636     554, -1333,   554,  1138,  1138, -1333, -1333, -1333, -1333, -1333,
     1637   -1333,  1138,  8461,  1096, -1333, -1333,  8659,  1872, -1333, -1333,
     1638   -1333, -1333, -1333, -1333, -1333, -1333, -1333,  9279,  9515, -1333,
     1639   -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1640   -1333, -1333, -1333,  2376, -1333,   105,   903,   926,   928,   796,
     1641     931,   941,   943,  2098, -1333, -1333,   952,     3,   954, -1333,
     1642   -1333,   961, -1333, -1333, -1333,  4461, -1333, -1333, -1333, -1333,
     1643   -1333,  2242, -1333,  8059,  8059, -1333,  1138,  2376,  6237,  7691,
     1644   -1333, -1333, -1333, -1333,  4461,   101, -1333, -1333,   554,   216,
     1645   -1333, -1333,  4461, -1333,  5995, -1333, -1333,  1138,  1138,   394,
     1646    7535,   966,   959,   955,   974,  1138, -1333, -1333, -1333, -1333,
     1647    5606, -1333,   424,  5852, -1333,   216,   977, -1333,  2376, 10015,
     1648    9751, -1333, -1333, -1333, -1333,   884,  2242, -1333,  7691,   801,
     1649    6812, -1333, -1333, -1333,  1296,   456,   986,   860, 10191,  1468,
     1650    8545, -1333, 10191, -1333, -1333, -1333, -1333,   473, -1333,   988,
     1651     866,   242,  7829, -1333,  8689, -1333, -1333,  7829, -1333,  7944,
     1652    7829, -1333, -1333,   207, -1333,   485,  1009,   881,  1014, -1333,
     1653   -1333,  6085, -1333, -1333,   360, -1333, -1333,  9515, -1333,   362,
     1654    9515, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1655   -1333, -1333, -1333,  9515, -1333, -1333,  9515,  9515,  9515,  9515,
     1656    9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,  9515,
     1657    9515,  9515,  9515,  9515,  3091,   737,  1207, -1333, -1333,   109,
     1658     109, -1333, -1333,  8059, -1333, -1333,   961,   594, -1333,   961,
     1659    9810, -1333, -1333,  8659,  6085,   993, -1333,  8575, -1333, -1333,
     1660     661, -1333,  1039,   587,  1045,  2359,   209,   986, -1333,   109,
     1661     109,   986,   212, -1333,   109,   109,   961, -1333, -1333,   109,
     1662     109, -1333,   880,  8773,  1096, 10160,   415,   496,  8773, -1333,
     1663    5315, -1333,   986, -1333,  8461, -1333,   126,  7313,  7313,  1096,
     1664    9397,  1029, -1333,  1354,  1033,  1043, -1333,  1060,  9338,   407,
     1665   -1333,  1151,  1096,  7313,   594,  2376,   594,   801,   631,   880,
     1666   -1333, -1333,   692,   880, -1333, -1333, -1333,   866, -1333,   880,
     1667     216,  5606, -1333,   494,  1073,   520,  1074, -1333,   890,   216,
     1668   -1333, -1333,  4461,   216,  1071,  8689,   207, -1333,   972, -1333,
     1669     401,   438,   860, -1333,   860,  1075,  9515, -1333,   860, 10160,
     1670   -1333, -1333,  1079, -1333, -1333, -1333,   594, -1333, 10088,   897,
     1671   -1333,  7313,   960,  7619, -1333, -1333,   661,  1076,  1081,  1296,
     1672    2130, -1333, -1333, 10191,  9515, -1333, -1333,  1085, -1333, -1333,
     1673    1093, -1333,  1085,  1098,  9931,  9515,  1097,  1094,    38,  1119,
     1674    1115,  1124,  1125, -1333,  1126,  1127,  6085, -1333,  9515, -1333,
     1675     881,  1631, -1333, -1333, -1333,   109,   109,  9456,  9515,  1132,
     1676   -1333, -1333,   577, -1333,  9515, -1333, -1333,   843, -1333, -1333,
     1677   -1333, -1333,   558,   558,   367,   367,   614,   614,   614,   614,
     1678     669,   669,   742,   852,   846,   858,   883,  9515,   296,  5606,
     1679    1131,  1133,  1136,  1207, -1333, -1333, -1333, -1333, -1333,  5606,
     1680     616, -1333,  8461, -1333,  6448,  8289, -1333, -1333, -1333,   587,
     1681    5606,   990,  1140,  1141,  1142,  1145,  1146,  1147,  1149, -1333,
     1682    2845,  2359, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1683   -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,   961,
     1684   -1333, -1333, -1333,   986, -1333, -1333, -1333, -1333, -1333, -1333,
     1685   -1333, -1333, -1333, -1333,  1150,  1152, -1333,     3,  1132,  9397,
     1686   -1333, -1333, -1333,  9279,  1154, -1333, -1333, -1333, -1333,   860,
     1687    5689,  1243, -1333, -1333, -1333, -1333,  1143,     3, -1333, -1333,
     1688     961, -1333, -1333,   961,    14,   961, -1333, -1333, -1333, -1333,
     1689   -1333, -1333,  6327, -1333,   216, -1333, -1333,   452,   487,  6327,
     1690    1790,  9515,  2983, -1333, -1333,  1153,    20,  1153, -1333,   860,
     1691   -1333,   109, -1333, -1333,  8090,   955, -1333, -1333, -1333,   959,
     1692    1161,  1157, -1333, -1333,  1163,  1164, -1333,   960,  1700, -1333,
     1693     539, -1333,  2130,   986, -1333, -1333,  1167, 10191,  8545,  8059,
     1694    1169, -1333, -1333,  1165,  1170,  1171, -1333,  9515,  1173,   310,
     1695    1177, -1333,  1180,   594,  1180, -1333, -1333,  1180, -1333,  1195,
     1696    1197,  1201,  1631, -1333, -1333, -1333,  9279, -1333, -1333, -1333,
     1697    1196,  9515,   730, -1333,  9515, -1333,   730, -1333, -1333,  9515,
     1698   -1333,   748,   880, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1699     897,  8174, -1333, -1333,  6569,  1203, -1333,   758,   880, -1333,
     1700     763,   830,   880, -1333,  1138,  4995, -1333, -1333, -1333,  5606,
     1701    5606, -1333,  7691,  7691,  1205,  1210,  1223,  1209, -1333,   551,
     1702     162,  1132, -1333,   730, -1333,  9338, -1333,  9515,   513, -1333,
     1703    5964,  1214,  1227,  9220,  1234,  1235,    42,   160,   163,  9515,
     1704    1237,   216,  9515,  9515,  1226,   304,  1229, -1333, -1333, -1333,
     1705    1244, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1706     860,  1248,  9515, -1333,  5606,  5606,   109,  1254, -1333,  8205,
     1707   -1333, -1333,   773, -1333,  2983, -1333, -1333, -1333, -1333,   972,
     1708   -1333, -1333,  1250, -1333, -1333, -1333, -1333,  1257,  1700, -1333,
     1709   -1333,  1241, -1333,  1085, -1333, -1333,  2376,  1256, -1333, -1333,
     1710   -1333,   617,  1258, -1333,    38,  1266,  9515,  1245,    38,    38,
     1711    1274,   878,   880, -1333, -1333,  1060,  9515,  1276,  1196, -1333,
     1712     841, -1333, -1333,  1270, -1333,   215, -1333,  1279,  1270, -1333,
     1713    1282, -1333, -1333,   961,  1283,  6206,  1284,  1285,  1286, -1333,
     1714   -1333,  1290, -1333, -1333,   961, -1333, -1333, -1333, -1333,   961,
     1715    9515,  9515,   897,  1291, -1333, -1333, -1333, -1333, -1333, -1333,
     1716   -1333, -1333, -1333, -1333, -1333,  9515,  9515,  1295,  1297,  1270,
     1717   -1333, -1333,   860, -1333, -1333, -1333,  7124,  8545,  9515,  9515,
     1718    1350,  9515, -1333,  1278, -1333,  1280, -1333,  1288,  9515,  1293,
     1719    9515,  1056,  1298,    72,   109,  2402, -1333, -1333,  5689,  1287,
     1720     521, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1721    9036, -1333,  7691,  1305, -1333, -1333,  8545,   522,   524, -1333,
     1722    1308,  1302,   866,  1318, -1333,   325, -1333, -1333, -1333, -1333,
     1723     961,  1324, -1333, -1333,  1328,  1363, -1333, -1333,  1363,  1363,
     1724     730,  1333,  1026,  1220, -1333,  1339, -1333,  5606, -1333, -1333,
     1725   -1333, -1333,  1340, -1333,  5606,  5606,  5606, -1333, -1333,  1341,
     1726   -1333,  1342,  1345,  1347,   600,  7385,  7502, -1333, -1333, -1333,
     1727   -1333,  1352, -1333,  7763,   633,   634,  1353,   658,  5821, -1333,
     1728   -1333, -1333,   528, -1333,   659,  1362,  1364,   216,  1401,   965,
     1729   -1333, -1333,  9515, -1333,  9220,  9515, -1333, -1333, -1333,  1365,
     1730    1367, -1333, -1333, -1333,  1358, -1333, -1333, -1333, -1333, -1333,
     1731   -1333,  8545,   866,  1373, -1333,  1368,   866,  5606, -1333, -1333,
     1732   -1333,   730, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,
     1733   -1333, -1333, -1333, -1333,  1384,  1391, -1333, -1333, -1333, -1333,
     1734   -1333, -1333, -1333,  1404, -1333,  1408, -1333,  9220,   198,  9515,
     1735    9220, -1333,  1406,  9515, -1333,   323,  1378,  1427, -1333, -1333,
     1736    1416,  1417,  1395, -1333,   910, -1333, -1333, -1333,  1096,  2376,
     1737    1413, -1333,   326,  9515, -1333,   663, -1333,  1270,   730,   730,
     1738    1420,  1424,  1425,  1434, -1333, -1333,  7691,  1429, -1333,  1489,
     1739    9515,  1426, -1333, -1333,  9130, -1333,   689, -1333,  1414,  9220,
     1740    1418, -1333, -1333,  1445, -1333,  1449, -1333,  1467,  1469, -1333,
     1741    1435,  8545, -1333, -1333, -1333,   866,   594,  1456,  1436,  1460,
     1742    1466,  1270,  1270, -1333, -1333, -1333, -1333, -1333,  9220,   194,
     1743   -1333,   376, -1333, -1333,  7048, -1333, -1333,  1447,  9515, -1333,
     1744    9515,  7048,   216,  8689,   216,  8689,  1470, -1333,  1471, -1333,
     1745   -1333,  1477, -1333, -1333,   720, -1333, -1333, -1333, -1333,  1473,
     1746    1481, -1333,  9515,  9515, -1333, -1333,   991,    94, -1333, -1333,
     1747    1462, -1333,   991, -1333, -1333,  2158,   594, -1333, -1333,   216,
     1748    8689,   216,  8689,  1487,  1463,   594, -1333, -1333, -1333, -1333,
     1749    9130,  1484,   991,  5522,  9515,  9040,  1485,   991,  1493,  2158,
     1750    3005, -1333, -1333, -1333,  1494, -1333, -1333, -1333, -1333,  8059,
     1751   -1333, -1333, -1333,  8905, -1333,  9130, -1333, -1333,  1474,  8815,
     1752   -1333, -1333,  9040,   216,  3005,   216,  1498,  1500,   729, -1333,
     1753    8905, -1333, -1333, -1333,  8815, -1333, -1333, -1333,   216,   216,
     1754   -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333
    17551755};
    17561756
     
    17581758static const yytype_int16 yypgoto[] =
    17591759{
    1760    -1338,  4260,  2887, -1338,  1463, -1338,  1198,   661,  -268,   942,
    1761    -1338,   552,  -528,  -471,  -934,  -784, -1338,  4910,     0, -1338,
    1762     -100,   434,   472,   506,   438,  1049,  1050,  1051,  1062,  1055,
    1763    -1338,  1094,  -577,  5180,  -896, -1338,  -712,   636,   -68,  -593,
    1764     -654, -1338,  1469, -1338,   408, -1065, -1338, -1338,   159, -1338,
    1765    -1118,  -880,   265, -1338, -1338, -1338, -1338,    92, -1253, -1338,
    1766    -1338, -1338, -1338, -1338, -1338,   341, -1303,    36, -1338,  -904,
    1767    -1338,   518,   311, -1338,   196, -1338,  -309, -1338, -1338, -1338,
    1768      571,  -749, -1338, -1338,    16,  -930,   172,  1119, -1338, -1338,
    1769    -1338,  -149, -1338,    71,   966,  -196,  1532,  4034, -1338, -1338,
    1770       83,   174,   287,  2700, -1338,  1836, -1338, -1338,    55,  2097,
    1771    -1338,  2401,  2181, -1338, -1338, -1338,  -656, -1338,   962,   964,
    1772      560,   736,  -249, -1338, -1338, -1338,   955,   734,  -456, -1338,
    1773     -116,   -94,   869, -1338, -1338,  -963,  -979,    -2,   913,  1074,
    1774       29, -1338,   719,   357,  -283,  -191,  -146,   681,   789, -1338,
    1775     1010, -1338,  2818,  1589,  -439,   940, -1338, -1338,   720, -1338,
    1776     -237, -1338,   109, -1338, -1338, -1338, -1275,   435, -1338, -1338,
    1777    -1338,  1183, -1338,    32, -1338, -1338,  -845,  -111, -1337,  -112,
    1778     3150, -1338,  3946, -1338,   941, -1338,  -138,  1137,  -181,  -176,
    1779     -174,     7,   -40,   -33,   -28,  1352,    38,    50,    77,  -134,
    1780     -173,  -171,  -166,  -165,  -261,  -504,  -490,  -476,  -565,  -319,
    1781     -523, -1338, -1338,  -525,  1107,  1111,  1115,  -135,  4740,  -582,
    1782     -583,  -534,  -519,  -480, -1338,  -505,  -725,  -715,  -709,  -592,
    1783     -312,  -258, -1338, -1338,   326,    26,   -81, -1338,  3689,   -15,
    1784     -601,  -356
     1760   -1333,  3826,  2645, -1333,   849, -1333,   762,   867,  -112,   956,
     1761   -1333,   580,  -517,  -490,  -904,  -999, -1333,   -62,  4003,     0,
     1762   -1333,   676,   547,   572,   581,   571,  1057,  1058,  1059,  1055,
     1763    1061, -1333,   963,  -485,  4467,  -910, -1333, -1333,   665,   184,
     1764    -691,   319, -1333,   356, -1333,   440, -1283, -1333, -1333,   176,
     1765   -1333, -1072, -1062,   285, -1333, -1333, -1333, -1333,   107, -1332,
     1766   -1333, -1333, -1333, -1333, -1333, -1333,   359, -1109,    16, -1333,
     1767    -288, -1333,   535,   330, -1333,   208, -1333,  -237, -1333, -1333,
     1768   -1333,   596,  -693, -1333, -1333,     9,  -933,   372,  2238, -1333,
     1769   -1333, -1333,   -57, -1333,   110,    36,  -194,  1419,  3198, -1333,
     1770   -1333,    12,    61,  1486,  1572, -1333,  1265, -1333, -1333,    21,
     1771    1950, -1333,  2034,  1735, -1333, -1333, -1333,  -611, -1333,   975,
     1772     976,   584,   761,   136, -1333, -1333, -1333,   967,   755,  -456,
     1773   -1333,  -528,  -433,   832, -1333, -1333,  -922,  -915,  -420,  1560,
     1774    1084,    19, -1333,   388,   467,  -359,  -203,  -145,   706,   811,
     1775   -1333,  1028, -1333,  2348,   798,  -442,   958, -1333, -1333,   740,
     1776   -1333,  -233, -1333,   118, -1333, -1333, -1333, -1243,   466, -1333,
     1777   -1333, -1333,  1188, -1333,    -1, -1333, -1333,  -832,  -108, -1152,
     1778    -131,  3669, -1333,  4255, -1333,   951, -1333,  -125,   120,  -178,
     1779    -173,  -170,     7,   -41,   -40,   -39,   619,    -5,    25,    46,
     1780      -4,  -167,  -166,  -158,  -157,  -296,  -519,  -516,  -510,  -538,
     1781    -311,  -552, -1333, -1333,  -514,  1111,  1112,  1114,  1610,  4174,
     1782    -565,  -560,  -546,  -522,  -389, -1333,  -475,  -720,  -716,  -715,
     1783    -584,  -222,  -287, -1333, -1333,    47,   102,   -51, -1333,  3453,
     1784     108,  -602,  -196
    17851785};
    17861786
     
    17881788   positive, shift that token.  If negative, reduce the rule which
    17891789   number is the opposite.  If YYTABLE_NINF, syntax error.  */
    1790 #define YYTABLE_NINF -525
     1790#define YYTABLE_NINF -527
    17911791static const yytype_int16 yytable[] =
    17921792{
    1793       49,   113,   453,   149,   399,   267,   768,    97,   428,   400,
    1794      150,   401,   402,   505,   403,   151,   753,   114,   821,   404,
    1795      405,   829,   383,   384,   260,   966,   106,   106,   440,   846,
    1796      610,  1072,    49,   597,   166,   967,    50,   921,   828,    97,
    1797      357,   968,   741,   147,  1175,   975,   870,   796,   407,    49,
    1798     1383,  1141,   408,   726,   413,    76,   161,   731,   106,  1173,
    1799     1174,   421,   358,   186,   143,  1443,   209,   822,    50,    49,
    1800      193,    63,   202,   216,   342,   410,   226,   123,   820,    31,
    1801     1254,   152,   823,    69,   399,   219,   177,    76,   605,   400,
    1802      425,   401,   402,   153,   403,   106,    31,   817,   166,   404,
    1803      405,  1185,  1306,    63,   280,   113,   629,   471,  1255,   670,
    1804      633,   818,  1191,   113,    31,    69,   266,   271,  1199,   925,
    1805      154,   580,   203,   411,   832,   819,   142,  1071,   407,   679,
    1806      839,   327,   408,   413,   724,   261,  1443,   683,   262,  1181,
    1807       31,   950,  1201,   674,   676,   149,   307,   147,  1462,   475,
    1808      477,   411,   150,  1488,   161,   113,   345,   151,  1208,  1209,
    1809      209,   567,   281,   252,   329,  1182,   252,   373,   411,   409,
    1810      715,  1307,    56,   115,    70,  1203,   291,  1472,  1200,   110,
    1811      861,   862,   966,   915,   510,   186,   186,  1516,   577,  1518,
    1812       41,    42,   967,   161,   436,   568,   581,   879,   968,   584,
    1813      122,   266,  1202,  1182,    56,   953,    70,   548,   549,    49,
    1814      419,   730,   411,  1238,   476,   817,   161,  1242,   760,   668,
    1815     1204,   209,  1060,   152,   327,   149,   519,   721,   443,   818,
    1816      743,   821,   150,    31,  1249,   153,   735,   151,   210,   307,
    1817      212,   220,   144,   819,  1018,   548,  1082,   439,    31,   833,
    1818     1175,    49,  1530,   836,   493,   933,   436,   494,    97,   271,
    1819      589,  1017,   154,   413,   271,   266,   266,   421,   665,   471,
    1820      993,   113,   666,   161,   853,   146,  1143,   106,   856,  1545,
    1821      822,   548,    31,   463,   610,   657,   181,    50,  1447,   471,
    1822      342,  1005,   166,  1190,   307,   823,   800,   471,  -236,  -236,
    1823     1175,   483,   168,   481,   155,   411,    76,   307,   500,   597,
    1824      817,    76,   527,   672,   597,  1173,  1174,   357,   830,   677,
    1825      602,   476,    63,   572,   818,  1095,   169,   472,   147,   849,
    1826      599,  1086,   806,   850,    69,   373,   832,   447,   819,   358,
    1827     1079,   113,   665,   569,   413,   345,   666,   996,   171,   603,
    1828      621,   821,   837,   829,   602,   201,   460,   229,   673,   675,
    1829      230,   736,  1191,   234,   626,   236,   748,  -292,   626,  -236,
    1830     1072,   113,   245,   900,   855,   163,  1118,   177,  1402,  1403,
    1831      988,   737,  1447,  1402,  1403,   557,   558,  1447,   714,   247,
    1832      110,  1196,   110,   441,   630,   442,   266,   765,   634,  1134,
    1833      822,    41,    42,    41,    42,   286,   186,  1447,  1120,   846,
    1834      357,   327,   327,   373,  1447,   823,    41,    42,   851,  1175,
    1835      559,   560,   852,    56,   266,    70,   307,   307,  1121,   766,
    1836      266,  1336,   358,   626,   715,  1438,   577,   577,   519,   163,
    1837     1529,  1329,   514,   519,   342,  1427,   519,   583,  1404,   411,
    1838      770,   771,   772,  1413,   113,   250,  1432,  1433,  1205,  1428,
    1839     1540,  1330,   703,   252,  1128,   377,  1071,  1544,  1334,   954,
    1840     1337,  1339,   266,    76,   110,   357,   139,   140,  -520,   327,
    1841      266,   378,   626,   -10,    49,    41,    42,   373,   720,   472,
    1842      578,    97,  1021,    76,   113,  -444,   579,   358,   327,   229,
    1843      789,    76,   871,   884,  1106,   411,   307,   610,   113,   472,
    1844      106,   307,  1139,   307,   307,  1191,   243,   472,   263,  1018,
    1845       50,   751,  1191,   885,   212,   113,   345,   888,  1248,   110,
    1846     1161,  1163,   872,   471,   643,   435,  1134,   553,   554,    76,
    1847       41,    42,  1240,  1366,   881,   883,   110,   998,   139,   238,
    1848      912,   873,   806,   712,   914,    63,   851,    41,    42,   930,
    1849     1102,  1060,   387,  1473,   327,  1016,   498,    69,  1338,   390,
    1850      392,   572,   572,  1191,  -471,   684,  -471,  1474,   388,   307,
    1851     -445,   579,  1128,   239,  1103,   391,   393,   915,   240,   276,
    1852      626,   345,   394,  -471,   715,   621,  1500,   435,   252,   329,
    1853      411,   603,  1505,   603,  1280,  1281,   847,   110,   395,   139,
    1854      140,   599,     2,   206,     4,     5,     6,     7,    41,    42,
    1855      523,   626,  1525,  -124,   550,  -124,   626,  1532,   621,  -124,
    1856      551,   552,   626,   163,   278,   626,   626,   626,    37,   229,
    1857      806,   234,    40,   916,  -124,  -124,   866,   212,   279,    41,
    1858       42,   848,   714,   626,  1376,   266,    56,   974,    70,   917,
    1859      577,    48,   112,  1089,   342,  1089,   918,   863,   330,   703,
    1860      916,   918,  1029,   331,   808,    43,  -106,    35,  1016,    36,
    1861     -106,   878,   919,    45,    46,   113,  1083,  1084,   909,   597,
    1862      112,   112,  1076,    48,   372,   357,  1478,   332,  1188,  1364,
    1863     1188,   705,   333,  1478,    48,  1320,  1401,   706,  1114,  1409,
    1864       48,   626,   935,   621,  1189,   334,  1312,   358,    48,   720,
    1865      720,  1321,  1322,  1036,    48,   335,   399,    48,   376,   229,
    1866       48,   400,   748,   401,   402,  1352,   403,    76,  1323,  1353,
    1867       -3,   404,   405,   112,   112,   113,   345,   110,  1367,   141,
    1868      751,   751,  1446,   472,  1526,   722,   371,  1450,    41,    42,
    1869      389,   723,   500,    76,   528,   529,   530,    48,   555,   556,
    1870       48,   407,   385,  1412,   571,   408,   411,    48,   413,   472,
    1871      692,  1377,    45,    46,   966,  1471,   561,   562,   531,   703,
    1872      532,   397,   533,   534,   967,   572,   426,   442,   732,   703,
    1873      968,   241,   244,   626,   733,   626,   409,  1001,    48,  1429,
    1874      626,   345,   714,   703,   603,   427,    48,   712,  1165,   432,
    1875      750,    48,   411,   450,   342,  1440,   603,  -368,    45,    46,
    1876      986,   983,   523,   110,   523,   139,   140,   523,   715,  -397,
    1877      523,   419,   661,   411,    41,    42,    48,    48,    37,   954,
    1878      174,   175,    40,   954,   954,  1146,  1480,   484,  1481,    41,
    1879       42,   747,    48,   738,   504,   739,   806,   748,   740,  1539,
    1880       48,   744,  1158,   212,   894,  1539,   307,   329,   411,    48,
    1881      748,   110,    48,   139,   140,   372,  1539,   212,   461,   112,
    1882     1539,  1186,    41,    42,   808,  1498,  1440,   887,   626,   411,
    1883      462,   548,   106,   110,   112,   113,   345,   909,   112,   909,
    1884     1134,  1527,    48,   112,    41,    42,   896,   715,   727,  1373,
    1885     1374,   113,   748,   728,  1402,  1403,    48,    48,  1172,   291,
    1886      327,    76,   982,    48,   935,   935,   525,   995,   983,   720,
    1887       48,   508,   510,   706,   113,   307,  1236,    63,   513,   665,
    1888      413,  1360,   579,   666,   912,  1422,   983,   748,   914,    69,
    1889     1107,   129,   457,   130,   131,   132,   934,   116,   602,   751,
    1890      106,  1327,    41,    42,    45,    46,  1361,   712,  1363,   564,
    1891     1512,   212,   748,   527,   748,  -293,   847,   773,   774,    48,
    1892     1246,  1368,     8,     9,    10,    11,    12,   748,  1231,   781,
    1893      782,   345,     8,     9,    10,    11,    12,  1430,  1448,    48,
    1894       48,   692,   563,  1427,   748,   159,   565,   703,   703,  1494,
    1895      498,    31,   626,   626,   566,  1495,    48,   775,   776,  1128,
    1896       48,    31,     8,     9,    10,    11,    12,  1550,   481,   329,
    1897      411,   644,   307,   579,  -294,   830,   329,   602,    56,    34,
    1898       70,     8,     9,    10,    11,    12,   714,    48,  1384,    34,
    1899      338,    31,  1384,   777,   778,   779,   780,    48,   106,   569,
    1900     -441,   258,  1299,  1300,  1301,   703,   703,   587,   667,   159,
    1901       31,  1145,   113,   411,  1157,    48,   411,   909,  1160,    34,
    1902      602,    48,   909,    48,    37,   590,    -3,    76,    40,   645,
    1903     1162,   935,   602,   658,   659,    41,    42,   639,    34,   266,
    1904      660,    37,   323,   472,   662,    40,  1108,   663,   664,    57,
    1905       57,   339,    41,    42,   626,  1193,  1288,  1289,   112,  1291,
    1906      342,    43,  1245,    48,   411,   257,  1296,    96,  1298,    45,
    1907       46,    48,   669,   693,   694,    48,   696,   698,   719,    48,
    1908      345,    57,   112,   749,   112,   734,    45,    46,  -240,  1463,
    1909      745,     2,   206,     4,     5,     6,     7,   757,   809,    96,
    1910       37,   430,   174,   175,    40,   434,   810,   813,   442,   824,
    1911      148,    41,    42,   -12,  1355,    57,    96,   869,    57,   112,
    1912      228,   -13,   271,   113,   112,   875,   868,   895,   897,   111,
    1913      189,   898,  -418,    96,   902,   323,    96,   376,   905,   219,
    1914      725,   113,   729,   723,    56,   307,    70,   923,  -524,   106,
    1915       37,   712,   174,   175,    40,  1316,    35,   938,    36,   626,
    1916      945,    41,    42,   113,   947,   951,   952,   434,   958,   959,
    1917      488,   106,   960,   961,   112,  -295,   962,   692,   963,  1107,
    1918      979,    48,     8,     9,    10,    11,    12,   703,  1038,   106,
    1919      521,   990,    48,   991,    48,   703,   703,   703,   992,  1007,
    1920       76,  1425,  1008,   159,  1009,   348,  1073,  1010,   626,   626,
    1921     1011,    31,  1538,    48,    96,  1012,    63,   271,  1013,  1024,
    1922     -406,  -405,   307,   908,  1408,  1096,  1075,    96,    69,    48,
    1923      712,  1098,  1097,  1099,   112,  1105,  1115,   588,   748,    34,
    1924     1116,   594,  1117,    48,  1119,   112,    48,   112,   106,  1122,
    1925      973,  1124,   398,   189,  1125,   113,  1126,  1127,   399,   703,
    1926      627,  1130,  1133,   400,   631,   401,   402,   339,   403,  1155,
    1927       57,  1107,  1176,   404,   405,  1178,    96,    76,  1177,    48,
    1928     1179,   106,  1194,   112,  1195,   112,  1180,  1197,    96,   112,
    1929     1198,  1206,   867,   472,   210,   220,   212,   112,  1210,  1211,
    1930       57,  1213,   407,    -3,  1511,  1193,   408,   704,  1218,  1223,
    1931       48,    48,   266,  1228,   493,  1226,  1232,    56,    96,    70,
    1932     1237,  1239,   323,   323,    48,    37,   665,  1241,   626,    40,
    1933      666,   162,   479,  1244,  1250,  1108,    41,    42,   692,  1256,
    1934     1424,   920,  1252,   922,  1258,   194,  1260,   457,   217,  1261,
    1935      688,   227,  1262,   113,  1263,  1264,  1266,  1273,  1290,  1282,
    1936     1283,  1293,   814,   116,   602,  1294,  1311,  1295,  1318,  1107,
    1937       45,    46,  1324,  1297,  1328,   113,  1305,  1332,  1333,   106,
    1938      465,  1335,   113,  1340,   113,  1326,   113,  1342,   488,   441,
    1939      323,   442,   488,  1348,    56,    96,    70,  1349,  1350,   149,
    1940     1351,   106,   521,  1358,   521,    48,   150,   521,   106,   323,
    1941      521,   151,  1359,  1362,  1369,  1510,   604,    48,  1370,  1301,
    1942      113,   339,   113,  1378,  1379,  1386,  1380,  1108,  1387,   162,
    1943       76,  1396,  1397,   113,   327,  -407,  1400,    76,  1411,  1510,
    1944     1510,  1415,   374,  1417,  1419,  1420,   472,   161,  1426,   307,
    1945      176,  1434,  1435,   472,   173,  1421,  1436,  1439,  1193,   106,
    1946      644,  1437,    66,   117,  1510,  1193,   112,  1444,   162,  1353,
    1947      893,   373,  1449,   189,  1453,   323,     2,   206,     4,     5,
    1948        6,     7,   348,  1455,  1451,  1457,   804,  1459,    76,    48,
    1949     1461,   162,  1466,  1467,    66,  1468,   253,  1479,    48,   176,
    1950       48,  1493,   176,   444,   472,  1489,  1491,   112,   528,   529,
    1951      530,   160,  1496,  1497,   704,  1504,  1193,   845,   645,  1519,
    1952     1520,  1524,   594,  1531,  1041,  1108,  1533,  1535,   854,  1541,
    1953       48,   221,   531,    57,   532,  1548,   533,  1309,  1549,   890,
    1954     1212,    35,   783,    36,   784,  1132,   785,    56,   176,    70,
    1955      112,    96,   787,  1310,    56,   604,    70,    37,   786,   183,
    1956      184,    40,  1499,  1414,   644,  1091,  1551,   259,    41,    42,
    1957     1243,  1388,   112,  1372,  1217,   348,   112,   903,  1482,   904,
    1958     1090,   688,  1225,   926,  1129,   215,  1094,   802,  1037,   874,
    1959      989,  1104,   417,   940,   601,   111,   602,   717,  1319,     0,
    1960      994,   242,    45,    46,   948,    56,     0,    70,   792,   328,
    1961      374,   176,   793,     0,  1006,   437,   794,   259,   350,   488,
    1962        0,     0,   645,     0,     0,   445,   112,     0,     0,     0,
    1963        0,     0,     0,     0,   704,     0,   215,     0,     0,     0,
    1964      348,   339,     0,     0,   704,     0,     0,     0,   406,     0,
    1965        0,     0,     0,     0,     0,     0,   761,     0,   704,     0,
    1966        0,   767,     0,   424,   112,   176,   429,   431,   816,     0,
    1967      604,   160,   176,     0,     0,     0,     0,     0,    48,   215,
    1968        0,     0,     0,    48,   348,   348,   348,     0,   374,     0,
    1969        0,     0,   448,   520,     0,     0,   451,     0,   452,     0,
    1970       48,   997,   348,     0,     0,     0,   804,   459,     0,     0,
    1971     1486,   465,  1486,    66,     0,     0,     0,     0,   473,     0,
    1972      924,     0,  1041,     0,     0,     0,     0,     0,   480,     0,
    1973        0,    37,     0,   183,   184,    40,   431,     0,     0,     0,
    1974      215,   176,    41,    42,     0,     0,  1486,     0,  1486,     0,
    1975        0,     0,     0,     0,     0,   913,     0,     0,   176,     0,
    1976      348,     0,   176,     0,     0,     0,    74,     0,   907,     0,
    1977      411,     8,     9,    10,    11,    12,    45,    46,   215,   112,
    1978        0,     0,   880,   215,   882,     0,   816,   604,     0,   908,
    1979        0,     0,     0,     0,   804,     0,     0,     0,    74,     0,
    1980       31,   339,    48,   259,     0,     0,     0,   595,     0,     0,
    1981        0,     0,   987,   623,     0,     0,     0,   688,  1170,  1171,
    1982        0,     0,     0,     0,     0,   176,   628,     0,    34,     0,
    1983      628,     0,     0,   259,   929,   222,     0,  1286,     0,   488,
    1984     1109,   323,   681,   112,     0,   112,   112,     0,     0,     0,
    1985        0,     0,   348,     0,     8,     9,    10,    11,    12,     0,
    1986      348,     0,   704,   704,     0,     0,     0,     0,   707,   215,
    1987      571,     0,   411,     0,     0,     0,  1220,  1221,    45,    46,
    1988      473,   816,     0,    31,     0,     0,     0,     0,     0,  1031,
    1989        0,     0,     0,   604,     0,   350,     0,   845,     0,     0,
    1990      473,     0,     0,     0,     0,   520,     0,     0,   473,     0,
    1991      520,    34,     0,   520,     0,     0,     0,     0,     0,     0,
    1992      704,   704,   353,     0,     0,    57,   699,     0,     0,   431,
    1993        0,     0,   924,     0,     8,     9,    10,    11,    12,     0,
    1994        0,     0,     0,     0,   713,     0,    66,     0,     0,     0,
    1995      215,     0,     0,   750,   431,   411,     0,     0,   431,     0,
    1996        0,    45,    46,    31,     0,     0,     0,     0,     0,     0,
    1997        0,     0,    48,    48,  1085,     0,   913,   924,   688,     0,
    1998        0,   112,   112,   176,     0,     0,     0,   259,   350,     0,
    1999        0,    34,   215,    57,     0,     0,   449,     0,     0,     0,
    2000        0,     0,     0,     0,     0,     0,   604,     0,     0,     0,
    2001        0,     0,  1142,     0,     0,   176,     0,    74,     0,   112,
    2002      804,     0,    74,     0,     0,     0,     0,    77,     0,     0,
    2003        0,   176,     0,   934,   795,   602,     0,     0,     0,     0,
    2004        0,    45,    46,     0,    37,   176,   183,   184,    40,     0,
    2005        0,     0,   628,   807,     0,    41,    42,     0,  1341,    77,
    2006        0,     0,     0,  1031,     0,   826,  1343,  1344,  1345,   892,
    2007     1317,   348,   348,     0,     0,     0,    48,   112,   899,     0,
    2008        0,   185,   901,   595,     0,     0,   112,  1123,   595,    45,
    2009       46,    57,     0,     0,   628,     0,   223,   350,   350,   350,
    2010       48,    48,   704,     0,     0,     0,     0,   339,     0,  1135,
    2011      704,   704,   704,  1135,   215,   350,    37,   222,   183,   184,
    2012       40,     0,     0,     0,     0,    48,   176,    41,    42,  1109,
    2013     1389,     0,     0,   699,     0,     0,     8,     9,    10,    11,
    2014       12,     0,   215,   924,   473,     0,     0,   215,     0,     0,
    2015        0,     0,     0,   907,   913,   411,     0,     0,     0,   913,
    2016        0,    45,    46,  1135,     0,    31,     0,     0,     0,     0,
    2017      473,     0,     0,   350,   704,     0,     0,   214,     0,     0,
    2018        0,     0,   939,   355,    74,   431,     0,     0,     0,     0,
    2019        0,     0,     0,    34,     0,     0,     0,     0,    37,   353,
    2020      183,   184,    40,     0,    74,   924,   924,   259,   713,    41,
    2021       42,     0,    74,   969,     0,     0,     0,     0,   215,     0,
    2022        0,  1109,     0,     0,     0,     0,     0,     0,   214,     0,
    2023      353,     0,   215,     0,     0,   601,     0,   602,     0,     0,
    2024        0,    57,    57,    45,    46,     0,     0,     0,   353,     0,
    2025       74,     0,     0,   699,     0,     0,     0,     0,     0,     0,
    2026        0,     0,     0,   699,    57,   350,     0,   628,     0,     0,
    2027     1004,   214,   628,   807,     0,     0,     0,   699,    77,     0,
    2028        0,     0,    57,    77,     0,     0,     0,  1015,     0,     0,
    2029        0,   176,   353,     0,     0,     0,     0,     0,     0,  1081,
    2030        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2031       17,    18,    19,    20,    21,    22,    23,    24,    25,  1109,
    2032        0,    26,    27,    28,     0,     0,   215,   348,   348,     0,
    2033       31,    79,   214,     0,     0,     0,    57,     0,    66,     0,
    2034        0,    57,     0,     0,    37,     0,   183,   184,    40,     0,
    2035     1485,     0,  1485,     0,     0,    41,    42,   353,    34,     0,
    2036      628,     0,     0,    79,     0,   207,    39,   259,   713,     0,
    2037      214,  1087,     0,     0,    57,   214,     0,     0,   223,     0,
    2038     1135,   265,  1135,  1135,     0,     0,  1485,     0,  1485,    45,
    2039       46,     0,     0,     0,     0,     0,     0,  1101,     0,     0,
    2040      224,   353,   353,   353,     0,   431,   117,     0,    45,    46,
    2041      924,     0,     0,     0,     0,   323,     0,     0,     0,   353,
    2042        0,     0,     0,     0,     0,     0,   924,     0,     0,     0,
    2043        0,     0,     0,     0,     0,     0,     0,   353,     0,     0,
    2044        0,     0,     0,     0,     0,    77,     0,   348,    74,     0,
    2045        0,     0,  1207,     0,     0,     0,     0,     0,     0,     0,
    2046      355,   214,     0,   595,     0,    77,     0,     0,     0,     0,
    2047        0,     0,    57,    77,    74,     0,   429,   353,     0,     0,
    2048        0,   699,   699,     0,   350,   350,     0,   356,     0,     0,
    2049        0,   355,     0,     0,    57,     0,   924,   924,     0,     0,
    2050        0,    57,     0,     0,  1192,     0,     0,     0,     0,   355,
    2051        0,    77,   353,     0,     0,     0,     0,     0,  1135,  1135,
    2052        0,     0,     0,   215,     0,     0,     8,     9,    10,    11,
    2053       12,     0,     8,     9,    10,    11,    12,     0,     0,   699,
    2054      699,     0,   214,     0,     0,     0,     0,     0,     0,     0,
    2055        0,     0,    57,   355,     0,    31,  1464,   353,     0,     0,
    2056        0,    31,     0,     0,     0,     0,     0,   353,     0,   353,
    2057        0,     0,     0,     0,   222,     0,   479,   353,     0,     0,
    2058        0,   353,    79,    34,   214,     0,   628,    79,    37,    34,
    2059      183,   184,    40,     0,    37,     0,   183,   184,    40,    41,
    2060       42,     0,     0,     0,   176,    41,    42,     0,     0,     0,
    2061        0,     0,   713,     0,  1513,     0,     0,     0,   355,     0,
    2062        0,     0,     0,  1521,     0,   907,     0,   411,     0,     0,
    2063        0,   185,     0,    45,    46,     0,     0,     0,     0,    45,
    2064       46,     0,    74,     0,     0,     0,     0,    37,     0,   183,
    2065      184,    40,     0,     0,     0,  1287,     0,     0,    41,    42,
    2066        0,     0,   355,   355,   355,     0,     0,     0,     0,     0,
    2067        0,     0,   353,   259,     0,     0,     0,    66,     0,     0,
    2068      355,     0,   224,     0,  1509,     0,   411,     0,     0,   699,
    2069        0,   713,    45,    46,     0,   117,   213,     0,   355,     0,
    2070     1371,     0,     0,     0,     0,   232,   214,     0,     0,    77,
    2071        0,   215,     0,     0,     0,     0,     0,     0,     0,     0,
    2072        0,   699,     0,     0,     0,     0,     0,     0,     0,   699,
    2073      699,   699,     0,     0,   214,    77,     0,     0,   355,   214,
    2074      350,   350,     0,     0,     0,     0,     0,   213,    86,    79,
    2075        0,     0,     0,     0,  1192,     0,     0,     0,     0,     0,
    2076        0,     0,     0,     0,   356,     0,     0,     0,     0,    79,
    2077        0,     0,     0,   355,   176,     0,     0,    79,     0,     0,
    2078       86,     0,     0,     0,     0,   353,   353,   117,   353,   353,
    2079      213,     0,     0,   699,     0,   356,     0,     0,     0,     0,
    2080        0,     0,     0,     0,     0,     0,   215,     0,    74,     0,
    2081      214,     0,     0,   356,     0,    79,     0,   225,   355,     0,
    2082        0,     0,     0,     0,   214,     0,     0,     0,   355,     0,
    2083      355,     0,     0,     0,     0,   223,     0,     0,   355,     0,
    2084        0,     0,   355,   353,   353,     0,     0,     0,     0,     0,
    2085        0,   213,  1483,     0,  1487,     0,     0,   356,     0,     0,
    2086      350,     0,     8,     9,    10,    11,    12,     0,     0,     0,
    2087      167,     0,   172,     0,     0,   178,   179,   180,     0,   182,
    2088        0,     0,     0,     0,     0,   117,     0,     0,  1515,   213,
    2089     1517,    31,     0,   233,   213,     0,     0,     0,     0,     0,
    2090        0,     0,     0,    77,   363,   248,   249,  1192,     0,   499,
    2091        0,     0,     0,     0,  1192,     0,   353,     0,   214,    34,
    2092        0,     0,   356,     0,    37,     0,   183,   184,    40,     0,
    2093        0,     0,  1546,   355,  1547,    41,    42,     0,     0,     0,
    2094        0,     0,     0,     0,     0,     0,     0,  1554,  1555,     0,
    2095        0,     0,     0,     0,     0,     0,     0,     0,     0,   222,
    2096        0,  1509,     0,   411,     0,  1192,   356,   356,   356,    45,
    2097       46,     0,  1534,     0,     0,     0,     0,     0,     0,     0,
    2098      213,    74,     0,     0,   356,     0,     0,     0,     0,     0,
    2099        0,     0,     0,   353,     0,   353,     0,     0,     0,    86,
    2100        0,     0,   356,     0,    86,     0,     0,     0,     0,     0,
    2101        0,     0,     0,    79,     0,     0,     0,     0,     0,     8,
    2102        9,    10,    11,    12,     0,   353,     0,     0,     0,     0,
    2103        0,     0,     0,   353,   353,   353,     0,     0,     0,    79,
    2104        0,     0,   356,     0,   353,   353,   355,   355,    31,   355,
    2105      355,     0,     0,     0,     0,     0,     0,     0,    74,     0,
    2106        0,   213,     0,     0,     0,     0,     0,     0,     0,    77,
    2107        0,     0,     0,     0,     0,     0,    34,   356,   213,     0,
    2108        0,    37,     0,   183,   184,    40,     0,     0,     0,     0,
    2109        0,     0,    41,    42,     0,     0,     0,   353,     0,   225,
    2110        0,     0,     0,   213,   355,   355,   124,   127,   128,     0,
    2111        0,     0,     0,     0,     0,   214,     0,     0,   265,     0,
    2112        0,     0,   356,     0,     0,     0,    45,    46,     0,     0,
    2113        0,     0,   356,     0,   356,     0,     0,     0,     0,   224,
    2114        0,     0,   356,     0,     0,     0,   356,     0,   535,   536,
    2115      537,   538,   539,   540,   541,   542,   543,   544,   545,     0,
    2116        0,   592,     0,   600,   353,     0,    86,     0,     0,     0,
    2117        0,     0,     0,     0,   624,   625,     0,   355,   254,     0,
    2118      255,   363,   546,     0,     0,     0,    86,     0,     0,     0,
    2119        0,     0,     0,     0,    86,     0,     0,     0,     0,     0,
    2120        0,     0,     0,     0,     0,     0,     0,    79,     0,     0,
    2121        0,    74,   363,     0,     0,     0,     0,     0,    74,     0,
    2122      223,     0,     0,     0,     0,   213,     0,     0,     0,     0,
    2123      363,     0,    86,     0,     0,     0,     0,   356,     0,     0,
    2124        0,     0,    77,     0,     0,     0,     0,     0,     0,     0,
    2125        0,     0,     0,   213,   355,     0,   355,     0,   213,     0,
    2126        0,   396,     0,     0,     0,     0,     0,     0,     0,    74,
    2127        0,   415,   416,     0,   363,     0,   420,     0,   422,   423,
    2128        0,     0,     0,     0,     0,     0,   355,     0,     0,     0,
    2129        0,     0,     0,     0,   355,   355,   355,     0,     0,     0,
    2130        0,     0,     0,   214,     0,   355,   355,     0,     0,     0,
    2131        0,     0,     0,     0,     0,     0,     0,     0,     0,    77,
    2132        0,     0,     0,     0,     0,     0,     0,     0,     0,   213,
    2133        0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2134        0,     0,     0,   213,     0,     0,     0,     0,     0,     0,
    2135      356,   356,     0,   356,   356,     0,     0,     0,   355,     0,
    2136        0,     0,     0,   499,     0,     0,     0,     0,     0,     0,
    2137        0,     0,     0,    79,  1014,     0,     0,     8,     9,    10,
    2138       11,    12,     0,   363,   363,   363,     0,     0,     0,     0,
    2139        0,     0,     0,     0,     0,     0,     0,     0,   214,     0,
    2140        0,   363,     0,     0,   282,   283,    31,   284,   356,   356,
    2141        0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
    2142        0,     0,     0,     0,     0,   355,     0,     0,     0,     0,
    2143       86,     0,     0,   285,    34,     0,     0,   213,     0,   286,
    2144        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2145       41,    42,     0,   292,   293,     0,    86,     0,     0,   363,
    2146        0,     0,     0,     8,     9,    10,    11,    12,     0,     0,
    2147        0,     0,    77,     0,     0,     0,   294,     0,   379,    77,
    2148        0,   356,     0,     0,   344,    46,   296,   297,   298,   299,
    2149        0,     0,    31,     0,   363,     0,     0,     0,     0,     0,
     1793      49,   113,   149,   150,   151,   449,   396,    97,   266,   425,
     1794     114,   397,    69,   757,   398,   436,    50,   399,   400,   732,
     1795     949,    76,   380,   381,   950,   951,   401,   402,  1049,   831,
     1796     814,   143,    49,   806,   934,   854,   602,   116,   152,    97,
     1797     693,   805,   743,   147,    69,   704,   717,   807,    50,    49,
     1798     722,   597,   784,    76,   259,   407,   160,   813,  1360,    31,
     1799     404,    70,  1118,   185,   664,   666,   208,   122,   153,    49,
     1800     192,   808,   904,   215,   802,   621,   225,   803,   218,   625,
     1801    1148,  1149,   201,   804,   563,   158,   396,  1165,  1150,   154,
     1802      31,   397,   422,    70,   398,   522,   162,   399,   400,   844,
     1803     844,   279,   106,   106,   340,   113,   401,   402,   374,  1159,
     1804      63,  1227,   167,   113,  1173,   844,   265,   270,   564,   289,
     1805      96,   589,  1182,  1183,   375,   260,  1056,   211,   261,   471,
     1806     473,   721,   202,   408,   106,  1282,   168,   123,  -239,  -239,
     1807     404,   257,    63,   149,   150,   151,   308,   147,    31,   158,
     1808     734,   937,    96,  1510,   160,   113,   343,   165,  1441,   208,
     1809     162,   280,   251,   148,   408,   406,   370,  1048,   501,    96,
     1810     949,   106,   846,   844,   950,   951,  1174,   142,   660,   152,
     1811    1525,   405,   324,   188,   185,   185,    96,   863,   711,    96,
     1812     802,   338,   160,   803,   845,   845,  1222,   669,   467,   804,
     1813     265,   908,  1509,   898,   658,   673,  1283,   817,    49,   153,
     1814     845,  -239,   472,   824,   788,   160,   251,   330,   408,    31,
     1815     208,   165,  1520,   149,   150,   151,    31,   439,  1422,  1524,
     1816     154,  1312,  1175,  1315,  1317,  1177,   435,   472,   308,   806,
     1817     427,   693,  1380,  1381,   430,   916,   998,   985,    31,   459,
     1818      49,    31,   144,   807,   328,   431,   705,    97,   270,   714,
     1819    1155,   405,    69,   270,   265,   265,    50,    96,   845,   974,
     1820     113,    76,   160,   997,   324,  1059,    76,   808,   655,    96,
     1821     802,   438,  1178,   803,   602,   647,  1156,  1150,   582,   804,
     1822     479,   416,  1452,   408,  1176,   308,   793,   496,   477,   384,
     1823     408,  1422,  1232,   704,   395,   188,   430,  1072,   308,   484,
     1824     146,    70,  1426,   662,  1382,   385,   432,   431,  1156,   667,
     1825     815,   155,   594,   822,   566,   594,  1468,  1164,    96,   147,
     1826    1233,   517,   170,  1148,  1149,  1165,   370,   840,  1179,   113,
     1827      96,  1150,   519,   343,   158,   443,   328,   595,   613,   251,
     1828     330,   655,   106,   814,   727,   162,  1049,   806,   467,   693,
     1829      63,  1496,   618,  1498,   456,   468,   618,  1380,  1381,   693,
     1830      96,   807,    56,   115,   728,   581,   285,   467,   432,   586,
     1831     693,   572,   622,   180,   475,   467,   626,   573,   726,    41,
     1832      42,   589,   200,   265,  1480,   808,   589,   831,   619,   656,
     1833    1485,   818,   623,   185,    56,   821,  1063,  1367,  1426,   211,
     1834     370,   172,   817,  1426,   738,   510,   165,   376,   141,  -294,
     1835    1505,   265,  1097,   308,   308,  1512,   838,   265,   969,   618,
     1836     841,   246,   110,  1426,   110,   884,    76,  1305,   209,  1391,
     1837    1426,   219,  1098,   249,  1405,    41,    42,    41,    42,    96,
     1838     113,   591,  1095,   252,  1417,    76,   704,  1306,  1406,   324,
     1839     324,  1150,  -522,    76,  1411,  1412,   387,   596,   265,   251,
     1840     240,   243,   656,   750,  1116,   755,   265,  1104,   618,   515,
     1841      49,   -12,   388,   370,   710,  1083,   678,    97,   549,   550,
     1842     113,  1165,    69,   855,  1453,  1048,    50,   682,  1165,   116,
     1843     602,    76,   308,  1221,   113,   978,   674,   308,  1454,   308,
     1844     308,   389,   573,   998,   705,   996,   867,   741,   391,   899,
     1845     856,   343,   633,   188,   484,   468,   324,   390,   484,   834,
     1846     211,   328,   328,   835,   392,   900,   695,   865,   517,   857,
     1847     517,    70,   696,   517,   468,   324,   517,   262,   414,   519,
     1848    1165,   519,   468,   895,   519,  -446,   901,   519,     2,   205,
     1849       4,     5,     6,     7,   489,   566,   566,   490,   712,  1147,
     1850     899,   433,   902,   308,   713,  1343,   574,  1341,   408,   693,
     1851     693,   441,   106,   618,   343,   723,  1060,   613,   702,  1104,
     1852      63,   724,   437,   595,   898,   595,   795,   737,   328,  -447,
     1853      96,  1136,  1138,   738,   596,   901,   878,   663,   665,   324,
     1854     836,  1213,   738,   618,   837,   467,   938,   328,   618,   791,
     1855     613,  1061,    56,    35,   618,    36,   996,   618,   618,   275,
     1856     453,  1162,   880,   833,   693,   693,   277,  1001,   738,  1162,
     1857    1296,   913,  1298,   618,  1008,   265,   738,  1163,   847,   830,
     1858     331,   516,  1390,   836,   586,  1288,  1297,  1079,  1299,    37,
     1859     839,   862,  1344,    40,  1053,  -112,   110,   705,   161,  -112,
     1860    1257,  1258,    41,    42,   897,   113,   438,   546,   892,    41,
     1861      42,   328,   193,   547,   548,   216,   515,   278,   226,   963,
     1862     332,   515,   704,    76,   515,   964,  1091,   577,   799,   408,
     1863     594,   618,   918,   613,   551,   552,    45,    46,  1014,   710,
     1864     710,   678,   396,   801,  1330,   596,   333,   397,  1331,    76,
     1865     398,   832,   682,   399,   400,   334,   591,  1080,   976,  1209,
     1866     335,  1458,   401,   402,   696,   573,   343,  1460,  1458,  1461,
     1867     741,   741,   868,   496,   408,  1337,  1338,   336,   778,   484,
     1868     211,   738,   738,     2,   205,     4,     5,     6,     7,   589,
     1869     369,   553,   554,   111,   211,   635,   161,   404,  1354,   949,
     1870    1340,  1345,   373,   950,   951,  1408,   738,   738,   371,   382,
     1871    1292,  1405,   468,   566,     2,   205,     4,     5,     6,     7,
     1872    1506,   386,   618,  1507,   981,   671,   555,   556,   896,   595,
     1873    1140,  1427,   110,   871,   161,   408,  1211,   738,   468,  1109,
     1874    1215,   595,  1110,   227,  1111,    41,    42,   693,    35,   394,
     1875      36,   697,  1333,   423,   693,   693,   693,   161,   977,   801,
     1876     596,   129,  1474,   130,   131,   132,   557,   558,  1475,   440,
     1877     110,  1530,   139,   237,    41,    42,   702,   573,   565,    35,
     1878     408,    36,    56,    41,    42,   211,    45,    46,   516,  1121,
     1879     308,   408,   424,   516,   214,   406,   516,    48,   112,  1132,
     1880    1160,   408,    69,   446,  1135,   716,   594,   720,  1407,   238,
     1881     241,    76,   343,    -3,   239,   330,   408,   693,   405,   343,
     1882     892,  -370,   892,  -399,   795,  1419,   112,   112,   110,    48,
     1883     139,   140,   480,   705,   113,   457,   175,   416,   651,   408,
     1884      48,    41,    42,   110,   500,   214,    48,   918,   918,   801,
     1885    1109,    70,   710,  1110,    48,  1111,    41,    42,   113,   308,
     1886      48,   596,   110,    48,   139,   140,    48,  1084,   458,   655,
     1887     678,  1137,   242,   594,   895,    41,    42,   289,   371,   112,
     1888     112,   682,   741,   504,  1226,   175,   509,   214,   175,   506,
     1889     967,   964,   106,   484,  1086,   324,   522,  1478,  1419,   729,
     1890      63,   730,   559,    48,   731,   560,    48,   735,  1204,   562,
     1891     705,   343,   938,    48,   544,   545,   938,   938,   561,  1218,
     1892    1492,   408,   740,   337,   408,   477,   330,   408,  -295,   702,
     1893      45,    46,   618,   618,   583,     8,     9,    10,    11,    12,
     1894    1062,    -3,   896,   461,    48,   648,   876,   830,   214,   544,
     1895     308,   851,   371,  1350,  1351,   883,    48,  1400,   964,   885,
     1896     106,  1066,  1167,  1066,    31,  1380,  1381,   328,   649,  1104,
     1897     650,    76,   596,   652,    37,   438,   182,   183,    40,  1228,
     1898    1229,    48,    48,   653,   544,   654,   214,    41,    42,   113,
     1899     656,   214,    34,   657,   892,   897,   175,    48,   659,   892,
     1900     903,   917,   905,   594,   256,    48,   453,   684,   918,    45,
     1901      46,    70,   683,   890,    48,   408,   265,    48,   686,   832,
     1902     688,    45,    46,  -243,   112,   678,   762,   763,   110,   725,
     1903    1303,   815,   330,   594,   891,  1109,   682,   796,  1110,   112,
     1904    1111,    41,    42,   112,  1275,  1276,  1277,    48,   112,   714,
     1905     175,   739,   106,   764,   765,   343,   747,   175,   770,   771,
     1906     468,    48,    48,  -296,   766,   767,   768,   769,    48,  1314,
     1907       8,     9,    10,    11,    12,    48,   214,  -297,     8,     9,
     1908      10,    11,    12,   798,     8,     9,    10,    11,    12,   809,
     1909      37,   -14,   182,   183,    40,   -15,   270,   113,    37,    31,
     1910     173,   174,    40,    41,    42,   852,   218,    31,   853,  1037,
     1911     859,    41,    42,    31,   896,   879,   881,   886,   308,   896,
     1912    1361,  -420,   906,  -526,  1361,   175,    48,    34,   921,   593,
     1913      69,   594,   618,   713,   929,    34,   113,    45,    46,    76,
     1914     931,    34,   175,    48,    48,  1084,   175,     8,     9,    10,
     1915      11,    12,   759,   760,   761,   111,   214,   211,   936,   935,
     1916      48,   942,    56,   943,    48,   702,   944,   945,   946,   947,
     1917    1058,   635,  1086,   971,   634,   972,    31,  1019,   973,    70,
     1918     961,  1403,   987,   988,   989,   618,   618,   990,   991,   992,
     1919      48,   993,  -408,   270,  -407,    74,  1518,   214,   308,   106,
     1920      48,  1016,  1050,  1073,    34,  1074,  1052,  1075,  1076,  1082,
     1921    1167,  1092,  1093,   738,  1096,   891,   751,  1068,    48,    76,
     1922     106,   756,   110,  1442,    48,  1099,   956,    74,    63,  1109,
     1923    1085,   113,  1110,  1094,  1111,    41,    42,  1101,   106,  1102,
     1924    1084,   396,   702,  1103,  1106,  1130,   397,  1151,   565,   398,
     1925     408,  1154,   399,   400,   438,  1168,    45,    46,  1152,    70,
     1926     112,   401,   402,  1316,   221,    48,    37,  1086,  1169,   461,
     1927      40,  1153,  1170,    48,   635,  1171,  1172,    48,  1180,    41,
     1928      42,    48,  1264,  1265,   112,  1267,   112,  1491,  1184,   265,
     1929    1191,    -3,  1272,  1186,  1274,   404,  1196,  1199,    37,  1201,
     1930     106,   489,    40,  1205,  1210,    43,   618,  1402,   468,  1214,
     1931    1212,    41,    42,    45,    46,   214,  1217,  1181,  1230,   655,
     1932    1223,   112,    56,  1234,  1236,  1238,   112,  1266,  1239,  1240,
     1933    1241,   113,  1243,   106,  1287,  1250,   864,   709,   866,  1259,
     1934    1084,  1260,  1269,   214,  1270,    45,    46,  1294,   214,    66,
     1935     117,   351,  1271,   957,   113,  1300,   110,  1273,   139,   140,
     1936    1304,   113,  1281,   113,  1302,   113,  1167,  1086,  1019,    41,
     1937      42,  1308,  1309,  1167,   112,    76,  1310,  1313,   149,   150,
     1938     151,    66,    76,  1318,  1320,  1326,  1327,  1328,   912,  1329,
     1939      48,  1277,    48,   175,  1339,  1490,  1336,   850,   159,  1465,
     1940     113,  1465,   113,  1346,  1357,  1347,  1393,  1355,   175,  1356,
     1941    1466,    48,  1466,   113,  1363,    70,   405,   214,   220,  1490,
     1942    1490,   175,    70,   877,   445,  1167,    48,   160,  1374,   308,
     1943     112,   214,  1364,   106,    76,  1375,  1465,  1037,  1465,    48,
     1944     656,   112,    48,   112,  1490,    74,  -409,  1466,  1389,  1466,
     1945      74,   370,  1378,  1386,   258,  1395,   106,  1397,  1398,  1399,
     1946    1404,  1418,  1413,   106,   468,   324,  1414,  1415,   209,   219,
     1947     110,   468,   139,   140,    70,    48,  1416,  1331,  1428,   112,
     1948    1262,   112,  1430,    41,    42,   112,   228,  1432,  1423,   229,
     1949      56,  1434,   233,   112,   235,  1436,   329,  1438,  1445,  1440,
     1950    1446,   244,  1447,   175,   258,   348,    48,    48,  1085,   718,
     1951    1448,  1459,  1469,  1471,   719,   106,    37,  1476,   173,   174,
     1952      40,    48,   214,   468,  1473,  1477,  1484,  1500,  1499,    41,
     1953      42,  1504,  1511,  1353,   403,  1513,  1515,   328,  1521,   475,
     1954    1528,   970,  1529,   874,   221,  1185,   772,   775,   773,   421,
     1955     774,   975,   426,   428,   776,   369,  1108,   159,  1286,  1479,
     1956    1392,  1531,   986,  1348,  1216,   437,  1365,  1349,   212,  1462,
     1957      56,     8,     9,    10,    11,    12,  1190,   231,   444,   907,
     1958     887,   888,   447,  1198,   448,   909,  1379,   544,  1067,  1387,
     1959    1071,   790,  1105,   455,  1015,  1081,    48,   858,   707,    66,
     1960      31,   923,  1295,  1085,   469,   932,   780,   781,    48,   782,
     1961      74,     0,     0,     0,   476,     0,     0,     0,     0,   212,
     1962       0,     0,   428,     0,   351,     0,   506,   228,    34,    74,
     1963       0,     0,     0,  1425,     0,  1100,     0,    74,  1429,     0,
     1964       8,     9,    10,    11,    12,     0,     0,     0,     0,     0,
     1965     634,     0,     0,     0,  1112,   351,   112,     0,  1112,     0,
     1966       0,   212,     0,     0,     0,     0,     0,  1451,     0,    31,
     1967     968,     0,   740,   351,   408,    74,     0,     0,     0,     0,
     1968      45,    46,     0,     0,     0,     0,     0,    48,   258,    48,
     1969       0,     0,   587,     0,   494,     0,   112,    34,   615,     0,
     1970       0,     0,     0,  1085,   523,  1112,     0,     0,   524,   525,
     1971     526,   620,   214,     0,     0,   620,   351,     0,  1463,    48,
     1972    1467,     0,   212,     0,     0,     0,    56,     0,   410,     0,
     1973       0,   213,   527,    56,   528,   418,   529,   530,     0,     0,
     1974     112,   917,  1009,   594,     0,     0,     0,     0,     0,    45,
     1975      46,     0,  1519,   634,     0,  1495,     0,  1497,  1519,   112,
     1976     212,  1145,  1146,   112,   469,   212,   228,     0,   233,  1519,
     1977       0,     0,     0,  1519,     0,     0,     0,     0,   348,   351,
     1978     495,     0,   213,   469,   907,    56,     0,     0,     0,     0,
     1979       0,   469,    37,     0,   182,   183,    40,     0,     0,  1526,
     1980       0,  1527,  1112,     0,     0,    41,    42,   410,     0,   689,
     1981     112,     0,   428,     0,  1534,  1535,  1193,  1194,     0,     0,
     1982       0,     0,   351,   351,   213,     0,     0,   703,     0,    66,
     1983     907,   890,     0,   408,     0,     0,     0,   428,   351,    45,
     1984      46,   428,     8,     9,    10,    11,    12,   112,     0,     0,
     1985     212,     0,     0,     0,   228,     0,   351,     0,     0,     0,
     1986       0,    48,  1119,     0,   571,     0,    48,    74,     0,     0,
     1987     348,    31,   575,     0,    37,   578,   173,   174,    40,     0,
     1988      77,     0,     0,    48,     0,   213,     0,    41,    42,     0,
     1989       0,     0,     0,    74,   214,     0,   351,     0,     0,    34,
     1990       0,     0,     0,     0,    37,     0,     0,   112,    40,     0,
     1991    1009,     0,    77,   373,     0,   783,     0,    41,    42,     0,
     1992       0,     0,  1112,   213,  1112,  1112,     0,     0,   213,     0,
     1993     212,   351,   620,   794,     0,   410,     0,     0,     0,   418,
     1994       0,     0,     0,    43,   811,     0,   212,     0,     0,   222,
     1995     694,    45,    46,     0,     0,     0,     0,     0,     0,   112,
     1996       0,     0,   587,     0,    79,     0,     0,   587,     0,     0,
     1997       0,   212,     0,   620,   351,     0,   348,   348,     0,     0,
     1998       0,     0,     0,     0,   351,     0,     0,     0,     0,   907,
     1999     221,   214,   348,     0,     0,   351,    79,     0,    37,  1319,
     2000     182,   183,    40,  1112,     0,     0,  1321,  1322,  1323,     0,
     2001     689,    41,    42,   213,     0,   410,     0,     0,     0,     0,
     2002       0,   469,     0,     0,     0,     0,     0,   112,     0,   112,
     2003     112,     0,     0,   223,     0,     0,   353,   184,     8,     9,
     2004      10,    11,    12,     0,     0,    45,    46,   469,   907,   907,
     2005     348,     0,     0,     0,     0,    74,     0,     0,     0,   922,
     2006    1112,  1112,   428,     0,     0,     0,     0,    31,     0,  1366,
     2007       8,     9,    10,    11,    12,     0,     0,   351,     0,     0,
     2008       0,     0,     0,     0,   351,   703,     0,     0,     0,   212,
     2009     952,     0,     0,   213,     0,    34,     0,     0,  1443,    31,
     2010      37,     0,   182,   183,    40,   571,   571,     0,   112,     0,
     2011       0,     0,     0,    41,    42,     0,     0,   212,     0,     0,
     2012     354,     0,   212,     0,     0,     0,     0,    34,   689,     0,
     2013      77,     0,    37,     0,   213,    77,    40,   175,   689,   184,
     2014     494,   620,     0,     0,   984,    41,    42,    45,    46,   689,
     2015       0,   694,     0,     0,     0,    48,    48,     0,  1493,   995,
     2016      37,     0,   182,   183,    40,   112,   112,  1501,    57,    57,
     2017       0,   709,     0,    41,    42,     0,     0,     0,     0,    45,
     2018      46,     0,     8,     9,    10,    11,    12,     0,   869,     0,
     2019       0,   212,   872,     0,   351,   351,     0,   351,   351,  1489,
     2020      57,   408,     0,   112,     0,   212,     0,    45,    46,    66,
     2021       0,    31,     0,     0,    79,    74,     0,     0,     0,    79,
     2022       0,     0,     0,     0,     0,     0,   495,     0,     0,   222,
     2023       0,   794,     0,     0,    57,     0,     0,    57,   703,    34,
     2024       0,  1064,     0,     0,    37,     0,   182,   183,    40,   351,
     2025     351,     0,   213,     0,     0,     0,   907,    41,    42,     0,
     2026       0,     0,    48,   112,     0,     0,     0,  1078,     0,   694,
     2027       0,     0,   112,   907,     0,     0,   428,   117,    86,   694,
     2028     213,     0,     0,   264,     0,   213,    48,    48,     0,     0,
     2029     694,    45,    46,     0,     0,    77,   212,     0,     0,     8,
     2030       9,    10,    11,    12,     0,     0,     0,     0,     0,   353,
     2031      86,    48,     0,   223,    77,     0,     0,     0,     0,     0,
     2032     351,     0,    77,   571,   346,     0,     0,     0,    31,     0,
     2033     587,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2034     353,     0,     0,   426,     0,   907,   907,   224,   689,   689,
     2035       0,   348,   348,     0,   213,     0,    34,     0,   353,     0,
     2036      77,    37,   221,   182,   183,    40,     0,     0,   213,  1166,
     2037       0,     0,     0,     0,    41,    42,     0,     0,    37,    79,
     2038     182,   183,    40,    74,     0,     0,     0,     0,    57,     0,
     2039       0,    41,    42,   354,     0,   351,     0,   351,    79,     0,
     2040     593,   353,   594,   689,   689,     0,    79,     0,    45,    46,
     2041       0,     0,     0,     0,     0,   523,     0,   264,    57,   524,
     2042     525,   526,     0,     0,   354,    45,    46,     0,     0,     0,
     2043       0,     0,   351,     0,   361,     0,   410,     0,     0,   351,
     2044     351,   351,   354,   527,    79,   528,     0,   529,  1285,     0,
     2045     351,   351,     0,     0,     0,     0,     0,     0,     0,   213,
     2046       0,     0,     0,    74,   353,     0,     0,     0,     0,     0,
     2047       0,     0,     0,     0,   703,     0,     0,     0,     0,     0,
     2048       0,     0,     0,     0,     0,   354,   212,     0,     0,   694,
     2049     694,   531,   532,   533,   534,   535,   536,   537,   538,   539,
     2050     540,   541,   351,     0,     0,     0,     0,   353,   353,     0,
     2051       0,  1122,     0,     0,     0,     0,  1263,     0,     0,     0,
     2052       0,     0,     0,   353,     0,   542,     0,  1133,    86,     0,
     2053       0,     0,     0,    86,     0,     0,     0,    66,     0,     0,
     2054       0,   353,     0,     0,   694,   694,     0,     0,   354,   689,
     2055       0,   703,    77,     0,     0,   117,     0,     0,     0,     0,
    21502056       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2151        0,     0,     0,     0,     0,     0,     0,   927,     0,   928,
    2152       34,     0,     0,     0,   224,    37,   931,   932,     0,    40,
    2153       77,   937,     0,     0,     0,     0,    41,    42,     0,   363,
    2154        0,     0,     0,   942,     0,     0,    79,     0,   946,   363,
    2155        0,   363,     0,     0,     0,     0,   225,     0,   356,   363,
    2156      356,     0,   719,   363,     0,     0,     0,     0,     0,     0,
    2157       45,    46,     0,     0,     0,     0,   980,     0,     0,     0,
     2057       0,   351,     0,     0,     0,     0,     0,     0,    77,     0,
     2058       0,   353,     0,     0,     0,     0,   689,     0,     0,     0,
     2059       0,   354,   354,   689,   689,   689,     0,   346,     0,     0,
     2060       0,     0,   410,     0,   348,   348,     0,   354,     0,     0,
     2061       0,     0,     0,     0,     0,     0,   353,  1166,     0,    74,
     2062       0,     0,     0,     0,     0,   354,    74,   224,   166,     0,
     2063     171,     0,     0,   177,   178,   179,    79,   181,     0,     0,
     2064       0,  1219,     0,     0,     0,     0,     0,     0,    57,   213,
     2065     117,   232,     0,     0,     0,     0,   689,     0,     0,   353,
     2066       0,     0,    79,   247,   248,   354,     0,     0,   212,   353,
     2067       0,     0,     0,     0,     0,   222,     0,     0,    74,     0,
     2068     353,     0,     0,     0,     0,     0,     0,     0,     0,   346,
     2069    1293,     0,     0,    86,     0,     0,     0,     0,     0,     0,
     2070     354,     0,     0,     0,     0,     0,     0,   361,     0,     0,
     2071       0,     0,    86,     0,     0,     0,     0,     0,     0,     0,
     2072      86,     0,     0,     0,     0,   348,     0,   694,     0,     0,
     2073       0,     0,     0,     0,   694,   694,   694,     0,   361,     0,
     2074      77,     0,     0,   354,     0,     0,     0,     0,     0,     0,
     2075     117,     0,   346,   354,     0,     0,   361,     0,    86,   223,
     2076       0,     0,   353,     0,   354,   212,     0,     0,     0,   353,
     2077       0,     0,     0,  1166,     0,     0,     0,     0,     0,     0,
     2078    1166,     0,   994,     0,     0,     8,     9,    10,    11,    12,
     2079       0,     0,     0,     0,     0,   346,   346,   694,     0,   361,
    21582080       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2159      356,     0,     0,     0,     0,     0,     0,     0,   356,   356,
    2160      356,     0,     0,     0,     0,     0,     0,     0,     0,   356,
    2161      356,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2162        0,     0,     0,    79,    86,     0,     0,     0,     0,     0,
    2163        0,     0,     0,     0,   213,     0,     0,     0,     0,     0,
    2164        0,     0,  1166,     0,     0,     8,     9,    10,    11,    12,
    2165        0,     0,     0,     0,   363,   797,   798,     0,     0,     0,
    2166        0,     0,   356,     0,     0,     0,     0,     0,   165,     0,
    2167        0,     0,   282,   283,    31,   284,  1025,  1026,  1027,  1028,
    2168        0,  1030,     0,     0,   831,   218,     0,   834,   835,     0,
    2169      838,     0,   840,   841,     0,     0,  1074,   842,   843,     0,
    2170        0,   285,    34,     0,     0,     0,     0,   286,     0,     0,
    2171     1080,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2172        0,   292,   293,     0,     0,     0,     0,     0,     0,   356,
    2173        0,     0,   165,     0,     0,     0,   272,     0,     0,     0,
    2174        0,     0,     0,     0,   294,     0,   379,     0,     0,     0,
    2175     1100,     0,  1167,    46,   296,   297,   298,   299,     0,     0,
    2176        0,     0,     0,     0,     0,   165,     0,   363,   363,     0,
    2177      363,   363,     0,     0,     0,   369,    79,     0,     0,   375,
    2178        0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
    2179       86,     0,     0,     0,     0,  1131,     0,     0,     0,     0,
    2180        0,  1140,     0,     0,     0,     0,  1144,     0,     0,     0,
    2181        0,  1148,     0,  1149,     0,     0,     0,  1151,     0,  1152,
    2182     1153,     0,   213,  1156,     0,   363,   363,     0,   165,     0,
    2183        0,     0,  1168,     0,    79,   971,   972,     0,     0,     0,
    2184      218,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2185     1183,  1184,     0,     0,     0,     0,     0,     0,   165,     8,
    2186        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2187       19,    20,    21,    22,    23,    24,    25,  1214,     0,     0,
    2188     1216,     0,     0,   375,     0,     0,     0,     0,    31,     0,
    2189      165,     0,     0,     0,     0,     0,     0,     0,   363,     0,
    2190        0,     0,   126,   126,   126,     0,     0,     0,     0,     0,
    2191        0,     0,     0,   524,     0,     0,    34,   213,     0,     0,
    2192        0,     0,     0,  1230,     0,     0,   165,     0,     0,  1234,
    2193     1235,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2194        0,   225,     0,     0,     0,     0,     0,     0,     0,  1251,
    2195        0,     0,     0,  1253,     0,     0,     0,     0,  1257,     0,
    2196        0,     0,     0,    86,   598,     0,     0,     0,     0,   622,
    2197        0,  1265,     0,     0,   126,   363,   126,   363,     0,     0,
    2198        0,     0,     0,     0,  1272,     0,  1274,  1275,  1276,  1277,
    2199        0,     0,     0,     0,     0,     0,     0,     0,  1092,     0,
    2200        0,   275,  1284,     0,  1285,     0,     0,   363,   172,     0,
    2201        0,     0,     0,     0,     0,   363,   363,   363,     0,     0,
    2202        0,     0,     0,     0,     0,     0,   363,   363,     0,     0,
    2203      211,     0,     0,     0,     0,     0,     0,  1313,  1314,   231,
    2204       86,   235,     0,   237,     0,   165,   165,     0,     0,     0,
    2205      246,     0,   369,     0,     0,     0,     0,   126,     0,     0,
    2206        0,     0,     0,     0,     0,   126,     0,   126,   126,     0,
    2207        0,     0,   126,   524,   126,   126,     0,     0,     0,   363,
    2208        0,   211,     0,   235,   237,   246,     0,  1346,  1347,     0,
    2209        0,     0,     0,     0,     0,     0,     0,  1357,     0,     0,
    2210        0,   716,     0,     0,     0,     0,     0,     0,     0,     0,
    2211        0,     0,     0,   165,     0,     0,     0,     0,     0,     0,
    2212        0,     0,     0,     0,   211,   524,     0,   524,     0,     0,
    2213      524,     0,   165,   524,     0,     0,     0,     0,     0,     0,
    2214        0,     0,     0,     0,   126,   369,   363,     0,     0,     0,
    2215        0,     0,     0,     0,     0,     0,     0,     0,  1392,  1222,
    2216     1393,  1394,  1395,     0,     0,     0,     0,     0,     0,     0,
    2217        0,     0,  1399,     0,     0,     0,     0,     0,     0,     0,
    2218        0,  1410,     0,     0,     0,   211,     0,   235,   237,   246,
    2219        0,     0,     0,    86,     0,     0,     0,     0,   165,     0,
    2220       86,     0,     0,     0,     0,     0,  1431,     0,     0,     0,
    2221      369,     0,     0,     0,   812,     0,     0,     0,     0,     0,
    2222        0,     0,     0,   211,     0,     0,     0,     0,   211,     0,
    2223        0,     0,     0,     0,   156,     0,     0,     0,     0,     0,
    2224      598,     0,     0,   497,     0,   598,     0,     0,     0,  1469,
    2225     1470,    86,     0,     0,   369,   369,   369,     0,     0,     0,
    2226        0,     0,  1475,     0,     0,     0,     0,     0,     0,  1475,
    2227        0,     0,   369,     0,     0,     0,     0,     0,     0,     0,
    2228        0,   251,     0,     0,     0,     0,     0,     0,     0,     0,
    2229     1308,   256,   211,     0,     0,     0,     0,     0,     0,     0,
    2230        0,  1508,     0,     0,   524,  1514,     0,     0,     0,     0,
    2231        0,     0,     0,     0,   211,     0,     0,     0,     0,   235,
    2232      237,     0,     0,     0,     0,     0,     0,   246,     0,     0,
    2233      369,     0,   936,  1536,     0,  1537,     0,     0,     0,     0,
    2234        0,     0,     0,     0,     0,     0,     0,   156,     0,     0,
     2081       0,   346,   281,   282,    31,   283,     0,     0,     0,     0,
     2082       0,     0,     0,     0,    79,     0,     0,     0,     0,     0,
     2083       0,   213,  1166,     0,     0,     0,     0,     0,     0,  1514,
     2084       0,   284,    34,     0,     0,     0,   354,   285,     0,     0,
     2085       0,   286,     0,   354,   287,   288,   289,   290,   291,   292,
     2086      41,    42,   361,   293,   294,     0,     0,     0,     0,   346,
     2087       0,     0,     0,     0,     0,     0,     0,     0,     0,   353,
     2088     353,     0,   353,   353,     0,     0,   295,     0,   376,     0,
     2089       0,     0,     0,     0,   342,    46,   297,   298,   299,   300,
     2090      77,     0,     0,     0,     0,   361,   361,     0,     0,     0,
     2091       0,     0,     0,     0,     0,     0,     0,   585,     0,   592,
     2092       0,   361,     0,     8,     9,    10,    11,    12,   213,     0,
     2093     616,   617,     0,     0,   353,   353,     0,     0,     0,   361,
     2094       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
     2095      86,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2096       0,     0,     0,   354,   354,     0,   354,   354,     0,     0,
     2097       0,     0,     0,     0,    31,     0,    86,     0,     0,   361,
     2098      34,     0,     0,     0,    79,    37,     0,   182,   183,    40,
     2099       0,     0,     0,     0,     0,     0,     0,     0,    41,    42,
     2100       0,     0,    34,     0,     0,   353,     0,    37,     0,   182,
     2101     183,    40,     0,     0,   361,     0,     0,     0,   354,   354,
     2102      41,    42,     0,     0,   890,     0,   408,     0,    57,     0,
     2103       0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
     2104       0,     0,     0,     0,     0,     0,  1489,   222,   408,     0,
     2105     346,     0,     0,     0,    45,    46,     0,   361,   281,   282,
     2106       0,   283,     0,     0,     0,     0,     0,   361,    77,     0,
     2107       0,     0,     0,   224,     0,     0,     0,     0,   361,     0,
     2108     353,     0,   353,     0,     0,     0,     0,   284,     0,   354,
     2109       0,     0,     0,   285,     0,     0,    57,   286,     0,     0,
     2110     287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
     2111     294,     0,     0,     0,     0,     0,     0,   353,     0,     0,
     2112       0,     0,     0,     0,   353,   353,   353,     0,     0,     0,
     2113       0,   223,   295,     0,   376,   353,   353,     0,    86,     0,
     2114      45,    46,   297,   298,   299,   300,     0,     0,    77,     0,
     2115       0,     0,    79,   777,     0,     0,     0,     0,     0,     0,
     2116     361,     0,     0,     0,   354,     0,   354,   361,     0,     0,
     2117     346,   346,     0,     0,     0,     0,     0,     0,     0,     0,
     2118       0,     0,     0,     0,     0,     0,     0,   353,    57,     0,
     2119       0,     0,     0,     0,   210,     0,     0,     0,     0,     0,
     2120       0,   354,     0,   230,     0,   234,     0,   236,   354,   354,
     2121     354,     0,     0,     0,   245,     0,     0,     0,     0,   354,
     2122     354,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2123       0,     0,    79,     0,     0,     0,     0,     0,     0,     0,
     2124       0,     0,     0,     0,     0,   210,     0,   234,   236,   245,
     2125       0,     0,     0,     0,     0,     0,   353,     0,     0,     0,
     2126       0,     0,     0,     0,     0,   910,     0,   911,     0,     0,
     2127       0,   354,     0,     0,   914,   915,     0,   361,   361,   920,
     2128     361,   361,     0,     0,     0,     0,     0,   210,     0,     0,
     2129       0,     0,   926,     0,     0,     0,     0,   930,    86,     0,
     2130       0,     0,     0,     0,    77,     0,     0,     0,     0,     0,
     2131       0,    77,     0,     0,     0,     0,     0,     0,     0,     0,
     2132       0,     0,     0,     0,   592,     0,     0,     0,     0,     0,
     2133       0,     0,   361,   361,    57,    57,     0,     0,     0,     0,
     2134     354,     0,     0,     0,     0,     0,     0,     0,   210,     0,
     2135     234,   236,   245,     0,     0,     0,    57,     0,     0,     0,
     2136       0,     0,     0,    77,     0,     0,     0,     0,     0,     0,
     2137       0,     0,     0,     0,    57,     0,     0,     0,     0,     0,
     2138       0,     0,     0,     0,     0,     0,   210,     0,    79,     0,
     2139       0,   210,     0,     0,     0,    79,     0,     0,     0,     0,
     2140       0,     0,     0,   361,     0,     0,   493,     0,     0,     0,
     2141       0,     0,     0,     0,     0,     0,     0,  1004,     0,  1005,
     2142    1006,  1007,     0,   346,   346,     0,     0,     0,     0,     0,
     2143       0,    57,   164,     0,     0,     0,    57,     0,  1051,     0,
     2144       0,     0,     0,     0,     0,   224,     0,    79,     0,   217,
     2145       0,     0,  1057,     0,     0,     0,     0,   210,     0,     0,
     2146       0,     0,     0,     0,     0,     0,    86,     0,     0,    57,
     2147       0,     0,     0,     0,     0,     0,   210,     0,   361,     0,
     2148     361,   234,   236,     0,     0,     0,     0,     0,     0,   245,
     2149       0,  1077,     0,     0,     0,     0,   164,     0,     0,     0,
     2150     271,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2151       0,     0,     0,     0,     0,   361,     0,     0,     0,     0,
     2152       0,     0,   361,   361,   361,     0,     0,     0,     0,   164,
     2153       0,   210,     0,   361,   361,  1107,     0,     0,     0,   367,
     2154    1117,     0,   372,     0,   346,  1120,    86,     0,     0,   210,
     2155    1124,     0,     0,     0,   210,  1126,   210,  1127,  1128,     0,
     2156       0,  1131,     0,     0,     0,     0,     0,     0,     0,    57,
     2157    1143,     0,   210,     0,     0,   210,   210,     0,     0,     0,
     2158       0,     0,     0,   210,     0,   361,  1157,  1158,     0,     0,
     2159       0,   164,    57,     0,     0,     0,     0,   210,     0,    57,
     2160       0,     0,     0,   217,   210,     0,     0,     0,     0,     0,
     2161       0,     0,  1187,     0,     0,  1189,     0,     0,     0,     0,
     2162       0,   164,     0,     0,     0,   124,   127,   128,     8,     9,
     2163      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2164      20,    21,    22,    23,    24,    25,   372,     0,     0,     0,
     2165       0,    57,     0,   164,   361,     0,     0,    31,  1203,     0,
     2166       0,     0,     0,     0,  1207,  1208,     0,     0,     0,     0,
     2167       0,     0,     0,     0,     0,     0,     0,     0,   520,     0,
     2168       0,     0,     0,  1224,     0,    34,     0,     0,  1231,     0,
     2169       0,   164,     0,  1235,     0,     0,     0,   253,     0,   254,
     2170       0,     0,    86,     0,  1242,     0,     0,     0,     0,    86,
     2171       0,     0,     0,     0,     0,   210,     0,  1249,     0,  1251,
     2172    1252,  1253,  1254,     0,     0,     0,   590,     0,     0,     0,
     2173       0,   614,     0,     0,  1261,     0,  1157,     0,     0,     0,
     2174     171,     0,     0,   210,     0,     0,     0,     0,   210,     0,
    22352175       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2236        0,   386,     0,  1552,  1553,   716,     0,     0,     0,     0,
    2237      211,  1556,  1557,     0,     0,     0,     0,     0,     0,     0,
    2238        0,     0,     0,     0,   418,     0,     0,     0,   211,   282,
    2239      283,     0,   284,   211,     0,   211,     0,     0,   433,     0,
    2240        0,     0,     0,     0,     0,     0,     0,   438,     0,     0,
    2241        0,     0,   211,     0,     0,   211,   211,   446,   285,     0,
    2242        0,     0,   369,   211,   286,     0,   622,     0,   287,     0,
    2243      369,   288,   289,   290,   291,    41,    42,   211,   292,   293,
    2244        0,     0,   464,     0,   211,     0,     0,   474,     0,     0,
    2245        0,   126,   126,     0,     0,     0,     0,     0,     0,     0,
    2246      482,   294,     0,   379,     0,     0,   492,     0,   496,    45,
    2247       46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
    2248      126,     0,   788,   126,   126,   526,   126,     0,   126,   126,
    2249        0,     0,     0,   126,   126,     8,     9,    10,    11,    12,
     2176       0,    86,     0,     0,     0,     0,     0,     0,  1289,  1290,
     2177       0,     0,     0,     0,     0,     0,     0,     0,     0,   393,
     2178       0,     0,     0,     0,     0,     0,     0,     0,     0,   412,
     2179     413,     0,     0,     0,   417,     0,   419,   420,     0,     0,
     2180     156,     0,     0,     0,     0,     0,   164,   164,     0,     0,
     2181       0,     0,   367,     0,     0,     0,     0,   210,     0,     0,
     2182       0,     0,  1324,  1325,     0,     0,     0,     0,     0,     0,
     2183       0,   210,  1335,   520,     0,     0,     0,     0,     0,     0,
     2184       0,     0,     0,     0,     0,     0,     0,   250,     0,     0,
     2185       0,     0,   493,     0,     0,     0,     0,   255,     0,     0,
     2186       0,   706,     0,     0,     0,     0,     0,     0,     0,     0,
     2187       0,     0,     0,   164,     0,     0,     0,     0,     0,     0,
     2188       0,     0,     0,     0,     0,   520,     0,   520,     0,     0,
     2189     520,     0,   164,   520,  1370,     0,  1371,  1372,  1373,     0,
     2190       0,     0,     0,     0,   367,     0,     0,     0,  1377,     0,
     2191       0,   210,     0,     0,     0,     0,  1388,     0,     0,     0,
     2192       0,     0,   210,     0,     0,     0,   383,     0,     0,     0,
     2193       0,     0,     0,     0,     0,     0,     0,     0,     0,   210,
     2194       0,  1409,  1410,     0,     0,     0,     0,     0,     0,   415,
     2195       0,     0,     0,     0,     0,     0,   164,     0,     0,     0,
     2196       0,     0,     0,   429,     0,     0,     0,   367,     0,     0,
     2197     797,     0,   434,     0,     0,     0,     0,     0,     0,     0,
     2198       0,     0,   442,     0,     0,     0,  1449,  1450,     0,     0,
     2199       0,     0,     0,     0,     0,     0,   590,     0,     0,  1455,
     2200       0,   590,     0,     0,     0,     0,  1455,   460,     0,     0,
     2201     367,   367,   470,     0,     0,     0,     0,     0,     0,     0,
     2202       0,     0,     0,     0,     0,   478,   367,     0,     0,     0,
     2203       0,   488,     0,   492,     0,     0,     0,     0,     0,  1488,
     2204       0,     0,     0,  1494,     0,     0,     0,     0,     0,     0,
     2205     210,     0,   521,     0,     0,     0,     0,     0,   520,     0,
     2206       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2207       0,  1516,     0,  1517,     0,     0,     0,     0,     0,     0,
     2208     210,     0,     0,     0,   367,     0,   919,     0,     0,     0,
     2209       0,     0,     0,   580,     0,     0,     0,   584,     0,     0,
     2210       0,  1532,  1533,     0,     0,     0,     0,     0,     0,  1536,
     2211    1537,     0,   210,     0,     0,     0,     0,     0,     0,   706,
     2212       0,     0,     0,   210,     0,   627,     0,     0,     0,   628,
     2213     629,     0,   630,     0,     0,     0,     0,     0,     0,   641,
     2214     642,     0,   643,   644,     0,   645,     0,   646,     0,     0,
     2215       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2216       0,     0,     0,     0,   580,     0,     0,     0,   785,   786,
     2217       0,     0,   661,     0,     0,     0,     0,   614,     0,     0,
     2218       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2219       0,     0,   210,     0,     0,   816,   672,     0,   819,   820,
     2220       0,   823,     0,   825,   826,     0,   210,     0,   827,   828,
     2221       0,   126,   126,   126,   503,     0,   505,   508,     0,     0,
     2222       0,     0,   698,     0,     0,     0,   511,   512,   701,     0,
     2223       0,     0,     0,   460,     0,     0,     0,     0,     0,     0,
     2224       0,   505,   505,     0,     0,     0,     0,     0,     0,     0,
     2225       0,     0,     0,     0,     0,     0,     0,     0,     0,   339,
     2226     362,     0,     0,     0,     0,   367,     0,     0,     0,   736,
     2227       0,     0,   706,     0,     0,     0,   505,     0,     0,     0,
     2228       0,     0,     0,   126,   754,   126,     0,   520,     0,     0,
     2229       0,     0,   411,     0,   210,     0,     0,     0,     0,   411,
     2230       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2231     274,   505,   164,     0,     0,     0,     0,     0,     0,     0,
     2232       0,   779,     0,     0,     0,     0,     0,     0,     0,     0,
     2233     789,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2234       0,     0,     0,     0,   954,   955,     0,     0,     0,     0,
     2235     810,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2236       0,     0,     0,     0,   590,   126,     0,     0,     0,     0,
     2237       0,   411,     0,   126,     0,   126,   126,     0,     0,     0,
     2238     126,     0,   126,   126,     0,   367,   367,     0,   849,     0,
     2239       0,   210,     0,     0,   463,     2,   205,     4,     5,     6,
     2240       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2241      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2242       0,    26,    27,    28,   882,     0,     0,     0,   411,     0,
     2243      31,     0,   889,     0,     0,     0,   411,   576,     0,   411,
     2244     579,     0,   520,     0,     0,     0,     0,   362,     0,     0,
     2245       0,   606,   126,     0,     0,     0,     0,     0,    34,     0,
     2246      35,     0,    36,   250,     0,    38,    39,     0,     0,     0,
     2247     624,     0,     0,     0,   927,   928,     0,     0,     0,   505,
     2248     505,   505,   505,   505,   505,   505,   505,   505,   505,   505,
     2249     505,   505,   505,   505,   505,   505,   505,     0,     0,   411,
     2250    1069,     0,     0,   411,     0,     0,   962,    -3,   706,     0,
     2251       0,   966,     8,     9,    10,    11,    12,    13,    14,    15,
     2252      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2253    -298,     0,     0,   362,     0,     0,     0,     0,     0,     0,
     2254       0,    31,     0,   322,     0,     0,     0,     0,     0,   217,
     2255       0,     0,     0,   344,     0,     0,     0,     0,     0,     0,
     2256       0,     0,     0,     0,   379,   379,     0,     0,     0,    34,
     2257       0,   999,     0,     0,     0,     0,     0,     0,  1000,   411,
     2258    -298,     0,   362,     0,     0,   706,     0,     0,     0,     0,
     2259       0,  1002,     0,  1003,     0,     0,     0,     0,     0,     0,
     2260       0,     0,     0,     0,     0,     0,  1013,     0,     0,     0,
     2261       0,     0,  1017,     0,     0,     0,     0,     0,     0,   505,
     2262       0,   411,     0,     0,  1054,   362,     0,  1055,     0,     0,
     2263       0,     0,     0,     0,     0,   322,     0,     0,   367,   367,
     2264       0,     0,   210,     0,     0,     0,   217,     0,     0,     0,
     2265       0,     0,     0,     0,     0,  1195,     0,     0,     0,   474,
     2266       0,     0,     0,     0,     0,     0,     0,     0,     0,   411,
     2267     411,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2268     505,     0,     0,     0,     0,     0,     0,   792,   362,     0,
     2269       0,     0,     0,     0,     0,     0,     0,   606,     0,   606,
     2270     606,     0,     0,     0,     0,     0,   606,     0,     0,     0,
     2271     505,     0,     0,     0,     0,     0,   829,   362,     0,     0,
     2272       0,     0,   362,     0,     0,     0,     0,     0,     0,     0,
     2273       0,   362,   362,     0,     0,  1125,     0,     0,     0,     0,
     2274       0,     0,     0,     0,     0,     0,     0,   362,     0,     0,
     2275       0,     0,   411,   870,   126,   126,   411,   873,     0,   367,
     2276       0,     0,     0,   875,     0,     0,     0,     0,     0,     0,
     2277       0,     0,     0,     0,   379,     0,     0,     0,     0,     0,
     2278       0,   126,   411,  1284,   126,   126,     0,   126,     0,   126,
     2279     126,     0,     0,     0,   126,   126,  1188,     0,     0,     0,
     2280       0,     0,     0,     0,     0,   362,   606,     0,     0,     0,
     2281       0,     0,     0,     0,     0,     0,   520,     0,   520,     0,
     2282       0,     0,     0,     0,   505,     0,     0,     0,     0,     0,
     2283    1200,     0,     0,     0,     0,  1202,     0,     0,     0,     0,
     2284     362,     0,     0,  1206,   411,   411,     0,     0,     0,     0,
     2285       0,     0,     0,   520,     0,   520,     0,     0,     0,     0,
     2286       0,     0,     0,     0,     0,     0,     0,   700,     0,     0,
     2287     505,     0,     0,     0,     0,     0,     0,  1237,     0,     0,
     2288       0,     0,   164,     0,     0,     0,     0,   411,  1244,     0,
     2289       0,  1245,     0,  1246,     0,     0,     0,     0,     0,     0,
     2290       0,     0,   505,   606,     0,   606,   733,     0,  1255,  1256,
     2291       0,     0,     0,     0,   505,   606,     0,     0,   749,     0,
     2292       0,     0,     0,     0,   733,     0,     0,   733,  1268,     0,
     2293     126,   126,  1141,     0,     0,     8,     9,    10,    11,    12,
     2294     758,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2295       0,     0,     0,   505,     0,     0,     0,     0,     0,     0,
     2296       0,     0,   281,   282,    31,   283,     0,     0,     0,     0,
     2297     787,     0,     0,     0,  1307,     0,     0,   344,     0,     0,
     2298       0,   749,  1311,     0,     0,     0,   362,     0,     0,     0,
     2299       0,   284,    34,   362,   411,     0,   411,   285,     0,     0,
     2300     411,   286,     0,     0,   287,   288,   289,   290,   291,   292,
     2301      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2302       0,   606,   606,     0,     0,     0,     0,   848,     0,   505,
     2303       0,     0,     0,     0,     0,   379,   295,     0,   376,     0,
     2304       0,     0,     0,     0,  1142,    46,   297,   298,   299,   300,
     2305       0,     0,  1358,     0,  1359,     0,   411,     0,     0,     0,
     2306       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2307    1368,     0,  1369,     0,     0,   411,  1123,     0,     0,     0,
     2308       0,   126,     0,     0,     0,   362,   126,  1376,   505,   505,
     2309       0,   411,  1134,     0,   606,   606,  1139,     0,     0,     0,
     2310       0,     0,  1394,  1396,     0,     0,   362,   362,     0,     0,
     2311       0,   924,     0,  1401,     0,     0,  1206,     0,     0,     0,
     2312       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2313       0,     0,     0,   749,     0,   948,     0,     0,  1424,     0,
     2314       0,     0,     0,     0,     0,   958,     0,  1431,     0,     0,
     2315    1433,   965,  1435,  1437,  1439,     0,     0,     0,     0,     0,
     2316       0,     0,     0,     0,     0,     0,   411,     0,   411,     0,
     2317       0,     0,     0,   411,     0,     0,     0,     0,     0,     0,
     2318       0,     0,   606,     0,     0,     0,     0,     0,     0,     0,
     2319       0,   982,   983,  1470,     0,  1472,     0,  1206,     0,     0,
     2320       0,     0,     0,     0,     0,   411,  1220,   344,     0,     0,
     2321       0,     0,     0,  1483,     0,     0,     0,     0,     0,     0,
     2322       0,     0,     0,     0,     0,     0,     0,     0,     0,   362,
     2323       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2324       0,   126,     0,     0,     0,     0,  1011,     0,     0,     0,
     2325     379,     0,     0,     0,     0,     8,     9,    10,    11,    12,
    22502326      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2251       23,    24,    25,  -296,     0,     0,     0,     0,     0,     0,
    2252        0,     0,     0,     0,    31,   716,     0,     0,   586,     0,
    2253        0,     0,     0,   591,     0,     0,     0,     0,     0,     0,
    2254      524,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2255        0,     0,    34,     0,     0,     0,     0,     0,     0,   211,
    2256        0,     0,   636,  -296,   165,     0,   637,   638,     0,   640,
    2257        0,     0,     0,     0,     0,     0,   651,   652,     0,   653,
    2258      654,     0,   655,     0,   656,     0,     0,   211,     0,     0,
    2259        0,     0,   211,     0,     0,     0,     0,     0,     0,     0,
    2260        0,   586,     0,     0,   282,   283,     0,   284,     0,   671,
    2261        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2262      598,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2263        0,   126,   126,   285,   682,     0,     0,     0,     0,   286,
    2264        0,   369,   369,   287,     0,     0,   288,   289,   290,   291,
    2265       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2266      708,     0,     0,   211,     0,     0,   711,     0,     0,     0,
    2267        0,   464,     0,     0,     0,     0,   294,   211,   379,     0,
    2268        0,   380,     0,     0,    45,    46,   296,   297,   298,   299,
    2269        0,     0,     0,     0,     0,     0,     0,   497,     0,     0,
    2270        0,   524,     0,     0,     0,     0,     0,   746,     0,     0,
    2271        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2272        0,     0,   764,     0,  -519,     0,     0,     1,     2,     3,
     2327      23,    24,    25,     0,     0,    26,    27,    28,     0,   344,
     2328       0,     0,     0,     0,    31,     0,   344,     0,     0,     0,
     2329       0,     0,     0,     0,     0,     0,   505,     0,     0,     0,
     2330       0,     0,     0,     0,     0,     0,   362,     0,     0,     0,
     2331       0,     0,    34,   505,     0,     0,     0,     0,     0,   206,
     2332      39,     0,     0,     0,     0,     0,   322,   204,     2,   205,
    22732333       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    22742334      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2275       24,    25,     0,     0,    26,    27,    28,    29,     0,   211,
    2276       30,   791,     0,    31,    32,     0,     0,     0,     0,   716,
    2277      801,   211,     0,     0,     0,     0,     0,   803,     0,     0,
    2278        0,     0,     0,   811,     0,     0,     0,     0,    33,   126,
    2279      211,    34,   825,    35,   126,    36,    37,     0,    38,    39,
    2280       40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
    2281        0,   218,     0,     0,     0,     0,     0,     0,     0,     0,
    2282        0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
    2283        0,     0,   865,    43,     0,    44,     0,     0,     0,     0,
    2284        0,    45,    46,     0,     0,     0,     0,     0,   716,     0,
    2285        0,     0,     0,     0,     0,     0,     0,     0,     0,   414,
    2286        0,     0,     0,     0,     0,     0,   414,     0,   811,     0,
    2287        0,     0,     0,     0,     0,     0,   906,     0,     0,     8,
     2335      24,    25,     0,   379,    26,    27,    28,     0,   958,   362,
     2336     362,   733,     0,    31,    45,    46,     0,     0,     0,   126,
     2337       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2338       0,  1129,     0,     0,     0,   505,   505,     0,     0,     0,
     2339       0,    34,  1144,    35,     0,    36,    37,     0,   206,    39,
     2340      40,     0,     0,     0,     0,     0,     0,     0,     0,    41,
     2341      42,     0,   379,     0,  1161,     0,     0,     0,     0,     0,
     2342       0,     0,     0,     0,     0,     0,     0,     0,     0,   958,
     2343     958,     0,     0,     0,     0,    43,     0,   207,     0,     0,
     2344       0,     0,     0,    45,    46,     0,     0,     0,     0,  1192,
     2345       0,     0,     0,     0,     0,     1,     2,   205,     4,     5,
     2346       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2347      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2348     362,     0,    26,    27,    28,    29,     0,     0,    30,     0,
     2349       0,    31,     0,     0,     0,     0,     0,     0,     0,     0,
     2350       0,     0,     0,   958,     0,     0,     0,     0,     0,     0,
     2351       0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2352       0,    35,   848,    36,     0,     0,    38,    39,     0,     0,
     2353       0,     0,     0,     0,     0,     0,     0,  1247,  1248,     0,
     2354       2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
     2355      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2356      22,    23,    24,    25,     0,    44,    26,    27,    28,   411,
     2357       0,    45,    46,     0,     0,    31,     0,     0,     0,     0,
     2358       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2359       0,     0,     0,   411,   411,     0,     0,     0,     0,     0,
     2360       0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
     2361      38,    39,     0,     0,     0,     0,     0,     0,   411,     0,
     2362       0,     0,     1,     2,   205,     4,     5,     6,     7,     8,
    22882363       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2289       19,    20,    21,    22,    23,    24,    25,   369,   369,    26,
    2290       27,    28,     0,   211,     0,     0,   218,   251,    31,     0,
    2291        0,     0,     0,     0,     0,     0,     0,   943,   944,     0,
     2364      19,    20,    21,    22,    23,    24,    25,     0,  -418,    26,
     2365      27,    28,    29,     0,     0,    30,   281,   282,    31,  1020,
     2366    1021,     0,  1022,     0,     0,  1023,  1024,  1025,  1026,  1027,
     2367    1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,  1352,
     2368    1032,  1033,   733,    33,     0,   284,    34,     0,    35,     0,
     2369      36,  1034,     0,    38,    39,   286,     0,     0,   287,   288,
     2370     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    22922371       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2293        0,     0,     0,   211,     0,     0,    34,     0,   414,     0,
    2294        0,    37,     0,    38,    39,    40,     0,     0,     0,     0,
    2295      981,     0,    41,    42,     0,   126,   985,     0,     0,     0,
    2296        0,     0,     0,     0,     0,     0,     0,     0,   211,     0,
    2297        0,     0,     0,     0,     0,     0,     0,     0,    43,   211,
    2298      157,     0,     0,     0,     0,     0,    45,    46,     0,     0,
    2299        0,     0,     0,   414,     0,     0,     0,     0,     0,     0,
    2300        0,   414,   582,     0,   414,   585,     0,     0,     0,     0,
    2301        0,     0,     0,     0,     0,   364,     0,   369,     0,   614,
    2302     1019,     0,     0,     0,     0,     0,     0,  1020,     0,     0,
    2303        0,     0,     0,     0,     0,     0,     0,     0,   632,     0,
    2304     1022,   341,  1023,     0,     0,     0,     0,     0,     0,     0,
    2305        0,   211,     0,     0,     0,     0,  1035,     0,     0,     0,
    2306        0,     0,  1039,     0,     0,   211,     0,     0,   414,     0,
    2307        0,     0,   414,   524,  1077,   524,     0,  1078,     0,     0,
    2308        0,     0,     0,     0,     0,     0,   126,     0,     0,     0,
    23092372       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2310        0,     0,     0,   364,     0,     0,     0,     0,     0,   524,
    2311        0,   524,     0,     0,     0,     0,     0,     0,     0,     0,
    2312        0,     0,   507,     0,   509,   512,     0,     0,     0,     0,
    2313        0,     0,   515,   516,     0,     0,     0,     0,   165,     0,
    2314        0,     0,     0,     0,     0,     0,     0,   509,   509,   414,
    2315        0,     0,   364,     0,   591,     0,   211,     0,     0,     0,
    2316        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2317       17,    18,    19,    20,    21,    22,    23,    24,    25,  -296,
    2318        0,    26,    27,    28,     0,   509,     0,     0,     0,  1150,
    2319       31,   414,     0,     0,     0,   341,   364,     0,     0,     0,
    2320        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2321        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2322        0,   509,     0,    37,     0,   336,   337,    40,     0,  -296,
    2323        0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
    2324        0,   414,   414,     0,     0,     0,     0,   526,     0,     0,
    2325        0,   211,     0,  1215,     0,     0,   321,     0,     0,     0,
    2326      805,   364,   338,     0,     0,     0,   346,     0,    45,    46,
    2327        0,   614,     0,   614,   614,     0,     0,     0,   382,   382,
    2328      614,     0,     0,     0,     0,     0,     0,  1227,     0,     0,
    2329      844,   364,  1229,     0,     0,     0,   364,     0,     0,     0,
    2330     1233,     0,     0,     0,     0,   364,   364,   364,     0,     0,
    2331        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2332        0,     0,     0,   364,     0,     0,     0,     0,   414,   886,
    2333        0,     0,   414,   889,     0,  1259,     0,     0,     0,   891,
    2334        0,     0,     0,     0,     0,     0,     0,  1267,     0,   321,
    2335     1268,     0,  1269,     0,     0,     0,     0,     0,   414,     0,
    2336        0,     0,     0,     0,     0,     0,  1278,  1279,     0,     0,
    2337        0,     0,     0,   478,     0,     0,     0,     0,     0,     0,
    2338        0,   364,   614,     0,     0,     0,     0,     0,  1292,     0,
    2339      509,   509,   509,   509,   509,   509,   509,   509,   509,   509,
    2340      509,   509,   509,   509,   509,   509,   509,   509,     0,     0,
    2341        0,     0,     0,     0,     0,   341,   364,     0,     0,     0,
    2342      414,   414,     0,     0,     0,     0,     0,     0,     0,     0,
    2343        0,     0,     0,     0,     0,  1331,     0,     0,     0,     0,
    2344        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2345       18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
    2346       26,    27,    28,     0,     0,   414,     0,     0,     0,    31,
    2347        0,     0,     0,   364,     0,     0,     0,     0,     0,     0,
    2348      805,   364,     0,     0,   614,     0,   614,     0,     0,     0,
    2349      382,     0,     0,     0,     0,     0,   614,    34,   211,     0,
    2350        0,     0,    37,     0,   336,   337,    40,     0,  -296,     0,
    2351     1381,     0,  1382,    41,    42,     0,     0,     0,     0,     0,
    2352        0,     0,     0,     0,     0,     0,  1390,     0,  1391,     0,
    2353        0,     0,     0,     0,     0,     0,   509,     0,     0,   635,
    2354        0,   338,     0,  1398,     0,     0,     0,    45,    46,     0,
    2355        0,     0,     0,     0,     0,     0,     0,     0,     0,  1416,
    2356     1418,     0,     0,     0,     0,     0,     0,     0,   805,     0,
    2357     1423,     0,     0,  1233,     0,   341,   364,   414,     0,   414,
    2358        0,     0,     0,   414,   710,     0,     0,     0,     0,     0,
    2359        0,     0,     0,     0,  1445,     0,     0,   509,     0,     0,
    2360        0,     0,     0,  1452,   614,   614,  1454,     0,  1456,  1458,
    2361     1460,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2362        0,     0,     0,   742,     0,     0,     0,     0,   509,     0,
    2363        0,     0,     0,     0,     0,     0,   759,     0,     0,   414,
    2364        0,   742,     0,     0,   742,     0,     0,     0,  1490,     0,
    2365     1492,     0,  1233,     0,     0,     0,     0,   769,     0,     0,
    2366      414,  1147,     0,     0,     0,     0,     0,  1503,     0,     0,
    2367        0,   364,     0,     0,     0,     0,     0,   414,  1159,   790,
    2368      614,   614,  1164,     0,     0,     0,     0,     0,     0,   799,
    2369        0,     0,   364,   364,     0,     0,   346,     0,     0,     0,
    2370        0,   759,     0,     0,     1,     2,     3,     4,     5,     6,
     2373     295,     0,   296,     0,     0,   170,     0,     0,    45,    46,
     2374     297,   298,   299,   300,     0,     0,     0,     0,  1035,     0,
     2375       0,     0,     0,  -134,     1,     2,   205,     4,     5,     6,
    23712376       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    23722377      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2373        0,    26,    27,    28,    29,     0,     0,    30,     0,     0,
    2374       31,    32,     0,     0,     0,     0,     0,     0,   509,     0,
    2375      864,     0,     0,     0,     0,   414,     0,   414,   382,     0,
    2376        0,     0,   414,     0,     0,    33,     0,     0,    34,     0,
    2377       35,   614,    36,    37,     0,    38,    39,    40,     0,     0,
    2378        0,     0,     0,     0,    41,    42,     0,     0,     0,     0,
    2379        0,     0,     0,   509,   805,   414,  1247,     0,     0,     0,
    2380        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2381       43,     0,    44,     0,     0,     0,  -523,     0,    45,    46,
    2382      364,     0,     0,     0,     0,     0,     0,     0,   509,     0,
    2383        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2384        0,   509,     0,     0,     0,     0,     0,     0,   282,   283,
    2385        0,   284,     0,     0,     0,     0,   759,     0,   965,     0,
    2386        0,     0,     0,     0,     0,     0,     0,     0,   976,     0,
    2387        0,     0,     0,     0,   984,     0,     0,   285,     0,     0,
    2388        0,   341,   509,   641,     0,   139,   140,   287,     0,     0,
    2389      288,   289,   290,   291,    41,    42,     0,   292,   293,   364,
    2390        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2391        0,     0,     0,     0,     0,     0,     0,  1002,  1003,     0,
    2392      294,   346,   642,     0,   643,   380,     0,     0,    45,    46,
    2393      296,   297,   298,   299,     0,   346,     0,     0,     0,     0,
    2394        0,     0,     0,     0,     0,     0,     0,     0,   364,   364,
    2395        0,     0,     0,     0,     0,     0,     0,     0,     0,   509,
    2396        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2397        0,     0,     0,     0,     0,  1033,     0,     0,     0,   382,
    2398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2399        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
     2378       0,    26,    27,    28,    29,     0,     0,    30,   281,   282,
     2379      31,   283,     8,     9,    10,    11,    12,    13,    14,    15,
     2380      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2381       0,     0,    26,    27,    28,     0,     0,   284,    34,     0,
     2382      35,    31,    36,   285,     0,    38,    39,   286,     0,     0,
     2383     287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
     2384     294,     0,     0,     0,     0,     0,     0,     0,     0,    34,
     2385       0,     0,     0,     0,   110,     0,    38,    39,     0,     0,
     2386       0,     0,   295,     0,   296,     0,     0,    41,    42,     0,
     2387      45,    46,   297,   298,   299,   300,     0,     0,     0,     0,
     2388       0,     0,     0,     0,     0,  -134,     0,     0,     0,     0,
     2389       0,     0,     0,     0,     0,     0,   322,     1,     2,   205,
     2390       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2391      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2392      24,    25,     0,     0,    26,    27,    28,    29,     0,     0,
     2393      30,   281,   282,    31,   283,     8,     9,    10,    11,    12,
     2394      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2395      23,    24,    25,  -299,     0,     0,     0,     0,     0,     0,
     2396     284,    34,     0,    35,    31,    36,   285,     0,    38,    39,
     2397     286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
     2398      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2399       0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
     2400       0,     0,     0,  -299,     0,   295,     0,   296,     0,     0,
     2401       0,     0,     0,    45,    46,   297,   298,   299,   300,     2,
     2402     205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2403      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2404      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2405       0,     0,   281,   282,    31,   283,     8,     9,    10,    11,
     2406      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2407      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2408       0,   284,    34,     0,    35,    31,    36,   285,     0,    38,
     2409      39,   286,     0,     0,   287,   288,   289,   290,   291,   292,
     2410      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2411       0,     0,     0,    34,     0,     0,     0,     0,     0,     0,
     2412      38,    39,     0,     0,     0,     0,   295,     0,   341,     0,
     2413       0,     0,     0,   748,   342,    46,   297,   298,   299,   300,
     2414       2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
     2415      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2416      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2417       0,     0,     0,   281,   282,    31,   283,     8,     9,    10,
    24002418      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2401       21,    22,    23,    24,    25,     0,   346,    26,    27,    28,
    2402       29,   509,   509,    30,     0,     0,    31,    32,     0,     0,
     2419      21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
     2420       0,     0,   284,    34,     0,    35,    31,    36,   285,     0,
     2421      38,    39,   286,     0,     0,   287,   288,   289,   290,   291,
     2422     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2423       0,     0,     0,     0,    34,     0,     0,     0,     0,     0,
     2424       0,   206,    39,     0,     0,     0,     0,   295,     0,   341,
     2425       0,     0,     0,     0,   748,    45,    46,   297,   298,   299,
     2426     300,     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       0,     0,     0,     0,   281,   282,    31,   283,     0,     0,
    24032430       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24042431       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2405        0,    33,     0,     0,    34,   321,    35,     0,    36,    37,
    2406        0,    38,    39,    40,     0,     0,     0,     0,   364,     0,
    2407       41,    42,     0,     0,     0,     0,     0,     0,     0,     0,
    2408        0,     0,     0,   382,     0,     0,     0,   282,   283,   976,
    2409      284,     0,     0,   742,     0,     0,    43,     0,    44,     0,
    2410        0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
    2411        0,     0,     0,     0,  1154,     0,   285,     0,     0,     0,
    2412        0,     0,   286,     0,     0,  1169,   287,     0,     0,   288,
    2413      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2414        0,     0,     0,     0,     0,     0,     0,   382,     0,  1187,
    2415        0,     0,     0,   282,   283,   414,   284,     0,     0,   294,
    2416        0,   379,     0,     0,   976,   976,   758,    45,    46,   296,
    2417      297,   298,   299,     0,     0,     0,     0,     0,     0,   414,
    2418      414,     0,   285,     0,     0,  1219,     0,     0,   286,     0,
    2419        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2420       42,     0,   292,   293,   414,     0,     0,     0,     0,     0,
     2432       0,     0,     0,   284,    34,     0,    35,     0,    36,   285,
     2433       0,    38,    39,   286,     0,     0,   287,   288,   289,   290,
     2434     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
    24212435       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2422        0,     0,     0,     0,     0,   294,   509,   379,     0,     0,
    2423      973,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    2424      976,     0,   509,     0,     0,     0,     0,     0,     0,     0,
    2425        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2426      864,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2427        0,     0,     0,     0,     0,  1270,  1271,     0,     0,     0,
    2428        0,     1,     2,   206,     4,     5,     6,     7,     8,     9,
     2436       0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
     2437     341,     0,     0,     0,     0,     0,   342,    46,   297,   298,
     2438     299,   300,     2,   205,     4,     5,     6,     7,     8,     9,
    24292439      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    24302440      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2431       28,    29,   509,   509,    30,   282,   283,    31,  1042,  1043,
    2432        0,  1044,     0,     0,  1045,  1046,  1047,  1048,  1049,  1050,
    2433     1051,  1052,     0,     0,     0,  1053,     0,     0,     0,  1054,
    2434     1055,     0,    33,     0,   285,    34,     0,    35,     0,    36,
    2435     1056,     0,    38,    39,   287,     0,     0,   288,   289,   290,
    2436      291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
     2441      28,     0,     0,     0,     0,   281,   282,    31,   283,     0,
    24372442       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2438        0,     0,     0,     0,     0,     0,     0,   294,     0,  1057,
    2439        0,     0,   171,     0,     0,    45,    46,   296,   297,   298,
    2440      299,     0,     0,     0,     0,  1058,     0,     0,     0,     0,
    2441     -131,     0,     0,     0,     0,     0,  1375,     0,     0,   742,
    2442        1,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2443       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2444       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2445       29,     0,     0,    30,   282,   283,    31,   284,     8,     9,
    2446       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2447       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2448       28,     0,     0,   285,    34,     0,    35,    31,    36,   286,
    2449        0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    2450       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2451        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2452      110,     0,    38,    39,     0,     0,   294,     0,  1057,     0,
    2453        0,    41,    42,     0,    45,    46,   296,   297,   298,   299,
    2454        0,     0,     0,     0,     0,     0,     0,     0,     0,  -131,
    2455        0,     0,     0,     0,     1,     2,   206,     4,     5,     6,
    2456        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2457       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2458        0,    26,    27,    28,    29,     0,     0,    30,   282,   283,
    2459       31,   284,     0,     0,     0,     8,     9,    10,    11,    12,
    2460       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2461       23,    24,    25,  -297,     0,     0,     0,   285,    34,     0,
    2462       35,     0,    36,   286,    31,    38,    39,   287,     0,   321,
    2463      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    24642443       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2465        0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
    2466      294,     0,    44,  -297,     0,     0,     0,     0,    45,    46,
    2467      296,   297,   298,   299,     2,   206,     4,     5,     6,     7,
     2444       0,     0,     0,     0,   284,    34,     0,    35,     0,    36,
     2445     285,     0,   206,    39,   286,     0,     0,   287,   288,   289,
     2446     290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
     2447       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2448       0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
     2449       0,   979,     0,     0,     0,     0,     0,   980,    46,   297,
     2450     298,   299,   300,     2,   205,     4,     5,     6,     7,     8,
     2451       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2452      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2453      27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
     2454       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2455       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2456       0,     0,     0,     0,     0,   284,    34,     0,    35,     0,
     2457      36,   285,     0,   206,    39,   286,     0,     0,   287,   288,
     2458     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2459       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2460       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2461     295,     0,   376,     0,     0,     0,     0,     0,    45,    46,
     2462     297,   298,   299,   300,  -521,     0,     0,     1,     2,     3,
     2463       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2464      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2465      24,    25,     0,     0,    26,    27,    28,    29,     0,     0,
     2466      30,     0,     0,    31,    32,     0,     0,     0,     0,     0,
     2467       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2468       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
     2469       0,    34,     0,    35,     0,    36,    37,     0,    38,    39,
     2470      40,     0,     0,     0,     0,     0,     0,     0,     0,    41,
     2471      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2472       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2473       0,     0,     0,     0,     0,    43,     0,    44,     0,     0,
     2474       0,     0,     0,    45,    46,     1,     2,     3,     4,     5,
     2475       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     2476      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     2477       0,     0,    26,    27,    28,    29,     0,     0,    30,     0,
     2478       0,    31,    32,     0,     0,     0,     0,     0,     0,     0,
     2479       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2480       0,     0,     0,     0,     0,     0,    33,     0,     0,    34,
     2481       0,    35,     0,    36,    37,     0,    38,    39,    40,     0,
     2482       0,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2483       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2484       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2485       0,     0,     0,    43,     0,    44,     0,     0,     0,  -525,
     2486       0,    45,    46,     1,     2,     3,     4,     5,     6,     7,
    24682487       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    24692488      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2470       26,    27,    28,     0,     0,     0,     0,   282,   283,    31,
    2471      284,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2472       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2473        0,    26,    27,    28,     0,     0,   285,    34,     0,    35,
    2474       31,    36,   286,     0,    38,    39,   287,     0,     0,   288,
    2475      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2476        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2477        0,     0,     0,     0,     0,    38,    39,     0,     0,   294,
    2478        0,   343,     0,     0,     0,     0,   758,   344,    46,   296,
    2479      297,   298,   299,     2,   206,     4,     5,     6,     7,     8,
    2480        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2481       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2482       27,    28,     0,     0,     0,     0,   282,   283,    31,   284,
    2483        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2484       18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
    2485       26,    27,    28,     0,     0,   285,    34,     0,    35,    31,
    2486       36,   286,     0,    38,    39,   287,     0,     0,   288,   289,
    2487      290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    2488        0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
    2489        0,     0,     0,     0,   207,    39,     0,     0,   294,     0,
    2490      964,     0,     0,     0,     0,   758,   344,    46,   296,   297,
    2491      298,   299,     2,   206,     4,     5,     6,     7,     8,     9,
    2492       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2493       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2494       28,     0,     0,     0,     0,   282,   283,    31,   284,     0,
     2489      26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
     2490      32,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2491       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2492       0,     0,     0,     0,    33,     0,     0,    34,     0,    35,
     2493       0,    36,    37,     0,    38,    39,    40,     0,     0,     0,
     2494       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    24952495       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24962496       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2497        0,     0,     0,     0,   285,    34,     0,    35,     0,    36,
    2498      286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
    2499      291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    2500        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2501        0,     0,     0,     0,     0,     0,     0,   294,     0,   964,
    2502        0,     0,     0,     0,   758,    45,    46,   296,   297,   298,
    2503      299,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2504       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2505       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2506        0,     0,     0,     0,   282,   283,    31,   284,     0,     0,
     2497       0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
     2498      46,     1,     2,   205,     4,     5,     6,     7,     8,     9,
     2499      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2500      20,    21,    22,    23,    24,    25,  -298,     0,    26,    27,
     2501      28,    29,     0,     0,    30,     0,     0,    31,     0,     0,
    25072502       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25082503       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2509        0,     0,     0,   285,    34,     0,    35,     0,    36,   286,
    2510        0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    2511       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2512        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2513        0,     0,     0,     0,     0,     0,   294,     0,   343,     0,
    2514        0,     0,     0,     0,   344,    46,   296,   297,   298,   299,
    2515        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2516       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2517       22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2518        0,     0,     0,   282,   283,    31,   284,     0,     0,     0,
    2519        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2520        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2521        0,     0,   285,    34,     0,    35,     0,    36,   286,     0,
    2522      207,    39,   287,     0,     0,   288,   289,   290,   291,    41,
    2523       42,     0,   292,   293,     0,     0,     0,     0,     0,     0,
    2524        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2525        0,     0,     0,     0,     0,   294,     0,   999,     0,     0,
    2526        0,     0,     0,  1000,    46,   296,   297,   298,   299,     2,
    2527      206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2528       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2529       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2530        0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
    2531        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2532        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2533        0,   285,    34,     0,    35,     0,    36,   286,     0,    38,
    2534       39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2535        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2536        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2537        0,     0,     0,     0,   294,     0,   964,     0,     0,     0,
    2538        0,     0,   344,    46,   296,   297,   298,   299,     2,   206,
     2504       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
     2505       0,     0,    38,    39,     0,     0,  -298,   204,     2,   205,
    25392506       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    25402507      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    25412508      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2542        0,   282,   283,    31,   284,     0,     0,     0,     0,     0,
     2509       0,    44,     0,    31,     0,     0,     0,    45,    46,     0,
    25432510       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25442511       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2545      285,    34,     0,    35,     0,    36,   286,     0,   207,    39,
    2546      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2547      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
     2512       0,    34,     0,    35,     0,    36,     0,     0,   206,    39,
     2513       2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
     2514      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2515      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
     2516       0,     0,     0,     0,     0,    31,     0,   207,     0,     0,
     2517       0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    25482518       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2549        0,     0,     0,   294,     0,   379,     0,     0,     0,     0,
    2550        0,    45,    46,   296,   297,   298,   299,   205,     2,   206,
    2551        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2552       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2553       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2554        0,     0,     0,    31,     0,     8,     9,    10,    11,    12,
    2555       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2556       23,    24,    25,     0,     0,    26,    27,    28,   485,   486,
    2557      487,    34,     0,    35,    31,    36,    37,     0,   207,    39,
    2558       40,     0,     0,     0,     0,     0,     0,    41,    42,     0,
     2519       0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
     2520     206,    39,    40,     0,     0,     0,     0,     0,     0,     0,
     2521       0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
    25592522       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2561       39,     0,     0,    43,     0,   208,     0,     0,     0,     0,
    2562        0,    45,    46,     1,     2,   206,     4,     5,     6,     7,
    2563        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2564       18,    19,    20,    21,    22,    23,    24,    25,  -296,     0,
    2565       26,    27,    28,    29,     0,     0,    30,     0,     0,    31,
     2523       0,     0,     0,     0,     0,     0,     0,    43,     0,   207,
     2524       0,     0,     0,     0,     0,    45,    46,     2,   205,     4,
     2525       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2526      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2527      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2528       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    25662529       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25672530       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2568        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2569        0,    36,     0,     0,    38,    39,     0,     0,  -296,     1,
    2570        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2571       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2572       22,    23,    24,    25,     0,     0,    26,    27,    28,    29,
    2573        0,    44,    30,     0,     0,    31,     0,    45,    46,     0,
     2531      34,     0,    35,     0,    36,     0,     0,    38,    39,     2,
     2532     205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     2533      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2534      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2535       0,     0,     0,     0,    31,  -405,   668,     0,     0,     0,
     2536       0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
    25742537       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2538       0,     0,    34,     0,    35,     0,    36,     0,     0,    38,
     2539      39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25752540       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2576        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2577       38,    39,   205,     2,   206,     4,     5,     6,     7,     8,
    2578        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2579       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2580       27,    28,     0,     0,     0,     0,     0,    44,    31,     0,
    2581        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
    2582        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2583        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2584       36,     0,     0,   207,    39,     0,     2,   206,     4,     5,
     2541       0,     0,     0,  1332,     0,     0,     0,     0,     0,     0,
     2542       0,     0,     0,     0,     0,     0,     0,     0,   668,     0,
     2543       0,     0,     0,     0,    45,    46,     2,   205,     4,     5,
    25852544       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    25862545      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    25872546       0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2588      208,    31,     0,     0,     0,     0,    45,    46,     0,     0,
    2589        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2590        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2591        0,    35,     0,    36,    37,     0,   207,    39,    40,     0,
    2592        0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
     2547       0,    31,     0,     0,     0,     8,     9,    10,    11,    12,
     2548      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2549      23,    24,    25,     0,     0,    26,    27,    28,     0,    34,
     2550       0,    35,     0,    36,    31,   675,    38,    39,     0,     0,
    25932551       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25942552       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2595        0,    43,     0,   208,     0,     0,     0,     0,     0,    45,
    2596       46,     2,   206,     4,     5,     6,     7,     8,     9,    10,
    2597       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2598       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2599        0,     0,     0,     0,     0,     0,    31,     0,     0,     0,
    2600        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2601       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2602        0,    26,    27,    28,    34,     0,    35,     0,    36,     0,
    2603       31,    38,    39,     0,     2,   206,     4,     5,     6,     7,
    2604        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2605       18,    19,    20,    21,    22,    23,    24,    25,    34,     0,
    2606       26,    27,    28,     0,     0,    38,    39,  -403,   678,    31,
    2607        0,     0,     0,     0,    45,    46,     0,     0,     0,     0,
    2608        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2609        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2610      635,    36,   338,     0,    38,    39,     0,     0,    45,    46,
    2611        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2612        0,     0,     0,     0,     0,     0,  1354,     0,     0,     0,
    2613        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2614        0,   678,     0,     0,     0,     0,     0,    45,    46,     2,
    2615      206,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    2616       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2617       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2618        0,     0,     0,     0,    31,     0,     0,     0,     8,     9,
    2619       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2620       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2621       28,     0,    34,     0,    35,     0,    36,    31,   685,    38,
    2622       39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2623        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2624        0,  1356,     0,     0,     0,    34,     0,     0,     0,     0,
    2625        0,     0,    38,    39,     0,     0,   678,     0,     0,     0,
    2626        0,     0,    45,    46,     2,   206,     4,     5,     6,     7,
    2627        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2628       18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
    2629       26,    27,    28,   687,     0,    45,    46,     0,     0,    31,
     2553    1334,     0,    34,     0,     0,     0,     0,     0,     0,    38,
     2554      39,     0,     0,     0,     0,   668,     0,     0,     0,     0,
     2555       0,    45,    46,     2,   205,     4,     5,     6,     7,     8,
     2556       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2557      19,    20,    21,    22,    23,    24,    25,     0,   676,    26,
     2558      27,    28,   677,     0,    45,    46,     0,     0,    31,     0,
    26302559       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26312560       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2632        0,     0,     0,     0,     0,     0,     0,    34,     0,    35,
    2633        0,    36,     0,     0,   207,    39,     0,     2,   206,     4,
     2561       0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
     2562      36,     0,     0,   206,    39,     2,   205,     4,     5,     6,
     2563       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2564      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2565       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2566      31,     0,   269,     0,     0,     0,     0,     0,    45,    46,
     2567       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2568       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2569      35,     0,    36,     0,     0,    38,    39,     2,   205,     4,
    26342570       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    26352571      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    26362572      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2637        0,   270,    31,     0,     0,     0,     0,    45,    46,     0,
     2573       0,     0,    31,     0,   668,     0,     0,     0,     0,     0,
     2574      45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2575       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2576      34,     0,    35,     0,    36,     0,     0,   206,    39,     8,
     2577       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2578      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2579      27,    28,     0,     0,     0,     0,   281,   282,    31,   283,
     2580       0,     0,     0,     0,     0,     0,   207,     0,     0,     0,
     2581       0,     0,    45,    46,     0,     0,     0,     0,     0,     0,
     2582       0,     0,     0,     0,     0,   284,    34,     0,     0,     0,
     2583       0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
     2584     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
    26382585       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    26392586       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2640       34,     0,    35,     0,    36,     0,     0,    38,    39,     0,
    2641        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
     2587     295,     0,   513,     0,     0,   170,     0,     0,    45,    46,
     2588     297,   298,   299,   300,     8,     9,    10,    11,    12,    13,
     2589      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2590      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2591       0,   281,   282,    31,   283,     8,     9,    10,    11,    12,
     2592      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2593      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2594     284,    34,     0,     0,    31,     0,   285,     0,    38,    39,
     2595     286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
     2596      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2597       0,     0,    34,     0,     0,     0,     0,   110,     0,    38,
     2598      39,     0,     0,     0,     0,   295,   -40,   296,     0,     0,
     2599      41,    42,     0,    45,    46,   297,   298,   299,   300,     8,
     2600       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2601      19,    20,    21,    22,    23,    24,    25,     0,    44,    26,
     2602      27,    28,     0,     0,    45,    46,   281,   282,    31,   283,
     2603       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2604      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2605      26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
     2606     675,   285,     0,    38,    39,   286,     0,     0,   287,   288,
     2607     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2608       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2609       0,     0,     0,     0,    38,    39,     0,     0,     0,     0,
     2610     295,     0,   296,     0,     0,     0,     0,     0,    45,    46,
     2611     297,   298,   299,   300,     8,     9,    10,    11,    12,    13,
     2612      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     2613      24,    25,     0,   676,    26,    27,    28,  1070,     0,    45,
     2614      46,   281,   282,    31,   283,     8,     9,    10,    11,    12,
     2615      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2616      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2617     284,    34,     0,     0,    31,   675,   285,     0,    38,    39,
     2618     286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
     2619      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2620       0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
     2621      39,     0,     0,     0,     0,   295,     0,   341,     0,     0,
     2622       0,     0,     0,    45,    46,   297,   298,   299,   300,     8,
     2623       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2624      19,    20,    21,    22,    23,    24,    25,     0,   676,    26,
     2625      27,    28,  1197,     0,    45,    46,   281,   282,    31,   283,
     2626       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2627      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2628      26,    27,    28,     0,     0,   284,    34,     0,     0,    31,
     2629       0,   285,     0,    38,    39,   286,     0,     0,   287,   288,
     2630     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2631       0,     0,     0,     0,     0,     0,     0,    34,     0,     0,
     2632       0,     0,    37,     0,    38,    39,    40,     0,     0,     0,
     2633     295,     0,   376,     0,     0,    41,    42,     0,    45,    46,
     2634     297,   298,   299,   300,     0,     0,     0,     0,     0,     0,
     2635       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2636       0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
     2637      46,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2638      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2639       0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
     2640      31,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2641      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2642       0,    26,    27,    28,     0,     0,     0,     0,    34,     0,
     2643      31,     0,     0,    37,     0,   206,    39,    40,     0,     0,
     2644       0,     0,     0,     0,     0,     0,    41,    42,     0,     0,
     2645       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2646       0,     0,     0,     0,     0,    38,    39,     0,     0,     0,
     2647       0,     0,    43,     0,   269,     0,     0,     0,     0,     0,
     2648      45,    46,     0,     0,     0,     8,     9,    10,    11,    12,
     2649      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2650      23,    24,    25,     0,   256,    26,    27,    28,     0,     0,
     2651      45,    46,     0,     0,    31,     8,     9,    10,    11,    12,
     2652      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2653      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
     2654       0,     0,    34,     0,    31,     0,     0,     0,     0,    38,
     2655      39,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2656       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2657       0,     0,    34,     0,     0,     0,     0,     0,     0,   206,
     2658      39,     0,     0,     0,     0,     0,     0,     0,    44,     0,
     2659       0,     0,     0,     0,    45,    46,     0,     0,     0,     8,
     2660       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2661      19,    20,    21,    22,    23,    24,    25,     0,   269,    26,
     2662      27,    28,     0,     0,    45,    46,     0,     0,    31,     8,
     2663       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     2664      19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
     2665      27,    28,     0,     0,     0,     0,    34,     0,    31,     0,
     2666       0,     0,     0,    38,    39,     0,     0,     0,     0,     0,
     2667       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2668       0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
     2669       0,     0,     0,    38,    39,     0,     0,     0,     0,     0,
     2670       0,     0,   337,     0,     0,     0,     0,     0,    45,    46,
     2671       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
     2672      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2673      25,     0,   676,    26,    27,    28,     0,     0,    45,    46,
     2674       0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
     2675       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2676       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2677      34,     0,     0,     0,     0,     0,     0,    38,    39,     0,
     2678       0,     0,   281,   282,     0,   283,  1021,     0,  1022,     0,
     2679       0,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,     0,
     2680       0,  1508,  1031,     0,     0,     0,  1032,  1033,     0,    33,
     2681       0,   284,     0,     0,     0,     0,   668,  1034,     0,     0,
     2682       0,   286,    45,    46,   287,   288,   289,   290,   291,   292,
     2683      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2684       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2685       0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
     2686       0,   170,     0,     0,    45,    46,   297,   298,   299,   300,
     2687       0,     0,   281,   282,  1035,   283,  1021,     0,  1022,  -134,
     2688       0,  1023,  1024,  1025,  1026,  1027,  1028,  1029,  1030,     0,
     2689       0,     0,  1031,     0,     0,     0,  1032,  1033,     0,    33,
     2690       0,   284,     0,     0,     0,     0,     0,  1034,     0,     0,
     2691       0,   286,     0,     0,   287,   288,   289,   290,   291,   292,
     2692      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2693       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2694       0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
     2695       0,   170,     0,     0,    45,    46,   297,   298,   299,   300,
     2696       0,     0,     0,     0,  1035,     0,     0,     0,     0,  -134,
     2697       2,   205,     4,     5,     6,     7,     8,     9,    10,    11,
    26422698      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    26432699      22,    23,    24,    25,     0,     0,    26,    27,    28,     0,
    2644        0,     0,     0,     0,   678,    31,     0,     0,     0,     0,
    2645       45,    46,     0,     0,     0,     0,     0,     0,     0,     0,
     2700       0,     0,     0,     0,     0,    31,     0,   281,   282,     0,
     2701     283,  1021,     0,  1022,  1380,  1381,  1023,  1024,  1025,  1026,
     2702    1027,  1028,  1029,  1030,     0,     0,  1508,  1031,     0,     0,
     2703       0,  1032,  1033,    34,    33,    35,   284,    36,     0,     0,
     2704      38,    39,  1034,     0,     0,     0,   286,     0,     0,   287,
     2705     288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2706       0,     0,     0,     0,  1291,     0,     0,     0,     0,     0,
    26462707       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2647        0,     0,     0,    34,     0,    35,     0,    36,     0,     0,
    2648       38,    39,     0,     2,   206,     4,     5,     6,     7,     8,
    2649        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2650       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2651       27,    28,     0,     0,     0,     0,     0,   593,    31,     0,
    2652        0,     0,     0,    45,    46,     0,     0,     0,     0,     0,
     2708       0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
     2709      46,   297,   298,   299,   300,     0,     0,   281,   282,  1035,
     2710     283,  1021,     0,  1022,  1380,  1381,  1023,  1024,  1025,  1026,
     2711    1027,  1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,
     2712       0,  1032,  1033,     0,    33,     0,   284,     0,     0,     0,
     2713       0,     0,  1034,     0,     0,     0,   286,     0,     0,   287,
     2714     288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
    26532715       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2654        0,     0,     0,     0,     0,     0,    34,     0,    35,     0,
    2655       36,     0,     0,   207,    39,     8,     9,    10,    11,    12,
     2716       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2717       0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
     2718      46,   297,   298,   299,   300,     0,     0,   281,   282,  1035,
     2719     283,  1021,     0,  1022,     0,     0,  1023,  1024,  1025,  1026,
     2720    1027,  1028,  1029,  1030,     0,     0,     0,  1031,     0,     0,
     2721       0,  1032,  1033,     0,    33,     0,   284,     0,     0,     0,
     2722       0,     0,  1034,     0,     0,     0,   286,     0,     0,   287,
     2723     288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2724       0,     0,     0,     0,     0,     0,   281,   282,     0,   283,
     2725       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2726       0,   295,     0,   376,     0,     0,   170,     0,     0,    45,
     2727      46,   297,   298,   299,   300,   284,     0,     0,     0,  1035,
     2728       0,   631,     0,   139,   140,   286,     0,     0,   287,   288,
     2729     289,   290,   291,   292,    41,    42,     0,   293,   294,     0,
     2730       0,     0,     0,     0,     0,   281,   282,     0,   283,     0,
     2731       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2732     295,     0,   632,     0,   633,   377,     0,     0,    45,    46,
     2733     297,   298,   299,   300,   284,     0,     0,     0,     0,     0,
     2734     285,     0,     0,     0,   286,     0,     0,   287,   288,   289,
     2735     290,   291,   292,    41,    42,     0,   293,   294,     0,     0,
     2736       0,     0,     0,     0,   281,   282,     0,   283,     0,     0,
     2737       0,     0,     0,     0,     0,     0,     0,     0,     0,   295,
     2738       0,   376,     0,     0,   377,     0,     0,    45,    46,   297,
     2739     298,   299,   300,   284,     0,     0,     0,     0,     0,   285,
     2740       0,     0,     0,   286,     0,     0,   287,   288,   289,   290,
     2741     291,   292,    41,    42,     0,   293,   294,     0,     0,     0,
     2742       0,     0,     0,   281,   282,     0,   283,     0,     0,     0,
     2743       0,     0,     0,     0,     0,     0,     0,     0,   295,     0,
     2744     376,     0,     0,     0,     0,   748,    45,    46,   297,   298,
     2745     299,   300,   284,     0,     0,     0,     0,     0,   285,     0,
     2746       0,     0,   286,     0,     0,   287,   288,   289,   290,   291,
     2747     292,    41,    42,     0,   293,   294,     0,     0,     0,     0,
     2748       0,     0,   281,   282,     0,   283,     0,     0,     0,     0,
     2749       0,     0,     0,     0,     0,     0,     0,   295,     0,   376,
     2750       0,     0,   956,     0,     0,    45,    46,   297,   298,   299,
     2751     300,   284,     0,     0,     0,     0,     0,   285,     0,     0,
     2752       0,   286,     0,     0,   287,   288,   289,   290,   291,   292,
     2753      41,    42,     0,   293,   294,     0,     0,     0,     0,     0,
     2754       0,   281,   282,     0,   283,     0,     0,     0,     0,     0,
     2755       0,     0,     0,     0,     0,     0,   295,     0,   376,     0,
     2756       0,     0,     0,     0,    45,    46,   297,   298,   299,   300,
     2757     284,     0,     0,     0,     0,     0,   285,     0,     0,     0,
     2758     286,     0,     0,   287,   288,   289,   290,   291,   292,    41,
     2759      42,     0,   293,   294,     0,     0,     0,     0,     0,     0,
     2760     281,   282,     0,   283,     0,     0,     0,     0,     0,     0,
     2761       0,     0,     0,     0,     0,   502,     0,   376,     0,     0,
     2762       0,     0,     0,    45,    46,   297,   298,   299,   300,   284,
     2763       0,     0,     0,     0,     0,   285,     0,     0,     0,   286,
     2764       0,     0,   287,   288,   289,   290,   291,   292,    41,    42,
     2765       0,   293,   294,     0,     0,     0,     0,     0,     0,   281,
     2766     282,     0,   283,     0,     0,     0,     0,     0,     0,     0,
     2767       0,     0,     0,     0,   507,     0,   376,     0,     0,     0,
     2768       0,     0,    45,    46,   297,   298,   299,   300,   284,     0,
     2769       0,     0,     0,     0,   285,     0,     0,     0,   286,     0,
     2770       0,   287,   288,   289,   290,   291,   292,    41,    42,     0,
     2771     293,   294,     0,     0,     0,     0,     0,     0,   281,   282,
     2772       0,   283,     0,     0,     0,     0,     0,     0,     0,     0,
     2773       0,     0,     0,   510,     0,   376,     0,     0,     0,     0,
     2774       0,    45,    46,   297,   298,   299,   300,   284,     0,     0,
     2775       0,     0,     0,   285,     0,     0,     0,   286,     0,     0,
     2776     287,   288,   289,   290,   291,   292,    41,    42,     0,   293,
     2777     294,     0,     0,     0,     0,     0,     0,   281,   282,     0,
     2778     283,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2779       0,     0,   295,     0,   376,     0,     0,     0,     0,     0,
     2780     699,    46,   297,   298,   299,   300,   284,     0,     0,     0,
     2781       0,     0,   285,     0,     0,     0,   286,     0,     0,   287,
     2782     288,   289,   290,   291,   292,    41,    42,     0,   293,   294,
     2783       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2784       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2785       0,   295,     0,   376,     0,     0,     0,     0,     0,   342,
     2786      46,   297,   298,   299,   300,     2,   205,     4,     5,     6,
     2787       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2788      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
     2789       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2790      31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2791       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2792       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2793      35,     0,    36,    37,     0,   173,   174,    40,     0,     0,
     2794       0,     0,     0,     0,     0,     0,    41,    42,   204,     2,
     2795     205,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    26562796      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    26572797      23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2658        0,     0,   282,   283,    31,   284,     0,     0,     0,     0,
    2659      208,     0,     0,     0,     0,     0,    45,    46,     0,     0,
    2660        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2661        0,   285,    34,     0,     0,     0,     0,   286,     0,    38,
    2662       39,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2663        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2664        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2665        0,     0,     0,     0,   294,     0,   517,     0,     0,   171,
    2666        0,     0,    45,    46,   296,   297,   298,   299,     8,     9,
    2667       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2668       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2669       28,     0,     0,     0,     0,   282,   283,    31,   284,     8,
    2670        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2671       19,    20,    21,    22,    23,    24,    25,     0,     0,    26,
    2672       27,    28,     0,     0,   285,    34,     0,     0,    31,     0,
    2673      286,     0,    38,    39,   287,     0,     0,   288,   289,   290,
    2674      291,    41,    42,     0,   292,   293,     0,     0,     0,     0,
    2675        0,     0,     0,     0,     0,     0,    34,     0,     0,     0,
    2676        0,    37,     0,   336,   337,    40,     0,   294,   -37,   295,
    2677        0,     0,    41,    42,     0,    45,    46,   296,   297,   298,
    2678      299,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2679       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2680      338,    26,    27,    28,     0,     0,    45,    46,   282,   283,
    2681       31,   284,     8,     9,    10,    11,    12,    13,    14,    15,
    2682       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2683        0,     0,    26,    27,    28,     0,     0,   285,    34,     0,
    2684        0,    31,     0,   286,     0,    38,    39,   287,     0,     0,
    2685      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2686        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2687        0,     0,     0,     0,   110,     0,    38,    39,     0,     0,
    2688      294,     0,   295,     0,     0,    41,    42,     0,    45,    46,
    2689      296,   297,   298,   299,     8,     9,    10,    11,    12,    13,
    2690       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2691       24,    25,     0,    44,    26,    27,    28,     0,     0,    45,
    2692       46,   282,   283,    31,   284,     8,     9,    10,    11,    12,
    2693       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2694       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2695      285,    34,     0,     0,    31,   685,   286,     0,    38,    39,
    2696      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2697      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2698        0,     0,    34,     0,     0,     0,     0,     0,     0,    38,
    2699       39,     0,     0,   294,     0,   157,     0,     0,     0,     0,
    2700        0,    45,    46,   296,   297,   298,   299,     8,     9,    10,
    2701       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2702       21,    22,    23,    24,    25,     0,   686,    26,    27,    28,
    2703     1093,     0,    45,    46,   282,   283,    31,   284,     8,     9,
    2704       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2705       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2706       28,     0,     0,   285,    34,     0,     0,    31,   685,   286,
    2707        0,    38,    39,   287,     0,     0,   288,   289,   290,   291,
    2708       41,    42,     0,   292,   293,     0,     0,     0,     0,     0,
    2709        0,     0,     0,     0,     0,    34,     0,     0,     0,     0,
    2710        0,     0,    38,    39,     0,     0,   294,     0,   593,     0,
    2711        0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    2712        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2713       18,    19,    20,    21,    22,    23,    24,    25,     0,   686,
    2714       26,    27,    28,  1224,     0,    45,    46,   282,   283,    31,
    2715      284,     0,     0,     0,     0,     0,     0,     0,     8,     9,
    2716       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2717       20,    21,    22,    23,    24,    25,   285,    34,    26,    27,
    2718       28,     0,   286,     0,    38,    39,   287,    31,     0,   288,
    2719      289,   290,   291,    41,    42,     0,   292,   293,     0,     0,
    2720        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2721        0,     0,     0,     0,     0,    34,     0,     0,     0,   294,
    2722        0,   379,    38,    39,     0,     0,     0,    45,    46,   296,
    2723      297,   298,   299,   467,     2,   206,     4,     5,     6,     7,
    2724        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2725       18,    19,    20,    21,    22,    23,    24,    25,     0,   257,
    2726       26,    27,    28,     0,     0,    45,    46,     0,     0,    31,
    2727        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
    2728       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2729       25,     0,     0,    26,    27,    28,     0,    34,     0,    35,
    2730        0,    36,    31,     0,    38,    39,     0,     0,     0,     0,
    2731        0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2732       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2733       34,    26,    27,    28,     0,    37,     0,    38,    39,    40,
    2734       31,     0,     0,     0,    -3,     0,    41,    42,     0,     8,
    2735        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    2736       19,    20,    21,    22,    23,    24,    25,     0,    34,    26,
    2737       27,    28,    43,    37,    44,   207,    39,    40,    31,     0,
    2738       45,    46,     0,     0,    41,    42,     0,     8,     9,    10,
    2739       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2740       21,    22,    23,    24,    25,  -296,    34,    26,    27,    28,
    2741       43,    37,   270,   336,   337,    40,    31,     0,    45,    46,
    2742        0,     0,    41,    42,     0,     8,     9,    10,    11,    12,
    2743       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2744       23,    24,    25,  -296,    34,    26,    27,    28,   635,     0,
    2745      338,    38,    39,     0,    31,  -296,    45,    46,     8,     9,
    2746       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2747       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2748       28,     0,    34,     0,     0,     0,   635,    31,   338,    38,
    2749       39,     0,     0,  -296,    45,    46,     8,     9,    10,    11,
    2750       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2751       22,    23,    24,    25,     0,    34,    26,    27,    28,     0,
    2752        0,     0,    38,    39,     0,    31,   338,     0,     0,     0,
    2753        0,     0,    45,    46,     8,     9,    10,    11,    12,    13,
    2754       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2755       24,    25,     0,    34,    26,    27,    28,     0,     0,   157,
    2756      207,    39,     0,    31,     0,    45,    46,     8,     9,    10,
    2757       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    2758       21,    22,    23,    24,    25,     0,     0,    26,    27,    28,
    2759        0,    34,     0,     0,     0,     0,    31,   270,    38,    39,
    2760        0,     0,     0,    45,    46,     8,     9,    10,    11,    12,
    2761       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2762       23,    24,    25,     0,    34,    26,    27,    28,     0,     0,
    2763        0,    38,    39,     0,    31,   338,     0,     0,     0,     0,
    2764        0,    45,    46,     8,     9,    10,    11,    12,    13,    14,
    2765       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2766       25,     0,    34,    26,    27,    28,     0,     0,   686,    38,
    2767       39,     0,    31,     0,    45,    46,     2,   206,     4,     5,
    2768        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2769       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2770       34,     0,    26,    27,    28,     0,   593,    38,    39,     0,
    2771        0,    31,    45,    46,     0,     0,     0,     0,     0,     0,
    2772        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2773        0,     0,     0,     0,     0,     0,     0,     0,     0,    34,
    2774        0,    35,     0,    36,    44,     0,    38,    39,     0,     0,
    2775       45,    46,   282,   283,     0,   284,  1043,     0,  1044,     0,
    2776        0,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,
    2777        0,  1528,  1053,     0,     0,     0,  1054,  1055,     0,    33,
    2778        0,   285,  -416,     0,     0,     0,     0,  1056,     0,     0,
    2779        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2780        0,   292,   293,     0,     0,     0,     0,     0,     0,     0,
    2781        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2782        0,     0,     0,     0,   294,     0,   379,     0,     0,   171,
    2783        0,     0,    45,    46,   296,   297,   298,   299,     0,     0,
    2784      282,   283,  1058,   284,  1043,     0,  1044,  -131,     0,  1045,
    2785     1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,
    2786     1053,     0,     0,     0,  1054,  1055,     0,    33,     0,   285,
    2787        0,     0,     0,     0,     0,  1056,     0,     0,     0,   287,
    2788        0,     0,   288,   289,   290,   291,    41,    42,     0,   292,
    2789      293,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2791        0,     0,   294,     0,   379,     0,     0,   171,     0,     0,
    2792       45,    46,   296,   297,   298,   299,     0,     0,     0,     0,
    2793     1058,     0,     0,     0,     0,  -131,     2,   206,     4,     5,
    2794        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    2795       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2796        0,     0,    26,    27,    28,     0,     0,     0,     0,     0,
    2797        0,    31,     0,   282,   283,     0,   284,  1043,     0,  1044,
    2798     1402,  1403,  1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,
    2799        0,     0,  1528,  1053,     0,     0,     0,  1054,  1055,    34,
    2800       33,    35,   285,    36,     0,     0,    38,    39,  1056,     0,
    2801        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2802       42,     0,   292,   293,     0,     0,     0,     0,  1315,     0,
    2803        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2804        0,     0,     0,     0,     0,   294,     0,   379,     0,     0,
    2805      171,     0,     0,    45,    46,   296,   297,   298,   299,     0,
    2806        0,   282,   283,  1058,   284,  1043,     0,  1044,  1402,  1403,
    2807     1045,  1046,  1047,  1048,  1049,  1050,  1051,  1052,     0,     0,
    2808        0,  1053,     0,     0,     0,  1054,  1055,     0,    33,     0,
    2809      285,     0,     0,     0,     0,     0,  1056,     0,     0,     0,
    2810      287,     0,     0,   288,   289,   290,   291,    41,    42,     0,
    2811      292,   293,     0,     0,     0,     0,     0,     0,     0,     0,
    2812        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2813        0,     0,     0,   294,     0,   379,     0,     0,   171,     0,
    2814        0,    45,    46,   296,   297,   298,   299,     0,     0,   282,
    2815      283,  1058,   284,  1043,     0,  1044,     0,     0,  1045,  1046,
    2816     1047,  1048,  1049,  1050,  1051,  1052,     0,     0,     0,  1053,
    2817        0,     0,     0,  1054,  1055,     0,    33,     0,   285,     0,
    2818        0,     0,     0,     0,  1056,     0,     0,     0,   287,     0,
    2819        0,   288,   289,   290,   291,    41,    42,     0,   292,   293,
    2820        0,     0,     0,     0,     0,     0,   282,   283,     0,   284,
    2821        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2822        0,   294,     0,   379,     0,     0,   171,     0,     0,    45,
    2823       46,   296,   297,   298,   299,   285,     0,     0,     0,  1058,
    2824        0,   286,     0,     0,     0,   287,     0,     0,   288,   289,
    2825      290,   291,    41,    42,     0,   292,   293,     0,     0,     0,
    2826        0,     0,     0,   282,   283,     0,   284,     0,     0,     0,
    2827        0,     0,     0,     0,     0,     0,     0,     0,   294,     0,
    2828      379,     0,   282,   283,     0,   284,    45,    46,   296,   297,
    2829      298,   299,   285,     0,     0,     0,     0,     0,   286,     0,
    2830        0,     0,   287,     0,     0,   288,   289,   290,   291,    41,
    2831       42,   285,   292,   293,     0,     0,     0,   286,     0,     0,
    2832        0,   287,     0,     0,   288,   289,   290,   291,    41,    42,
    2833        0,   292,   293,     0,     0,   294,     0,   379,     0,   282,
    2834      283,     0,   284,   709,    46,   296,   297,   298,   299,     0,
    2835        0,     0,     0,     0,   294,     0,   379,     0,   282,   283,
    2836        0,   284,   344,    46,   296,   297,   298,   299,   285,     0,
    2837        0,     0,     0,     0,   286,     0,     0,     0,   287,     0,
    2838        0,   288,   289,   290,   291,    41,    42,   285,   292,   293,
    2839        0,     0,     0,   286,     0,     0,     0,   287,     0,     0,
    2840      288,   289,   290,   291,    41,    42,     0,   292,   293,     0,
    2841        0,   506,     0,     0,     0,   282,   283,     0,   284,    45,
    2842       46,   296,   297,   298,   299,     0,     0,     0,     0,     0,
    2843      294,     0,     0,     0,   282,   283,     0,   284,    45,    46,
    2844      296,   297,   298,   299,   285,     0,     0,     0,     0,     0,
    2845      286,     0,     0,     0,   287,     0,     0,   288,   289,   290,
    2846      291,    41,    42,   285,   292,   293,     0,     0,     0,   286,
    2847        0,     0,     0,   287,     0,     0,   288,   289,   290,   291,
    2848       41,    42,     0,   292,   293,     0,     0,   511,     0,     0,
    2849        0,     0,     0,     0,     0,    45,    46,   296,   297,   298,
    2850      299,     0,     0,     0,     0,     0,   514,     0,     0,     0,
    2851        0,     0,     0,     0,    45,    46,   296,   297,   298,   299,
    2852        2,   206,     4,     5,     6,     7,     8,     9,    10,    11,
    2853       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2854       22,    23,    24,    25,     0,     0,     0,     0,     0,     0,
    2855        0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
     2798       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    28562799       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28572800       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2858        0,     0,     0,    34,     0,    35,     0,    36,    37,     0,
    2859      174,   175,    40,     0,     0,     0,     0,     0,     0,    41,
    2860       42,   205,     2,   206,     4,     5,     6,     7,     8,     9,
     2801       0,     0,    34,     0,    35,     0,    36,     0,     0,   206,
     2802      39,   463,     2,   205,     4,     5,     6,     7,     8,     9,
    28612803      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    28622804      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     
    28652807       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28662808       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2867        0,     0,   207,    39,   467,     2,   206,     4,     5,     6,
    2868        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2809       0,     0,    38,    39,     2,   205,     4,     5,     6,     7,
     2810       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2811      18,    19,    20,    21,    22,    23,    24,    25,     0,     0,
     2812      26,    27,    28,     0,     0,     0,     0,     0,     0,    31,
     2813       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    28692814      17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2870        0,    26,    27,    28,     0,     0,     0,     0,     0,     0,
    2871       31,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2815       0,    26,    27,    28,   481,   482,   483,    34,     0,    35,
     2816      31,    36,     0,     0,   206,    39,     0,     0,     0,     0,
    28722817       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    28732818       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2874       35,     0,    36,     0,     0,    38,    39,     2,   206,     4,
    2875        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2876       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2877       25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
    2878        0,     0,    31,     0,     0,     0,     0,     0,     0,     0,
    2879        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2880        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2881       34,     0,    35,     0,    36,     0,     0,   207,    39
     2819       0,     0,     0,     0,     0,    38,    39
    28822820};
    28832821
    28842822#define yypact_value_is_default(yystate) \
    2885   ((yystate) == (-1338))
     2823  ((yystate) == (-1333))
    28862824
    28872825#define yytable_value_is_error(yytable_value) \
     
    28902828static const yytype_int16 yycheck[] =
    28912829{
    2892        0,     1,   239,    43,   185,   116,   534,     0,   204,   185,
    2893       43,   185,   185,   281,   185,    43,   521,     1,   601,   185,
    2894      185,   603,   168,   169,   105,   750,     0,     1,   219,   621,
    2895      349,   876,    32,   345,    49,   750,     0,   693,   603,    32,
    2896      156,   750,   513,    43,  1023,   757,   647,   572,   186,    49,
    2897     1325,   985,   186,   492,   189,     0,    49,   496,    32,  1022,
    2898     1023,   196,   156,    63,    32,  1402,    66,   601,    32,    69,
    2899       63,     0,    28,    66,   155,   187,    69,   109,   601,    39,
    2900       85,    43,   601,     0,   265,    69,    57,    32,   349,   265,
    2901      201,   265,   265,    43,   265,    69,    39,   601,   113,   265,
    2902      265,  1035,    63,    32,    51,   105,   364,   256,   113,   418,
    2903      368,   601,  1042,   113,    39,    32,   116,   117,    72,   696,
    2904       43,   109,    78,   111,   604,   601,   109,   876,   266,   438,
    2905      610,   146,   266,   268,   490,   106,  1473,   446,   109,    96,
    2906       39,   734,    72,   426,   427,   185,   146,   147,  1423,   261,
    2907      262,   111,   185,  1456,   147,   155,   156,   185,  1054,  1055,
    2908      160,    95,   109,   109,   110,   122,   109,   160,   111,    64,
    2909      482,   132,     0,     1,     0,    72,    82,    96,   132,    72,
    2910      636,   637,   907,   688,   284,   185,   186,  1490,   323,  1492,
    2911       83,    84,   907,   186,   209,   129,   331,   653,   907,   334,
    2912       82,   201,   132,   122,    32,   111,    32,   307,   308,   209,
    2913      109,   494,   111,  1117,   109,   719,   209,  1121,   111,   410,
    2914      117,   221,   876,   185,   239,   265,   294,   488,   221,   719,
    2915      513,   814,   265,    39,  1130,   185,   504,   265,    66,   239,
    2916       66,    69,    11,   719,   826,   345,   902,   218,    39,   605,
    2917     1229,   251,  1505,   609,   128,   711,   271,   131,   251,   259,
    2918      341,   826,   185,   398,   264,   265,   266,   402,   406,   418,
    2919      795,   271,   406,   266,   630,   109,   988,   251,   634,  1532,
    2920      814,   381,    39,   251,   603,   396,   116,   251,  1406,   438,
    2921      371,   814,   307,  1042,   294,   814,   579,   446,    44,    45,
    2922     1279,   272,   107,   109,   112,   111,   251,   307,   279,   621,
    2923      814,   256,    82,   424,   626,  1278,  1279,   433,   109,   430,
    2924      111,   109,   251,   323,   814,   926,   131,   256,   328,   112,
    2925      345,   908,   590,   116,   251,   328,   816,   228,   814,   433,
    2926      110,   341,   480,   131,   479,   345,   480,   803,   114,   349,
    2927      350,   934,   109,   935,   111,     3,   247,    70,   426,   427,
    2928       73,   110,  1292,    76,   364,    78,   116,     3,   368,   115,
    2929     1215,   371,    85,   682,   632,    49,   953,   348,    44,    45,
    2930      130,   130,  1500,    44,    45,    90,    91,  1505,   482,   116,
    2931       72,  1045,    72,   221,   365,   221,   396,    79,   369,    79,
    2932      934,    83,    84,    83,    84,    72,   406,  1525,   110,  1001,
    2933      526,   426,   427,   406,  1532,   934,    83,    84,   112,  1398,
    2934      125,   126,   116,   251,   424,   251,   426,   427,   130,   111,
    2935      430,   111,   526,   433,   746,  1398,   571,   572,   506,   113,
    2936     1505,   110,   109,   511,   525,   116,   514,   109,   114,   111,
    2937      550,   551,   552,   114,   454,     0,  1390,  1391,  1051,   130,
    2938     1525,   130,   464,   109,   969,   116,  1215,  1532,  1252,   737,
    2939     1254,  1255,   472,   418,    72,   591,    74,    75,     0,   494,
    2940      480,   132,   482,   109,   484,    83,    84,   480,   488,   418,
    2941      110,   484,   848,   438,   494,   109,   116,   591,   513,   212,
    2942      568,   446,   648,   109,   943,   111,   506,   826,   508,   438,
    2943      484,   511,   983,   513,   514,  1445,   114,   446,   131,  1101,
    2944      484,   521,  1452,   658,   350,   525,   526,   662,  1129,    72,
    2945     1010,  1011,   111,   682,   113,   209,    79,   119,   120,   484,
    2946       83,    84,  1119,  1292,   655,   657,    72,   805,    74,    75,
    2947      688,   130,   810,   482,   688,   484,   112,    83,    84,   708,
    2948      116,  1215,   116,   116,   579,   826,   279,   484,   111,   116,
    2949      116,   571,   572,  1503,   111,   110,   113,   130,   132,   579,
    2950      109,   116,  1087,   109,   940,   132,   132,  1092,   114,   109,
    2951      590,   591,   116,   130,   906,   595,  1476,   271,   109,   110,
    2952      111,   601,  1482,   603,  1181,  1182,   621,    72,   132,    74,
    2953       75,   626,     4,     5,     6,     7,     8,     9,    83,    84,
    2954      294,   621,  1502,   110,   117,   112,   626,  1507,   628,   116,
    2955      123,   124,   632,   307,   109,   635,   636,   637,    72,   352,
    2956      898,   354,    76,   116,   131,   132,   111,   473,   109,    83,
    2957       84,   622,   746,   653,  1308,   655,   484,   757,   484,   132,
    2958      795,     0,     1,   912,   745,   914,   116,   638,   110,   671,
    2959      116,   116,   863,   110,   591,   109,   112,    69,   939,    71,
    2960      116,   652,   132,   117,   118,   685,   132,   132,   688,  1001,
    2961       29,    30,   883,    32,   109,   811,  1445,   110,   116,  1292,
    2962      116,   110,   110,  1452,    43,   116,  1360,   116,   945,  1363,
    2963       49,   711,   712,   713,   132,   110,   132,   811,    57,   719,
    2964      720,   132,   116,   869,    63,   110,   907,    66,   109,   442,
    2965       69,   907,   116,   907,   907,   112,   907,   682,   132,   116,
    2966      132,   907,   907,    82,    83,   745,   746,    72,   132,    30,
    2967      750,   751,  1406,   682,  1503,   110,   112,  1411,    83,    84,
    2968      109,   116,   733,   708,    85,    86,    87,   106,    88,    89,
    2969      109,   909,   115,  1366,   109,   909,   111,   116,   913,   708,
    2970      454,  1309,   117,   118,  1509,  1439,    92,    93,   109,   791,
    2971      111,   132,   113,   114,  1509,   795,   109,   623,   110,   801,
    2972     1509,    82,    83,   803,   116,   805,    64,   807,   147,  1386,
    2973      810,   811,   906,   815,   814,   109,   155,   746,  1014,   112,
    2974      109,   160,   111,   132,   905,  1402,   826,   114,   117,   118,
    2975      115,   116,   506,    72,   508,    74,    75,   511,  1150,   114,
    2976      514,   109,   110,   111,    83,    84,   185,   186,    72,  1117,
    2977       74,    75,    76,  1121,  1122,   990,  1449,   114,  1451,    83,
    2978       84,   110,   201,   506,   109,   508,  1124,   116,   511,  1523,
    2979      209,   514,  1007,   699,   110,  1529,   876,   110,   111,   218,
    2980      116,    72,   221,    74,    75,   109,  1540,   713,   132,   228,
    2981     1544,  1037,    83,    84,   811,  1472,  1473,   109,   898,   111,
    2982      132,  1001,   876,    72,   243,   905,   906,   907,   247,   909,
    2983       79,  1504,   251,   252,    83,    84,   110,  1229,   109,    58,
    2984       59,   921,   116,   114,    44,    45,   265,   266,  1022,    82,
    2985      945,   876,   110,   272,   934,   935,   112,   110,   116,   939,
    2986      279,   109,  1042,   116,   944,   945,   110,   876,   109,  1087,
    2987     1085,   110,   116,  1087,  1092,   115,   116,   116,  1092,   876,
    2988      944,    72,   243,    74,    75,    76,   109,     1,   111,   969,
    2989      944,  1239,    83,    84,   117,   118,   110,   906,   110,   127,
    2990     1485,   807,   116,    82,   116,     3,  1001,   553,   554,   328,
    2991     1125,   110,    10,    11,    12,    13,    14,   116,  1109,   561,
    2992      562,  1001,    10,    11,    12,    13,    14,   110,   110,   348,
    2993      349,   685,   118,   116,   116,    49,   128,  1019,  1020,   110,
    2994      733,    39,  1022,  1023,    94,   116,   365,   555,   556,  1534,
    2995      369,    39,    10,    11,    12,    13,    14,   110,   109,   110,
    2996      111,   380,  1042,   116,     3,   109,   110,   111,   876,    67,
    2997      876,    10,    11,    12,    13,    14,  1150,   396,  1326,    67,
    2998      111,    39,  1330,   557,   558,   559,   560,   406,  1042,   131,
    2999      109,   105,    58,    59,    60,  1077,  1078,   109,   109,   113,
    3000       39,   109,  1082,   111,   109,   424,   111,  1087,   109,    67,
    3001      111,   430,  1092,   432,    72,   112,   112,  1042,    76,   380,
    3002      109,  1101,   111,   110,   110,    83,    84,   112,    67,  1109,
    3003      110,    72,   146,  1042,   110,    76,   944,   110,   110,     0,
    3004        1,   155,    83,    84,  1124,  1042,  1194,  1195,   467,  1197,
    3005     1211,   109,   109,   472,   111,   111,  1204,     0,  1206,   117,
    3006      118,   480,   112,   114,   116,   484,   131,   114,   109,   488,
    3007     1150,    32,   491,   110,   493,   109,   117,   118,   114,  1427,
    3008      112,     4,     5,     6,     7,     8,     9,   110,   112,    32,
    3009       72,   205,    74,    75,    76,   209,   112,   112,  1004,   112,
    3010       43,    83,    84,   130,  1278,    66,    49,   116,    69,   528,
    3011       33,   130,  1192,  1193,   533,    29,   130,   110,   110,     1,
    3012       63,   112,   110,    66,   114,   239,    69,   109,   112,  1193,
    3013      491,  1211,   493,   116,  1042,  1215,  1042,   115,   115,  1193,
    3014       72,  1150,    74,    75,    76,  1227,    69,   115,    71,  1229,
    3015      109,    83,    84,  1233,   110,   130,   132,   271,   110,   116,
    3016      274,  1215,   110,   110,   583,     3,   110,   921,   110,  1233,
    3017      116,   590,    10,    11,    12,    13,    14,  1259,   115,  1233,
    3018      294,   110,   601,   110,   603,  1267,  1268,  1269,   110,   110,
    3019     1215,  1382,   110,   307,   110,   156,    29,   110,  1278,  1279,
    3020      110,    39,  1519,   622,   147,   110,  1215,  1287,   110,   110,
    3021      110,   110,  1292,   130,  1362,   110,   131,   160,  1215,   638,
    3022     1229,   112,   116,   112,   643,   110,   110,   341,   116,    67,
    3023      110,   345,   130,   652,   109,   654,   655,   656,  1292,   116,
    3024      114,   112,   185,   186,   110,  1325,   110,   110,  1509,  1331,
    3025      364,   116,   112,  1509,   368,  1509,  1509,   371,  1509,   110,
    3026      221,  1325,   116,  1509,  1509,   110,   209,  1292,   116,   688,
    3027      110,  1325,   109,   692,   109,   694,   112,   109,   221,   698,
    3028      109,   109,   643,  1292,  1192,  1193,  1192,   706,   130,   112,
    3029      251,   132,  1510,   115,  1485,  1292,  1510,   464,   110,   110,
    3030      719,   720,  1382,   110,   128,   115,   115,  1215,   251,  1215,
    3031      114,   112,   426,   427,   733,    72,  1534,   132,  1398,    76,
    3032     1534,    49,   265,   110,   112,  1233,    83,    84,  1082,   112,
    3033     1381,   692,   116,   694,   110,    63,   110,   698,    66,   110,
    3034      454,    69,   112,  1423,   112,   112,   110,   112,    47,   112,
    3035      112,   132,   109,   467,   111,   132,   115,   132,   110,  1423,
    3036      117,   118,   115,   132,   110,  1445,   132,   115,   112,  1423,
    3037      252,   112,  1452,   112,  1454,   130,  1456,   112,   492,  1287,
    3038      494,  1287,   496,   112,  1292,   328,  1292,   112,   110,  1509,
    3039      110,  1445,   506,   112,   508,   814,  1509,   511,  1452,   513,
    3040      514,  1509,   112,   109,   109,  1485,   349,   826,   109,    60,
    3041     1490,   525,  1492,   110,   110,   109,   114,  1325,   132,   147,
    3042     1445,   112,   112,  1503,  1519,   110,   112,  1452,   110,  1509,
    3043     1510,    96,   160,    96,   109,   109,  1445,  1510,   115,  1519,
    3044       57,   110,   110,  1452,    55,   132,   110,    42,  1445,  1503,
    3045      869,   110,     0,     1,  1534,  1452,   875,   130,   186,   116,
    3046      671,  1534,   132,   406,   110,   579,     4,     5,     6,     7,
    3047        8,     9,   433,   110,   132,    96,   590,    96,  1503,   898,
    3048      132,   209,   110,   132,    32,   110,    97,   132,   907,   106,
    3049      909,   115,   109,   221,  1503,   110,   110,   916,    85,    86,
    3050       87,    49,   112,   112,   671,   132,  1503,   621,   869,   109,
    3051      132,   115,   626,   115,   875,  1423,   110,   110,   632,   132,
    3052      939,    69,   109,   484,   111,   110,   113,   114,   110,   667,
    3053     1058,    69,   563,    71,   564,   979,   565,  1445,   155,  1445,
    3054      959,   484,   567,  1215,  1452,   488,  1452,    72,   566,    74,
    3055       75,    76,  1473,  1368,   973,   916,  1544,   105,    83,    84,
    3056     1122,  1330,   981,  1302,  1073,   526,   985,   685,  1452,   685,
    3057      914,   685,  1092,   698,   973,    66,   922,   583,   869,   649,
    3058      791,   941,   193,   723,   109,   467,   111,   484,  1233,    -1,
    3059      801,    82,   117,   118,   733,  1503,    -1,  1503,   571,   147,
    3060      328,   218,   571,    -1,   815,   216,   571,   155,   156,   723,
    3061       -1,    -1,   973,    -1,    -1,   226,  1035,    -1,    -1,    -1,
    3062       -1,    -1,    -1,    -1,   791,    -1,   117,    -1,    -1,    -1,
    3063      591,   745,    -1,    -1,   801,    -1,    -1,    -1,   186,    -1,
    3064       -1,    -1,    -1,    -1,    -1,    -1,   528,    -1,   815,    -1,
    3065       -1,   533,    -1,   201,  1073,   272,   204,   205,   601,    -1,
    3066      603,   209,   279,    -1,    -1,    -1,    -1,    -1,  1087,   160,
    3067       -1,    -1,    -1,  1092,   635,   636,   637,    -1,   406,    -1,
    3068       -1,    -1,   230,   294,    -1,    -1,   234,    -1,   236,    -1,
    3069     1109,   805,   653,    -1,    -1,    -1,   810,   245,    -1,    -1,
    3070     1454,   583,  1456,   251,    -1,    -1,    -1,    -1,   256,    -1,
    3071      696,    -1,  1073,    -1,    -1,    -1,    -1,    -1,   266,    -1,
    3072       -1,    72,    -1,    74,    75,    76,   274,    -1,    -1,    -1,
    3073      221,   348,    83,    84,    -1,    -1,  1490,    -1,  1492,    -1,
    3074       -1,    -1,    -1,    -1,    -1,   688,    -1,    -1,   365,    -1,
    3075      711,    -1,   369,    -1,    -1,    -1,     0,    -1,   109,    -1,
    3076      111,    10,    11,    12,    13,    14,   117,   118,   259,  1188,
    3077       -1,    -1,   654,   264,   656,    -1,   719,   720,    -1,   130,
    3078       -1,    -1,    -1,    -1,   898,    -1,    -1,    -1,    32,    -1,
    3079       39,   905,  1211,   341,    -1,    -1,    -1,   345,    -1,    -1,
    3080       -1,    -1,   788,   351,    -1,    -1,    -1,   921,  1019,  1020,
    3081       -1,    -1,    -1,    -1,    -1,   432,   364,    -1,    67,    -1,
    3082      368,    -1,    -1,   371,   706,    69,    -1,  1188,    -1,   943,
    3083      944,   945,   443,  1252,    -1,  1254,  1255,    -1,    -1,    -1,
    3084       -1,    -1,   803,    -1,    10,    11,    12,    13,    14,    -1,
    3085      811,    -1,  1019,  1020,    -1,    -1,    -1,    -1,   469,   350,
    3086      109,    -1,   111,    -1,    -1,    -1,  1077,  1078,   117,   118,
    3087      418,   814,    -1,    39,    -1,    -1,    -1,    -1,    -1,   865,
    3088       -1,    -1,    -1,   826,    -1,   433,    -1,  1001,    -1,    -1,
    3089      438,    -1,    -1,    -1,    -1,   506,    -1,    -1,   446,    -1,
    3090      511,    67,    -1,   514,    -1,    -1,    -1,    -1,    -1,    -1,
    3091     1077,  1078,   156,    -1,    -1,   876,   464,    -1,    -1,   467,
    3092       -1,    -1,   908,    -1,    10,    11,    12,    13,    14,    -1,
    3093       -1,    -1,    -1,    -1,   482,    -1,   484,    -1,    -1,    -1,
    3094      431,    -1,    -1,   109,   492,   111,    -1,    -1,   496,    -1,
    3095       -1,   117,   118,    39,    -1,    -1,    -1,    -1,    -1,    -1,
    3096       -1,    -1,  1381,  1382,   907,    -1,   909,   953,  1082,    -1,
    3097       -1,  1390,  1391,   590,    -1,    -1,    -1,   525,   526,    -1,
    3098       -1,    67,   473,   944,    -1,    -1,   230,    -1,    -1,    -1,
    3099       -1,    -1,    -1,    -1,    -1,    -1,   939,    -1,    -1,    -1,
    3100       -1,    -1,   988,    -1,    -1,   622,    -1,   251,    -1,  1428,
    3101     1124,    -1,   256,    -1,    -1,    -1,    -1,     0,    -1,    -1,
    3102       -1,   638,    -1,   109,   572,   111,    -1,    -1,    -1,    -1,
    3103       -1,   117,   118,    -1,    72,   652,    74,    75,    76,    -1,
    3104       -1,    -1,   590,   591,    -1,    83,    84,    -1,  1259,    32,
    3105       -1,    -1,    -1,  1039,    -1,   603,  1267,  1268,  1269,   670,
    3106     1227,  1022,  1023,    -1,    -1,    -1,  1485,  1486,   679,    -1,
    3107       -1,   109,   683,   621,    -1,    -1,  1495,   959,   626,   117,
    3108      118,  1042,    -1,    -1,   632,    -1,    69,   635,   636,   637,
    3109     1509,  1510,  1259,    -1,    -1,    -1,    -1,  1211,    -1,   981,
    3110     1267,  1268,  1269,   985,   595,   653,    72,   351,    74,    75,
    3111       76,    -1,    -1,    -1,    -1,  1534,   733,    83,    84,  1233,
    3112     1331,    -1,    -1,   671,    -1,    -1,    10,    11,    12,    13,
    3113       14,    -1,   623,  1119,   682,    -1,    -1,   628,    -1,    -1,
    3114       -1,    -1,    -1,   109,  1087,   111,    -1,    -1,    -1,  1092,
    3115       -1,   117,   118,  1035,    -1,    39,    -1,    -1,    -1,    -1,
    3116      708,    -1,    -1,   711,  1331,    -1,    -1,    66,    -1,    -1,
    3117       -1,    -1,   720,   156,   418,   723,    -1,    -1,    -1,    -1,
    3118       -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    72,   433,
    3119       74,    75,    76,    -1,   438,  1181,  1182,   745,   746,    83,
    3120       84,    -1,   446,   751,    -1,    -1,    -1,    -1,   699,    -1,
    3121       -1,  1325,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,
    3122      464,    -1,   713,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3123       -1,  1192,  1193,   117,   118,    -1,    -1,    -1,   482,    -1,
    3124      484,    -1,    -1,   791,    -1,    -1,    -1,    -1,    -1,    -1,
    3125       -1,    -1,    -1,   801,  1215,   803,    -1,   805,    -1,    -1,
    3126      808,   160,   810,   811,    -1,    -1,    -1,   815,   251,    -1,
    3127       -1,    -1,  1233,   256,    -1,    -1,    -1,   825,    -1,    -1,
    3128       -1,   898,   526,    -1,    -1,    -1,    -1,    -1,    -1,   900,
    3129       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3130       19,    20,    21,    22,    23,    24,    25,    26,    27,  1423,
    3131       -1,    30,    31,    32,    -1,    -1,   807,  1278,  1279,    -1,
    3132       39,     0,   221,    -1,    -1,    -1,  1287,    -1,   876,    -1,
    3133       -1,  1292,    -1,    -1,    72,    -1,    74,    75,    76,    -1,
    3134     1454,    -1,  1456,    -1,    -1,    83,    84,   591,    67,    -1,
    3135      898,    -1,    -1,    32,    -1,    74,    75,   905,   906,    -1,
    3136      259,   909,    -1,    -1,  1325,   264,    -1,    -1,   351,    -1,
    3137     1252,   109,  1254,  1255,    -1,    -1,  1490,    -1,  1492,   117,
    3138      118,    -1,    -1,    -1,    -1,    -1,    -1,   935,    -1,    -1,
    3139       69,   635,   636,   637,    -1,   943,   944,    -1,   117,   118,
    3140     1386,    -1,    -1,    -1,    -1,  1519,    -1,    -1,    -1,   653,
    3141       -1,    -1,    -1,    -1,    -1,    -1,  1402,    -1,    -1,    -1,
    3142       -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,    -1,    -1,
    3143       -1,    -1,    -1,    -1,    -1,   418,    -1,  1398,   682,    -1,
    3144       -1,    -1,  1053,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3145      433,   350,    -1,  1001,    -1,   438,    -1,    -1,    -1,    -1,
    3146       -1,    -1,  1423,   446,   708,    -1,  1014,   711,    -1,    -1,
    3147       -1,  1019,  1020,    -1,  1022,  1023,    -1,   156,    -1,    -1,
    3148       -1,   464,    -1,    -1,  1445,    -1,  1472,  1473,    -1,    -1,
    3149       -1,  1452,    -1,    -1,  1042,    -1,    -1,    -1,    -1,   482,
    3150       -1,   484,   746,    -1,    -1,    -1,    -1,    -1,  1390,  1391,
    3151       -1,    -1,    -1,  1004,    -1,    -1,    10,    11,    12,    13,
    3152       14,    -1,    10,    11,    12,    13,    14,    -1,    -1,  1077,
    3153     1078,    -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3154       -1,    -1,  1503,   526,    -1,    39,  1428,   791,    -1,    -1,
    3155       -1,    39,    -1,    -1,    -1,    -1,    -1,   801,    -1,   803,
    3156       -1,    -1,    -1,    -1,   808,    -1,  1509,   811,    -1,    -1,
    3157       -1,   815,   251,    67,   473,    -1,  1124,   256,    72,    67,
    3158       74,    75,    76,    -1,    72,    -1,    74,    75,    76,    83,
    3159       84,    -1,    -1,    -1,  1211,    83,    84,    -1,    -1,    -1,
    3160       -1,    -1,  1150,    -1,  1486,    -1,    -1,    -1,   591,    -1,
    3161       -1,    -1,    -1,  1495,    -1,   109,    -1,   111,    -1,    -1,
    3162       -1,   109,    -1,   117,   118,    -1,    -1,    -1,    -1,   117,
    3163      118,    -1,   876,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3164       75,    76,    -1,    -1,    -1,  1193,    -1,    -1,    83,    84,
    3165       -1,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,    -1,
    3166       -1,    -1,   906,  1211,    -1,    -1,    -1,  1215,    -1,    -1,
    3167      653,    -1,   351,    -1,   109,    -1,   111,    -1,    -1,  1227,
    3168       -1,  1229,   117,   118,    -1,  1233,    66,    -1,   671,    -1,
    3169     1301,    -1,    -1,    -1,    -1,    75,   595,    -1,    -1,   682,
    3170       -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3171       -1,  1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,
    3172     1268,  1269,    -1,    -1,   623,   708,    -1,    -1,   711,   628,
    3173     1278,  1279,    -1,    -1,    -1,    -1,    -1,   117,     0,   418,
    3174       -1,    -1,    -1,    -1,  1292,    -1,    -1,    -1,    -1,    -1,
    3175       -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,   438,
    3176       -1,    -1,    -1,   746,  1381,    -1,    -1,   446,    -1,    -1,
    3177       32,    -1,    -1,    -1,    -1,  1019,  1020,  1325,  1022,  1023,
    3178      160,    -1,    -1,  1331,    -1,   464,    -1,    -1,    -1,    -1,
    3179       -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,  1042,    -1,
    3180      699,    -1,    -1,   482,    -1,   484,    -1,    69,   791,    -1,
    3181       -1,    -1,    -1,    -1,   713,    -1,    -1,    -1,   801,    -1,
    3182      803,    -1,    -1,    -1,    -1,   808,    -1,    -1,   811,    -1,
    3183       -1,    -1,   815,  1077,  1078,    -1,    -1,    -1,    -1,    -1,
    3184       -1,   221,  1453,    -1,  1455,    -1,    -1,   526,    -1,    -1,
    3185     1398,    -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,
    3186       53,    -1,    55,    -1,    -1,    58,    59,    60,    -1,    62,
    3187       -1,    -1,    -1,    -1,    -1,  1423,    -1,    -1,  1489,   259,
    3188     1491,    39,    -1,    76,   264,    -1,    -1,    -1,    -1,    -1,
    3189       -1,    -1,    -1,   876,   156,    88,    89,  1445,    -1,   279,
    3190       -1,    -1,    -1,    -1,  1452,    -1,  1150,    -1,   807,    67,
    3191       -1,    -1,   591,    -1,    72,    -1,    74,    75,    76,    -1,
    3192       -1,    -1,  1533,   906,  1535,    83,    84,    -1,    -1,    -1,
    3193       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1548,  1549,    -1,
    3194       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1193,
    3195       -1,   109,    -1,   111,    -1,  1503,   635,   636,   637,   117,
    3196      118,    -1,  1510,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3197      350,  1215,    -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,
    3198       -1,    -1,    -1,  1227,    -1,  1229,    -1,    -1,    -1,   251,
    3199       -1,    -1,   671,    -1,   256,    -1,    -1,    -1,    -1,    -1,
    3200       -1,    -1,    -1,   682,    -1,    -1,    -1,    -1,    -1,    10,
    3201       11,    12,    13,    14,    -1,  1259,    -1,    -1,    -1,    -1,
    3202       -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,   708,
    3203       -1,    -1,   711,    -1,  1278,  1279,  1019,  1020,    39,  1022,
    3204     1023,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,    -1,
    3205       -1,   431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1042,
    3206       -1,    -1,    -1,    -1,    -1,    -1,    67,   746,   448,    -1,
    3207       -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
    3208       -1,    -1,    83,    84,    -1,    -1,    -1,  1331,    -1,   351,
    3209       -1,    -1,    -1,   473,  1077,  1078,    26,    27,    28,    -1,
    3210       -1,    -1,    -1,    -1,    -1,  1004,    -1,    -1,   109,    -1,
    3211       -1,    -1,   791,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3212       -1,    -1,   801,    -1,   803,    -1,    -1,    -1,    -1,   808,
    3213       -1,    -1,   811,    -1,    -1,    -1,   815,    -1,    97,    98,
    3214       99,   100,   101,   102,   103,   104,   105,   106,   107,    -1,
    3215       -1,   344,    -1,   346,  1398,    -1,   418,    -1,    -1,    -1,
    3216       -1,    -1,    -1,    -1,   357,   358,    -1,  1150,    98,    -1,
    3217      100,   433,   131,    -1,    -1,    -1,   438,    -1,    -1,    -1,
    3218       -1,    -1,    -1,    -1,   446,    -1,    -1,    -1,    -1,    -1,
    3219       -1,    -1,    -1,    -1,    -1,    -1,    -1,   876,    -1,    -1,
    3220       -1,  1445,   464,    -1,    -1,    -1,    -1,    -1,  1452,    -1,
    3221     1193,    -1,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,
    3222      482,    -1,   484,    -1,    -1,    -1,    -1,   906,    -1,    -1,
    3223       -1,    -1,  1215,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3224       -1,    -1,    -1,   623,  1227,    -1,  1229,    -1,   628,    -1,
    3225       -1,   181,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1503,
    3226       -1,   191,   192,    -1,   526,    -1,   196,    -1,   198,   199,
    3227       -1,    -1,    -1,    -1,    -1,    -1,  1259,    -1,    -1,    -1,
    3228       -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,    -1,
    3229       -1,    -1,    -1,  1192,    -1,  1278,  1279,    -1,    -1,    -1,
    3230       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1292,
    3231       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   699,
    3232       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   591,
    3233       -1,    -1,    -1,   713,    -1,    -1,    -1,    -1,    -1,    -1,
    3234     1019,  1020,    -1,  1022,  1023,    -1,    -1,    -1,  1331,    -1,
    3235       -1,    -1,    -1,   733,    -1,    -1,    -1,    -1,    -1,    -1,
    3236       -1,    -1,    -1,  1042,     7,    -1,    -1,    10,    11,    12,
    3237       13,    14,    -1,   635,   636,   637,    -1,    -1,    -1,    -1,
    3238       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1287,    -1,
    3239       -1,   653,    -1,    -1,    37,    38,    39,    40,  1077,  1078,
    3240       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   671,
    3241       -1,    -1,    -1,    -1,    -1,  1398,    -1,    -1,    -1,    -1,
    3242      682,    -1,    -1,    66,    67,    -1,    -1,   807,    -1,    72,
    3243       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3244       83,    84,    -1,    86,    87,    -1,   708,    -1,    -1,   711,
    3245       -1,    -1,    -1,    10,    11,    12,    13,    14,    -1,    -1,
    3246       -1,    -1,  1445,    -1,    -1,    -1,   109,    -1,   111,  1452,
    3247       -1,  1150,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3248       -1,    -1,    39,    -1,   746,    -1,    -1,    -1,    -1,    -1,
     2830       0,     1,    43,    43,    43,   238,   184,     0,   116,   203,
     2831       1,   184,     0,   530,   184,   218,     0,   184,   184,   509,
     2832     740,     0,   167,   168,   740,   740,   184,   184,   860,   613,
     2833     595,    32,    32,   593,   725,   637,   347,     1,    43,    32,
     2834     460,   593,   517,    43,    32,   478,   488,   593,    32,    49,
     2835     492,   347,   566,    32,   105,   186,    49,   595,  1301,    39,
     2836     185,     0,   966,    63,   423,   424,    66,    81,    43,    69,
     2837      63,   593,   683,    66,   593,   362,    69,   593,    69,   366,
     2838    1002,  1003,    28,   593,    97,    49,   264,  1020,  1003,    43,
     2839      39,   264,   200,    32,   264,    81,    49,   264,   264,   627,
     2840     628,    51,     0,     1,   155,   105,   264,   264,   118,  1013,
     2841       0,  1110,   109,   113,    72,   643,   116,   117,   131,    81,
     2842       0,   343,  1032,  1033,   134,   106,   112,    66,   109,   260,
     2843     261,   490,    78,   113,    32,    63,   133,   111,    44,    45,
     2844     265,   105,    32,   184,   184,   184,   146,   147,    39,   113,
     2845     509,   113,    32,  1485,   147,   155,   156,    49,  1401,   159,
     2846     113,   111,   111,    43,   113,    64,   159,   860,   280,    49,
     2847     890,    69,   628,   701,   890,   890,   134,   111,   415,   184,
     2848    1512,   185,   146,    63,   184,   185,    66,   643,   484,    69,
     2849     709,   155,   185,   709,   627,   628,  1106,   434,   255,   709,
     2850     200,   686,  1485,   678,   407,   442,   134,   596,   208,   184,
     2851     643,   117,   111,   602,   573,   208,   111,   112,   113,    39,
     2852     220,   113,  1505,   264,   264,   264,    39,   220,  1380,  1512,
     2853     184,  1230,    72,  1232,  1233,    72,   217,   111,   238,   799,
     2854     204,   661,    44,    45,   208,   701,   811,   799,    39,   250,
     2855     250,    39,    11,   799,   146,   208,   478,   250,   258,   133,
     2856      98,   265,   250,   263,   264,   265,   250,   147,   701,   783,
     2857     270,   250,   265,   811,   238,   886,   255,   799,   403,   159,
     2858     799,   220,   119,   799,   595,   393,   124,  1202,   339,   799,
     2859     271,   111,    98,   113,   134,   295,   583,   278,   111,   118,
     2860     113,  1453,    87,   736,   184,   185,   270,   909,   308,   273,
     2861     111,   250,  1384,   421,   116,   134,   208,   270,   124,   427,
     2862     111,   114,   113,   111,   324,   113,  1435,  1020,   208,   329,
     2863     115,   295,   116,  1255,  1256,  1268,   329,   624,  1029,   339,
     2864     220,  1256,   295,   343,   308,   227,   238,   347,   348,   111,
     2865     112,   476,   250,   918,   112,   308,  1188,   917,   415,   779,
     2866     250,  1470,   362,  1472,   246,   255,   366,    44,    45,   789,
     2867     250,   917,     0,     1,   132,   339,    72,   434,   270,   343,
     2868     800,   112,   363,   118,   264,   442,   367,   118,   500,    85,
     2869      86,   613,     3,   393,  1456,   917,   618,   981,   362,   403,
     2870    1462,   597,   366,   403,    32,   601,   891,  1311,  1480,   348,
     2871     403,    55,   801,  1485,   118,   111,   308,   113,    30,     3,
     2872    1482,   421,   112,   423,   424,  1487,   622,   427,   132,   429,
     2873     626,   118,    72,  1505,    72,   672,   415,   112,    66,   116,
     2874    1512,    69,   132,     0,   118,    85,    86,    85,    86,   329,
     2875     450,   343,   937,    97,  1376,   434,   889,   132,   132,   423,
     2876     424,  1376,     0,   442,  1368,  1369,   118,   347,   468,   111,
     2877      82,    83,   476,   113,   964,   113,   476,   952,   478,   295,
     2878     480,   111,   134,   476,   484,   927,   450,   480,   121,   122,
     2879     490,  1424,   480,   638,   118,  1188,   480,   450,  1431,   463,
     2880     811,   480,   502,  1105,   504,   792,   112,   507,   132,   509,
     2881     510,   118,   118,  1078,   736,   811,   647,   517,   118,   118,
     2882     113,   521,   115,   403,   488,   415,   490,   134,   492,   114,
     2883     469,   423,   424,   118,   134,   134,   112,   645,   502,   132,
     2884     504,   480,   118,   507,   434,   509,   510,   133,   192,   502,
     2885    1483,   504,   442,   678,   507,   111,   118,   510,     4,     5,
     2886       6,     7,     8,     9,   130,   565,   566,   133,   112,  1002,
     2887     118,   215,   134,   573,   118,  1268,   111,  1268,   113,   999,
     2888    1000,   225,   480,   583,   584,   112,   134,   587,   478,  1064,
     2889     480,   118,   220,   593,  1069,   595,   584,   112,   490,   111,
     2890     480,   990,   991,   118,   484,   118,   112,   423,   424,   573,
     2891     114,  1096,   118,   613,   118,   672,   728,   509,   618,   583,
     2892     620,   134,   250,    69,   624,    71,   922,   627,   628,   111,
     2893     242,   118,   112,   614,  1054,  1055,   111,   833,   118,   118,
     2894     118,   698,   118,   643,   847,   645,   118,   134,   629,   613,
     2895     112,   295,  1343,   114,   618,   134,   134,   118,   134,    72,
     2896     624,   642,   134,    76,   867,   114,    72,   889,    49,   118,
     2897    1155,  1156,    85,    86,   678,   675,   615,   119,   678,    85,
     2898      86,   573,    63,   125,   126,    66,   502,   111,    69,   112,
     2899     112,   507,  1125,   672,   510,   118,   929,   111,   111,   113,
     2900     113,   701,   702,   703,    90,    91,   119,   120,   853,   709,
     2901     710,   675,   890,   593,   114,   595,   112,   890,   118,   698,
     2902     890,   613,   675,   890,   890,   112,   618,   923,   112,   112,
     2903     112,  1424,   890,   890,   118,   118,   736,  1428,  1431,  1430,
     2904     740,   741,   111,   724,   113,   112,   112,   112,   564,   713,
     2905     689,   118,   118,     4,     5,     6,     7,     8,     9,   981,
     2906     111,    92,    93,     1,   703,   377,   147,   892,  1285,  1489,
     2907     112,   112,   111,  1489,  1489,   112,   118,   118,   159,   117,
     2908    1200,   118,   672,   783,     4,     5,     6,     7,     8,     9,
     2909    1483,   111,   792,  1484,   794,   439,   127,   128,   678,   799,
     2910     994,   112,    72,   111,   185,   113,  1094,   118,   698,    79,
     2911    1098,   811,    82,    33,    84,    85,    86,  1237,    69,   134,
     2912      71,   465,  1255,   111,  1244,  1245,  1246,   208,   792,   709,
     2913     710,    72,   112,    74,    75,    76,    94,    95,   118,   220,
     2914      72,   112,    74,    75,    85,    86,   736,   118,   111,    69,
     2915     113,    71,   480,    85,    86,   794,   119,   120,   502,   111,
     2916     860,   113,   111,   507,    66,    64,   510,     0,     1,   111,
     2917    1015,   113,   860,   134,   111,   487,   113,   489,  1363,   111,
     2918      82,   860,   882,   134,   116,   112,   113,  1307,   892,   889,
     2919     890,   116,   892,   116,   882,  1380,    29,    30,    72,    32,
     2920      74,    75,   116,  1125,   904,   134,    57,   111,   112,   113,
     2921      43,    85,    86,    72,   111,   117,    49,   917,   918,   799,
     2922      79,   860,   922,    82,    57,    84,    85,    86,   928,   929,
     2923      63,   811,    72,    66,    74,    75,    69,   928,   134,  1064,
     2924     904,   111,   116,   113,  1069,    85,    86,    81,   329,    82,
     2925      83,   904,   952,   111,   113,   106,   111,   159,   109,   283,
     2926     117,   118,   860,   927,   928,   929,    81,  1452,  1453,   502,
     2927     860,   504,   120,   106,   507,   129,   109,   510,  1086,    96,
     2928    1202,   981,  1094,   116,   308,   309,  1098,  1099,   130,   111,
     2929    1465,   113,   111,   113,   113,   111,   112,   113,     3,   889,
     2930     119,   120,  1002,  1003,   114,    10,    11,    12,    13,    14,
     2931     890,   114,   892,   251,   147,   112,   660,   981,   220,   343,
     2932    1020,   633,   403,    58,    59,   669,   159,   117,   118,   673,
     2933     928,   895,  1020,   897,    39,    44,    45,   929,   112,  1514,
     2934     112,  1020,   922,   112,    72,   984,    74,    75,    76,  1111,
     2935    1112,   184,   185,   112,   378,   112,   258,    85,    86,  1059,
     2936    1064,   263,    67,   111,  1064,  1069,   217,   200,   114,  1069,
     2937     682,   111,   684,   113,   113,   208,   688,   118,  1078,   119,
     2938     120,  1020,   116,   111,   217,   113,  1086,   220,   133,   981,
     2939     116,   119,   120,   116,   227,  1059,   549,   550,    72,   111,
     2940    1212,   111,   112,   113,   132,    79,  1059,   114,    82,   242,
     2941      84,    85,    86,   246,    58,    59,    60,   250,   251,   133,
     2942     271,   112,  1020,   551,   552,  1125,   112,   278,   557,   558,
     2943    1020,   264,   265,     3,   553,   554,   555,   556,   271,   113,
     2944      10,    11,    12,    13,    14,   278,   348,     3,    10,    11,
     2945      12,    13,    14,   114,    10,    11,    12,    13,    14,   114,
     2946      72,   132,    74,    75,    76,   132,  1166,  1167,    72,    39,
     2947      74,    75,    76,    85,    86,   132,  1167,    39,   118,   860,
     2948      29,    85,    86,    39,  1064,   112,   112,   116,  1188,  1069,
     2949    1302,   112,   117,   117,  1306,   346,   329,    67,   117,   111,
     2950    1188,   113,  1202,   118,   111,    67,  1206,   119,   120,  1188,
     2951     112,    67,   363,   346,   347,  1206,   367,    10,    11,    12,
     2952      13,    14,   546,   547,   548,   463,   428,  1166,   134,   132,
     2953     363,   112,   860,   118,   367,  1125,   112,   112,   112,   112,
     2954     884,   853,  1206,   112,   377,   112,    39,   859,   112,  1188,
     2955     118,  1359,   112,   112,   112,  1255,  1256,   112,   112,   112,
     2956     393,   112,   112,  1263,   112,     0,  1499,   469,  1268,  1167,
     2957     403,   117,    29,   112,    67,   118,   133,   114,   114,   112,
     2958    1268,   112,   112,   118,   111,   132,   524,   899,   421,  1268,
     2959    1188,   529,    72,  1405,   427,   118,   116,    32,  1188,    79,
     2960     928,  1301,    82,   132,    84,    85,    86,   112,  1206,   112,
     2961    1301,  1489,  1202,   112,   118,   112,  1489,   112,   111,  1489,
     2962     113,   112,  1489,  1489,  1263,   111,   119,   120,   118,  1268,
     2963     463,  1489,  1489,   113,    69,   468,    72,  1301,   111,   577,
     2964      76,   118,  1023,   476,   956,   111,   111,   480,   111,    85,
     2965      86,   484,  1168,  1169,   487,  1171,   489,  1465,   132,  1359,
     2966     112,   117,  1178,   134,  1180,  1490,   112,   117,    72,   112,
     2967    1268,   130,    76,   117,   116,   111,  1376,  1358,  1268,   134,
     2968     114,    85,    86,   119,   120,   587,   112,  1031,   118,  1514,
     2969     114,   524,  1020,   114,   112,   112,   529,    47,   114,   114,
     2970     114,  1401,   112,  1301,   117,   114,   644,   111,   646,   114,
     2971    1401,   114,   134,   615,   134,   119,   120,   112,   620,     0,
     2972       1,   156,   134,   747,  1424,   117,    72,   134,    74,    75,
     2973     112,  1431,   134,  1433,   132,  1435,  1424,  1401,  1050,    85,
     2974      86,   117,   114,  1431,   577,  1424,    83,   114,  1489,  1489,
     2975    1489,    32,  1431,   114,   114,   114,   114,   112,   696,   112,
     2976     593,    60,   595,   614,   111,  1465,   114,   113,    49,  1433,
     2977    1470,  1435,  1472,   111,   116,   111,    98,   112,   629,   112,
     2978    1433,   614,  1435,  1483,   111,  1424,  1490,   689,    69,  1489,
     2979    1490,   642,  1431,   661,   229,  1483,   629,  1490,   114,  1499,
     2980     633,   703,   134,  1401,  1483,   114,  1470,  1188,  1472,   642,
     2981    1514,   644,   645,   646,  1514,   250,   112,  1470,   112,  1472,
     2982     255,  1514,   114,  1339,   105,    98,  1424,   111,   111,   134,
     2983     117,    42,   112,  1431,  1424,  1499,   112,   112,  1166,  1167,
     2984      72,  1431,    74,    75,  1483,   678,   112,   118,   134,   682,
     2985    1162,   684,   134,    85,    86,   688,    70,   112,   132,    73,
     2986    1188,   112,    76,   696,    78,    98,   147,    98,   112,   134,
     2987     134,    85,   112,   724,   155,   156,   709,   710,  1206,   111,
     2988     114,   134,   112,   112,   116,  1483,    72,   114,    74,    75,
     2989      76,   724,   794,  1483,   117,   114,   134,   134,   111,    85,
     2990      86,   117,   117,  1284,   185,   112,   112,  1499,   134,  1489,
     2991     112,   779,   112,   657,   349,  1035,   559,   562,   560,   200,
     2992     561,   789,   203,   204,   563,   111,   961,   208,  1188,  1453,
     2993    1345,  1524,   800,  1277,  1099,  1263,  1306,  1278,    66,  1431,
     2994    1268,    10,    11,    12,    13,    14,  1050,    75,   229,   686,
     2995     675,   675,   233,  1069,   235,   688,  1337,   981,   897,  1340,
     2996     905,   577,   956,   244,   853,   925,   799,   639,   480,   250,
     2997      39,   713,  1206,  1301,   255,   724,   565,   565,   811,   565,
     2998     415,    -1,    -1,    -1,   265,    -1,    -1,    -1,    -1,   117,
     2999      -1,    -1,   273,    -1,   429,    -1,  1020,   211,    67,   434,
     3000      -1,    -1,    -1,  1384,    -1,   943,    -1,   442,  1389,    -1,
     3001      10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
     3002     853,    -1,    -1,    -1,   962,   460,   859,    -1,   966,    -1,
     3003      -1,   159,    -1,    -1,    -1,    -1,    -1,  1418,    -1,    39,
     3004     777,    -1,   111,   478,   113,   480,    -1,    -1,    -1,    -1,
     3005     119,   120,    -1,    -1,    -1,    -1,    -1,   890,   339,   892,
     3006      -1,    -1,   343,    -1,   278,    -1,   899,    67,   349,    -1,
     3007      -1,    -1,    -1,  1401,    83,  1013,    -1,    -1,    87,    88,
     3008      89,   362,   984,    -1,    -1,   366,   521,    -1,  1432,   922,
     3009    1434,    -1,   220,    -1,    -1,    -1,  1424,    -1,   188,    -1,
     3010      -1,    66,   111,  1431,   113,   195,   115,   116,    -1,    -1,
     3011     943,   111,   849,   113,    -1,    -1,    -1,    -1,    -1,   119,
     3012     120,    -1,  1503,   956,    -1,  1469,    -1,  1471,  1509,   962,
     3013     258,   999,  1000,   966,   415,   263,   350,    -1,   352,  1520,
     3014      -1,    -1,    -1,  1524,    -1,    -1,    -1,    -1,   429,   584,
     3015     278,    -1,   117,   434,   891,  1483,    -1,    -1,    -1,    -1,
     3016      -1,   442,    72,    -1,    74,    75,    76,    -1,    -1,  1513,
     3017      -1,  1515,  1110,    -1,    -1,    85,    86,   267,    -1,   460,
     3018    1013,    -1,   463,    -1,  1528,  1529,  1054,  1055,    -1,    -1,
     3019      -1,    -1,   627,   628,   159,    -1,    -1,   478,    -1,   480,
     3020     937,   111,    -1,   113,    -1,    -1,    -1,   488,   643,   119,
     3021     120,   492,    10,    11,    12,    13,    14,  1050,    -1,    -1,
     3022     348,    -1,    -1,    -1,   438,    -1,   661,    -1,    -1,    -1,
     3023      -1,  1064,   969,    -1,   324,    -1,  1069,   672,    -1,    -1,
     3024     521,    39,   332,    -1,    72,   335,    74,    75,    76,    -1,
     3025       0,    -1,    -1,  1086,    -1,   220,    -1,    85,    86,    -1,
     3026      -1,    -1,    -1,   698,  1166,    -1,   701,    -1,    -1,    67,
     3027      -1,    -1,    -1,    -1,    72,    -1,    -1,  1110,    76,    -1,
     3028    1017,    -1,    32,   111,    -1,   566,    -1,    85,    86,    -1,
     3029      -1,    -1,  1230,   258,  1232,  1233,    -1,    -1,   263,    -1,
     3030     428,   736,   583,   584,    -1,   395,    -1,    -1,    -1,   399,
     3031      -1,    -1,    -1,   111,   595,    -1,   444,    -1,    -1,    69,
     3032     460,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,  1162,
     3033      -1,    -1,   613,    -1,     0,    -1,    -1,   618,    -1,    -1,
     3034      -1,   469,    -1,   624,   779,    -1,   627,   628,    -1,    -1,
     3035      -1,    -1,    -1,    -1,   789,    -1,    -1,    -1,    -1,  1096,
     3036     795,  1263,   643,    -1,    -1,   800,    32,    -1,    72,  1237,
     3037      74,    75,    76,  1311,    -1,    -1,  1244,  1245,  1246,    -1,
     3038     661,    85,    86,   348,    -1,   475,    -1,    -1,    -1,    -1,
     3039      -1,   672,    -1,    -1,    -1,    -1,    -1,  1230,    -1,  1232,
     3040    1233,    -1,    -1,    69,    -1,    -1,   156,   111,    10,    11,
     3041      12,    13,    14,    -1,    -1,   119,   120,   698,  1155,  1156,
     3042     701,    -1,    -1,    -1,    -1,   860,    -1,    -1,    -1,   710,
     3043    1368,  1369,   713,    -1,    -1,    -1,    -1,    39,    -1,  1307,
     3044      10,    11,    12,    13,    14,    -1,    -1,   882,    -1,    -1,
     3045      -1,    -1,    -1,    -1,   889,   736,    -1,    -1,    -1,   587,
     3046     741,    -1,    -1,   428,    -1,    67,    -1,    -1,  1406,    39,
     3047      72,    -1,    74,    75,    76,   565,   566,    -1,  1311,    -1,
     3048      -1,    -1,    -1,    85,    86,    -1,    -1,   615,    -1,    -1,
     3049     156,    -1,   620,    -1,    -1,    -1,    -1,    67,   779,    -1,
     3050     250,    -1,    72,    -1,   469,   255,    76,  1358,   789,   111,
     3051     724,   792,    -1,    -1,   795,    85,    86,   119,   120,   800,
     3052      -1,   661,    -1,    -1,    -1,  1358,  1359,    -1,  1466,   810,
     3053      72,    -1,    74,    75,    76,  1368,  1369,  1475,     0,     1,
     3054      -1,   111,    -1,    85,    86,    -1,    -1,    -1,    -1,   119,
     3055     120,    -1,    10,    11,    12,    13,    14,    -1,   648,    -1,
     3056      -1,   689,   652,    -1,   999,  1000,    -1,  1002,  1003,   111,
     3057      32,   113,    -1,  1406,    -1,   703,    -1,   119,   120,   860,
     3058      -1,    39,    -1,    -1,   250,  1020,    -1,    -1,    -1,   255,
     3059      -1,    -1,    -1,    -1,    -1,    -1,   724,    -1,    -1,   349,
     3060      -1,   882,    -1,    -1,    66,    -1,    -1,    69,   889,    67,
     3061      -1,   892,    -1,    -1,    72,    -1,    74,    75,    76,  1054,
     3062    1055,    -1,   587,    -1,    -1,    -1,  1363,    85,    86,    -1,
     3063      -1,    -1,  1465,  1466,    -1,    -1,    -1,   918,    -1,   779,
     3064      -1,    -1,  1475,  1380,    -1,    -1,   927,   928,     0,   789,
     3065     615,    -1,    -1,   111,    -1,   620,  1489,  1490,    -1,    -1,
     3066     800,   119,   120,    -1,    -1,   415,   794,    -1,    -1,    10,
     3067      11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,   429,
     3068      32,  1514,    -1,   349,   434,    -1,    -1,    -1,    -1,    -1,
     3069    1125,    -1,   442,   783,   156,    -1,    -1,    -1,    39,    -1,
     3070     981,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3071     460,    -1,    -1,   994,    -1,  1452,  1453,    69,   999,  1000,
     3072      -1,  1002,  1003,    -1,   689,    -1,    67,    -1,   478,    -1,
     3073     480,    72,  1167,    74,    75,    76,    -1,    -1,   703,  1020,
     3074      -1,    -1,    -1,    -1,    85,    86,    -1,    -1,    72,   415,
     3075      74,    75,    76,  1188,    -1,    -1,    -1,    -1,   220,    -1,
     3076      -1,    85,    86,   429,    -1,  1200,    -1,  1202,   434,    -1,
     3077     111,   521,   113,  1054,  1055,    -1,   442,    -1,   119,   120,
     3078      -1,    -1,    -1,    -1,    -1,    83,    -1,   111,   250,    87,
     3079      88,    89,    -1,    -1,   460,   119,   120,    -1,    -1,    -1,
     3080      -1,    -1,  1237,    -1,   156,    -1,   896,    -1,    -1,  1244,
     3081    1245,  1246,   478,   111,   480,   113,    -1,   115,   116,    -1,
     3082    1255,  1256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   794,
     3083      -1,    -1,    -1,  1268,   584,    -1,    -1,    -1,    -1,    -1,
     3084      -1,    -1,    -1,    -1,  1125,    -1,    -1,    -1,    -1,    -1,
     3085      -1,    -1,    -1,    -1,    -1,   521,   984,    -1,    -1,   999,
     3086    1000,    99,   100,   101,   102,   103,   104,   105,   106,   107,
     3087     108,   109,  1307,    -1,    -1,    -1,    -1,   627,   628,    -1,
     3088      -1,   971,    -1,    -1,    -1,    -1,  1167,    -1,    -1,    -1,
     3089      -1,    -1,    -1,   643,    -1,   133,    -1,   987,   250,    -1,
     3090      -1,    -1,    -1,   255,    -1,    -1,    -1,  1188,    -1,    -1,
     3091      -1,   661,    -1,    -1,  1054,  1055,    -1,    -1,   584,  1200,
     3092      -1,  1202,   672,    -1,    -1,  1206,    -1,    -1,    -1,    -1,
    32493093      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3250       -1,    -1,    -1,    -1,    -1,    -1,    -1,   700,    -1,   702,
    3251       67,    -1,    -1,    -1,  1193,    72,   709,   710,    -1,    76,
    3252     1503,   714,    -1,    -1,    -1,    -1,    83,    84,    -1,   791,
    3253       -1,    -1,    -1,   726,    -1,    -1,  1215,    -1,   731,   801,
    3254       -1,   803,    -1,    -1,    -1,    -1,   808,    -1,  1227,   811,
    3255     1229,    -1,   109,   815,    -1,    -1,    -1,    -1,    -1,    -1,
    3256      117,   118,    -1,    -1,    -1,    -1,   759,    -1,    -1,    -1,
     3094      -1,  1376,    -1,    -1,    -1,    -1,    -1,    -1,   698,    -1,
     3095      -1,   701,    -1,    -1,    -1,    -1,  1237,    -1,    -1,    -1,
     3096      -1,   627,   628,  1244,  1245,  1246,    -1,   429,    -1,    -1,
     3097      -1,    -1,  1062,    -1,  1255,  1256,    -1,   643,    -1,    -1,
     3098      -1,    -1,    -1,    -1,    -1,    -1,   736,  1268,    -1,  1424,
     3099      -1,    -1,    -1,    -1,    -1,   661,  1431,   349,    53,    -1,
     3100      55,    -1,    -1,    58,    59,    60,   672,    62,    -1,    -1,
     3101      -1,  1101,    -1,    -1,    -1,    -1,    -1,    -1,   480,   984,
     3102    1301,    76,    -1,    -1,    -1,    -1,  1307,    -1,    -1,   779,
     3103      -1,    -1,   698,    88,    89,   701,    -1,    -1,  1166,   789,
     3104      -1,    -1,    -1,    -1,    -1,   795,    -1,    -1,  1483,    -1,
     3105     800,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   521,
     3106    1200,    -1,    -1,   415,    -1,    -1,    -1,    -1,    -1,    -1,
     3107     736,    -1,    -1,    -1,    -1,    -1,    -1,   429,    -1,    -1,
     3108      -1,    -1,   434,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3109     442,    -1,    -1,    -1,    -1,  1376,    -1,  1237,    -1,    -1,
     3110      -1,    -1,    -1,    -1,  1244,  1245,  1246,    -1,   460,    -1,
     3111     860,    -1,    -1,   779,    -1,    -1,    -1,    -1,    -1,    -1,
     3112    1401,    -1,   584,   789,    -1,    -1,   478,    -1,   480,   795,
     3113      -1,    -1,   882,    -1,   800,  1263,    -1,    -1,    -1,   889,
     3114      -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,    -1,    -1,
     3115    1431,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3116      -1,    -1,    -1,    -1,    -1,   627,   628,  1307,    -1,   521,
    32573117      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3258     1259,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1267,  1268,
    3259     1269,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,
    3260     1279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3261       -1,    -1,    -1,  1292,   876,    -1,    -1,    -1,    -1,    -1,
    3262       -1,    -1,    -1,    -1,  1004,    -1,    -1,    -1,    -1,    -1,
    3263       -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
    3264       -1,    -1,    -1,    -1,   906,   575,   576,    -1,    -1,    -1,
    3265       -1,    -1,  1331,    -1,    -1,    -1,    -1,    -1,    49,    -1,
    3266       -1,    -1,    37,    38,    39,    40,   859,   860,   861,   862,
    3267       -1,   864,    -1,    -1,   604,    66,    -1,   607,   608,    -1,
    3268      610,    -1,   612,   613,    -1,    -1,   879,   617,   618,    -1,
    3269       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3270      893,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3271       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,  1398,
    3272       -1,    -1,   113,    -1,    -1,    -1,   117,    -1,    -1,    -1,
    3273       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3274      933,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3275       -1,    -1,    -1,    -1,    -1,   146,    -1,  1019,  1020,    -1,
    3276     1022,  1023,    -1,    -1,    -1,   156,  1445,    -1,    -1,   160,
    3277       -1,    -1,    -1,  1452,    -1,    -1,    -1,    -1,    -1,    -1,
    3278     1042,    -1,    -1,    -1,    -1,   978,    -1,    -1,    -1,    -1,
    3279       -1,   984,    -1,    -1,    -1,    -1,   989,    -1,    -1,    -1,
    3280       -1,   994,    -1,   996,    -1,    -1,    -1,  1000,    -1,  1002,
    3281     1003,    -1,  1192,  1006,    -1,  1077,  1078,    -1,   209,    -1,
    3282       -1,    -1,  1015,    -1,  1503,   755,   756,    -1,    -1,    -1,
    3283      221,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3284     1033,  1034,    -1,    -1,    -1,    -1,    -1,    -1,   239,    10,
    3285       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3286       21,    22,    23,    24,    25,    26,    27,  1060,    -1,    -1,
    3287     1063,    -1,    -1,   264,    -1,    -1,    -1,    -1,    39,    -1,
    3288      271,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1150,    -1,
    3289       -1,    -1,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
    3290       -1,    -1,    -1,   294,    -1,    -1,    67,  1287,    -1,    -1,
    3291       -1,    -1,    -1,  1106,    -1,    -1,   307,    -1,    -1,  1112,
    3292     1113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3293       -1,  1193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1132,
    3294       -1,    -1,    -1,  1136,    -1,    -1,    -1,    -1,  1141,    -1,
    3295       -1,    -1,    -1,  1215,   345,    -1,    -1,    -1,    -1,   350,
    3296       -1,  1154,    -1,    -1,    98,  1227,   100,  1229,    -1,    -1,
    3297       -1,    -1,    -1,    -1,  1167,    -1,  1169,  1170,  1171,  1172,
    3298       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   918,    -1,
    3299       -1,   125,  1185,    -1,  1187,    -1,    -1,  1259,  1191,    -1,
    3300       -1,    -1,    -1,    -1,    -1,  1267,  1268,  1269,    -1,    -1,
    3301       -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,    -1,    -1,
    3302       66,    -1,    -1,    -1,    -1,    -1,    -1,  1220,  1221,    75,
    3303     1292,    77,    -1,    79,    -1,   426,   427,    -1,    -1,    -1,
    3304       86,    -1,   433,    -1,    -1,    -1,    -1,   181,    -1,    -1,
    3305       -1,    -1,    -1,    -1,    -1,   189,    -1,   191,   192,    -1,
    3306       -1,    -1,   196,   454,   198,   199,    -1,    -1,    -1,  1331,
    3307       -1,   117,    -1,   119,   120,   121,    -1,  1270,  1271,    -1,
    3308       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1280,    -1,    -1,
    3309       -1,   482,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3310       -1,    -1,    -1,   494,    -1,    -1,    -1,    -1,    -1,    -1,
    3311       -1,    -1,    -1,    -1,   160,   506,    -1,   508,    -1,    -1,
    3312      511,    -1,   513,   514,    -1,    -1,    -1,    -1,    -1,    -1,
    3313       -1,    -1,    -1,    -1,   268,   526,  1398,    -1,    -1,    -1,
    3314       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1341,  1079,
    3315     1343,  1344,  1345,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3316       -1,    -1,  1355,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3317       -1,  1364,    -1,    -1,    -1,   221,    -1,   223,   224,   225,
    3318       -1,    -1,    -1,  1445,    -1,    -1,    -1,    -1,   579,    -1,
    3319     1452,    -1,    -1,    -1,    -1,    -1,  1389,    -1,    -1,    -1,
    3320      591,    -1,    -1,    -1,   595,    -1,    -1,    -1,    -1,    -1,
    3321       -1,    -1,    -1,   259,    -1,    -1,    -1,    -1,   264,    -1,
    3322       -1,    -1,    -1,    -1,    44,    -1,    -1,    -1,    -1,    -1,
    3323      621,    -1,    -1,   279,    -1,   626,    -1,    -1,    -1,  1432,
    3324     1433,  1503,    -1,    -1,   635,   636,   637,    -1,    -1,    -1,
    3325       -1,    -1,  1445,    -1,    -1,    -1,    -1,    -1,    -1,  1452,
    3326       -1,    -1,   653,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3327       -1,    91,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3328     1210,   101,   328,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3329       -1,  1484,    -1,    -1,   685,  1488,    -1,    -1,    -1,    -1,
    3330       -1,    -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,   355,
    3331      356,    -1,    -1,    -1,    -1,    -1,    -1,   363,    -1,    -1,
    3332      711,    -1,   713,  1516,    -1,  1518,    -1,    -1,    -1,    -1,
    3333       -1,    -1,    -1,    -1,    -1,    -1,    -1,   157,    -1,    -1,
     3118      -1,   643,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3119      -1,    -1,    -1,    -1,   860,    -1,    -1,    -1,    -1,    -1,
     3120      -1,  1166,  1483,    -1,    -1,    -1,    -1,    -1,    -1,  1490,
     3121      -1,    66,    67,    -1,    -1,    -1,   882,    72,    -1,    -1,
     3122      -1,    76,    -1,   889,    79,    80,    81,    82,    83,    84,
     3123      85,    86,   584,    88,    89,    -1,    -1,    -1,    -1,   701,
     3124      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   999,
     3125    1000,    -1,  1002,  1003,    -1,    -1,   111,    -1,   113,    -1,
     3126      -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
     3127    1020,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,    -1,
     3128      -1,    -1,    -1,    -1,    -1,    -1,    -1,   342,    -1,   344,
     3129      -1,   643,    -1,    10,    11,    12,    13,    14,  1263,    -1,
     3130     355,   356,    -1,    -1,  1054,  1055,    -1,    -1,    -1,   661,
     3131      -1,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3132     672,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3133      -1,    -1,    -1,   999,  1000,    -1,  1002,  1003,    -1,    -1,
     3134      -1,    -1,    -1,    -1,    39,    -1,   698,    -1,    -1,   701,
     3135      67,    -1,    -1,    -1,  1020,    72,    -1,    74,    75,    76,
     3136      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,
     3137      -1,    -1,    67,    -1,    -1,  1125,    -1,    72,    -1,    74,
     3138      75,    76,    -1,    -1,   736,    -1,    -1,    -1,  1054,  1055,
     3139      85,    86,    -1,    -1,   111,    -1,   113,    -1,   860,    -1,
     3140      -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
     3141      -1,    -1,    -1,    -1,    -1,    -1,   111,  1167,   113,    -1,
     3142     882,    -1,    -1,    -1,   119,   120,    -1,   779,    37,    38,
     3143      -1,    40,    -1,    -1,    -1,    -1,    -1,   789,  1188,    -1,
     3144      -1,    -1,    -1,   795,    -1,    -1,    -1,    -1,   800,    -1,
     3145    1200,    -1,  1202,    -1,    -1,    -1,    -1,    66,    -1,  1125,
     3146      -1,    -1,    -1,    72,    -1,    -1,   928,    76,    -1,    -1,
     3147      79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
     3148      89,    -1,    -1,    -1,    -1,    -1,    -1,  1237,    -1,    -1,
     3149      -1,    -1,    -1,    -1,  1244,  1245,  1246,    -1,    -1,    -1,
     3150      -1,  1167,   111,    -1,   113,  1255,  1256,    -1,   860,    -1,
     3151     119,   120,   121,   122,   123,   124,    -1,    -1,  1268,    -1,
     3152      -1,    -1,  1188,   132,    -1,    -1,    -1,    -1,    -1,    -1,
     3153     882,    -1,    -1,    -1,  1200,    -1,  1202,   889,    -1,    -1,
     3154    1002,  1003,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3155      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1307,  1020,    -1,
     3156      -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
     3157      -1,  1237,    -1,    75,    -1,    77,    -1,    79,  1244,  1245,
     3158    1246,    -1,    -1,    -1,    86,    -1,    -1,    -1,    -1,  1255,
     3159    1256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3160      -1,    -1,  1268,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3161      -1,    -1,    -1,    -1,    -1,   117,    -1,   119,   120,   121,
     3162      -1,    -1,    -1,    -1,    -1,    -1,  1376,    -1,    -1,    -1,
     3163      -1,    -1,    -1,    -1,    -1,   690,    -1,   692,    -1,    -1,
     3164      -1,  1307,    -1,    -1,   699,   700,    -1,   999,  1000,   704,
     3165    1002,  1003,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,
     3166      -1,    -1,   717,    -1,    -1,    -1,    -1,   722,  1020,    -1,
     3167      -1,    -1,    -1,    -1,  1424,    -1,    -1,    -1,    -1,    -1,
     3168      -1,  1431,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3169      -1,    -1,    -1,    -1,   749,    -1,    -1,    -1,    -1,    -1,
     3170      -1,    -1,  1054,  1055,  1166,  1167,    -1,    -1,    -1,    -1,
     3171    1376,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   220,    -1,
     3172     222,   223,   224,    -1,    -1,    -1,  1188,    -1,    -1,    -1,
     3173      -1,    -1,    -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,
     3174      -1,    -1,    -1,    -1,  1206,    -1,    -1,    -1,    -1,    -1,
     3175      -1,    -1,    -1,    -1,    -1,    -1,   258,    -1,  1424,    -1,
     3176      -1,   263,    -1,    -1,    -1,  1431,    -1,    -1,    -1,    -1,
     3177      -1,    -1,    -1,  1125,    -1,    -1,   278,    -1,    -1,    -1,
     3178      -1,    -1,    -1,    -1,    -1,    -1,    -1,   842,    -1,   844,
     3179     845,   846,    -1,  1255,  1256,    -1,    -1,    -1,    -1,    -1,
     3180      -1,  1263,    49,    -1,    -1,    -1,  1268,    -1,   863,    -1,
     3181      -1,    -1,    -1,    -1,    -1,  1167,    -1,  1483,    -1,    66,
     3182      -1,    -1,   877,    -1,    -1,    -1,    -1,   329,    -1,    -1,
     3183      -1,    -1,    -1,    -1,    -1,    -1,  1188,    -1,    -1,  1301,
     3184      -1,    -1,    -1,    -1,    -1,    -1,   348,    -1,  1200,    -1,
     3185    1202,   353,   354,    -1,    -1,    -1,    -1,    -1,    -1,   361,
     3186      -1,   916,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
     3187     117,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3188      -1,    -1,    -1,    -1,    -1,  1237,    -1,    -1,    -1,    -1,
     3189      -1,    -1,  1244,  1245,  1246,    -1,    -1,    -1,    -1,   146,
     3190      -1,   403,    -1,  1255,  1256,   960,    -1,    -1,    -1,   156,
     3191     965,    -1,   159,    -1,  1376,   970,  1268,    -1,    -1,   421,
     3192     975,    -1,    -1,    -1,   426,   980,   428,   982,   983,    -1,
     3193      -1,   986,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1401,
     3194     995,    -1,   444,    -1,    -1,   447,   448,    -1,    -1,    -1,
     3195      -1,    -1,    -1,   455,    -1,  1307,  1011,  1012,    -1,    -1,
     3196      -1,   208,  1424,    -1,    -1,    -1,    -1,   469,    -1,  1431,
     3197      -1,    -1,    -1,   220,   476,    -1,    -1,    -1,    -1,    -1,
     3198      -1,    -1,  1037,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
     3199      -1,   238,    -1,    -1,    -1,    26,    27,    28,    10,    11,
     3200      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3201      22,    23,    24,    25,    26,    27,   263,    -1,    -1,    -1,
     3202      -1,  1483,    -1,   270,  1376,    -1,    -1,    39,  1083,    -1,
     3203      -1,    -1,    -1,    -1,  1089,  1090,    -1,    -1,    -1,    -1,
     3204      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,    -1,
     3205      -1,    -1,    -1,  1108,    -1,    67,    -1,    -1,  1113,    -1,
     3206      -1,   308,    -1,  1118,    -1,    -1,    -1,    98,    -1,   100,
     3207      -1,    -1,  1424,    -1,  1129,    -1,    -1,    -1,    -1,  1431,
     3208      -1,    -1,    -1,    -1,    -1,   587,    -1,  1142,    -1,  1144,
     3209    1145,  1146,  1147,    -1,    -1,    -1,   343,    -1,    -1,    -1,
     3210      -1,   348,    -1,    -1,  1159,    -1,  1161,    -1,    -1,    -1,
     3211    1165,    -1,    -1,   615,    -1,    -1,    -1,    -1,   620,    -1,
    33343212      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3335       -1,   171,    -1,  1546,  1547,   746,    -1,    -1,    -1,    -1,
    3336      406,  1554,  1555,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3337       -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,   424,    37,
    3338       38,    -1,    40,   429,    -1,   431,    -1,    -1,   208,    -1,
    3339       -1,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,
    3340       -1,    -1,   448,    -1,    -1,   451,   452,   227,    66,    -1,
    3341       -1,    -1,   803,   459,    72,    -1,   807,    -1,    76,    -1,
    3342      811,    79,    80,    81,    82,    83,    84,   473,    86,    87,
    3343       -1,    -1,   252,    -1,   480,    -1,    -1,   257,    -1,    -1,
    3344       -1,   575,   576,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3345      270,   109,    -1,   111,    -1,    -1,   276,    -1,   278,   117,
    3346      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
    3347      604,    -1,   130,   607,   608,   295,   610,    -1,   612,   613,
    3348       -1,    -1,    -1,   617,   618,    10,    11,    12,    13,    14,
     3213      -1,  1483,    -1,    -1,    -1,    -1,    -1,    -1,  1193,  1194,
     3214      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   180,
     3215      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   190,
     3216     191,    -1,    -1,    -1,   195,    -1,   197,   198,    -1,    -1,
     3217      44,    -1,    -1,    -1,    -1,    -1,   423,   424,    -1,    -1,
     3218      -1,    -1,   429,    -1,    -1,    -1,    -1,   689,    -1,    -1,
     3219      -1,    -1,  1247,  1248,    -1,    -1,    -1,    -1,    -1,    -1,
     3220      -1,   703,  1257,   450,    -1,    -1,    -1,    -1,    -1,    -1,
     3221      -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,
     3222      -1,    -1,   724,    -1,    -1,    -1,    -1,   101,    -1,    -1,
     3223      -1,   478,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3224      -1,    -1,    -1,   490,    -1,    -1,    -1,    -1,    -1,    -1,
     3225      -1,    -1,    -1,    -1,    -1,   502,    -1,   504,    -1,    -1,
     3226     507,    -1,   509,   510,  1319,    -1,  1321,  1322,  1323,    -1,
     3227      -1,    -1,    -1,    -1,   521,    -1,    -1,    -1,  1333,    -1,
     3228      -1,   783,    -1,    -1,    -1,    -1,  1341,    -1,    -1,    -1,
     3229      -1,    -1,   794,    -1,    -1,    -1,   170,    -1,    -1,    -1,
     3230      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   811,
     3231      -1,  1366,  1367,    -1,    -1,    -1,    -1,    -1,    -1,   193,
     3232      -1,    -1,    -1,    -1,    -1,    -1,   573,    -1,    -1,    -1,
     3233      -1,    -1,    -1,   207,    -1,    -1,    -1,   584,    -1,    -1,
     3234     587,    -1,   216,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3235      -1,    -1,   226,    -1,    -1,    -1,  1411,  1412,    -1,    -1,
     3236      -1,    -1,    -1,    -1,    -1,    -1,   613,    -1,    -1,  1424,
     3237      -1,   618,    -1,    -1,    -1,    -1,  1431,   251,    -1,    -1,
     3238     627,   628,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3239      -1,    -1,    -1,    -1,    -1,   269,   643,    -1,    -1,    -1,
     3240      -1,   275,    -1,   277,    -1,    -1,    -1,    -1,    -1,  1464,
     3241      -1,    -1,    -1,  1468,    -1,    -1,    -1,    -1,    -1,    -1,
     3242     922,    -1,   296,    -1,    -1,    -1,    -1,    -1,   675,    -1,
     3243      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3244      -1,  1496,    -1,  1498,    -1,    -1,    -1,    -1,    -1,    -1,
     3245     952,    -1,    -1,    -1,   701,    -1,   703,    -1,    -1,    -1,
     3246      -1,    -1,    -1,   337,    -1,    -1,    -1,   341,    -1,    -1,
     3247      -1,  1526,  1527,    -1,    -1,    -1,    -1,    -1,    -1,  1534,
     3248    1535,    -1,   984,    -1,    -1,    -1,    -1,    -1,    -1,   736,
     3249      -1,    -1,    -1,   995,    -1,   369,    -1,    -1,    -1,   373,
     3250     374,    -1,   376,    -1,    -1,    -1,    -1,    -1,    -1,   383,
     3251     384,    -1,   386,   387,    -1,   389,    -1,   391,    -1,    -1,
     3252      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3253      -1,    -1,    -1,    -1,   408,    -1,    -1,    -1,   569,   570,
     3254      -1,    -1,   416,    -1,    -1,    -1,    -1,   794,    -1,    -1,
     3255      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3256      -1,    -1,  1064,    -1,    -1,   596,   440,    -1,   599,   600,
     3257      -1,   602,    -1,   604,   605,    -1,  1078,    -1,   609,   610,
     3258      -1,    26,    27,    28,   281,    -1,   283,   284,    -1,    -1,
     3259      -1,    -1,   466,    -1,    -1,    -1,   293,   294,   472,    -1,
     3260      -1,    -1,    -1,   477,    -1,    -1,    -1,    -1,    -1,    -1,
     3261      -1,   308,   309,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3262      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   155,
     3263     156,    -1,    -1,    -1,    -1,   882,    -1,    -1,    -1,   513,
     3264      -1,    -1,   889,    -1,    -1,    -1,   343,    -1,    -1,    -1,
     3265      -1,    -1,    -1,    98,   528,   100,    -1,   904,    -1,    -1,
     3266      -1,    -1,   188,    -1,  1166,    -1,    -1,    -1,    -1,   195,
     3267      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3268     125,   378,   929,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3269      -1,   565,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3270     574,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3271      -1,    -1,    -1,    -1,   745,   746,    -1,    -1,    -1,    -1,
     3272     594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3273      -1,    -1,    -1,    -1,   981,   180,    -1,    -1,    -1,    -1,
     3274      -1,   267,    -1,   188,    -1,   190,   191,    -1,    -1,    -1,
     3275     195,    -1,   197,   198,    -1,  1002,  1003,    -1,   632,    -1,
     3276      -1,  1263,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3277       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3278      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3279      -1,    30,    31,    32,   668,    -1,    -1,    -1,   324,    -1,
     3280      39,    -1,   676,    -1,    -1,    -1,   332,   333,    -1,   335,
     3281     336,    -1,  1059,    -1,    -1,    -1,    -1,   343,    -1,    -1,
     3282      -1,   347,   267,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3283      69,    -1,    71,   707,    -1,    74,    75,    -1,    -1,    -1,
     3284     366,    -1,    -1,    -1,   718,   719,    -1,    -1,    -1,   546,
     3285     547,   548,   549,   550,   551,   552,   553,   554,   555,   556,
     3286     557,   558,   559,   560,   561,   562,   563,    -1,    -1,   395,
     3287     901,    -1,    -1,   399,    -1,    -1,   750,   116,  1125,    -1,
     3288      -1,   755,    10,    11,    12,    13,    14,    15,    16,    17,
     3289      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3290      28,    -1,    -1,   429,    -1,    -1,    -1,    -1,    -1,    -1,
     3291      -1,    39,    -1,   146,    -1,    -1,    -1,    -1,    -1,  1166,
     3292      -1,    -1,    -1,   156,    -1,    -1,    -1,    -1,    -1,    -1,
     3293      -1,    -1,    -1,    -1,   167,   168,    -1,    -1,    -1,    67,
     3294      -1,   815,    -1,    -1,    -1,    -1,    -1,    -1,   822,   475,
     3295      78,    -1,   478,    -1,    -1,  1202,    -1,    -1,    -1,    -1,
     3296      -1,   835,    -1,   837,    -1,    -1,    -1,    -1,    -1,    -1,
     3297      -1,    -1,    -1,    -1,    -1,    -1,   850,    -1,    -1,    -1,
     3298      -1,    -1,   856,    -1,    -1,    -1,    -1,    -1,    -1,   686,
     3299      -1,   517,    -1,    -1,   868,   521,    -1,   871,    -1,    -1,
     3300      -1,    -1,    -1,    -1,    -1,   238,    -1,    -1,  1255,  1256,
     3301      -1,    -1,  1514,    -1,    -1,    -1,  1263,    -1,    -1,    -1,
     3302      -1,    -1,    -1,    -1,    -1,  1056,    -1,    -1,    -1,   262,
     3303      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   565,
     3304     566,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3305     747,    -1,    -1,    -1,    -1,    -1,    -1,   583,   584,    -1,
     3306      -1,    -1,    -1,    -1,    -1,    -1,    -1,   593,    -1,   595,
     3307     596,    -1,    -1,    -1,    -1,    -1,   602,    -1,    -1,    -1,
     3308     777,    -1,    -1,    -1,    -1,    -1,   612,   613,    -1,    -1,
     3309      -1,    -1,   618,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3310      -1,   627,   628,    -1,    -1,   979,    -1,    -1,    -1,    -1,
     3311      -1,    -1,    -1,    -1,    -1,    -1,    -1,   643,    -1,    -1,
     3312      -1,    -1,   648,   649,   569,   570,   652,   653,    -1,  1376,
     3313      -1,    -1,    -1,   659,    -1,    -1,    -1,    -1,    -1,    -1,
     3314      -1,    -1,    -1,    -1,   377,    -1,    -1,    -1,    -1,    -1,
     3315      -1,   596,   678,  1184,   599,   600,    -1,   602,    -1,   604,
     3316     605,    -1,    -1,    -1,   609,   610,  1040,    -1,    -1,    -1,
     3317      -1,    -1,    -1,    -1,    -1,   701,   702,    -1,    -1,    -1,
     3318      -1,    -1,    -1,    -1,    -1,    -1,  1433,    -1,  1435,    -1,
     3319      -1,    -1,    -1,    -1,   891,    -1,    -1,    -1,    -1,    -1,
     3320    1074,    -1,    -1,    -1,    -1,  1079,    -1,    -1,    -1,    -1,
     3321     736,    -1,    -1,  1087,   740,   741,    -1,    -1,    -1,    -1,
     3322      -1,    -1,    -1,  1470,    -1,  1472,    -1,    -1,    -1,    -1,
     3323      -1,    -1,    -1,    -1,    -1,    -1,    -1,   470,    -1,    -1,
     3324     937,    -1,    -1,    -1,    -1,    -1,    -1,  1121,    -1,    -1,
     3325      -1,    -1,  1499,    -1,    -1,    -1,    -1,   783,  1132,    -1,
     3326      -1,  1135,    -1,  1137,    -1,    -1,    -1,    -1,    -1,    -1,
     3327      -1,    -1,   969,   799,    -1,   801,   509,    -1,  1152,  1153,
     3328      -1,    -1,    -1,    -1,   981,   811,    -1,    -1,   521,    -1,
     3329      -1,    -1,    -1,    -1,   527,    -1,    -1,   530,  1172,    -1,
     3330     745,   746,     7,    -1,    -1,    10,    11,    12,    13,    14,
     3331     543,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3332      -1,    -1,    -1,  1020,    -1,    -1,    -1,    -1,    -1,    -1,
     3333      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3334     573,    -1,    -1,    -1,  1218,    -1,    -1,   580,    -1,    -1,
     3335      -1,   584,  1226,    -1,    -1,    -1,   882,    -1,    -1,    -1,
     3336      -1,    66,    67,   889,   890,    -1,   892,    72,    -1,    -1,
     3337     896,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3338      85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
     3339      -1,   917,   918,    -1,    -1,    -1,    -1,   630,    -1,  1096,
     3340      -1,    -1,    -1,    -1,    -1,   638,   111,    -1,   113,    -1,
     3341      -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
     3342      -1,    -1,  1296,    -1,  1298,    -1,   952,    -1,    -1,    -1,
     3343      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3344    1314,    -1,  1316,    -1,    -1,   971,   972,    -1,    -1,    -1,
     3345      -1,   896,    -1,    -1,    -1,   981,   901,  1331,  1155,  1156,
     3346      -1,   987,   988,    -1,   990,   991,   992,    -1,    -1,    -1,
     3347      -1,    -1,  1346,  1347,    -1,    -1,  1002,  1003,    -1,    -1,
     3348      -1,   714,    -1,  1357,    -1,    -1,  1360,    -1,    -1,    -1,
     3349      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3350      -1,    -1,    -1,   736,    -1,   738,    -1,    -1,  1382,    -1,
     3351      -1,    -1,    -1,    -1,    -1,   748,    -1,  1391,    -1,    -1,
     3352    1394,   754,  1396,  1397,  1398,    -1,    -1,    -1,    -1,    -1,
     3353      -1,    -1,    -1,    -1,    -1,    -1,  1062,    -1,  1064,    -1,
     3354      -1,    -1,    -1,  1069,    -1,    -1,    -1,    -1,    -1,    -1,
     3355      -1,    -1,  1078,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3356      -1,   794,   795,  1437,    -1,  1439,    -1,  1441,    -1,    -1,
     3357      -1,    -1,    -1,    -1,    -1,  1101,  1102,   810,    -1,    -1,
     3358      -1,    -1,    -1,  1457,    -1,    -1,    -1,    -1,    -1,    -1,
     3359      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1125,
     3360      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3361      -1,  1056,    -1,    -1,    -1,    -1,   849,    -1,    -1,    -1,
     3362     853,    -1,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    33493363      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3350       25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,
    3351       -1,    -1,    -1,    -1,    39,   906,    -1,    -1,   338,    -1,
    3352       -1,    -1,    -1,   343,    -1,    -1,    -1,    -1,    -1,    -1,
    3353      921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3354       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,   595,
    3355       -1,    -1,   372,    78,   945,    -1,   376,   377,    -1,   379,
    3356       -1,    -1,    -1,    -1,    -1,    -1,   386,   387,    -1,   389,
    3357      390,    -1,   392,    -1,   394,    -1,    -1,   623,    -1,    -1,
    3358       -1,    -1,   628,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3359       -1,   411,    -1,    -1,    37,    38,    -1,    40,    -1,   419,
    3360       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3361     1001,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3362       -1,   755,   756,    66,   444,    -1,    -1,    -1,    -1,    72,
    3363       -1,  1022,  1023,    76,    -1,    -1,    79,    80,    81,    82,
    3364       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3365      470,    -1,    -1,   699,    -1,    -1,   476,    -1,    -1,    -1,
    3366       -1,   481,    -1,    -1,    -1,    -1,   109,   713,   111,    -1,
    3367       -1,   114,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3368       -1,    -1,    -1,    -1,    -1,    -1,    -1,   733,    -1,    -1,
    3369       -1,  1082,    -1,    -1,    -1,    -1,    -1,   517,    -1,    -1,
    3370       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3371       -1,    -1,   532,    -1,     0,    -1,    -1,     3,     4,     5,
     3364      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,   882,
     3365      -1,    -1,    -1,    -1,    39,    -1,   889,    -1,    -1,    -1,
     3366      -1,    -1,    -1,    -1,    -1,    -1,  1363,    -1,    -1,    -1,
     3367      -1,    -1,    -1,    -1,    -1,    -1,  1202,    -1,    -1,    -1,
     3368      -1,    -1,    67,  1380,    -1,    -1,    -1,    -1,    -1,    74,
     3369      75,    -1,    -1,    -1,    -1,    -1,   929,     3,     4,     5,
    33723370       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    33733371      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3374       26,    27,    -1,    -1,    30,    31,    32,    33,    -1,   795,
    3375       36,   571,    -1,    39,    40,    -1,    -1,    -1,    -1,  1150,
    3376      580,   807,    -1,    -1,    -1,    -1,    -1,   587,    -1,    -1,
    3377       -1,    -1,    -1,   593,    -1,    -1,    -1,    -1,    64,   913,
    3378      826,    67,   602,    69,   918,    71,    72,    -1,    74,    75,
    3379       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3380       -1,  1192,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3381       -1,    -1,    -1,    -1,    -1,   155,   156,    -1,    -1,    -1,
    3382       -1,    -1,   642,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3383       -1,   117,   118,    -1,    -1,    -1,    -1,    -1,  1229,    -1,
    3384       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   189,
    3385       -1,    -1,    -1,    -1,    -1,    -1,   196,    -1,   678,    -1,
    3386       -1,    -1,    -1,    -1,    -1,    -1,   686,    -1,    -1,    10,
     3372      26,    27,    -1,   956,    30,    31,    32,    -1,   961,  1255,
     3373    1256,   964,    -1,    39,   119,   120,    -1,    -1,    -1,  1184,
     3374      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3375      -1,   984,    -1,    -1,    -1,  1452,  1453,    -1,    -1,    -1,
     3376      -1,    67,   995,    69,    -1,    71,    72,    -1,    74,    75,
     3377      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
     3378      86,    -1,  1015,    -1,  1017,    -1,    -1,    -1,    -1,    -1,
     3379      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1032,
     3380    1033,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
     3381      -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,  1052,
     3382      -1,    -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,
     3383       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3384      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3385    1376,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
     3386      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3387      -1,    -1,    -1,  1106,    -1,    -1,    -1,    -1,    -1,    -1,
     3388      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3389      -1,    69,  1125,    71,    -1,    -1,    74,    75,    -1,    -1,
     3390      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1140,  1141,    -1,
     3391       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3392      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3393      24,    25,    26,    27,    -1,   113,    30,    31,    32,  1465,
     3394      -1,   119,   120,    -1,    -1,    39,    -1,    -1,    -1,    -1,
     3395      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3396      -1,    -1,    -1,  1489,  1490,    -1,    -1,    -1,    -1,    -1,
     3397      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
     3398      74,    75,    -1,    -1,    -1,    -1,    -1,    -1,  1514,    -1,
     3399      -1,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
    33873400      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3388       21,    22,    23,    24,    25,    26,    27,  1278,  1279,    30,
    3389       31,    32,    -1,   939,    -1,    -1,  1287,   717,    39,    -1,
    3390       -1,    -1,    -1,    -1,    -1,    -1,    -1,   727,   728,    -1,
    3391       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3392       -1,    -1,    -1,   969,    -1,    -1,    67,    -1,   268,    -1,
    3393       -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,    -1,
    3394      760,    -1,    83,    84,    -1,  1079,   766,    -1,    -1,    -1,
    3395       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1004,    -1,
    3396       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,  1015,
    3397      111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3398       -1,    -1,    -1,   323,    -1,    -1,    -1,    -1,    -1,    -1,
    3399       -1,   331,   332,    -1,   334,   335,    -1,    -1,    -1,    -1,
    3400       -1,    -1,    -1,    -1,    -1,   345,    -1,  1398,    -1,   349,
    3401      830,    -1,    -1,    -1,    -1,    -1,    -1,   837,    -1,    -1,
    3402       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,
    3403      850,   371,   852,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3404       -1,  1087,    -1,    -1,    -1,    -1,   866,    -1,    -1,    -1,
    3405       -1,    -1,   872,    -1,    -1,  1101,    -1,    -1,   398,    -1,
    3406       -1,    -1,   402,  1454,   884,  1456,    -1,   887,    -1,    -1,
    3407       -1,    -1,    -1,    -1,    -1,    -1,  1210,    -1,    -1,    -1,
    3408       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3409       -1,    -1,    -1,   433,    -1,    -1,    -1,    -1,    -1,  1490,
    3410       -1,  1492,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3411       -1,    -1,   282,    -1,   284,   285,    -1,    -1,    -1,    -1,
    3412       -1,    -1,   292,   293,    -1,    -1,    -1,    -1,  1519,    -1,
    3413       -1,    -1,    -1,    -1,    -1,    -1,    -1,   307,   308,   479,
    3414       -1,    -1,   482,    -1,   964,    -1,  1192,    -1,    -1,    -1,
    3415       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3416       19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
    3417       -1,    30,    31,    32,    -1,   345,    -1,    -1,    -1,   999,
    3418       39,   521,    -1,    -1,    -1,   525,   526,    -1,    -1,    -1,
    3419       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3420       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3421       -1,   381,    -1,    72,    -1,    74,    75,    76,    -1,    78,
    3422       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
    3423       -1,   571,   572,    -1,    -1,    -1,    -1,  1057,    -1,    -1,
    3424       -1,  1287,    -1,  1063,    -1,    -1,   146,    -1,    -1,    -1,
    3425      590,   591,   111,    -1,    -1,    -1,   156,    -1,   117,   118,
    3426       -1,   601,    -1,   603,   604,    -1,    -1,    -1,   168,   169,
    3427      610,    -1,    -1,    -1,    -1,    -1,    -1,  1097,    -1,    -1,
    3428      620,   621,  1102,    -1,    -1,    -1,   626,    -1,    -1,    -1,
    3429     1110,    -1,    -1,    -1,    -1,   635,   636,   637,    -1,    -1,
    3430       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3431       -1,    -1,    -1,   653,    -1,    -1,    -1,    -1,   658,   659,
    3432       -1,    -1,   662,   663,    -1,  1145,    -1,    -1,    -1,   669,
    3433       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1157,    -1,   239,
    3434     1160,    -1,  1162,    -1,    -1,    -1,    -1,    -1,   688,    -1,
    3435       -1,    -1,    -1,    -1,    -1,    -1,  1176,  1177,    -1,    -1,
    3436       -1,    -1,    -1,   263,    -1,    -1,    -1,    -1,    -1,    -1,
    3437       -1,   711,   712,    -1,    -1,    -1,    -1,    -1,  1198,    -1,
    3438      550,   551,   552,   553,   554,   555,   556,   557,   558,   559,
    3439      560,   561,   562,   563,   564,   565,   566,   567,    -1,    -1,
    3440       -1,    -1,    -1,    -1,    -1,   745,   746,    -1,    -1,    -1,
    3441      750,   751,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3442       -1,    -1,    -1,    -1,    -1,  1245,    -1,    -1,    -1,    -1,
    3443       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3444       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3445       30,    31,    32,    -1,    -1,   795,    -1,    -1,    -1,    39,
    3446       -1,    -1,    -1,   803,    -1,    -1,    -1,    -1,    -1,    -1,
    3447      810,   811,    -1,    -1,   814,    -1,   816,    -1,    -1,    -1,
    3448      380,    -1,    -1,    -1,    -1,    -1,   826,    67,  1534,    -1,
    3449       -1,    -1,    72,    -1,    74,    75,    76,    -1,    78,    -1,
    3450     1320,    -1,  1322,    83,    84,    -1,    -1,    -1,    -1,    -1,
    3451       -1,    -1,    -1,    -1,    -1,    -1,  1336,    -1,  1338,    -1,
    3452       -1,    -1,    -1,    -1,    -1,    -1,   696,    -1,    -1,   109,
    3453       -1,   111,    -1,  1353,    -1,    -1,    -1,   117,   118,    -1,
    3454       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1369,
    3455     1370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,
    3456     1380,    -1,    -1,  1383,    -1,   905,   906,   907,    -1,   909,
    3457       -1,    -1,    -1,   913,   474,    -1,    -1,    -1,    -1,    -1,
    3458       -1,    -1,    -1,    -1,  1404,    -1,    -1,   757,    -1,    -1,
    3459       -1,    -1,    -1,  1413,   934,   935,  1416,    -1,  1418,  1419,
    3460     1420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3461       -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,   788,    -1,
    3462       -1,    -1,    -1,    -1,    -1,    -1,   526,    -1,    -1,   969,
    3463       -1,   531,    -1,    -1,   534,    -1,    -1,    -1,  1458,    -1,
    3464     1460,    -1,  1462,    -1,    -1,    -1,    -1,   547,    -1,    -1,
    3465      990,   991,    -1,    -1,    -1,    -1,    -1,  1477,    -1,    -1,
    3466       -1,  1001,    -1,    -1,    -1,    -1,    -1,  1007,  1008,   569,
    3467     1010,  1011,  1012,    -1,    -1,    -1,    -1,    -1,    -1,   579,
    3468       -1,    -1,  1022,  1023,    -1,    -1,   586,    -1,    -1,    -1,
    3469       -1,   591,    -1,    -1,     3,     4,     5,     6,     7,     8,
    3470        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3471       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3472       -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,
    3473       39,    40,    -1,    -1,    -1,    -1,    -1,    -1,   908,    -1,
    3474      640,    -1,    -1,    -1,    -1,  1085,    -1,  1087,   648,    -1,
    3475       -1,    -1,  1092,    -1,    -1,    64,    -1,    -1,    67,    -1,
    3476       69,  1101,    71,    72,    -1,    74,    75,    76,    -1,    -1,
    3477       -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,
    3478       -1,    -1,    -1,   953,  1124,  1125,  1126,    -1,    -1,    -1,
    3479       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3480      109,    -1,   111,    -1,    -1,    -1,   115,    -1,   117,   118,
    3481     1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   988,    -1,
    3482       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3483       -1,  1001,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
    3484       -1,    40,    -1,    -1,    -1,    -1,   746,    -1,   748,    -1,
    3485       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   758,    -1,
    3486       -1,    -1,    -1,    -1,   764,    -1,    -1,    66,    -1,    -1,
    3487       -1,  1211,  1042,    72,    -1,    74,    75,    76,    -1,    -1,
    3488       79,    80,    81,    82,    83,    84,    -1,    86,    87,  1229,
    3489       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490       -1,    -1,    -1,    -1,    -1,    -1,    -1,   807,   808,    -1,
    3491      109,   811,   111,    -1,   113,   114,    -1,    -1,   117,   118,
    3492      119,   120,   121,   122,    -1,   825,    -1,    -1,    -1,    -1,
    3493       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1278,  1279,
    3494       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1119,
    3495       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3496       -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,   869,
    3497       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3498        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3499       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3500       23,    24,    25,    26,    27,    -1,   906,    30,    31,    32,
    3501       33,  1181,  1182,    36,    -1,    -1,    39,    40,    -1,    -1,
     3401      21,    22,    23,    24,    25,    26,    27,    -1,   112,    30,
     3402      31,    32,    33,    -1,    -1,    36,    37,    38,    39,    40,
     3403      41,    -1,    43,    -1,    -1,    46,    47,    48,    49,    50,
     3404      51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,  1282,
     3405      61,    62,  1285,    64,    -1,    66,    67,    -1,    69,    -1,
     3406      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3407      81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    35023408      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35033409      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3504       -1,    64,    -1,    -1,    67,   945,    69,    -1,    71,    72,
    3505       -1,    74,    75,    76,    -1,    -1,    -1,    -1,  1398,    -1,
    3506       83,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3507       -1,    -1,    -1,   973,    -1,    -1,    -1,    37,    38,   979,
    3508       40,    -1,    -1,   983,    -1,    -1,   109,    -1,   111,    -1,
    3509       -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
    3510       -1,    -1,    -1,    -1,  1004,    -1,    66,    -1,    -1,    -1,
    3511       -1,    -1,    72,    -1,    -1,  1015,    76,    -1,    -1,    79,
    3512       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3513       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1037,    -1,  1039,
    3514       -1,    -1,    -1,    37,    38,  1485,    40,    -1,    -1,   109,
    3515       -1,   111,    -1,    -1,  1054,  1055,   116,   117,   118,   119,
    3516      120,   121,   122,    -1,    -1,    -1,    -1,    -1,    -1,  1509,
    3517     1510,    -1,    66,    -1,    -1,  1075,    -1,    -1,    72,    -1,
    3518       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3519       84,    -1,    86,    87,  1534,    -1,    -1,    -1,    -1,    -1,
    3520       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3521       -1,    -1,    -1,    -1,    -1,   109,  1386,   111,    -1,    -1,
    3522      114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    3523     1130,    -1,  1402,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3524       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3525     1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3526       -1,    -1,    -1,    -1,    -1,  1165,  1166,    -1,    -1,    -1,
    3527       -1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3528       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3529       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3530       32,    33,  1472,  1473,    36,    37,    38,    39,    40,    41,
    3531       -1,    43,    -1,    -1,    46,    47,    48,    49,    50,    51,
    3532       52,    53,    -1,    -1,    -1,    57,    -1,    -1,    -1,    61,
    3533       62,    -1,    64,    -1,    66,    67,    -1,    69,    -1,    71,
    3534       72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3535       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    3536       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3537       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    3538       -1,    -1,   114,    -1,    -1,   117,   118,   119,   120,   121,
    3539      122,    -1,    -1,    -1,    -1,   127,    -1,    -1,    -1,    -1,
    3540      132,    -1,    -1,    -1,    -1,    -1,  1306,    -1,    -1,  1309,
    3541        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3542       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3543       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3544       33,    -1,    -1,    36,    37,    38,    39,    40,    10,    11,
    3545       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3546       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3547       32,    -1,    -1,    66,    67,    -1,    69,    39,    71,    72,
    3548       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3549       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3550       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3551       72,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
    3552       -1,    83,    84,    -1,   117,   118,   119,   120,   121,   122,
    3553       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
    3554       -1,    -1,    -1,    -1,     3,     4,     5,     6,     7,     8,
     3410     111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,
     3411     121,   122,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,
     3412      -1,    -1,    -1,   134,     3,     4,     5,     6,     7,     8,
    35553413       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    35563414      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    35573415      -1,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    3558       39,    40,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3416      39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
     3417      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3418      -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
     3419      69,    39,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3420      79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
     3421      89,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
     3422      -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
     3423      -1,    -1,   111,    -1,   113,    -1,    -1,    85,    86,    -1,
     3424     119,   120,   121,   122,   123,   124,    -1,    -1,    -1,    -1,
     3425      -1,    -1,    -1,    -1,    -1,   134,    -1,    -1,    -1,    -1,
     3426      -1,    -1,    -1,    -1,    -1,    -1,  1499,     3,     4,     5,
     3427       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3428      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3429      26,    27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
     3430      36,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    35593431      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3560       25,    26,    27,    28,    -1,    -1,    -1,    66,    67,    -1,
    3561       69,    -1,    71,    72,    39,    74,    75,    76,    -1,  1519,
    3562       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
     3432      25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,    -1,
     3433      66,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
     3434      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
     3435      86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3436      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3437      -1,    -1,    -1,    78,    -1,   111,    -1,   113,    -1,    -1,
     3438      -1,    -1,    -1,   119,   120,   121,   122,   123,   124,     4,
     3439       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3440      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3441      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3442      -1,    -1,    37,    38,    39,    40,    10,    11,    12,    13,
     3443      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3444      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3445      -1,    66,    67,    -1,    69,    39,    71,    72,    -1,    74,
     3446      75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3447      85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
     3448      -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
     3449      74,    75,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
     3450      -1,    -1,    -1,   118,   119,   120,   121,   122,   123,   124,
     3451       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3452      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3453      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3454      -1,    -1,    -1,    37,    38,    39,    40,    10,    11,    12,
     3455      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3456      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3457      -1,    -1,    66,    67,    -1,    69,    39,    71,    72,    -1,
     3458      74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3459      84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,
     3460      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
     3461      -1,    74,    75,    -1,    -1,    -1,    -1,   111,    -1,   113,
     3462      -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,   123,
     3463     124,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     3464      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     3465      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     3466      -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
    35633467      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3564       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3565      109,    -1,   111,    78,    -1,    -1,    -1,    -1,   117,   118,
    3566      119,   120,   121,   122,     4,     5,     6,     7,     8,     9,
    3567       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3568       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3569       30,    31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,
    3570       40,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3571       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3572       -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,    69,
    3573       39,    71,    72,    -1,    74,    75,    76,    -1,    -1,    79,
    3574       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3575       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3576       -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,
    3577       -1,   111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,
    3578      120,   121,   122,     4,     5,     6,     7,     8,     9,    10,
    3579       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3580       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3581       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    3582       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3583       20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
    3584       30,    31,    32,    -1,    -1,    66,    67,    -1,    69,    39,
    3585       71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
    3586       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3587       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
    3588       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,   109,    -1,
    3589      111,    -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,
    3590      121,   122,     4,     5,     6,     7,     8,     9,    10,    11,
     3468      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3469      -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
     3470      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
     3471      83,    84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,
     3472      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3473      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3474     113,    -1,    -1,    -1,    -1,    -1,   119,   120,   121,   122,
     3475     123,   124,     4,     5,     6,     7,     8,     9,    10,    11,
    35913476      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    35923477      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     
    35963481      -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
    35973482      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3598       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3483      82,    83,    84,    85,    86,    -1,    88,    89,    -1,    -1,
    35993484      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3600       -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,
    3601       -1,    -1,    -1,    -1,   116,   117,   118,   119,   120,   121,
    3602      122,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3603       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3604       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3605       -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
     3485      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
     3486      -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,   121,
     3487     122,   123,   124,     4,     5,     6,     7,     8,     9,    10,
     3488      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3489      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3490      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
    36063491      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36073492      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3608       -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
    3609       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3610       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
     3493      -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,
     3494      71,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3495      81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
    36113496      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3612       -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
    3613       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3497      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3498     111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
     3499     121,   122,   123,   124,     0,    -1,    -1,     3,     4,     5,
     3500       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3501      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3502      26,    27,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
     3503      36,    -1,    -1,    39,    40,    -1,    -1,    -1,    -1,    -1,
     3504      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3505      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,
     3506      -1,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
     3507      76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
     3508      86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3509      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3510      -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
     3511      -1,    -1,    -1,   119,   120,     3,     4,     5,     6,     7,
     3512       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3513      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3514      -1,    -1,    30,    31,    32,    33,    -1,    -1,    36,    -1,
     3515      -1,    39,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3516      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3517      -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    67,
     3518      -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
     3519      -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    -1,
     3520      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3521      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3522      -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,   117,
     3523      -1,   119,   120,     3,     4,     5,     6,     7,     8,     9,
     3524      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3525      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3526      30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
     3527      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3528      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3529      -1,    -1,    -1,    -1,    64,    -1,    -1,    67,    -1,    69,
     3530      -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
     3531      -1,    -1,    -1,    -1,    -1,    85,    86,    -1,    -1,    -1,
     3532      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3533      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3534      -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
     3535     120,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3536      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3537      22,    23,    24,    25,    26,    27,    28,    -1,    30,    31,
     3538      32,    33,    -1,    -1,    36,    -1,    -1,    39,    -1,    -1,
     3539      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3540      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3541      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
     3542      -1,    -1,    74,    75,    -1,    -1,    78,     3,     4,     5,
     3543       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
     3544      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3545      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3546      -1,   113,    -1,    39,    -1,    -1,    -1,   119,   120,    -1,
     3547      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3548      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3549      -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,
    36143550       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    36153551      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    36163552      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3617       -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,
     3553      -1,    -1,    -1,    -1,    -1,    39,    -1,   113,    -1,    -1,
     3554      -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,
     3555      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3556      -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
     3557      74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3558      -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3559      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3560      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
     3561      -1,    -1,    -1,    -1,    -1,   119,   120,     4,     5,     6,
     3562       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3563      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3564      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3565      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36183566      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36193567      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3620       -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,
    3621       74,    75,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3622       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,
    3623       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3624       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3625       -1,    -1,    -1,   117,   118,   119,   120,   121,   122,     4,
     3568      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,
    36263569       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    36273570      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    36283571      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3629       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3572      -1,    -1,    -1,    -1,    39,   112,   113,    -1,    -1,    -1,
     3573      -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    36303574      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3575      -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
     3576      75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36313577      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3632       -1,    66,    67,    -1,    69,    -1,    71,    72,    -1,    74,
    3633       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3634       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3635       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3636       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,
    3637       -1,    -1,   117,   118,   119,   120,   121,   122,     4,     5,
    3638        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3639       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3640       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3641       -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,    -1,
    3642       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3643       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3644       66,    67,    -1,    69,    -1,    71,    72,    -1,    74,    75,
    3645       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3646       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3647       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3649       -1,   117,   118,   119,   120,   121,   122,     3,     4,     5,
    3650        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3651       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3652       26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
    3653       -1,    -1,    -1,    39,    -1,    10,    11,    12,    13,    14,
    3654       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3655       25,    26,    27,    -1,    -1,    30,    31,    32,    33,    34,
    3656       35,    67,    -1,    69,    39,    71,    72,    -1,    74,    75,
    3657       76,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    -1,
    3658       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3659       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3660       75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3661       -1,   117,   118,     3,     4,     5,     6,     7,     8,     9,
    3662       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3663       20,    21,    22,    23,    24,    25,    26,    27,    28,    -1,
    3664       30,    31,    32,    33,    -1,    -1,    36,    -1,    -1,    39,
    3665       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3666       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3667       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3668       -1,    71,    -1,    -1,    74,    75,    -1,    -1,    78,     3,
    3669        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3670       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3671       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    33,
    3672       -1,   111,    36,    -1,    -1,    39,    -1,   117,   118,    -1,
    3673       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3674       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3675       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3676       74,    75,     3,     4,     5,     6,     7,     8,     9,    10,
    3677       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3678       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3679       31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
    3680       -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
    3681       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3682       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3683       71,    -1,    -1,    74,    75,    -1,     4,     5,     6,     7,
     3578      -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,
     3579      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,
     3580      -1,    -1,    -1,    -1,   119,   120,     4,     5,     6,     7,
    36843581       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    36853582      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    36863583      -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3687      111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3688       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3689       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3690       -1,    69,    -1,    71,    72,    -1,    74,    75,    76,    -1,
    3691       -1,    -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,
     3584      -1,    39,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3585      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3586      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    67,
     3587      -1,    69,    -1,    71,    39,    40,    74,    75,    -1,    -1,
    36923588      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    36933589      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3694       -1,   109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,
    3695      118,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    3696       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3697       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3698       -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,
    3699       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3590      98,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3591      75,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,    -1,
     3592      -1,   119,   120,     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,   113,    30,
     3595      31,    32,   117,    -1,   119,   120,    -1,    -1,    39,    -1,
     3596      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3597      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3598      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
     3599      71,    -1,    -1,    74,    75,     4,     5,     6,     7,     8,
     3600       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    37003601      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3701       -1,    30,    31,    32,    67,    -1,    69,    -1,    71,    -1,
    3702       39,    74,    75,    -1,     4,     5,     6,     7,     8,     9,
     3602      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3603      39,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
     3604      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3605      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3606      69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
     3607       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     3608      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3609      27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
     3610      -1,    -1,    39,    -1,   113,    -1,    -1,    -1,    -1,    -1,
     3611     119,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3612      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3613      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    10,
     3614      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3615      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3616      31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     3617      -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
     3618      -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
     3619      -1,    -1,    -1,    -1,    -1,    66,    67,    -1,    -1,    -1,
     3620      -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3621      81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
     3622      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3623      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3624     111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,
     3625     121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
     3626      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3627      26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,
     3628      -1,    37,    38,    39,    40,    10,    11,    12,    13,    14,
     3629      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3630      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3631      66,    67,    -1,    -1,    39,    -1,    72,    -1,    74,    75,
     3632      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
     3633      86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3634      -1,    -1,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
     3635      75,    -1,    -1,    -1,    -1,   111,   112,   113,    -1,    -1,
     3636      85,    86,    -1,   119,   120,   121,   122,   123,   124,    10,
     3637      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3638      21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
     3639      31,    32,    -1,    -1,   119,   120,    37,    38,    39,    40,
    37033640      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3704       20,    21,    22,    23,    24,    25,    26,    27,    67,    -1,
    3705       30,    31,    32,    -1,    -1,    74,    75,   110,   111,    39,
    3706       -1,    -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,
     3641      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3642      30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
     3643      40,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3644      81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
     3645      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3646      -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
     3647     111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
     3648     121,   122,   123,   124,    10,    11,    12,    13,    14,    15,
     3649      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
     3650      26,    27,    -1,   113,    30,    31,    32,   117,    -1,   119,
     3651     120,    37,    38,    39,    40,    10,    11,    12,    13,    14,
     3652      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3653      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3654      66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
     3655      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
     3656      86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3657      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3658      75,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
     3659      -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    10,
     3660      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3661      21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
     3662      31,    32,   117,    -1,   119,   120,    37,    38,    39,    40,
     3663      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3664      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3665      30,    31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,
     3666      -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3667      81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
     3668      -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,
     3669      -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,    -1,
     3670     111,    -1,   113,    -1,    -1,    85,    86,    -1,   119,   120,
     3671     121,   122,   123,   124,    -1,    -1,    -1,    -1,    -1,    -1,
    37073672      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3708       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3709      109,    71,   111,    -1,    74,    75,    -1,    -1,   117,   118,
     3673      -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
     3674     120,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3675      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3676      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
     3677      39,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3678      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3679      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    67,    -1,
     3680      39,    -1,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
     3681      -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    -1,    -1,
     3682      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3683      -1,    -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,
     3684      -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,
     3685     119,   120,    -1,    -1,    -1,    10,    11,    12,    13,    14,
     3686      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3687      25,    26,    27,    -1,   113,    30,    31,    32,    -1,    -1,
     3688     119,   120,    -1,    -1,    39,    10,    11,    12,    13,    14,
     3689      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3690      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3691      -1,    -1,    67,    -1,    39,    -1,    -1,    -1,    -1,    74,
     3692      75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37103693      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3711       -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
     3694      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
     3695      75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,
     3696      -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    10,
     3697      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3698      21,    22,    23,    24,    25,    26,    27,    -1,   113,    30,
     3699      31,    32,    -1,    -1,   119,   120,    -1,    -1,    39,    10,
     3700      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     3701      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
     3702      31,    32,    -1,    -1,    -1,    -1,    67,    -1,    39,    -1,
     3703      -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
    37123704      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3713       -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,     4,
     3705      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
     3706      -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,
     3707      -1,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,   120,
     3708      -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
     3709      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     3710      27,    -1,   113,    30,    31,    32,    -1,    -1,   119,   120,
     3711      -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3712      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3713      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3714      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    -1,
     3715      -1,    -1,    37,    38,    -1,    40,    41,    -1,    43,    -1,
     3716      -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3717      -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3718      -1,    66,    -1,    -1,    -1,    -1,   113,    72,    -1,    -1,
     3719      -1,    76,   119,   120,    79,    80,    81,    82,    83,    84,
     3720      85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
     3721      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3722      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
     3723      -1,   116,    -1,    -1,   119,   120,   121,   122,   123,   124,
     3724      -1,    -1,    37,    38,   129,    40,    41,    -1,    43,   134,
     3725      -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
     3726      -1,    -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
     3727      -1,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3728      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3729      85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
     3730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3731      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
     3732      -1,   116,    -1,    -1,   119,   120,   121,   122,   123,   124,
     3733      -1,    -1,    -1,    -1,   129,    -1,    -1,    -1,    -1,   134,
     3734       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3735      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3736      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3737      -1,    -1,    -1,    -1,    -1,    39,    -1,    37,    38,    -1,
     3738      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
     3739      50,    51,    52,    53,    -1,    -1,    56,    57,    -1,    -1,
     3740      -1,    61,    62,    67,    64,    69,    66,    71,    -1,    -1,
     3741      74,    75,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3742      80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
     3743      -1,    -1,    -1,    -1,    98,    -1,    -1,    -1,    -1,    -1,
     3744      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3745      -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
     3746     120,   121,   122,   123,   124,    -1,    -1,    37,    38,   129,
     3747      40,    41,    -1,    43,    44,    45,    46,    47,    48,    49,
     3748      50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
     3749      -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
     3750      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3751      80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
     3752      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3753      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3754      -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
     3755     120,   121,   122,   123,   124,    -1,    -1,    37,    38,   129,
     3756      40,    41,    -1,    43,    -1,    -1,    46,    47,    48,    49,
     3757      50,    51,    52,    53,    -1,    -1,    -1,    57,    -1,    -1,
     3758      -1,    61,    62,    -1,    64,    -1,    66,    -1,    -1,    -1,
     3759      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3760      80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
     3761      -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
     3762      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3763      -1,   111,    -1,   113,    -1,    -1,   116,    -1,    -1,   119,
     3764     120,   121,   122,   123,   124,    66,    -1,    -1,    -1,   129,
     3765      -1,    72,    -1,    74,    75,    76,    -1,    -1,    79,    80,
     3766      81,    82,    83,    84,    85,    86,    -1,    88,    89,    -1,
     3767      -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,
     3768      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3769     111,    -1,   113,    -1,   115,   116,    -1,    -1,   119,   120,
     3770     121,   122,   123,   124,    66,    -1,    -1,    -1,    -1,    -1,
     3771      72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
     3772      82,    83,    84,    85,    86,    -1,    88,    89,    -1,    -1,
     3773      -1,    -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,
     3774      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,
     3775      -1,   113,    -1,    -1,   116,    -1,    -1,   119,   120,   121,
     3776     122,   123,   124,    66,    -1,    -1,    -1,    -1,    -1,    72,
     3777      -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
     3778      83,    84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,
     3779      -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
     3780      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,
     3781     113,    -1,    -1,    -1,    -1,   118,   119,   120,   121,   122,
     3782     123,   124,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
     3783      -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
     3784      84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,
     3785      -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,
     3786      -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
     3787      -1,    -1,   116,    -1,    -1,   119,   120,   121,   122,   123,
     3788     124,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
     3789      -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
     3790      85,    86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,
     3791      -1,    37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,
     3792      -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,
     3793      -1,    -1,    -1,    -1,   119,   120,   121,   122,   123,   124,
     3794      66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
     3795      76,    -1,    -1,    79,    80,    81,    82,    83,    84,    85,
     3796      86,    -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,
     3797      37,    38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,
     3798      -1,    -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,
     3799      -1,    -1,    -1,   119,   120,   121,   122,   123,   124,    66,
     3800      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
     3801      -1,    -1,    79,    80,    81,    82,    83,    84,    85,    86,
     3802      -1,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    37,
     3803      38,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3804      -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,
     3805      -1,    -1,   119,   120,   121,   122,   123,   124,    66,    -1,
     3806      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
     3807      -1,    79,    80,    81,    82,    83,    84,    85,    86,    -1,
     3808      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,
     3809      -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3810      -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,
     3811      -1,   119,   120,   121,   122,   123,   124,    66,    -1,    -1,
     3812      -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
     3813      79,    80,    81,    82,    83,    84,    85,    86,    -1,    88,
     3814      89,    -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,
     3815      40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3816      -1,    -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,
     3817     119,   120,   121,   122,   123,   124,    66,    -1,    -1,    -1,
     3818      -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,
     3819      80,    81,    82,    83,    84,    85,    86,    -1,    88,    89,
     3820      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3821      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3822      -1,   111,    -1,   113,    -1,    -1,    -1,    -1,    -1,   119,
     3823     120,   121,   122,   123,   124,     4,     5,     6,     7,     8,
     3824       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3825      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
     3826      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3827      39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3828      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3829      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3830      69,    -1,    71,    72,    -1,    74,    75,    76,    -1,    -1,
     3831      -1,    -1,    -1,    -1,    -1,    -1,    85,    86,     3,     4,
    37143832       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    37153833      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    37163834      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3717       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,
    3718       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3719       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3720       32,    -1,    67,    -1,    69,    -1,    71,    39,    40,    74,
    3721       75,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3723       -1,    96,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3724       -1,    -1,    74,    75,    -1,    -1,   111,    -1,    -1,    -1,
    3725       -1,    -1,   117,   118,     4,     5,     6,     7,     8,     9,
    3726       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3727       20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3728       30,    31,    32,   115,    -1,   117,   118,    -1,    -1,    39,
     3835      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    37293836      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    37303837      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3731       -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,
    3732       -1,    71,    -1,    -1,    74,    75,    -1,     4,     5,     6,
    3733        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3734       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3735       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3736       -1,   111,    39,    -1,    -1,    -1,    -1,   117,   118,    -1,
    3737       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3738       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3739       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,    -1,
    3740        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3741       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3742       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
    3743       -1,    -1,    -1,    -1,   111,    39,    -1,    -1,    -1,    -1,
    3744      117,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3745       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3746       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,
    3747       74,    75,    -1,     4,     5,     6,     7,     8,     9,    10,
    3748       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3749       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3750       31,    32,    -1,    -1,    -1,    -1,    -1,   111,    39,    -1,
    3751       -1,    -1,    -1,   117,   118,    -1,    -1,    -1,    -1,    -1,
    3752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,
    3754       71,    -1,    -1,    74,    75,    10,    11,    12,    13,    14,
    3755       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3756       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3757       -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
    3758      111,    -1,    -1,    -1,    -1,    -1,   117,   118,    -1,    -1,
    3759       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3760       -1,    66,    67,    -1,    -1,    -1,    -1,    72,    -1,    74,
    3761       75,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3762       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3763       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3764       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
    3765       -1,    -1,   117,   118,   119,   120,   121,   122,    10,    11,
    3766       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3767       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3768       32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    10,
    3769       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3770       21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3771       31,    32,    -1,    -1,    66,    67,    -1,    -1,    39,    -1,
    3772       72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3773       82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
    3774       -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
    3775       -1,    72,    -1,    74,    75,    76,    -1,   109,   110,   111,
    3776       -1,    -1,    83,    84,    -1,   117,   118,   119,   120,   121,
    3777      122,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3778       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3779      111,    30,    31,    32,    -1,    -1,   117,   118,    37,    38,
    3780       39,    40,    10,    11,    12,    13,    14,    15,    16,    17,
    3781       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3782       -1,    -1,    30,    31,    32,    -1,    -1,    66,    67,    -1,
    3783       -1,    39,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
    3784       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3785       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3786       -1,    -1,    -1,    -1,    72,    -1,    74,    75,    -1,    -1,
    3787      109,    -1,   111,    -1,    -1,    83,    84,    -1,   117,   118,
    3788      119,   120,   121,   122,    10,    11,    12,    13,    14,    15,
    3789       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3790       26,    27,    -1,   111,    30,    31,    32,    -1,    -1,   117,
    3791      118,    37,    38,    39,    40,    10,    11,    12,    13,    14,
    3792       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3793       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3794       66,    67,    -1,    -1,    39,    40,    72,    -1,    74,    75,
    3795       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3796       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3797       -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
    3798       75,    -1,    -1,   109,    -1,   111,    -1,    -1,    -1,    -1,
    3799       -1,   117,   118,   119,   120,   121,   122,    10,    11,    12,
    3800       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3801       23,    24,    25,    26,    27,    -1,   111,    30,    31,    32,
    3802      115,    -1,   117,   118,    37,    38,    39,    40,    10,    11,
    3803       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3804       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3805       32,    -1,    -1,    66,    67,    -1,    -1,    39,    40,    72,
    3806       -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3807       83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    3808       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
    3809       -1,    -1,    74,    75,    -1,    -1,   109,    -1,   111,    -1,
    3810       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3811       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3812       20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3813       30,    31,    32,   115,    -1,   117,   118,    37,    38,    39,
    3814       40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
    3815       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3816       22,    23,    24,    25,    26,    27,    66,    67,    30,    31,
    3817       32,    -1,    72,    -1,    74,    75,    76,    39,    -1,    79,
    3818       80,    81,    82,    83,    84,    -1,    86,    87,    -1,    -1,
    3819       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3820       -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,   109,
    3821       -1,   111,    74,    75,    -1,    -1,    -1,   117,   118,   119,
    3822      120,   121,   122,     3,     4,     5,     6,     7,     8,     9,
    3823       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    3824       20,    21,    22,    23,    24,    25,    26,    27,    -1,   111,
    3825       30,    31,    32,    -1,    -1,   117,   118,    -1,    -1,    39,
    3826       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
    3827       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3828       27,    -1,    -1,    30,    31,    32,    -1,    67,    -1,    69,
    3829       -1,    71,    39,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3830       -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    3831       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3832       67,    30,    31,    32,    -1,    72,    -1,    74,    75,    76,
    3833       39,    -1,    -1,    -1,   114,    -1,    83,    84,    -1,    10,
    3834       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    3835       21,    22,    23,    24,    25,    26,    27,    -1,    67,    30,
    3836       31,    32,   109,    72,   111,    74,    75,    76,    39,    -1,
    3837      117,   118,    -1,    -1,    83,    84,    -1,    10,    11,    12,
    3838       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3839       23,    24,    25,    26,    27,    28,    67,    30,    31,    32,
    3840      109,    72,   111,    74,    75,    76,    39,    -1,   117,   118,
    3841       -1,    -1,    83,    84,    -1,    10,    11,    12,    13,    14,
    3842       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3843       25,    26,    27,    28,    67,    30,    31,    32,   109,    -1,
    3844      111,    74,    75,    -1,    39,    78,   117,   118,    10,    11,
    3845       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3846       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3847       32,    -1,    67,    -1,    -1,    -1,   109,    39,   111,    74,
    3848       75,    -1,    -1,    78,   117,   118,    10,    11,    12,    13,
    3849       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3850       24,    25,    26,    27,    -1,    67,    30,    31,    32,    -1,
    3851       -1,    -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,
    3852       -1,    -1,   117,   118,    10,    11,    12,    13,    14,    15,
    3853       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3854       26,    27,    -1,    67,    30,    31,    32,    -1,    -1,   111,
    3855       74,    75,    -1,    39,    -1,   117,   118,    10,    11,    12,
    3856       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    3857       23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
    3858       -1,    67,    -1,    -1,    -1,    -1,    39,   111,    74,    75,
    3859       -1,    -1,    -1,   117,   118,    10,    11,    12,    13,    14,
    3860       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3861       25,    26,    27,    -1,    67,    30,    31,    32,    -1,    -1,
    3862       -1,    74,    75,    -1,    39,   111,    -1,    -1,    -1,    -1,
    3863       -1,   117,   118,    10,    11,    12,    13,    14,    15,    16,
    3864       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3865       27,    -1,    67,    30,    31,    32,    -1,    -1,   111,    74,
    3866       75,    -1,    39,    -1,   117,   118,     4,     5,     6,     7,
    3867        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3868       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3869       67,    -1,    30,    31,    32,    -1,   111,    74,    75,    -1,
    3870       -1,    39,   117,   118,    -1,    -1,    -1,    -1,    -1,    -1,
    3871       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3872       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
    3873       -1,    69,    -1,    71,   111,    -1,    74,    75,    -1,    -1,
    3874      117,   118,    37,    38,    -1,    40,    41,    -1,    43,    -1,
    3875       -1,    46,    47,    48,    49,    50,    51,    52,    53,    -1,
    3876       -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,    64,
    3877       -1,    66,   110,    -1,    -1,    -1,    -1,    72,    -1,    -1,
    3878       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3879       -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3880       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3881       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,
    3882       -1,    -1,   117,   118,   119,   120,   121,   122,    -1,    -1,
    3883       37,    38,   127,    40,    41,    -1,    43,   132,    -1,    46,
    3884       47,    48,    49,    50,    51,    52,    53,    -1,    -1,    -1,
    3885       57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,
    3886       -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
    3887       -1,    -1,    79,    80,    81,    82,    83,    84,    -1,    86,
    3888       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3889       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3890       -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,
    3891      117,   118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,
    3892      127,    -1,    -1,    -1,    -1,   132,     4,     5,     6,     7,
    3893        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3894       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3895       -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,
    3896       -1,    39,    -1,    37,    38,    -1,    40,    41,    -1,    43,
    3897       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
    3898       -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    67,
    3899       64,    69,    66,    71,    -1,    -1,    74,    75,    72,    -1,
    3900       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3901       84,    -1,    86,    87,    -1,    -1,    -1,    -1,    96,    -1,
    3902       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3903       -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
    3904      114,    -1,    -1,   117,   118,   119,   120,   121,   122,    -1,
    3905       -1,    37,    38,   127,    40,    41,    -1,    43,    44,    45,
    3906       46,    47,    48,    49,    50,    51,    52,    53,    -1,    -1,
    3907       -1,    57,    -1,    -1,    -1,    61,    62,    -1,    64,    -1,
    3908       66,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
    3909       76,    -1,    -1,    79,    80,    81,    82,    83,    84,    -1,
    3910       86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3911       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3912       -1,    -1,    -1,   109,    -1,   111,    -1,    -1,   114,    -1,
    3913       -1,   117,   118,   119,   120,   121,   122,    -1,    -1,    37,
    3914       38,   127,    40,    41,    -1,    43,    -1,    -1,    46,    47,
    3915       48,    49,    50,    51,    52,    53,    -1,    -1,    -1,    57,
    3916       -1,    -1,    -1,    61,    62,    -1,    64,    -1,    66,    -1,
    3917       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3918       -1,    79,    80,    81,    82,    83,    84,    -1,    86,    87,
    3919       -1,    -1,    -1,    -1,    -1,    -1,    37,    38,    -1,    40,
    3920       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3921       -1,   109,    -1,   111,    -1,    -1,   114,    -1,    -1,   117,
    3922      118,   119,   120,   121,   122,    66,    -1,    -1,    -1,   127,
    3923       -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,
    3924       81,    82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,
    3925       -1,    -1,    -1,    37,    38,    -1,    40,    -1,    -1,    -1,
    3926       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,
    3927      111,    -1,    37,    38,    -1,    40,   117,   118,   119,   120,
    3928      121,   122,    66,    -1,    -1,    -1,    -1,    -1,    72,    -1,
    3929       -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,    83,
    3930       84,    66,    86,    87,    -1,    -1,    -1,    72,    -1,    -1,
    3931       -1,    76,    -1,    -1,    79,    80,    81,    82,    83,    84,
    3932       -1,    86,    87,    -1,    -1,   109,    -1,   111,    -1,    37,
    3933       38,    -1,    40,   117,   118,   119,   120,   121,   122,    -1,
    3934       -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    37,    38,
    3935       -1,    40,   117,   118,   119,   120,   121,   122,    66,    -1,
    3936       -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
    3937       -1,    79,    80,    81,    82,    83,    84,    66,    86,    87,
    3938       -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
    3939       79,    80,    81,    82,    83,    84,    -1,    86,    87,    -1,
    3940       -1,   109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,
    3941      118,   119,   120,   121,   122,    -1,    -1,    -1,    -1,    -1,
    3942      109,    -1,    -1,    -1,    37,    38,    -1,    40,   117,   118,
    3943      119,   120,   121,   122,    66,    -1,    -1,    -1,    -1,    -1,
    3944       72,    -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,
    3945       82,    83,    84,    66,    86,    87,    -1,    -1,    -1,    72,
    3946       -1,    -1,    -1,    76,    -1,    -1,    79,    80,    81,    82,
    3947       83,    84,    -1,    86,    87,    -1,    -1,   109,    -1,    -1,
    3948       -1,    -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,
    3949      122,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
    3950       -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
    3951        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3952       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3953       24,    25,    26,    27,    -1,    -1,    -1,    -1,    -1,    -1,
    3954       -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,
    3955       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3956       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3957       -1,    -1,    -1,    67,    -1,    69,    -1,    71,    72,    -1,
    3958       74,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
    3959       84,     3,     4,     5,     6,     7,     8,     9,    10,    11,
     3838      -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
     3839      75,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    39603840      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    39613841      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     
    39643844      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39653845      -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    3966       -1,    -1,    74,    75,     3,     4,     5,     6,     7,     8,
    3967        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3846      -1,    -1,    74,    75,     4,     5,     6,     7,     8,     9,
     3847      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     3848      20,    21,    22,    23,    24,    25,    26,    27,    -1,    -1,
     3849      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    39,
     3850      -1,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    39683851      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3969       -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
    3970       39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3852      -1,    30,    31,    32,    33,    34,    35,    67,    -1,    69,
     3853      39,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    39713854      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    39723855      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3973       69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    3974        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    3975       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
    3976       27,    -1,    -1,    30,    31,    32,    -1,    -1,    -1,    -1,
    3977       -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3978       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3980       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75
     3856      -1,    -1,    -1,    -1,    -1,    74,    75
    39813857};
    39823858
     
    39893865      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    39903866      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    3991       76,    83,    84,   109,   111,   117,   118,   137,   140,   151,
    3992      200,   214,   215,   216,   217,   218,   219,   220,   221,   222,
    3993      223,   224,   225,   226,   227,   228,   229,   230,   231,   233,
    3994      234,   235,   236,   237,   238,   239,   241,   242,   243,   244,
    3995      245,   246,   248,   256,   257,   284,   285,   286,   294,   297,
    3996      303,   304,   306,   308,   309,   315,   320,   324,   325,   326,
    3997      327,   328,   329,   330,   331,   351,   368,   369,   370,   371,
    3998       72,   139,   140,   151,   217,   219,   227,   229,   238,   242,
    3999      244,   285,    82,   109,   313,   314,   315,   313,   313,    72,
    4000       74,    75,    76,   138,   139,   274,   275,   295,   296,    74,
    4001       75,   275,   109,   306,    11,   201,   109,   151,   320,   325,
    4002      326,   327,   329,   330,   331,   112,   134,   111,   220,   227,
    4003      229,   324,   328,   367,   368,   371,   372,   135,   107,   131,
    4004      278,   114,   135,   175,    74,    75,   137,   273,   135,   135,
    4005      135,   116,   135,    74,    75,   109,   151,   310,   319,   320,
    4006      321,   322,   323,   324,   328,   332,   333,   334,   335,   336,
    4007      342,     3,    28,    78,   240,     3,     5,    74,   111,   151,
    4008      219,   230,   234,   236,   245,   286,   324,   328,   371,   217,
    4009      219,   229,   238,   242,   244,   285,   324,   328,    33,   235,
    4010      235,   230,   236,   135,   235,   230,   235,   230,    75,   109,
    4011      114,   275,   286,   114,   275,   235,   230,   116,   135,   135,
    4012        0,   134,   109,   175,   313,   313,   134,   111,   227,   229,
    4013      369,   273,   273,   131,   229,   109,   151,   310,   320,   324,
    4014      111,   151,   371,   307,   232,   315,   109,   291,   109,   109,
    4015       51,   109,    37,    38,    40,    66,    72,    76,    79,    80,
    4016       81,    82,    86,    87,   109,   111,   119,   120,   121,   122,
    4017      136,   140,   141,   142,   143,   144,   150,   151,   152,   153,
    4018      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
    4019      164,   166,   169,   227,   277,   293,   367,   372,   229,   110,
    4020      110,   110,   110,   110,   110,   110,    74,    75,   111,   227,
    4021      273,   351,   369,   111,   117,   151,   166,   219,   220,   226,
    4022      229,   233,   234,   238,   241,   242,   244,   263,   264,   268,
    4023      269,   270,   271,   285,   351,   363,   364,   365,   366,   371,
    4024      372,   112,   109,   324,   328,   371,   109,   116,   132,   111,
    4025      114,   151,   166,   279,   279,   115,   134,   116,   132,   109,
    4026      116,   132,   116,   132,   116,   132,   313,   132,   320,   321,
    4027      322,   323,   333,   334,   335,   336,   229,   319,   332,    64,
    4028      312,   111,   313,   350,   351,   313,   313,   175,   134,   109,
    4029      313,   350,   313,   313,   229,   310,   109,   109,   228,   229,
    4030      227,   229,   112,   134,   227,   367,   372,   175,   134,   273,
    4031      278,   219,   234,   324,   328,   175,   134,   295,   229,   238,
    4032      132,   229,   229,   293,   249,   247,   259,   275,   258,   229,
    4033      295,   132,   132,   306,   134,   139,   272,     3,   135,   209,
    4034      210,   224,   226,   229,   134,   312,   109,   312,   166,   320,
    4035      229,   109,   134,   273,   114,    33,    34,    35,   227,   287,
    4036      288,   290,   134,   128,   131,   292,   134,   230,   235,   236,
    4037      273,   316,   317,   318,   109,   141,   109,   150,   109,   150,
    4038      153,   109,   150,   109,   109,   150,   150,   111,   166,   171,
    4039      175,   227,   276,   367,   371,   112,   134,    82,    85,    86,
    4040       87,   109,   111,   113,   114,    97,    98,    99,   100,   101,
    4041      102,   103,   104,   105,   106,   107,   131,   168,   153,   153,
    4042      117,   123,   124,   119,   120,    88,    89,    90,    91,   125,
    4043      126,    92,    93,   118,   127,   128,    94,    95,   129,   131,
    4044      374,   109,   151,   346,   347,   348,   349,   350,   110,   116,
    4045      109,   350,   351,   109,   350,   351,   134,   109,   227,   369,
    4046      112,   134,   135,   111,   227,   229,   362,   363,   371,   372,
    4047      135,   109,   111,   151,   320,   337,   338,   339,   340,   341,
    4048      342,   343,   344,   345,   351,   352,   353,   354,   355,   356,
    4049      357,   151,   371,   229,   135,   135,   151,   227,   229,   364,
    4050      273,   227,   351,   364,   273,   109,   134,   134,   134,   112,
    4051      134,    72,   111,   113,   140,   275,   279,   280,   281,   282,
    4052      283,   134,   134,   134,   134,   134,   134,   310,   110,   110,
    4053      110,   110,   110,   110,   110,   319,   332,   109,   278,   112,
    4054      209,   134,   310,   171,   277,   171,   277,   310,   111,   209,
    4055      312,   175,   134,   209,   110,    40,   111,   115,   227,   250,
    4056      251,   252,   367,   114,   116,   373,   131,   260,   114,   229,
    4057      265,   266,   267,   270,   271,   110,   116,   175,   134,   117,
    4058      166,   134,   226,   229,   264,   363,   371,   304,   305,   109,
    4059      151,   337,   110,   116,   374,   275,   287,   109,   114,   275,
    4060      277,   287,   110,   116,   109,   141,   110,   130,   276,   276,
    4061      276,   146,   166,   277,   276,   112,   134,   110,   116,   110,
    4062      109,   151,   350,   358,   359,   360,   361,   110,   116,   166,
    4063      111,   139,   145,   146,   134,    79,   111,   139,   145,   166,
    4064      153,   153,   153,   154,   154,   155,   155,   156,   156,   156,
    4065      156,   157,   157,   158,   159,   160,   161,   162,   130,   171,
    4066      166,   134,   347,   348,   349,   229,   346,   313,   313,   166,
    4067      277,   134,   272,   134,   227,   351,   364,   229,   233,   112,
    4068      112,   134,   371,   112,   109,   134,   320,   338,   339,   340,
    4069      343,   353,   354,   355,   112,   134,   229,   337,   341,   352,
    4070      109,   313,   356,   374,   313,   313,   374,   109,   313,   356,
    4071      313,   313,   313,   313,   351,   227,   362,   372,   273,   112,
    4072      116,   112,   116,   374,   227,   364,   374,   261,   262,   263,
    4073      264,   261,   261,   273,   166,   134,   111,   275,   130,   116,
    4074      373,   279,   111,   130,   283,    29,   211,   212,   273,   261,
    4075      139,   310,   139,   312,   109,   350,   351,   109,   350,   351,
    4076      142,   351,   175,   265,   110,   110,   110,   110,   112,   175,
    4077      209,   175,   114,   251,   252,   112,   134,   109,   130,   151,
    4078      253,   255,   319,   320,   332,   358,   116,   132,   116,   132,
    4079      275,   249,   275,   115,   164,   165,   259,   135,   135,   139,
    4080      224,   135,   135,   261,   109,   151,   371,   135,   115,   229,
    4081      288,   289,   135,   134,   134,   109,   135,   110,   317,   171,
    4082      172,   130,   132,   111,   141,   202,   203,   204,   110,   116,
    4083      110,   110,   110,   110,   111,   166,   359,   360,   361,   229,
    4084      358,   313,   313,   114,   153,   169,   166,   167,   170,   116,
    4085      135,   134,   110,   116,   166,   134,   115,   164,   130,   265,
    4086      110,   110,   110,   346,   265,   110,   261,   227,   364,   111,
    4087      117,   151,   166,   166,   229,   343,   265,   110,   110,   110,
    4088      110,   110,   110,   110,     7,   229,   337,   341,   352,   134,
    4089      134,   374,   134,   134,   110,   135,   135,   135,   135,   278,
    4090      135,   164,   165,   166,   311,   134,   279,   281,   115,   134,
    4091      213,   275,    40,    41,    43,    46,    47,    48,    49,    50,
    4092       51,    52,    53,    57,    61,    62,    72,   111,   127,   172,
    4093      173,   174,   175,   176,   177,   179,   180,   192,   194,   195,
    4094      200,   214,   309,    29,   135,   131,   278,   134,   134,   110,
    4095      135,   175,   249,   132,   132,   320,   165,   229,   254,   255,
    4096      254,   275,   313,   115,   260,   373,   110,   116,   112,   112,
    4097      135,   229,   116,   374,   291,   110,   287,   217,   219,   227,
    4098      299,   300,   301,   302,   293,   110,   110,   130,   165,   109,
    4099      110,   130,   116,   139,   112,   110,   110,   110,   358,   280,
    4100      116,   135,   170,   112,    79,   139,   147,   148,   149,   146,
    4101      135,   147,   164,   169,   135,   109,   350,   351,   135,   135,
    4102      134,   135,   135,   135,   166,   110,   135,   109,   350,   351,
    4103      109,   356,   109,   356,   351,   228,     7,   117,   135,   166,
    4104      265,   265,   264,   268,   268,   269,   116,   116,   110,   110,
    4105      112,    96,   122,   135,   135,   147,   279,   166,   116,   132,
    4106      214,   218,   229,   233,   109,   109,   173,   109,   109,    72,
    4107      132,    72,   132,    72,   117,   172,   109,   175,   167,   167,
    4108      130,   112,   144,   132,   135,   134,   135,   213,   110,   166,
    4109      265,   265,   313,   110,   115,   253,   115,   134,   110,   134,
    4110      135,   310,   115,   134,   135,   135,   110,   114,   202,   112,
    4111      165,   132,   202,   204,   110,   109,   350,   351,   373,   167,
    4112      112,   135,   116,   135,    85,   113,   112,   135,   110,   134,
    4113      110,   110,   112,   112,   112,   135,   110,   134,   134,   134,
    4114      166,   166,   135,   112,   135,   135,   135,   135,   134,   134,
    4115      165,   165,   112,   112,   135,   135,   275,   229,   171,   171,
    4116       47,   171,   134,   132,   132,   132,   171,   132,   171,    58,
    4117       59,    60,   196,   197,   198,   132,    63,   132,   313,   114,
    4118      177,   115,   132,   135,   135,    96,   270,   271,   110,   300,
    4119      116,   132,   116,   132,   115,   298,   130,   141,   110,   110,
    4120      130,   134,   115,   112,   148,   112,   111,   148,   111,   148,
    4121      112,   265,   112,   265,   265,   265,   135,   135,   112,   112,
    4122      110,   110,   112,   116,    96,   264,    96,   135,   112,   112,
    4123      110,   110,   109,   110,   172,   193,   214,   132,   110,   109,
    4124      109,   175,   198,    58,    59,   166,   173,   145,   110,   110,
    4125      114,   134,   134,   299,   141,   205,   109,   132,   205,   265,
    4126      134,   134,   135,   135,   135,   135,   112,   112,   134,   135,
    4127      112,   173,    44,    45,   114,   183,   184,   185,   171,   173,
    4128      135,   110,   172,   114,   185,    96,   134,    96,   134,   109,
    4129      109,   132,   115,   134,   273,   310,   115,   116,   130,   165,
    4130      110,   135,   147,   147,   110,   110,   110,   110,   268,    42,
    4131      165,   181,   182,   311,   130,   134,   173,   183,   110,   132,
    4132      173,   132,   134,   110,   134,   110,   134,    96,   134,    96,
    4133      134,   132,   299,   141,   139,   206,   110,   132,   110,   135,
    4134      135,   173,    96,   116,   130,   135,   207,   208,   214,   132,
    4135      172,   172,   207,   175,   199,   227,   367,   175,   199,   110,
    4136      134,   110,   134,   115,   110,   116,   112,   112,   165,   181,
    4137      184,   186,   187,   134,   132,   184,   188,   189,   135,   109,
    4138      151,   310,   358,   139,   135,   175,   199,   175,   199,   109,
    4139      132,   139,   173,   178,   115,   184,   214,   172,    56,   178,
    4140      191,   115,   184,   110,   229,   110,   135,   135,   293,   173,
    4141      178,   132,   190,   191,   178,   191,   175,   175,   110,   110,
    4142      110,   190,   135,   135,   175,   175,   135,   135
     3867      76,    85,    86,   111,   113,   119,   120,   139,   142,   154,
     3868     203,   217,   218,   219,   220,   221,   222,   223,   224,   225,
     3869     226,   227,   228,   229,   230,   231,   232,   233,   234,   236,
     3870     237,   238,   239,   240,   241,   242,   244,   245,   246,   247,
     3871     248,   249,   251,   259,   260,   287,   288,   289,   297,   300,
     3872     306,   307,   309,   311,   312,   318,   323,   327,   328,   329,
     3873     330,   331,   332,   333,   334,   354,   371,   372,   373,   374,
     3874      72,   141,   142,   154,   220,   222,   230,   232,   241,   245,
     3875     247,   288,    81,   111,   316,   317,   318,   316,   316,    72,
     3876      74,    75,    76,   140,   141,   277,   278,   298,   299,    74,
     3877      75,   278,   111,   309,    11,   204,   111,   154,   323,   328,
     3878     329,   330,   332,   333,   334,   114,   136,   223,   230,   232,
     3879     327,   331,   370,   371,   374,   375,   137,   109,   133,   281,
     3880     116,   137,   178,    74,    75,   139,   276,   137,   137,   137,
     3881     118,   137,    74,    75,   111,   154,   313,   322,   323,   324,
     3882     325,   326,   327,   331,   335,   336,   337,   338,   339,   345,
     3883       3,    28,    78,   243,     3,     5,    74,   113,   154,   222,
     3884     233,   237,   239,   248,   289,   327,   331,   374,   220,   222,
     3885     232,   241,   245,   247,   288,   327,   331,    33,   238,   238,
     3886     233,   239,   137,   238,   233,   238,   233,    75,   111,   116,
     3887     278,   289,   116,   278,   238,   233,   118,   137,   137,     0,
     3888     136,   111,   178,   316,   316,   136,   113,   230,   232,   372,
     3889     276,   276,   133,   232,   111,   154,   313,   323,   327,   113,
     3890     154,   374,   310,   235,   318,   111,   294,   111,   111,    51,
     3891     111,    37,    38,    40,    66,    72,    76,    79,    80,    81,
     3892      82,    83,    84,    88,    89,   111,   113,   121,   122,   123,
     3893     124,   138,   142,   143,   144,   145,   146,   153,   154,   155,
     3894     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
     3895     166,   167,   169,   172,   230,   280,   296,   370,   375,   232,
     3896     112,   112,   112,   112,   112,   112,   112,   113,   230,   354,
     3897     372,   113,   119,   154,   169,   222,   223,   229,   232,   236,
     3898     237,   241,   244,   245,   247,   266,   267,   271,   272,   273,
     3899     274,   288,   354,   366,   367,   368,   369,   374,   375,   111,
     3900     327,   331,   374,   111,   118,   134,   113,   116,   154,   169,
     3901     282,   282,   117,   136,   118,   134,   111,   118,   134,   118,
     3902     134,   118,   134,   316,   134,   323,   324,   325,   326,   336,
     3903     337,   338,   339,   232,   322,   335,    64,   315,   113,   316,
     3904     353,   354,   316,   316,   178,   136,   111,   316,   353,   316,
     3905     316,   232,   313,   111,   111,   231,   232,   230,   232,   136,
     3906     230,   370,   375,   178,   136,   276,   281,   222,   237,   327,
     3907     331,   178,   136,   298,   232,   241,   134,   232,   232,   296,
     3908     252,   250,   262,   278,   261,   232,   298,   134,   134,   309,
     3909     136,   141,   275,     3,   137,   212,   213,   227,   229,   232,
     3910     136,   315,   111,   315,   169,   323,   232,   111,   136,   276,
     3911     116,    33,    34,    35,   230,   290,   291,   293,   136,   130,
     3912     133,   295,   136,   233,   238,   239,   276,   319,   320,   321,
     3913     111,   143,   111,   153,   111,   153,   156,   111,   153,   111,
     3914     111,   153,   153,   113,   169,   174,   178,   230,   279,   370,
     3915     374,   136,    81,    83,    87,    88,    89,   111,   113,   115,
     3916     116,    99,   100,   101,   102,   103,   104,   105,   106,   107,
     3917     108,   109,   133,   171,   156,   156,   119,   125,   126,   121,
     3918     122,    90,    91,    92,    93,   127,   128,    94,    95,   120,
     3919     129,   130,    96,    97,   131,   111,   154,   349,   350,   351,
     3920     352,   353,   112,   118,   111,   353,   354,   111,   353,   354,
     3921     136,   230,   372,   114,   136,   137,   230,   232,   365,   366,
     3922     374,   375,   137,   111,   113,   154,   323,   340,   341,   342,
     3923     343,   344,   345,   346,   347,   348,   354,   355,   356,   357,
     3924     358,   359,   360,   154,   374,   232,   137,   137,   154,   230,
     3925     232,   367,   276,   230,   354,   367,   276,   136,   136,   136,
     3926     136,    72,   113,   115,   142,   278,   282,   283,   284,   285,
     3927     286,   136,   136,   136,   136,   136,   136,   313,   112,   112,
     3928     112,   112,   112,   112,   112,   322,   335,   111,   281,   114,
     3929     212,   136,   313,   174,   280,   174,   280,   313,   113,   212,
     3930     315,   178,   136,   212,   112,    40,   113,   117,   230,   253,
     3931     254,   255,   370,   116,   118,   376,   133,   263,   116,   232,
     3932     268,   269,   270,   273,   274,   112,   118,   178,   136,   119,
     3933     169,   136,   229,   232,   267,   366,   374,   307,   308,   111,
     3934     154,   340,   112,   118,   133,   377,   278,   290,   111,   116,
     3935     278,   280,   290,   112,   118,   111,   143,   112,   132,   279,
     3936     279,   279,   148,   169,   280,   279,   136,   112,   118,   112,
     3937     111,   154,   353,   361,   362,   363,   364,   112,   118,   169,
     3938     113,   141,   147,   148,   136,   113,   141,   147,   169,   156,
     3939     156,   156,   157,   157,   158,   158,   159,   159,   159,   159,
     3940     160,   160,   161,   162,   163,   164,   165,   132,   174,   136,
     3941     350,   351,   352,   232,   349,   316,   316,   169,   280,   136,
     3942     275,   230,   354,   367,   232,   236,   114,   374,   114,   111,
     3943     136,   323,   341,   342,   343,   346,   356,   357,   358,   114,
     3944     136,   232,   340,   344,   355,   111,   316,   359,   377,   316,
     3945     316,   377,   111,   316,   359,   316,   316,   316,   316,   354,
     3946     230,   365,   375,   276,   114,   118,   114,   118,   377,   230,
     3947     367,   377,   264,   265,   266,   267,   264,   276,   169,   136,
     3948     113,   278,   132,   118,   376,   282,   113,   132,   286,    29,
     3949     214,   215,   276,   264,   141,   313,   141,   315,   111,   353,
     3950     354,   111,   353,   354,   144,   354,   178,   268,   112,   112,
     3951     112,   112,   136,   178,   212,   178,   116,   254,   255,   136,
     3952     111,   132,   154,   256,   258,   322,   323,   335,   361,   118,
     3953     134,   118,   134,   278,   252,   278,   117,   167,   168,   262,
     3954     137,   137,   141,   227,   137,   137,   264,   111,   154,   374,
     3955     137,   117,   232,   291,   169,   292,   137,   136,   136,   111,
     3956     137,   112,   320,   174,   175,   132,   134,   113,   143,   205,
     3957     206,   207,   112,   118,   112,   112,   112,   112,   169,   362,
     3958     363,   364,   232,   361,   316,   316,   116,   156,   169,   170,
     3959     173,   118,   136,   112,   118,   169,   136,   117,   167,   132,
     3960     268,   112,   112,   112,   349,   268,   112,   230,   367,   113,
     3961     119,   154,   169,   169,   232,   346,   268,   112,   112,   112,
     3962     112,   112,   112,   112,     7,   232,   340,   344,   355,   136,
     3963     136,   377,   136,   136,   137,   137,   137,   137,   281,   167,
     3964     168,   169,   314,   136,   282,   284,   117,   136,   216,   278,
     3965      40,    41,    43,    46,    47,    48,    49,    50,    51,    52,
     3966      53,    57,    61,    62,    72,   129,   175,   176,   177,   178,
     3967     179,   180,   182,   183,   195,   197,   198,   203,   217,   312,
     3968      29,   137,   133,   281,   136,   136,   112,   137,   178,   252,
     3969     134,   134,   323,   168,   232,   257,   258,   257,   278,   316,
     3970     117,   263,   376,   112,   118,   114,   114,   137,   232,   118,
     3971     377,   294,   112,   290,   220,   222,   230,   302,   303,   304,
     3972     305,   296,   112,   112,   132,   168,   111,   112,   132,   118,
     3973     141,   112,   112,   112,   361,   283,   118,   137,   173,    79,
     3974      82,    84,   141,   149,   150,   151,   148,   137,   149,   167,
     3975     137,   111,   353,   354,   137,   136,   137,   137,   137,   169,
     3976     112,   137,   111,   353,   354,   111,   359,   111,   359,   354,
     3977     231,     7,   119,   137,   169,   268,   268,   267,   271,   271,
     3978     272,   112,   118,   118,   112,    98,   124,   137,   137,   149,
     3979     282,   169,   118,   134,   217,   221,   232,   236,   111,   111,
     3980     176,   111,   111,    72,   134,    72,   134,    72,   119,   175,
     3981     111,   178,   170,   170,   132,   146,   134,   137,   136,   137,
     3982     216,   112,   169,   268,   268,   316,   112,   117,   256,   117,
     3983     136,   112,   136,   137,   313,   117,   136,   137,   137,   112,
     3984     116,   205,   114,   168,   134,   205,   207,   112,   111,   353,
     3985     354,   376,   170,   114,   137,   152,   113,   150,   152,   152,
     3986     118,   137,    87,   115,   114,   137,   112,   136,   112,   114,
     3987     114,   114,   137,   112,   136,   136,   136,   169,   169,   137,
     3988     114,   137,   137,   137,   137,   136,   136,   168,   168,   114,
     3989     114,   137,   278,   232,   174,   174,    47,   174,   136,   134,
     3990     134,   134,   174,   134,   174,    58,    59,    60,   199,   200,
     3991     201,   134,    63,   134,   316,   116,   180,   117,   134,   137,
     3992     137,    98,   273,   274,   112,   303,   118,   134,   118,   134,
     3993     117,   301,   132,   143,   112,   112,   132,   136,   117,   114,
     3994      83,   136,   150,   114,   113,   150,   113,   150,   114,   268,
     3995     114,   268,   268,   268,   137,   137,   114,   114,   112,   112,
     3996     114,   118,    98,   267,    98,   137,   114,   112,   112,   111,
     3997     112,   175,   196,   217,   134,   112,   111,   111,   178,   201,
     3998      58,    59,   169,   176,   147,   112,   112,   116,   136,   136,
     3999     302,   143,   208,   111,   134,   208,   268,   149,   136,   136,
     4000     137,   137,   137,   137,   114,   114,   136,   137,   114,   176,
     4001      44,    45,   116,   186,   187,   188,   174,   176,   137,   112,
     4002     175,   116,   188,    98,   136,    98,   136,   111,   111,   134,
     4003     117,   136,   276,   313,   117,   118,   132,   168,   112,   137,
     4004     137,   149,   149,   112,   112,   112,   112,   271,    42,   168,
     4005     184,   185,   314,   132,   136,   176,   186,   112,   134,   176,
     4006     134,   136,   112,   136,   112,   136,    98,   136,    98,   136,
     4007     134,   302,   143,   141,   209,   112,   134,   112,   114,   137,
     4008     137,   176,    98,   118,   132,   137,   210,   211,   217,   134,
     4009     175,   175,   210,   178,   202,   230,   370,   178,   202,   112,
     4010     136,   112,   136,   117,   112,   118,   114,   114,   168,   184,
     4011     187,   189,   190,   136,   134,   187,   191,   192,   137,   111,
     4012     154,   313,   361,   141,   137,   178,   202,   178,   202,   111,
     4013     134,   141,   176,   181,   117,   187,   217,   175,    56,   181,
     4014     194,   117,   187,   112,   232,   112,   137,   137,   296,   176,
     4015     181,   134,   193,   194,   181,   194,   178,   178,   112,   112,
     4016     112,   193,   137,   137,   178,   178,   137,   137
    41434017};
    41444018
     
    49774851
    49784852/* Line 1806 of yacc.c  */
    4979 #line 301 "parser.yy"
     4853#line 305 "parser.yy"
    49804854    { typedefTable.enterScope(); }
    49814855    break;
     
    49844858
    49854859/* Line 1806 of yacc.c  */
    4986 #line 305 "parser.yy"
     4860#line 309 "parser.yy"
    49874861    { typedefTable.leaveScope(); }
    49884862    break;
     
    49914865
    49924866/* Line 1806 of yacc.c  */
    4993 #line 312 "parser.yy"
     4867#line 316 "parser.yy"
    49944868    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    49954869    break;
     
    49984872
    49994873/* Line 1806 of yacc.c  */
    5000 #line 313 "parser.yy"
     4874#line 317 "parser.yy"
    50014875    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    50024876    break;
     
    50054879
    50064880/* Line 1806 of yacc.c  */
    5007 #line 314 "parser.yy"
     4881#line 318 "parser.yy"
     4882    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4883    break;
     4884
     4885  case 7:
     4886
     4887/* Line 1806 of yacc.c  */
     4888#line 319 "parser.yy"
     4889    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
     4890    break;
     4891
     4892  case 8:
     4893
     4894/* Line 1806 of yacc.c  */
     4895#line 320 "parser.yy"
    50084896    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    50094897    break;
    50104898
    5011   case 16:
    5012 
    5013 /* Line 1806 of yacc.c  */
    5014 #line 339 "parser.yy"
     4899  case 18:
     4900
     4901/* Line 1806 of yacc.c  */
     4902#line 345 "parser.yy"
    50154903    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    50164904    break;
    50174905
    5018   case 17:
    5019 
    5020 /* Line 1806 of yacc.c  */
    5021 #line 343 "parser.yy"
     4906  case 19:
     4907
     4908/* Line 1806 of yacc.c  */
     4909#line 349 "parser.yy"
    50224910    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    50234911    break;
    50244912
    5025   case 18:
    5026 
    5027 /* Line 1806 of yacc.c  */
    5028 #line 345 "parser.yy"
     4913  case 20:
     4914
     4915/* Line 1806 of yacc.c  */
     4916#line 351 "parser.yy"
    50294917    {
    50304918                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    50344922    break;
    50354923
    5036   case 19:
    5037 
    5038 /* Line 1806 of yacc.c  */
    5039 #line 356 "parser.yy"
     4924  case 21:
     4925
     4926/* Line 1806 of yacc.c  */
     4927#line 362 "parser.yy"
    50404928    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50414929    break;
    50424930
    5043   case 20:
    5044 
    5045 /* Line 1806 of yacc.c  */
    5046 #line 358 "parser.yy"
     4931  case 22:
     4932
     4933/* Line 1806 of yacc.c  */
     4934#line 364 "parser.yy"
    50474935    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50484936    break;
    50494937
    5050   case 21:
    5051 
    5052 /* Line 1806 of yacc.c  */
    5053 #line 360 "parser.yy"
     4938  case 24:
     4939
     4940/* Line 1806 of yacc.c  */
     4941#line 367 "parser.yy"
    50544942    { (yyval.en) = (yyvsp[(2) - (3)].en); }
    50554943    break;
    50564944
    5057   case 22:
    5058 
    5059 /* Line 1806 of yacc.c  */
    5060 #line 362 "parser.yy"
     4945  case 25:
     4946
     4947/* Line 1806 of yacc.c  */
     4948#line 369 "parser.yy"
    50614949    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    50624950    break;
    50634951
    5064   case 24:
    5065 
    5066 /* Line 1806 of yacc.c  */
    5067 #line 372 "parser.yy"
     4952  case 27:
     4953
     4954/* Line 1806 of yacc.c  */
     4955#line 379 "parser.yy"
    50684956    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    50694957    break;
    50704958
    5071   case 25:
    5072 
    5073 /* Line 1806 of yacc.c  */
    5074 #line 374 "parser.yy"
     4959  case 28:
     4960
     4961/* Line 1806 of yacc.c  */
     4962#line 381 "parser.yy"
    50754963    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
    50764964    break;
    50774965
    5078   case 26:
    5079 
    5080 /* Line 1806 of yacc.c  */
    5081 #line 378 "parser.yy"
     4966  case 29:
     4967
     4968/* Line 1806 of yacc.c  */
     4969#line 383 "parser.yy"
    50824970    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    50834971    break;
    50844972
    5085   case 27:
    5086 
    5087 /* Line 1806 of yacc.c  */
    5088 #line 380 "parser.yy"
     4973  case 30:
     4974
     4975/* Line 1806 of yacc.c  */
     4976#line 385 "parser.yy"
    50894977    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    50904978    break;
    50914979
    5092   case 28:
    5093 
    5094 /* Line 1806 of yacc.c  */
    5095 #line 382 "parser.yy"
    5096     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_constantInteger( *(yyvsp[(3) - (3)].tok) ) ) ); }
    5097     break;
    5098 
    5099   case 29:
    5100 
    5101 /* Line 1806 of yacc.c  */
    5102 #line 384 "parser.yy"
     4980  case 31:
     4981
     4982/* Line 1806 of yacc.c  */
     4983#line 387 "parser.yy"
     4984    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_constantInteger( *(yyvsp[(2) - (2)].tok) ) ) ); }
     4985    break;
     4986
     4987  case 32:
     4988
     4989/* Line 1806 of yacc.c  */
     4990#line 389 "parser.yy"
    51034991    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    51044992    break;
    51054993
    5106   case 30:
    5107 
    5108 /* Line 1806 of yacc.c  */
    5109 #line 386 "parser.yy"
     4994  case 33:
     4995
     4996/* Line 1806 of yacc.c  */
     4997#line 391 "parser.yy"
    51104998    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    51114999    break;
    51125000
    5113   case 31:
    5114 
    5115 /* Line 1806 of yacc.c  */
    5116 #line 388 "parser.yy"
     5001  case 34:
     5002
     5003/* Line 1806 of yacc.c  */
     5004#line 393 "parser.yy"
    51175005    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    51185006    break;
    51195007
    5120   case 32:
    5121 
    5122 /* Line 1806 of yacc.c  */
    5123 #line 390 "parser.yy"
     5008  case 35:
     5009
     5010/* Line 1806 of yacc.c  */
     5011#line 395 "parser.yy"
    51245012    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    51255013    break;
    51265014
    5127   case 33:
    5128 
    5129 /* Line 1806 of yacc.c  */
    5130 #line 392 "parser.yy"
     5015  case 36:
     5016
     5017/* Line 1806 of yacc.c  */
     5018#line 397 "parser.yy"
    51315019    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    51325020    break;
    51335021
    5134   case 34:
    5135 
    5136 /* Line 1806 of yacc.c  */
    5137 #line 394 "parser.yy"
     5022  case 37:
     5023
     5024/* Line 1806 of yacc.c  */
     5025#line 399 "parser.yy"
    51385026    {
    51395027                        Token fn;
     
    51435031    break;
    51445032
    5145   case 36:
    5146 
    5147 /* Line 1806 of yacc.c  */
    5148 #line 404 "parser.yy"
     5033  case 39:
     5034
     5035/* Line 1806 of yacc.c  */
     5036#line 409 "parser.yy"
    51495037    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    51505038    break;
    51515039
    5152   case 37:
    5153 
    5154 /* Line 1806 of yacc.c  */
    5155 #line 409 "parser.yy"
     5040  case 40:
     5041
     5042/* Line 1806 of yacc.c  */
     5043#line 414 "parser.yy"
    51565044    { (yyval.en) = 0; }
    51575045    break;
    51585046
    5159   case 40:
    5160 
    5161 /* Line 1806 of yacc.c  */
    5162 #line 415 "parser.yy"
     5047  case 43:
     5048
     5049/* Line 1806 of yacc.c  */
     5050#line 420 "parser.yy"
    51635051    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    51645052    break;
    51655053
    5166   case 42:
    5167 
    5168 /* Line 1806 of yacc.c  */
    5169 #line 423 "parser.yy"
     5054  case 45:
     5055
     5056/* Line 1806 of yacc.c  */
     5057#line 426 "parser.yy"
     5058    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); }
     5059    break;
     5060
     5061  case 46:
     5062
     5063/* Line 1806 of yacc.c  */
     5064#line 428 "parser.yy"
     5065    { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); }
     5066    break;
     5067
     5068  case 47:
     5069
     5070/* Line 1806 of yacc.c  */
     5071#line 430 "parser.yy"
    51705072    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    51715073    break;
    51725074
    5173   case 43:
    5174 
    5175 /* Line 1806 of yacc.c  */
    5176 #line 425 "parser.yy"
     5075  case 48:
     5076
     5077/* Line 1806 of yacc.c  */
     5078#line 432 "parser.yy"
    51775079    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    51785080    break;
    51795081
    5180   case 44:
    5181 
    5182 /* Line 1806 of yacc.c  */
    5183 #line 427 "parser.yy"
     5082  case 49:
     5083
     5084/* Line 1806 of yacc.c  */
     5085#line 434 "parser.yy"
    51845086    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    51855087    break;
    51865088
    5187   case 45:
    5188 
    5189 /* Line 1806 of yacc.c  */
    5190 #line 429 "parser.yy"
     5089  case 50:
     5090
     5091/* Line 1806 of yacc.c  */
     5092#line 436 "parser.yy"
    51915093    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    51925094    break;
    51935095
    5194   case 46:
    5195 
    5196 /* Line 1806 of yacc.c  */
    5197 #line 434 "parser.yy"
    5198     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    5199     break;
    5200 
    5201   case 47:
    5202 
    5203 /* Line 1806 of yacc.c  */
    5204 #line 437 "parser.yy"
    5205     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    5206     break;
    5207 
    5208   case 49:
     5096  case 51:
     5097
     5098/* Line 1806 of yacc.c  */
     5099#line 441 "parser.yy"
     5100    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (2)].tok) ) ); }
     5101    break;
     5102
     5103  case 52:
     5104
     5105/* Line 1806 of yacc.c  */
     5106#line 443 "parser.yy"
     5107    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (2)].tok) ) ); }
     5108    break;
     5109
     5110  case 53:
    52095111
    52105112/* Line 1806 of yacc.c  */
    52115113#line 445 "parser.yy"
     5114    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     5115    break;
     5116
     5117  case 57:
     5118
     5119/* Line 1806 of yacc.c  */
     5120#line 458 "parser.yy"
    52125121    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    52135122    break;
    52145123
    5215   case 50:
    5216 
    5217 /* Line 1806 of yacc.c  */
    5218 #line 447 "parser.yy"
     5124  case 58:
     5125
     5126/* Line 1806 of yacc.c  */
     5127#line 460 "parser.yy"
    52195128    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    52205129    break;
    52215130
    5222   case 51:
    5223 
    5224 /* Line 1806 of yacc.c  */
    5225 #line 449 "parser.yy"
     5131  case 59:
     5132
     5133/* Line 1806 of yacc.c  */
     5134#line 462 "parser.yy"
    52265135    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    52275136    break;
    52285137
    5229   case 52:
    5230 
    5231 /* Line 1806 of yacc.c  */
    5232 #line 454 "parser.yy"
     5138  case 60:
     5139
     5140/* Line 1806 of yacc.c  */
     5141#line 467 "parser.yy"
    52335142    {
    52345143                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    52455154    break;
    52465155
    5247   case 53:
    5248 
    5249 /* Line 1806 of yacc.c  */
    5250 #line 467 "parser.yy"
     5156  case 61:
     5157
     5158/* Line 1806 of yacc.c  */
     5159#line 480 "parser.yy"
    52515160    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
    52525161    break;
    52535162
    5254   case 54:
    5255 
    5256 /* Line 1806 of yacc.c  */
    5257 #line 469 "parser.yy"
     5163  case 62:
     5164
     5165/* Line 1806 of yacc.c  */
     5166#line 482 "parser.yy"
    52585167    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
    52595168    break;
    52605169
    5261   case 55:
    5262 
    5263 /* Line 1806 of yacc.c  */
    5264 #line 471 "parser.yy"
     5170  case 63:
     5171
     5172/* Line 1806 of yacc.c  */
     5173#line 484 "parser.yy"
    52655174    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
    52665175    break;
    52675176
    5268   case 56:
    5269 
    5270 /* Line 1806 of yacc.c  */
    5271 #line 473 "parser.yy"
     5177  case 64:
     5178
     5179/* Line 1806 of yacc.c  */
     5180#line 486 "parser.yy"
    52725181    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52735182    break;
    52745183
    5275   case 57:
    5276 
    5277 /* Line 1806 of yacc.c  */
    5278 #line 475 "parser.yy"
     5184  case 65:
     5185
     5186/* Line 1806 of yacc.c  */
     5187#line 488 "parser.yy"
    52795188    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52805189    break;
    52815190
    5282   case 58:
    5283 
    5284 /* Line 1806 of yacc.c  */
    5285 #line 477 "parser.yy"
     5191  case 66:
     5192
     5193/* Line 1806 of yacc.c  */
     5194#line 490 "parser.yy"
    52865195    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
    52875196    break;
    52885197
    5289   case 59:
    5290 
    5291 /* Line 1806 of yacc.c  */
    5292 #line 479 "parser.yy"
     5198  case 67:
     5199
     5200/* Line 1806 of yacc.c  */
     5201#line 492 "parser.yy"
    52935202    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
    52945203    break;
    52955204
    5296   case 60:
    5297 
    5298 /* Line 1806 of yacc.c  */
    5299 #line 481 "parser.yy"
     5205  case 68:
     5206
     5207/* Line 1806 of yacc.c  */
     5208#line 494 "parser.yy"
    53005209    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
    53015210    break;
    53025211
    5303   case 61:
    5304 
    5305 /* Line 1806 of yacc.c  */
    5306 #line 483 "parser.yy"
     5212  case 69:
     5213
     5214/* Line 1806 of yacc.c  */
     5215#line 496 "parser.yy"
    53075216    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    53085217    break;
    53095218
    5310   case 62:
    5311 
    5312 /* Line 1806 of yacc.c  */
    5313 #line 485 "parser.yy"
     5219  case 70:
     5220
     5221/* Line 1806 of yacc.c  */
     5222#line 498 "parser.yy"
    53145223    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    53155224    break;
    53165225
    5317   case 63:
    5318 
    5319 /* Line 1806 of yacc.c  */
    5320 #line 487 "parser.yy"
     5226  case 71:
     5227
     5228/* Line 1806 of yacc.c  */
     5229#line 500 "parser.yy"
    53215230    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    53225231    break;
    53235232
    5324   case 64:
    5325 
    5326 /* Line 1806 of yacc.c  */
    5327 #line 493 "parser.yy"
     5233  case 72:
     5234
     5235/* Line 1806 of yacc.c  */
     5236#line 506 "parser.yy"
    53285237    { (yyval.op) = OperKinds::PointTo; }
    53295238    break;
    53305239
    5331   case 65:
    5332 
    5333 /* Line 1806 of yacc.c  */
    5334 #line 494 "parser.yy"
     5240  case 73:
     5241
     5242/* Line 1806 of yacc.c  */
     5243#line 507 "parser.yy"
    53355244    { (yyval.op) = OperKinds::AddressOf; }
    53365245    break;
    53375246
    5338   case 66:
    5339 
    5340 /* Line 1806 of yacc.c  */
    5341 #line 500 "parser.yy"
     5247  case 74:
     5248
     5249/* Line 1806 of yacc.c  */
     5250#line 513 "parser.yy"
    53425251    { (yyval.op) = OperKinds::UnPlus; }
    53435252    break;
    53445253
    5345   case 67:
    5346 
    5347 /* Line 1806 of yacc.c  */
    5348 #line 501 "parser.yy"
     5254  case 75:
     5255
     5256/* Line 1806 of yacc.c  */
     5257#line 514 "parser.yy"
    53495258    { (yyval.op) = OperKinds::UnMinus; }
    53505259    break;
    53515260
    5352   case 68:
    5353 
    5354 /* Line 1806 of yacc.c  */
    5355 #line 502 "parser.yy"
     5261  case 76:
     5262
     5263/* Line 1806 of yacc.c  */
     5264#line 515 "parser.yy"
    53565265    { (yyval.op) = OperKinds::Neg; }
    53575266    break;
    53585267
    5359   case 69:
    5360 
    5361 /* Line 1806 of yacc.c  */
    5362 #line 503 "parser.yy"
     5268  case 77:
     5269
     5270/* Line 1806 of yacc.c  */
     5271#line 516 "parser.yy"
    53635272    { (yyval.op) = OperKinds::BitNeg; }
    53645273    break;
    53655274
    5366   case 71:
    5367 
    5368 /* Line 1806 of yacc.c  */
    5369 #line 509 "parser.yy"
     5275  case 79:
     5276
     5277/* Line 1806 of yacc.c  */
     5278#line 522 "parser.yy"
    53705279    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    53715280    break;
    53725281
    5373   case 72:
    5374 
    5375 /* Line 1806 of yacc.c  */
    5376 #line 511 "parser.yy"
    5377     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    5378     break;
    5379 
    5380   case 74:
    5381 
    5382 /* Line 1806 of yacc.c  */
    5383 #line 517 "parser.yy"
     5282  case 81:
     5283
     5284/* Line 1806 of yacc.c  */
     5285#line 530 "parser.yy"
    53845286    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53855287    break;
    53865288
    5387   case 75:
    5388 
    5389 /* Line 1806 of yacc.c  */
    5390 #line 519 "parser.yy"
     5289  case 82:
     5290
     5291/* Line 1806 of yacc.c  */
     5292#line 532 "parser.yy"
    53915293    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53925294    break;
    53935295
    5394   case 76:
    5395 
    5396 /* Line 1806 of yacc.c  */
    5397 #line 521 "parser.yy"
     5296  case 83:
     5297
     5298/* Line 1806 of yacc.c  */
     5299#line 534 "parser.yy"
    53985300    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53995301    break;
    54005302
    5401   case 78:
    5402 
    5403 /* Line 1806 of yacc.c  */
    5404 #line 527 "parser.yy"
     5303  case 85:
     5304
     5305/* Line 1806 of yacc.c  */
     5306#line 540 "parser.yy"
    54055307    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54065308    break;
    54075309
    5408   case 79:
    5409 
    5410 /* Line 1806 of yacc.c  */
    5411 #line 529 "parser.yy"
     5310  case 86:
     5311
     5312/* Line 1806 of yacc.c  */
     5313#line 542 "parser.yy"
    54125314    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54135315    break;
    54145316
    5415   case 81:
    5416 
    5417 /* Line 1806 of yacc.c  */
    5418 #line 535 "parser.yy"
     5317  case 88:
     5318
     5319/* Line 1806 of yacc.c  */
     5320#line 548 "parser.yy"
    54195321    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54205322    break;
    54215323
    5422   case 82:
    5423 
    5424 /* Line 1806 of yacc.c  */
    5425 #line 537 "parser.yy"
     5324  case 89:
     5325
     5326/* Line 1806 of yacc.c  */
     5327#line 550 "parser.yy"
    54265328    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54275329    break;
    54285330
    5429   case 84:
    5430 
    5431 /* Line 1806 of yacc.c  */
    5432 #line 543 "parser.yy"
     5331  case 91:
     5332
     5333/* Line 1806 of yacc.c  */
     5334#line 556 "parser.yy"
    54335335    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54345336    break;
    54355337
    5436   case 85:
    5437 
    5438 /* Line 1806 of yacc.c  */
    5439 #line 545 "parser.yy"
     5338  case 92:
     5339
     5340/* Line 1806 of yacc.c  */
     5341#line 558 "parser.yy"
    54405342    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54415343    break;
    54425344
    5443   case 86:
    5444 
    5445 /* Line 1806 of yacc.c  */
    5446 #line 547 "parser.yy"
     5345  case 93:
     5346
     5347/* Line 1806 of yacc.c  */
     5348#line 560 "parser.yy"
    54475349    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54485350    break;
    54495351
    5450   case 87:
    5451 
    5452 /* Line 1806 of yacc.c  */
    5453 #line 549 "parser.yy"
     5352  case 94:
     5353
     5354/* Line 1806 of yacc.c  */
     5355#line 562 "parser.yy"
    54545356    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54555357    break;
    54565358
    5457   case 89:
    5458 
    5459 /* Line 1806 of yacc.c  */
    5460 #line 555 "parser.yy"
     5359  case 96:
     5360
     5361/* Line 1806 of yacc.c  */
     5362#line 568 "parser.yy"
    54615363    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54625364    break;
    54635365
    5464   case 90:
    5465 
    5466 /* Line 1806 of yacc.c  */
    5467 #line 557 "parser.yy"
     5366  case 97:
     5367
     5368/* Line 1806 of yacc.c  */
     5369#line 570 "parser.yy"
    54685370    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54695371    break;
    54705372
    5471   case 92:
    5472 
    5473 /* Line 1806 of yacc.c  */
    5474 #line 563 "parser.yy"
     5373  case 99:
     5374
     5375/* Line 1806 of yacc.c  */
     5376#line 576 "parser.yy"
    54755377    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54765378    break;
    54775379
    5478   case 94:
    5479 
    5480 /* Line 1806 of yacc.c  */
    5481 #line 569 "parser.yy"
     5380  case 101:
     5381
     5382/* Line 1806 of yacc.c  */
     5383#line 582 "parser.yy"
    54825384    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54835385    break;
    54845386
    5485   case 96:
    5486 
    5487 /* Line 1806 of yacc.c  */
    5488 #line 575 "parser.yy"
     5387  case 103:
     5388
     5389/* Line 1806 of yacc.c  */
     5390#line 588 "parser.yy"
    54895391    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    54905392    break;
    54915393
    5492   case 98:
    5493 
    5494 /* Line 1806 of yacc.c  */
    5495 #line 581 "parser.yy"
     5394  case 105:
     5395
     5396/* Line 1806 of yacc.c  */
     5397#line 594 "parser.yy"
    54965398    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
    54975399    break;
    54985400
    5499   case 100:
    5500 
    5501 /* Line 1806 of yacc.c  */
    5502 #line 587 "parser.yy"
     5401  case 107:
     5402
     5403/* Line 1806 of yacc.c  */
     5404#line 600 "parser.yy"
    55035405    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
    55045406    break;
    55055407
    5506   case 102:
    5507 
    5508 /* Line 1806 of yacc.c  */
    5509 #line 593 "parser.yy"
     5408  case 109:
     5409
     5410/* Line 1806 of yacc.c  */
     5411#line 606 "parser.yy"
    55105412    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    55115413    break;
    55125414
    5513   case 103:
    5514 
    5515 /* Line 1806 of yacc.c  */
    5516 #line 596 "parser.yy"
     5415  case 110:
     5416
     5417/* Line 1806 of yacc.c  */
     5418#line 609 "parser.yy"
    55175419    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
    55185420    break;
    55195421
    5520   case 104:
    5521 
    5522 /* Line 1806 of yacc.c  */
    5523 #line 598 "parser.yy"
    5524     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    5525     break;
    5526 
    5527   case 107:
    5528 
    5529 /* Line 1806 of yacc.c  */
    5530 #line 609 "parser.yy"
     5422  case 113:
     5423
     5424/* Line 1806 of yacc.c  */
     5425#line 622 "parser.yy"
    55315426    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55325427    break;
    55335428
    5534   case 108:
    5535 
    5536 /* Line 1806 of yacc.c  */
    5537 #line 611 "parser.yy"
    5538     { (yyval.en) = ( (yyvsp[(2) - (2)].en) == 0 ) ? (yyvsp[(1) - (2)].en) : new ExpressionNode( build_binary_ptr( OperKinds::Assign, (yyvsp[(1) - (2)].en), (yyvsp[(2) - (2)].en) ) ); }
    5539     break;
    5540 
    5541   case 109:
    5542 
    5543 /* Line 1806 of yacc.c  */
    5544 #line 616 "parser.yy"
     5429  case 114:
     5430
     5431/* Line 1806 of yacc.c  */
     5432#line 629 "parser.yy"
    55455433    { (yyval.en) = nullptr; }
    55465434    break;
    55475435
    5548   case 111:
    5549 
    5550 /* Line 1806 of yacc.c  */
    5551 #line 621 "parser.yy"
     5436  case 116:
     5437
     5438/* Line 1806 of yacc.c  */
     5439#line 634 "parser.yy"
    55525440    { (yyval.op) = OperKinds::Assign; }
    55535441    break;
    55545442
    5555   case 112:
    5556 
    5557 /* Line 1806 of yacc.c  */
    5558 #line 622 "parser.yy"
     5443  case 117:
     5444
     5445/* Line 1806 of yacc.c  */
     5446#line 635 "parser.yy"
    55595447    { (yyval.op) = OperKinds::AtAssn; }
    55605448    break;
    55615449
    5562   case 113:
    5563 
    5564 /* Line 1806 of yacc.c  */
    5565 #line 623 "parser.yy"
     5450  case 118:
     5451
     5452/* Line 1806 of yacc.c  */
     5453#line 636 "parser.yy"
    55665454    { (yyval.op) = OperKinds::MulAssn; }
    55675455    break;
    55685456
    5569   case 114:
    5570 
    5571 /* Line 1806 of yacc.c  */
    5572 #line 624 "parser.yy"
     5457  case 119:
     5458
     5459/* Line 1806 of yacc.c  */
     5460#line 637 "parser.yy"
    55735461    { (yyval.op) = OperKinds::DivAssn; }
    55745462    break;
    55755463
    5576   case 115:
    5577 
    5578 /* Line 1806 of yacc.c  */
    5579 #line 625 "parser.yy"
     5464  case 120:
     5465
     5466/* Line 1806 of yacc.c  */
     5467#line 638 "parser.yy"
    55805468    { (yyval.op) = OperKinds::ModAssn; }
    55815469    break;
    55825470
    5583   case 116:
    5584 
    5585 /* Line 1806 of yacc.c  */
    5586 #line 626 "parser.yy"
     5471  case 121:
     5472
     5473/* Line 1806 of yacc.c  */
     5474#line 639 "parser.yy"
    55875475    { (yyval.op) = OperKinds::PlusAssn; }
    55885476    break;
    55895477
    5590   case 117:
    5591 
    5592 /* Line 1806 of yacc.c  */
    5593 #line 627 "parser.yy"
     5478  case 122:
     5479
     5480/* Line 1806 of yacc.c  */
     5481#line 640 "parser.yy"
    55945482    { (yyval.op) = OperKinds::MinusAssn; }
    55955483    break;
    55965484
    5597   case 118:
    5598 
    5599 /* Line 1806 of yacc.c  */
    5600 #line 628 "parser.yy"
     5485  case 123:
     5486
     5487/* Line 1806 of yacc.c  */
     5488#line 641 "parser.yy"
    56015489    { (yyval.op) = OperKinds::LSAssn; }
    56025490    break;
    56035491
    5604   case 119:
    5605 
    5606 /* Line 1806 of yacc.c  */
    5607 #line 629 "parser.yy"
     5492  case 124:
     5493
     5494/* Line 1806 of yacc.c  */
     5495#line 642 "parser.yy"
    56085496    { (yyval.op) = OperKinds::RSAssn; }
    56095497    break;
    56105498
    5611   case 120:
    5612 
    5613 /* Line 1806 of yacc.c  */
    5614 #line 630 "parser.yy"
     5499  case 125:
     5500
     5501/* Line 1806 of yacc.c  */
     5502#line 643 "parser.yy"
    56155503    { (yyval.op) = OperKinds::AndAssn; }
    56165504    break;
    56175505
    5618   case 121:
    5619 
    5620 /* Line 1806 of yacc.c  */
    5621 #line 631 "parser.yy"
     5506  case 126:
     5507
     5508/* Line 1806 of yacc.c  */
     5509#line 644 "parser.yy"
    56225510    { (yyval.op) = OperKinds::ERAssn; }
    56235511    break;
    56245512
    5625   case 122:
    5626 
    5627 /* Line 1806 of yacc.c  */
    5628 #line 632 "parser.yy"
     5513  case 127:
     5514
     5515/* Line 1806 of yacc.c  */
     5516#line 645 "parser.yy"
    56295517    { (yyval.op) = OperKinds::OrAssn; }
    56305518    break;
    56315519
    5632   case 123:
    5633 
    5634 /* Line 1806 of yacc.c  */
    5635 #line 639 "parser.yy"
    5636     { (yyval.en) = new ExpressionNode( build_tuple() ); }
    5637     break;
    5638 
    5639   case 124:
    5640 
    5641 /* Line 1806 of yacc.c  */
    5642 #line 641 "parser.yy"
    5643     { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    5644     break;
    5645 
    5646   case 125:
    5647 
    5648 /* Line 1806 of yacc.c  */
    5649 #line 643 "parser.yy"
     5520  case 128:
     5521
     5522/* Line 1806 of yacc.c  */
     5523#line 656 "parser.yy"
    56505524    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    56515525    break;
    56525526
    5653   case 126:
    5654 
    5655 /* Line 1806 of yacc.c  */
    5656 #line 645 "parser.yy"
     5527  case 129:
     5528
     5529/* Line 1806 of yacc.c  */
     5530#line 658 "parser.yy"
    56575531    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    56585532    break;
    56595533
    5660   case 128:
    5661 
    5662 /* Line 1806 of yacc.c  */
    5663 #line 651 "parser.yy"
     5534  case 131:
     5535
     5536/* Line 1806 of yacc.c  */
     5537#line 664 "parser.yy"
    56645538    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    56655539    break;
    56665540
    5667   case 130:
    5668 
    5669 /* Line 1806 of yacc.c  */
    5670 #line 657 "parser.yy"
     5541  case 133:
     5542
     5543/* Line 1806 of yacc.c  */
     5544#line 670 "parser.yy"
    56715545    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    56725546    break;
    56735547
    5674   case 131:
    5675 
    5676 /* Line 1806 of yacc.c  */
    5677 #line 662 "parser.yy"
     5548  case 134:
     5549
     5550/* Line 1806 of yacc.c  */
     5551#line 675 "parser.yy"
    56785552    { (yyval.en) = 0; }
    56795553    break;
    56805554
    5681   case 135:
    5682 
    5683 /* Line 1806 of yacc.c  */
    5684 #line 671 "parser.yy"
     5555  case 138:
     5556
     5557/* Line 1806 of yacc.c  */
     5558#line 684 "parser.yy"
    56855559    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    56865560    break;
    56875561
    5688   case 141:
    5689 
    5690 /* Line 1806 of yacc.c  */
    5691 #line 678 "parser.yy"
     5562  case 144:
     5563
     5564/* Line 1806 of yacc.c  */
     5565#line 691 "parser.yy"
    56925566    {
    56935567                        Token fn;
     
    56975571    break;
    56985572
    5699   case 142:
    5700 
    5701 /* Line 1806 of yacc.c  */
    5702 #line 688 "parser.yy"
     5573  case 145:
     5574
     5575/* Line 1806 of yacc.c  */
     5576#line 701 "parser.yy"
    57035577    {
    57045578                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    57065580    break;
    57075581
    5708   case 143:
    5709 
    5710 /* Line 1806 of yacc.c  */
    5711 #line 695 "parser.yy"
     5582  case 146:
     5583
     5584/* Line 1806 of yacc.c  */
     5585#line 708 "parser.yy"
    57125586    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
    57135587    break;
    57145588
    5715   case 144:
    5716 
    5717 /* Line 1806 of yacc.c  */
    5718 #line 702 "parser.yy"
     5589  case 147:
     5590
     5591/* Line 1806 of yacc.c  */
     5592#line 715 "parser.yy"
    57195593    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    57205594    break;
    57215595
    5722   case 146:
    5723 
    5724 /* Line 1806 of yacc.c  */
    5725 #line 708 "parser.yy"
     5596  case 149:
     5597
     5598/* Line 1806 of yacc.c  */
     5599#line 721 "parser.yy"
    57265600    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    57275601    break;
    57285602
    5729   case 147:
    5730 
    5731 /* Line 1806 of yacc.c  */
    5732 #line 713 "parser.yy"
     5603  case 150:
     5604
     5605/* Line 1806 of yacc.c  */
     5606#line 726 "parser.yy"
    57335607    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57345608    break;
    57355609
    5736   case 148:
    5737 
    5738 /* Line 1806 of yacc.c  */
    5739 #line 715 "parser.yy"
     5610  case 151:
     5611
     5612/* Line 1806 of yacc.c  */
     5613#line 728 "parser.yy"
    57405614    {   // mark all fields in list
    57415615                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    57455619    break;
    57465620
    5747   case 149:
    5748 
    5749 /* Line 1806 of yacc.c  */
    5750 #line 721 "parser.yy"
     5621  case 152:
     5622
     5623/* Line 1806 of yacc.c  */
     5624#line 734 "parser.yy"
    57515625    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    57525626    break;
    57535627
    5754   case 152:
    5755 
    5756 /* Line 1806 of yacc.c  */
    5757 #line 728 "parser.yy"
     5628  case 155:
     5629
     5630/* Line 1806 of yacc.c  */
     5631#line 741 "parser.yy"
    57585632    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
    57595633    break;
    57605634
    5761   case 153:
    5762 
    5763 /* Line 1806 of yacc.c  */
    5764 #line 733 "parser.yy"
     5635  case 156:
     5636
     5637/* Line 1806 of yacc.c  */
     5638#line 746 "parser.yy"
    57655639    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
    57665640    break;
    57675641
    5768   case 154:
    5769 
    5770 /* Line 1806 of yacc.c  */
    5771 #line 739 "parser.yy"
     5642  case 157:
     5643
     5644/* Line 1806 of yacc.c  */
     5645#line 752 "parser.yy"
    57725646    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    57735647    break;
    57745648
    5775   case 155:
    5776 
    5777 /* Line 1806 of yacc.c  */
    5778 #line 741 "parser.yy"
     5649  case 158:
     5650
     5651/* Line 1806 of yacc.c  */
     5652#line 754 "parser.yy"
    57795653    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    57805654    break;
    57815655
    5782   case 156:
    5783 
    5784 /* Line 1806 of yacc.c  */
    5785 #line 743 "parser.yy"
     5656  case 159:
     5657
     5658/* Line 1806 of yacc.c  */
     5659#line 756 "parser.yy"
    57865660    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    57875661    break;
    57885662
    5789   case 157:
    5790 
    5791 /* Line 1806 of yacc.c  */
    5792 #line 745 "parser.yy"
     5663  case 160:
     5664
     5665/* Line 1806 of yacc.c  */
     5666#line 758 "parser.yy"
    57935667    {
    57945668                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    58025676    break;
    58035677
    5804   case 158:
    5805 
    5806 /* Line 1806 of yacc.c  */
    5807 #line 755 "parser.yy"
     5678  case 161:
     5679
     5680/* Line 1806 of yacc.c  */
     5681#line 768 "parser.yy"
    58085682    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    58095683    break;
    58105684
    5811   case 159:
    5812 
    5813 /* Line 1806 of yacc.c  */
    5814 #line 757 "parser.yy"
     5685  case 162:
     5686
     5687/* Line 1806 of yacc.c  */
     5688#line 770 "parser.yy"
    58155689    {
    58165690                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    58195693    break;
    58205694
    5821   case 160:
    5822 
    5823 /* Line 1806 of yacc.c  */
    5824 #line 767 "parser.yy"
     5695  case 163:
     5696
     5697/* Line 1806 of yacc.c  */
     5698#line 780 "parser.yy"
    58255699    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    58265700    break;
    58275701
    5828   case 161:
    5829 
    5830 /* Line 1806 of yacc.c  */
    5831 #line 769 "parser.yy"
     5702  case 164:
     5703
     5704/* Line 1806 of yacc.c  */
     5705#line 782 "parser.yy"
    58325706    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    58335707    break;
    58345708
    5835   case 163:
    5836 
    5837 /* Line 1806 of yacc.c  */
    5838 #line 774 "parser.yy"
     5709  case 166:
     5710
     5711/* Line 1806 of yacc.c  */
     5712#line 787 "parser.yy"
    58395713    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    58405714    break;
    58415715
    5842   case 164:
    5843 
    5844 /* Line 1806 of yacc.c  */
    5845 #line 776 "parser.yy"
     5716  case 167:
     5717
     5718/* Line 1806 of yacc.c  */
     5719#line 789 "parser.yy"
    58465720    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    58475721    break;
    58485722
    5849   case 165:
    5850 
    5851 /* Line 1806 of yacc.c  */
    5852 #line 780 "parser.yy"
     5723  case 168:
     5724
     5725/* Line 1806 of yacc.c  */
     5726#line 793 "parser.yy"
    58535727    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    58545728    break;
    58555729
    5856   case 166:
    5857 
    5858 /* Line 1806 of yacc.c  */
    5859 #line 781 "parser.yy"
     5730  case 169:
     5731
     5732/* Line 1806 of yacc.c  */
     5733#line 794 "parser.yy"
    58605734    { (yyval.sn) = new StatementNode( build_default() ); }
    58615735    break;
    58625736
    5863   case 168:
    5864 
    5865 /* Line 1806 of yacc.c  */
    5866 #line 787 "parser.yy"
     5737  case 171:
     5738
     5739/* Line 1806 of yacc.c  */
     5740#line 800 "parser.yy"
    58675741    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    58685742    break;
    58695743
    5870   case 169:
    5871 
    5872 /* Line 1806 of yacc.c  */
    5873 #line 791 "parser.yy"
     5744  case 172:
     5745
     5746/* Line 1806 of yacc.c  */
     5747#line 804 "parser.yy"
    58745748    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    58755749    break;
    58765750
    5877   case 170:
    5878 
    5879 /* Line 1806 of yacc.c  */
    5880 #line 796 "parser.yy"
    5881     { (yyval.sn) = 0; }
    5882     break;
    5883 
    5884   case 172:
    5885 
    5886 /* Line 1806 of yacc.c  */
    5887 #line 802 "parser.yy"
    5888     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    5889     break;
    5890 
    58915751  case 173:
    5892 
    5893 /* Line 1806 of yacc.c  */
    5894 #line 804 "parser.yy"
    5895     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
    5896     break;
    5897 
    5898   case 174:
    58995752
    59005753/* Line 1806 of yacc.c  */
     
    59035756    break;
    59045757
     5758  case 175:
     5759
     5760/* Line 1806 of yacc.c  */
     5761#line 815 "parser.yy"
     5762    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5763    break;
     5764
    59055765  case 176:
    59065766
    59075767/* Line 1806 of yacc.c  */
    5908 #line 815 "parser.yy"
     5768#line 817 "parser.yy"
     5769    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); }
     5770    break;
     5771
     5772  case 177:
     5773
     5774/* Line 1806 of yacc.c  */
     5775#line 822 "parser.yy"
     5776    { (yyval.sn) = 0; }
     5777    break;
     5778
     5779  case 179:
     5780
     5781/* Line 1806 of yacc.c  */
     5782#line 828 "parser.yy"
    59095783    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    59105784    break;
    59115785
    5912   case 177:
    5913 
    5914 /* Line 1806 of yacc.c  */
    5915 #line 817 "parser.yy"
     5786  case 180:
     5787
     5788/* Line 1806 of yacc.c  */
     5789#line 830 "parser.yy"
    59165790    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    59175791    break;
    59185792
    5919   case 178:
    5920 
    5921 /* Line 1806 of yacc.c  */
    5922 #line 819 "parser.yy"
     5793  case 181:
     5794
     5795/* Line 1806 of yacc.c  */
     5796#line 832 "parser.yy"
    59235797    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    59245798    break;
    59255799
    5926   case 179:
    5927 
    5928 /* Line 1806 of yacc.c  */
    5929 #line 821 "parser.yy"
     5800  case 182:
     5801
     5802/* Line 1806 of yacc.c  */
     5803#line 834 "parser.yy"
    59305804    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (4)].sn)->set_last( (yyvsp[(2) - (4)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(3) - (4)].sn)->set_last( (yyvsp[(4) - (4)].sn) ) ) ) ) ) ); }
    59315805    break;
    59325806
    5933   case 180:
    5934 
    5935 /* Line 1806 of yacc.c  */
    5936 #line 826 "parser.yy"
     5807  case 183:
     5808
     5809/* Line 1806 of yacc.c  */
     5810#line 839 "parser.yy"
    59375811    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    59385812    break;
    59395813
    5940   case 182:
    5941 
    5942 /* Line 1806 of yacc.c  */
    5943 #line 832 "parser.yy"
     5814  case 185:
     5815
     5816/* Line 1806 of yacc.c  */
     5817#line 845 "parser.yy"
    59445818    { (yyval.sn) = 0; }
    59455819    break;
    59465820
    5947   case 183:
    5948 
    5949 /* Line 1806 of yacc.c  */
    5950 #line 834 "parser.yy"
     5821  case 186:
     5822
     5823/* Line 1806 of yacc.c  */
     5824#line 847 "parser.yy"
    59515825    { (yyval.sn) = 0; }
    59525826    break;
    59535827
    5954   case 184:
    5955 
    5956 /* Line 1806 of yacc.c  */
    5957 #line 839 "parser.yy"
     5828  case 187:
     5829
     5830/* Line 1806 of yacc.c  */
     5831#line 852 "parser.yy"
    59585832    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    59595833    break;
    59605834
    5961   case 185:
    5962 
    5963 /* Line 1806 of yacc.c  */
    5964 #line 841 "parser.yy"
     5835  case 188:
     5836
     5837/* Line 1806 of yacc.c  */
     5838#line 854 "parser.yy"
    59655839    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    59665840    break;
    59675841
    5968   case 186:
    5969 
    5970 /* Line 1806 of yacc.c  */
    5971 #line 843 "parser.yy"
     5842  case 189:
     5843
     5844/* Line 1806 of yacc.c  */
     5845#line 856 "parser.yy"
    59725846    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    59735847    break;
    59745848
    5975   case 187:
    5976 
    5977 /* Line 1806 of yacc.c  */
    5978 #line 848 "parser.yy"
     5849  case 190:
     5850
     5851/* Line 1806 of yacc.c  */
     5852#line 861 "parser.yy"
    59795853    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    59805854    break;
    59815855
    5982   case 188:
    5983 
    5984 /* Line 1806 of yacc.c  */
    5985 #line 850 "parser.yy"
     5856  case 191:
     5857
     5858/* Line 1806 of yacc.c  */
     5859#line 863 "parser.yy"
    59865860    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    59875861    break;
    59885862
    5989   case 189:
    5990 
    5991 /* Line 1806 of yacc.c  */
    5992 #line 855 "parser.yy"
     5863  case 192:
     5864
     5865/* Line 1806 of yacc.c  */
     5866#line 868 "parser.yy"
    59935867    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    59945868    break;
    59955869
    5996   case 190:
    5997 
    5998 /* Line 1806 of yacc.c  */
    5999 #line 859 "parser.yy"
     5870  case 193:
     5871
     5872/* Line 1806 of yacc.c  */
     5873#line 872 "parser.yy"
    60005874    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    60015875    break;
    60025876
    6003   case 191:
    6004 
    6005 /* Line 1806 of yacc.c  */
    6006 #line 862 "parser.yy"
     5877  case 194:
     5878
     5879/* Line 1806 of yacc.c  */
     5880#line 875 "parser.yy"
    60075881    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    60085882    break;
    60095883
    6010   case 192:
    6011 
    6012 /* Line 1806 of yacc.c  */
    6013 #line 866 "parser.yy"
     5884  case 195:
     5885
     5886/* Line 1806 of yacc.c  */
     5887#line 879 "parser.yy"
    60145888    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    60155889    break;
    60165890
    6017   case 193:
    6018 
    6019 /* Line 1806 of yacc.c  */
    6020 #line 869 "parser.yy"
     5891  case 196:
     5892
     5893/* Line 1806 of yacc.c  */
     5894#line 882 "parser.yy"
    60215895    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    60225896    break;
    60235897
    6024   case 194:
    6025 
    6026 /* Line 1806 of yacc.c  */
    6027 #line 873 "parser.yy"
     5898  case 197:
     5899
     5900/* Line 1806 of yacc.c  */
     5901#line 886 "parser.yy"
    60285902    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    60295903    break;
    60305904
    6031   case 195:
    6032 
    6033 /* Line 1806 of yacc.c  */
    6034 #line 875 "parser.yy"
     5905  case 198:
     5906
     5907/* Line 1806 of yacc.c  */
     5908#line 888 "parser.yy"
    60355909    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    60365910    break;
    60375911
    6038   case 196:
    6039 
    6040 /* Line 1806 of yacc.c  */
    6041 #line 877 "parser.yy"
     5912  case 199:
     5913
     5914/* Line 1806 of yacc.c  */
     5915#line 890 "parser.yy"
    60425916    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60435917    break;
    60445918
    6045   case 197:
    6046 
    6047 /* Line 1806 of yacc.c  */
    6048 #line 879 "parser.yy"
     5919  case 200:
     5920
     5921/* Line 1806 of yacc.c  */
     5922#line 892 "parser.yy"
    60495923    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    60505924    break;
    60515925
    6052   case 198:
    6053 
    6054 /* Line 1806 of yacc.c  */
    6055 #line 881 "parser.yy"
     5926  case 201:
     5927
     5928/* Line 1806 of yacc.c  */
     5929#line 894 "parser.yy"
    60565930    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    60575931    break;
    60585932
    6059   case 199:
    6060 
    6061 /* Line 1806 of yacc.c  */
    6062 #line 886 "parser.yy"
     5933  case 202:
     5934
     5935/* Line 1806 of yacc.c  */
     5936#line 899 "parser.yy"
    60635937    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    60645938    break;
    60655939
    6066   case 200:
    6067 
    6068 /* Line 1806 of yacc.c  */
    6069 #line 888 "parser.yy"
     5940  case 203:
     5941
     5942/* Line 1806 of yacc.c  */
     5943#line 901 "parser.yy"
    60705944    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    60715945    break;
    60725946
    6073   case 201:
    6074 
    6075 /* Line 1806 of yacc.c  */
    6076 #line 890 "parser.yy"
     5947  case 204:
     5948
     5949/* Line 1806 of yacc.c  */
     5950#line 903 "parser.yy"
    60775951    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    60785952    break;
    60795953
    6080   case 203:
    6081 
    6082 /* Line 1806 of yacc.c  */
    6083 #line 897 "parser.yy"
     5954  case 206:
     5955
     5956/* Line 1806 of yacc.c  */
     5957#line 910 "parser.yy"
    60845958    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60855959    break;
    60865960
    6087   case 204:
    6088 
    6089 /* Line 1806 of yacc.c  */
    6090 #line 899 "parser.yy"
     5961  case 207:
     5962
     5963/* Line 1806 of yacc.c  */
     5964#line 912 "parser.yy"
    60915965    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    60925966    break;
    60935967
    6094   case 205:
    6095 
    6096 /* Line 1806 of yacc.c  */
    6097 #line 901 "parser.yy"
     5968  case 208:
     5969
     5970/* Line 1806 of yacc.c  */
     5971#line 914 "parser.yy"
    60985972    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    60995973    break;
    61005974
    6101   case 206:
    6102 
    6103 /* Line 1806 of yacc.c  */
    6104 #line 903 "parser.yy"
     5975  case 209:
     5976
     5977/* Line 1806 of yacc.c  */
     5978#line 916 "parser.yy"
    61055979    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    61065980    break;
    61075981
    6108   case 207:
    6109 
    6110 /* Line 1806 of yacc.c  */
    6111 #line 908 "parser.yy"
     5982  case 210:
     5983
     5984/* Line 1806 of yacc.c  */
     5985#line 921 "parser.yy"
    61125986    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    61135987    break;
    61145988
    6115   case 208:
    6116 
    6117 /* Line 1806 of yacc.c  */
    6118 #line 910 "parser.yy"
     5989  case 211:
     5990
     5991/* Line 1806 of yacc.c  */
     5992#line 923 "parser.yy"
    61195993    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    61205994    break;
    61215995
    6122   case 209:
    6123 
    6124 /* Line 1806 of yacc.c  */
    6125 #line 912 "parser.yy"
     5996  case 212:
     5997
     5998/* Line 1806 of yacc.c  */
     5999#line 925 "parser.yy"
    61266000    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    61276001    break;
    61286002
    6129   case 210:
    6130 
    6131 /* Line 1806 of yacc.c  */
    6132 #line 914 "parser.yy"
     6003  case 213:
     6004
     6005/* Line 1806 of yacc.c  */
     6006#line 927 "parser.yy"
    61336007    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    61346008    break;
    61356009
    6136   case 211:
    6137 
    6138 /* Line 1806 of yacc.c  */
    6139 #line 919 "parser.yy"
     6010  case 214:
     6011
     6012/* Line 1806 of yacc.c  */
     6013#line 932 "parser.yy"
    61406014    {
    61416015                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    61436017    break;
    61446018
    6145   case 213:
    6146 
    6147 /* Line 1806 of yacc.c  */
    6148 #line 932 "parser.yy"
     6019  case 216:
     6020
     6021/* Line 1806 of yacc.c  */
     6022#line 945 "parser.yy"
    61496023    {
    61506024                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61536027    break;
    61546028
    6155   case 214:
    6156 
    6157 /* Line 1806 of yacc.c  */
    6158 #line 937 "parser.yy"
     6029  case 217:
     6030
     6031/* Line 1806 of yacc.c  */
     6032#line 950 "parser.yy"
    61596033    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    61606034    break;
    61616035
    6162   case 215:
    6163 
    6164 /* Line 1806 of yacc.c  */
    6165 #line 939 "parser.yy"
     6036  case 218:
     6037
     6038/* Line 1806 of yacc.c  */
     6039#line 952 "parser.yy"
    61666040    {
    61676041                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    61706044    break;
    61716045
    6172   case 217:
    6173 
    6174 /* Line 1806 of yacc.c  */
    6175 #line 948 "parser.yy"
     6046  case 220:
     6047
     6048/* Line 1806 of yacc.c  */
     6049#line 961 "parser.yy"
    61766050    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    61776051    break;
    61786052
    6179   case 218:
    6180 
    6181 /* Line 1806 of yacc.c  */
    6182 #line 950 "parser.yy"
     6053  case 221:
     6054
     6055/* Line 1806 of yacc.c  */
     6056#line 963 "parser.yy"
    61836057    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    61846058    break;
    61856059
    6186   case 219:
    6187 
    6188 /* Line 1806 of yacc.c  */
    6189 #line 952 "parser.yy"
     6060  case 222:
     6061
     6062/* Line 1806 of yacc.c  */
     6063#line 965 "parser.yy"
    61906064    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    61916065    break;
    61926066
    6193   case 220:
    6194 
    6195 /* Line 1806 of yacc.c  */
    6196 #line 954 "parser.yy"
     6067  case 223:
     6068
     6069/* Line 1806 of yacc.c  */
     6070#line 967 "parser.yy"
    61976071    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (12)].flag), (yyvsp[(4) - (12)].constant), (yyvsp[(6) - (12)].en), (yyvsp[(8) - (12)].en), (yyvsp[(10) - (12)].en) ) ); }
    61986072    break;
    61996073
    6200   case 221:
    6201 
    6202 /* Line 1806 of yacc.c  */
    6203 #line 956 "parser.yy"
     6074  case 224:
     6075
     6076/* Line 1806 of yacc.c  */
     6077#line 969 "parser.yy"
    62046078    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (14)].flag), (yyvsp[(5) - (14)].constant), 0, (yyvsp[(8) - (14)].en), (yyvsp[(10) - (14)].en), (yyvsp[(12) - (14)].label) ) ); }
    62056079    break;
    62066080
    6207   case 222:
    6208 
    6209 /* Line 1806 of yacc.c  */
    6210 #line 961 "parser.yy"
     6081  case 225:
     6082
     6083/* Line 1806 of yacc.c  */
     6084#line 974 "parser.yy"
    62116085    { (yyval.flag) = false; }
    62126086    break;
    62136087
    6214   case 223:
    6215 
    6216 /* Line 1806 of yacc.c  */
    6217 #line 963 "parser.yy"
     6088  case 226:
     6089
     6090/* Line 1806 of yacc.c  */
     6091#line 976 "parser.yy"
    62186092    { (yyval.flag) = true; }
    62196093    break;
    62206094
    6221   case 224:
    6222 
    6223 /* Line 1806 of yacc.c  */
    6224 #line 968 "parser.yy"
     6095  case 227:
     6096
     6097/* Line 1806 of yacc.c  */
     6098#line 981 "parser.yy"
    62256099    { (yyval.en) = 0; }
    62266100    break;
    62276101
    6228   case 227:
    6229 
    6230 /* Line 1806 of yacc.c  */
    6231 #line 975 "parser.yy"
     6102  case 230:
     6103
     6104/* Line 1806 of yacc.c  */
     6105#line 988 "parser.yy"
    62326106    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    62336107    break;
    62346108
    6235   case 228:
    6236 
    6237 /* Line 1806 of yacc.c  */
    6238 #line 980 "parser.yy"
     6109  case 231:
     6110
     6111/* Line 1806 of yacc.c  */
     6112#line 993 "parser.yy"
    62396113    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
    62406114    break;
    62416115
    6242   case 229:
    6243 
    6244 /* Line 1806 of yacc.c  */
    6245 #line 982 "parser.yy"
     6116  case 232:
     6117
     6118/* Line 1806 of yacc.c  */
     6119#line 995 "parser.yy"
    62466120    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
    62476121    break;
    62486122
    6249   case 230:
    6250 
    6251 /* Line 1806 of yacc.c  */
    6252 #line 987 "parser.yy"
     6123  case 233:
     6124
     6125/* Line 1806 of yacc.c  */
     6126#line 1000 "parser.yy"
    62536127    { (yyval.en) = 0; }
    62546128    break;
    62556129
    6256   case 231:
    6257 
    6258 /* Line 1806 of yacc.c  */
    6259 #line 989 "parser.yy"
     6130  case 234:
     6131
     6132/* Line 1806 of yacc.c  */
     6133#line 1002 "parser.yy"
    62606134    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    62616135    break;
    62626136
    6263   case 232:
    6264 
    6265 /* Line 1806 of yacc.c  */
    6266 #line 991 "parser.yy"
     6137  case 235:
     6138
     6139/* Line 1806 of yacc.c  */
     6140#line 1004 "parser.yy"
    62676141    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    62686142    break;
    62696143
    6270   case 233:
    6271 
    6272 /* Line 1806 of yacc.c  */
    6273 #line 996 "parser.yy"
     6144  case 236:
     6145
     6146/* Line 1806 of yacc.c  */
     6147#line 1009 "parser.yy"
    62746148    {
    62756149                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    62786152    break;
    62796153
    6280   case 234:
    6281 
    6282 /* Line 1806 of yacc.c  */
    6283 #line 1001 "parser.yy"
     6154  case 237:
     6155
     6156/* Line 1806 of yacc.c  */
     6157#line 1014 "parser.yy"
    62846158    {
    62856159                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    62886162    break;
    62896163
    6290   case 235:
    6291 
    6292 /* Line 1806 of yacc.c  */
    6293 #line 1011 "parser.yy"
     6164  case 238:
     6165
     6166/* Line 1806 of yacc.c  */
     6167#line 1024 "parser.yy"
    62946168    { (yyval.decl) = 0; }
    62956169    break;
    62966170
    6297   case 238:
    6298 
    6299 /* Line 1806 of yacc.c  */
    6300 #line 1018 "parser.yy"
     6171  case 241:
     6172
     6173/* Line 1806 of yacc.c  */
     6174#line 1031 "parser.yy"
    63016175    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63026176    break;
    63036177
    6304   case 239:
    6305 
    6306 /* Line 1806 of yacc.c  */
    6307 #line 1023 "parser.yy"
     6178  case 242:
     6179
     6180/* Line 1806 of yacc.c  */
     6181#line 1036 "parser.yy"
    63086182    { (yyval.decl) = 0; }
    63096183    break;
    63106184
    6311   case 242:
    6312 
    6313 /* Line 1806 of yacc.c  */
    6314 #line 1030 "parser.yy"
     6185  case 245:
     6186
     6187/* Line 1806 of yacc.c  */
     6188#line 1043 "parser.yy"
    63156189    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    63166190    break;
    63176191
    6318   case 247:
    6319 
    6320 /* Line 1806 of yacc.c  */
    6321 #line 1044 "parser.yy"
     6192  case 250:
     6193
     6194/* Line 1806 of yacc.c  */
     6195#line 1057 "parser.yy"
    63226196    {}
    63236197    break;
    63246198
    6325   case 248:
    6326 
    6327 /* Line 1806 of yacc.c  */
    6328 #line 1045 "parser.yy"
     6199  case 251:
     6200
     6201/* Line 1806 of yacc.c  */
     6202#line 1058 "parser.yy"
    63296203    {}
    63306204    break;
    63316205
    6332   case 256:
    6333 
    6334 /* Line 1806 of yacc.c  */
    6335 #line 1074 "parser.yy"
     6206  case 259:
     6207
     6208/* Line 1806 of yacc.c  */
     6209#line 1087 "parser.yy"
    63366210    {
    63376211                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63406214    break;
    63416215
    6342   case 257:
    6343 
    6344 /* Line 1806 of yacc.c  */
    6345 #line 1081 "parser.yy"
     6216  case 260:
     6217
     6218/* Line 1806 of yacc.c  */
     6219#line 1094 "parser.yy"
    63466220    {
    63476221                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63506224    break;
    63516225
    6352   case 258:
    6353 
    6354 /* Line 1806 of yacc.c  */
    6355 #line 1086 "parser.yy"
     6226  case 261:
     6227
     6228/* Line 1806 of yacc.c  */
     6229#line 1099 "parser.yy"
    63566230    {
    63576231                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    63606234    break;
    63616235
    6362   case 259:
    6363 
    6364 /* Line 1806 of yacc.c  */
    6365 #line 1096 "parser.yy"
     6236  case 262:
     6237
     6238/* Line 1806 of yacc.c  */
     6239#line 1109 "parser.yy"
    63666240    {
    63676241                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63706244    break;
    63716245
    6372   case 260:
    6373 
    6374 /* Line 1806 of yacc.c  */
    6375 #line 1101 "parser.yy"
     6246  case 263:
     6247
     6248/* Line 1806 of yacc.c  */
     6249#line 1114 "parser.yy"
    63766250    {
    63776251                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    63806254    break;
    63816255
    6382   case 261:
    6383 
    6384 /* Line 1806 of yacc.c  */
    6385 #line 1106 "parser.yy"
     6256  case 264:
     6257
     6258/* Line 1806 of yacc.c  */
     6259#line 1119 "parser.yy"
    63866260    {
    63876261                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    63906264    break;
    63916265
    6392   case 262:
    6393 
    6394 /* Line 1806 of yacc.c  */
    6395 #line 1114 "parser.yy"
     6266  case 265:
     6267
     6268/* Line 1806 of yacc.c  */
     6269#line 1127 "parser.yy"
    63966270    {
    63976271                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64006274    break;
    64016275
    6402   case 263:
    6403 
    6404 /* Line 1806 of yacc.c  */
    6405 #line 1119 "parser.yy"
     6276  case 266:
     6277
     6278/* Line 1806 of yacc.c  */
     6279#line 1132 "parser.yy"
    64066280    {
    64076281                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64106284    break;
    64116285
    6412   case 264:
    6413 
    6414 /* Line 1806 of yacc.c  */
    6415 #line 1124 "parser.yy"
     6286  case 267:
     6287
     6288/* Line 1806 of yacc.c  */
     6289#line 1137 "parser.yy"
    64166290    {
    64176291                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64206294    break;
    64216295
    6422   case 265:
    6423 
    6424 /* Line 1806 of yacc.c  */
    6425 #line 1129 "parser.yy"
     6296  case 268:
     6297
     6298/* Line 1806 of yacc.c  */
     6299#line 1142 "parser.yy"
    64266300    {
    64276301                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64306304    break;
    64316305
    6432   case 266:
    6433 
    6434 /* Line 1806 of yacc.c  */
    6435 #line 1134 "parser.yy"
     6306  case 269:
     6307
     6308/* Line 1806 of yacc.c  */
     6309#line 1147 "parser.yy"
    64366310    {
    64376311                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    64406314    break;
    64416315
    6442   case 267:
    6443 
    6444 /* Line 1806 of yacc.c  */
    6445 #line 1142 "parser.yy"
    6446     {
    6447                         (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(3) - (8)].tok), DeclarationNode::newTuple( 0 ), (yyvsp[(6) - (8)].decl), 0, true );
    6448                 }
    6449     break;
    6450 
    6451   case 268:
    6452 
    6453 /* Line 1806 of yacc.c  */
    6454 #line 1165 "parser.yy"
     6316  case 270:
     6317
     6318/* Line 1806 of yacc.c  */
     6319#line 1178 "parser.yy"
    64556320    {
    64566321                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64586323    break;
    64596324
    6460   case 269:
    6461 
    6462 /* Line 1806 of yacc.c  */
    6463 #line 1169 "parser.yy"
     6325  case 271:
     6326
     6327/* Line 1806 of yacc.c  */
     6328#line 1182 "parser.yy"
    64646329    {
    64656330                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    64676332    break;
    64686333
    6469   case 270:
    6470 
    6471 /* Line 1806 of yacc.c  */
    6472 #line 1176 "parser.yy"
     6334  case 272:
     6335
     6336/* Line 1806 of yacc.c  */
     6337#line 1189 "parser.yy"
    64736338    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    64746339    break;
    64756340
    6476   case 271:
    6477 
    6478 /* Line 1806 of yacc.c  */
    6479 #line 1180 "parser.yy"
     6341  case 273:
     6342
     6343/* Line 1806 of yacc.c  */
     6344#line 1193 "parser.yy"
    64806345    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    64816346    break;
    64826347
    6483   case 272:
    6484 
    6485 /* Line 1806 of yacc.c  */
    6486 #line 1185 "parser.yy"
     6348  case 274:
     6349
     6350/* Line 1806 of yacc.c  */
     6351#line 1198 "parser.yy"
    64876352    {
    64886353                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64916356    break;
    64926357
    6493   case 273:
    6494 
    6495 /* Line 1806 of yacc.c  */
    6496 #line 1190 "parser.yy"
     6358  case 275:
     6359
     6360/* Line 1806 of yacc.c  */
     6361#line 1203 "parser.yy"
    64976362    {
    64986363                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65016366    break;
    65026367
    6503   case 274:
    6504 
    6505 /* Line 1806 of yacc.c  */
    6506 #line 1195 "parser.yy"
     6368  case 276:
     6369
     6370/* Line 1806 of yacc.c  */
     6371#line 1208 "parser.yy"
    65076372    {
    65086373                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    65116376    break;
    65126377
    6513   case 275:
    6514 
    6515 /* Line 1806 of yacc.c  */
    6516 #line 1206 "parser.yy"
     6378  case 277:
     6379
     6380/* Line 1806 of yacc.c  */
     6381#line 1219 "parser.yy"
    65176382    {
    65186383                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65216386    break;
    65226387
    6523   case 276:
    6524 
    6525 /* Line 1806 of yacc.c  */
    6526 #line 1211 "parser.yy"
     6388  case 278:
     6389
     6390/* Line 1806 of yacc.c  */
     6391#line 1224 "parser.yy"
    65276392    {
    65286393                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65316396    break;
    65326397
    6533   case 277:
    6534 
    6535 /* Line 1806 of yacc.c  */
    6536 #line 1216 "parser.yy"
     6398  case 279:
     6399
     6400/* Line 1806 of yacc.c  */
     6401#line 1229 "parser.yy"
    65376402    {
    65386403                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65416406    break;
    65426407
    6543   case 278:
    6544 
    6545 /* Line 1806 of yacc.c  */
    6546 #line 1221 "parser.yy"
     6408  case 280:
     6409
     6410/* Line 1806 of yacc.c  */
     6411#line 1234 "parser.yy"
    65476412    {
    65486413                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65516416    break;
    65526417
    6553   case 279:
    6554 
    6555 /* Line 1806 of yacc.c  */
    6556 #line 1226 "parser.yy"
     6418  case 281:
     6419
     6420/* Line 1806 of yacc.c  */
     6421#line 1239 "parser.yy"
    65576422    {
    65586423                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    65616426    break;
    65626427
    6563   case 280:
    6564 
    6565 /* Line 1806 of yacc.c  */
    6566 #line 1235 "parser.yy"
     6428  case 282:
     6429
     6430/* Line 1806 of yacc.c  */
     6431#line 1248 "parser.yy"
    65676432    {
    65686433                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    65716436    break;
    65726437
    6573   case 281:
    6574 
    6575 /* Line 1806 of yacc.c  */
    6576 #line 1240 "parser.yy"
     6438  case 283:
     6439
     6440/* Line 1806 of yacc.c  */
     6441#line 1253 "parser.yy"
    65776442    {
    65786443                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    65816446    break;
    65826447
    6583   case 286:
    6584 
    6585 /* Line 1806 of yacc.c  */
    6586 #line 1257 "parser.yy"
     6448  case 288:
     6449
     6450/* Line 1806 of yacc.c  */
     6451#line 1270 "parser.yy"
    65876452    {
    65886453                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    65916456    break;
    65926457
    6593   case 287:
    6594 
    6595 /* Line 1806 of yacc.c  */
    6596 #line 1262 "parser.yy"
     6458  case 289:
     6459
     6460/* Line 1806 of yacc.c  */
     6461#line 1275 "parser.yy"
    65976462    {
    65986463                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    66016466    break;
    66026467
    6603   case 296:
    6604 
    6605 /* Line 1806 of yacc.c  */
    6606 #line 1284 "parser.yy"
     6468  case 298:
     6469
     6470/* Line 1806 of yacc.c  */
     6471#line 1297 "parser.yy"
    66076472    { (yyval.decl) = 0; }
    66086473    break;
    66096474
    6610   case 299:
    6611 
    6612 /* Line 1806 of yacc.c  */
    6613 #line 1296 "parser.yy"
     6475  case 301:
     6476
     6477/* Line 1806 of yacc.c  */
     6478#line 1309 "parser.yy"
    66146479    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    66156480    break;
    66166481
    6617   case 302:
    6618 
    6619 /* Line 1806 of yacc.c  */
    6620 #line 1307 "parser.yy"
     6482  case 304:
     6483
     6484/* Line 1806 of yacc.c  */
     6485#line 1320 "parser.yy"
    66216486    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
    66226487    break;
    66236488
    6624   case 303:
    6625 
    6626 /* Line 1806 of yacc.c  */
    6627 #line 1309 "parser.yy"
     6489  case 305:
     6490
     6491/* Line 1806 of yacc.c  */
     6492#line 1322 "parser.yy"
    66286493    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    66296494    break;
    66306495
    6631   case 304:
    6632 
    6633 /* Line 1806 of yacc.c  */
    6634 #line 1311 "parser.yy"
     6496  case 306:
     6497
     6498/* Line 1806 of yacc.c  */
     6499#line 1324 "parser.yy"
    66356500    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    66366501    break;
    66376502
    6638   case 305:
    6639 
    6640 /* Line 1806 of yacc.c  */
    6641 #line 1313 "parser.yy"
     6503  case 307:
     6504
     6505/* Line 1806 of yacc.c  */
     6506#line 1326 "parser.yy"
    66426507    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    66436508    break;
    66446509
    6645   case 306:
    6646 
    6647 /* Line 1806 of yacc.c  */
    6648 #line 1315 "parser.yy"
     6510  case 308:
     6511
     6512/* Line 1806 of yacc.c  */
     6513#line 1328 "parser.yy"
    66496514    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    66506515    break;
    66516516
    6652   case 307:
    6653 
    6654 /* Line 1806 of yacc.c  */
    6655 #line 1317 "parser.yy"
     6517  case 309:
     6518
     6519/* Line 1806 of yacc.c  */
     6520#line 1330 "parser.yy"
    66566521    {
    66576522                        typedefTable.enterScope();
     
    66596524    break;
    66606525
    6661   case 308:
    6662 
    6663 /* Line 1806 of yacc.c  */
    6664 #line 1321 "parser.yy"
     6526  case 310:
     6527
     6528/* Line 1806 of yacc.c  */
     6529#line 1334 "parser.yy"
    66656530    {
    66666531                        typedefTable.leaveScope();
     
    66696534    break;
    66706535
    6671   case 310:
    6672 
    6673 /* Line 1806 of yacc.c  */
    6674 #line 1330 "parser.yy"
    6675     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6676     break;
    6677 
    6678   case 311:
    6679 
    6680 /* Line 1806 of yacc.c  */
    6681 #line 1332 "parser.yy"
    6682     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6683     break;
    6684 
    6685   case 313:
     6536  case 312:
    66866537
    66876538/* Line 1806 of yacc.c  */
     
    66906541    break;
    66916542
    6692   case 314:
    6693 
    6694 /* Line 1806 of yacc.c  */
    6695 #line 1348 "parser.yy"
     6543  case 313:
     6544
     6545/* Line 1806 of yacc.c  */
     6546#line 1345 "parser.yy"
     6547    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6548    break;
     6549
     6550  case 315:
     6551
     6552/* Line 1806 of yacc.c  */
     6553#line 1356 "parser.yy"
     6554    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6555    break;
     6556
     6557  case 316:
     6558
     6559/* Line 1806 of yacc.c  */
     6560#line 1361 "parser.yy"
    66966561    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    66976562    break;
    66986563
    6699   case 315:
    6700 
    6701 /* Line 1806 of yacc.c  */
    6702 #line 1350 "parser.yy"
     6564  case 317:
     6565
     6566/* Line 1806 of yacc.c  */
     6567#line 1363 "parser.yy"
    67036568    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    67046569    break;
    67056570
    6706   case 316:
    6707 
    6708 /* Line 1806 of yacc.c  */
    6709 #line 1352 "parser.yy"
     6571  case 318:
     6572
     6573/* Line 1806 of yacc.c  */
     6574#line 1365 "parser.yy"
    67106575    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    67116576    break;
    67126577
    6713   case 317:
    6714 
    6715 /* Line 1806 of yacc.c  */
    6716 #line 1354 "parser.yy"
     6578  case 319:
     6579
     6580/* Line 1806 of yacc.c  */
     6581#line 1367 "parser.yy"
    67176582    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    67186583    break;
    67196584
    6720   case 318:
    6721 
    6722 /* Line 1806 of yacc.c  */
    6723 #line 1357 "parser.yy"
     6585  case 320:
     6586
     6587/* Line 1806 of yacc.c  */
     6588#line 1370 "parser.yy"
    67246589    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    67256590    break;
    67266591
    6727   case 319:
    6728 
    6729 /* Line 1806 of yacc.c  */
    6730 #line 1359 "parser.yy"
     6592  case 321:
     6593
     6594/* Line 1806 of yacc.c  */
     6595#line 1372 "parser.yy"
    67316596    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    67326597    break;
    67336598
    6734   case 320:
    6735 
    6736 /* Line 1806 of yacc.c  */
    6737 #line 1362 "parser.yy"
     6599  case 322:
     6600
     6601/* Line 1806 of yacc.c  */
     6602#line 1375 "parser.yy"
    67386603    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    67396604    break;
    67406605
    6741   case 321:
    6742 
    6743 /* Line 1806 of yacc.c  */
    6744 #line 1364 "parser.yy"
     6606  case 323:
     6607
     6608/* Line 1806 of yacc.c  */
     6609#line 1377 "parser.yy"
    67456610    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    67466611    break;
    67476612
    6748   case 322:
    6749 
    6750 /* Line 1806 of yacc.c  */
    6751 #line 1369 "parser.yy"
     6613  case 324:
     6614
     6615/* Line 1806 of yacc.c  */
     6616#line 1382 "parser.yy"
    67526617    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    67536618    break;
    67546619
    6755   case 323:
    6756 
    6757 /* Line 1806 of yacc.c  */
    6758 #line 1371 "parser.yy"
     6620  case 325:
     6621
     6622/* Line 1806 of yacc.c  */
     6623#line 1384 "parser.yy"
    67596624    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    67606625    break;
    67616626
    6762   case 324:
    6763 
    6764 /* Line 1806 of yacc.c  */
    6765 #line 1373 "parser.yy"
     6627  case 326:
     6628
     6629/* Line 1806 of yacc.c  */
     6630#line 1386 "parser.yy"
    67666631    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    67676632    break;
    67686633
    6769   case 325:
    6770 
    6771 /* Line 1806 of yacc.c  */
    6772 #line 1375 "parser.yy"
     6634  case 327:
     6635
     6636/* Line 1806 of yacc.c  */
     6637#line 1388 "parser.yy"
    67736638    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    67746639    break;
    67756640
    6776   case 326:
    6777 
    6778 /* Line 1806 of yacc.c  */
    6779 #line 1377 "parser.yy"
     6641  case 328:
     6642
     6643/* Line 1806 of yacc.c  */
     6644#line 1390 "parser.yy"
    67806645    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    67816646    break;
    67826647
    6783   case 327:
    6784 
    6785 /* Line 1806 of yacc.c  */
    6786 #line 1379 "parser.yy"
     6648  case 329:
     6649
     6650/* Line 1806 of yacc.c  */
     6651#line 1392 "parser.yy"
    67876652    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    67886653    break;
    67896654
    6790   case 328:
    6791 
    6792 /* Line 1806 of yacc.c  */
    6793 #line 1381 "parser.yy"
     6655  case 330:
     6656
     6657/* Line 1806 of yacc.c  */
     6658#line 1394 "parser.yy"
    67946659    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    67956660    break;
    67966661
    6797   case 329:
    6798 
    6799 /* Line 1806 of yacc.c  */
    6800 #line 1383 "parser.yy"
     6662  case 331:
     6663
     6664/* Line 1806 of yacc.c  */
     6665#line 1396 "parser.yy"
    68016666    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    68026667    break;
    68036668
    6804   case 330:
    6805 
    6806 /* Line 1806 of yacc.c  */
    6807 #line 1385 "parser.yy"
     6669  case 332:
     6670
     6671/* Line 1806 of yacc.c  */
     6672#line 1398 "parser.yy"
    68086673    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    68096674    break;
    68106675
    6811   case 331:
    6812 
    6813 /* Line 1806 of yacc.c  */
    6814 #line 1387 "parser.yy"
     6676  case 333:
     6677
     6678/* Line 1806 of yacc.c  */
     6679#line 1400 "parser.yy"
    68156680    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    68166681    break;
    68176682
    6818   case 332:
    6819 
    6820 /* Line 1806 of yacc.c  */
    6821 #line 1389 "parser.yy"
     6683  case 334:
     6684
     6685/* Line 1806 of yacc.c  */
     6686#line 1402 "parser.yy"
    68226687    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    68236688    break;
    68246689
    6825   case 333:
    6826 
    6827 /* Line 1806 of yacc.c  */
    6828 #line 1391 "parser.yy"
     6690  case 335:
     6691
     6692/* Line 1806 of yacc.c  */
     6693#line 1404 "parser.yy"
    68296694    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    68306695    break;
    68316696
    6832   case 334:
    6833 
    6834 /* Line 1806 of yacc.c  */
    6835 #line 1393 "parser.yy"
     6697  case 336:
     6698
     6699/* Line 1806 of yacc.c  */
     6700#line 1406 "parser.yy"
    68366701    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    68376702    break;
    68386703
    6839   case 336:
    6840 
    6841 /* Line 1806 of yacc.c  */
    6842 #line 1400 "parser.yy"
     6704  case 338:
     6705
     6706/* Line 1806 of yacc.c  */
     6707#line 1413 "parser.yy"
    68436708    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68446709    break;
    68456710
    6846   case 337:
    6847 
    6848 /* Line 1806 of yacc.c  */
    6849 #line 1402 "parser.yy"
     6711  case 339:
     6712
     6713/* Line 1806 of yacc.c  */
     6714#line 1415 "parser.yy"
    68506715    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68516716    break;
    68526717
    6853   case 338:
    6854 
    6855 /* Line 1806 of yacc.c  */
    6856 #line 1404 "parser.yy"
     6718  case 340:
     6719
     6720/* Line 1806 of yacc.c  */
     6721#line 1417 "parser.yy"
    68576722    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68586723    break;
    68596724
    6860   case 339:
    6861 
    6862 /* Line 1806 of yacc.c  */
    6863 #line 1406 "parser.yy"
     6725  case 341:
     6726
     6727/* Line 1806 of yacc.c  */
     6728#line 1419 "parser.yy"
    68646729    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    68656730    break;
    68666731
    6867   case 341:
    6868 
    6869 /* Line 1806 of yacc.c  */
    6870 #line 1412 "parser.yy"
     6732  case 343:
     6733
     6734/* Line 1806 of yacc.c  */
     6735#line 1425 "parser.yy"
    68716736    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68726737    break;
    68736738
    6874   case 343:
    6875 
    6876 /* Line 1806 of yacc.c  */
    6877 #line 1419 "parser.yy"
     6739  case 345:
     6740
     6741/* Line 1806 of yacc.c  */
     6742#line 1432 "parser.yy"
    68786743    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    68796744    break;
    68806745
    6881   case 344:
    6882 
    6883 /* Line 1806 of yacc.c  */
    6884 #line 1421 "parser.yy"
     6746  case 346:
     6747
     6748/* Line 1806 of yacc.c  */
     6749#line 1434 "parser.yy"
    68856750    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68866751    break;
    68876752
    6888   case 345:
    6889 
    6890 /* Line 1806 of yacc.c  */
    6891 #line 1423 "parser.yy"
     6753  case 347:
     6754
     6755/* Line 1806 of yacc.c  */
     6756#line 1436 "parser.yy"
    68926757    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    68936758    break;
    68946759
    6895   case 346:
    6896 
    6897 /* Line 1806 of yacc.c  */
    6898 #line 1428 "parser.yy"
     6760  case 348:
     6761
     6762/* Line 1806 of yacc.c  */
     6763#line 1441 "parser.yy"
    68996764    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    69006765    break;
    69016766
    6902   case 347:
    6903 
    6904 /* Line 1806 of yacc.c  */
    6905 #line 1430 "parser.yy"
     6767  case 349:
     6768
     6769/* Line 1806 of yacc.c  */
     6770#line 1443 "parser.yy"
    69066771    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    69076772    break;
    69086773
    6909   case 348:
    6910 
    6911 /* Line 1806 of yacc.c  */
    6912 #line 1432 "parser.yy"
     6774  case 350:
     6775
     6776/* Line 1806 of yacc.c  */
     6777#line 1445 "parser.yy"
    69136778    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    69146779    break;
    69156780
    6916   case 349:
    6917 
    6918 /* Line 1806 of yacc.c  */
    6919 #line 1434 "parser.yy"
     6781  case 351:
     6782
     6783/* Line 1806 of yacc.c  */
     6784#line 1447 "parser.yy"
    69206785    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    69216786    break;
    69226787
    6923   case 351:
    6924 
    6925 /* Line 1806 of yacc.c  */
    6926 #line 1440 "parser.yy"
     6788  case 353:
     6789
     6790/* Line 1806 of yacc.c  */
     6791#line 1453 "parser.yy"
    69276792    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69286793    break;
    69296794
    6930   case 352:
    6931 
    6932 /* Line 1806 of yacc.c  */
    6933 #line 1442 "parser.yy"
     6795  case 354:
     6796
     6797/* Line 1806 of yacc.c  */
     6798#line 1455 "parser.yy"
    69346799    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69356800    break;
    69366801
    6937   case 353:
    6938 
    6939 /* Line 1806 of yacc.c  */
    6940 #line 1444 "parser.yy"
     6802  case 355:
     6803
     6804/* Line 1806 of yacc.c  */
     6805#line 1457 "parser.yy"
    69416806    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69426807    break;
    69436808
    6944   case 355:
    6945 
    6946 /* Line 1806 of yacc.c  */
    6947 #line 1450 "parser.yy"
     6809  case 357:
     6810
     6811/* Line 1806 of yacc.c  */
     6812#line 1463 "parser.yy"
    69486813    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69496814    break;
    69506815
    6951   case 356:
    6952 
    6953 /* Line 1806 of yacc.c  */
    6954 #line 1452 "parser.yy"
     6816  case 358:
     6817
     6818/* Line 1806 of yacc.c  */
     6819#line 1465 "parser.yy"
    69556820    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69566821    break;
    69576822
    6958   case 358:
    6959 
    6960 /* Line 1806 of yacc.c  */
    6961 #line 1458 "parser.yy"
     6823  case 360:
     6824
     6825/* Line 1806 of yacc.c  */
     6826#line 1471 "parser.yy"
    69626827    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69636828    break;
    69646829
    6965   case 359:
    6966 
    6967 /* Line 1806 of yacc.c  */
    6968 #line 1460 "parser.yy"
     6830  case 361:
     6831
     6832/* Line 1806 of yacc.c  */
     6833#line 1473 "parser.yy"
    69696834    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69706835    break;
    69716836
    6972   case 360:
    6973 
    6974 /* Line 1806 of yacc.c  */
    6975 #line 1462 "parser.yy"
     6837  case 362:
     6838
     6839/* Line 1806 of yacc.c  */
     6840#line 1475 "parser.yy"
    69766841    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    69776842    break;
    69786843
    6979   case 361:
    6980 
    6981 /* Line 1806 of yacc.c  */
    6982 #line 1467 "parser.yy"
     6844  case 363:
     6845
     6846/* Line 1806 of yacc.c  */
     6847#line 1480 "parser.yy"
    69836848    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    69846849    break;
    69856850
    6986   case 362:
    6987 
    6988 /* Line 1806 of yacc.c  */
    6989 #line 1469 "parser.yy"
     6851  case 364:
     6852
     6853/* Line 1806 of yacc.c  */
     6854#line 1482 "parser.yy"
    69906855    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    69916856    break;
    69926857
    6993   case 363:
    6994 
    6995 /* Line 1806 of yacc.c  */
    6996 #line 1471 "parser.yy"
     6858  case 365:
     6859
     6860/* Line 1806 of yacc.c  */
     6861#line 1484 "parser.yy"
    69976862    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    69986863    break;
    69996864
    7000   case 366:
    7001 
    7002 /* Line 1806 of yacc.c  */
    7003 #line 1481 "parser.yy"
     6865  case 368:
     6866
     6867/* Line 1806 of yacc.c  */
     6868#line 1494 "parser.yy"
    70046869    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    70056870    break;
    70066871
    7007   case 367:
    7008 
    7009 /* Line 1806 of yacc.c  */
    7010 #line 1483 "parser.yy"
     6872  case 369:
     6873
     6874/* Line 1806 of yacc.c  */
     6875#line 1496 "parser.yy"
    70116876    {
    70126877                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    70156880    break;
    70166881
    7017   case 368:
    7018 
    7019 /* Line 1806 of yacc.c  */
    7020 #line 1488 "parser.yy"
     6882  case 370:
     6883
     6884/* Line 1806 of yacc.c  */
     6885#line 1501 "parser.yy"
    70216886    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    70226887    break;
    70236888
    7024   case 369:
    7025 
    7026 /* Line 1806 of yacc.c  */
    7027 #line 1490 "parser.yy"
     6889  case 371:
     6890
     6891/* Line 1806 of yacc.c  */
     6892#line 1503 "parser.yy"
    70286893    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    70296894    break;
    70306895
    7031   case 370:
    7032 
    7033 /* Line 1806 of yacc.c  */
    7034 #line 1492 "parser.yy"
     6896  case 372:
     6897
     6898/* Line 1806 of yacc.c  */
     6899#line 1505 "parser.yy"
    70356900    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    70366901    break;
    70376902
    7038   case 371:
    7039 
    7040 /* Line 1806 of yacc.c  */
    7041 #line 1494 "parser.yy"
     6903  case 373:
     6904
     6905/* Line 1806 of yacc.c  */
     6906#line 1507 "parser.yy"
    70426907    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    70436908    break;
    70446909
    7045   case 372:
    7046 
    7047 /* Line 1806 of yacc.c  */
    7048 #line 1499 "parser.yy"
     6910  case 374:
     6911
     6912/* Line 1806 of yacc.c  */
     6913#line 1512 "parser.yy"
    70496914    { (yyval.aggKey) = DeclarationNode::Struct; }
    70506915    break;
    70516916
    7052   case 373:
    7053 
    7054 /* Line 1806 of yacc.c  */
    7055 #line 1501 "parser.yy"
     6917  case 375:
     6918
     6919/* Line 1806 of yacc.c  */
     6920#line 1514 "parser.yy"
    70566921    { (yyval.aggKey) = DeclarationNode::Union; }
    70576922    break;
    70586923
    7059   case 374:
    7060 
    7061 /* Line 1806 of yacc.c  */
    7062 #line 1506 "parser.yy"
     6924  case 376:
     6925
     6926/* Line 1806 of yacc.c  */
     6927#line 1519 "parser.yy"
    70636928    { (yyval.decl) = 0; }
    70646929    break;
    70656930
    7066   case 375:
    7067 
    7068 /* Line 1806 of yacc.c  */
    7069 #line 1508 "parser.yy"
     6931  case 377:
     6932
     6933/* Line 1806 of yacc.c  */
     6934#line 1521 "parser.yy"
    70706935    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    70716936    break;
    70726937
    7073   case 377:
    7074 
    7075 /* Line 1806 of yacc.c  */
    7076 #line 1514 "parser.yy"
     6938  case 379:
     6939
     6940/* Line 1806 of yacc.c  */
     6941#line 1527 "parser.yy"
    70776942    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    70786943    break;
    70796944
    7080   case 379:
    7081 
    7082 /* Line 1806 of yacc.c  */
    7083 #line 1517 "parser.yy"
     6945  case 381:
     6946
     6947/* Line 1806 of yacc.c  */
     6948#line 1530 "parser.yy"
    70846949    {   // mark all fields in list
    70856950                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    70896954    break;
    70906955
    7091   case 381:
    7092 
    7093 /* Line 1806 of yacc.c  */
    7094 #line 1527 "parser.yy"
     6956  case 383:
     6957
     6958/* Line 1806 of yacc.c  */
     6959#line 1540 "parser.yy"
    70956960    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
    70966961    break;
    70976962
    7098   case 382:
    7099 
    7100 /* Line 1806 of yacc.c  */
    7101 #line 1529 "parser.yy"
     6963  case 384:
     6964
     6965/* Line 1806 of yacc.c  */
     6966#line 1542 "parser.yy"
    71026967    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
    71036968    break;
    71046969
    7105   case 383:
    7106 
    7107 /* Line 1806 of yacc.c  */
    7108 #line 1531 "parser.yy"
     6970  case 385:
     6971
     6972/* Line 1806 of yacc.c  */
     6973#line 1544 "parser.yy"
    71096974    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    71106975    break;
    71116976
    7112   case 384:
    7113 
    7114 /* Line 1806 of yacc.c  */
    7115 #line 1536 "parser.yy"
     6977  case 386:
     6978
     6979/* Line 1806 of yacc.c  */
     6980#line 1549 "parser.yy"
    71166981    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    71176982    break;
    71186983
    7119   case 385:
    7120 
    7121 /* Line 1806 of yacc.c  */
    7122 #line 1538 "parser.yy"
     6984  case 387:
     6985
     6986/* Line 1806 of yacc.c  */
     6987#line 1551 "parser.yy"
    71236988    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    71246989    break;
    71256990
    7126   case 386:
    7127 
    7128 /* Line 1806 of yacc.c  */
    7129 #line 1543 "parser.yy"
     6991  case 388:
     6992
     6993/* Line 1806 of yacc.c  */
     6994#line 1556 "parser.yy"
    71306995    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    71316996    break;
    71326997
    7133   case 387:
    7134 
    7135 /* Line 1806 of yacc.c  */
    7136 #line 1545 "parser.yy"
     6998  case 389:
     6999
     7000/* Line 1806 of yacc.c  */
     7001#line 1558 "parser.yy"
    71377002    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    71387003    break;
    71397004
    7140   case 388:
    7141 
    7142 /* Line 1806 of yacc.c  */
    7143 #line 1548 "parser.yy"
     7005  case 390:
     7006
     7007/* Line 1806 of yacc.c  */
     7008#line 1561 "parser.yy"
    71447009    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71457010    break;
    71467011
    7147   case 389:
    7148 
    7149 /* Line 1806 of yacc.c  */
    7150 #line 1551 "parser.yy"
     7012  case 391:
     7013
     7014/* Line 1806 of yacc.c  */
     7015#line 1564 "parser.yy"
    71517016    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    71527017    break;
    71537018
    7154   case 391:
    7155 
    7156 /* Line 1806 of yacc.c  */
    7157 #line 1557 "parser.yy"
     7019  case 393:
     7020
     7021/* Line 1806 of yacc.c  */
     7022#line 1570 "parser.yy"
    71587023    { (yyval.en) = 0; }
    71597024    break;
    71607025
    7161   case 392:
    7162 
    7163 /* Line 1806 of yacc.c  */
    7164 #line 1559 "parser.yy"
     7026  case 394:
     7027
     7028/* Line 1806 of yacc.c  */
     7029#line 1572 "parser.yy"
    71657030    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    71667031    break;
    71677032
    7168   case 393:
    7169 
    7170 /* Line 1806 of yacc.c  */
    7171 #line 1564 "parser.yy"
     7033  case 395:
     7034
     7035/* Line 1806 of yacc.c  */
     7036#line 1577 "parser.yy"
    71727037    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    71737038    break;
    71747039
    7175   case 395:
    7176 
    7177 /* Line 1806 of yacc.c  */
    7178 #line 1573 "parser.yy"
     7040  case 397:
     7041
     7042/* Line 1806 of yacc.c  */
     7043#line 1586 "parser.yy"
    71797044    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    71807045    break;
    71817046
    7182   case 396:
    7183 
    7184 /* Line 1806 of yacc.c  */
    7185 #line 1575 "parser.yy"
     7047  case 398:
     7048
     7049/* Line 1806 of yacc.c  */
     7050#line 1588 "parser.yy"
    71867051    {
    71877052                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    71907055    break;
    71917056
    7192   case 397:
    7193 
    7194 /* Line 1806 of yacc.c  */
    7195 #line 1580 "parser.yy"
     7057  case 399:
     7058
     7059/* Line 1806 of yacc.c  */
     7060#line 1593 "parser.yy"
    71967061    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    71977062    break;
    71987063
    7199   case 398:
    7200 
    7201 /* Line 1806 of yacc.c  */
    7202 #line 1582 "parser.yy"
     7064  case 400:
     7065
     7066/* Line 1806 of yacc.c  */
     7067#line 1595 "parser.yy"
    72037068    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
    72047069    break;
    72057070
    7206   case 399:
    7207 
    7208 /* Line 1806 of yacc.c  */
    7209 #line 1587 "parser.yy"
     7071  case 401:
     7072
     7073/* Line 1806 of yacc.c  */
     7074#line 1600 "parser.yy"
    72107075    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    72117076    break;
    72127077
    7213   case 400:
    7214 
    7215 /* Line 1806 of yacc.c  */
    7216 #line 1589 "parser.yy"
     7078  case 402:
     7079
     7080/* Line 1806 of yacc.c  */
     7081#line 1602 "parser.yy"
    72177082    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    72187083    break;
    72197084
    7220   case 401:
    7221 
    7222 /* Line 1806 of yacc.c  */
    7223 #line 1594 "parser.yy"
     7085  case 403:
     7086
     7087/* Line 1806 of yacc.c  */
     7088#line 1607 "parser.yy"
    72247089    { (yyval.en) = 0; }
    72257090    break;
    72267091
    7227   case 402:
    7228 
    7229 /* Line 1806 of yacc.c  */
    7230 #line 1596 "parser.yy"
     7092  case 404:
     7093
     7094/* Line 1806 of yacc.c  */
     7095#line 1609 "parser.yy"
    72317096    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    72327097    break;
    72337098
    7234   case 403:
    7235 
    7236 /* Line 1806 of yacc.c  */
    7237 #line 1603 "parser.yy"
     7099  case 405:
     7100
     7101/* Line 1806 of yacc.c  */
     7102#line 1616 "parser.yy"
    72387103    { (yyval.decl) = 0; }
    72397104    break;
    72407105
    7241   case 407:
    7242 
    7243 /* Line 1806 of yacc.c  */
    7244 #line 1611 "parser.yy"
     7106  case 409:
     7107
     7108/* Line 1806 of yacc.c  */
     7109#line 1624 "parser.yy"
    72457110    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72467111    break;
    72477112
    7248   case 408:
    7249 
    7250 /* Line 1806 of yacc.c  */
    7251 #line 1613 "parser.yy"
     7113  case 410:
     7114
     7115/* Line 1806 of yacc.c  */
     7116#line 1626 "parser.yy"
    72527117    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72537118    break;
    72547119
    7255   case 409:
    7256 
    7257 /* Line 1806 of yacc.c  */
    7258 #line 1615 "parser.yy"
     7120  case 411:
     7121
     7122/* Line 1806 of yacc.c  */
     7123#line 1628 "parser.yy"
    72597124    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    72607125    break;
    72617126
    7262   case 411:
    7263 
    7264 /* Line 1806 of yacc.c  */
    7265 #line 1623 "parser.yy"
     7127  case 413:
     7128
     7129/* Line 1806 of yacc.c  */
     7130#line 1636 "parser.yy"
    72667131    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72677132    break;
    72687133
    7269   case 412:
    7270 
    7271 /* Line 1806 of yacc.c  */
    7272 #line 1625 "parser.yy"
     7134  case 414:
     7135
     7136/* Line 1806 of yacc.c  */
     7137#line 1638 "parser.yy"
    72737138    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72747139    break;
    72757140
    7276   case 413:
    7277 
    7278 /* Line 1806 of yacc.c  */
    7279 #line 1627 "parser.yy"
     7141  case 415:
     7142
     7143/* Line 1806 of yacc.c  */
     7144#line 1640 "parser.yy"
    72807145    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    72817146    break;
    72827147
    7283   case 415:
    7284 
    7285 /* Line 1806 of yacc.c  */
    7286 #line 1633 "parser.yy"
     7148  case 417:
     7149
     7150/* Line 1806 of yacc.c  */
     7151#line 1646 "parser.yy"
    72877152    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    72887153    break;
    72897154
    7290   case 416:
    7291 
    7292 /* Line 1806 of yacc.c  */
    7293 #line 1638 "parser.yy"
     7155  case 418:
     7156
     7157/* Line 1806 of yacc.c  */
     7158#line 1651 "parser.yy"
    72947159    { (yyval.decl) = 0; }
    72957160    break;
    72967161
    7297   case 419:
    7298 
    7299 /* Line 1806 of yacc.c  */
    7300 #line 1645 "parser.yy"
     7162  case 421:
     7163
     7164/* Line 1806 of yacc.c  */
     7165#line 1658 "parser.yy"
    73017166    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    73027167    break;
    73037168
    7304   case 422:
    7305 
    7306 /* Line 1806 of yacc.c  */
    7307 #line 1652 "parser.yy"
     7169  case 424:
     7170
     7171/* Line 1806 of yacc.c  */
     7172#line 1665 "parser.yy"
    73087173    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73097174    break;
    73107175
    7311   case 423:
    7312 
    7313 /* Line 1806 of yacc.c  */
    7314 #line 1654 "parser.yy"
     7176  case 425:
     7177
     7178/* Line 1806 of yacc.c  */
     7179#line 1667 "parser.yy"
    73157180    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    73167181    break;
    73177182
    7318   case 425:
    7319 
    7320 /* Line 1806 of yacc.c  */
    7321 #line 1663 "parser.yy"
     7183  case 427:
     7184
     7185/* Line 1806 of yacc.c  */
     7186#line 1676 "parser.yy"
    73227187    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73237188    break;
    73247189
    7325   case 426:
    7326 
    7327 /* Line 1806 of yacc.c  */
    7328 #line 1666 "parser.yy"
     7190  case 428:
     7191
     7192/* Line 1806 of yacc.c  */
     7193#line 1679 "parser.yy"
    73297194    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    73307195    break;
    73317196
    7332   case 427:
    7333 
    7334 /* Line 1806 of yacc.c  */
    7335 #line 1668 "parser.yy"
     7197  case 429:
     7198
     7199/* Line 1806 of yacc.c  */
     7200#line 1681 "parser.yy"
    73367201    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    73377202    break;
    73387203
    7339   case 432:
    7340 
    7341 /* Line 1806 of yacc.c  */
    7342 #line 1678 "parser.yy"
     7204  case 434:
     7205
     7206/* Line 1806 of yacc.c  */
     7207#line 1691 "parser.yy"
    73437208    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73447209    break;
    73457210
    7346   case 434:
    7347 
    7348 /* Line 1806 of yacc.c  */
    7349 #line 1684 "parser.yy"
     7211  case 436:
     7212
     7213/* Line 1806 of yacc.c  */
     7214#line 1697 "parser.yy"
    73507215    {
    73517216                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73547219    break;
    73557220
    7356   case 435:
    7357 
    7358 /* Line 1806 of yacc.c  */
    7359 #line 1689 "parser.yy"
     7221  case 437:
     7222
     7223/* Line 1806 of yacc.c  */
     7224#line 1702 "parser.yy"
    73607225    {
    73617226                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    73647229    break;
    73657230
    7366   case 437:
    7367 
    7368 /* Line 1806 of yacc.c  */
    7369 #line 1698 "parser.yy"
     7231  case 439:
     7232
     7233/* Line 1806 of yacc.c  */
     7234#line 1711 "parser.yy"
    73707235    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73717236    break;
    73727237
    7373   case 438:
    7374 
    7375 /* Line 1806 of yacc.c  */
    7376 #line 1707 "parser.yy"
     7238  case 440:
     7239
     7240/* Line 1806 of yacc.c  */
     7241#line 1720 "parser.yy"
    73777242    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    73787243    break;
    73797244
    7380   case 439:
    7381 
    7382 /* Line 1806 of yacc.c  */
    7383 #line 1709 "parser.yy"
     7245  case 441:
     7246
     7247/* Line 1806 of yacc.c  */
     7248#line 1722 "parser.yy"
    73847249    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    73857250    break;
    73867251
    7387   case 451:
    7388 
    7389 /* Line 1806 of yacc.c  */
    7390 #line 1734 "parser.yy"
     7252  case 453:
     7253
     7254/* Line 1806 of yacc.c  */
     7255#line 1747 "parser.yy"
    73917256    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73927257    break;
    73937258
    7394   case 455:
    7395 
    7396 /* Line 1806 of yacc.c  */
    7397 #line 1742 "parser.yy"
     7259  case 457:
     7260
     7261/* Line 1806 of yacc.c  */
     7262#line 1755 "parser.yy"
    73987263    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    73997264    break;
    74007265
    7401   case 456:
    7402 
    7403 /* Line 1806 of yacc.c  */
    7404 #line 1747 "parser.yy"
     7266  case 458:
     7267
     7268/* Line 1806 of yacc.c  */
     7269#line 1760 "parser.yy"
    74057270    { (yyval.in) = 0; }
    74067271    break;
    74077272
    7408   case 457:
    7409 
    7410 /* Line 1806 of yacc.c  */
    7411 #line 1749 "parser.yy"
     7273  case 459:
     7274
     7275/* Line 1806 of yacc.c  */
     7276#line 1762 "parser.yy"
    74127277    { (yyval.in) = (yyvsp[(2) - (2)].in); }
    74137278    break;
    74147279
    7415   case 458:
    7416 
    7417 /* Line 1806 of yacc.c  */
    7418 #line 1751 "parser.yy"
     7280  case 460:
     7281
     7282/* Line 1806 of yacc.c  */
     7283#line 1764 "parser.yy"
    74197284    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    74207285    break;
    74217286
    7422   case 459:
    7423 
    7424 /* Line 1806 of yacc.c  */
    7425 #line 1755 "parser.yy"
     7287  case 461:
     7288
     7289/* Line 1806 of yacc.c  */
     7290#line 1768 "parser.yy"
    74267291    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    74277292    break;
    74287293
    7429   case 460:
    7430 
    7431 /* Line 1806 of yacc.c  */
    7432 #line 1756 "parser.yy"
     7294  case 462:
     7295
     7296/* Line 1806 of yacc.c  */
     7297#line 1769 "parser.yy"
    74337298    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    74347299    break;
    74357300
    7436   case 461:
    7437 
    7438 /* Line 1806 of yacc.c  */
    7439 #line 1761 "parser.yy"
     7301  case 463:
     7302
     7303/* Line 1806 of yacc.c  */
     7304#line 1774 "parser.yy"
    74407305    { (yyval.in) = 0; }
    74417306    break;
    74427307
    7443   case 463:
    7444 
    7445 /* Line 1806 of yacc.c  */
    7446 #line 1763 "parser.yy"
     7308  case 465:
     7309
     7310/* Line 1806 of yacc.c  */
     7311#line 1776 "parser.yy"
    74477312    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    74487313    break;
    74497314
    7450   case 464:
    7451 
    7452 /* Line 1806 of yacc.c  */
    7453 #line 1764 "parser.yy"
     7315  case 466:
     7316
     7317/* Line 1806 of yacc.c  */
     7318#line 1777 "parser.yy"
    74547319    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    74557320    break;
    74567321
    7457   case 465:
    7458 
    7459 /* Line 1806 of yacc.c  */
    7460 #line 1766 "parser.yy"
     7322  case 467:
     7323
     7324/* Line 1806 of yacc.c  */
     7325#line 1779 "parser.yy"
    74617326    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    74627327    break;
    74637328
    7464   case 467:
    7465 
    7466 /* Line 1806 of yacc.c  */
    7467 #line 1782 "parser.yy"
     7329  case 469:
     7330
     7331/* Line 1806 of yacc.c  */
     7332#line 1795 "parser.yy"
    74687333    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    74697334    break;
    74707335
    7471   case 469:
    7472 
    7473 /* Line 1806 of yacc.c  */
    7474 #line 1788 "parser.yy"
     7336  case 471:
     7337
     7338/* Line 1806 of yacc.c  */
     7339#line 1801 "parser.yy"
    74757340    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    74767341    break;
    74777342
    7478   case 470:
    7479 
    7480 /* Line 1806 of yacc.c  */
    7481 #line 1794 "parser.yy"
     7343  case 472:
     7344
     7345/* Line 1806 of yacc.c  */
     7346#line 1807 "parser.yy"
    74827347    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    74837348    break;
    74847349
    7485   case 471:
    7486 
    7487 /* Line 1806 of yacc.c  */
    7488 #line 1797 "parser.yy"
     7350  case 473:
     7351
     7352/* Line 1806 of yacc.c  */
     7353#line 1810 "parser.yy"
    74897354    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74907355    break;
    74917356
    7492   case 472:
    7493 
    7494 /* Line 1806 of yacc.c  */
    7495 #line 1799 "parser.yy"
     7357  case 474:
     7358
     7359/* Line 1806 of yacc.c  */
     7360#line 1812 "parser.yy"
    74967361    { (yyval.en) = (yyvsp[(3) - (5)].en); }
    74977362    break;
    74987363
    7499   case 473:
    7500 
    7501 /* Line 1806 of yacc.c  */
    7502 #line 1801 "parser.yy"
     7364  case 475:
     7365
     7366/* Line 1806 of yacc.c  */
     7367#line 1814 "parser.yy"
    75037368    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    75047369    break;
    75057370
    7506   case 474:
    7507 
    7508 /* Line 1806 of yacc.c  */
    7509 #line 1803 "parser.yy"
     7371  case 476:
     7372
     7373/* Line 1806 of yacc.c  */
     7374#line 1816 "parser.yy"
    75107375    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    75117376    break;
    75127377
    7513   case 476:
    7514 
    7515 /* Line 1806 of yacc.c  */
    7516 #line 1827 "parser.yy"
     7378  case 478:
     7379
     7380/* Line 1806 of yacc.c  */
     7381#line 1840 "parser.yy"
    75177382    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75187383    break;
    75197384
    7520   case 477:
    7521 
    7522 /* Line 1806 of yacc.c  */
    7523 #line 1829 "parser.yy"
     7385  case 479:
     7386
     7387/* Line 1806 of yacc.c  */
     7388#line 1842 "parser.yy"
    75247389    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75257390    break;
    75267391
    7527   case 478:
    7528 
    7529 /* Line 1806 of yacc.c  */
    7530 #line 1831 "parser.yy"
     7392  case 480:
     7393
     7394/* Line 1806 of yacc.c  */
     7395#line 1844 "parser.yy"
    75317396    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    75327397    break;
    75337398
    7534   case 480:
    7535 
    7536 /* Line 1806 of yacc.c  */
    7537 #line 1837 "parser.yy"
     7399  case 482:
     7400
     7401/* Line 1806 of yacc.c  */
     7402#line 1850 "parser.yy"
    75387403    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    75397404    break;
    75407405
    7541   case 481:
    7542 
    7543 /* Line 1806 of yacc.c  */
    7544 #line 1839 "parser.yy"
     7406  case 483:
     7407
     7408/* Line 1806 of yacc.c  */
     7409#line 1852 "parser.yy"
    75457410    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    75467411    break;
    75477412
    7548   case 482:
    7549 
    7550 /* Line 1806 of yacc.c  */
    7551 #line 1844 "parser.yy"
     7413  case 484:
     7414
     7415/* Line 1806 of yacc.c  */
     7416#line 1857 "parser.yy"
    75527417    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    75537418    break;
    75547419
    7555   case 484:
    7556 
    7557 /* Line 1806 of yacc.c  */
    7558 #line 1850 "parser.yy"
     7420  case 486:
     7421
     7422/* Line 1806 of yacc.c  */
     7423#line 1863 "parser.yy"
    75597424    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    75607425    break;
    75617426
    7562   case 485:
    7563 
    7564 /* Line 1806 of yacc.c  */
    7565 #line 1855 "parser.yy"
     7427  case 487:
     7428
     7429/* Line 1806 of yacc.c  */
     7430#line 1868 "parser.yy"
    75667431    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    75677432    break;
    75687433
    7569   case 486:
    7570 
    7571 /* Line 1806 of yacc.c  */
    7572 #line 1857 "parser.yy"
     7434  case 488:
     7435
     7436/* Line 1806 of yacc.c  */
     7437#line 1870 "parser.yy"
    75737438    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
    75747439    break;
    75757440
    7576   case 488:
    7577 
    7578 /* Line 1806 of yacc.c  */
    7579 #line 1863 "parser.yy"
     7441  case 490:
     7442
     7443/* Line 1806 of yacc.c  */
     7444#line 1876 "parser.yy"
    75807445    { (yyval.tclass) = DeclarationNode::Otype; }
    75817446    break;
    75827447
    7583   case 489:
    7584 
    7585 /* Line 1806 of yacc.c  */
    7586 #line 1865 "parser.yy"
     7448  case 491:
     7449
     7450/* Line 1806 of yacc.c  */
     7451#line 1878 "parser.yy"
    75877452    { (yyval.tclass) = DeclarationNode::Ftype; }
    75887453    break;
    75897454
    7590   case 490:
    7591 
    7592 /* Line 1806 of yacc.c  */
    7593 #line 1867 "parser.yy"
     7455  case 492:
     7456
     7457/* Line 1806 of yacc.c  */
     7458#line 1880 "parser.yy"
    75947459    { (yyval.tclass) = DeclarationNode::Dtype; }
    75957460    break;
    75967461
    7597   case 491:
    7598 
    7599 /* Line 1806 of yacc.c  */
    7600 #line 1872 "parser.yy"
     7462  case 493:
     7463
     7464/* Line 1806 of yacc.c  */
     7465#line 1885 "parser.yy"
    76017466    { (yyval.decl) = 0; }
    76027467    break;
    76037468
    7604   case 492:
    7605 
    7606 /* Line 1806 of yacc.c  */
    7607 #line 1874 "parser.yy"
     7469  case 494:
     7470
     7471/* Line 1806 of yacc.c  */
     7472#line 1887 "parser.yy"
    76087473    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    76097474    break;
    76107475
    7611   case 493:
    7612 
    7613 /* Line 1806 of yacc.c  */
    7614 #line 1879 "parser.yy"
     7476  case 495:
     7477
     7478/* Line 1806 of yacc.c  */
     7479#line 1892 "parser.yy"
    76157480    {
    76167481                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    76197484    break;
    76207485
    7621   case 494:
    7622 
    7623 /* Line 1806 of yacc.c  */
    7624 #line 1884 "parser.yy"
     7486  case 496:
     7487
     7488/* Line 1806 of yacc.c  */
     7489#line 1897 "parser.yy"
    76257490    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    76267491    break;
    76277492
    7628   case 495:
    7629 
    7630 /* Line 1806 of yacc.c  */
    7631 #line 1886 "parser.yy"
     7493  case 497:
     7494
     7495/* Line 1806 of yacc.c  */
     7496#line 1899 "parser.yy"
    76327497    { (yyval.decl) = 0; }
    76337498    break;
    76347499
    7635   case 496:
    7636 
    7637 /* Line 1806 of yacc.c  */
    7638 #line 1891 "parser.yy"
     7500  case 498:
     7501
     7502/* Line 1806 of yacc.c  */
     7503#line 1904 "parser.yy"
    76397504    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    76407505    break;
    76417506
    7642   case 498:
    7643 
    7644 /* Line 1806 of yacc.c  */
    7645 #line 1894 "parser.yy"
     7507  case 500:
     7508
     7509/* Line 1806 of yacc.c  */
     7510#line 1907 "parser.yy"
    76467511    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
    76477512    break;
    76487513
    7649   case 499:
    7650 
    7651 /* Line 1806 of yacc.c  */
    7652 #line 1896 "parser.yy"
     7514  case 501:
     7515
     7516/* Line 1806 of yacc.c  */
     7517#line 1909 "parser.yy"
    76537518    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    76547519    break;
    76557520
    7656   case 500:
    7657 
    7658 /* Line 1806 of yacc.c  */
    7659 #line 1901 "parser.yy"
     7521  case 502:
     7522
     7523/* Line 1806 of yacc.c  */
     7524#line 1914 "parser.yy"
    76607525    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    76617526    break;
    76627527
    7663   case 501:
    7664 
    7665 /* Line 1806 of yacc.c  */
    7666 #line 1903 "parser.yy"
     7528  case 503:
     7529
     7530/* Line 1806 of yacc.c  */
     7531#line 1916 "parser.yy"
    76677532    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    76687533    break;
    76697534
    7670   case 502:
    7671 
    7672 /* Line 1806 of yacc.c  */
    7673 #line 1905 "parser.yy"
     7535  case 504:
     7536
     7537/* Line 1806 of yacc.c  */
     7538#line 1918 "parser.yy"
    76747539    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    76757540    break;
    76767541
    7677   case 503:
    7678 
    7679 /* Line 1806 of yacc.c  */
    7680 #line 1910 "parser.yy"
     7542  case 505:
     7543
     7544/* Line 1806 of yacc.c  */
     7545#line 1923 "parser.yy"
    76817546    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    76827547    break;
    76837548
    7684   case 504:
    7685 
    7686 /* Line 1806 of yacc.c  */
    7687 #line 1912 "parser.yy"
     7549  case 506:
     7550
     7551/* Line 1806 of yacc.c  */
     7552#line 1925 "parser.yy"
    76887553    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    76897554    break;
    76907555
    7691   case 505:
    7692 
    7693 /* Line 1806 of yacc.c  */
    7694 #line 1917 "parser.yy"
     7556  case 507:
     7557
     7558/* Line 1806 of yacc.c  */
     7559#line 1930 "parser.yy"
    76957560    {
    76967561                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    76997564    break;
    77007565
    7701   case 506:
    7702 
    7703 /* Line 1806 of yacc.c  */
    7704 #line 1922 "parser.yy"
     7566  case 508:
     7567
     7568/* Line 1806 of yacc.c  */
     7569#line 1935 "parser.yy"
    77057570    {
    77067571                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    77097574    break;
    77107575
    7711   case 507:
    7712 
    7713 /* Line 1806 of yacc.c  */
    7714 #line 1930 "parser.yy"
     7576  case 509:
     7577
     7578/* Line 1806 of yacc.c  */
     7579#line 1943 "parser.yy"
    77157580    {
    77167581                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    77197584    break;
    77207585
    7721   case 508:
    7722 
    7723 /* Line 1806 of yacc.c  */
    7724 #line 1935 "parser.yy"
     7586  case 510:
     7587
     7588/* Line 1806 of yacc.c  */
     7589#line 1948 "parser.yy"
    77257590    {
    77267591                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    77297594    break;
    77307595
    7731   case 509:
    7732 
    7733 /* Line 1806 of yacc.c  */
    7734 #line 1940 "parser.yy"
     7596  case 511:
     7597
     7598/* Line 1806 of yacc.c  */
     7599#line 1953 "parser.yy"
    77357600    {
    77367601                        typedefTable.leaveTrait();
     
    77407605    break;
    77417606
    7742   case 511:
    7743 
    7744 /* Line 1806 of yacc.c  */
    7745 #line 1950 "parser.yy"
     7607  case 513:
     7608
     7609/* Line 1806 of yacc.c  */
     7610#line 1963 "parser.yy"
    77467611    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    77477612    break;
    77487613
    7749   case 514:
    7750 
    7751 /* Line 1806 of yacc.c  */
    7752 #line 1960 "parser.yy"
     7614  case 516:
     7615
     7616/* Line 1806 of yacc.c  */
     7617#line 1973 "parser.yy"
    77537618    {
    77547619                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77577622    break;
    77587623
    7759   case 515:
    7760 
    7761 /* Line 1806 of yacc.c  */
    7762 #line 1965 "parser.yy"
     7624  case 517:
     7625
     7626/* Line 1806 of yacc.c  */
     7627#line 1978 "parser.yy"
    77637628    {
    77647629                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77677632    break;
    77687633
    7769   case 516:
    7770 
    7771 /* Line 1806 of yacc.c  */
    7772 #line 1970 "parser.yy"
     7634  case 518:
     7635
     7636/* Line 1806 of yacc.c  */
     7637#line 1983 "parser.yy"
    77737638    {
    77747639                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    77777642    break;
    77787643
    7779   case 517:
    7780 
    7781 /* Line 1806 of yacc.c  */
    7782 #line 1978 "parser.yy"
     7644  case 519:
     7645
     7646/* Line 1806 of yacc.c  */
     7647#line 1991 "parser.yy"
    77837648    {
    77847649                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77877652    break;
    77887653
    7789   case 518:
    7790 
    7791 /* Line 1806 of yacc.c  */
    7792 #line 1983 "parser.yy"
     7654  case 520:
     7655
     7656/* Line 1806 of yacc.c  */
     7657#line 1996 "parser.yy"
    77937658    {
    77947659                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    77977662    break;
    77987663
    7799   case 519:
    7800 
    7801 /* Line 1806 of yacc.c  */
    7802 #line 1993 "parser.yy"
     7664  case 521:
     7665
     7666/* Line 1806 of yacc.c  */
     7667#line 2006 "parser.yy"
    78037668    {}
    78047669    break;
    78057670
    7806   case 520:
    7807 
    7808 /* Line 1806 of yacc.c  */
    7809 #line 1995 "parser.yy"
     7671  case 522:
     7672
     7673/* Line 1806 of yacc.c  */
     7674#line 2008 "parser.yy"
    78107675    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    78117676    break;
    78127677
    7813   case 522:
    7814 
    7815 /* Line 1806 of yacc.c  */
    7816 #line 2001 "parser.yy"
     7678  case 524:
     7679
     7680/* Line 1806 of yacc.c  */
     7681#line 2014 "parser.yy"
    78177682    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    78187683    break;
    78197684
    7820   case 523:
    7821 
    7822 /* Line 1806 of yacc.c  */
    7823 #line 2006 "parser.yy"
     7685  case 525:
     7686
     7687/* Line 1806 of yacc.c  */
     7688#line 2019 "parser.yy"
    78247689    { (yyval.decl) = 0; }
    78257690    break;
    78267691
    7827   case 527:
    7828 
    7829 /* Line 1806 of yacc.c  */
    7830 #line 2014 "parser.yy"
     7692  case 529:
     7693
     7694/* Line 1806 of yacc.c  */
     7695#line 2027 "parser.yy"
    78317696    {}
    78327697    break;
    78337698
    7834   case 528:
    7835 
    7836 /* Line 1806 of yacc.c  */
    7837 #line 2016 "parser.yy"
     7699  case 530:
     7700
     7701/* Line 1806 of yacc.c  */
     7702#line 2029 "parser.yy"
    78387703    {
    78397704                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    78427707    break;
    78437708
    7844   case 529:
    7845 
    7846 /* Line 1806 of yacc.c  */
    7847 #line 2021 "parser.yy"
     7709  case 531:
     7710
     7711/* Line 1806 of yacc.c  */
     7712#line 2034 "parser.yy"
    78487713    {
    78497714                        linkage = linkageStack.top();
     
    78537718    break;
    78547719
    7855   case 530:
    7856 
    7857 /* Line 1806 of yacc.c  */
    7858 #line 2027 "parser.yy"
     7720  case 532:
     7721
     7722/* Line 1806 of yacc.c  */
     7723#line 2040 "parser.yy"
    78597724    {   // mark all fields in list
    78607725                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    78647729    break;
    78657730
    7866   case 532:
    7867 
    7868 /* Line 1806 of yacc.c  */
    7869 #line 2042 "parser.yy"
     7731  case 534:
     7732
     7733/* Line 1806 of yacc.c  */
     7734#line 2055 "parser.yy"
    78707735    {
    78717736                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78757740    break;
    78767741
    7877   case 533:
    7878 
    7879 /* Line 1806 of yacc.c  */
    7880 #line 2048 "parser.yy"
     7742  case 535:
     7743
     7744/* Line 1806 of yacc.c  */
     7745#line 2061 "parser.yy"
    78817746    {
    78827747                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78867751    break;
    78877752
    7888   case 534:
    7889 
    7890 /* Line 1806 of yacc.c  */
    7891 #line 2057 "parser.yy"
     7753  case 536:
     7754
     7755/* Line 1806 of yacc.c  */
     7756#line 2070 "parser.yy"
    78927757    {
    78937758                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78977762    break;
    78987763
    7899   case 535:
    7900 
    7901 /* Line 1806 of yacc.c  */
    7902 #line 2063 "parser.yy"
     7764  case 537:
     7765
     7766/* Line 1806 of yacc.c  */
     7767#line 2076 "parser.yy"
    79037768    {
    79047769                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79087773    break;
    79097774
    7910   case 536:
    7911 
    7912 /* Line 1806 of yacc.c  */
    7913 #line 2069 "parser.yy"
     7775  case 538:
     7776
     7777/* Line 1806 of yacc.c  */
     7778#line 2082 "parser.yy"
    79147779    {
    79157780                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79197784    break;
    79207785
    7921   case 537:
    7922 
    7923 /* Line 1806 of yacc.c  */
    7924 #line 2075 "parser.yy"
     7786  case 539:
     7787
     7788/* Line 1806 of yacc.c  */
     7789#line 2088 "parser.yy"
    79257790    {
    79267791                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79307795    break;
    79317796
    7932   case 538:
    7933 
    7934 /* Line 1806 of yacc.c  */
    7935 #line 2081 "parser.yy"
     7797  case 540:
     7798
     7799/* Line 1806 of yacc.c  */
     7800#line 2094 "parser.yy"
    79367801    {
    79377802                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79417806    break;
    79427807
    7943   case 539:
    7944 
    7945 /* Line 1806 of yacc.c  */
    7946 #line 2089 "parser.yy"
     7808  case 541:
     7809
     7810/* Line 1806 of yacc.c  */
     7811#line 2102 "parser.yy"
    79477812    {
    79487813                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79527817    break;
    79537818
    7954   case 540:
    7955 
    7956 /* Line 1806 of yacc.c  */
    7957 #line 2095 "parser.yy"
     7819  case 542:
     7820
     7821/* Line 1806 of yacc.c  */
     7822#line 2108 "parser.yy"
    79587823    {
    79597824                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79637828    break;
    79647829
    7965   case 541:
    7966 
    7967 /* Line 1806 of yacc.c  */
    7968 #line 2103 "parser.yy"
     7830  case 543:
     7831
     7832/* Line 1806 of yacc.c  */
     7833#line 2116 "parser.yy"
    79697834    {
    79707835                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79747839    break;
    79757840
    7976   case 542:
    7977 
    7978 /* Line 1806 of yacc.c  */
    7979 #line 2109 "parser.yy"
     7841  case 544:
     7842
     7843/* Line 1806 of yacc.c  */
     7844#line 2122 "parser.yy"
    79807845    {
    79817846                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    79857850    break;
    79867851
    7987   case 546:
    7988 
    7989 /* Line 1806 of yacc.c  */
    7990 #line 2124 "parser.yy"
     7852  case 548:
     7853
     7854/* Line 1806 of yacc.c  */
     7855#line 2137 "parser.yy"
    79917856    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    79927857    break;
    79937858
    7994   case 548:
    7995 
    7996 /* Line 1806 of yacc.c  */
    7997 #line 2129 "parser.yy"
     7859  case 550:
     7860
     7861/* Line 1806 of yacc.c  */
     7862#line 2142 "parser.yy"
    79987863    { delete (yyvsp[(3) - (5)].str); }
    79997864    break;
    80007865
    8001   case 549:
    8002 
    8003 /* Line 1806 of yacc.c  */
    8004 #line 2134 "parser.yy"
    8005     { (yyval.decl) = 0; }
    8006     break;
    8007 
    8008   case 552:
    8009 
    8010 /* Line 1806 of yacc.c  */
    8011 #line 2141 "parser.yy"
    8012     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8013     break;
    8014 
    8015   case 553:
     7866  case 551:
    80167867
    80177868/* Line 1806 of yacc.c  */
     
    80207871    break;
    80217872
    8022   case 558:
    8023 
    8024 /* Line 1806 of yacc.c  */
    8025 #line 2158 "parser.yy"
     7873  case 554:
     7874
     7875/* Line 1806 of yacc.c  */
     7876#line 2154 "parser.yy"
     7877    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7878    break;
     7879
     7880  case 555:
     7881
     7882/* Line 1806 of yacc.c  */
     7883#line 2160 "parser.yy"
     7884    { (yyval.decl) = 0; }
     7885    break;
     7886
     7887  case 560:
     7888
     7889/* Line 1806 of yacc.c  */
     7890#line 2171 "parser.yy"
    80267891    { delete (yyvsp[(3) - (4)].en); }
    80277892    break;
    80287893
    8029   case 559:
    8030 
    8031 /* Line 1806 of yacc.c  */
    8032 #line 2162 "parser.yy"
     7894  case 561:
     7895
     7896/* Line 1806 of yacc.c  */
     7897#line 2175 "parser.yy"
    80337898    { delete (yyvsp[(1) - (1)].tok); }
    80347899    break;
    80357900
    8036   case 560:
    8037 
    8038 /* Line 1806 of yacc.c  */
    8039 #line 2163 "parser.yy"
     7901  case 562:
     7902
     7903/* Line 1806 of yacc.c  */
     7904#line 2176 "parser.yy"
    80407905    { delete (yyvsp[(1) - (1)].decl); }
    80417906    break;
    80427907
    8043   case 561:
    8044 
    8045 /* Line 1806 of yacc.c  */
    8046 #line 2164 "parser.yy"
     7908  case 563:
     7909
     7910/* Line 1806 of yacc.c  */
     7911#line 2177 "parser.yy"
    80477912    { delete (yyvsp[(1) - (1)].decl); }
    80487913    break;
    80497914
    8050   case 562:
    8051 
    8052 /* Line 1806 of yacc.c  */
    8053 #line 2165 "parser.yy"
     7915  case 564:
     7916
     7917/* Line 1806 of yacc.c  */
     7918#line 2178 "parser.yy"
    80547919    { delete (yyvsp[(1) - (1)].decl); }
    80557920    break;
    80567921
    8057   case 563:
    8058 
    8059 /* Line 1806 of yacc.c  */
    8060 #line 2200 "parser.yy"
     7922  case 565:
     7923
     7924/* Line 1806 of yacc.c  */
     7925#line 2213 "parser.yy"
    80617926    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80627927    break;
    80637928
    8064   case 565:
    8065 
    8066 /* Line 1806 of yacc.c  */
    8067 #line 2203 "parser.yy"
     7929  case 567:
     7930
     7931/* Line 1806 of yacc.c  */
     7932#line 2216 "parser.yy"
    80687933    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80697934    break;
    80707935
    8071   case 566:
    8072 
    8073 /* Line 1806 of yacc.c  */
    8074 #line 2205 "parser.yy"
     7936  case 568:
     7937
     7938/* Line 1806 of yacc.c  */
     7939#line 2218 "parser.yy"
    80757940    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80767941    break;
    80777942
    8078   case 567:
    8079 
    8080 /* Line 1806 of yacc.c  */
    8081 #line 2210 "parser.yy"
     7943  case 569:
     7944
     7945/* Line 1806 of yacc.c  */
     7946#line 2223 "parser.yy"
    80827947    {
    80837948                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    80867951    break;
    80877952
    8088   case 568:
    8089 
    8090 /* Line 1806 of yacc.c  */
    8091 #line 2215 "parser.yy"
     7953  case 570:
     7954
     7955/* Line 1806 of yacc.c  */
     7956#line 2228 "parser.yy"
    80927957    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80937958    break;
    80947959
    8095   case 569:
    8096 
    8097 /* Line 1806 of yacc.c  */
    8098 #line 2220 "parser.yy"
     7960  case 571:
     7961
     7962/* Line 1806 of yacc.c  */
     7963#line 2233 "parser.yy"
    80997964    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81007965    break;
    81017966
    8102   case 570:
    8103 
    8104 /* Line 1806 of yacc.c  */
    8105 #line 2222 "parser.yy"
     7967  case 572:
     7968
     7969/* Line 1806 of yacc.c  */
     7970#line 2235 "parser.yy"
    81067971    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    81077972    break;
    81087973
    8109   case 571:
    8110 
    8111 /* Line 1806 of yacc.c  */
    8112 #line 2224 "parser.yy"
     7974  case 573:
     7975
     7976/* Line 1806 of yacc.c  */
     7977#line 2237 "parser.yy"
    81137978    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81147979    break;
    81157980
    8116   case 572:
    8117 
    8118 /* Line 1806 of yacc.c  */
    8119 #line 2229 "parser.yy"
     7981  case 574:
     7982
     7983/* Line 1806 of yacc.c  */
     7984#line 2242 "parser.yy"
    81207985    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    81217986    break;
    81227987
    8123   case 573:
    8124 
    8125 /* Line 1806 of yacc.c  */
    8126 #line 2231 "parser.yy"
     7988  case 575:
     7989
     7990/* Line 1806 of yacc.c  */
     7991#line 2244 "parser.yy"
    81277992    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81287993    break;
    81297994
    8130   case 574:
    8131 
    8132 /* Line 1806 of yacc.c  */
    8133 #line 2233 "parser.yy"
     7995  case 576:
     7996
     7997/* Line 1806 of yacc.c  */
     7998#line 2246 "parser.yy"
    81347999    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    81358000    break;
    81368001
    8137   case 575:
    8138 
    8139 /* Line 1806 of yacc.c  */
    8140 #line 2235 "parser.yy"
     8002  case 577:
     8003
     8004/* Line 1806 of yacc.c  */
     8005#line 2248 "parser.yy"
    81418006    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81428007    break;
    81438008
    8144   case 576:
    8145 
    8146 /* Line 1806 of yacc.c  */
    8147 #line 2240 "parser.yy"
     8009  case 578:
     8010
     8011/* Line 1806 of yacc.c  */
     8012#line 2253 "parser.yy"
    81488013    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81498014    break;
    81508015
    8151   case 577:
    8152 
    8153 /* Line 1806 of yacc.c  */
    8154 #line 2242 "parser.yy"
     8016  case 579:
     8017
     8018/* Line 1806 of yacc.c  */
     8019#line 2255 "parser.yy"
    81558020    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81568021    break;
    81578022
    8158   case 578:
    8159 
    8160 /* Line 1806 of yacc.c  */
    8161 #line 2251 "parser.yy"
     8023  case 580:
     8024
     8025/* Line 1806 of yacc.c  */
     8026#line 2264 "parser.yy"
    81628027    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81638028    break;
    81648029
    8165   case 580:
    8166 
    8167 /* Line 1806 of yacc.c  */
    8168 #line 2254 "parser.yy"
     8030  case 582:
     8031
     8032/* Line 1806 of yacc.c  */
     8033#line 2267 "parser.yy"
    81698034    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81708035    break;
    81718036
    8172   case 581:
    8173 
    8174 /* Line 1806 of yacc.c  */
    8175 #line 2259 "parser.yy"
     8037  case 583:
     8038
     8039/* Line 1806 of yacc.c  */
     8040#line 2272 "parser.yy"
    81768041    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    81778042    break;
    81788043
    8179   case 582:
    8180 
    8181 /* Line 1806 of yacc.c  */
    8182 #line 2261 "parser.yy"
     8044  case 584:
     8045
     8046/* Line 1806 of yacc.c  */
     8047#line 2274 "parser.yy"
    81838048    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    81848049    break;
    81858050
    8186   case 583:
    8187 
    8188 /* Line 1806 of yacc.c  */
    8189 #line 2263 "parser.yy"
     8051  case 585:
     8052
     8053/* Line 1806 of yacc.c  */
     8054#line 2276 "parser.yy"
    81908055    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    81918056    break;
    81928057
    8193   case 584:
    8194 
    8195 /* Line 1806 of yacc.c  */
    8196 #line 2268 "parser.yy"
     8058  case 586:
     8059
     8060/* Line 1806 of yacc.c  */
     8061#line 2281 "parser.yy"
    81978062    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    81988063    break;
    81998064
    8200   case 585:
    8201 
    8202 /* Line 1806 of yacc.c  */
    8203 #line 2270 "parser.yy"
     8065  case 587:
     8066
     8067/* Line 1806 of yacc.c  */
     8068#line 2283 "parser.yy"
    82048069    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82058070    break;
    82068071
    8207   case 586:
    8208 
    8209 /* Line 1806 of yacc.c  */
    8210 #line 2272 "parser.yy"
     8072  case 588:
     8073
     8074/* Line 1806 of yacc.c  */
     8075#line 2285 "parser.yy"
    82118076    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82128077    break;
    82138078
    8214   case 587:
    8215 
    8216 /* Line 1806 of yacc.c  */
    8217 #line 2277 "parser.yy"
     8079  case 589:
     8080
     8081/* Line 1806 of yacc.c  */
     8082#line 2290 "parser.yy"
    82188083    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82198084    break;
    82208085
    8221   case 588:
    8222 
    8223 /* Line 1806 of yacc.c  */
    8224 #line 2279 "parser.yy"
     8086  case 590:
     8087
     8088/* Line 1806 of yacc.c  */
     8089#line 2292 "parser.yy"
    82258090    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82268091    break;
    82278092
    8228   case 589:
    8229 
    8230 /* Line 1806 of yacc.c  */
    8231 #line 2281 "parser.yy"
     8093  case 591:
     8094
     8095/* Line 1806 of yacc.c  */
     8096#line 2294 "parser.yy"
    82328097    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82338098    break;
    82348099
    8235   case 593:
    8236 
    8237 /* Line 1806 of yacc.c  */
    8238 #line 2296 "parser.yy"
     8100  case 595:
     8101
     8102/* Line 1806 of yacc.c  */
     8103#line 2309 "parser.yy"
    82398104    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    82408105    break;
    82418106
    8242   case 594:
    8243 
    8244 /* Line 1806 of yacc.c  */
    8245 #line 2298 "parser.yy"
     8107  case 596:
     8108
     8109/* Line 1806 of yacc.c  */
     8110#line 2311 "parser.yy"
    82468111    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    82478112    break;
    82488113
    8249   case 595:
    8250 
    8251 /* Line 1806 of yacc.c  */
    8252 #line 2300 "parser.yy"
     8114  case 597:
     8115
     8116/* Line 1806 of yacc.c  */
     8117#line 2313 "parser.yy"
    82538118    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82548119    break;
    82558120
    8256   case 596:
    8257 
    8258 /* Line 1806 of yacc.c  */
    8259 #line 2305 "parser.yy"
     8121  case 598:
     8122
     8123/* Line 1806 of yacc.c  */
     8124#line 2318 "parser.yy"
    82608125    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    82618126    break;
    82628127
    8263   case 597:
    8264 
    8265 /* Line 1806 of yacc.c  */
    8266 #line 2307 "parser.yy"
     8128  case 599:
     8129
     8130/* Line 1806 of yacc.c  */
     8131#line 2320 "parser.yy"
    82678132    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    82688133    break;
    82698134
    8270   case 598:
    8271 
    8272 /* Line 1806 of yacc.c  */
    8273 #line 2309 "parser.yy"
     8135  case 600:
     8136
     8137/* Line 1806 of yacc.c  */
     8138#line 2322 "parser.yy"
    82748139    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82758140    break;
    82768141
    8277   case 599:
    8278 
    8279 /* Line 1806 of yacc.c  */
    8280 #line 2314 "parser.yy"
     8142  case 601:
     8143
     8144/* Line 1806 of yacc.c  */
     8145#line 2327 "parser.yy"
    82818146    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82828147    break;
    82838148
    8284   case 600:
    8285 
    8286 /* Line 1806 of yacc.c  */
    8287 #line 2316 "parser.yy"
     8149  case 602:
     8150
     8151/* Line 1806 of yacc.c  */
     8152#line 2329 "parser.yy"
    82888153    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    82898154    break;
    82908155
    8291   case 601:
    8292 
    8293 /* Line 1806 of yacc.c  */
    8294 #line 2318 "parser.yy"
     8156  case 603:
     8157
     8158/* Line 1806 of yacc.c  */
     8159#line 2331 "parser.yy"
    82958160    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    82968161    break;
    82978162
    8298   case 602:
    8299 
    8300 /* Line 1806 of yacc.c  */
    8301 #line 2333 "parser.yy"
     8163  case 604:
     8164
     8165/* Line 1806 of yacc.c  */
     8166#line 2346 "parser.yy"
    83028167    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83038168    break;
    83048169
    8305   case 604:
    8306 
    8307 /* Line 1806 of yacc.c  */
    8308 #line 2336 "parser.yy"
     8170  case 606:
     8171
     8172/* Line 1806 of yacc.c  */
     8173#line 2349 "parser.yy"
    83098174    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83108175    break;
    83118176
    8312   case 605:
    8313 
    8314 /* Line 1806 of yacc.c  */
    8315 #line 2338 "parser.yy"
     8177  case 607:
     8178
     8179/* Line 1806 of yacc.c  */
     8180#line 2351 "parser.yy"
    83168181    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    83178182    break;
    83188183
    8319   case 607:
    8320 
    8321 /* Line 1806 of yacc.c  */
    8322 #line 2344 "parser.yy"
     8184  case 609:
     8185
     8186/* Line 1806 of yacc.c  */
     8187#line 2357 "parser.yy"
    83238188    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83248189    break;
    83258190
    8326   case 608:
    8327 
    8328 /* Line 1806 of yacc.c  */
    8329 #line 2349 "parser.yy"
     8191  case 610:
     8192
     8193/* Line 1806 of yacc.c  */
     8194#line 2362 "parser.yy"
    83308195    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83318196    break;
    83328197
    8333   case 609:
    8334 
    8335 /* Line 1806 of yacc.c  */
    8336 #line 2351 "parser.yy"
     8198  case 611:
     8199
     8200/* Line 1806 of yacc.c  */
     8201#line 2364 "parser.yy"
    83378202    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    83388203    break;
    83398204
    8340   case 610:
    8341 
    8342 /* Line 1806 of yacc.c  */
    8343 #line 2353 "parser.yy"
     8205  case 612:
     8206
     8207/* Line 1806 of yacc.c  */
     8208#line 2366 "parser.yy"
    83448209    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83458210    break;
    83468211
    8347   case 611:
    8348 
    8349 /* Line 1806 of yacc.c  */
    8350 #line 2358 "parser.yy"
     8212  case 613:
     8213
     8214/* Line 1806 of yacc.c  */
     8215#line 2371 "parser.yy"
    83518216    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    83528217    break;
    83538218
    8354   case 612:
    8355 
    8356 /* Line 1806 of yacc.c  */
    8357 #line 2360 "parser.yy"
     8219  case 614:
     8220
     8221/* Line 1806 of yacc.c  */
     8222#line 2373 "parser.yy"
    83588223    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83598224    break;
    83608225
    8361   case 613:
    8362 
    8363 /* Line 1806 of yacc.c  */
    8364 #line 2362 "parser.yy"
     8226  case 615:
     8227
     8228/* Line 1806 of yacc.c  */
     8229#line 2375 "parser.yy"
    83658230    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    83668231    break;
    83678232
    8368   case 614:
    8369 
    8370 /* Line 1806 of yacc.c  */
    8371 #line 2364 "parser.yy"
     8233  case 616:
     8234
     8235/* Line 1806 of yacc.c  */
     8236#line 2377 "parser.yy"
    83728237    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83738238    break;
    83748239
    8375   case 615:
    8376 
    8377 /* Line 1806 of yacc.c  */
    8378 #line 2369 "parser.yy"
     8240  case 617:
     8241
     8242/* Line 1806 of yacc.c  */
     8243#line 2382 "parser.yy"
    83798244    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    83808245    break;
    83818246
    8382   case 616:
    8383 
    8384 /* Line 1806 of yacc.c  */
    8385 #line 2371 "parser.yy"
     8247  case 618:
     8248
     8249/* Line 1806 of yacc.c  */
     8250#line 2384 "parser.yy"
    83868251    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    83878252    break;
    83888253
    8389   case 617:
    8390 
    8391 /* Line 1806 of yacc.c  */
    8392 #line 2373 "parser.yy"
     8254  case 619:
     8255
     8256/* Line 1806 of yacc.c  */
     8257#line 2386 "parser.yy"
    83938258    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    83948259    break;
    83958260
    8396   case 618:
    8397 
    8398 /* Line 1806 of yacc.c  */
    8399 #line 2383 "parser.yy"
     8261  case 620:
     8262
     8263/* Line 1806 of yacc.c  */
     8264#line 2396 "parser.yy"
    84008265    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84018266    break;
    84028267
    8403   case 620:
    8404 
    8405 /* Line 1806 of yacc.c  */
    8406 #line 2386 "parser.yy"
     8268  case 622:
     8269
     8270/* Line 1806 of yacc.c  */
     8271#line 2399 "parser.yy"
    84078272    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84088273    break;
    84098274
    8410   case 621:
    8411 
    8412 /* Line 1806 of yacc.c  */
    8413 #line 2388 "parser.yy"
     8275  case 623:
     8276
     8277/* Line 1806 of yacc.c  */
     8278#line 2401 "parser.yy"
    84148279    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84158280    break;
    84168281
    8417   case 622:
    8418 
    8419 /* Line 1806 of yacc.c  */
    8420 #line 2393 "parser.yy"
     8282  case 624:
     8283
     8284/* Line 1806 of yacc.c  */
     8285#line 2406 "parser.yy"
    84218286    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    84228287    break;
    84238288
    8424   case 623:
    8425 
    8426 /* Line 1806 of yacc.c  */
    8427 #line 2395 "parser.yy"
     8289  case 625:
     8290
     8291/* Line 1806 of yacc.c  */
     8292#line 2408 "parser.yy"
    84288293    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84298294    break;
    84308295
    8431   case 624:
    8432 
    8433 /* Line 1806 of yacc.c  */
    8434 #line 2397 "parser.yy"
     8296  case 626:
     8297
     8298/* Line 1806 of yacc.c  */
     8299#line 2410 "parser.yy"
    84358300    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84368301    break;
    84378302
    8438   case 625:
    8439 
    8440 /* Line 1806 of yacc.c  */
    8441 #line 2402 "parser.yy"
     8303  case 627:
     8304
     8305/* Line 1806 of yacc.c  */
     8306#line 2415 "parser.yy"
    84428307    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84438308    break;
    84448309
    8445   case 626:
    8446 
    8447 /* Line 1806 of yacc.c  */
    8448 #line 2404 "parser.yy"
     8310  case 628:
     8311
     8312/* Line 1806 of yacc.c  */
     8313#line 2417 "parser.yy"
    84498314    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84508315    break;
    84518316
    8452   case 627:
    8453 
    8454 /* Line 1806 of yacc.c  */
    8455 #line 2406 "parser.yy"
     8317  case 629:
     8318
     8319/* Line 1806 of yacc.c  */
     8320#line 2419 "parser.yy"
    84568321    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84578322    break;
    84588323
    8459   case 628:
    8460 
    8461 /* Line 1806 of yacc.c  */
    8462 #line 2408 "parser.yy"
     8324  case 630:
     8325
     8326/* Line 1806 of yacc.c  */
     8327#line 2421 "parser.yy"
    84638328    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84648329    break;
    84658330
    8466   case 629:
    8467 
    8468 /* Line 1806 of yacc.c  */
    8469 #line 2413 "parser.yy"
     8331  case 631:
     8332
     8333/* Line 1806 of yacc.c  */
     8334#line 2426 "parser.yy"
    84708335    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    84718336    break;
    84728337
    8473   case 630:
    8474 
    8475 /* Line 1806 of yacc.c  */
    8476 #line 2415 "parser.yy"
     8338  case 632:
     8339
     8340/* Line 1806 of yacc.c  */
     8341#line 2428 "parser.yy"
    84778342    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84788343    break;
    84798344
    8480   case 631:
    8481 
    8482 /* Line 1806 of yacc.c  */
    8483 #line 2417 "parser.yy"
     8345  case 633:
     8346
     8347/* Line 1806 of yacc.c  */
     8348#line 2430 "parser.yy"
    84848349    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84858350    break;
    84868351
    8487   case 632:
    8488 
    8489 /* Line 1806 of yacc.c  */
    8490 #line 2448 "parser.yy"
     8352  case 634:
     8353
     8354/* Line 1806 of yacc.c  */
     8355#line 2461 "parser.yy"
    84918356    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84928357    break;
    84938358
    8494   case 634:
    8495 
    8496 /* Line 1806 of yacc.c  */
    8497 #line 2451 "parser.yy"
     8359  case 636:
     8360
     8361/* Line 1806 of yacc.c  */
     8362#line 2464 "parser.yy"
    84988363    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    84998364    break;
    85008365
    8501   case 635:
    8502 
    8503 /* Line 1806 of yacc.c  */
    8504 #line 2453 "parser.yy"
     8366  case 637:
     8367
     8368/* Line 1806 of yacc.c  */
     8369#line 2466 "parser.yy"
    85058370    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85068371    break;
    85078372
    8508   case 636:
    8509 
    8510 /* Line 1806 of yacc.c  */
    8511 #line 2458 "parser.yy"
     8373  case 638:
     8374
     8375/* Line 1806 of yacc.c  */
     8376#line 2471 "parser.yy"
    85128377    {
    85138378                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85168381    break;
    85178382
    8518   case 637:
    8519 
    8520 /* Line 1806 of yacc.c  */
    8521 #line 2463 "parser.yy"
     8383  case 639:
     8384
     8385/* Line 1806 of yacc.c  */
     8386#line 2476 "parser.yy"
    85228387    {
    85238388                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    85268391    break;
    85278392
    8528   case 638:
    8529 
    8530 /* Line 1806 of yacc.c  */
    8531 #line 2471 "parser.yy"
     8393  case 640:
     8394
     8395/* Line 1806 of yacc.c  */
     8396#line 2484 "parser.yy"
    85328397    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    85338398    break;
    85348399
    8535   case 639:
    8536 
    8537 /* Line 1806 of yacc.c  */
    8538 #line 2473 "parser.yy"
     8400  case 641:
     8401
     8402/* Line 1806 of yacc.c  */
     8403#line 2486 "parser.yy"
    85398404    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    85408405    break;
    85418406
    8542   case 640:
    8543 
    8544 /* Line 1806 of yacc.c  */
    8545 #line 2475 "parser.yy"
     8407  case 642:
     8408
     8409/* Line 1806 of yacc.c  */
     8410#line 2488 "parser.yy"
    85468411    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    85478412    break;
    85488413
    8549   case 641:
    8550 
    8551 /* Line 1806 of yacc.c  */
    8552 #line 2480 "parser.yy"
     8414  case 643:
     8415
     8416/* Line 1806 of yacc.c  */
     8417#line 2493 "parser.yy"
    85538418    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    85548419    break;
    85558420
    8556   case 642:
    8557 
    8558 /* Line 1806 of yacc.c  */
    8559 #line 2482 "parser.yy"
     8421  case 644:
     8422
     8423/* Line 1806 of yacc.c  */
     8424#line 2495 "parser.yy"
    85608425    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    85618426    break;
    85628427
    8563   case 643:
    8564 
    8565 /* Line 1806 of yacc.c  */
    8566 #line 2487 "parser.yy"
     8428  case 645:
     8429
     8430/* Line 1806 of yacc.c  */
     8431#line 2500 "parser.yy"
    85678432    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    85688433    break;
    85698434
    8570   case 644:
    8571 
    8572 /* Line 1806 of yacc.c  */
    8573 #line 2489 "parser.yy"
     8435  case 646:
     8436
     8437/* Line 1806 of yacc.c  */
     8438#line 2502 "parser.yy"
    85748439    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    85758440    break;
    85768441
    8577   case 646:
    8578 
    8579 /* Line 1806 of yacc.c  */
    8580 #line 2504 "parser.yy"
     8442  case 648:
     8443
     8444/* Line 1806 of yacc.c  */
     8445#line 2517 "parser.yy"
    85818446    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85828447    break;
    85838448
    8584   case 647:
    8585 
    8586 /* Line 1806 of yacc.c  */
    8587 #line 2506 "parser.yy"
     8449  case 649:
     8450
     8451/* Line 1806 of yacc.c  */
     8452#line 2519 "parser.yy"
    85888453    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    85898454    break;
    85908455
    8591   case 648:
    8592 
    8593 /* Line 1806 of yacc.c  */
    8594 #line 2511 "parser.yy"
     8456  case 650:
     8457
     8458/* Line 1806 of yacc.c  */
     8459#line 2524 "parser.yy"
    85958460    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    85968461    break;
    85978462
    8598   case 649:
    8599 
    8600 /* Line 1806 of yacc.c  */
    8601 #line 2513 "parser.yy"
     8463  case 651:
     8464
     8465/* Line 1806 of yacc.c  */
     8466#line 2526 "parser.yy"
    86028467    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    86038468    break;
    86048469
    8605   case 650:
    8606 
    8607 /* Line 1806 of yacc.c  */
    8608 #line 2515 "parser.yy"
     8470  case 652:
     8471
     8472/* Line 1806 of yacc.c  */
     8473#line 2528 "parser.yy"
    86098474    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    86108475    break;
    86118476
    8612   case 651:
    8613 
    8614 /* Line 1806 of yacc.c  */
    8615 #line 2517 "parser.yy"
     8477  case 653:
     8478
     8479/* Line 1806 of yacc.c  */
     8480#line 2530 "parser.yy"
    86168481    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    86178482    break;
    86188483
    8619   case 652:
    8620 
    8621 /* Line 1806 of yacc.c  */
    8622 #line 2519 "parser.yy"
     8484  case 654:
     8485
     8486/* Line 1806 of yacc.c  */
     8487#line 2532 "parser.yy"
    86238488    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86248489    break;
    86258490
    8626   case 654:
    8627 
    8628 /* Line 1806 of yacc.c  */
    8629 #line 2525 "parser.yy"
     8491  case 656:
     8492
     8493/* Line 1806 of yacc.c  */
     8494#line 2538 "parser.yy"
    86308495    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86318496    break;
    86328497
    8633   case 655:
    8634 
    8635 /* Line 1806 of yacc.c  */
    8636 #line 2527 "parser.yy"
     8498  case 657:
     8499
     8500/* Line 1806 of yacc.c  */
     8501#line 2540 "parser.yy"
    86378502    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    86388503    break;
    86398504
    8640   case 656:
    8641 
    8642 /* Line 1806 of yacc.c  */
    8643 #line 2529 "parser.yy"
     8505  case 658:
     8506
     8507/* Line 1806 of yacc.c  */
     8508#line 2542 "parser.yy"
    86448509    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86458510    break;
    86468511
    8647   case 657:
    8648 
    8649 /* Line 1806 of yacc.c  */
    8650 #line 2534 "parser.yy"
     8512  case 659:
     8513
     8514/* Line 1806 of yacc.c  */
     8515#line 2547 "parser.yy"
    86518516    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    86528517    break;
    86538518
    8654   case 658:
    8655 
    8656 /* Line 1806 of yacc.c  */
    8657 #line 2536 "parser.yy"
     8519  case 660:
     8520
     8521/* Line 1806 of yacc.c  */
     8522#line 2549 "parser.yy"
    86588523    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    86598524    break;
    86608525
    8661   case 659:
    8662 
    8663 /* Line 1806 of yacc.c  */
    8664 #line 2538 "parser.yy"
     8526  case 661:
     8527
     8528/* Line 1806 of yacc.c  */
     8529#line 2551 "parser.yy"
    86658530    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    86668531    break;
    86678532
    8668   case 660:
    8669 
    8670 /* Line 1806 of yacc.c  */
    8671 #line 2544 "parser.yy"
     8533  case 662:
     8534
     8535/* Line 1806 of yacc.c  */
     8536#line 2557 "parser.yy"
    86728537    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    86738538    break;
    86748539
    8675   case 661:
    8676 
    8677 /* Line 1806 of yacc.c  */
    8678 #line 2546 "parser.yy"
     8540  case 663:
     8541
     8542/* Line 1806 of yacc.c  */
     8543#line 2559 "parser.yy"
    86798544    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    86808545    break;
    86818546
    8682   case 663:
    8683 
    8684 /* Line 1806 of yacc.c  */
    8685 #line 2552 "parser.yy"
     8547  case 665:
     8548
     8549/* Line 1806 of yacc.c  */
     8550#line 2565 "parser.yy"
    86868551    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    86878552    break;
    86888553
    8689   case 664:
    8690 
    8691 /* Line 1806 of yacc.c  */
    8692 #line 2554 "parser.yy"
     8554  case 666:
     8555
     8556/* Line 1806 of yacc.c  */
     8557#line 2567 "parser.yy"
    86938558    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    86948559    break;
    86958560
    8696   case 665:
    8697 
    8698 /* Line 1806 of yacc.c  */
    8699 #line 2556 "parser.yy"
     8561  case 667:
     8562
     8563/* Line 1806 of yacc.c  */
     8564#line 2569 "parser.yy"
    87008565    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    87018566    break;
    87028567
    8703   case 666:
    8704 
    8705 /* Line 1806 of yacc.c  */
    8706 #line 2558 "parser.yy"
     8568  case 668:
     8569
     8570/* Line 1806 of yacc.c  */
     8571#line 2571 "parser.yy"
    87078572    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    87088573    break;
    87098574
    8710   case 668:
    8711 
    8712 /* Line 1806 of yacc.c  */
    8713 #line 2573 "parser.yy"
     8575  case 670:
     8576
     8577/* Line 1806 of yacc.c  */
     8578#line 2586 "parser.yy"
    87148579    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87158580    break;
    87168581
    8717   case 669:
    8718 
    8719 /* Line 1806 of yacc.c  */
    8720 #line 2575 "parser.yy"
     8582  case 671:
     8583
     8584/* Line 1806 of yacc.c  */
     8585#line 2588 "parser.yy"
    87218586    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    87228587    break;
    87238588
    8724   case 670:
    8725 
    8726 /* Line 1806 of yacc.c  */
    8727 #line 2580 "parser.yy"
     8589  case 672:
     8590
     8591/* Line 1806 of yacc.c  */
     8592#line 2593 "parser.yy"
    87288593    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    87298594    break;
    87308595
    8731   case 671:
    8732 
    8733 /* Line 1806 of yacc.c  */
    8734 #line 2582 "parser.yy"
     8596  case 673:
     8597
     8598/* Line 1806 of yacc.c  */
     8599#line 2595 "parser.yy"
    87358600    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    87368601    break;
    87378602
    8738   case 672:
    8739 
    8740 /* Line 1806 of yacc.c  */
    8741 #line 2584 "parser.yy"
     8603  case 674:
     8604
     8605/* Line 1806 of yacc.c  */
     8606#line 2597 "parser.yy"
    87428607    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    87438608    break;
    87448609
    8745   case 673:
    8746 
    8747 /* Line 1806 of yacc.c  */
    8748 #line 2586 "parser.yy"
     8610  case 675:
     8611
     8612/* Line 1806 of yacc.c  */
     8613#line 2599 "parser.yy"
    87498614    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    87508615    break;
    87518616
    8752   case 674:
    8753 
    8754 /* Line 1806 of yacc.c  */
    8755 #line 2588 "parser.yy"
     8617  case 676:
     8618
     8619/* Line 1806 of yacc.c  */
     8620#line 2601 "parser.yy"
    87568621    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87578622    break;
    87588623
    8759   case 676:
    8760 
    8761 /* Line 1806 of yacc.c  */
    8762 #line 2594 "parser.yy"
     8624  case 678:
     8625
     8626/* Line 1806 of yacc.c  */
     8627#line 2607 "parser.yy"
    87638628    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87648629    break;
    87658630
    8766   case 677:
    8767 
    8768 /* Line 1806 of yacc.c  */
    8769 #line 2596 "parser.yy"
     8631  case 679:
     8632
     8633/* Line 1806 of yacc.c  */
     8634#line 2609 "parser.yy"
    87708635    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    87718636    break;
    87728637
    8773   case 678:
    8774 
    8775 /* Line 1806 of yacc.c  */
    8776 #line 2598 "parser.yy"
     8638  case 680:
     8639
     8640/* Line 1806 of yacc.c  */
     8641#line 2611 "parser.yy"
    87778642    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87788643    break;
    87798644
    8780   case 679:
    8781 
    8782 /* Line 1806 of yacc.c  */
    8783 #line 2603 "parser.yy"
     8645  case 681:
     8646
     8647/* Line 1806 of yacc.c  */
     8648#line 2616 "parser.yy"
    87848649    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    87858650    break;
    87868651
    8787   case 680:
    8788 
    8789 /* Line 1806 of yacc.c  */
    8790 #line 2605 "parser.yy"
     8652  case 682:
     8653
     8654/* Line 1806 of yacc.c  */
     8655#line 2618 "parser.yy"
    87918656    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    87928657    break;
    87938658
    8794   case 681:
    8795 
    8796 /* Line 1806 of yacc.c  */
    8797 #line 2607 "parser.yy"
     8659  case 683:
     8660
     8661/* Line 1806 of yacc.c  */
     8662#line 2620 "parser.yy"
    87988663    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    87998664    break;
    88008665
    8801   case 683:
    8802 
    8803 /* Line 1806 of yacc.c  */
    8804 #line 2614 "parser.yy"
     8666  case 685:
     8667
     8668/* Line 1806 of yacc.c  */
     8669#line 2627 "parser.yy"
    88058670    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    88068671    break;
    88078672
    8808   case 685:
    8809 
    8810 /* Line 1806 of yacc.c  */
    8811 #line 2625 "parser.yy"
     8673  case 687:
     8674
     8675/* Line 1806 of yacc.c  */
     8676#line 2638 "parser.yy"
    88128677    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    88138678    break;
    88148679
    8815   case 686:
    8816 
    8817 /* Line 1806 of yacc.c  */
    8818 #line 2628 "parser.yy"
     8680  case 688:
     8681
     8682/* Line 1806 of yacc.c  */
     8683#line 2641 "parser.yy"
    88198684    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    88208685    break;
    88218686
    8822   case 687:
    8823 
    8824 /* Line 1806 of yacc.c  */
    8825 #line 2630 "parser.yy"
     8687  case 689:
     8688
     8689/* Line 1806 of yacc.c  */
     8690#line 2643 "parser.yy"
    88268691    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    88278692    break;
    88288693
    8829   case 688:
    8830 
    8831 /* Line 1806 of yacc.c  */
    8832 #line 2633 "parser.yy"
     8694  case 690:
     8695
     8696/* Line 1806 of yacc.c  */
     8697#line 2646 "parser.yy"
    88338698    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    88348699    break;
    88358700
    8836   case 689:
    8837 
    8838 /* Line 1806 of yacc.c  */
    8839 #line 2635 "parser.yy"
     8701  case 691:
     8702
     8703/* Line 1806 of yacc.c  */
     8704#line 2648 "parser.yy"
    88408705    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    88418706    break;
    88428707
    8843   case 690:
    8844 
    8845 /* Line 1806 of yacc.c  */
    8846 #line 2637 "parser.yy"
     8708  case 692:
     8709
     8710/* Line 1806 of yacc.c  */
     8711#line 2650 "parser.yy"
    88478712    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    88488713    break;
    88498714
    8850   case 692:
    8851 
    8852 /* Line 1806 of yacc.c  */
    8853 #line 2651 "parser.yy"
     8715  case 694:
     8716
     8717/* Line 1806 of yacc.c  */
     8718#line 2664 "parser.yy"
    88548719    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88558720    break;
    88568721
    8857   case 693:
    8858 
    8859 /* Line 1806 of yacc.c  */
    8860 #line 2653 "parser.yy"
     8722  case 695:
     8723
     8724/* Line 1806 of yacc.c  */
     8725#line 2666 "parser.yy"
    88618726    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    88628727    break;
    88638728
    8864   case 694:
    8865 
    8866 /* Line 1806 of yacc.c  */
    8867 #line 2658 "parser.yy"
     8729  case 696:
     8730
     8731/* Line 1806 of yacc.c  */
     8732#line 2671 "parser.yy"
    88688733    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    88698734    break;
    88708735
    8871   case 695:
    8872 
    8873 /* Line 1806 of yacc.c  */
    8874 #line 2660 "parser.yy"
     8736  case 697:
     8737
     8738/* Line 1806 of yacc.c  */
     8739#line 2673 "parser.yy"
    88758740    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    88768741    break;
    88778742
    8878   case 696:
    8879 
    8880 /* Line 1806 of yacc.c  */
    8881 #line 2662 "parser.yy"
     8743  case 698:
     8744
     8745/* Line 1806 of yacc.c  */
     8746#line 2675 "parser.yy"
    88828747    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    88838748    break;
    88848749
    8885   case 697:
    8886 
    8887 /* Line 1806 of yacc.c  */
    8888 #line 2664 "parser.yy"
     8750  case 699:
     8751
     8752/* Line 1806 of yacc.c  */
     8753#line 2677 "parser.yy"
    88898754    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    88908755    break;
    88918756
    8892   case 698:
    8893 
    8894 /* Line 1806 of yacc.c  */
    8895 #line 2666 "parser.yy"
     8757  case 700:
     8758
     8759/* Line 1806 of yacc.c  */
     8760#line 2679 "parser.yy"
    88968761    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    88978762    break;
    88988763
    8899   case 700:
    8900 
    8901 /* Line 1806 of yacc.c  */
    8902 #line 2672 "parser.yy"
     8764  case 702:
     8765
     8766/* Line 1806 of yacc.c  */
     8767#line 2685 "parser.yy"
    89038768    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89048769    break;
    89058770
    8906   case 701:
    8907 
    8908 /* Line 1806 of yacc.c  */
    8909 #line 2674 "parser.yy"
     8771  case 703:
     8772
     8773/* Line 1806 of yacc.c  */
     8774#line 2687 "parser.yy"
    89108775    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    89118776    break;
    89128777
    8913   case 702:
    8914 
    8915 /* Line 1806 of yacc.c  */
    8916 #line 2676 "parser.yy"
     8778  case 704:
     8779
     8780/* Line 1806 of yacc.c  */
     8781#line 2689 "parser.yy"
    89178782    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89188783    break;
    89198784
    8920   case 703:
    8921 
    8922 /* Line 1806 of yacc.c  */
    8923 #line 2681 "parser.yy"
     8785  case 705:
     8786
     8787/* Line 1806 of yacc.c  */
     8788#line 2694 "parser.yy"
    89248789    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    89258790    break;
    89268791
    8927   case 704:
    8928 
    8929 /* Line 1806 of yacc.c  */
    8930 #line 2683 "parser.yy"
     8792  case 706:
     8793
     8794/* Line 1806 of yacc.c  */
     8795#line 2696 "parser.yy"
    89318796    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    89328797    break;
    89338798
    8934   case 707:
    8935 
    8936 /* Line 1806 of yacc.c  */
    8937 #line 2693 "parser.yy"
     8799  case 709:
     8800
     8801/* Line 1806 of yacc.c  */
     8802#line 2706 "parser.yy"
    89388803    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    89398804    break;
    89408805
    8941   case 710:
    8942 
    8943 /* Line 1806 of yacc.c  */
    8944 #line 2703 "parser.yy"
     8806  case 712:
     8807
     8808/* Line 1806 of yacc.c  */
     8809#line 2716 "parser.yy"
    89458810    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89468811    break;
    89478812
    8948   case 711:
    8949 
    8950 /* Line 1806 of yacc.c  */
    8951 #line 2705 "parser.yy"
     8813  case 713:
     8814
     8815/* Line 1806 of yacc.c  */
     8816#line 2718 "parser.yy"
    89528817    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89538818    break;
    89548819
    8955   case 712:
    8956 
    8957 /* Line 1806 of yacc.c  */
    8958 #line 2707 "parser.yy"
     8820  case 714:
     8821
     8822/* Line 1806 of yacc.c  */
     8823#line 2720 "parser.yy"
    89598824    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89608825    break;
    89618826
    8962   case 713:
    8963 
    8964 /* Line 1806 of yacc.c  */
    8965 #line 2709 "parser.yy"
     8827  case 715:
     8828
     8829/* Line 1806 of yacc.c  */
     8830#line 2722 "parser.yy"
    89668831    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89678832    break;
    89688833
    8969   case 714:
    8970 
    8971 /* Line 1806 of yacc.c  */
    8972 #line 2711 "parser.yy"
     8834  case 716:
     8835
     8836/* Line 1806 of yacc.c  */
     8837#line 2724 "parser.yy"
    89738838    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    89748839    break;
    89758840
    8976   case 715:
    8977 
    8978 /* Line 1806 of yacc.c  */
    8979 #line 2713 "parser.yy"
     8841  case 717:
     8842
     8843/* Line 1806 of yacc.c  */
     8844#line 2726 "parser.yy"
    89808845    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    89818846    break;
    89828847
    8983   case 716:
    8984 
    8985 /* Line 1806 of yacc.c  */
    8986 #line 2720 "parser.yy"
     8848  case 718:
     8849
     8850/* Line 1806 of yacc.c  */
     8851#line 2733 "parser.yy"
    89878852    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    89888853    break;
    89898854
    8990   case 717:
    8991 
    8992 /* Line 1806 of yacc.c  */
    8993 #line 2722 "parser.yy"
     8855  case 719:
     8856
     8857/* Line 1806 of yacc.c  */
     8858#line 2735 "parser.yy"
    89948859    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    89958860    break;
    89968861
    8997   case 718:
    8998 
    8999 /* Line 1806 of yacc.c  */
    9000 #line 2724 "parser.yy"
     8862  case 720:
     8863
     8864/* Line 1806 of yacc.c  */
     8865#line 2737 "parser.yy"
    90018866    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90028867    break;
    90038868
    9004   case 719:
    9005 
    9006 /* Line 1806 of yacc.c  */
    9007 #line 2726 "parser.yy"
     8869  case 721:
     8870
     8871/* Line 1806 of yacc.c  */
     8872#line 2739 "parser.yy"
    90088873    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90098874    break;
    90108875
    9011   case 720:
    9012 
    9013 /* Line 1806 of yacc.c  */
    9014 #line 2728 "parser.yy"
     8876  case 722:
     8877
     8878/* Line 1806 of yacc.c  */
     8879#line 2741 "parser.yy"
    90158880    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90168881    break;
    90178882
    9018   case 721:
    9019 
    9020 /* Line 1806 of yacc.c  */
    9021 #line 2731 "parser.yy"
     8883  case 723:
     8884
     8885/* Line 1806 of yacc.c  */
     8886#line 2744 "parser.yy"
    90228887    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90238888    break;
    90248889
    9025   case 722:
    9026 
    9027 /* Line 1806 of yacc.c  */
    9028 #line 2733 "parser.yy"
     8890  case 724:
     8891
     8892/* Line 1806 of yacc.c  */
     8893#line 2746 "parser.yy"
    90298894    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90308895    break;
    90318896
    9032   case 723:
    9033 
    9034 /* Line 1806 of yacc.c  */
    9035 #line 2735 "parser.yy"
     8897  case 725:
     8898
     8899/* Line 1806 of yacc.c  */
     8900#line 2748 "parser.yy"
    90368901    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    90378902    break;
    90388903
    9039   case 724:
    9040 
    9041 /* Line 1806 of yacc.c  */
    9042 #line 2737 "parser.yy"
     8904  case 726:
     8905
     8906/* Line 1806 of yacc.c  */
     8907#line 2750 "parser.yy"
    90438908    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    90448909    break;
    90458910
    9046   case 725:
    9047 
    9048 /* Line 1806 of yacc.c  */
    9049 #line 2739 "parser.yy"
     8911  case 727:
     8912
     8913/* Line 1806 of yacc.c  */
     8914#line 2752 "parser.yy"
    90508915    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    90518916    break;
    90528917
    9053   case 726:
    9054 
    9055 /* Line 1806 of yacc.c  */
    9056 #line 2744 "parser.yy"
     8918  case 728:
     8919
     8920/* Line 1806 of yacc.c  */
     8921#line 2757 "parser.yy"
    90578922    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    90588923    break;
    90598924
    9060   case 727:
    9061 
    9062 /* Line 1806 of yacc.c  */
    9063 #line 2746 "parser.yy"
     8925  case 729:
     8926
     8927/* Line 1806 of yacc.c  */
     8928#line 2759 "parser.yy"
    90648929    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    90658930    break;
    90668931
    9067   case 728:
    9068 
    9069 /* Line 1806 of yacc.c  */
    9070 #line 2751 "parser.yy"
     8932  case 730:
     8933
     8934/* Line 1806 of yacc.c  */
     8935#line 2764 "parser.yy"
    90718936    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    90728937    break;
    90738938
    9074   case 729:
    9075 
    9076 /* Line 1806 of yacc.c  */
    9077 #line 2753 "parser.yy"
     8939  case 731:
     8940
     8941/* Line 1806 of yacc.c  */
     8942#line 2766 "parser.yy"
    90788943    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    90798944    break;
    90808945
    9081   case 731:
    9082 
    9083 /* Line 1806 of yacc.c  */
    9084 #line 2780 "parser.yy"
     8946  case 733:
     8947
     8948/* Line 1806 of yacc.c  */
     8949#line 2793 "parser.yy"
    90858950    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    90868951    break;
    90878952
    9088   case 735:
    9089 
    9090 /* Line 1806 of yacc.c  */
    9091 #line 2791 "parser.yy"
     8953  case 737:
     8954
     8955/* Line 1806 of yacc.c  */
     8956#line 2804 "parser.yy"
    90928957    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    90938958    break;
    90948959
    9095   case 736:
    9096 
    9097 /* Line 1806 of yacc.c  */
    9098 #line 2793 "parser.yy"
     8960  case 738:
     8961
     8962/* Line 1806 of yacc.c  */
     8963#line 2806 "parser.yy"
    90998964    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91008965    break;
    91018966
    9102   case 737:
    9103 
    9104 /* Line 1806 of yacc.c  */
    9105 #line 2795 "parser.yy"
     8967  case 739:
     8968
     8969/* Line 1806 of yacc.c  */
     8970#line 2808 "parser.yy"
    91068971    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91078972    break;
    91088973
    9109   case 738:
    9110 
    9111 /* Line 1806 of yacc.c  */
    9112 #line 2797 "parser.yy"
     8974  case 740:
     8975
     8976/* Line 1806 of yacc.c  */
     8977#line 2810 "parser.yy"
    91138978    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91148979    break;
    91158980
    9116   case 739:
    9117 
    9118 /* Line 1806 of yacc.c  */
    9119 #line 2799 "parser.yy"
     8981  case 741:
     8982
     8983/* Line 1806 of yacc.c  */
     8984#line 2812 "parser.yy"
    91208985    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    91218986    break;
    91228987
    9123   case 740:
    9124 
    9125 /* Line 1806 of yacc.c  */
    9126 #line 2801 "parser.yy"
     8988  case 742:
     8989
     8990/* Line 1806 of yacc.c  */
     8991#line 2814 "parser.yy"
    91278992    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    91288993    break;
    91298994
    9130   case 741:
    9131 
    9132 /* Line 1806 of yacc.c  */
    9133 #line 2808 "parser.yy"
     8995  case 743:
     8996
     8997/* Line 1806 of yacc.c  */
     8998#line 2821 "parser.yy"
    91348999    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91359000    break;
    91369001
    9137   case 742:
    9138 
    9139 /* Line 1806 of yacc.c  */
    9140 #line 2810 "parser.yy"
     9002  case 744:
     9003
     9004/* Line 1806 of yacc.c  */
     9005#line 2823 "parser.yy"
    91419006    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91429007    break;
    91439008
    9144   case 743:
    9145 
    9146 /* Line 1806 of yacc.c  */
    9147 #line 2812 "parser.yy"
     9009  case 745:
     9010
     9011/* Line 1806 of yacc.c  */
     9012#line 2825 "parser.yy"
    91489013    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91499014    break;
    91509015
    9151   case 744:
    9152 
    9153 /* Line 1806 of yacc.c  */
    9154 #line 2814 "parser.yy"
     9016  case 746:
     9017
     9018/* Line 1806 of yacc.c  */
     9019#line 2827 "parser.yy"
    91559020    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91569021    break;
    91579022
    9158   case 745:
    9159 
    9160 /* Line 1806 of yacc.c  */
    9161 #line 2816 "parser.yy"
     9023  case 747:
     9024
     9025/* Line 1806 of yacc.c  */
     9026#line 2829 "parser.yy"
    91629027    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    91639028    break;
    91649029
    9165   case 746:
    9166 
    9167 /* Line 1806 of yacc.c  */
    9168 #line 2818 "parser.yy"
     9030  case 748:
     9031
     9032/* Line 1806 of yacc.c  */
     9033#line 2831 "parser.yy"
    91699034    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    91709035    break;
    91719036
    9172   case 747:
    9173 
    9174 /* Line 1806 of yacc.c  */
    9175 #line 2823 "parser.yy"
     9037  case 749:
     9038
     9039/* Line 1806 of yacc.c  */
     9040#line 2836 "parser.yy"
    91769041    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    91779042    break;
    91789043
    9179   case 748:
    9180 
    9181 /* Line 1806 of yacc.c  */
    9182 #line 2828 "parser.yy"
    9183     { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    9184     break;
    9185 
    9186   case 749:
    9187 
    9188 /* Line 1806 of yacc.c  */
    9189 #line 2830 "parser.yy"
     9044  case 750:
     9045
     9046/* Line 1806 of yacc.c  */
     9047#line 2843 "parser.yy"
    91909048    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91919049    break;
    91929050
    9193   case 750:
    9194 
    9195 /* Line 1806 of yacc.c  */
    9196 #line 2832 "parser.yy"
     9051  case 751:
     9052
     9053/* Line 1806 of yacc.c  */
     9054#line 2845 "parser.yy"
    91979055    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    91989056    break;
    91999057
    9200   case 753:
    9201 
    9202 /* Line 1806 of yacc.c  */
    9203 #line 2856 "parser.yy"
     9058  case 754:
     9059
     9060/* Line 1806 of yacc.c  */
     9061#line 2869 "parser.yy"
    92049062    { (yyval.en) = 0; }
    92059063    break;
    92069064
    9207   case 754:
    9208 
    9209 /* Line 1806 of yacc.c  */
    9210 #line 2858 "parser.yy"
     9065  case 755:
     9066
     9067/* Line 1806 of yacc.c  */
     9068#line 2871 "parser.yy"
    92119069    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    92129070    break;
     
    92159073
    92169074/* Line 1806 of yacc.c  */
    9217 #line 9218 "Parser/parser.cc"
     9075#line 9076 "Parser/parser.cc"
    92189076      default: break;
    92199077    }
     
    94469304
    94479305/* Line 2067 of yacc.c  */
    9448 #line 2861 "parser.yy"
     9306#line 2874 "parser.yy"
    94499307
    94509308// ----end of grammar----
  • src/Parser/parser.h

    r77971f6 r3f0c6a5  
    115115     ATTR_TYPEGENname = 333,
    116116     INTEGERconstant = 334,
    117      FLOATINGconstant = 335,
    118      CHARACTERconstant = 336,
    119      STRINGliteral = 337,
    120      ZERO = 338,
    121      ONE = 339,
    122      ARROW = 340,
    123      ICR = 341,
    124      DECR = 342,
    125      LS = 343,
    126      RS = 344,
    127      LE = 345,
    128      GE = 346,
    129      EQ = 347,
    130      NE = 348,
    131      ANDAND = 349,
    132      OROR = 350,
    133      ELLIPSIS = 351,
    134      MULTassign = 352,
    135      DIVassign = 353,
    136      MODassign = 354,
    137      PLUSassign = 355,
    138      MINUSassign = 356,
    139      LSassign = 357,
    140      RSassign = 358,
    141      ANDassign = 359,
    142      ERassign = 360,
    143      ORassign = 361,
    144      ATassign = 362,
    145      THEN = 363
     117     CHARACTERconstant = 335,
     118     STRINGliteral = 336,
     119     REALDECIMALconstant = 337,
     120     REALFRACTIONconstant = 338,
     121     FLOATINGconstant = 339,
     122     ZERO = 340,
     123     ONE = 341,
     124     ARROW = 342,
     125     ICR = 343,
     126     DECR = 344,
     127     LS = 345,
     128     RS = 346,
     129     LE = 347,
     130     GE = 348,
     131     EQ = 349,
     132     NE = 350,
     133     ANDAND = 351,
     134     OROR = 352,
     135     ELLIPSIS = 353,
     136     MULTassign = 354,
     137     DIVassign = 355,
     138     MODassign = 356,
     139     PLUSassign = 357,
     140     MINUSassign = 358,
     141     LSassign = 359,
     142     RSassign = 360,
     143     ANDassign = 361,
     144     ERassign = 362,
     145     ORassign = 363,
     146     ATassign = 364,
     147     THEN = 365
    146148   };
    147149#endif
     
    224226#define ATTR_TYPEGENname 333
    225227#define INTEGERconstant 334
    226 #define FLOATINGconstant 335
    227 #define CHARACTERconstant 336
    228 #define STRINGliteral 337
    229 #define ZERO 338
    230 #define ONE 339
    231 #define ARROW 340
    232 #define ICR 341
    233 #define DECR 342
    234 #define LS 343
    235 #define RS 344
    236 #define LE 345
    237 #define GE 346
    238 #define EQ 347
    239 #define NE 348
    240 #define ANDAND 349
    241 #define OROR 350
    242 #define ELLIPSIS 351
    243 #define MULTassign 352
    244 #define DIVassign 353
    245 #define MODassign 354
    246 #define PLUSassign 355
    247 #define MINUSassign 356
    248 #define LSassign 357
    249 #define RSassign 358
    250 #define ANDassign 359
    251 #define ERassign 360
    252 #define ORassign 361
    253 #define ATassign 362
    254 #define THEN 363
     228#define CHARACTERconstant 335
     229#define STRINGliteral 336
     230#define REALDECIMALconstant 337
     231#define REALFRACTIONconstant 338
     232#define FLOATINGconstant 339
     233#define ZERO 340
     234#define ONE 341
     235#define ARROW 342
     236#define ICR 343
     237#define DECR 344
     238#define LS 345
     239#define RS 346
     240#define LE 347
     241#define GE 348
     242#define EQ 349
     243#define NE 350
     244#define ANDAND 351
     245#define OROR 352
     246#define ELLIPSIS 353
     247#define MULTassign 354
     248#define DIVassign 355
     249#define MODassign 356
     250#define PLUSassign 357
     251#define MINUSassign 358
     252#define LSassign 359
     253#define RSassign 360
     254#define ANDassign 361
     255#define ERassign 362
     256#define ORassign 363
     257#define ATassign 364
     258#define THEN 365
    255259
    256260
     
    262266
    263267/* Line 2068 of yacc.c  */
    264 #line 116 "parser.yy"
     268#line 120 "parser.yy"
    265269
    266270        Token tok;
     
    282286
    283287/* Line 2068 of yacc.c  */
    284 #line 285 "Parser/parser.h"
     288#line 289 "Parser/parser.h"
    285289} YYSTYPE;
    286290# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    r77971f6 r3f0c6a5  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Oct 19 22:19:33 2016
    13 // Update Count     : 2003
     12// Last Modified On : Wed Oct 26 17:35:53 2016
     13// Update Count     : 2066
    1414//
    1515
     
    9494%token<tok> IDENTIFIER                  QUOTED_IDENTIFIER               TYPEDEFname                             TYPEGENname
    9595%token<tok> ATTR_IDENTIFIER             ATTR_TYPEDEFname                ATTR_TYPEGENname
    96 %token<tok> INTEGERconstant             FLOATINGconstant                CHARACTERconstant               STRINGliteral
     96%token<tok> INTEGERconstant             CHARACTERconstant               STRINGliteral
     97// Floating point constant is broken into three kinds of tokens because of the ambiguity with tuple indexing and
     98// overloading constants 0/1, e.g., x.1 is lexed as (x)(.1), where (.1) is a factional constant, but is semantically
     99// converted into the tuple index (.)(1). e.g., 3.x
     100%token<tok>     REALDECIMALconstant     REALFRACTIONconstant    FLOATINGconstant
    97101%token<tok> ZERO                                ONE                                             // CFA
    98102
     
    311315                // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant".
    312316        INTEGERconstant                                                         { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
     317        | REALDECIMALconstant                                           { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
     318        | REALFRACTIONconstant                                          { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
    313319        | FLOATINGconstant                                                      { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
    314320        | CHARACTERconstant                                                     { $$ = new ExpressionNode( build_constantChar( *$1 ) ); }
     
    357363        | zero_one
    358364                { $$ = new ExpressionNode( build_varref( $1 ) ); }
     365        | tuple
    359366        | '(' comma_expression ')'
    360367                { $$ = $2; }
     
    373380        | postfix_expression '(' argument_expression_list ')'
    374381                { $$ = new ExpressionNode( build_func( $1, $3 ) ); }
    375                 // ambiguity with .0 so space required after field-selection, e.g.
    376                 //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
    377382        | postfix_expression '.' no_attr_identifier
    378383                { $$ = new ExpressionNode( build_fieldSel( $1, build_varref( $3 ) ) ); }
    379384        | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector
    380385                { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $5 ) ) ); }
    381         | postfix_expression '.' INTEGERconstant
    382                 { $$ = new ExpressionNode( build_fieldSel( $1, build_constantInteger( *$3 ) ) ); }
     386        | postfix_expression REALFRACTIONconstant                       // CFA, tuple index
     387                { $$ = new ExpressionNode( build_fieldSel( $1, build_constantInteger( *$2 ) ) ); }
    383388        | postfix_expression ARROW no_attr_identifier
    384389                { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); }
     
    418423field:                                                                                                  // CFA, tuple field selector
    419424        field_name
    420                 // ambiguity with .0 so space required after field-selection, e.g.
    421                 //   struct S { int 0, 1; } s; s. 0 = 0; s. 1 = 1;
     425        | REALDECIMALconstant field
     426                { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_constantInteger( *$1 ) ), maybeMoveBuild<Expression>( $2 ) ) ); }
     427        | REALDECIMALconstant '[' push field_list pop ']'
     428                { $$ = new ExpressionNode( build_fieldSel( new ExpressionNode( build_constantInteger( *$1 ) ), build_tuple( $4 ) ) ); }
    422429        | field_name '.' field
    423430                { $$ = new ExpressionNode( build_fieldSel( $1, maybeMoveBuild<Expression>( $3 ) ) ); }
     
    430437        ;
    431438
    432 field_name:
    433         no_attr_identifier
     439field_name: // ... use $2
     440        INTEGERconstant fraction_constants
     441                { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
     442        | FLOATINGconstant fraction_constants
     443                { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
     444        | no_attr_identifier fraction_constants
    434445                { $$ = new ExpressionNode( build_varref( $1 ) ); }
    435                 // x.1, x.[0, 0.0]
    436         | INTEGERconstant
    437                 { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
     446        ;
     447
     448fraction_constants:
     449        // empty
     450        | fraction_constants REALFRACTIONconstant
    438451        ;
    439452
     
    508521        | '(' type_name_no_function ')' cast_expression
    509522                { $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
    510         | '(' type_name_no_function ')' tuple
    511                 { $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
     523//      | '(' type_name_no_function ')' tuple
     524//              { $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
    512525        ;
    513526
     
    595608        | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand
    596609                { $$ = new ExpressionNode( build_cond( $1, $1, $4 ) ); }
    597         | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression
    598                 { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); }
     610//      | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression
     611//              { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); }
    599612        ;
    600613
     
    608621        | unary_expression assignment_operator assignment_expression
    609622                { $$ = new ExpressionNode( build_binary_ptr( $2, $1, $3 ) ); }
    610         | tuple assignment_opt                                                          // CFA, tuple expression
    611                 { $$ = ( $2 == 0 ) ? $1 : new ExpressionNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); }
     623//      | tuple assignment_opt                                                          // CFA, tuple expression
     624//              { $$ = ( $2 == 0 ) ? $1 : new ExpressionNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); }
    612625        ;
    613626
     
    636649                // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce conflict with
    637650                // comma_expression in new_identifier_parameter_array and new_abstract_array
    638         '[' ']'
    639                 { $$ = new ExpressionNode( build_tuple() ); }
    640         | '[' push assignment_expression pop ']'
    641                 { $$ = new ExpressionNode( build_tuple( $3 ) ); }
    642         | '[' push ',' tuple_expression_list pop ']'
     651//      '[' ']'
     652//              { $$ = new ExpressionNode( build_tuple() ); }
     653//      '[' push assignment_expression pop ']'
     654//              { $$ = new ExpressionNode( build_tuple( $3 ) ); }
     655        '[' push ',' tuple_expression_list pop ']'
    643656                { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( $4 ) ) ); }
    644657        | '[' push assignment_expression ',' tuple_expression_list pop ']'
     
    11391152
    11401153new_function_specifier:                                                                 // CFA
    1141         '[' ']' identifier_or_type_name '(' push new_parameter_type_list_opt pop ')' // S/R conflict
    1142                 {
    1143                         $$ = DeclarationNode::newFunction( $3, DeclarationNode::newTuple( 0 ), $6, 0, true );
    1144                 }
     1154//      '[' ']' identifier_or_type_name '(' push new_parameter_type_list_opt pop ')' // S/R conflict
     1155//              {
     1156//                      $$ = DeclarationNode::newFunction( $3, DeclarationNode::newTuple( 0 ), $6, 0, true );
     1157//              }
    11451158//      '[' ']' identifier '(' push new_parameter_type_list_opt pop ')'
    11461159//              {
     
    11611174                // type_specifier can resolve to just TYPEDEFname (e.g., typedef int T; int f( T );). Therefore this must be
    11621175                // flattened to allow lookahead to the '(' without having to reduce identifier_or_type_name.
    1163         | new_abstract_tuple identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'
     1176        new_abstract_tuple identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'
    11641177                // To obtain LR(1 ), this rule must be factored out from function return type (see new_abstract_declarator).
    11651178                {
     
    28252838
    28262839new_abstract_function:                                                                  // CFA
    2827         '[' ']' '(' new_parameter_type_list_opt ')'
    2828                 { $$ = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), $4, nullptr ); }
    2829         | new_abstract_tuple '(' push new_parameter_type_list_opt pop ')'
     2840//      '[' ']' '(' new_parameter_type_list_opt ')'
     2841//              { $$ = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), $4, nullptr ); }
     2842        new_abstract_tuple '(' push new_parameter_type_list_opt pop ')'
    28302843                { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr ); }
    28312844        | new_function_return '(' push new_parameter_type_list_opt pop ')'
  • src/driver/Makefile.am

    r77971f6 r3f0c6a5  
    66## file "LICENCE" distributed with Cforall.
    77##
    8 ## Makefile.am -- 
     8## Makefile.am --
    99##
    1010## Author           : Peter A. Buhr
     
    2626cc1_SOURCES = cc1.cc
    2727
     28cfa.cc : ${abs_top_srcdir}/version
     29        @true
     30
    2831MAINTAINERCLEANFILES = @CFA_PREFIX@/bin/${bin_PROGRAMS} @CFA_PREFIX@/lib/${cc1lib_PROGRAMS}
  • src/driver/Makefile.in

    r77971f6 r3f0c6a5  
    100100CFA_PREFIX = @CFA_PREFIX@
    101101CFLAGS = @CFLAGS@
     102CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    102103CPP = @CPP@
    103104CPPFLAGS = @CPPFLAGS@
     
    542543
    543544
     545cfa.cc : ${abs_top_srcdir}/version
     546        @true
     547
    544548# Tell versions [3.59,3.63) of GNU make to not export all variables.
    545549# Otherwise a system limit (for SysV at least) may be exceeded.
  • src/driver/cfa.cc

    r77971f6 r3f0c6a5  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug  6 16:14:55 2016
    13 // Update Count     : 148
     12// Last Modified On : Tue Oct 25 21:29:48 2016
     13// Update Count     : 152
    1414//
    1515
     
    2525using std::endl;
    2626using std::string;
     27using std::to_string;
    2728
    2829
     
    5051
    5152int main( int argc, char *argv[] ) {
    52         string Version( VERSION );                                                      // current version number from CONFIG
    53         string Major( "0" ), Minor( "0" ), Patch( "0" );        // default version numbers
    54 
    55         int posn1 = Version.find( "." );                                        // find the divider between major and minor version numbers
    56         if ( posn1 == -1 ) {                                                            // not there ?
    57                 Major = Version;
    58         } else {
    59                 Major = Version.substr( 0, posn1 );
    60                 int posn2 = Version.find( ".", posn1 + 1 );             // find the divider between minor and patch numbers
    61                 if ( posn2 == -1 ) {                                                    // not there ?
    62                         Minor = Version.substr( posn1 );
    63                 } else {
    64                         Minor = Version.substr( posn1 + 1, posn2 - posn1 - 1 );
    65                         Patch = Version.substr( posn2 + 1 );
    66                 } // if
    67         } // if
     53        string Version( CFA_VERSION_LONG );                                                     // current version number from CONFIG
     54        string Major( to_string( CFA_VERSION_MAJOR ) ), Minor( to_string( CFA_VERSION_MINOR ) ), Patch( to_string( CFA_VERSION_PATCH ) );
    6855
    6956        string installincdir( CFA_INCDIR );                                     // fixed location of include files
     
    268255        // add the correct set of flags based on the type of compile this is
    269256
    270         args[nargs] = ( *new string( string("-D__CFA__=") + Major ) ).c_str();
     257        args[nargs] = ( *new string( string("-D__CFA_MAJOR__=") + Major ) ).c_str();
    271258        nargs += 1;
    272259        args[nargs] = ( *new string( string("-D__CFA_MINOR__=") + Minor ) ).c_str();
    273260        nargs += 1;
    274         args[nargs] = ( *new string( string("-D__CFA_PATCHLEVEL__=") + Patch ) ).c_str();
     261        args[nargs] = ( *new string( string("-D__CFA_PATCH__=") + Patch ) ).c_str();
    275262        nargs += 1;
    276263        args[nargs] = "-D__CFA__";
  • src/examples/Makefile.in

    r77971f6 r3f0c6a5  
    111111# applies to both programs
    112112CFLAGS = -g -Wall -Wno-unused-function # TEMPORARY: does not build with -O2
     113CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    113114CPP = @CPP@
    114115CPPFLAGS = @CPPFLAGS@
  • src/libcfa/Makefile.in

    r77971f6 r3f0c6a5  
    137137CFA_PREFIX = @CFA_PREFIX@
    138138CFLAGS = -quiet -no-include-stdhdr -g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2
     139CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    139140CPP = @CPP@
    140141CPPFLAGS = @CPPFLAGS@
  • src/tests/Makefile.in

    r77971f6 r3f0c6a5  
    121121# applies to both programs
    122122CFLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ # TEMPORARY: does not build with -O2
     123CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    123124CPP = @CPP@
    124125CPPFLAGS = @CPPFLAGS@
Note: See TracChangeset for help on using the changeset viewer.