Changes in / [3f0c6a5:77971f6]


Ignore:
Files:
1 deleted
18 edited

Legend:

Unmodified
Added
Removed
  • Makefile.in

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

    r3f0c6a5 r77971f6  
    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
    4420
    4521/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
  • configure

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

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

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

    r3f0c6a5 r77971f6  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Tue Oct 25 23:03:59 2016
    14 %% Update Count     : 1357
     13%% Last Modified On : Thu Sep 29 11:50:28 2016
     14%% Update Count     : 1325
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    326326\begin{description}
    327327\item
    328 \Indexc{__CFA_MAJOR__}\index{preprocessor variables!__CFA__@{©__CFA__©}}
    329 is available during preprocessing and its value is the major \Index{version number} of \CFA.\footnote{
     328\Indexc{__CFA__}\index{preprocessor variables!__CFA__@{©__CFA__©}}
     329is always available during preprocessing and its value is the current 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 available during preprocessing and its value is the minor \Index{version number} of \CFA.
     335is always available during preprocessing and its value is the current minor \Index{version number} of \CFA.
    336336
    337337\item
    338338\Indexc{__CFA_PATCH__}\index{preprocessor variables!__CFA_PATCH__@©__CFA_PATCH__©}
    339 is 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
     339is always available during preprocessing and its value is the current patch \Index{version number} of \CFA.
     340
     341\item
    343342\Indexc{__CFORALL__}\index{preprocessor variables!__CFORALL__@©__CFORALL__©}
    344 are always available during preprocessing and have no value.
     343is always available during preprocessing and has no value.
    345344\end{description}
    346345These preprocessor variables allow conditional compilation of programs that must work differently in these situations.
  • src/Makefile.in

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

    r3f0c6a5 r77971f6  
    382382        (yy_c_buf_p) = yy_cp;
    383383
    384 #define YY_NUM_RULES 183
    385 #define YY_END_OF_BUFFER 184
     384#define YY_NUM_RULES 181
     385#define YY_END_OF_BUFFER 182
    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[895] =
     393static yyconst flex_int16_t yy_accept[892] =
    394394    {   0,
    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,
     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,
    400400      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    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,
     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,
    409409        0,    0,    0,    0,    0,    0,    0,    0,    0,  104,
    410       176,    0,  120,  117,  103,    0,    0,  173,    0,  103,
     410      174,    0,  118,  115,  103,    0,    0,  171,    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,  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,
     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,
    419419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
    420         0,  136,  114,  115,    0,  115,  115,    0,    0,    6,
    421       115,  111,    0,    0,    0,  115,    0,  111,  111,  111,
     420        0,  134,  113,  113,    0,  113,  113,    0,    0,    6,
     421        0,  111,    0,    0,    0,  113,    0,  111,  111,  111,
    422422      111,    0,  112,    0,    0,  110,  110,  110,  110,    0,
    423       174,  175,    0,  180,  178,    0,    0,    0,  104,    0,
     423      172,  173,    0,  178,  176,    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,  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,
     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
    440439      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,
    444440      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    445       103,  103,  103,  103,  103,  103,   98,  103,  103,    0,
     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,
     444      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
     445      103,  103,  103,  103,   98,  103,  103,    0,    0,    0,
    446446        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,
     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,
     458        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,
    453463      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
    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,
    458         0,    0,    0,    0,    0,    0,    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,
    476         0,    0,    0,    0,    0,    0,    0,    0,    0,    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
     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
    493493
    494494    } ;
     
    539539    } ;
    540540
    541 static yyconst flex_int16_t yy_base[1069] =
     541static yyconst flex_int16_t yy_base[1066] =
    542542    {   0,
    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,
     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,
    548548      237,  270,  235,  257,  241,  205,  193,  305,  314,  333,
    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,
     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,
    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, 2224,  526,  510,
     561      489,  503,  496,  521,  276,  515,  516, 2202,  526,  510,
    562562      519,  525,  543,  522,  560,  553,  523,  561,  551,  544,
    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
     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
    660660    } ;
    661661
    662 static yyconst flex_int16_t yy_def[1069] =
     662static yyconst flex_int16_t yy_def[1066] =
    663663    {   0,
    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,
     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,
    727727      993,  994,  995,  996,  997,  998,  999, 1000, 1001, 1002,
    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
     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
    781781    } ;
    782782
    783 static yyconst flex_int16_t yy_nxt[2931] =
     783static yyconst flex_int16_t yy_nxt[2911] =
    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,  894,   94,
     808       95,   99,   99,   99,   99,   99,   99,  252,  891,   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,  503,  249,  126,  127,   87,  128,  191,
     823      114,  125,  280,  500,  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,  504,  188,  186,
     825      185,  257,  248,   87,  133,  134,  135,  501,  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       894,  264,  192,  197,   81,   82,   82,   82,  197,   87,
     829      891,  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       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,
     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,
    836836      266,  263,  263,  264,  264,  213,  143,  263,  211,  264,
    837        87,  144,  377,  211,  211,   87,   87,  211,  211,   87,
    838        87,   87,  286,   87,  894,  211,   87,   87,  211,  243,
     837       87,  144,  375,  211,  211,   87,   87,  211,  211,   87,
     838       87,   87,  286,  241,  891,  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,  894,   87,  309,  300,   87,   87,  224,  225,
     842       87,   87,  891,   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,  409,  360,
     854      336,  290,  291,  334,   87,  292,   87,  293,  407,  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       380,  361,  200,  202,  202,  202,  202,  202,  202,  344,
     858      378,  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,  380,   87,  361,  209,
     860      202,  202,  202,  202,  209,  210,  378,  143,  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       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,
     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,
    10091007       86,   86,   86,   86,  199,  199,  199,  199,  199,  199,
    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
     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
    11071105    } ;
    11081106
    1109 static yyconst flex_int16_t yy_chk[2931] =
     1107static yyconst flex_int16_t yy_chk[2911] =
    11101108    {   0,
    11111109        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
     
    11281126        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
    11291127        5,    5,    5,    5,    5,    5,    5,    5,    5,    7,
    1130         8,    9,   10,   37,   37,   20,   39,    9,   10,  893,
     1128        8,    9,   10,   37,   37,   20,   39,    9,   10,  890,
    11311129        7,    8,   13,   13,   13,   13,   13,   13,   15,   15,
    11321130
     
    11391137       47,   45,   45,   45,   49,   30,   30,   45,   45,   49,
    11401138       45,   30,   40,   45,   45,   40,   49,   30,   45,   56,
    1141        62,   45,   49,   30,   73,  892,  127,   53,  127,   51,
     1139       62,   45,   49,   30,   73,  889,  127,   53,  127,   51,
    11421140       61,   30,   62,   55,   30,   31,  108,   31,   31,   31,
    11431141
     
    11471145       31,  129,  107,  154,  151,   52,   31,   52,  107,   87,
    11481146       52,   60,   31,  132,   52,  132,   60,  114,  175,  154,
    1149        31,   38,  151,  387,  111,   38,   38,   58,   38,   60,
     1147       31,   38,  151,  385,  111,   38,   38,   58,   38,   60,
    11501148       38,   38,  113,   38,  107,   38,   59,  130,  113,   58,
    1151        58,  116,  111,  164,   38,   38,   38,  387,   59,   58,
     1149       58,  116,  111,  164,   38,   38,   38,  385,   59,   58,
    11521150      111,  130,   58,  130,  142,   60,   59,  131,   60,  116,
    11531151      164,   68,   68,   59,  113,   38,   68,  116,   38,  131,
    11541152
    1155       110,  131,   60,   67,   67,   67,   67,   67,   67,  884,
     1153      110,  131,   60,   67,   67,   67,   67,   67,   67,  881,
    11561154      142,   67,   68,   68,   68,   68,   68,   68,   80,   80,
    11571155       80,   80,   80,   80,  153,   38,   38,   77,   77,  134,
    11581156      110,  134,   77,  153,   77,  110,  135,  135,  135,   77,
    1159        82,   82,   82,   82,   82,   82,  883,  243,   77,   77,
     1157       82,   82,   82,   82,   82,   82,  880,  243,   77,   77,
    11601158       77,   77,   83,   83,   83,   83,   83,   83,  110,   77,
    11611159      103,  103,  103,  103,  103,  103,  104,  104,  104,  104,
    11621160      133,  133,  137,  133,  137,   77,  145,  139,   77,  139,
    11631161      157,  145,  243,   77,   77,  152,  156,   77,   77,  155,
    1164       166,  150,  157,  880,  104,   77,  159,  168,   77,  104,
     1162      166,  150,  157,  103,  104,   77,  159,  168,   77,  104,
    11651163
    11661164       77,   77,   77,  152,   77,   85,  150,  155,  156,   85,
    11671165       85,  166,  159,  150,   85,   85,  161,   85,  160,   85,
    11681166      145,  162,  104,  167,  168,  161,  169,  163,   85,   85,
    1169        85,  105,  163,  105,  105,  105,  105,  105,  105,  879,
     1167       85,  105,  163,  105,  105,  105,  105,  105,  105,  877,
    11701168      160,  171,  162,  162,  165,  163,  167,  169,  173,   85,
    11711169      105,  106,   85,  106,  165,  172,  106,  106,  106,  106,
     
    11801178      189,  158,  158,  188,  192,  158,  194,  158,  284,  219,
    11811179      185,  219,  158,  158,  158,  193,  158,  192,  220,  194,
    1182       220,  191,  198,  198,  191,  192,  205,  198,  193,  877,
     1180      220,  191,  198,  198,  191,  192,  205,  198,  193,  876,
    11831181      193,  197,  197,  197,  197,  197,  197,  200,  200,  197,
    11841182      248,  221,  200,  198,  198,  198,  198,  198,  198,  202,
    11851183      202,  223,  205,  223,  202,  221,  202,  221,  200,  200,
    1186       200,  200,  200,  200,  209,  209,  248,  876,  222,  209,
     1184      200,  200,  200,  200,  209,  209,  248,  338,  222,  209,
    11871185
    11881186      202,  202,  202,  202,  202,  202,  212,  212,  212,  212,
    1189       222,  286,  222,  224,  224,  225,  224,  225,  226,  226,
     1187      222,  309,  222,  224,  224,  225,  224,  225,  226,  226,
    11901188      226,  228,  229,  228,  229,  234,  234,  235,  236,  235,
    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 
     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,
    13091308      897,  897,  897,  897,  897,  897,  897,  897,  897,  897,
    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
     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
    14331429    } ;
    14341430
    14351431/* Table of booleans, true if rule could match eol. */
    1436 static yyconst flex_int32_t yy_rule_can_match_eol[184] =
     1432static yyconst flex_int32_t yy_rule_can_match_eol[182] =
    14371433    {   0,
    143814341, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     
    14411437    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14421438    0, 0, 0, 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,
     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,
    14451441    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    14461442    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
    1447     0, 0, 0, 0,     };
     1443    0, 0,     };
    14481444
    14491445static yy_state_type yy_last_accepting_state;
     
    14731469 * Created On       : Sat Sep 22 08:58:10 2001
    14741470 * Last Modified By : Peter A. Buhr
    1475  * Last Modified On : Wed Oct 26 17:32:30 2016
    1476  * Update Count     : 499
     1471 * Last Modified On : Tue Oct 18 22:19:37 2016
     1472 * Update Count     : 488
    14771473 */
    14781474#line 20 "lex.ll"
     
    15351531
    15361532
    1537 #line 1538 "Parser/lex.cc"
     1533#line 1534 "Parser/lex.cc"
    15381534
    15391535#define INITIAL 0
     
    17271723        register int yy_act;
    17281724   
    1729 #line 138 "lex.ll"
     1725#line 136 "lex.ll"
    17301726
    17311727                                   /* line directives */
    1732 #line 1733 "Parser/lex.cc"
     1728#line 1729 "Parser/lex.cc"
    17331729
    17341730        if ( !(yy_init) )
     
    17841780                                {
    17851781                                yy_current_state = (int) yy_def[yy_current_state];
    1786                                 if ( yy_current_state >= 895 )
     1782                                if ( yy_current_state >= 892 )
    17871783                                        yy_c = yy_meta[(unsigned int) yy_c];
    17881784                                }
     
    17901786                        ++yy_cp;
    17911787                        }
    1792                 while ( yy_base[yy_current_state] != 2845 );
     1788                while ( yy_base[yy_current_state] != 2825 );
    17931789
    17941790yy_find_action:
     
    18271823/* rule 1 can match eol */
    18281824YY_RULE_SETUP
    1829 #line 140 "lex.ll"
     1825#line 138 "lex.ll"
    18301826{
    18311827        /* " stop highlighting */
     
    18531849/* rule 2 can match eol */
    18541850YY_RULE_SETUP
    1855 #line 162 "lex.ll"
     1851#line 160 "lex.ll"
    18561852;
    18571853        YY_BREAK
     
    18591855case 3:
    18601856YY_RULE_SETUP
    1861 #line 165 "lex.ll"
     1857#line 163 "lex.ll"
    18621858{ BEGIN COMMENT; }
    18631859        YY_BREAK
     
    18651861/* rule 4 can match eol */
    18661862YY_RULE_SETUP
    1867 #line 166 "lex.ll"
     1863#line 164 "lex.ll"
    18681864;
    18691865        YY_BREAK
    18701866case 5:
    18711867YY_RULE_SETUP
    1872 #line 167 "lex.ll"
     1868#line 165 "lex.ll"
    18731869{ BEGIN 0; }
    18741870        YY_BREAK
     
    18771873/* rule 6 can match eol */
    18781874YY_RULE_SETUP
    1879 #line 170 "lex.ll"
     1875#line 168 "lex.ll"
    18801876;
    18811877        YY_BREAK
     
    18831879case 7:
    18841880YY_RULE_SETUP
    1885 #line 173 "lex.ll"
     1881#line 171 "lex.ll"
    18861882{ WHITE_RETURN(' '); }
    18871883        YY_BREAK
    18881884case 8:
    18891885YY_RULE_SETUP
    1890 #line 174 "lex.ll"
     1886#line 172 "lex.ll"
    18911887{ WHITE_RETURN(' '); }
    18921888        YY_BREAK
     
    18941890/* rule 9 can match eol */
    18951891YY_RULE_SETUP
    1896 #line 175 "lex.ll"
     1892#line 173 "lex.ll"
    18971893{ NEWLINE_RETURN(); }
    18981894        YY_BREAK
     
    19001896case 10:
    19011897YY_RULE_SETUP
     1898#line 176 "lex.ll"
     1899{ KEYWORD_RETURN(ALIGNAS); }                    // C11
     1900        YY_BREAK
     1901case 11:
     1902YY_RULE_SETUP
     1903#line 177 "lex.ll"
     1904{ KEYWORD_RETURN(ALIGNOF); }                    // C11
     1905        YY_BREAK
     1906case 12:
     1907YY_RULE_SETUP
    19021908#line 178 "lex.ll"
    1903 { KEYWORD_RETURN(ALIGNAS); }                    // C11
    1904         YY_BREAK
    1905 case 11:
     1909{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
     1910        YY_BREAK
     1911case 13:
    19061912YY_RULE_SETUP
    19071913#line 179 "lex.ll"
    1908 { KEYWORD_RETURN(ALIGNOF); }                    // C11
    1909         YY_BREAK
    1910 case 12:
     1914{ KEYWORD_RETURN(ALIGNOF); }                    // GCC
     1915        YY_BREAK
     1916case 14:
    19111917YY_RULE_SETUP
    19121918#line 180 "lex.ll"
    1913 { KEYWORD_RETURN(ALIGNOF); }                    // GCC
    1914         YY_BREAK
    1915 case 13:
     1919{ KEYWORD_RETURN(ASM); }
     1920        YY_BREAK
     1921case 15:
    19161922YY_RULE_SETUP
    19171923#line 181 "lex.ll"
    1918 { KEYWORD_RETURN(ALIGNOF); }                    // GCC
    1919         YY_BREAK
    1920 case 14:
     1924{ KEYWORD_RETURN(ASM); }                                // GCC
     1925        YY_BREAK
     1926case 16:
    19211927YY_RULE_SETUP
    19221928#line 182 "lex.ll"
    1923 { KEYWORD_RETURN(ASM); }
    1924         YY_BREAK
    1925 case 15:
     1929{ KEYWORD_RETURN(ASM); }                                // GCC
     1930        YY_BREAK
     1931case 17:
    19261932YY_RULE_SETUP
    19271933#line 183 "lex.ll"
    1928 { KEYWORD_RETURN(ASM); }                                // GCC
    1929         YY_BREAK
    1930 case 16:
     1934{ KEYWORD_RETURN(AT); }                                 // CFA
     1935        YY_BREAK
     1936case 18:
    19311937YY_RULE_SETUP
    19321938#line 184 "lex.ll"
    1933 { KEYWORD_RETURN(ASM); }                                // GCC
    1934         YY_BREAK
    1935 case 17:
     1939{ KEYWORD_RETURN(ATOMIC); }                             // C11
     1940        YY_BREAK
     1941case 19:
    19361942YY_RULE_SETUP
    19371943#line 185 "lex.ll"
    1938 { KEYWORD_RETURN(AT); }                                 // CFA
    1939         YY_BREAK
    1940 case 18:
     1944{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1945        YY_BREAK
     1946case 20:
    19411947YY_RULE_SETUP
    19421948#line 186 "lex.ll"
    1943 { KEYWORD_RETURN(ATOMIC); }                             // C11
    1944         YY_BREAK
    1945 case 19:
     1949{ KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
     1950        YY_BREAK
     1951case 21:
    19461952YY_RULE_SETUP
    19471953#line 187 "lex.ll"
    1948 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    1949         YY_BREAK
    1950 case 20:
     1954{ KEYWORD_RETURN(AUTO); }
     1955        YY_BREAK
     1956case 22:
    19511957YY_RULE_SETUP
    19521958#line 188 "lex.ll"
    1953 { KEYWORD_RETURN(ATTRIBUTE); }                  // GCC
    1954         YY_BREAK
    1955 case 21:
     1959{ KEYWORD_RETURN(BOOL); }                               // C99
     1960        YY_BREAK
     1961case 23:
    19561962YY_RULE_SETUP
    19571963#line 189 "lex.ll"
    1958 { KEYWORD_RETURN(AUTO); }
    1959         YY_BREAK
    1960 case 22:
     1964{ KEYWORD_RETURN(BREAK); }
     1965        YY_BREAK
     1966case 24:
    19611967YY_RULE_SETUP
    19621968#line 190 "lex.ll"
    1963 { KEYWORD_RETURN(BOOL); }                               // C99
    1964         YY_BREAK
    1965 case 23:
     1969{ KEYWORD_RETURN(CASE); }
     1970        YY_BREAK
     1971case 25:
    19661972YY_RULE_SETUP
    19671973#line 191 "lex.ll"
    1968 { KEYWORD_RETURN(BREAK); }
    1969         YY_BREAK
    1970 case 24:
     1974{ KEYWORD_RETURN(CATCH); }                              // CFA
     1975        YY_BREAK
     1976case 26:
    19711977YY_RULE_SETUP
    19721978#line 192 "lex.ll"
    1973 { KEYWORD_RETURN(CASE); }
    1974         YY_BREAK
    1975 case 25:
     1979{ KEYWORD_RETURN(CATCHRESUME); }                // CFA
     1980        YY_BREAK
     1981case 27:
    19761982YY_RULE_SETUP
    19771983#line 193 "lex.ll"
    1978 { KEYWORD_RETURN(CATCH); }                              // CFA
    1979         YY_BREAK
    1980 case 26:
     1984{ KEYWORD_RETURN(CHAR); }
     1985        YY_BREAK
     1986case 28:
    19811987YY_RULE_SETUP
    19821988#line 194 "lex.ll"
    1983 { KEYWORD_RETURN(CATCHRESUME); }                // CFA
    1984         YY_BREAK
    1985 case 27:
     1989{ KEYWORD_RETURN(CHOOSE); }                             // CFA
     1990        YY_BREAK
     1991case 29:
    19861992YY_RULE_SETUP
    19871993#line 195 "lex.ll"
    1988 { KEYWORD_RETURN(CHAR); }
    1989         YY_BREAK
    1990 case 28:
     1994{ KEYWORD_RETURN(COMPLEX); }                    // C99
     1995        YY_BREAK
     1996case 30:
    19911997YY_RULE_SETUP
    19921998#line 196 "lex.ll"
    1993 { KEYWORD_RETURN(CHOOSE); }                             // CFA
    1994         YY_BREAK
    1995 case 29:
     1999{ KEYWORD_RETURN(COMPLEX); }                    // GCC
     2000        YY_BREAK
     2001case 31:
    19962002YY_RULE_SETUP
    19972003#line 197 "lex.ll"
    1998 { KEYWORD_RETURN(COMPLEX); }                    // C99
    1999         YY_BREAK
    2000 case 30:
     2004{ KEYWORD_RETURN(COMPLEX); }                    // GCC
     2005        YY_BREAK
     2006case 32:
    20012007YY_RULE_SETUP
    20022008#line 198 "lex.ll"
    2003 { KEYWORD_RETURN(COMPLEX); }                    // GCC
    2004         YY_BREAK
    2005 case 31:
     2009{ KEYWORD_RETURN(CONST); }
     2010        YY_BREAK
     2011case 33:
    20062012YY_RULE_SETUP
    20072013#line 199 "lex.ll"
    2008 { KEYWORD_RETURN(COMPLEX); }                    // GCC
    2009         YY_BREAK
    2010 case 32:
     2014{ KEYWORD_RETURN(CONST); }                              // GCC
     2015        YY_BREAK
     2016case 34:
    20112017YY_RULE_SETUP
    20122018#line 200 "lex.ll"
    2013 { KEYWORD_RETURN(CONST); }
    2014         YY_BREAK
    2015 case 33:
     2019{ KEYWORD_RETURN(CONST); }                              // GCC
     2020        YY_BREAK
     2021case 35:
    20162022YY_RULE_SETUP
    20172023#line 201 "lex.ll"
    2018 { KEYWORD_RETURN(CONST); }                              // GCC
    2019         YY_BREAK
    2020 case 34:
     2024{ KEYWORD_RETURN(CONTINUE); }
     2025        YY_BREAK
     2026case 36:
    20212027YY_RULE_SETUP
    20222028#line 202 "lex.ll"
    2023 { KEYWORD_RETURN(CONST); }                              // GCC
    2024         YY_BREAK
    2025 case 35:
     2029{ KEYWORD_RETURN(DEFAULT); }
     2030        YY_BREAK
     2031case 37:
    20262032YY_RULE_SETUP
    20272033#line 203 "lex.ll"
    2028 { KEYWORD_RETURN(CONTINUE); }
    2029         YY_BREAK
    2030 case 36:
     2034{ KEYWORD_RETURN(DISABLE); }                    // CFA
     2035        YY_BREAK
     2036case 38:
    20312037YY_RULE_SETUP
    20322038#line 204 "lex.ll"
    2033 { KEYWORD_RETURN(DEFAULT); }
    2034         YY_BREAK
    2035 case 37:
     2039{ KEYWORD_RETURN(DO); }
     2040        YY_BREAK
     2041case 39:
    20362042YY_RULE_SETUP
    20372043#line 205 "lex.ll"
    2038 { KEYWORD_RETURN(DISABLE); }                    // CFA
    2039         YY_BREAK
    2040 case 38:
     2044{ KEYWORD_RETURN(DOUBLE); }
     2045        YY_BREAK
     2046case 40:
    20412047YY_RULE_SETUP
    20422048#line 206 "lex.ll"
    2043 { KEYWORD_RETURN(DO); }
    2044         YY_BREAK
    2045 case 39:
     2049{ KEYWORD_RETURN(DTYPE); }                              // CFA
     2050        YY_BREAK
     2051case 41:
    20462052YY_RULE_SETUP
    20472053#line 207 "lex.ll"
    2048 { KEYWORD_RETURN(DOUBLE); }
    2049         YY_BREAK
    2050 case 40:
     2054{ KEYWORD_RETURN(ELSE); }
     2055        YY_BREAK
     2056case 42:
    20512057YY_RULE_SETUP
    20522058#line 208 "lex.ll"
    2053 { KEYWORD_RETURN(DTYPE); }                              // CFA
    2054         YY_BREAK
    2055 case 41:
     2059{ KEYWORD_RETURN(ENABLE); }                             // CFA
     2060        YY_BREAK
     2061case 43:
    20562062YY_RULE_SETUP
    20572063#line 209 "lex.ll"
    2058 { KEYWORD_RETURN(ELSE); }
    2059         YY_BREAK
    2060 case 42:
     2064{ KEYWORD_RETURN(ENUM); }
     2065        YY_BREAK
     2066case 44:
    20612067YY_RULE_SETUP
    20622068#line 210 "lex.ll"
    2063 { KEYWORD_RETURN(ENABLE); }                             // CFA
    2064         YY_BREAK
    2065 case 43:
     2069{ KEYWORD_RETURN(EXTENSION); }                  // GCC
     2070        YY_BREAK
     2071case 45:
    20662072YY_RULE_SETUP
    20672073#line 211 "lex.ll"
    2068 { KEYWORD_RETURN(ENUM); }
    2069         YY_BREAK
    2070 case 44:
     2074{ KEYWORD_RETURN(EXTERN); }
     2075        YY_BREAK
     2076case 46:
    20712077YY_RULE_SETUP
    20722078#line 212 "lex.ll"
    2073 { KEYWORD_RETURN(EXTENSION); }                  // GCC
    2074         YY_BREAK
    2075 case 45:
     2079{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2080        YY_BREAK
     2081case 47:
    20762082YY_RULE_SETUP
    20772083#line 213 "lex.ll"
    2078 { KEYWORD_RETURN(EXTERN); }
    2079         YY_BREAK
    2080 case 46:
     2084{ KEYWORD_RETURN(FALLTHRU); }                   // CFA
     2085        YY_BREAK
     2086case 48:
    20812087YY_RULE_SETUP
    20822088#line 214 "lex.ll"
    2083 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    2084         YY_BREAK
    2085 case 47:
     2089{ KEYWORD_RETURN(FINALLY); }                    // CFA
     2090        YY_BREAK
     2091case 49:
    20862092YY_RULE_SETUP
    20872093#line 215 "lex.ll"
    2088 { KEYWORD_RETURN(FALLTHRU); }                   // CFA
    2089         YY_BREAK
    2090 case 48:
     2094{ KEYWORD_RETURN(FLOAT); }
     2095        YY_BREAK
     2096case 50:
    20912097YY_RULE_SETUP
    20922098#line 216 "lex.ll"
    2093 { KEYWORD_RETURN(FINALLY); }                    // CFA
    2094         YY_BREAK
    2095 case 49:
     2099{ KEYWORD_RETURN(FLOAT); }                              // GCC
     2100        YY_BREAK
     2101case 51:
    20962102YY_RULE_SETUP
    20972103#line 217 "lex.ll"
    2098 { KEYWORD_RETURN(FLOAT); }
    2099         YY_BREAK
    2100 case 50:
     2104{ KEYWORD_RETURN(FOR); }
     2105        YY_BREAK
     2106case 52:
    21012107YY_RULE_SETUP
    21022108#line 218 "lex.ll"
    2103 { KEYWORD_RETURN(FLOAT); }                              // GCC
    2104         YY_BREAK
    2105 case 51:
     2109{ KEYWORD_RETURN(FORALL); }                             // CFA
     2110        YY_BREAK
     2111case 53:
    21062112YY_RULE_SETUP
    21072113#line 219 "lex.ll"
    2108 { KEYWORD_RETURN(FOR); }
    2109         YY_BREAK
    2110 case 52:
     2114{ KEYWORD_RETURN(FORTRAN); }
     2115        YY_BREAK
     2116case 54:
    21112117YY_RULE_SETUP
    21122118#line 220 "lex.ll"
    2113 { KEYWORD_RETURN(FORALL); }                             // CFA
    2114         YY_BREAK
    2115 case 53:
     2119{ KEYWORD_RETURN(FTYPE); }                              // CFA
     2120        YY_BREAK
     2121case 55:
    21162122YY_RULE_SETUP
    21172123#line 221 "lex.ll"
    2118 { KEYWORD_RETURN(FORTRAN); }
    2119         YY_BREAK
    2120 case 54:
     2124{ KEYWORD_RETURN(GENERIC); }                    // C11
     2125        YY_BREAK
     2126case 56:
    21212127YY_RULE_SETUP
    21222128#line 222 "lex.ll"
    2123 { KEYWORD_RETURN(FTYPE); }                              // CFA
    2124         YY_BREAK
    2125 case 55:
     2129{ KEYWORD_RETURN(GOTO); }
     2130        YY_BREAK
     2131case 57:
    21262132YY_RULE_SETUP
    21272133#line 223 "lex.ll"
    2128 { KEYWORD_RETURN(GENERIC); }                    // C11
    2129         YY_BREAK
    2130 case 56:
     2134{ KEYWORD_RETURN(IF); }
     2135        YY_BREAK
     2136case 58:
    21312137YY_RULE_SETUP
    21322138#line 224 "lex.ll"
    2133 { KEYWORD_RETURN(GOTO); }
    2134         YY_BREAK
    2135 case 57:
     2139{ KEYWORD_RETURN(IMAGINARY); }                  // C99
     2140        YY_BREAK
     2141case 59:
    21362142YY_RULE_SETUP
    21372143#line 225 "lex.ll"
    2138 { KEYWORD_RETURN(IF); }
    2139         YY_BREAK
    2140 case 58:
     2144{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2145        YY_BREAK
     2146case 60:
    21412147YY_RULE_SETUP
    21422148#line 226 "lex.ll"
    2143 { KEYWORD_RETURN(IMAGINARY); }                  // C99
    2144         YY_BREAK
    2145 case 59:
     2149{ KEYWORD_RETURN(IMAGINARY); }                  // GCC
     2150        YY_BREAK
     2151case 61:
    21462152YY_RULE_SETUP
    21472153#line 227 "lex.ll"
    2148 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    2149         YY_BREAK
    2150 case 60:
     2154{ KEYWORD_RETURN(INLINE); }                             // C99
     2155        YY_BREAK
     2156case 62:
    21512157YY_RULE_SETUP
    21522158#line 228 "lex.ll"
    2153 { KEYWORD_RETURN(IMAGINARY); }                  // GCC
    2154         YY_BREAK
    2155 case 61:
     2159{ KEYWORD_RETURN(INLINE); }                             // GCC
     2160        YY_BREAK
     2161case 63:
    21562162YY_RULE_SETUP
    21572163#line 229 "lex.ll"
    2158 { KEYWORD_RETURN(INLINE); }                             // C99
    2159         YY_BREAK
    2160 case 62:
     2164{ KEYWORD_RETURN(INLINE); }                             // GCC
     2165        YY_BREAK
     2166case 64:
    21612167YY_RULE_SETUP
    21622168#line 230 "lex.ll"
    2163 { KEYWORD_RETURN(INLINE); }                             // GCC
    2164         YY_BREAK
    2165 case 63:
     2169{ KEYWORD_RETURN(INT); }
     2170        YY_BREAK
     2171case 65:
    21662172YY_RULE_SETUP
    21672173#line 231 "lex.ll"
    2168 { KEYWORD_RETURN(INLINE); }                             // GCC
    2169         YY_BREAK
    2170 case 64:
     2174{ KEYWORD_RETURN(INT); }                                // GCC
     2175        YY_BREAK
     2176case 66:
    21712177YY_RULE_SETUP
    21722178#line 232 "lex.ll"
    2173 { KEYWORD_RETURN(INT); }
    2174         YY_BREAK
    2175 case 65:
     2179{ KEYWORD_RETURN(LABEL); }                              // GCC
     2180        YY_BREAK
     2181case 67:
    21762182YY_RULE_SETUP
    21772183#line 233 "lex.ll"
    2178 { KEYWORD_RETURN(INT); }                                // GCC
    2179         YY_BREAK
    2180 case 66:
     2184{ KEYWORD_RETURN(LONG); }
     2185        YY_BREAK
     2186case 68:
    21812187YY_RULE_SETUP
    21822188#line 234 "lex.ll"
    2183 { KEYWORD_RETURN(LABEL); }                              // GCC
    2184         YY_BREAK
    2185 case 67:
     2189{ KEYWORD_RETURN(LVALUE); }                             // CFA
     2190        YY_BREAK
     2191case 69:
    21862192YY_RULE_SETUP
    21872193#line 235 "lex.ll"
    2188 { KEYWORD_RETURN(LONG); }
    2189         YY_BREAK
    2190 case 68:
     2194{ KEYWORD_RETURN(NORETURN); }                   // C11
     2195        YY_BREAK
     2196case 70:
    21912197YY_RULE_SETUP
    21922198#line 236 "lex.ll"
    2193 { KEYWORD_RETURN(LVALUE); }                             // CFA
    2194         YY_BREAK
    2195 case 69:
     2199{ KEYWORD_RETURN(OFFSETOF); }           // GCC
     2200        YY_BREAK
     2201case 71:
    21962202YY_RULE_SETUP
    21972203#line 237 "lex.ll"
    2198 { KEYWORD_RETURN(NORETURN); }                   // C11
    2199         YY_BREAK
    2200 case 70:
     2204{ KEYWORD_RETURN(OTYPE); }                              // CFA
     2205        YY_BREAK
     2206case 72:
    22012207YY_RULE_SETUP
    22022208#line 238 "lex.ll"
    2203 { KEYWORD_RETURN(OFFSETOF); }           // GCC
    2204         YY_BREAK
    2205 case 71:
     2209{ KEYWORD_RETURN(REGISTER); }
     2210        YY_BREAK
     2211case 73:
    22062212YY_RULE_SETUP
    22072213#line 239 "lex.ll"
    2208 { KEYWORD_RETURN(OTYPE); }                              // CFA
    2209         YY_BREAK
    2210 case 72:
     2214{ KEYWORD_RETURN(RESTRICT); }                   // C99
     2215        YY_BREAK
     2216case 74:
    22112217YY_RULE_SETUP
    22122218#line 240 "lex.ll"
    2213 { KEYWORD_RETURN(REGISTER); }
    2214         YY_BREAK
    2215 case 73:
     2219{ KEYWORD_RETURN(RESTRICT); }                   // GCC
     2220        YY_BREAK
     2221case 75:
    22162222YY_RULE_SETUP
    22172223#line 241 "lex.ll"
    2218 { KEYWORD_RETURN(RESTRICT); }                   // C99
    2219         YY_BREAK
    2220 case 74:
     2224{ KEYWORD_RETURN(RESTRICT); }                   // GCC
     2225        YY_BREAK
     2226case 76:
    22212227YY_RULE_SETUP
    22222228#line 242 "lex.ll"
    2223 { KEYWORD_RETURN(RESTRICT); }                   // GCC
    2224         YY_BREAK
    2225 case 75:
     2229{ KEYWORD_RETURN(RETURN); }
     2230        YY_BREAK
     2231case 77:
    22262232YY_RULE_SETUP
    22272233#line 243 "lex.ll"
    2228 { KEYWORD_RETURN(RESTRICT); }                   // GCC
    2229         YY_BREAK
    2230 case 76:
     2234{ KEYWORD_RETURN(SHORT); }
     2235        YY_BREAK
     2236case 78:
    22312237YY_RULE_SETUP
    22322238#line 244 "lex.ll"
    2233 { KEYWORD_RETURN(RETURN); }
    2234         YY_BREAK
    2235 case 77:
     2239{ KEYWORD_RETURN(SIGNED); }
     2240        YY_BREAK
     2241case 79:
    22362242YY_RULE_SETUP
    22372243#line 245 "lex.ll"
    2238 { KEYWORD_RETURN(SHORT); }
    2239         YY_BREAK
    2240 case 78:
     2244{ KEYWORD_RETURN(SIGNED); }                             // GCC
     2245        YY_BREAK
     2246case 80:
    22412247YY_RULE_SETUP
    22422248#line 246 "lex.ll"
    2243 { KEYWORD_RETURN(SIGNED); }
    2244         YY_BREAK
    2245 case 79:
     2249{ KEYWORD_RETURN(SIGNED); }                             // GCC
     2250        YY_BREAK
     2251case 81:
    22462252YY_RULE_SETUP
    22472253#line 247 "lex.ll"
    2248 { KEYWORD_RETURN(SIGNED); }                             // GCC
    2249         YY_BREAK
    2250 case 80:
     2254{ KEYWORD_RETURN(SIZEOF); }
     2255        YY_BREAK
     2256case 82:
    22512257YY_RULE_SETUP
    22522258#line 248 "lex.ll"
    2253 { KEYWORD_RETURN(SIGNED); }                             // GCC
    2254         YY_BREAK
    2255 case 81:
     2259{ KEYWORD_RETURN(STATIC); }
     2260        YY_BREAK
     2261case 83:
    22562262YY_RULE_SETUP
    22572263#line 249 "lex.ll"
    2258 { KEYWORD_RETURN(SIZEOF); }
    2259         YY_BREAK
    2260 case 82:
     2264{ KEYWORD_RETURN(STATICASSERT); }               // C11
     2265        YY_BREAK
     2266case 84:
    22612267YY_RULE_SETUP
    22622268#line 250 "lex.ll"
    2263 { KEYWORD_RETURN(STATIC); }
    2264         YY_BREAK
    2265 case 83:
     2269{ KEYWORD_RETURN(STRUCT); }
     2270        YY_BREAK
     2271case 85:
    22662272YY_RULE_SETUP
    22672273#line 251 "lex.ll"
    2268 { KEYWORD_RETURN(STATICASSERT); }               // C11
    2269         YY_BREAK
    2270 case 84:
     2274{ KEYWORD_RETURN(SWITCH); }
     2275        YY_BREAK
     2276case 86:
    22712277YY_RULE_SETUP
    22722278#line 252 "lex.ll"
    2273 { KEYWORD_RETURN(STRUCT); }
    2274         YY_BREAK
    2275 case 85:
     2279{ KEYWORD_RETURN(THREADLOCAL); }                // C11
     2280        YY_BREAK
     2281case 87:
    22762282YY_RULE_SETUP
    22772283#line 253 "lex.ll"
    2278 { KEYWORD_RETURN(SWITCH); }
    2279         YY_BREAK
    2280 case 86:
     2284{ KEYWORD_RETURN(THROW); }                              // CFA
     2285        YY_BREAK
     2286case 88:
    22812287YY_RULE_SETUP
    22822288#line 254 "lex.ll"
    2283 { KEYWORD_RETURN(THREADLOCAL); }                // C11
    2284         YY_BREAK
    2285 case 87:
     2289{ KEYWORD_RETURN(THROWRESUME); }                // CFA
     2290        YY_BREAK
     2291case 89:
    22862292YY_RULE_SETUP
    22872293#line 255 "lex.ll"
    2288 { KEYWORD_RETURN(THROW); }                              // CFA
    2289         YY_BREAK
    2290 case 88:
     2294{ KEYWORD_RETURN(TRAIT); }                              // CFA
     2295        YY_BREAK
     2296case 90:
    22912297YY_RULE_SETUP
    22922298#line 256 "lex.ll"
    2293 { KEYWORD_RETURN(THROWRESUME); }                // CFA
    2294         YY_BREAK
    2295 case 89:
     2299{ KEYWORD_RETURN(TRY); }                                // CFA
     2300        YY_BREAK
     2301case 91:
    22962302YY_RULE_SETUP
    22972303#line 257 "lex.ll"
    2298 { KEYWORD_RETURN(TRAIT); }                              // CFA
    2299         YY_BREAK
    2300 case 90:
     2304{ KEYWORD_RETURN(TYPEDEF); }
     2305        YY_BREAK
     2306case 92:
    23012307YY_RULE_SETUP
    23022308#line 258 "lex.ll"
    2303 { KEYWORD_RETURN(TRY); }                                // CFA
    2304         YY_BREAK
    2305 case 91:
     2309{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2310        YY_BREAK
     2311case 93:
    23062312YY_RULE_SETUP
    23072313#line 259 "lex.ll"
    2308 { KEYWORD_RETURN(TYPEDEF); }
    2309         YY_BREAK
    2310 case 92:
     2314{ KEYWORD_RETURN(TYPEOF); }                             // GCC
     2315        YY_BREAK
     2316case 94:
    23112317YY_RULE_SETUP
    23122318#line 260 "lex.ll"
    23132319{ KEYWORD_RETURN(TYPEOF); }                             // GCC
    23142320        YY_BREAK
    2315 case 93:
     2321case 95:
    23162322YY_RULE_SETUP
    23172323#line 261 "lex.ll"
    2318 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2319         YY_BREAK
    2320 case 94:
     2324{ KEYWORD_RETURN(UNION); }
     2325        YY_BREAK
     2326case 96:
    23212327YY_RULE_SETUP
    23222328#line 262 "lex.ll"
    2323 { KEYWORD_RETURN(TYPEOF); }                             // GCC
    2324         YY_BREAK
    2325 case 95:
     2329{ KEYWORD_RETURN(UNSIGNED); }
     2330        YY_BREAK
     2331case 97:
    23262332YY_RULE_SETUP
    23272333#line 263 "lex.ll"
    2328 { KEYWORD_RETURN(UNION); }
    2329         YY_BREAK
    2330 case 96:
     2334{ KEYWORD_RETURN(VALIST); }                     // GCC
     2335        YY_BREAK
     2336case 98:
    23312337YY_RULE_SETUP
    23322338#line 264 "lex.ll"
    2333 { KEYWORD_RETURN(UNSIGNED); }
    2334         YY_BREAK
    2335 case 97:
     2339{ KEYWORD_RETURN(VOID); }
     2340        YY_BREAK
     2341case 99:
    23362342YY_RULE_SETUP
    23372343#line 265 "lex.ll"
    2338 { KEYWORD_RETURN(VALIST); }                     // GCC
    2339         YY_BREAK
    2340 case 98:
     2344{ KEYWORD_RETURN(VOLATILE); }
     2345        YY_BREAK
     2346case 100:
    23412347YY_RULE_SETUP
    23422348#line 266 "lex.ll"
    2343 { KEYWORD_RETURN(VOID); }
    2344         YY_BREAK
    2345 case 99:
     2349{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2350        YY_BREAK
     2351case 101:
    23462352YY_RULE_SETUP
    23472353#line 267 "lex.ll"
    2348 { KEYWORD_RETURN(VOLATILE); }
    2349         YY_BREAK
    2350 case 100:
     2354{ KEYWORD_RETURN(VOLATILE); }                   // GCC
     2355        YY_BREAK
     2356case 102:
    23512357YY_RULE_SETUP
    23522358#line 268 "lex.ll"
    2353 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2354         YY_BREAK
    2355 case 101:
    2356 YY_RULE_SETUP
    2357 #line 269 "lex.ll"
    2358 { KEYWORD_RETURN(VOLATILE); }                   // GCC
    2359         YY_BREAK
    2360 case 102:
    2361 YY_RULE_SETUP
    2362 #line 270 "lex.ll"
    23632359{ KEYWORD_RETURN(WHILE); }
    23642360        YY_BREAK
     
    23662362case 103:
    23672363YY_RULE_SETUP
     2364#line 271 "lex.ll"
     2365{ IDENTIFIER_RETURN(); }
     2366        YY_BREAK
     2367case 104:
     2368YY_RULE_SETUP
     2369#line 272 "lex.ll"
     2370{ ATTRIBUTE_RETURN(); }
     2371        YY_BREAK
     2372case 105:
     2373YY_RULE_SETUP
    23682374#line 273 "lex.ll"
     2375{ BEGIN BKQUOTE; }
     2376        YY_BREAK
     2377case 106:
     2378YY_RULE_SETUP
     2379#line 274 "lex.ll"
    23692380{ IDENTIFIER_RETURN(); }
    23702381        YY_BREAK
    2371 case 104:
    2372 YY_RULE_SETUP
    2373 #line 274 "lex.ll"
    2374 { ATTRIBUTE_RETURN(); }
    2375         YY_BREAK
    2376 case 105:
     2382case 107:
    23772383YY_RULE_SETUP
    23782384#line 275 "lex.ll"
    2379 { BEGIN BKQUOTE; }
    2380         YY_BREAK
    2381 case 106:
    2382 YY_RULE_SETUP
    2383 #line 276 "lex.ll"
    2384 { IDENTIFIER_RETURN(); }
    2385         YY_BREAK
    2386 case 107:
    2387 YY_RULE_SETUP
    2388 #line 277 "lex.ll"
    23892385{ BEGIN 0; }
    23902386        YY_BREAK
     
    23922388case 108:
    23932389YY_RULE_SETUP
     2390#line 278 "lex.ll"
     2391{ NUMERIC_RETURN(ZERO); }                               // CFA
     2392        YY_BREAK
     2393case 109:
     2394YY_RULE_SETUP
     2395#line 279 "lex.ll"
     2396{ NUMERIC_RETURN(ONE); }                                // CFA
     2397        YY_BREAK
     2398case 110:
     2399YY_RULE_SETUP
    23942400#line 280 "lex.ll"
    2395 { NUMERIC_RETURN(ZERO); }                               // CFA
    2396         YY_BREAK
    2397 case 109:
     2401{ NUMERIC_RETURN(INTEGERconstant); }
     2402        YY_BREAK
     2403case 111:
    23982404YY_RULE_SETUP
    23992405#line 281 "lex.ll"
    2400 { NUMERIC_RETURN(ONE); }                                // CFA
    2401         YY_BREAK
    2402 case 110:
     2406{ NUMERIC_RETURN(INTEGERconstant); }
     2407        YY_BREAK
     2408case 112:
    24032409YY_RULE_SETUP
    24042410#line 282 "lex.ll"
    24052411{ NUMERIC_RETURN(INTEGERconstant); }
    24062412        YY_BREAK
    2407 case 111:
     2413case 113:
    24082414YY_RULE_SETUP
    24092415#line 283 "lex.ll"
    2410 { NUMERIC_RETURN(INTEGERconstant); }
    2411         YY_BREAK
    2412 case 112:
     2416{ NUMERIC_RETURN(FLOATINGconstant); }
     2417        YY_BREAK
     2418case 114:
    24132419YY_RULE_SETUP
    24142420#line 284 "lex.ll"
    2415 { NUMERIC_RETURN(INTEGERconstant); }
    2416         YY_BREAK
    2417 case 113:
    2418 YY_RULE_SETUP
    2419 #line 285 "lex.ll"
    2420 { NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant
    2421         YY_BREAK
    2422 case 114:
    2423 YY_RULE_SETUP
    2424 #line 286 "lex.ll"
    2425 { NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant
    2426         YY_BREAK
     2421{ NUMERIC_RETURN(FLOATINGconstant); }
     2422        YY_BREAK
     2423/* character constant, allows empty value */
    24272424case 115:
    24282425YY_RULE_SETUP
    24292426#line 287 "lex.ll"
    2430 { NUMERIC_RETURN(FLOATINGconstant); }
     2427{ BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    24312428        YY_BREAK
    24322429case 116:
    24332430YY_RULE_SETUP
    24342431#line 288 "lex.ll"
    2435 { NUMERIC_RETURN(FLOATINGconstant); }
    2436         YY_BREAK
    2437 /* character constant, allows empty value */
     2432{ strtext->append( yytext, yyleng ); }
     2433        YY_BREAK
    24382434case 117:
    2439 YY_RULE_SETUP
    2440 #line 291 "lex.ll"
    2441 { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    2442         YY_BREAK
    2443 case 118:
    2444 YY_RULE_SETUP
    2445 #line 292 "lex.ll"
    2446 { strtext->append( yytext, yyleng ); }
    2447         YY_BREAK
    2448 case 119:
    2449 /* rule 119 can match eol */
    2450 YY_RULE_SETUP
    2451 #line 293 "lex.ll"
     2435/* rule 117 can match eol */
     2436YY_RULE_SETUP
     2437#line 289 "lex.ll"
    24522438{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); }
    24532439        YY_BREAK
    24542440/* ' stop highlighting */
    24552441/* string constant */
     2442case 118:
     2443YY_RULE_SETUP
     2444#line 293 "lex.ll"
     2445{ BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
     2446        YY_BREAK
     2447case 119:
     2448YY_RULE_SETUP
     2449#line 294 "lex.ll"
     2450{ strtext->append( yytext, yyleng ); }
     2451        YY_BREAK
    24562452case 120:
    2457 YY_RULE_SETUP
    2458 #line 297 "lex.ll"
    2459 { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); }
    2460         YY_BREAK
     2453/* rule 120 can match eol */
     2454YY_RULE_SETUP
     2455#line 295 "lex.ll"
     2456{ BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
     2457        YY_BREAK
     2458/* " stop highlighting */
     2459/* common character/string constant */
    24612460case 121:
    24622461YY_RULE_SETUP
    2463 #line 298 "lex.ll"
    2464 { strtext->append( yytext, yyleng ); }
     2462#line 299 "lex.ll"
     2463{ rm_underscore(); strtext->append( yytext, yyleng ); }
    24652464        YY_BREAK
    24662465case 122:
    24672466/* rule 122 can match eol */
    24682467YY_RULE_SETUP
    2469 #line 299 "lex.ll"
    2470 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); }
    2471         YY_BREAK
    2472 /* " stop highlighting */
    2473 /* common character/string constant */
     2468#line 300 "lex.ll"
     2469{}                                              // continuation (ALSO HANDLED BY CPP)
     2470        YY_BREAK
    24742471case 123:
    24752472YY_RULE_SETUP
    2476 #line 303 "lex.ll"
    2477 { rm_underscore(); strtext->append( yytext, yyleng ); }
    2478         YY_BREAK
     2473#line 301 "lex.ll"
     2474{ strtext->append( yytext, yyleng ); } // unknown escape character
     2475        YY_BREAK
     2476/* punctuation */
    24792477case 124:
    2480 /* rule 124 can match eol */
    24812478YY_RULE_SETUP
    24822479#line 304 "lex.ll"
    2483 {}                                              // continuation (ALSO HANDLED BY CPP)
     2480{ ASCIIOP_RETURN(); }
    24842481        YY_BREAK
    24852482case 125:
    24862483YY_RULE_SETUP
    24872484#line 305 "lex.ll"
    2488 { strtext->append( yytext, yyleng ); } // unknown escape character
    2489         YY_BREAK
    2490 /* punctuation */
     2485{ ASCIIOP_RETURN(); }
     2486        YY_BREAK
    24912487case 126:
     2488YY_RULE_SETUP
     2489#line 306 "lex.ll"
     2490{ ASCIIOP_RETURN(); }
     2491        YY_BREAK
     2492case 127:
     2493YY_RULE_SETUP
     2494#line 307 "lex.ll"
     2495{ ASCIIOP_RETURN(); }
     2496        YY_BREAK
     2497case 128:
    24922498YY_RULE_SETUP
    24932499#line 308 "lex.ll"
    24942500{ ASCIIOP_RETURN(); }
    24952501        YY_BREAK
    2496 case 127:
     2502case 129:
    24972503YY_RULE_SETUP
    24982504#line 309 "lex.ll"
    24992505{ ASCIIOP_RETURN(); }
    25002506        YY_BREAK
    2501 case 128:
     2507case 130:
    25022508YY_RULE_SETUP
    25032509#line 310 "lex.ll"
    2504 { ASCIIOP_RETURN(); }
    2505         YY_BREAK
    2506 case 129:
     2510{ ASCIIOP_RETURN(); }                                   // also operator
     2511        YY_BREAK
     2512case 131:
    25072513YY_RULE_SETUP
    25082514#line 311 "lex.ll"
    25092515{ ASCIIOP_RETURN(); }
    25102516        YY_BREAK
    2511 case 130:
     2517case 132:
    25122518YY_RULE_SETUP
    25132519#line 312 "lex.ll"
    25142520{ ASCIIOP_RETURN(); }
    25152521        YY_BREAK
    2516 case 131:
     2522case 133:
    25172523YY_RULE_SETUP
    25182524#line 313 "lex.ll"
     2525{ ASCIIOP_RETURN(); }                                   // also operator
     2526        YY_BREAK
     2527case 134:
     2528YY_RULE_SETUP
     2529#line 314 "lex.ll"
     2530{ NAMEDOP_RETURN(ELLIPSIS); }
     2531        YY_BREAK
     2532/* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
     2533case 135:
     2534YY_RULE_SETUP
     2535#line 317 "lex.ll"
     2536{ RETURN_VAL('['); }
     2537        YY_BREAK
     2538case 136:
     2539YY_RULE_SETUP
     2540#line 318 "lex.ll"
     2541{ RETURN_VAL(']'); }
     2542        YY_BREAK
     2543case 137:
     2544YY_RULE_SETUP
     2545#line 319 "lex.ll"
     2546{ RETURN_VAL('{'); }
     2547        YY_BREAK
     2548case 138:
     2549YY_RULE_SETUP
     2550#line 320 "lex.ll"
     2551{ RETURN_VAL('}'); }
     2552        YY_BREAK
     2553/* operators */
     2554case 139:
     2555YY_RULE_SETUP
     2556#line 323 "lex.ll"
    25192557{ ASCIIOP_RETURN(); }
    25202558        YY_BREAK
    2521 case 132:
    2522 YY_RULE_SETUP
    2523 #line 314 "lex.ll"
    2524 { ASCIIOP_RETURN(); }                                   // also operator
    2525         YY_BREAK
    2526 case 133:
    2527 YY_RULE_SETUP
    2528 #line 315 "lex.ll"
     2559case 140:
     2560YY_RULE_SETUP
     2561#line 324 "lex.ll"
    25292562{ ASCIIOP_RETURN(); }
    25302563        YY_BREAK
    2531 case 134:
    2532 YY_RULE_SETUP
    2533 #line 316 "lex.ll"
     2564case 141:
     2565YY_RULE_SETUP
     2566#line 325 "lex.ll"
    25342567{ ASCIIOP_RETURN(); }
    25352568        YY_BREAK
    2536 case 135:
    2537 YY_RULE_SETUP
    2538 #line 317 "lex.ll"
    2539 { ASCIIOP_RETURN(); }                                   // also operator
    2540         YY_BREAK
    2541 case 136:
    2542 YY_RULE_SETUP
    2543 #line 318 "lex.ll"
    2544 { NAMEDOP_RETURN(ELLIPSIS); }
    2545         YY_BREAK
    2546 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */
    2547 case 137:
    2548 YY_RULE_SETUP
    2549 #line 321 "lex.ll"
    2550 { RETURN_VAL('['); }
    2551         YY_BREAK
    2552 case 138:
    2553 YY_RULE_SETUP
    2554 #line 322 "lex.ll"
    2555 { RETURN_VAL(']'); }
    2556         YY_BREAK
    2557 case 139:
    2558 YY_RULE_SETUP
    2559 #line 323 "lex.ll"
    2560 { RETURN_VAL('{'); }
    2561         YY_BREAK
    2562 case 140:
    2563 YY_RULE_SETUP
    2564 #line 324 "lex.ll"
    2565 { RETURN_VAL('}'); }
    2566         YY_BREAK
    2567 /* operators */
    2568 case 141:
     2569case 142:
     2570YY_RULE_SETUP
     2571#line 326 "lex.ll"
     2572{ ASCIIOP_RETURN(); }
     2573        YY_BREAK
     2574case 143:
    25692575YY_RULE_SETUP
    25702576#line 327 "lex.ll"
    25712577{ ASCIIOP_RETURN(); }
    25722578        YY_BREAK
    2573 case 142:
     2579case 144:
    25742580YY_RULE_SETUP
    25752581#line 328 "lex.ll"
    25762582{ ASCIIOP_RETURN(); }
    25772583        YY_BREAK
    2578 case 143:
     2584case 145:
    25792585YY_RULE_SETUP
    25802586#line 329 "lex.ll"
    25812587{ ASCIIOP_RETURN(); }
    25822588        YY_BREAK
    2583 case 144:
     2589case 146:
    25842590YY_RULE_SETUP
    25852591#line 330 "lex.ll"
    25862592{ ASCIIOP_RETURN(); }
    25872593        YY_BREAK
    2588 case 145:
     2594case 147:
    25892595YY_RULE_SETUP
    25902596#line 331 "lex.ll"
    25912597{ ASCIIOP_RETURN(); }
    25922598        YY_BREAK
    2593 case 146:
     2599case 148:
    25942600YY_RULE_SETUP
    25952601#line 332 "lex.ll"
    25962602{ ASCIIOP_RETURN(); }
    25972603        YY_BREAK
    2598 case 147:
     2604case 149:
    25992605YY_RULE_SETUP
    26002606#line 333 "lex.ll"
    26012607{ ASCIIOP_RETURN(); }
    26022608        YY_BREAK
    2603 case 148:
     2609case 150:
    26042610YY_RULE_SETUP
    26052611#line 334 "lex.ll"
    26062612{ ASCIIOP_RETURN(); }
    26072613        YY_BREAK
    2608 case 149:
     2614case 151:
    26092615YY_RULE_SETUP
    26102616#line 335 "lex.ll"
    26112617{ ASCIIOP_RETURN(); }
    26122618        YY_BREAK
    2613 case 150:
     2619case 152:
    26142620YY_RULE_SETUP
    26152621#line 336 "lex.ll"
    26162622{ ASCIIOP_RETURN(); }
    26172623        YY_BREAK
    2618 case 151:
    2619 YY_RULE_SETUP
    2620 #line 337 "lex.ll"
    2621 { ASCIIOP_RETURN(); }
    2622         YY_BREAK
    2623 case 152:
     2624case 153:
    26242625YY_RULE_SETUP
    26252626#line 338 "lex.ll"
    2626 { ASCIIOP_RETURN(); }
    2627         YY_BREAK
    2628 case 153:
     2627{ NAMEDOP_RETURN(ICR); }
     2628        YY_BREAK
     2629case 154:
    26292630YY_RULE_SETUP
    26302631#line 339 "lex.ll"
    2631 { ASCIIOP_RETURN(); }
    2632         YY_BREAK
    2633 case 154:
     2632{ NAMEDOP_RETURN(DECR); }
     2633        YY_BREAK
     2634case 155:
    26342635YY_RULE_SETUP
    26352636#line 340 "lex.ll"
    2636 { ASCIIOP_RETURN(); }
    2637         YY_BREAK
    2638 case 155:
     2637{ NAMEDOP_RETURN(EQ); }
     2638        YY_BREAK
     2639case 156:
     2640YY_RULE_SETUP
     2641#line 341 "lex.ll"
     2642{ NAMEDOP_RETURN(NE); }
     2643        YY_BREAK
     2644case 157:
    26392645YY_RULE_SETUP
    26402646#line 342 "lex.ll"
    2641 { NAMEDOP_RETURN(ICR); }
    2642         YY_BREAK
    2643 case 156:
     2647{ NAMEDOP_RETURN(LS); }
     2648        YY_BREAK
     2649case 158:
    26442650YY_RULE_SETUP
    26452651#line 343 "lex.ll"
    2646 { NAMEDOP_RETURN(DECR); }
    2647         YY_BREAK
    2648 case 157:
     2652{ NAMEDOP_RETURN(RS); }
     2653        YY_BREAK
     2654case 159:
    26492655YY_RULE_SETUP
    26502656#line 344 "lex.ll"
    2651 { NAMEDOP_RETURN(EQ); }
    2652         YY_BREAK
    2653 case 158:
     2657{ NAMEDOP_RETURN(LE); }
     2658        YY_BREAK
     2659case 160:
    26542660YY_RULE_SETUP
    26552661#line 345 "lex.ll"
    2656 { NAMEDOP_RETURN(NE); }
    2657         YY_BREAK
    2658 case 159:
     2662{ NAMEDOP_RETURN(GE); }
     2663        YY_BREAK
     2664case 161:
    26592665YY_RULE_SETUP
    26602666#line 346 "lex.ll"
    2661 { NAMEDOP_RETURN(LS); }
    2662         YY_BREAK
    2663 case 160:
     2667{ NAMEDOP_RETURN(ANDAND); }
     2668        YY_BREAK
     2669case 162:
    26642670YY_RULE_SETUP
    26652671#line 347 "lex.ll"
    2666 { NAMEDOP_RETURN(RS); }
    2667         YY_BREAK
    2668 case 161:
     2672{ NAMEDOP_RETURN(OROR); }
     2673        YY_BREAK
     2674case 163:
    26692675YY_RULE_SETUP
    26702676#line 348 "lex.ll"
    2671 { NAMEDOP_RETURN(LE); }
    2672         YY_BREAK
    2673 case 162:
     2677{ NAMEDOP_RETURN(ARROW); }
     2678        YY_BREAK
     2679case 164:
    26742680YY_RULE_SETUP
    26752681#line 349 "lex.ll"
    2676 { NAMEDOP_RETURN(GE); }
    2677         YY_BREAK
    2678 case 163:
     2682{ NAMEDOP_RETURN(PLUSassign); }
     2683        YY_BREAK
     2684case 165:
    26792685YY_RULE_SETUP
    26802686#line 350 "lex.ll"
    2681 { NAMEDOP_RETURN(ANDAND); }
    2682         YY_BREAK
    2683 case 164:
     2687{ NAMEDOP_RETURN(MINUSassign); }
     2688        YY_BREAK
     2689case 166:
    26842690YY_RULE_SETUP
    26852691#line 351 "lex.ll"
    2686 { NAMEDOP_RETURN(OROR); }
    2687         YY_BREAK
    2688 case 165:
     2692{ NAMEDOP_RETURN(MULTassign); }
     2693        YY_BREAK
     2694case 167:
    26892695YY_RULE_SETUP
    26902696#line 352 "lex.ll"
    2691 { NAMEDOP_RETURN(ARROW); }
    2692         YY_BREAK
    2693 case 166:
     2697{ NAMEDOP_RETURN(DIVassign); }
     2698        YY_BREAK
     2699case 168:
    26942700YY_RULE_SETUP
    26952701#line 353 "lex.ll"
    2696 { NAMEDOP_RETURN(PLUSassign); }
    2697         YY_BREAK
    2698 case 167:
     2702{ NAMEDOP_RETURN(MODassign); }
     2703        YY_BREAK
     2704case 169:
    26992705YY_RULE_SETUP
    27002706#line 354 "lex.ll"
    2701 { NAMEDOP_RETURN(MINUSassign); }
    2702         YY_BREAK
    2703 case 168:
     2707{ NAMEDOP_RETURN(ANDassign); }
     2708        YY_BREAK
     2709case 170:
    27042710YY_RULE_SETUP
    27052711#line 355 "lex.ll"
    2706 { NAMEDOP_RETURN(MULTassign); }
    2707         YY_BREAK
    2708 case 169:
     2712{ NAMEDOP_RETURN(ORassign); }
     2713        YY_BREAK
     2714case 171:
    27092715YY_RULE_SETUP
    27102716#line 356 "lex.ll"
    2711 { NAMEDOP_RETURN(DIVassign); }
    2712         YY_BREAK
    2713 case 170:
     2717{ NAMEDOP_RETURN(ERassign); }
     2718        YY_BREAK
     2719case 172:
    27142720YY_RULE_SETUP
    27152721#line 357 "lex.ll"
    2716 { NAMEDOP_RETURN(MODassign); }
    2717         YY_BREAK
    2718 case 171:
     2722{ NAMEDOP_RETURN(LSassign); }
     2723        YY_BREAK
     2724case 173:
    27192725YY_RULE_SETUP
    27202726#line 358 "lex.ll"
    2721 { NAMEDOP_RETURN(ANDassign); }
    2722         YY_BREAK
    2723 case 172:
    2724 YY_RULE_SETUP
    2725 #line 359 "lex.ll"
    2726 { NAMEDOP_RETURN(ORassign); }
    2727         YY_BREAK
    2728 case 173:
     2727{ NAMEDOP_RETURN(RSassign); }
     2728        YY_BREAK
     2729case 174:
    27292730YY_RULE_SETUP
    27302731#line 360 "lex.ll"
    2731 { NAMEDOP_RETURN(ERassign); }
    2732         YY_BREAK
    2733 case 174:
    2734 YY_RULE_SETUP
    2735 #line 361 "lex.ll"
    2736 { NAMEDOP_RETURN(LSassign); }
    2737         YY_BREAK
     2732{ NAMEDOP_RETURN(ATassign); }                   // CFA
     2733        YY_BREAK
     2734/* CFA, operator identifier */
    27382735case 175:
    27392736YY_RULE_SETUP
    2740 #line 362 "lex.ll"
    2741 { NAMEDOP_RETURN(RSassign); }
     2737#line 363 "lex.ll"
     2738{ IDENTIFIER_RETURN(); }                                // unary
    27422739        YY_BREAK
    27432740case 176:
    27442741YY_RULE_SETUP
    27452742#line 364 "lex.ll"
    2746 { NAMEDOP_RETURN(ATassign); }                   // CFA
    2747         YY_BREAK
    2748 /* CFA, operator identifier */
     2743{ IDENTIFIER_RETURN(); }
     2744        YY_BREAK
    27492745case 177:
    27502746YY_RULE_SETUP
    2751 #line 367 "lex.ll"
    2752 { IDENTIFIER_RETURN(); }                                // unary
     2747#line 365 "lex.ll"
     2748{ IDENTIFIER_RETURN(); }
    27532749        YY_BREAK
    27542750case 178:
    27552751YY_RULE_SETUP
    2756 #line 368 "lex.ll"
    2757 { IDENTIFIER_RETURN(); }
    2758         YY_BREAK
    2759 case 179:
    2760 YY_RULE_SETUP
    2761 #line 369 "lex.ll"
    2762 { IDENTIFIER_RETURN(); }
    2763         YY_BREAK
    2764 case 180:
    2765 YY_RULE_SETUP
    2766 #line 370 "lex.ll"
     2752#line 366 "lex.ll"
    27672753{ IDENTIFIER_RETURN(); }                // binary
    27682754        YY_BREAK
     
    27932779          an argument list.
    27942780        */
    2795 case 181:
    2796 YY_RULE_SETUP
    2797 #line 397 "lex.ll"
     2781case 179:
     2782YY_RULE_SETUP
     2783#line 393 "lex.ll"
    27982784{
    27992785        // 1 or 2 character unary operator ?
     
    28082794        YY_BREAK
    28092795/* unknown characters */
    2810 case 182:
    2811 YY_RULE_SETUP
    2812 #line 409 "lex.ll"
     2796case 180:
     2797YY_RULE_SETUP
     2798#line 405 "lex.ll"
    28132799{ printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    28142800        YY_BREAK
    2815 case 183:
    2816 YY_RULE_SETUP
    2817 #line 411 "lex.ll"
     2801case 181:
     2802YY_RULE_SETUP
     2803#line 407 "lex.ll"
    28182804ECHO;
    28192805        YY_BREAK
    2820 #line 2821 "Parser/lex.cc"
     2806#line 2807 "Parser/lex.cc"
    28212807case YY_STATE_EOF(INITIAL):
    28222808case YY_STATE_EOF(COMMENT):
     
    31153101                        {
    31163102                        yy_current_state = (int) yy_def[yy_current_state];
    3117                         if ( yy_current_state >= 895 )
     3103                        if ( yy_current_state >= 892 )
    31183104                                yy_c = yy_meta[(unsigned int) yy_c];
    31193105                        }
     
    31433129                {
    31443130                yy_current_state = (int) yy_def[yy_current_state];
    3145                 if ( yy_current_state >= 895 )
     3131                if ( yy_current_state >= 892 )
    31463132                        yy_c = yy_meta[(unsigned int) yy_c];
    31473133                }
    31483134        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
    3149         yy_is_jam = (yy_current_state == 894);
     3135        yy_is_jam = (yy_current_state == 891);
    31503136
    31513137        return yy_is_jam ? 0 : yy_current_state;
     
    37933779#define YYTABLES_NAME "yytables"
    37943780
    3795 #line 411 "lex.ll"
     3781#line 407 "lex.ll"
    37963782
    37973783
  • src/Parser/lex.ll

    r3f0c6a5 r77971f6  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Wed Oct 26 17:32:30 2016
    13  * Update Count     : 499
     12 * Last Modified On : Tue Oct 18 22:19:37 2016
     13 * Update Count     : 488
    1414 */
    1515
     
    9191
    9292decimal_digits ({decimal})|({decimal}({decimal}|"_")*{decimal})
    93 real_decimal {decimal_digits}"."
    94 real_fraction "."{decimal_digits}
    95 real_constant {decimal_digits}?{real_fraction}
     93fractional_constant ({decimal_digits}?"."{decimal_digits})|({decimal_digits}".")
    9694exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    9795                                // GCC: D (double), DL (long double) and iI (imaginary) suffixes
    9896floating_suffix "_"?([fFdDlL][iI]?|"DL"|[iI][lLfFdD]?)
    9997                                //floating_suffix "_"?([fFdD]|[lL]|[D][L])|([iI][lLfFdD])|([lLfFdD][iI]))
    100 floating_constant (({real_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
     98floating_constant (({fractional_constant}{exponent}?)|({decimal_digits}{exponent})){floating_suffix}?
    10199
    102100binary_exponent "_"?[pP]"_"?[+-]?{decimal_digits}
     
    283281{octal_constant} { NUMERIC_RETURN(INTEGERconstant); }
    284282{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
    287283{floating_constant}     { NUMERIC_RETURN(FLOATINGconstant); }
    288284{hex_floating_constant} { NUMERIC_RETURN(FLOATINGconstant); }
  • src/Parser/parser.cc

    r3f0c6a5 r77971f6  
    201201     ATTR_TYPEGENname = 333,
    202202     INTEGERconstant = 334,
    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
     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
    234232   };
    235233#endif
     
    312310#define ATTR_TYPEGENname 333
    313311#define INTEGERconstant 334
    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
     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
    345341
    346342
     
    352348
    353349/* Line 293 of yacc.c  */
    354 #line 120 "parser.yy"
     350#line 116 "parser.yy"
    355351
    356352        Token tok;
     
    372368
    373369/* Line 293 of yacc.c  */
    374 #line 375 "Parser/parser.cc"
     370#line 371 "Parser/parser.cc"
    375371} YYSTYPE;
    376372# define YYSTYPE_IS_TRIVIAL 1
     
    384380
    385381/* Line 343 of yacc.c  */
    386 #line 387 "Parser/parser.cc"
     382#line 383 "Parser/parser.cc"
    387383
    388384#ifdef short
     
    601597
    602598/* YYFINAL -- State number of the termination state.  */
    603 #define YYFINAL  249
     599#define YYFINAL  250
    604600/* YYLAST -- Last index in YYTABLE.  */
    605 #define YYLAST   10266
     601#define YYLAST   10888
    606602
    607603/* YYNTOKENS -- Number of terminals.  */
    608 #define YYNTOKENS  135
     604#define YYNTOKENS  133
    609605/* YYNNTS -- Number of nonterminals.  */
    610 #define YYNNTS  243
     606#define YYNNTS  242
    611607/* YYNRULES -- Number of rules.  */
    612 #define YYNRULES  755
     608#define YYNRULES  754
    613609/* YYNRULES -- Number of states.  */
    614 #define YYNSTATES  1538
     610#define YYNSTATES  1558
    615611
    616612/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    617613#define YYUNDEFTOK  2
    618 #define YYMAXUTOK   365
     614#define YYMAXUTOK   363
    619615
    620616#define YYTRANSLATE(YYX)                                                \
     
    627623       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    628624       2,     2,     2,     2,     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,
     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,
    633629       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    634630       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    635        2,   113,     2,   114,   129,     2,     2,     2,     2,     2,
     631       2,   111,     2,   112,   127,     2,     2,     2,     2,     2,
    636632       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    637633       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    638        2,     2,     2,   116,   130,   117,   124,     2,     2,     2,
     634       2,     2,     2,   114,   128,   115,   122,     2,     2,     2,
    639635       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    640636       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    660656      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    661657      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    662      105,   106,   107,   108,   109,   110
     658     105,   106,   107,   108
    663659};
    664660
     
    669665{
    670666       0,     0,     3,     4,     5,     7,     9,    11,    13,    15,
    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
     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
    746742};
    747743
     
    749745static const yytype_int16 yyrhs[] =
    750746{
    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
     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
    10231020};
    10241021
     
    10261023static const yytype_uint16 yyrline[] =
    10271024{
    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
     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
    11041101};
    11051102#endif
     
    11221119  "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname",
    11231120  "TYPEGENname", "ATTR_IDENTIFIER", "ATTR_TYPEDEFname", "ATTR_TYPEGENname",
    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",
     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",
    11371133  "ptrref_operator", "unary_operator", "cast_expression",
    11381134  "multiplicative_expression", "additive_expression", "shift_expression",
     
    12341230     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
    12351231     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
    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
     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
    12401236};
    12411237# endif
     
    12441240static const yytype_uint16 yyr1[] =
    12451241{
    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
     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
    13221318};
    13231319
     
    13261322{
    13271323       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,
    13281334       1,     1,     1,     1,     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,
     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,
    13591355       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    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,
     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,
    13921390       1,     2,     2,     3,     3,     1,     4,     4,     3,     5,
    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
     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
    14031399};
    14041400
     
    14081404static const yytype_uint16 yydefact[] =
    14091405{
    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,
     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,
    14651461       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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
     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
    15641562};
    15651563
     
    15671565static const yytype_int16 yydefgoto[] =
    15681566{
    1569       -1,   800,   464,   301,    47,   133,   134,   302,   303,   304,
    1570      305,   306,   752,   753,  1113,  1114,  1115,  1225,   307,   378,
     1567      -1,   815,   468,   300,    47,   133,   134,   301,   302,   303,
     1568     304,   305,   762,   763,  1136,  1137,  1138,   306,   381,   308,
    15711569     309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
    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
     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
    15941592};
    15951593
    15961594/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    15971595   STATE-NUM.  */
    1598 #define YYPACT_NINF -1333
     1596#define YYPACT_NINF -1338
    15991597static const yytype_int16 yypact[] =
    16001598{
    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
     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
    17551755};
    17561756
     
    17581758static const yytype_int16 yypgoto[] =
    17591759{
    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
     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
    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 -527
     1790#define YYTABLE_NINF -525
    17911791static const yytype_int16 yytable[] =
    17921792{
    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,
     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,
    20562150       0,     0,     0,     0,     0,     0,     0,     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,
     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,
    20802158       0,     0,     0,     0,     0,     0,     0,     0,     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,
     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,
    21752235       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
     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,
     2250      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,
    22062261       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,
     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,
    22152271       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,
     2272       0,     0,   764,     0,  -519,     0,     0,     1,     2,     3,
     2273       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     2274      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,
     2288       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,
    22182292       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,
     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,
    22302309       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,
     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,
    22402371       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    22412372      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,
     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,
    23062380       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,
     2381      43,     0,    44,     0,     0,     0,  -523,     0,    45,    46,
     2382     364,     0,     0,     0,     0,     0,     0,     0,   509,     0,
    23122383       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,
     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,
    23232390       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,
     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,
     2400      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,
     2403       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2404       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,
     2421       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,
     2429      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2430      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,
     2437       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,
    23262460      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    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,
     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,
     2464       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,
     2468       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     2469      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,
     2495       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2496       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,
     2507       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2508       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,
    23332539       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    23342540      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2335       24,    25,     0,   379,    26,    27,    28,     0,   958,   362,
    2336      362,   733,     0,    31,    45,    46,     0,     0,     0,   126,
     2541      24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
     2542       0,   282,   283,    31,   284,     0,     0,     0,     0,     0,
    23372543       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,
     2544       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,
     2548       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,
     2559       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,
     2566       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2567       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,
     2574       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2575       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,
    23462585       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    23472586      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,
     2587       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,
    23512590       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,
    2363        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    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,
    2371        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2372        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2376        7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    2377       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    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,
    2418       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    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,
    2430        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2431        0,     0,     0,     0,     0,     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,
    2435        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2439       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2440       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2441       28,     0,     0,     0,     0,   281,   282,    31,   283,     0,
    2442        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2443        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2487        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    2488       18,    19,    20,    21,    22,    23,    24,    25,     0,     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,
     2591       0,    35,     0,    36,    37,     0,   207,    39,    40,     0,
    24942592       0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
    24952593       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    24962594       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2497        0,    43,     0,    44,     0,     0,     0,     0,     0,    45,
    2498       46,     1,     2,   205,     4,     5,     6,     7,     8,     9,
     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,
    24992619      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,
     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,
     2630       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2631       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,
     2634       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     2635      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     2636      25,     0,     0,    26,    27,    28,     0,     0,     0,     0,
     2637       0,   270,    31,     0,     0,     0,     0,    45,    46,     0,
     2638       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2639       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,
     2642      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     2643      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,
     2646       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,
     2653       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,
     2656      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
     2657      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,
     2856       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     2857       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,
     2861      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
     2862      20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
     2863      28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    25022864       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25032865       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25042866       0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    2505        0,     0,    38,    39,     0,     0,  -298,   204,     2,   205,
    2506        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    2507       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    2508       24,    25,     0,     0,    26,    27,    28,     0,     0,     0,
    2509        0,    44,     0,    31,     0,     0,     0,    45,    46,     0,
     2867       0,     0,   207,    39,   467,     2,   206,     4,     5,     6,
     2868       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
     2869      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,
    25102872       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2511        0,     0,     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,
    2518        0,     0,     0,     0,     0,     0,     0,     0,     0,     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,
    2522        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2523        0,     0,     0,     0,     0,     0,     0,    43,     0,   207,
    2524        0,     0,     0,     0,     0,    45,    46,     2,   205,     4,
     2873       0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
     2874      35,     0,    36,     0,     0,    38,    39,     2,   206,     4,
    25252875       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    25262876      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     
    25292879       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    25302880       0,     0,     0,     0,     0,     0,     0,     0,     0,     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,
    2537        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,
    2540        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
     2881      34,     0,    35,     0,    36,     0,     0,   207,    39
     2882};
     2883
     2884#define yypact_value_is_default(yystate) \
     2885  ((yystate) == (-1338))
     2886
     2887#define yytable_value_is_error(yytable_value) \
     2888  YYID (0)
     2889
     2890static const yytype_int16 yycheck[] =
     2891{
     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,
     3249      -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,
     3257      -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,
     3334      -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,
     3349      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,
    25443372       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    25453373      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    2546        0,     0,    26,    27,    28,     0,     0,     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,
    2551        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2552        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2559        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2560        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2570        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    2571       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    2572       25,     0,     0,    26,    27,    28,     0,     0,     0,     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,
    2585        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2586        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2698       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    2699       22,    23,    24,    25,     0,     0,    26,    27,    28,     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,
    2707        0,     0,     0,     0,     0,     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,
    2715        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    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,
    2796       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    2797       23,    24,    25,     0,     0,    26,    27,    28,     0,     0,
    2798        0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
    2799        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2800        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2801        0,     0,    34,     0,    35,     0,    36,     0,     0,   206,
    2802       39,   463,     2,   205,     4,     5,     6,     7,     8,     9,
     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,
     3387      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,
    28033443      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    2804       20,    21,    22,    23,    24,    25,     0,     0,    26,    27,
    2805       28,     0,     0,     0,     0,     0,     0,    31,     0,     0,
    2806        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2807        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2808        0,     0,     0,     0,     0,    34,     0,    35,     0,    36,
    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,
    2814       17,    18,    19,    20,    21,    22,    23,    24,    25,     0,
    2815        0,    26,    27,    28,   481,   482,   483,    34,     0,    35,
    2816       31,    36,     0,     0,   206,    39,     0,     0,     0,     0,
    2817        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2818        0,     0,     0,     0,     0,     0,     0,     0,    34,     0,
    2819        0,     0,     0,     0,     0,    38,    39
    2820 };
    2821 
    2822 #define yypact_value_is_default(yystate) \
    2823   ((yystate) == (-1333))
    2824 
    2825 #define yytable_value_is_error(yytable_value) \
    2826   YYID (0)
    2827 
    2828 static const yytype_int16 yycheck[] =
    2829 {
    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,
    3093       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
    3117       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
    3212       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
     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,
    32773470       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    32783471      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,
     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,
    33433479      -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,
     3480     109,    -1,   111,    -1,    -1,    -1,   115,    -1,   117,   118,
     3481    1150,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   988,    -1,
    33493482      -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,
     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,
    33603489      -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,
    3363       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    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,
    3370        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
    3371       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
    3372       26,    27,    -1,   956,    30,    31,    32,    -1,   961,  1255,
    3373     1256,   964,    -1,    39,   119,   120,    -1,    -1,    -1,  1184,
     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,
    33743495      -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,
     3496      -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,   869,
    33953497      -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,
    3400       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    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,
     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,
    34083502      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34093503      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
     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,
    34133555       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
    34143556      19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    34153557      -1,    30,    31,    32,    33,    -1,    -1,    36,    37,    38,
    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,
     3558      39,    40,    -1,    -1,    -1,    10,    11,    12,    13,    14,
    34313559      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    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,
     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,
     3563      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34363564      -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,
     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,
     3591      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
     3592      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3593      32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     3594      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3595      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3596      -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
     3597      72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
     3598      82,    83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,
     3599      -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,
    34643603      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    34653604      23,    24,    25,    26,    27,    -1,    -1,    30,    31,    32,
     
    34693608      -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,
    34703609      -1,    74,    75,    76,    -1,    -1,    79,    80,    81,    82,
    3471       83,    84,    85,    86,    -1,    88,    89,    -1,    -1,    -1,
     3610      83,    84,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
    34723611      -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,
     3612      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,
     3613      -1,    -1,    -1,    -1,   117,   118,   119,   120,   121,   122,
     3614       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
     3615      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
     3616      24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -1,
     3617      -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,
     3618      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3619      -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,
     3626       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3627      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3628      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3629      -1,    -1,    37,    38,    39,    40,    -1,    -1,    -1,    -1,
     3630      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3631      -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,
     3684       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
     3685      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
     3686      -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,
     3692      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3693      -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,
     3700      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,
     3703      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,
     3707      -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,
     3710      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3711      -1,    -1,    -1,    -1,    -1,    -1,    96,    -1,    -1,    -1,
     3712      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     3713      -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,     4,
     3714       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
     3715      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
     3716      25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
     3717      -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    10,    11,
    34763718      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    34773719      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3478       32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,    -1,
     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,
    34793729      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34803730      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3481       -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
    3482       72,    -1,    74,    75,    76,    -1,    -1,    79,    80,    81,
    3483       82,    83,    84,    85,    86,    -1,    88,    89,    -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,
    34843737      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
     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,
    34883748      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    34893749      21,    22,    23,    24,    25,    26,    27,    -1,    -1,    30,
    3490       31,    32,    -1,    -1,    -1,    -1,    37,    38,    39,    40,
     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,
    34913955      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    34923956      -1,    -1,    -1,    -1,    -1,    -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,
    3496       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
     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,
    35363960      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,
     3961      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
     3962      32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    35393963      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35403964      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35413965      -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,
     3966      -1,    -1,    74,    75,     3,     4,     5,     6,     7,     8,
     3967       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     3968      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,
    35473971      -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,
    3550        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
    3551       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
    3552       24,    25,    26,    27,    -1,    -1,    30,    31,    32,    -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,
     3972      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
     3973      69,    -1,    71,    -1,    -1,    74,    75,     4,     5,     6,
    35623974       7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
    35633975      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
     
    35663978      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    35673979      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3568       67,    -1,    69,    -1,    71,    -1,    -1,    74,    75,     4,
    3569        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3570       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3571       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3572       -1,    -1,    -1,    -1,    39,   112,   113,    -1,    -1,    -1,
    3573       -1,    -1,   119,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3574       -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,
    3577       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
    3581        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
    3582       18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
    3583       -1,    -1,    30,    31,    32,    -1,    -1,    -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,
    3588       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3589       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
    3601       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    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,
    3640       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
    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,
    3672       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
    3693       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -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,
    3704       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    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,
    3832        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    3833       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    3834       25,    26,    27,    -1,    -1,    30,    31,    32,    -1,    -1,
    3835       -1,    -1,    -1,    -1,    39,    -1,    -1,    -1,    -1,    -1,
    3836       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3838       -1,    -1,    67,    -1,    69,    -1,    71,    -1,    -1,    74,
    3839       75,     3,     4,     5,     6,     7,     8,     9,    10,    11,
    3840       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    3841       22,    23,    24,    25,    26,    27,    -1,    -1,    30,    31,
    3842       32,    -1,    -1,    -1,    -1,    -1,    -1,    39,    -1,    -1,
    3843       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3844       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3845       -1,    -1,    -1,    -1,    -1,    67,    -1,    69,    -1,    71,
    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,
    3851       19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
    3852       -1,    30,    31,    32,    33,    34,    35,    67,    -1,    69,
    3853       39,    71,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
    3854       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3855       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
    3856       -1,    -1,    -1,    -1,    -1,    74,    75
     3980      67,    -1,    69,    -1,    71,    -1,    -1,    74,    75
    38573981};
    38583982
     
    38653989      22,    23,    24,    25,    26,    27,    30,    31,    32,    33,
    38663990      36,    39,    40,    64,    67,    69,    71,    72,    74,    75,
    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
     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
    40174143};
    40184144
     
    48514977
    48524978/* Line 1806 of yacc.c  */
     4979#line 301 "parser.yy"
     4980    { typedefTable.enterScope(); }
     4981    break;
     4982
     4983  case 3:
     4984
     4985/* Line 1806 of yacc.c  */
    48534986#line 305 "parser.yy"
    4854     { typedefTable.enterScope(); }
    4855     break;
    4856 
    4857   case 3:
    4858 
    4859 /* Line 1806 of yacc.c  */
    4860 #line 309 "parser.yy"
    48614987    { typedefTable.leaveScope(); }
    48624988    break;
     
    48654991
    48664992/* Line 1806 of yacc.c  */
    4867 #line 316 "parser.yy"
     4993#line 312 "parser.yy"
    48684994    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    48694995    break;
     
    48724998
    48734999/* Line 1806 of yacc.c  */
    4874 #line 317 "parser.yy"
     5000#line 313 "parser.yy"
    48755001    { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }
    48765002    break;
     
    48795005
    48805006/* Line 1806 of yacc.c  */
    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"
     5007#line 314 "parser.yy"
    48965008    { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); }
    48975009    break;
    48985010
     5011  case 16:
     5012
     5013/* Line 1806 of yacc.c  */
     5014#line 339 "parser.yy"
     5015    { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
     5016    break;
     5017
     5018  case 17:
     5019
     5020/* Line 1806 of yacc.c  */
     5021#line 343 "parser.yy"
     5022    { (yyval.str) = (yyvsp[(1) - (1)].tok); }
     5023    break;
     5024
    48995025  case 18:
    49005026
    49015027/* Line 1806 of yacc.c  */
    49025028#line 345 "parser.yy"
    4903     { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); }
    4904     break;
    4905 
    4906   case 19:
    4907 
    4908 /* Line 1806 of yacc.c  */
    4909 #line 349 "parser.yy"
    4910     { (yyval.str) = (yyvsp[(1) - (1)].tok); }
    4911     break;
    4912 
    4913   case 20:
    4914 
    4915 /* Line 1806 of yacc.c  */
    4916 #line 351 "parser.yy"
    49175029    {
    49185030                        appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) );                                            // append 2nd juxtaposed string to 1st
     
    49225034    break;
    49235035
     5036  case 19:
     5037
     5038/* Line 1806 of yacc.c  */
     5039#line 356 "parser.yy"
     5040    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5041    break;
     5042
     5043  case 20:
     5044
     5045/* Line 1806 of yacc.c  */
     5046#line 358 "parser.yy"
     5047    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5048    break;
     5049
    49245050  case 21:
    49255051
    49265052/* Line 1806 of yacc.c  */
     5053#line 360 "parser.yy"
     5054    { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5055    break;
     5056
     5057  case 22:
     5058
     5059/* Line 1806 of yacc.c  */
    49275060#line 362 "parser.yy"
    4928     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    4929     break;
    4930 
    4931   case 22:
    4932 
    4933 /* Line 1806 of yacc.c  */
    4934 #line 364 "parser.yy"
    4935     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
     5061    { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
    49365062    break;
    49375063
     
    49395065
    49405066/* Line 1806 of yacc.c  */
    4941 #line 367 "parser.yy"
    4942     { (yyval.en) = (yyvsp[(2) - (3)].en); }
     5067#line 372 "parser.yy"
     5068    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
    49435069    break;
    49445070
     
    49465072
    49475073/* Line 1806 of yacc.c  */
    4948 #line 369 "parser.yy"
    4949     { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); }
     5074#line 374 "parser.yy"
     5075    { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
     5076    break;
     5077
     5078  case 26:
     5079
     5080/* Line 1806 of yacc.c  */
     5081#line 378 "parser.yy"
     5082    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    49505083    break;
    49515084
     
    49535086
    49545087/* Line 1806 of yacc.c  */
    4955 #line 379 "parser.yy"
    4956     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); }
     5088#line 380 "parser.yy"
     5089    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    49575090    break;
    49585091
     
    49605093
    49615094/* Line 1806 of yacc.c  */
    4962 #line 381 "parser.yy"
    4963     { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); }
     5095#line 382 "parser.yy"
     5096    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_constantInteger( *(yyvsp[(3) - (3)].tok) ) ) ); }
    49645097    break;
    49655098
     
    49675100
    49685101/* Line 1806 of yacc.c  */
    4969 #line 383 "parser.yy"
    4970     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5102#line 384 "parser.yy"
     5103    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
    49715104    break;
    49725105
     
    49745107
    49755108/* Line 1806 of yacc.c  */
    4976 #line 385 "parser.yy"
    4977     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     5109#line 386 "parser.yy"
     5110    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    49785111    break;
    49795112
     
    49815114
    49825115/* 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) ) ) ); }
     5116#line 388 "parser.yy"
     5117    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    49855118    break;
    49865119
     
    49885121
    49895122/* Line 1806 of yacc.c  */
    4990 #line 389 "parser.yy"
    4991     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); }
     5123#line 390 "parser.yy"
     5124    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    49925125    break;
    49935126
     
    49955128
    49965129/* Line 1806 of yacc.c  */
    4997 #line 391 "parser.yy"
    4998     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     5130#line 392 "parser.yy"
     5131    { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    49995132    break;
    50005133
     
    50025135
    50035136/* Line 1806 of yacc.c  */
    5004 #line 393 "parser.yy"
    5005     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); }
    5006     break;
    5007 
    5008   case 35:
    5009 
    5010 /* Line 1806 of yacc.c  */
    5011 #line 395 "parser.yy"
    5012     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); }
    5013     break;
    5014 
    5015   case 36:
    5016 
    5017 /* Line 1806 of yacc.c  */
    5018 #line 397 "parser.yy"
    5019     { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); }
    5020     break;
    5021 
    5022   case 37:
    5023 
    5024 /* Line 1806 of yacc.c  */
    5025 #line 399 "parser.yy"
     5137#line 394 "parser.yy"
    50265138    {
    50275139                        Token fn;
     
    50315143    break;
    50325144
    5033   case 39:
     5145  case 36:
     5146
     5147/* Line 1806 of yacc.c  */
     5148#line 404 "parser.yy"
     5149    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5150    break;
     5151
     5152  case 37:
    50345153
    50355154/* Line 1806 of yacc.c  */
    50365155#line 409 "parser.yy"
    5037     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     5156    { (yyval.en) = 0; }
    50385157    break;
    50395158
     
    50415160
    50425161/* Line 1806 of yacc.c  */
    5043 #line 414 "parser.yy"
    5044     { (yyval.en) = 0; }
     5162#line 415 "parser.yy"
     5163    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5164    break;
     5165
     5166  case 42:
     5167
     5168/* Line 1806 of yacc.c  */
     5169#line 423 "parser.yy"
     5170    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    50455171    break;
    50465172
     
    50485174
    50495175/* Line 1806 of yacc.c  */
    5050 #line 420 "parser.yy"
    5051     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5176#line 425 "parser.yy"
     5177    { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     5178    break;
     5179
     5180  case 44:
     5181
     5182/* Line 1806 of yacc.c  */
     5183#line 427 "parser.yy"
     5184    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    50525185    break;
    50535186
     
    50555188
    50565189/* 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) ) ) ); }
     5190#line 429 "parser.yy"
     5191    { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
    50595192    break;
    50605193
     
    50625195
    50635196/* 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) ) ) ); }
     5197#line 434 "parser.yy"
     5198    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); }
    50665199    break;
    50675200
     
    50695202
    50705203/* Line 1806 of yacc.c  */
    5071 #line 430 "parser.yy"
    5072     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
    5073     break;
    5074 
    5075   case 48:
    5076 
    5077 /* Line 1806 of yacc.c  */
    5078 #line 432 "parser.yy"
    5079     { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     5204#line 437 "parser.yy"
     5205    { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); }
    50805206    break;
    50815207
     
    50835209
    50845210/* Line 1806 of yacc.c  */
    5085 #line 434 "parser.yy"
    5086     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); }
     5211#line 445 "parser.yy"
     5212    { (yyval.en) = (yyvsp[(1) - (1)].en); }
    50875213    break;
    50885214
     
    50905216
    50915217/* Line 1806 of yacc.c  */
    5092 #line 436 "parser.yy"
    5093     { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); }
     5218#line 447 "parser.yy"
     5219    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    50945220    break;
    50955221
     
    50975223
    50985224/* Line 1806 of yacc.c  */
    5099 #line 441 "parser.yy"
    5100     { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (2)].tok) ) ); }
     5225#line 449 "parser.yy"
     5226    { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    51015227    break;
    51025228
     
    51045230
    51055231/* 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:
    5111 
    5112 /* Line 1806 of yacc.c  */
    5113 #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"
    5121     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5122     break;
    5123 
    5124   case 58:
    5125 
    5126 /* Line 1806 of yacc.c  */
    5127 #line 460 "parser.yy"
    5128     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    5129     break;
    5130 
    5131   case 59:
    5132 
    5133 /* Line 1806 of yacc.c  */
    5134 #line 462 "parser.yy"
    5135     { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); }
    5136     break;
    5137 
    5138   case 60:
    5139 
    5140 /* Line 1806 of yacc.c  */
    5141 #line 467 "parser.yy"
     5232#line 454 "parser.yy"
    51425233    {
    51435234                        switch ( (yyvsp[(1) - (2)].op) ) {
     
    51545245    break;
    51555246
     5247  case 53:
     5248
     5249/* Line 1806 of yacc.c  */
     5250#line 467 "parser.yy"
     5251    { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5252    break;
     5253
     5254  case 54:
     5255
     5256/* Line 1806 of yacc.c  */
     5257#line 469 "parser.yy"
     5258    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5259    break;
     5260
     5261  case 55:
     5262
     5263/* Line 1806 of yacc.c  */
     5264#line 471 "parser.yy"
     5265    { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5266    break;
     5267
     5268  case 56:
     5269
     5270/* Line 1806 of yacc.c  */
     5271#line 473 "parser.yy"
     5272    { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5273    break;
     5274
     5275  case 57:
     5276
     5277/* Line 1806 of yacc.c  */
     5278#line 475 "parser.yy"
     5279    { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5280    break;
     5281
     5282  case 58:
     5283
     5284/* Line 1806 of yacc.c  */
     5285#line 477 "parser.yy"
     5286    { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5287    break;
     5288
     5289  case 59:
     5290
     5291/* Line 1806 of yacc.c  */
     5292#line 479 "parser.yy"
     5293    { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5294    break;
     5295
     5296  case 60:
     5297
     5298/* Line 1806 of yacc.c  */
     5299#line 481 "parser.yy"
     5300    { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5301    break;
     5302
    51565303  case 61:
    51575304
    51585305/* Line 1806 of yacc.c  */
    5159 #line 480 "parser.yy"
    5160     { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); }
     5306#line 483 "parser.yy"
     5307    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    51615308    break;
    51625309
     
    51645311
    51655312/* Line 1806 of yacc.c  */
    5166 #line 482 "parser.yy"
    5167     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); }
     5313#line 485 "parser.yy"
     5314    { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
    51685315    break;
    51695316
     
    51715318
    51725319/* Line 1806 of yacc.c  */
    5173 #line 484 "parser.yy"
    5174     { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); }
     5320#line 487 "parser.yy"
     5321    { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
    51755322    break;
    51765323
     
    51785325
    51795326/* Line 1806 of yacc.c  */
    5180 #line 486 "parser.yy"
    5181     { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5327#line 493 "parser.yy"
     5328    { (yyval.op) = OperKinds::PointTo; }
    51825329    break;
    51835330
     
    51855332
    51865333/* Line 1806 of yacc.c  */
    5187 #line 488 "parser.yy"
    5188     { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5334#line 494 "parser.yy"
     5335    { (yyval.op) = OperKinds::AddressOf; }
    51895336    break;
    51905337
     
    51925339
    51935340/* Line 1806 of yacc.c  */
    5194 #line 490 "parser.yy"
    5195     { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); }
     5341#line 500 "parser.yy"
     5342    { (yyval.op) = OperKinds::UnPlus; }
    51965343    break;
    51975344
     
    51995346
    52005347/* Line 1806 of yacc.c  */
    5201 #line 492 "parser.yy"
    5202     { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); }
     5348#line 501 "parser.yy"
     5349    { (yyval.op) = OperKinds::UnMinus; }
    52035350    break;
    52045351
     
    52065353
    52075354/* Line 1806 of yacc.c  */
    5208 #line 494 "parser.yy"
    5209     { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); }
     5355#line 502 "parser.yy"
     5356    { (yyval.op) = OperKinds::Neg; }
    52105357    break;
    52115358
     
    52135360
    52145361/* Line 1806 of yacc.c  */
    5215 #line 496 "parser.yy"
    5216     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); }
    5217     break;
    5218 
    5219   case 70:
    5220 
    5221 /* Line 1806 of yacc.c  */
    5222 #line 498 "parser.yy"
    5223     { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); }
     5362#line 503 "parser.yy"
     5363    { (yyval.op) = OperKinds::BitNeg; }
    52245364    break;
    52255365
     
    52275367
    52285368/* Line 1806 of yacc.c  */
    5229 #line 500 "parser.yy"
    5230     { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); }
     5369#line 509 "parser.yy"
     5370    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    52315371    break;
    52325372
     
    52345374
    52355375/* Line 1806 of yacc.c  */
    5236 #line 506 "parser.yy"
    5237     { (yyval.op) = OperKinds::PointTo; }
    5238     break;
    5239 
    5240   case 73:
    5241 
    5242 /* Line 1806 of yacc.c  */
    5243 #line 507 "parser.yy"
    5244     { (yyval.op) = OperKinds::AddressOf; }
     5376#line 511 "parser.yy"
     5377    { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
    52455378    break;
    52465379
     
    52485381
    52495382/* Line 1806 of yacc.c  */
    5250 #line 513 "parser.yy"
    5251     { (yyval.op) = OperKinds::UnPlus; }
     5383#line 517 "parser.yy"
     5384    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52525385    break;
    52535386
     
    52555388
    52565389/* Line 1806 of yacc.c  */
    5257 #line 514 "parser.yy"
    5258     { (yyval.op) = OperKinds::UnMinus; }
     5390#line 519 "parser.yy"
     5391    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52595392    break;
    52605393
     
    52625395
    52635396/* Line 1806 of yacc.c  */
    5264 #line 515 "parser.yy"
    5265     { (yyval.op) = OperKinds::Neg; }
    5266     break;
    5267 
    5268   case 77:
    5269 
    5270 /* Line 1806 of yacc.c  */
    5271 #line 516 "parser.yy"
    5272     { (yyval.op) = OperKinds::BitNeg; }
     5397#line 521 "parser.yy"
     5398    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5399    break;
     5400
     5401  case 78:
     5402
     5403/* Line 1806 of yacc.c  */
     5404#line 527 "parser.yy"
     5405    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52735406    break;
    52745407
     
    52765409
    52775410/* Line 1806 of yacc.c  */
    5278 #line 522 "parser.yy"
    5279     { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); }
     5411#line 529 "parser.yy"
     5412    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52805413    break;
    52815414
     
    52835416
    52845417/* Line 1806 of yacc.c  */
    5285 #line 530 "parser.yy"
    5286     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5418#line 535 "parser.yy"
     5419    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    52875420    break;
    52885421
     
    52905423
    52915424/* Line 1806 of yacc.c  */
    5292 #line 532 "parser.yy"
    5293     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5294     break;
    5295 
    5296   case 83:
    5297 
    5298 /* Line 1806 of yacc.c  */
    5299 #line 534 "parser.yy"
    5300     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5425#line 537 "parser.yy"
     5426    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5427    break;
     5428
     5429  case 84:
     5430
     5431/* Line 1806 of yacc.c  */
     5432#line 543 "parser.yy"
     5433    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53015434    break;
    53025435
     
    53045437
    53055438/* Line 1806 of yacc.c  */
    5306 #line 540 "parser.yy"
    5307     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5439#line 545 "parser.yy"
     5440    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53085441    break;
    53095442
     
    53115444
    53125445/* Line 1806 of yacc.c  */
    5313 #line 542 "parser.yy"
    5314     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5315     break;
    5316 
    5317   case 88:
    5318 
    5319 /* Line 1806 of yacc.c  */
    5320 #line 548 "parser.yy"
    5321     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5446#line 547 "parser.yy"
     5447    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5448    break;
     5449
     5450  case 87:
     5451
     5452/* Line 1806 of yacc.c  */
     5453#line 549 "parser.yy"
     5454    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53225455    break;
    53235456
     
    53255458
    53265459/* Line 1806 of yacc.c  */
    5327 #line 550 "parser.yy"
    5328     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5329     break;
    5330 
    5331   case 91:
    5332 
    5333 /* Line 1806 of yacc.c  */
    5334 #line 556 "parser.yy"
    5335     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5460#line 555 "parser.yy"
     5461    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5462    break;
     5463
     5464  case 90:
     5465
     5466/* Line 1806 of yacc.c  */
     5467#line 557 "parser.yy"
     5468    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53365469    break;
    53375470
     
    53395472
    53405473/* Line 1806 of yacc.c  */
    5341 #line 558 "parser.yy"
    5342     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5343     break;
    5344 
    5345   case 93:
    5346 
    5347 /* Line 1806 of yacc.c  */
    5348 #line 560 "parser.yy"
    5349     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5474#line 563 "parser.yy"
     5475    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53505476    break;
    53515477
     
    53535479
    53545480/* Line 1806 of yacc.c  */
    5355 #line 562 "parser.yy"
    5356     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5481#line 569 "parser.yy"
     5482    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    53575483    break;
    53585484
     
    53605486
    53615487/* Line 1806 of yacc.c  */
    5362 #line 568 "parser.yy"
    5363     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5364     break;
    5365 
    5366   case 97:
    5367 
    5368 /* Line 1806 of yacc.c  */
    5369 #line 570 "parser.yy"
    5370     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5371     break;
    5372 
    5373   case 99:
    5374 
    5375 /* Line 1806 of yacc.c  */
    5376 #line 576 "parser.yy"
    5377     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5378     break;
    5379 
    5380   case 101:
    5381 
    5382 /* Line 1806 of yacc.c  */
    5383 #line 582 "parser.yy"
    5384     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5488#line 575 "parser.yy"
     5489    { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5490    break;
     5491
     5492  case 98:
     5493
     5494/* Line 1806 of yacc.c  */
     5495#line 581 "parser.yy"
     5496    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     5497    break;
     5498
     5499  case 100:
     5500
     5501/* Line 1806 of yacc.c  */
     5502#line 587 "parser.yy"
     5503    { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     5504    break;
     5505
     5506  case 102:
     5507
     5508/* Line 1806 of yacc.c  */
     5509#line 593 "parser.yy"
     5510    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    53855511    break;
    53865512
     
    53885514
    53895515/* Line 1806 of yacc.c  */
    5390 #line 588 "parser.yy"
    5391     { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5392     break;
    5393 
    5394   case 105:
    5395 
    5396 /* Line 1806 of yacc.c  */
    5397 #line 594 "parser.yy"
    5398     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); }
     5516#line 596 "parser.yy"
     5517    { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5518    break;
     5519
     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) ) ); }
    53995525    break;
    54005526
     
    54025528
    54035529/* Line 1806 of yacc.c  */
    5404 #line 600 "parser.yy"
    5405     { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); }
     5530#line 609 "parser.yy"
     5531    { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5532    break;
     5533
     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) ) ); }
    54065539    break;
    54075540
     
    54095542
    54105543/* Line 1806 of yacc.c  */
    5411 #line 606 "parser.yy"
    5412     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); }
    5413     break;
    5414 
    5415   case 110:
    5416 
    5417 /* Line 1806 of yacc.c  */
    5418 #line 609 "parser.yy"
    5419     { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); }
     5544#line 616 "parser.yy"
     5545    { (yyval.en) = nullptr; }
     5546    break;
     5547
     5548  case 111:
     5549
     5550/* Line 1806 of yacc.c  */
     5551#line 621 "parser.yy"
     5552    { (yyval.op) = OperKinds::Assign; }
     5553    break;
     5554
     5555  case 112:
     5556
     5557/* Line 1806 of yacc.c  */
     5558#line 622 "parser.yy"
     5559    { (yyval.op) = OperKinds::AtAssn; }
    54205560    break;
    54215561
     
    54235563
    54245564/* Line 1806 of yacc.c  */
    5425 #line 622 "parser.yy"
    5426     { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5565#line 623 "parser.yy"
     5566    { (yyval.op) = OperKinds::MulAssn; }
    54275567    break;
    54285568
     
    54305570
    54315571/* Line 1806 of yacc.c  */
     5572#line 624 "parser.yy"
     5573    { (yyval.op) = OperKinds::DivAssn; }
     5574    break;
     5575
     5576  case 115:
     5577
     5578/* Line 1806 of yacc.c  */
     5579#line 625 "parser.yy"
     5580    { (yyval.op) = OperKinds::ModAssn; }
     5581    break;
     5582
     5583  case 116:
     5584
     5585/* Line 1806 of yacc.c  */
     5586#line 626 "parser.yy"
     5587    { (yyval.op) = OperKinds::PlusAssn; }
     5588    break;
     5589
     5590  case 117:
     5591
     5592/* Line 1806 of yacc.c  */
     5593#line 627 "parser.yy"
     5594    { (yyval.op) = OperKinds::MinusAssn; }
     5595    break;
     5596
     5597  case 118:
     5598
     5599/* Line 1806 of yacc.c  */
     5600#line 628 "parser.yy"
     5601    { (yyval.op) = OperKinds::LSAssn; }
     5602    break;
     5603
     5604  case 119:
     5605
     5606/* Line 1806 of yacc.c  */
    54325607#line 629 "parser.yy"
    5433     { (yyval.en) = nullptr; }
    5434     break;
    5435 
    5436   case 116:
    5437 
    5438 /* Line 1806 of yacc.c  */
    5439 #line 634 "parser.yy"
    5440     { (yyval.op) = OperKinds::Assign; }
    5441     break;
    5442 
    5443   case 117:
    5444 
    5445 /* Line 1806 of yacc.c  */
    5446 #line 635 "parser.yy"
    5447     { (yyval.op) = OperKinds::AtAssn; }
    5448     break;
    5449 
    5450   case 118:
    5451 
    5452 /* Line 1806 of yacc.c  */
    5453 #line 636 "parser.yy"
    5454     { (yyval.op) = OperKinds::MulAssn; }
    5455     break;
    5456 
    5457   case 119:
    5458 
    5459 /* Line 1806 of yacc.c  */
    5460 #line 637 "parser.yy"
    5461     { (yyval.op) = OperKinds::DivAssn; }
     5608    { (yyval.op) = OperKinds::RSAssn; }
    54625609    break;
    54635610
     
    54655612
    54665613/* Line 1806 of yacc.c  */
    5467 #line 638 "parser.yy"
    5468     { (yyval.op) = OperKinds::ModAssn; }
     5614#line 630 "parser.yy"
     5615    { (yyval.op) = OperKinds::AndAssn; }
    54695616    break;
    54705617
     
    54725619
    54735620/* Line 1806 of yacc.c  */
     5621#line 631 "parser.yy"
     5622    { (yyval.op) = OperKinds::ERAssn; }
     5623    break;
     5624
     5625  case 122:
     5626
     5627/* Line 1806 of yacc.c  */
     5628#line 632 "parser.yy"
     5629    { (yyval.op) = OperKinds::OrAssn; }
     5630    break;
     5631
     5632  case 123:
     5633
     5634/* Line 1806 of yacc.c  */
    54745635#line 639 "parser.yy"
    5475     { (yyval.op) = OperKinds::PlusAssn; }
    5476     break;
    5477 
    5478   case 122:
    5479 
    5480 /* Line 1806 of yacc.c  */
    5481 #line 640 "parser.yy"
    5482     { (yyval.op) = OperKinds::MinusAssn; }
    5483     break;
    5484 
    5485   case 123:
     5636    { (yyval.en) = new ExpressionNode( build_tuple() ); }
     5637    break;
     5638
     5639  case 124:
    54865640
    54875641/* Line 1806 of yacc.c  */
    54885642#line 641 "parser.yy"
    5489     { (yyval.op) = OperKinds::LSAssn; }
    5490     break;
    5491 
    5492   case 124:
    5493 
    5494 /* Line 1806 of yacc.c  */
    5495 #line 642 "parser.yy"
    5496     { (yyval.op) = OperKinds::RSAssn; }
     5643    { (yyval.en) = new ExpressionNode( build_tuple( (yyvsp[(3) - (5)].en) ) ); }
    54975644    break;
    54985645
     
    55015648/* Line 1806 of yacc.c  */
    55025649#line 643 "parser.yy"
    5503     { (yyval.op) = OperKinds::AndAssn; }
     5650    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    55045651    break;
    55055652
     
    55075654
    55085655/* Line 1806 of yacc.c  */
    5509 #line 644 "parser.yy"
    5510     { (yyval.op) = OperKinds::ERAssn; }
    5511     break;
    5512 
    5513   case 127:
    5514 
    5515 /* Line 1806 of yacc.c  */
    55165656#line 645 "parser.yy"
    5517     { (yyval.op) = OperKinds::OrAssn; }
     5657    { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
    55185658    break;
    55195659
     
    55215661
    55225662/* Line 1806 of yacc.c  */
    5523 #line 656 "parser.yy"
    5524     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); }
    5525     break;
    5526 
    5527   case 129:
    5528 
    5529 /* Line 1806 of yacc.c  */
    5530 #line 658 "parser.yy"
    5531     { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); }
     5663#line 651 "parser.yy"
     5664    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     5665    break;
     5666
     5667  case 130:
     5668
     5669/* Line 1806 of yacc.c  */
     5670#line 657 "parser.yy"
     5671    { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    55325672    break;
    55335673
     
    55355675
    55365676/* Line 1806 of yacc.c  */
    5537 #line 664 "parser.yy"
    5538     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    5539     break;
    5540 
    5541   case 133:
    5542 
    5543 /* Line 1806 of yacc.c  */
    5544 #line 670 "parser.yy"
    5545     { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    5546     break;
    5547 
    5548   case 134:
    5549 
    5550 /* Line 1806 of yacc.c  */
    5551 #line 675 "parser.yy"
     5677#line 662 "parser.yy"
    55525678    { (yyval.en) = 0; }
    55535679    break;
    55545680
    5555   case 138:
    5556 
    5557 /* Line 1806 of yacc.c  */
    5558 #line 684 "parser.yy"
     5681  case 135:
     5682
     5683/* Line 1806 of yacc.c  */
     5684#line 671 "parser.yy"
    55595685    { (yyval.sn) = (yyvsp[(1) - (1)].sn); }
    55605686    break;
    55615687
    5562   case 144:
    5563 
    5564 /* Line 1806 of yacc.c  */
    5565 #line 691 "parser.yy"
     5688  case 141:
     5689
     5690/* Line 1806 of yacc.c  */
     5691#line 678 "parser.yy"
    55665692    {
    55675693                        Token fn;
     
    55715697    break;
    55725698
    5573   case 145:
    5574 
    5575 /* Line 1806 of yacc.c  */
    5576 #line 701 "parser.yy"
     5699  case 142:
     5700
     5701/* Line 1806 of yacc.c  */
     5702#line 688 "parser.yy"
    55775703    {
    55785704                        (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) );
     
    55805706    break;
    55815707
     5708  case 143:
     5709
     5710/* Line 1806 of yacc.c  */
     5711#line 695 "parser.yy"
     5712    { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5713    break;
     5714
     5715  case 144:
     5716
     5717/* Line 1806 of yacc.c  */
     5718#line 702 "parser.yy"
     5719    { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
     5720    break;
     5721
    55825722  case 146:
    55835723
    55845724/* Line 1806 of yacc.c  */
    55855725#line 708 "parser.yy"
    5586     { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); }
     5726    { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    55875727    break;
    55885728
     
    55905730
    55915731/* Line 1806 of yacc.c  */
     5732#line 713 "parser.yy"
     5733    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5734    break;
     5735
     5736  case 148:
     5737
     5738/* Line 1806 of yacc.c  */
    55925739#line 715 "parser.yy"
    5593     { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); }
    5594     break;
    5595 
    5596   case 149:
    5597 
    5598 /* Line 1806 of yacc.c  */
    5599 #line 721 "parser.yy"
    5600     { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } }
    5601     break;
    5602 
    5603   case 150:
    5604 
    5605 /* Line 1806 of yacc.c  */
    5606 #line 726 "parser.yy"
    5607     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
    5608     break;
    5609 
    5610   case 151:
    5611 
    5612 /* Line 1806 of yacc.c  */
    5613 #line 728 "parser.yy"
    56145740    {   // mark all fields in list
    56155741                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    56195745    break;
    56205746
     5747  case 149:
     5748
     5749/* Line 1806 of yacc.c  */
     5750#line 721 "parser.yy"
     5751    { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5752    break;
     5753
    56215754  case 152:
    56225755
    56235756/* Line 1806 of yacc.c  */
    5624 #line 734 "parser.yy"
    5625     { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); }
     5757#line 728 "parser.yy"
     5758    { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5759    break;
     5760
     5761  case 153:
     5762
     5763/* Line 1806 of yacc.c  */
     5764#line 733 "parser.yy"
     5765    { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5766    break;
     5767
     5768  case 154:
     5769
     5770/* Line 1806 of yacc.c  */
     5771#line 739 "parser.yy"
     5772    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    56265773    break;
    56275774
     
    56305777/* Line 1806 of yacc.c  */
    56315778#line 741 "parser.yy"
    5632     { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } }
     5779    { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    56335780    break;
    56345781
     
    56365783
    56375784/* Line 1806 of yacc.c  */
    5638 #line 746 "parser.yy"
    5639     { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); }
     5785#line 743 "parser.yy"
     5786    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    56405787    break;
    56415788
     
    56435790
    56445791/* Line 1806 of yacc.c  */
    5645 #line 752 "parser.yy"
    5646     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); }
    5647     break;
    5648 
    5649   case 158:
    5650 
    5651 /* Line 1806 of yacc.c  */
    5652 #line 754 "parser.yy"
    5653     { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); }
    5654     break;
    5655 
    5656   case 159:
    5657 
    5658 /* Line 1806 of yacc.c  */
    5659 #line 756 "parser.yy"
    5660     { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5661     break;
    5662 
    5663   case 160:
    5664 
    5665 /* Line 1806 of yacc.c  */
    5666 #line 758 "parser.yy"
     5792#line 745 "parser.yy"
    56675793    {
    56685794                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    56765802    break;
    56775803
    5678   case 161:
    5679 
    5680 /* Line 1806 of yacc.c  */
    5681 #line 768 "parser.yy"
     5804  case 158:
     5805
     5806/* Line 1806 of yacc.c  */
     5807#line 755 "parser.yy"
    56825808    { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    56835809    break;
    56845810
    5685   case 162:
    5686 
    5687 /* Line 1806 of yacc.c  */
    5688 #line 770 "parser.yy"
     5811  case 159:
     5812
     5813/* Line 1806 of yacc.c  */
     5814#line 757 "parser.yy"
    56895815    {
    56905816                        StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) );
     
    56935819    break;
    56945820
     5821  case 160:
     5822
     5823/* Line 1806 of yacc.c  */
     5824#line 767 "parser.yy"
     5825    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     5826    break;
     5827
     5828  case 161:
     5829
     5830/* Line 1806 of yacc.c  */
     5831#line 769 "parser.yy"
     5832    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5833    break;
     5834
    56955835  case 163:
    56965836
    56975837/* Line 1806 of yacc.c  */
     5838#line 774 "parser.yy"
     5839    { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
     5840    break;
     5841
     5842  case 164:
     5843
     5844/* Line 1806 of yacc.c  */
     5845#line 776 "parser.yy"
     5846    { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
     5847    break;
     5848
     5849  case 165:
     5850
     5851/* Line 1806 of yacc.c  */
    56985852#line 780 "parser.yy"
    5699     { (yyval.en) = (yyvsp[(1) - (1)].en); }
    5700     break;
    5701 
    5702   case 164:
    5703 
    5704 /* Line 1806 of yacc.c  */
    5705 #line 782 "parser.yy"
    5706     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     5853    { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
    57075854    break;
    57085855
     
    57105857
    57115858/* Line 1806 of yacc.c  */
     5859#line 781 "parser.yy"
     5860    { (yyval.sn) = new StatementNode( build_default() ); }
     5861    break;
     5862
     5863  case 168:
     5864
     5865/* Line 1806 of yacc.c  */
    57125866#line 787 "parser.yy"
    5713     { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); }
    5714     break;
    5715 
    5716   case 167:
    5717 
    5718 /* Line 1806 of yacc.c  */
    5719 #line 789 "parser.yy"
    5720     { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); }
    5721     break;
    5722 
    5723   case 168:
    5724 
    5725 /* Line 1806 of yacc.c  */
    5726 #line 793 "parser.yy"
    5727     { (yyval.sn) = (yyvsp[(2) - (3)].sn); }
     5867    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
    57285868    break;
    57295869
     
    57315871
    57325872/* Line 1806 of yacc.c  */
    5733 #line 794 "parser.yy"
    5734     { (yyval.sn) = new StatementNode( build_default() ); }
    5735     break;
    5736 
    5737   case 171:
    5738 
    5739 /* Line 1806 of yacc.c  */
    5740 #line 800 "parser.yy"
    5741     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); }
     5873#line 791 "parser.yy"
     5874    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
     5875    break;
     5876
     5877  case 170:
     5878
     5879/* Line 1806 of yacc.c  */
     5880#line 796 "parser.yy"
     5881    { (yyval.sn) = 0; }
    57425882    break;
    57435883
     
    57455885
    57465886/* 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
     5891  case 173:
     5892
     5893/* Line 1806 of yacc.c  */
    57475894#line 804 "parser.yy"
    5748     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); }
    5749     break;
    5750 
    5751   case 173:
     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:
    57525899
    57535900/* Line 1806 of yacc.c  */
     
    57565903    break;
    57575904
    5758   case 175:
     5905  case 176:
    57595906
    57605907/* Line 1806 of yacc.c  */
    57615908#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 
    5765   case 176:
     5909    { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
     5910    break;
     5911
     5912  case 177:
    57665913
    57675914/* Line 1806 of yacc.c  */
    57685915#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"
     5916    { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
     5917    break;
     5918
     5919  case 178:
     5920
     5921/* Line 1806 of yacc.c  */
     5922#line 819 "parser.yy"
     5923    { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
     5924    break;
     5925
     5926  case 179:
     5927
     5928/* Line 1806 of yacc.c  */
     5929#line 821 "parser.yy"
     5930    { (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) ) ) ) ) ) ); }
     5931    break;
     5932
     5933  case 180:
     5934
     5935/* Line 1806 of yacc.c  */
     5936#line 826 "parser.yy"
     5937    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
     5938    break;
     5939
     5940  case 182:
     5941
     5942/* Line 1806 of yacc.c  */
     5943#line 832 "parser.yy"
    57765944    { (yyval.sn) = 0; }
    57775945    break;
    57785946
    5779   case 179:
    5780 
    5781 /* Line 1806 of yacc.c  */
    5782 #line 828 "parser.yy"
    5783     { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); }
    5784     break;
    5785 
    5786   case 180:
    5787 
    5788 /* Line 1806 of yacc.c  */
    5789 #line 830 "parser.yy"
    5790     { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); }
    5791     break;
    5792 
    5793   case 181:
    5794 
    5795 /* Line 1806 of yacc.c  */
    5796 #line 832 "parser.yy"
    5797     { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); }
    5798     break;
    5799 
    5800   case 182:
     5947  case 183:
    58015948
    58025949/* Line 1806 of yacc.c  */
    58035950#line 834 "parser.yy"
    5804     { (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) ) ) ) ) ) ); }
    5805     break;
    5806 
    5807   case 183:
     5951    { (yyval.sn) = 0; }
     5952    break;
     5953
     5954  case 184:
    58085955
    58095956/* Line 1806 of yacc.c  */
    58105957#line 839 "parser.yy"
     5958    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
     5959    break;
     5960
     5961  case 185:
     5962
     5963/* Line 1806 of yacc.c  */
     5964#line 841 "parser.yy"
     5965    { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
     5966    break;
     5967
     5968  case 186:
     5969
     5970/* Line 1806 of yacc.c  */
     5971#line 843 "parser.yy"
     5972    { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
     5973    break;
     5974
     5975  case 187:
     5976
     5977/* Line 1806 of yacc.c  */
     5978#line 848 "parser.yy"
     5979    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
     5980    break;
     5981
     5982  case 188:
     5983
     5984/* Line 1806 of yacc.c  */
     5985#line 850 "parser.yy"
     5986    { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
     5987    break;
     5988
     5989  case 189:
     5990
     5991/* Line 1806 of yacc.c  */
     5992#line 855 "parser.yy"
     5993    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
     5994    break;
     5995
     5996  case 190:
     5997
     5998/* Line 1806 of yacc.c  */
     5999#line 859 "parser.yy"
     6000    { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
     6001    break;
     6002
     6003  case 191:
     6004
     6005/* Line 1806 of yacc.c  */
     6006#line 862 "parser.yy"
     6007    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
     6008    break;
     6009
     6010  case 192:
     6011
     6012/* Line 1806 of yacc.c  */
     6013#line 866 "parser.yy"
     6014    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
     6015    break;
     6016
     6017  case 193:
     6018
     6019/* Line 1806 of yacc.c  */
     6020#line 869 "parser.yy"
    58116021    { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    58126022    break;
    58136023
    5814   case 185:
    5815 
    5816 /* Line 1806 of yacc.c  */
    5817 #line 845 "parser.yy"
    5818     { (yyval.sn) = 0; }
    5819     break;
    5820 
    5821   case 186:
    5822 
    5823 /* Line 1806 of yacc.c  */
    5824 #line 847 "parser.yy"
    5825     { (yyval.sn) = 0; }
    5826     break;
    5827 
    5828   case 187:
    5829 
    5830 /* Line 1806 of yacc.c  */
    5831 #line 852 "parser.yy"
    5832     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); }
    5833     break;
    5834 
    5835   case 188:
    5836 
    5837 /* Line 1806 of yacc.c  */
    5838 #line 854 "parser.yy"
    5839     { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); }
    5840     break;
    5841 
    5842   case 189:
    5843 
    5844 /* Line 1806 of yacc.c  */
    5845 #line 856 "parser.yy"
    5846     { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); }
    5847     break;
    5848 
    5849   case 190:
    5850 
    5851 /* Line 1806 of yacc.c  */
    5852 #line 861 "parser.yy"
    5853     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); }
    5854     break;
    5855 
    5856   case 191:
    5857 
    5858 /* Line 1806 of yacc.c  */
    5859 #line 863 "parser.yy"
    5860     { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); }
    5861     break;
    5862 
    5863   case 192:
    5864 
    5865 /* Line 1806 of yacc.c  */
    5866 #line 868 "parser.yy"
    5867     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); }
    5868     break;
    5869 
    5870   case 193:
    5871 
    5872 /* Line 1806 of yacc.c  */
    5873 #line 872 "parser.yy"
    5874     { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); }
    5875     break;
    5876 
    58776024  case 194:
    58786025
    58796026/* Line 1806 of yacc.c  */
     6027#line 873 "parser.yy"
     6028    { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
     6029    break;
     6030
     6031  case 195:
     6032
     6033/* Line 1806 of yacc.c  */
    58806034#line 875 "parser.yy"
    5881     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); }
    5882     break;
    5883 
    5884   case 195:
     6035    { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
     6036    break;
     6037
     6038  case 196:
     6039
     6040/* Line 1806 of yacc.c  */
     6041#line 877 "parser.yy"
     6042    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6043    break;
     6044
     6045  case 197:
    58856046
    58866047/* Line 1806 of yacc.c  */
    58876048#line 879 "parser.yy"
    5888     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); }
    5889     break;
    5890 
    5891   case 196:
    5892 
    5893 /* Line 1806 of yacc.c  */
    5894 #line 882 "parser.yy"
    5895     { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); }
    5896     break;
    5897 
    5898   case 197:
     6049    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
     6050    break;
     6051
     6052  case 198:
     6053
     6054/* Line 1806 of yacc.c  */
     6055#line 881 "parser.yy"
     6056    { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
     6057    break;
     6058
     6059  case 199:
    58996060
    59006061/* Line 1806 of yacc.c  */
    59016062#line 886 "parser.yy"
    5902     { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); }
    5903     break;
    5904 
    5905   case 198:
     6063    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
     6064    break;
     6065
     6066  case 200:
    59066067
    59076068/* Line 1806 of yacc.c  */
    59086069#line 888 "parser.yy"
    5909     { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); }
    5910     break;
    5911 
    5912   case 199:
     6070    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
     6071    break;
     6072
     6073  case 201:
    59136074
    59146075/* Line 1806 of yacc.c  */
    59156076#line 890 "parser.yy"
    5916     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    5917     break;
    5918 
    5919   case 200:
    5920 
    5921 /* Line 1806 of yacc.c  */
    5922 #line 892 "parser.yy"
    5923     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); }
    5924     break;
    5925 
    5926   case 201:
    5927 
    5928 /* Line 1806 of yacc.c  */
    5929 #line 894 "parser.yy"
    5930     { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); }
    5931     break;
    5932 
    5933   case 202:
     6077    { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
     6078    break;
     6079
     6080  case 203:
     6081
     6082/* Line 1806 of yacc.c  */
     6083#line 897 "parser.yy"
     6084    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6085    break;
     6086
     6087  case 204:
    59346088
    59356089/* Line 1806 of yacc.c  */
    59366090#line 899 "parser.yy"
    5937     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); }
    5938     break;
    5939 
    5940   case 203:
     6091    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6092    break;
     6093
     6094  case 205:
    59416095
    59426096/* Line 1806 of yacc.c  */
    59436097#line 901 "parser.yy"
    5944     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); }
    5945     break;
    5946 
    5947   case 204:
     6098    { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
     6099    break;
     6100
     6101  case 206:
    59486102
    59496103/* Line 1806 of yacc.c  */
    59506104#line 903 "parser.yy"
    5951     { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); }
    5952     break;
    5953 
    5954   case 206:
     6105    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
     6106    break;
     6107
     6108  case 207:
     6109
     6110/* Line 1806 of yacc.c  */
     6111#line 908 "parser.yy"
     6112    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6113    break;
     6114
     6115  case 208:
    59556116
    59566117/* Line 1806 of yacc.c  */
    59576118#line 910 "parser.yy"
    5958     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    5959     break;
    5960 
    5961   case 207:
     6119    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
     6120    break;
     6121
     6122  case 209:
    59626123
    59636124/* Line 1806 of yacc.c  */
    59646125#line 912 "parser.yy"
    5965     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    5966     break;
    5967 
    5968   case 208:
     6126    { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6127    break;
     6128
     6129  case 210:
    59696130
    59706131/* Line 1806 of yacc.c  */
    59716132#line 914 "parser.yy"
    5972     { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); }
    5973     break;
    5974 
    5975   case 209:
    5976 
    5977 /* Line 1806 of yacc.c  */
    5978 #line 916 "parser.yy"
    5979     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); }
    5980     break;
    5981 
    5982   case 210:
    5983 
    5984 /* Line 1806 of yacc.c  */
    5985 #line 921 "parser.yy"
    5986     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
     6133    { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    59876134    break;
    59886135
     
    59906137
    59916138/* Line 1806 of yacc.c  */
    5992 #line 923 "parser.yy"
    5993     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    5994     break;
    5995 
    5996   case 212:
    5997 
    5998 /* Line 1806 of yacc.c  */
    5999 #line 925 "parser.yy"
    6000     { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); }
    6001     break;
    6002 
    6003   case 213:
    6004 
    6005 /* Line 1806 of yacc.c  */
    6006 #line 927 "parser.yy"
    6007     { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); }
    6008     break;
    6009 
    6010   case 214:
    6011 
    6012 /* Line 1806 of yacc.c  */
    6013 #line 932 "parser.yy"
     6139#line 919 "parser.yy"
    60146140    {
    60156141                        (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) );
     
    60176143    break;
    60186144
    6019   case 216:
    6020 
    6021 /* Line 1806 of yacc.c  */
    6022 #line 945 "parser.yy"
     6145  case 213:
     6146
     6147/* Line 1806 of yacc.c  */
     6148#line 932 "parser.yy"
    60236149    {
    60246150                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60276153    break;
    60286154
    6029   case 217:
    6030 
    6031 /* Line 1806 of yacc.c  */
    6032 #line 950 "parser.yy"
     6155  case 214:
     6156
     6157/* Line 1806 of yacc.c  */
     6158#line 937 "parser.yy"
    60336159    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    60346160    break;
    60356161
    6036   case 218:
    6037 
    6038 /* Line 1806 of yacc.c  */
    6039 #line 952 "parser.yy"
     6162  case 215:
     6163
     6164/* Line 1806 of yacc.c  */
     6165#line 939 "parser.yy"
    60406166    {
    60416167                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    60446170    break;
    60456171
     6172  case 217:
     6173
     6174/* Line 1806 of yacc.c  */
     6175#line 948 "parser.yy"
     6176    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
     6177    break;
     6178
     6179  case 218:
     6180
     6181/* Line 1806 of yacc.c  */
     6182#line 950 "parser.yy"
     6183    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
     6184    break;
     6185
     6186  case 219:
     6187
     6188/* Line 1806 of yacc.c  */
     6189#line 952 "parser.yy"
     6190    { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
     6191    break;
     6192
    60466193  case 220:
    60476194
    60486195/* Line 1806 of yacc.c  */
     6196#line 954 "parser.yy"
     6197    { (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) ) ); }
     6198    break;
     6199
     6200  case 221:
     6201
     6202/* Line 1806 of yacc.c  */
     6203#line 956 "parser.yy"
     6204    { (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) ) ); }
     6205    break;
     6206
     6207  case 222:
     6208
     6209/* Line 1806 of yacc.c  */
    60496210#line 961 "parser.yy"
    6050     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); }
    6051     break;
    6052 
    6053   case 221:
     6211    { (yyval.flag) = false; }
     6212    break;
     6213
     6214  case 223:
    60546215
    60556216/* Line 1806 of yacc.c  */
    60566217#line 963 "parser.yy"
    6057     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); }
    6058     break;
    6059 
    6060   case 222:
    6061 
    6062 /* Line 1806 of yacc.c  */
    6063 #line 965 "parser.yy"
    6064     { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); }
    6065     break;
    6066 
    6067   case 223:
    6068 
    6069 /* Line 1806 of yacc.c  */
    6070 #line 967 "parser.yy"
    6071     { (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) ) ); }
     6218    { (yyval.flag) = true; }
    60726219    break;
    60736220
     
    60756222
    60766223/* Line 1806 of yacc.c  */
    6077 #line 969 "parser.yy"
    6078     { (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) ) ); }
    6079     break;
    6080 
    6081   case 225:
    6082 
    6083 /* Line 1806 of yacc.c  */
    6084 #line 974 "parser.yy"
    6085     { (yyval.flag) = false; }
    6086     break;
    6087 
    6088   case 226:
    6089 
    6090 /* Line 1806 of yacc.c  */
    6091 #line 976 "parser.yy"
    6092     { (yyval.flag) = true; }
     6224#line 968 "parser.yy"
     6225    { (yyval.en) = 0; }
    60936226    break;
    60946227
     
    60966229
    60976230/* Line 1806 of yacc.c  */
    6098 #line 981 "parser.yy"
     6231#line 975 "parser.yy"
     6232    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
     6233    break;
     6234
     6235  case 228:
     6236
     6237/* Line 1806 of yacc.c  */
     6238#line 980 "parser.yy"
     6239    { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6240    break;
     6241
     6242  case 229:
     6243
     6244/* Line 1806 of yacc.c  */
     6245#line 982 "parser.yy"
     6246    { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6247    break;
     6248
     6249  case 230:
     6250
     6251/* Line 1806 of yacc.c  */
     6252#line 987 "parser.yy"
    60996253    { (yyval.en) = 0; }
    61006254    break;
    61016255
    6102   case 230:
    6103 
    6104 /* Line 1806 of yacc.c  */
    6105 #line 988 "parser.yy"
    6106     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); }
    6107     break;
    6108 
    61096256  case 231:
    61106257
    61116258/* Line 1806 of yacc.c  */
    6112 #line 993 "parser.yy"
    6113     { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); }
     6259#line 989 "parser.yy"
     6260    { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    61146261    break;
    61156262
     
    61176264
    61186265/* Line 1806 of yacc.c  */
    6119 #line 995 "parser.yy"
    6120     { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); }
     6266#line 991 "parser.yy"
     6267    { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    61216268    break;
    61226269
     
    61246271
    61256272/* Line 1806 of yacc.c  */
    6126 #line 1000 "parser.yy"
    6127     { (yyval.en) = 0; }
    6128     break;
    6129 
    6130   case 234:
    6131 
    6132 /* Line 1806 of yacc.c  */
    6133 #line 1002 "parser.yy"
    6134     { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); }
    6135     break;
    6136 
    6137   case 235:
    6138 
    6139 /* Line 1806 of yacc.c  */
    6140 #line 1004 "parser.yy"
    6141     { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); }
    6142     break;
    6143 
    6144   case 236:
    6145 
    6146 /* Line 1806 of yacc.c  */
    6147 #line 1009 "parser.yy"
     6273#line 996 "parser.yy"
    61486274    {
    61496275                        (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) );
     
    61526278    break;
    61536279
    6154   case 237:
    6155 
    6156 /* Line 1806 of yacc.c  */
    6157 #line 1014 "parser.yy"
     6280  case 234:
     6281
     6282/* Line 1806 of yacc.c  */
     6283#line 1001 "parser.yy"
    61586284    {
    61596285                        (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) );
     
    61626288    break;
    61636289
     6290  case 235:
     6291
     6292/* Line 1806 of yacc.c  */
     6293#line 1011 "parser.yy"
     6294    { (yyval.decl) = 0; }
     6295    break;
     6296
    61646297  case 238:
    61656298
    61666299/* Line 1806 of yacc.c  */
    6167 #line 1024 "parser.yy"
     6300#line 1018 "parser.yy"
     6301    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
     6302    break;
     6303
     6304  case 239:
     6305
     6306/* Line 1806 of yacc.c  */
     6307#line 1023 "parser.yy"
    61686308    { (yyval.decl) = 0; }
    61696309    break;
    61706310
    6171   case 241:
    6172 
    6173 /* Line 1806 of yacc.c  */
    6174 #line 1031 "parser.yy"
     6311  case 242:
     6312
     6313/* Line 1806 of yacc.c  */
     6314#line 1030 "parser.yy"
    61756315    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    61766316    break;
    61776317
    6178   case 242:
    6179 
    6180 /* Line 1806 of yacc.c  */
    6181 #line 1036 "parser.yy"
    6182     { (yyval.decl) = 0; }
    6183     break;
    6184 
    6185   case 245:
    6186 
    6187 /* Line 1806 of yacc.c  */
    6188 #line 1043 "parser.yy"
    6189     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    6190     break;
    6191 
    6192   case 250:
    6193 
    6194 /* Line 1806 of yacc.c  */
    6195 #line 1057 "parser.yy"
     6318  case 247:
     6319
     6320/* Line 1806 of yacc.c  */
     6321#line 1044 "parser.yy"
    61966322    {}
    61976323    break;
    61986324
    6199   case 251:
    6200 
    6201 /* Line 1806 of yacc.c  */
    6202 #line 1058 "parser.yy"
     6325  case 248:
     6326
     6327/* Line 1806 of yacc.c  */
     6328#line 1045 "parser.yy"
    62036329    {}
    62046330    break;
    62056331
    6206   case 259:
    6207 
    6208 /* Line 1806 of yacc.c  */
    6209 #line 1087 "parser.yy"
     6332  case 256:
     6333
     6334/* Line 1806 of yacc.c  */
     6335#line 1074 "parser.yy"
    62106336    {
    62116337                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62146340    break;
    62156341
    6216   case 260:
    6217 
    6218 /* Line 1806 of yacc.c  */
    6219 #line 1094 "parser.yy"
     6342  case 257:
     6343
     6344/* Line 1806 of yacc.c  */
     6345#line 1081 "parser.yy"
    62206346    {
    62216347                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62246350    break;
    62256351
    6226   case 261:
    6227 
    6228 /* Line 1806 of yacc.c  */
    6229 #line 1099 "parser.yy"
     6352  case 258:
     6353
     6354/* Line 1806 of yacc.c  */
     6355#line 1086 "parser.yy"
    62306356    {
    62316357                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID );
     
    62346360    break;
    62356361
    6236   case 262:
    6237 
    6238 /* Line 1806 of yacc.c  */
    6239 #line 1109 "parser.yy"
     6362  case 259:
     6363
     6364/* Line 1806 of yacc.c  */
     6365#line 1096 "parser.yy"
    62406366    {
    62416367                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62446370    break;
    62456371
    6246   case 263:
    6247 
    6248 /* Line 1806 of yacc.c  */
    6249 #line 1114 "parser.yy"
     6372  case 260:
     6373
     6374/* Line 1806 of yacc.c  */
     6375#line 1101 "parser.yy"
    62506376    {
    62516377                        typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) );
     
    62546380    break;
    62556381
    6256   case 264:
    6257 
    6258 /* Line 1806 of yacc.c  */
    6259 #line 1119 "parser.yy"
     6382  case 261:
     6383
     6384/* Line 1806 of yacc.c  */
     6385#line 1106 "parser.yy"
    62606386    {
    62616387                        typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) );
     
    62646390    break;
    62656391
    6266   case 265:
    6267 
    6268 /* Line 1806 of yacc.c  */
    6269 #line 1127 "parser.yy"
     6392  case 262:
     6393
     6394/* Line 1806 of yacc.c  */
     6395#line 1114 "parser.yy"
    62706396    {
    62716397                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62746400    break;
    62756401
    6276   case 266:
    6277 
    6278 /* Line 1806 of yacc.c  */
    6279 #line 1132 "parser.yy"
     6402  case 263:
     6403
     6404/* Line 1806 of yacc.c  */
     6405#line 1119 "parser.yy"
    62806406    {
    62816407                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62846410    break;
    62856411
    6286   case 267:
    6287 
    6288 /* Line 1806 of yacc.c  */
    6289 #line 1137 "parser.yy"
     6412  case 264:
     6413
     6414/* Line 1806 of yacc.c  */
     6415#line 1124 "parser.yy"
    62906416    {
    62916417                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    62946420    break;
    62956421
    6296   case 268:
    6297 
    6298 /* Line 1806 of yacc.c  */
    6299 #line 1142 "parser.yy"
     6422  case 265:
     6423
     6424/* Line 1806 of yacc.c  */
     6425#line 1129 "parser.yy"
    63006426    {
    63016427                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    63046430    break;
    63056431
    6306   case 269:
    6307 
    6308 /* Line 1806 of yacc.c  */
    6309 #line 1147 "parser.yy"
     6432  case 266:
     6433
     6434/* Line 1806 of yacc.c  */
     6435#line 1134 "parser.yy"
    63106436    {
    63116437                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    63146440    break;
    63156441
    6316   case 270:
    6317 
    6318 /* Line 1806 of yacc.c  */
    6319 #line 1178 "parser.yy"
     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"
    63206455    {
    63216456                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63236458    break;
    63246459
    6325   case 271:
    6326 
    6327 /* Line 1806 of yacc.c  */
    6328 #line 1182 "parser.yy"
     6460  case 269:
     6461
     6462/* Line 1806 of yacc.c  */
     6463#line 1169 "parser.yy"
    63296464    {
    63306465                        (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true );
     
    63326467    break;
    63336468
     6469  case 270:
     6470
     6471/* Line 1806 of yacc.c  */
     6472#line 1176 "parser.yy"
     6473    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     6474    break;
     6475
     6476  case 271:
     6477
     6478/* Line 1806 of yacc.c  */
     6479#line 1180 "parser.yy"
     6480    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
     6481    break;
     6482
    63346483  case 272:
    63356484
    63366485/* Line 1806 of yacc.c  */
    6337 #line 1189 "parser.yy"
    6338     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    6339     break;
    6340 
    6341   case 273:
    6342 
    6343 /* Line 1806 of yacc.c  */
    6344 #line 1193 "parser.yy"
    6345     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); }
    6346     break;
    6347 
    6348   case 274:
    6349 
    6350 /* Line 1806 of yacc.c  */
    6351 #line 1198 "parser.yy"
     6486#line 1185 "parser.yy"
    63526487    {
    63536488                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63566491    break;
    63576492
    6358   case 275:
    6359 
    6360 /* Line 1806 of yacc.c  */
    6361 #line 1203 "parser.yy"
     6493  case 273:
     6494
     6495/* Line 1806 of yacc.c  */
     6496#line 1190 "parser.yy"
    63626497    {
    63636498                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63666501    break;
    63676502
    6368   case 276:
    6369 
    6370 /* Line 1806 of yacc.c  */
    6371 #line 1208 "parser.yy"
     6503  case 274:
     6504
     6505/* Line 1806 of yacc.c  */
     6506#line 1195 "parser.yy"
    63726507    {
    63736508                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD );
     
    63766511    break;
    63776512
    6378   case 277:
    6379 
    6380 /* Line 1806 of yacc.c  */
    6381 #line 1219 "parser.yy"
     6513  case 275:
     6514
     6515/* Line 1806 of yacc.c  */
     6516#line 1206 "parser.yy"
    63826517    {
    63836518                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63866521    break;
    63876522
    6388   case 278:
    6389 
    6390 /* Line 1806 of yacc.c  */
    6391 #line 1224 "parser.yy"
     6523  case 276:
     6524
     6525/* Line 1806 of yacc.c  */
     6526#line 1211 "parser.yy"
    63926527    {
    63936528                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    63966531    break;
    63976532
    6398   case 279:
    6399 
    6400 /* Line 1806 of yacc.c  */
    6401 #line 1229 "parser.yy"
     6533  case 277:
     6534
     6535/* Line 1806 of yacc.c  */
     6536#line 1216 "parser.yy"
    64026537    {
    64036538                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64066541    break;
    64076542
    6408   case 280:
    6409 
    6410 /* Line 1806 of yacc.c  */
    6411 #line 1234 "parser.yy"
     6543  case 278:
     6544
     6545/* Line 1806 of yacc.c  */
     6546#line 1221 "parser.yy"
    64126547    {
    64136548                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64166551    break;
    64176552
    6418   case 281:
    6419 
    6420 /* Line 1806 of yacc.c  */
    6421 #line 1239 "parser.yy"
     6553  case 279:
     6554
     6555/* Line 1806 of yacc.c  */
     6556#line 1226 "parser.yy"
    64226557    {
    64236558                        typedefTable.addToEnclosingScope( TypedefTable::TD );
     
    64266561    break;
    64276562
    6428   case 282:
    6429 
    6430 /* Line 1806 of yacc.c  */
    6431 #line 1248 "parser.yy"
     6563  case 280:
     6564
     6565/* Line 1806 of yacc.c  */
     6566#line 1235 "parser.yy"
    64326567    {
    64336568                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD );
     
    64366571    break;
    64376572
    6438   case 283:
    6439 
    6440 /* Line 1806 of yacc.c  */
    6441 #line 1253 "parser.yy"
     6573  case 281:
     6574
     6575/* Line 1806 of yacc.c  */
     6576#line 1240 "parser.yy"
    64426577    {
    64436578                        typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD );
     
    64466581    break;
    64476582
    6448   case 288:
    6449 
    6450 /* Line 1806 of yacc.c  */
    6451 #line 1270 "parser.yy"
     6583  case 286:
     6584
     6585/* Line 1806 of yacc.c  */
     6586#line 1257 "parser.yy"
    64526587    {
    64536588                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64566591    break;
    64576592
    6458   case 289:
    6459 
    6460 /* Line 1806 of yacc.c  */
    6461 #line 1275 "parser.yy"
     6593  case 287:
     6594
     6595/* Line 1806 of yacc.c  */
     6596#line 1262 "parser.yy"
    64626597    {
    64636598                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    64666601    break;
    64676602
    6468   case 298:
    6469 
    6470 /* Line 1806 of yacc.c  */
    6471 #line 1297 "parser.yy"
     6603  case 296:
     6604
     6605/* Line 1806 of yacc.c  */
     6606#line 1284 "parser.yy"
    64726607    { (yyval.decl) = 0; }
    64736608    break;
    64746609
    6475   case 301:
     6610  case 299:
     6611
     6612/* Line 1806 of yacc.c  */
     6613#line 1296 "parser.yy"
     6614    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6615    break;
     6616
     6617  case 302:
     6618
     6619/* Line 1806 of yacc.c  */
     6620#line 1307 "parser.yy"
     6621    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6622    break;
     6623
     6624  case 303:
    64766625
    64776626/* Line 1806 of yacc.c  */
    64786627#line 1309 "parser.yy"
    6479     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6628    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
    64806629    break;
    64816630
     
    64836632
    64846633/* Line 1806 of yacc.c  */
    6485 #line 1320 "parser.yy"
    6486     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); }
     6634#line 1311 "parser.yy"
     6635    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
    64876636    break;
    64886637
     
    64906639
    64916640/* Line 1806 of yacc.c  */
    6492 #line 1322 "parser.yy"
    6493     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); }
     6641#line 1313 "parser.yy"
     6642    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    64946643    break;
    64956644
     
    64976646
    64986647/* Line 1806 of yacc.c  */
    6499 #line 1324 "parser.yy"
    6500     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); }
     6648#line 1315 "parser.yy"
     6649    { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    65016650    break;
    65026651
     
    65046653
    65056654/* Line 1806 of yacc.c  */
    6506 #line 1326 "parser.yy"
    6507     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); }
    6508     break;
    6509 
    6510   case 308:
    6511 
    6512 /* Line 1806 of yacc.c  */
    6513 #line 1328 "parser.yy"
    6514     { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); }
    6515     break;
    6516 
    6517   case 309:
    6518 
    6519 /* Line 1806 of yacc.c  */
    6520 #line 1330 "parser.yy"
     6655#line 1317 "parser.yy"
    65216656    {
    65226657                        typedefTable.enterScope();
     
    65246659    break;
    65256660
    6526   case 310:
    6527 
    6528 /* Line 1806 of yacc.c  */
    6529 #line 1334 "parser.yy"
     6661  case 308:
     6662
     6663/* Line 1806 of yacc.c  */
     6664#line 1321 "parser.yy"
    65306665    {
    65316666                        typedefTable.leaveScope();
     
    65346669    break;
    65356670
    6536   case 312:
     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:
    65376686
    65386687/* Line 1806 of yacc.c  */
     
    65416690    break;
    65426691
    6543   case 313:
    6544 
    6545 /* Line 1806 of yacc.c  */
    6546 #line 1345 "parser.yy"
     6692  case 314:
     6693
     6694/* Line 1806 of yacc.c  */
     6695#line 1348 "parser.yy"
     6696    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
     6697    break;
     6698
     6699  case 315:
     6700
     6701/* Line 1806 of yacc.c  */
     6702#line 1350 "parser.yy"
     6703    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
     6704    break;
     6705
     6706  case 316:
     6707
     6708/* Line 1806 of yacc.c  */
     6709#line 1352 "parser.yy"
     6710    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
     6711    break;
     6712
     6713  case 317:
     6714
     6715/* Line 1806 of yacc.c  */
     6716#line 1354 "parser.yy"
     6717    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
     6718    break;
     6719
     6720  case 318:
     6721
     6722/* Line 1806 of yacc.c  */
     6723#line 1357 "parser.yy"
     6724    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
     6725    break;
     6726
     6727  case 319:
     6728
     6729/* Line 1806 of yacc.c  */
     6730#line 1359 "parser.yy"
     6731    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
     6732    break;
     6733
     6734  case 320:
     6735
     6736/* Line 1806 of yacc.c  */
     6737#line 1362 "parser.yy"
     6738    { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
     6739    break;
     6740
     6741  case 321:
     6742
     6743/* Line 1806 of yacc.c  */
     6744#line 1364 "parser.yy"
     6745    { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
     6746    break;
     6747
     6748  case 322:
     6749
     6750/* Line 1806 of yacc.c  */
     6751#line 1369 "parser.yy"
     6752    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
     6753    break;
     6754
     6755  case 323:
     6756
     6757/* Line 1806 of yacc.c  */
     6758#line 1371 "parser.yy"
     6759    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
     6760    break;
     6761
     6762  case 324:
     6763
     6764/* Line 1806 of yacc.c  */
     6765#line 1373 "parser.yy"
     6766    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
     6767    break;
     6768
     6769  case 325:
     6770
     6771/* Line 1806 of yacc.c  */
     6772#line 1375 "parser.yy"
     6773    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
     6774    break;
     6775
     6776  case 326:
     6777
     6778/* Line 1806 of yacc.c  */
     6779#line 1377 "parser.yy"
     6780    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
     6781    break;
     6782
     6783  case 327:
     6784
     6785/* Line 1806 of yacc.c  */
     6786#line 1379 "parser.yy"
     6787    { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
     6788    break;
     6789
     6790  case 328:
     6791
     6792/* Line 1806 of yacc.c  */
     6793#line 1381 "parser.yy"
     6794    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
     6795    break;
     6796
     6797  case 329:
     6798
     6799/* Line 1806 of yacc.c  */
     6800#line 1383 "parser.yy"
     6801    { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
     6802    break;
     6803
     6804  case 330:
     6805
     6806/* Line 1806 of yacc.c  */
     6807#line 1385 "parser.yy"
     6808    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
     6809    break;
     6810
     6811  case 331:
     6812
     6813/* Line 1806 of yacc.c  */
     6814#line 1387 "parser.yy"
     6815    { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
     6816    break;
     6817
     6818  case 332:
     6819
     6820/* Line 1806 of yacc.c  */
     6821#line 1389 "parser.yy"
     6822    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
     6823    break;
     6824
     6825  case 333:
     6826
     6827/* Line 1806 of yacc.c  */
     6828#line 1391 "parser.yy"
     6829    { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
     6830    break;
     6831
     6832  case 334:
     6833
     6834/* Line 1806 of yacc.c  */
     6835#line 1393 "parser.yy"
     6836    { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
     6837    break;
     6838
     6839  case 336:
     6840
     6841/* Line 1806 of yacc.c  */
     6842#line 1400 "parser.yy"
     6843    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6844    break;
     6845
     6846  case 337:
     6847
     6848/* Line 1806 of yacc.c  */
     6849#line 1402 "parser.yy"
     6850    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     6851    break;
     6852
     6853  case 338:
     6854
     6855/* Line 1806 of yacc.c  */
     6856#line 1404 "parser.yy"
    65476857    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    65486858    break;
    65496859
    6550   case 315:
    6551 
    6552 /* Line 1806 of yacc.c  */
    6553 #line 1356 "parser.yy"
     6860  case 339:
     6861
     6862/* Line 1806 of yacc.c  */
     6863#line 1406 "parser.yy"
     6864    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
     6865    break;
     6866
     6867  case 341:
     6868
     6869/* Line 1806 of yacc.c  */
     6870#line 1412 "parser.yy"
     6871    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     6872    break;
     6873
     6874  case 343:
     6875
     6876/* Line 1806 of yacc.c  */
     6877#line 1419 "parser.yy"
     6878    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6879    break;
     6880
     6881  case 344:
     6882
     6883/* Line 1806 of yacc.c  */
     6884#line 1421 "parser.yy"
    65546885    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    65556886    break;
    65566887
    6557   case 316:
    6558 
    6559 /* Line 1806 of yacc.c  */
    6560 #line 1361 "parser.yy"
    6561     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); }
    6562     break;
    6563 
    6564   case 317:
    6565 
    6566 /* Line 1806 of yacc.c  */
    6567 #line 1363 "parser.yy"
    6568     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); }
    6569     break;
    6570 
    6571   case 318:
    6572 
    6573 /* Line 1806 of yacc.c  */
    6574 #line 1365 "parser.yy"
    6575     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); }
    6576     break;
    6577 
    6578   case 319:
    6579 
    6580 /* Line 1806 of yacc.c  */
    6581 #line 1367 "parser.yy"
    6582     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); }
    6583     break;
    6584 
    6585   case 320:
    6586 
    6587 /* Line 1806 of yacc.c  */
    6588 #line 1370 "parser.yy"
    6589     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; }
    6590     break;
    6591 
    6592   case 321:
    6593 
    6594 /* Line 1806 of yacc.c  */
    6595 #line 1372 "parser.yy"
    6596     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); }
    6597     break;
    6598 
    6599   case 322:
    6600 
    6601 /* Line 1806 of yacc.c  */
    6602 #line 1375 "parser.yy"
    6603     { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; }
    6604     break;
    6605 
    6606   case 323:
    6607 
    6608 /* Line 1806 of yacc.c  */
    6609 #line 1377 "parser.yy"
    6610     { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); }
    6611     break;
    6612 
    6613   case 324:
    6614 
    6615 /* Line 1806 of yacc.c  */
    6616 #line 1382 "parser.yy"
    6617     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); }
    6618     break;
    6619 
    6620   case 325:
    6621 
    6622 /* Line 1806 of yacc.c  */
    6623 #line 1384 "parser.yy"
    6624     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); }
    6625     break;
    6626 
    6627   case 326:
    6628 
    6629 /* Line 1806 of yacc.c  */
    6630 #line 1386 "parser.yy"
    6631     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); }
    6632     break;
    6633 
    6634   case 327:
    6635 
    6636 /* Line 1806 of yacc.c  */
    6637 #line 1388 "parser.yy"
    6638     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); }
    6639     break;
    6640 
    6641   case 328:
    6642 
    6643 /* Line 1806 of yacc.c  */
    6644 #line 1390 "parser.yy"
    6645     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); }
    6646     break;
    6647 
    6648   case 329:
    6649 
    6650 /* Line 1806 of yacc.c  */
    6651 #line 1392 "parser.yy"
    6652     { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); }
    6653     break;
    6654 
    6655   case 330:
    6656 
    6657 /* Line 1806 of yacc.c  */
    6658 #line 1394 "parser.yy"
    6659     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); }
    6660     break;
    6661 
    6662   case 331:
    6663 
    6664 /* Line 1806 of yacc.c  */
    6665 #line 1396 "parser.yy"
    6666     { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); }
    6667     break;
    6668 
    6669   case 332:
    6670 
    6671 /* Line 1806 of yacc.c  */
    6672 #line 1398 "parser.yy"
    6673     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); }
    6674     break;
    6675 
    6676   case 333:
    6677 
    6678 /* Line 1806 of yacc.c  */
    6679 #line 1400 "parser.yy"
    6680     { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); }
    6681     break;
    6682 
    6683   case 334:
    6684 
    6685 /* Line 1806 of yacc.c  */
    6686 #line 1402 "parser.yy"
    6687     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); }
    6688     break;
    6689 
    6690   case 335:
    6691 
    6692 /* Line 1806 of yacc.c  */
    6693 #line 1404 "parser.yy"
    6694     { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); }
    6695     break;
    6696 
    6697   case 336:
    6698 
    6699 /* Line 1806 of yacc.c  */
    6700 #line 1406 "parser.yy"
    6701     { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); }
    6702     break;
    6703 
    6704   case 338:
    6705 
    6706 /* Line 1806 of yacc.c  */
    6707 #line 1413 "parser.yy"
     6888  case 345:
     6889
     6890/* Line 1806 of yacc.c  */
     6891#line 1423 "parser.yy"
     6892    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
     6893    break;
     6894
     6895  case 346:
     6896
     6897/* Line 1806 of yacc.c  */
     6898#line 1428 "parser.yy"
     6899    { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
     6900    break;
     6901
     6902  case 347:
     6903
     6904/* Line 1806 of yacc.c  */
     6905#line 1430 "parser.yy"
     6906    { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
     6907    break;
     6908
     6909  case 348:
     6910
     6911/* Line 1806 of yacc.c  */
     6912#line 1432 "parser.yy"
     6913    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
     6914    break;
     6915
     6916  case 349:
     6917
     6918/* Line 1806 of yacc.c  */
     6919#line 1434 "parser.yy"
     6920    { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     6921    break;
     6922
     6923  case 351:
     6924
     6925/* Line 1806 of yacc.c  */
     6926#line 1440 "parser.yy"
    67086927    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67096928    break;
    67106929
    6711   case 339:
    6712 
    6713 /* Line 1806 of yacc.c  */
    6714 #line 1415 "parser.yy"
     6930  case 352:
     6931
     6932/* Line 1806 of yacc.c  */
     6933#line 1442 "parser.yy"
    67156934    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67166935    break;
    67176936
    6718   case 340:
    6719 
    6720 /* Line 1806 of yacc.c  */
    6721 #line 1417 "parser.yy"
     6937  case 353:
     6938
     6939/* Line 1806 of yacc.c  */
     6940#line 1444 "parser.yy"
    67226941    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    67236942    break;
    67246943
    6725   case 341:
    6726 
    6727 /* Line 1806 of yacc.c  */
    6728 #line 1419 "parser.yy"
    6729     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); }
    6730     break;
    6731 
    6732   case 343:
    6733 
    6734 /* Line 1806 of yacc.c  */
    6735 #line 1425 "parser.yy"
    6736     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6737     break;
    6738 
    6739   case 345:
    6740 
    6741 /* Line 1806 of yacc.c  */
    6742 #line 1432 "parser.yy"
     6944  case 355:
     6945
     6946/* Line 1806 of yacc.c  */
     6947#line 1450 "parser.yy"
    67436948    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67446949    break;
    67456950
    6746   case 346:
    6747 
    6748 /* Line 1806 of yacc.c  */
    6749 #line 1434 "parser.yy"
     6951  case 356:
     6952
     6953/* Line 1806 of yacc.c  */
     6954#line 1452 "parser.yy"
    67506955    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    67516956    break;
    67526957
    6753   case 347:
    6754 
    6755 /* Line 1806 of yacc.c  */
    6756 #line 1436 "parser.yy"
    6757     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); }
    6758     break;
    6759 
    6760   case 348:
    6761 
    6762 /* Line 1806 of yacc.c  */
    6763 #line 1441 "parser.yy"
    6764     { (yyval.decl) = (yyvsp[(3) - (4)].decl); }
    6765     break;
    6766 
    6767   case 349:
    6768 
    6769 /* Line 1806 of yacc.c  */
    6770 #line 1443 "parser.yy"
    6771     { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); }
    6772     break;
    6773 
    6774   case 350:
    6775 
    6776 /* Line 1806 of yacc.c  */
    6777 #line 1445 "parser.yy"
    6778     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); }
    6779     break;
    6780 
    6781   case 351:
    6782 
    6783 /* Line 1806 of yacc.c  */
    6784 #line 1447 "parser.yy"
    6785     { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    6786     break;
    6787 
    6788   case 353:
    6789 
    6790 /* Line 1806 of yacc.c  */
    6791 #line 1453 "parser.yy"
     6958  case 358:
     6959
     6960/* Line 1806 of yacc.c  */
     6961#line 1458 "parser.yy"
    67926962    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    67936963    break;
    67946964
    6795   case 354:
    6796 
    6797 /* Line 1806 of yacc.c  */
    6798 #line 1455 "parser.yy"
     6965  case 359:
     6966
     6967/* Line 1806 of yacc.c  */
     6968#line 1460 "parser.yy"
    67996969    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68006970    break;
    68016971
    6802   case 355:
    6803 
    6804 /* Line 1806 of yacc.c  */
    6805 #line 1457 "parser.yy"
     6972  case 360:
     6973
     6974/* Line 1806 of yacc.c  */
     6975#line 1462 "parser.yy"
    68066976    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    68076977    break;
    68086978
    6809   case 357:
    6810 
    6811 /* Line 1806 of yacc.c  */
    6812 #line 1463 "parser.yy"
    6813     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6814     break;
    6815 
    6816   case 358:
    6817 
    6818 /* Line 1806 of yacc.c  */
    6819 #line 1465 "parser.yy"
     6979  case 361:
     6980
     6981/* Line 1806 of yacc.c  */
     6982#line 1467 "parser.yy"
     6983    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
     6984    break;
     6985
     6986  case 362:
     6987
     6988/* Line 1806 of yacc.c  */
     6989#line 1469 "parser.yy"
     6990    { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     6991    break;
     6992
     6993  case 363:
     6994
     6995/* Line 1806 of yacc.c  */
     6996#line 1471 "parser.yy"
    68206997    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    68216998    break;
    68226999
    6823   case 360:
    6824 
    6825 /* Line 1806 of yacc.c  */
    6826 #line 1471 "parser.yy"
    6827     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6828     break;
    6829 
    6830   case 361:
    6831 
    6832 /* Line 1806 of yacc.c  */
    6833 #line 1473 "parser.yy"
    6834     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6835     break;
    6836 
    6837   case 362:
    6838 
    6839 /* Line 1806 of yacc.c  */
    6840 #line 1475 "parser.yy"
    6841     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    6842     break;
    6843 
    6844   case 363:
    6845 
    6846 /* Line 1806 of yacc.c  */
    6847 #line 1480 "parser.yy"
    6848     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); }
    6849     break;
    6850 
    6851   case 364:
    6852 
    6853 /* Line 1806 of yacc.c  */
    6854 #line 1482 "parser.yy"
    6855     { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    6856     break;
    6857 
    6858   case 365:
    6859 
    6860 /* Line 1806 of yacc.c  */
    6861 #line 1484 "parser.yy"
    6862     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    6863     break;
    6864 
    6865   case 368:
    6866 
    6867 /* Line 1806 of yacc.c  */
    6868 #line 1494 "parser.yy"
     7000  case 366:
     7001
     7002/* Line 1806 of yacc.c  */
     7003#line 1481 "parser.yy"
    68697004    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); }
    68707005    break;
    68717006
    6872   case 369:
    6873 
    6874 /* Line 1806 of yacc.c  */
    6875 #line 1496 "parser.yy"
     7007  case 367:
     7008
     7009/* Line 1806 of yacc.c  */
     7010#line 1483 "parser.yy"
    68767011    {
    68777012                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    68807015    break;
    68817016
     7017  case 368:
     7018
     7019/* Line 1806 of yacc.c  */
     7020#line 1488 "parser.yy"
     7021    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7022    break;
     7023
     7024  case 369:
     7025
     7026/* Line 1806 of yacc.c  */
     7027#line 1490 "parser.yy"
     7028    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
     7029    break;
     7030
    68827031  case 370:
    68837032
    68847033/* Line 1806 of yacc.c  */
     7034#line 1492 "parser.yy"
     7035    { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
     7036    break;
     7037
     7038  case 371:
     7039
     7040/* Line 1806 of yacc.c  */
     7041#line 1494 "parser.yy"
     7042    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7043    break;
     7044
     7045  case 372:
     7046
     7047/* Line 1806 of yacc.c  */
     7048#line 1499 "parser.yy"
     7049    { (yyval.aggKey) = DeclarationNode::Struct; }
     7050    break;
     7051
     7052  case 373:
     7053
     7054/* Line 1806 of yacc.c  */
    68857055#line 1501 "parser.yy"
    6886     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
    6887     break;
    6888 
    6889   case 371:
    6890 
    6891 /* Line 1806 of yacc.c  */
    6892 #line 1503 "parser.yy"
    6893     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); }
    6894     break;
    6895 
    6896   case 372:
    6897 
    6898 /* Line 1806 of yacc.c  */
    6899 #line 1505 "parser.yy"
    6900     { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); }
    6901     break;
    6902 
    6903   case 373:
    6904 
    6905 /* Line 1806 of yacc.c  */
    6906 #line 1507 "parser.yy"
    6907     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7056    { (yyval.aggKey) = DeclarationNode::Union; }
    69087057    break;
    69097058
     
    69117060
    69127061/* Line 1806 of yacc.c  */
    6913 #line 1512 "parser.yy"
    6914     { (yyval.aggKey) = DeclarationNode::Struct; }
     7062#line 1506 "parser.yy"
     7063    { (yyval.decl) = 0; }
    69157064    break;
    69167065
     
    69187067
    69197068/* Line 1806 of yacc.c  */
     7069#line 1508 "parser.yy"
     7070    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     7071    break;
     7072
     7073  case 377:
     7074
     7075/* Line 1806 of yacc.c  */
    69207076#line 1514 "parser.yy"
    6921     { (yyval.aggKey) = DeclarationNode::Union; }
    6922     break;
    6923 
    6924   case 376:
    6925 
    6926 /* Line 1806 of yacc.c  */
    6927 #line 1519 "parser.yy"
    6928     { (yyval.decl) = 0; }
    6929     break;
    6930 
    6931   case 377:
    6932 
    6933 /* Line 1806 of yacc.c  */
    6934 #line 1521 "parser.yy"
    6935     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
     7077    { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    69367078    break;
    69377079
     
    69397081
    69407082/* Line 1806 of yacc.c  */
    6941 #line 1527 "parser.yy"
    6942     { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); }
    6943     break;
    6944 
    6945   case 381:
    6946 
    6947 /* Line 1806 of yacc.c  */
    6948 #line 1530 "parser.yy"
     7083#line 1517 "parser.yy"
    69497084    {   // mark all fields in list
    69507085                        for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    69547089    break;
    69557090
     7091  case 381:
     7092
     7093/* Line 1806 of yacc.c  */
     7094#line 1527 "parser.yy"
     7095    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7096    break;
     7097
     7098  case 382:
     7099
     7100/* Line 1806 of yacc.c  */
     7101#line 1529 "parser.yy"
     7102    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7103    break;
     7104
    69567105  case 383:
    69577106
    69587107/* Line 1806 of yacc.c  */
    6959 #line 1540 "parser.yy"
    6960     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); }
     7108#line 1531 "parser.yy"
     7109    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
    69617110    break;
    69627111
     
    69647113
    69657114/* Line 1806 of yacc.c  */
    6966 #line 1542 "parser.yy"
    6967     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); }
     7115#line 1536 "parser.yy"
     7116    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    69687117    break;
    69697118
     
    69717120
    69727121/* Line 1806 of yacc.c  */
    6973 #line 1544 "parser.yy"
    6974     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); }
     7122#line 1538 "parser.yy"
     7123    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    69757124    break;
    69767125
     
    69787127
    69797128/* Line 1806 of yacc.c  */
    6980 #line 1549 "parser.yy"
    6981     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7129#line 1543 "parser.yy"
     7130    { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    69827131    break;
    69837132
     
    69857134
    69867135/* Line 1806 of yacc.c  */
     7136#line 1545 "parser.yy"
     7137    { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
     7138    break;
     7139
     7140  case 388:
     7141
     7142/* Line 1806 of yacc.c  */
     7143#line 1548 "parser.yy"
     7144    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
     7145    break;
     7146
     7147  case 389:
     7148
     7149/* Line 1806 of yacc.c  */
    69877150#line 1551 "parser.yy"
    6988     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); }
    6989     break;
    6990 
    6991   case 388:
    6992 
    6993 /* Line 1806 of yacc.c  */
    6994 #line 1556 "parser.yy"
    6995     { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ }
    6996     break;
    6997 
    6998   case 389:
    6999 
    7000 /* Line 1806 of yacc.c  */
    7001 #line 1558 "parser.yy"
    7002     { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); }
    7003     break;
    7004 
    7005   case 390:
    7006 
    7007 /* Line 1806 of yacc.c  */
    7008 #line 1561 "parser.yy"
    70097151    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    70107152    break;
     
    70137155
    70147156/* Line 1806 of yacc.c  */
     7157#line 1557 "parser.yy"
     7158    { (yyval.en) = 0; }
     7159    break;
     7160
     7161  case 392:
     7162
     7163/* Line 1806 of yacc.c  */
     7164#line 1559 "parser.yy"
     7165    { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7166    break;
     7167
     7168  case 393:
     7169
     7170/* Line 1806 of yacc.c  */
    70157171#line 1564 "parser.yy"
    7016     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); }
    7017     break;
    7018 
    7019   case 393:
    7020 
    7021 /* Line 1806 of yacc.c  */
    7022 #line 1570 "parser.yy"
    7023     { (yyval.en) = 0; }
    7024     break;
    7025 
    7026   case 394:
    7027 
    7028 /* Line 1806 of yacc.c  */
    7029 #line 1572 "parser.yy"
    7030     { (yyval.en) = (yyvsp[(1) - (1)].en); }
     7172    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70317173    break;
    70327174
     
    70347176
    70357177/* Line 1806 of yacc.c  */
    7036 #line 1577 "parser.yy"
    7037     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7038     break;
    7039 
    7040   case 397:
    7041 
    7042 /* Line 1806 of yacc.c  */
    7043 #line 1586 "parser.yy"
     7178#line 1573 "parser.yy"
    70447179    { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); }
    70457180    break;
    70467181
    7047   case 398:
    7048 
    7049 /* Line 1806 of yacc.c  */
    7050 #line 1588 "parser.yy"
     7182  case 396:
     7183
     7184/* Line 1806 of yacc.c  */
     7185#line 1575 "parser.yy"
    70517186    {
    70527187                        typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) );
     
    70557190    break;
    70567191
     7192  case 397:
     7193
     7194/* Line 1806 of yacc.c  */
     7195#line 1580 "parser.yy"
     7196    { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7197    break;
     7198
     7199  case 398:
     7200
     7201/* Line 1806 of yacc.c  */
     7202#line 1582 "parser.yy"
     7203    { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7204    break;
     7205
    70577206  case 399:
    70587207
    70597208/* Line 1806 of yacc.c  */
    7060 #line 1593 "parser.yy"
    7061     { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); }
     7209#line 1587 "parser.yy"
     7210    { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
    70627211    break;
    70637212
     
    70657214
    70667215/* Line 1806 of yacc.c  */
    7067 #line 1595 "parser.yy"
    7068     { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); }
     7216#line 1589 "parser.yy"
     7217    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
    70697218    break;
    70707219
     
    70727221
    70737222/* Line 1806 of yacc.c  */
    7074 #line 1600 "parser.yy"
    7075     { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); }
     7223#line 1594 "parser.yy"
     7224    { (yyval.en) = 0; }
    70767225    break;
    70777226
     
    70797228
    70807229/* Line 1806 of yacc.c  */
    7081 #line 1602 "parser.yy"
    7082     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); }
     7230#line 1596 "parser.yy"
     7231    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    70837232    break;
    70847233
     
    70867235
    70877236/* Line 1806 of yacc.c  */
    7088 #line 1607 "parser.yy"
    7089     { (yyval.en) = 0; }
    7090     break;
    7091 
    7092   case 404:
    7093 
    7094 /* Line 1806 of yacc.c  */
    7095 #line 1609 "parser.yy"
    7096     { (yyval.en) = (yyvsp[(2) - (2)].en); }
    7097     break;
    7098 
    7099   case 405:
    7100 
    7101 /* Line 1806 of yacc.c  */
    7102 #line 1616 "parser.yy"
     7237#line 1603 "parser.yy"
    71037238    { (yyval.decl) = 0; }
    71047239    break;
    71057240
     7241  case 407:
     7242
     7243/* Line 1806 of yacc.c  */
     7244#line 1611 "parser.yy"
     7245    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7246    break;
     7247
     7248  case 408:
     7249
     7250/* Line 1806 of yacc.c  */
     7251#line 1613 "parser.yy"
     7252    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7253    break;
     7254
    71067255  case 409:
    71077256
    71087257/* Line 1806 of yacc.c  */
    7109 #line 1624 "parser.yy"
     7258#line 1615 "parser.yy"
     7259    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
     7260    break;
     7261
     7262  case 411:
     7263
     7264/* Line 1806 of yacc.c  */
     7265#line 1623 "parser.yy"
    71107266    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71117267    break;
    71127268
    7113   case 410:
    7114 
    7115 /* Line 1806 of yacc.c  */
    7116 #line 1626 "parser.yy"
     7269  case 412:
     7270
     7271/* Line 1806 of yacc.c  */
     7272#line 1625 "parser.yy"
     7273    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7274    break;
     7275
     7276  case 413:
     7277
     7278/* Line 1806 of yacc.c  */
     7279#line 1627 "parser.yy"
     7280    { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
     7281    break;
     7282
     7283  case 415:
     7284
     7285/* Line 1806 of yacc.c  */
     7286#line 1633 "parser.yy"
     7287    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7288    break;
     7289
     7290  case 416:
     7291
     7292/* Line 1806 of yacc.c  */
     7293#line 1638 "parser.yy"
     7294    { (yyval.decl) = 0; }
     7295    break;
     7296
     7297  case 419:
     7298
     7299/* Line 1806 of yacc.c  */
     7300#line 1645 "parser.yy"
    71177301    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    71187302    break;
    71197303
    7120   case 411:
    7121 
    7122 /* Line 1806 of yacc.c  */
    7123 #line 1628 "parser.yy"
    7124     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7125     break;
    7126 
    7127   case 413:
    7128 
    7129 /* Line 1806 of yacc.c  */
    7130 #line 1636 "parser.yy"
     7304  case 422:
     7305
     7306/* Line 1806 of yacc.c  */
     7307#line 1652 "parser.yy"
    71317308    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71327309    break;
    71337310
    7134   case 414:
    7135 
    7136 /* Line 1806 of yacc.c  */
    7137 #line 1638 "parser.yy"
     7311  case 423:
     7312
     7313/* Line 1806 of yacc.c  */
     7314#line 1654 "parser.yy"
    71387315    { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    71397316    break;
    71407317
    7141   case 415:
    7142 
    7143 /* Line 1806 of yacc.c  */
    7144 #line 1640 "parser.yy"
    7145     { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); }
    7146     break;
    7147 
    7148   case 417:
    7149 
    7150 /* Line 1806 of yacc.c  */
    7151 #line 1646 "parser.yy"
    7152     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7153     break;
    7154 
    7155   case 418:
    7156 
    7157 /* Line 1806 of yacc.c  */
    7158 #line 1651 "parser.yy"
    7159     { (yyval.decl) = 0; }
    7160     break;
    7161 
    7162   case 421:
    7163 
    7164 /* Line 1806 of yacc.c  */
    7165 #line 1658 "parser.yy"
    7166     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }
    7167     break;
    7168 
    7169   case 424:
    7170 
    7171 /* Line 1806 of yacc.c  */
    7172 #line 1665 "parser.yy"
    7173     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
    7174     break;
    7175 
    71767318  case 425:
    71777319
    71787320/* Line 1806 of yacc.c  */
    7179 #line 1667 "parser.yy"
    7180     { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); }
     7321#line 1663 "parser.yy"
     7322    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
     7323    break;
     7324
     7325  case 426:
     7326
     7327/* Line 1806 of yacc.c  */
     7328#line 1666 "parser.yy"
     7329    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    71817330    break;
    71827331
     
    71847333
    71857334/* Line 1806 of yacc.c  */
    7186 #line 1676 "parser.yy"
    7187     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7188     break;
    7189 
    7190   case 428:
    7191 
    7192 /* Line 1806 of yacc.c  */
    7193 #line 1679 "parser.yy"
    7194     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); }
    7195     break;
    7196 
    7197   case 429:
    7198 
    7199 /* Line 1806 of yacc.c  */
    7200 #line 1681 "parser.yy"
     7335#line 1668 "parser.yy"
    72017336    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); }
    72027337    break;
    72037338
     7339  case 432:
     7340
     7341/* Line 1806 of yacc.c  */
     7342#line 1678 "parser.yy"
     7343    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7344    break;
     7345
    72047346  case 434:
    72057347
    72067348/* Line 1806 of yacc.c  */
    7207 #line 1691 "parser.yy"
    7208     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7209     break;
    7210 
    7211   case 436:
    7212 
    7213 /* Line 1806 of yacc.c  */
    7214 #line 1697 "parser.yy"
     7349#line 1684 "parser.yy"
    72157350    {
    72167351                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72197354    break;
    72207355
    7221   case 437:
    7222 
    7223 /* Line 1806 of yacc.c  */
    7224 #line 1702 "parser.yy"
     7356  case 435:
     7357
     7358/* Line 1806 of yacc.c  */
     7359#line 1689 "parser.yy"
    72257360    {
    72267361                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    72297364    break;
    72307365
     7366  case 437:
     7367
     7368/* Line 1806 of yacc.c  */
     7369#line 1698 "parser.yy"
     7370    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7371    break;
     7372
     7373  case 438:
     7374
     7375/* Line 1806 of yacc.c  */
     7376#line 1707 "parser.yy"
     7377    { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
     7378    break;
     7379
    72317380  case 439:
    72327381
    72337382/* Line 1806 of yacc.c  */
    7234 #line 1711 "parser.yy"
     7383#line 1709 "parser.yy"
     7384    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
     7385    break;
     7386
     7387  case 451:
     7388
     7389/* Line 1806 of yacc.c  */
     7390#line 1734 "parser.yy"
    72357391    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    72367392    break;
    72377393
    7238   case 440:
    7239 
    7240 /* Line 1806 of yacc.c  */
    7241 #line 1720 "parser.yy"
    7242     { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); }
    7243     break;
    7244 
    7245   case 441:
    7246 
    7247 /* Line 1806 of yacc.c  */
    7248 #line 1722 "parser.yy"
    7249     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); }
    7250     break;
    7251 
    7252   case 453:
     7394  case 455:
     7395
     7396/* Line 1806 of yacc.c  */
     7397#line 1742 "parser.yy"
     7398    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7399    break;
     7400
     7401  case 456:
    72537402
    72547403/* Line 1806 of yacc.c  */
    72557404#line 1747 "parser.yy"
    7256     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
     7405    { (yyval.in) = 0; }
    72577406    break;
    72587407
     
    72607409
    72617410/* Line 1806 of yacc.c  */
     7411#line 1749 "parser.yy"
     7412    { (yyval.in) = (yyvsp[(2) - (2)].in); }
     7413    break;
     7414
     7415  case 458:
     7416
     7417/* Line 1806 of yacc.c  */
     7418#line 1751 "parser.yy"
     7419    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
     7420    break;
     7421
     7422  case 459:
     7423
     7424/* Line 1806 of yacc.c  */
    72627425#line 1755 "parser.yy"
    7263     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); }
    7264     break;
    7265 
    7266   case 458:
    7267 
    7268 /* Line 1806 of yacc.c  */
    7269 #line 1760 "parser.yy"
     7426    { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
     7427    break;
     7428
     7429  case 460:
     7430
     7431/* Line 1806 of yacc.c  */
     7432#line 1756 "parser.yy"
     7433    { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
     7434    break;
     7435
     7436  case 461:
     7437
     7438/* Line 1806 of yacc.c  */
     7439#line 1761 "parser.yy"
    72707440    { (yyval.in) = 0; }
    72717441    break;
    72727442
    7273   case 459:
    7274 
    7275 /* Line 1806 of yacc.c  */
    7276 #line 1762 "parser.yy"
    7277     { (yyval.in) = (yyvsp[(2) - (2)].in); }
    7278     break;
    7279 
    7280   case 460:
     7443  case 463:
     7444
     7445/* Line 1806 of yacc.c  */
     7446#line 1763 "parser.yy"
     7447    { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
     7448    break;
     7449
     7450  case 464:
    72817451
    72827452/* Line 1806 of yacc.c  */
    72837453#line 1764 "parser.yy"
    7284     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); }
    7285     break;
    7286 
    7287   case 461:
    7288 
    7289 /* Line 1806 of yacc.c  */
    7290 #line 1768 "parser.yy"
    7291     { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); }
    7292     break;
    7293 
    7294   case 462:
    7295 
    7296 /* Line 1806 of yacc.c  */
    7297 #line 1769 "parser.yy"
    7298     { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); }
    7299     break;
    7300 
    7301   case 463:
    7302 
    7303 /* Line 1806 of yacc.c  */
    7304 #line 1774 "parser.yy"
    7305     { (yyval.in) = 0; }
     7454    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
    73067455    break;
    73077456
     
    73097458
    73107459/* Line 1806 of yacc.c  */
    7311 #line 1776 "parser.yy"
    7312     { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); }
    7313     break;
    7314 
    7315   case 466:
    7316 
    7317 /* Line 1806 of yacc.c  */
    7318 #line 1777 "parser.yy"
    7319     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); }
     7460#line 1766 "parser.yy"
     7461    { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
    73207462    break;
    73217463
     
    73237465
    73247466/* Line 1806 of yacc.c  */
    7325 #line 1779 "parser.yy"
    7326     { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); }
     7467#line 1782 "parser.yy"
     7468    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
    73277469    break;
    73287470
     
    73307472
    73317473/* Line 1806 of yacc.c  */
    7332 #line 1795 "parser.yy"
    7333     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); }
     7474#line 1788 "parser.yy"
     7475    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
     7476    break;
     7477
     7478  case 470:
     7479
     7480/* Line 1806 of yacc.c  */
     7481#line 1794 "parser.yy"
     7482    { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    73347483    break;
    73357484
     
    73377486
    73387487/* Line 1806 of yacc.c  */
     7488#line 1797 "parser.yy"
     7489    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7490    break;
     7491
     7492  case 472:
     7493
     7494/* Line 1806 of yacc.c  */
     7495#line 1799 "parser.yy"
     7496    { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7497    break;
     7498
     7499  case 473:
     7500
     7501/* Line 1806 of yacc.c  */
    73397502#line 1801 "parser.yy"
    7340     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); }
    7341     break;
    7342 
    7343   case 472:
    7344 
    7345 /* Line 1806 of yacc.c  */
    7346 #line 1807 "parser.yy"
    7347     { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); }
    7348     break;
    7349 
    7350   case 473:
    7351 
    7352 /* Line 1806 of yacc.c  */
    7353 #line 1810 "parser.yy"
    7354     { (yyval.en) = (yyvsp[(3) - (5)].en); }
     7503    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
    73557504    break;
    73567505
     
    73587507
    73597508/* Line 1806 of yacc.c  */
    7360 #line 1812 "parser.yy"
    7361     { (yyval.en) = (yyvsp[(3) - (5)].en); }
    7362     break;
    7363 
    7364   case 475:
    7365 
    7366 /* Line 1806 of yacc.c  */
    7367 #line 1814 "parser.yy"
    7368     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); }
     7509#line 1803 "parser.yy"
     7510    { (yyval.en) = (yyvsp[(4) - (6)].en); }
    73697511    break;
    73707512
     
    73727514
    73737515/* Line 1806 of yacc.c  */
    7374 #line 1816 "parser.yy"
    7375     { (yyval.en) = (yyvsp[(4) - (6)].en); }
     7516#line 1827 "parser.yy"
     7517    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     7518    break;
     7519
     7520  case 477:
     7521
     7522/* Line 1806 of yacc.c  */
     7523#line 1829 "parser.yy"
     7524    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73767525    break;
    73777526
     
    73797528
    73807529/* Line 1806 of yacc.c  */
    7381 #line 1840 "parser.yy"
     7530#line 1831 "parser.yy"
     7531    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
     7532    break;
     7533
     7534  case 480:
     7535
     7536/* Line 1806 of yacc.c  */
     7537#line 1837 "parser.yy"
    73827538    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    73837539    break;
    73847540
    7385   case 479:
    7386 
    7387 /* Line 1806 of yacc.c  */
    7388 #line 1842 "parser.yy"
     7541  case 481:
     7542
     7543/* Line 1806 of yacc.c  */
     7544#line 1839 "parser.yy"
    73897545    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    73907546    break;
    73917547
    7392   case 480:
     7548  case 482:
    73937549
    73947550/* Line 1806 of yacc.c  */
    73957551#line 1844 "parser.yy"
    7396     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); }
    7397     break;
    7398 
    7399   case 482:
     7552    { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
     7553    break;
     7554
     7555  case 484:
    74007556
    74017557/* Line 1806 of yacc.c  */
    74027558#line 1850 "parser.yy"
    7403     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    7404     break;
    7405 
    7406   case 483:
    7407 
    7408 /* Line 1806 of yacc.c  */
    7409 #line 1852 "parser.yy"
    7410     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7411     break;
    7412 
    7413   case 484:
     7559    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
     7560    break;
     7561
     7562  case 485:
     7563
     7564/* Line 1806 of yacc.c  */
     7565#line 1855 "parser.yy"
     7566    { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
     7567    break;
     7568
     7569  case 486:
    74147570
    74157571/* Line 1806 of yacc.c  */
    74167572#line 1857 "parser.yy"
    7417     { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); }
    7418     break;
    7419 
    7420   case 486:
     7573    { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7574    break;
     7575
     7576  case 488:
    74217577
    74227578/* Line 1806 of yacc.c  */
    74237579#line 1863 "parser.yy"
    7424     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); }
    7425     break;
    7426 
    7427   case 487:
    7428 
    7429 /* Line 1806 of yacc.c  */
    7430 #line 1868 "parser.yy"
    7431     { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); }
    7432     break;
    7433 
    7434   case 488:
    7435 
    7436 /* Line 1806 of yacc.c  */
    7437 #line 1870 "parser.yy"
    7438     { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); }
     7580    { (yyval.tclass) = DeclarationNode::Otype; }
     7581    break;
     7582
     7583  case 489:
     7584
     7585/* Line 1806 of yacc.c  */
     7586#line 1865 "parser.yy"
     7587    { (yyval.tclass) = DeclarationNode::Ftype; }
    74397588    break;
    74407589
     
    74427591
    74437592/* Line 1806 of yacc.c  */
    7444 #line 1876 "parser.yy"
    7445     { (yyval.tclass) = DeclarationNode::Otype; }
     7593#line 1867 "parser.yy"
     7594    { (yyval.tclass) = DeclarationNode::Dtype; }
    74467595    break;
    74477596
     
    74497598
    74507599/* Line 1806 of yacc.c  */
    7451 #line 1878 "parser.yy"
    7452     { (yyval.tclass) = DeclarationNode::Ftype; }
     7600#line 1872 "parser.yy"
     7601    { (yyval.decl) = 0; }
    74537602    break;
    74547603
     
    74567605
    74577606/* Line 1806 of yacc.c  */
    7458 #line 1880 "parser.yy"
    7459     { (yyval.tclass) = DeclarationNode::Dtype; }
     7607#line 1874 "parser.yy"
     7608    { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    74607609    break;
    74617610
     
    74637612
    74647613/* Line 1806 of yacc.c  */
    7465 #line 1885 "parser.yy"
    7466     { (yyval.decl) = 0; }
    7467     break;
    7468 
    7469   case 494:
    7470 
    7471 /* Line 1806 of yacc.c  */
    7472 #line 1887 "parser.yy"
    7473     { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }
    7474     break;
    7475 
    7476   case 495:
    7477 
    7478 /* Line 1806 of yacc.c  */
    7479 #line 1892 "parser.yy"
     7614#line 1879 "parser.yy"
    74807615    {
    74817616                        typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) );
     
    74847619    break;
    74857620
     7621  case 494:
     7622
     7623/* Line 1806 of yacc.c  */
     7624#line 1884 "parser.yy"
     7625    { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
     7626    break;
     7627
     7628  case 495:
     7629
     7630/* Line 1806 of yacc.c  */
     7631#line 1886 "parser.yy"
     7632    { (yyval.decl) = 0; }
     7633    break;
     7634
    74867635  case 496:
    74877636
    74887637/* Line 1806 of yacc.c  */
    7489 #line 1897 "parser.yy"
    7490     { (yyval.decl) = (yyvsp[(4) - (5)].decl); }
    7491     break;
    7492 
    7493   case 497:
    7494 
    7495 /* Line 1806 of yacc.c  */
    7496 #line 1899 "parser.yy"
    7497     { (yyval.decl) = 0; }
     7638#line 1891 "parser.yy"
     7639    { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
    74987640    break;
    74997641
     
    75017643
    75027644/* Line 1806 of yacc.c  */
    7503 #line 1904 "parser.yy"
    7504     { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); }
     7645#line 1894 "parser.yy"
     7646    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7647    break;
     7648
     7649  case 499:
     7650
     7651/* Line 1806 of yacc.c  */
     7652#line 1896 "parser.yy"
     7653    { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
    75057654    break;
    75067655
     
    75087657
    75097658/* Line 1806 of yacc.c  */
    7510 #line 1907 "parser.yy"
    7511     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); }
     7659#line 1901 "parser.yy"
     7660    { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
    75127661    break;
    75137662
     
    75157664
    75167665/* Line 1806 of yacc.c  */
    7517 #line 1909 "parser.yy"
    7518     { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); }
     7666#line 1903 "parser.yy"
     7667    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
    75197668    break;
    75207669
     
    75227671
    75237672/* Line 1806 of yacc.c  */
    7524 #line 1914 "parser.yy"
    7525     { (yyval.decl) = (yyvsp[(2) - (2)].decl); }
     7673#line 1905 "parser.yy"
     7674    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
    75267675    break;
    75277676
     
    75297678
    75307679/* Line 1806 of yacc.c  */
    7531 #line 1916 "parser.yy"
    7532     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); }
     7680#line 1910 "parser.yy"
     7681    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    75337682    break;
    75347683
     
    75367685
    75377686/* Line 1806 of yacc.c  */
    7538 #line 1918 "parser.yy"
    7539     { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); }
     7687#line 1912 "parser.yy"
     7688    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    75407689    break;
    75417690
     
    75437692
    75447693/* Line 1806 of yacc.c  */
    7545 #line 1923 "parser.yy"
    7546     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); }
    7547     break;
    7548 
    7549   case 506:
    7550 
    7551 /* Line 1806 of yacc.c  */
    7552 #line 1925 "parser.yy"
    7553     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); }
    7554     break;
    7555 
    7556   case 507:
    7557 
    7558 /* Line 1806 of yacc.c  */
    7559 #line 1930 "parser.yy"
     7694#line 1917 "parser.yy"
    75607695    {
    75617696                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD );
     
    75647699    break;
    75657700
    7566   case 508:
    7567 
    7568 /* Line 1806 of yacc.c  */
    7569 #line 1935 "parser.yy"
     7701  case 506:
     7702
     7703/* Line 1806 of yacc.c  */
     7704#line 1922 "parser.yy"
    75707705    {
    75717706                        typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG );
     
    75747709    break;
    75757710
    7576   case 509:
    7577 
    7578 /* Line 1806 of yacc.c  */
    7579 #line 1943 "parser.yy"
     7711  case 507:
     7712
     7713/* Line 1806 of yacc.c  */
     7714#line 1930 "parser.yy"
    75807715    {
    75817716                        typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID );
     
    75847719    break;
    75857720
    7586   case 510:
    7587 
    7588 /* Line 1806 of yacc.c  */
    7589 #line 1948 "parser.yy"
     7721  case 508:
     7722
     7723/* Line 1806 of yacc.c  */
     7724#line 1935 "parser.yy"
    75907725    {
    75917726                        typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) );
     
    75947729    break;
    75957730
    7596   case 511:
    7597 
    7598 /* Line 1806 of yacc.c  */
    7599 #line 1953 "parser.yy"
     7731  case 509:
     7732
     7733/* Line 1806 of yacc.c  */
     7734#line 1940 "parser.yy"
    76007735    {
    76017736                        typedefTable.leaveTrait();
     
    76057740    break;
    76067741
    7607   case 513:
    7608 
    7609 /* Line 1806 of yacc.c  */
    7610 #line 1963 "parser.yy"
     7742  case 511:
     7743
     7744/* Line 1806 of yacc.c  */
     7745#line 1950 "parser.yy"
    76117746    { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); }
    76127747    break;
    76137748
    7614   case 516:
    7615 
    7616 /* Line 1806 of yacc.c  */
    7617 #line 1973 "parser.yy"
     7749  case 514:
     7750
     7751/* Line 1806 of yacc.c  */
     7752#line 1960 "parser.yy"
    76187753    {
    76197754                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76227757    break;
    76237758
    7624   case 517:
    7625 
    7626 /* Line 1806 of yacc.c  */
    7627 #line 1978 "parser.yy"
     7759  case 515:
     7760
     7761/* Line 1806 of yacc.c  */
     7762#line 1965 "parser.yy"
    76287763    {
    76297764                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76327767    break;
    76337768
    7634   case 518:
    7635 
    7636 /* Line 1806 of yacc.c  */
    7637 #line 1983 "parser.yy"
     7769  case 516:
     7770
     7771/* Line 1806 of yacc.c  */
     7772#line 1970 "parser.yy"
    76387773    {
    76397774                        typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID );
     
    76427777    break;
    76437778
    7644   case 519:
    7645 
    7646 /* Line 1806 of yacc.c  */
    7647 #line 1991 "parser.yy"
     7779  case 517:
     7780
     7781/* Line 1806 of yacc.c  */
     7782#line 1978 "parser.yy"
    76487783    {
    76497784                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76527787    break;
    76537788
    7654   case 520:
    7655 
    7656 /* Line 1806 of yacc.c  */
    7657 #line 1996 "parser.yy"
     7789  case 518:
     7790
     7791/* Line 1806 of yacc.c  */
     7792#line 1983 "parser.yy"
    76587793    {
    76597794                        typedefTable.addToEnclosingScope2( TypedefTable::ID );
     
    76627797    break;
    76637798
    7664   case 521:
     7799  case 519:
     7800
     7801/* Line 1806 of yacc.c  */
     7802#line 1993 "parser.yy"
     7803    {}
     7804    break;
     7805
     7806  case 520:
     7807
     7808/* Line 1806 of yacc.c  */
     7809#line 1995 "parser.yy"
     7810    { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
     7811    break;
     7812
     7813  case 522:
     7814
     7815/* Line 1806 of yacc.c  */
     7816#line 2001 "parser.yy"
     7817    { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
     7818    break;
     7819
     7820  case 523:
    76657821
    76667822/* Line 1806 of yacc.c  */
    76677823#line 2006 "parser.yy"
     7824    { (yyval.decl) = 0; }
     7825    break;
     7826
     7827  case 527:
     7828
     7829/* Line 1806 of yacc.c  */
     7830#line 2014 "parser.yy"
    76687831    {}
    76697832    break;
    76707833
    7671   case 522:
    7672 
    7673 /* Line 1806 of yacc.c  */
    7674 #line 2008 "parser.yy"
    7675     { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl);    }
    7676     break;
    7677 
    7678   case 524:
    7679 
    7680 /* Line 1806 of yacc.c  */
    7681 #line 2014 "parser.yy"
    7682     { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); }
    7683     break;
    7684 
    7685   case 525:
    7686 
    7687 /* Line 1806 of yacc.c  */
    7688 #line 2019 "parser.yy"
    7689     { (yyval.decl) = 0; }
    7690     break;
    7691 
    7692   case 529:
    7693 
    7694 /* Line 1806 of yacc.c  */
    7695 #line 2027 "parser.yy"
    7696     {}
    7697     break;
    7698 
    7699   case 530:
    7700 
    7701 /* Line 1806 of yacc.c  */
    7702 #line 2029 "parser.yy"
     7834  case 528:
     7835
     7836/* Line 1806 of yacc.c  */
     7837#line 2016 "parser.yy"
    77037838    {
    77047839                        linkageStack.push( linkage );                           // handle nested extern "C"/"Cforall"
     
    77077842    break;
    77087843
    7709   case 531:
    7710 
    7711 /* Line 1806 of yacc.c  */
    7712 #line 2034 "parser.yy"
     7844  case 529:
     7845
     7846/* Line 1806 of yacc.c  */
     7847#line 2021 "parser.yy"
    77137848    {
    77147849                        linkage = linkageStack.top();
     
    77187853    break;
    77197854
    7720   case 532:
    7721 
    7722 /* Line 1806 of yacc.c  */
    7723 #line 2040 "parser.yy"
     7855  case 530:
     7856
     7857/* Line 1806 of yacc.c  */
     7858#line 2027 "parser.yy"
    77247859    {   // mark all fields in list
    77257860                        for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() )
     
    77297864    break;
    77307865
    7731   case 534:
    7732 
    7733 /* Line 1806 of yacc.c  */
    7734 #line 2055 "parser.yy"
     7866  case 532:
     7867
     7868/* Line 1806 of yacc.c  */
     7869#line 2042 "parser.yy"
    77357870    {
    77367871                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77407875    break;
    77417876
    7742   case 535:
    7743 
    7744 /* Line 1806 of yacc.c  */
    7745 #line 2061 "parser.yy"
     7877  case 533:
     7878
     7879/* Line 1806 of yacc.c  */
     7880#line 2048 "parser.yy"
    77467881    {
    77477882                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77517886    break;
    77527887
    7753   case 536:
    7754 
    7755 /* Line 1806 of yacc.c  */
    7756 #line 2070 "parser.yy"
     7888  case 534:
     7889
     7890/* Line 1806 of yacc.c  */
     7891#line 2057 "parser.yy"
    77577892    {
    77587893                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77627897    break;
    77637898
    7764   case 537:
    7765 
    7766 /* Line 1806 of yacc.c  */
    7767 #line 2076 "parser.yy"
     7899  case 535:
     7900
     7901/* Line 1806 of yacc.c  */
     7902#line 2063 "parser.yy"
    77687903    {
    77697904                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77737908    break;
    77747909
    7775   case 538:
    7776 
    7777 /* Line 1806 of yacc.c  */
    7778 #line 2082 "parser.yy"
     7910  case 536:
     7911
     7912/* Line 1806 of yacc.c  */
     7913#line 2069 "parser.yy"
    77797914    {
    77807915                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77847919    break;
    77857920
    7786   case 539:
    7787 
    7788 /* Line 1806 of yacc.c  */
    7789 #line 2088 "parser.yy"
     7921  case 537:
     7922
     7923/* Line 1806 of yacc.c  */
     7924#line 2075 "parser.yy"
    77907925    {
    77917926                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    77957930    break;
    77967931
    7797   case 540:
    7798 
    7799 /* Line 1806 of yacc.c  */
    7800 #line 2094 "parser.yy"
     7932  case 538:
     7933
     7934/* Line 1806 of yacc.c  */
     7935#line 2081 "parser.yy"
    78017936    {
    78027937                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78067941    break;
    78077942
    7808   case 541:
    7809 
    7810 /* Line 1806 of yacc.c  */
    7811 #line 2102 "parser.yy"
     7943  case 539:
     7944
     7945/* Line 1806 of yacc.c  */
     7946#line 2089 "parser.yy"
    78127947    {
    78137948                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78177952    break;
    78187953
    7819   case 542:
    7820 
    7821 /* Line 1806 of yacc.c  */
    7822 #line 2108 "parser.yy"
     7954  case 540:
     7955
     7956/* Line 1806 of yacc.c  */
     7957#line 2095 "parser.yy"
    78237958    {
    78247959                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78287963    break;
    78297964
    7830   case 543:
    7831 
    7832 /* Line 1806 of yacc.c  */
    7833 #line 2116 "parser.yy"
     7965  case 541:
     7966
     7967/* Line 1806 of yacc.c  */
     7968#line 2103 "parser.yy"
    78347969    {
    78357970                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78397974    break;
    78407975
    7841   case 544:
    7842 
    7843 /* Line 1806 of yacc.c  */
    7844 #line 2122 "parser.yy"
     7976  case 542:
     7977
     7978/* Line 1806 of yacc.c  */
     7979#line 2109 "parser.yy"
    78457980    {
    78467981                        typedefTable.addToEnclosingScope( TypedefTable::ID );
     
    78507985    break;
    78517986
     7987  case 546:
     7988
     7989/* Line 1806 of yacc.c  */
     7990#line 2124 "parser.yy"
     7991    { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
     7992    break;
     7993
    78527994  case 548:
    78537995
    78547996/* Line 1806 of yacc.c  */
    7855 #line 2137 "parser.yy"
    7856     { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); }
    7857     break;
    7858 
    7859   case 550:
    7860 
    7861 /* Line 1806 of yacc.c  */
    7862 #line 2142 "parser.yy"
     7997#line 2129 "parser.yy"
    78637998    { delete (yyvsp[(3) - (5)].str); }
    78647999    break;
    78658000
    7866   case 551:
     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:
    78678016
    78688017/* Line 1806 of yacc.c  */
     
    78718020    break;
    78728021
    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; }
     8022  case 558:
     8023
     8024/* Line 1806 of yacc.c  */
     8025#line 2158 "parser.yy"
     8026    { delete (yyvsp[(3) - (4)].en); }
     8027    break;
     8028
     8029  case 559:
     8030
     8031/* Line 1806 of yacc.c  */
     8032#line 2162 "parser.yy"
     8033    { delete (yyvsp[(1) - (1)].tok); }
    78858034    break;
    78868035
     
    78888037
    78898038/* Line 1806 of yacc.c  */
    7890 #line 2171 "parser.yy"
    7891     { delete (yyvsp[(3) - (4)].en); }
     8039#line 2163 "parser.yy"
     8040    { delete (yyvsp[(1) - (1)].decl); }
    78928041    break;
    78938042
     
    78958044
    78968045/* Line 1806 of yacc.c  */
    7897 #line 2175 "parser.yy"
    7898     { delete (yyvsp[(1) - (1)].tok); }
     8046#line 2164 "parser.yy"
     8047    { delete (yyvsp[(1) - (1)].decl); }
    78998048    break;
    79008049
     
    79028051
    79038052/* Line 1806 of yacc.c  */
    7904 #line 2176 "parser.yy"
     8053#line 2165 "parser.yy"
    79058054    { delete (yyvsp[(1) - (1)].decl); }
    79068055    break;
     
    79098058
    79108059/* Line 1806 of yacc.c  */
    7911 #line 2177 "parser.yy"
    7912     { delete (yyvsp[(1) - (1)].decl); }
    7913     break;
    7914 
    7915   case 564:
    7916 
    7917 /* Line 1806 of yacc.c  */
    7918 #line 2178 "parser.yy"
    7919     { delete (yyvsp[(1) - (1)].decl); }
     8060#line 2200 "parser.yy"
     8061    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79208062    break;
    79218063
     
    79238065
    79248066/* Line 1806 of yacc.c  */
    7925 #line 2213 "parser.yy"
     8067#line 2203 "parser.yy"
    79268068    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    79278069    break;
    79288070
     8071  case 566:
     8072
     8073/* Line 1806 of yacc.c  */
     8074#line 2205 "parser.yy"
     8075    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8076    break;
     8077
    79298078  case 567:
    79308079
    79318080/* Line 1806 of yacc.c  */
    7932 #line 2216 "parser.yy"
    7933     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7934     break;
    7935 
    7936   case 568:
    7937 
    7938 /* Line 1806 of yacc.c  */
    7939 #line 2218 "parser.yy"
    7940     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    7941     break;
    7942 
    7943   case 569:
    7944 
    7945 /* Line 1806 of yacc.c  */
    7946 #line 2223 "parser.yy"
     8081#line 2210 "parser.yy"
    79478082    {
    79488083                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    79518086    break;
    79528087
     8088  case 568:
     8089
     8090/* Line 1806 of yacc.c  */
     8091#line 2215 "parser.yy"
     8092    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8093    break;
     8094
     8095  case 569:
     8096
     8097/* Line 1806 of yacc.c  */
     8098#line 2220 "parser.yy"
     8099    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8100    break;
     8101
    79538102  case 570:
    79548103
    79558104/* Line 1806 of yacc.c  */
    7956 #line 2228 "parser.yy"
     8105#line 2222 "parser.yy"
     8106    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8107    break;
     8108
     8109  case 571:
     8110
     8111/* Line 1806 of yacc.c  */
     8112#line 2224 "parser.yy"
    79578113    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79588114    break;
    79598115
    7960   case 571:
     8116  case 572:
     8117
     8118/* Line 1806 of yacc.c  */
     8119#line 2229 "parser.yy"
     8120    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8121    break;
     8122
     8123  case 573:
     8124
     8125/* Line 1806 of yacc.c  */
     8126#line 2231 "parser.yy"
     8127    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8128    break;
     8129
     8130  case 574:
    79618131
    79628132/* Line 1806 of yacc.c  */
    79638133#line 2233 "parser.yy"
     8134    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8135    break;
     8136
     8137  case 575:
     8138
     8139/* Line 1806 of yacc.c  */
     8140#line 2235 "parser.yy"
     8141    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8142    break;
     8143
     8144  case 576:
     8145
     8146/* Line 1806 of yacc.c  */
     8147#line 2240 "parser.yy"
     8148    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8149    break;
     8150
     8151  case 577:
     8152
     8153/* Line 1806 of yacc.c  */
     8154#line 2242 "parser.yy"
     8155    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8156    break;
     8157
     8158  case 578:
     8159
     8160/* Line 1806 of yacc.c  */
     8161#line 2251 "parser.yy"
     8162    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8163    break;
     8164
     8165  case 580:
     8166
     8167/* Line 1806 of yacc.c  */
     8168#line 2254 "parser.yy"
     8169    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8170    break;
     8171
     8172  case 581:
     8173
     8174/* Line 1806 of yacc.c  */
     8175#line 2259 "parser.yy"
     8176    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8177    break;
     8178
     8179  case 582:
     8180
     8181/* Line 1806 of yacc.c  */
     8182#line 2261 "parser.yy"
     8183    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8184    break;
     8185
     8186  case 583:
     8187
     8188/* Line 1806 of yacc.c  */
     8189#line 2263 "parser.yy"
     8190    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8191    break;
     8192
     8193  case 584:
     8194
     8195/* Line 1806 of yacc.c  */
     8196#line 2268 "parser.yy"
    79648197    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    79658198    break;
    79668199
    7967   case 572:
    7968 
    7969 /* Line 1806 of yacc.c  */
    7970 #line 2235 "parser.yy"
     8200  case 585:
     8201
     8202/* Line 1806 of yacc.c  */
     8203#line 2270 "parser.yy"
    79718204    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    79728205    break;
    79738206
    7974   case 573:
    7975 
    7976 /* Line 1806 of yacc.c  */
    7977 #line 2237 "parser.yy"
     8207  case 586:
     8208
     8209/* Line 1806 of yacc.c  */
     8210#line 2272 "parser.yy"
    79788211    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    79798212    break;
    79808213
    7981   case 574:
    7982 
    7983 /* Line 1806 of yacc.c  */
    7984 #line 2242 "parser.yy"
     8214  case 587:
     8215
     8216/* Line 1806 of yacc.c  */
     8217#line 2277 "parser.yy"
     8218    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8219    break;
     8220
     8221  case 588:
     8222
     8223/* Line 1806 of yacc.c  */
     8224#line 2279 "parser.yy"
     8225    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8226    break;
     8227
     8228  case 589:
     8229
     8230/* Line 1806 of yacc.c  */
     8231#line 2281 "parser.yy"
     8232    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8233    break;
     8234
     8235  case 593:
     8236
     8237/* Line 1806 of yacc.c  */
     8238#line 2296 "parser.yy"
     8239    { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     8240    break;
     8241
     8242  case 594:
     8243
     8244/* Line 1806 of yacc.c  */
     8245#line 2298 "parser.yy"
     8246    { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     8247    break;
     8248
     8249  case 595:
     8250
     8251/* Line 1806 of yacc.c  */
     8252#line 2300 "parser.yy"
     8253    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8254    break;
     8255
     8256  case 596:
     8257
     8258/* Line 1806 of yacc.c  */
     8259#line 2305 "parser.yy"
     8260    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8261    break;
     8262
     8263  case 597:
     8264
     8265/* Line 1806 of yacc.c  */
     8266#line 2307 "parser.yy"
     8267    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8268    break;
     8269
     8270  case 598:
     8271
     8272/* Line 1806 of yacc.c  */
     8273#line 2309 "parser.yy"
     8274    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8275    break;
     8276
     8277  case 599:
     8278
     8279/* Line 1806 of yacc.c  */
     8280#line 2314 "parser.yy"
     8281    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8282    break;
     8283
     8284  case 600:
     8285
     8286/* Line 1806 of yacc.c  */
     8287#line 2316 "parser.yy"
     8288    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8289    break;
     8290
     8291  case 601:
     8292
     8293/* Line 1806 of yacc.c  */
     8294#line 2318 "parser.yy"
     8295    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8296    break;
     8297
     8298  case 602:
     8299
     8300/* Line 1806 of yacc.c  */
     8301#line 2333 "parser.yy"
     8302    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8303    break;
     8304
     8305  case 604:
     8306
     8307/* Line 1806 of yacc.c  */
     8308#line 2336 "parser.yy"
     8309    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8310    break;
     8311
     8312  case 605:
     8313
     8314/* Line 1806 of yacc.c  */
     8315#line 2338 "parser.yy"
     8316    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8317    break;
     8318
     8319  case 607:
     8320
     8321/* Line 1806 of yacc.c  */
     8322#line 2344 "parser.yy"
     8323    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8324    break;
     8325
     8326  case 608:
     8327
     8328/* Line 1806 of yacc.c  */
     8329#line 2349 "parser.yy"
     8330    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8331    break;
     8332
     8333  case 609:
     8334
     8335/* Line 1806 of yacc.c  */
     8336#line 2351 "parser.yy"
     8337    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8338    break;
     8339
     8340  case 610:
     8341
     8342/* Line 1806 of yacc.c  */
     8343#line 2353 "parser.yy"
     8344    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8345    break;
     8346
     8347  case 611:
     8348
     8349/* Line 1806 of yacc.c  */
     8350#line 2358 "parser.yy"
    79858351    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    79868352    break;
    79878353
    7988   case 575:
    7989 
    7990 /* Line 1806 of yacc.c  */
    7991 #line 2244 "parser.yy"
     8354  case 612:
     8355
     8356/* Line 1806 of yacc.c  */
     8357#line 2360 "parser.yy"
    79928358    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    79938359    break;
    79948360
    7995   case 576:
    7996 
    7997 /* Line 1806 of yacc.c  */
    7998 #line 2246 "parser.yy"
     8361  case 613:
     8362
     8363/* Line 1806 of yacc.c  */
     8364#line 2362 "parser.yy"
    79998365    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    80008366    break;
    80018367
    8002   case 577:
    8003 
    8004 /* Line 1806 of yacc.c  */
    8005 #line 2248 "parser.yy"
     8368  case 614:
     8369
     8370/* Line 1806 of yacc.c  */
     8371#line 2364 "parser.yy"
    80068372    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80078373    break;
    80088374
    8009   case 578:
    8010 
    8011 /* Line 1806 of yacc.c  */
    8012 #line 2253 "parser.yy"
     8375  case 615:
     8376
     8377/* Line 1806 of yacc.c  */
     8378#line 2369 "parser.yy"
     8379    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8380    break;
     8381
     8382  case 616:
     8383
     8384/* Line 1806 of yacc.c  */
     8385#line 2371 "parser.yy"
    80138386    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80148387    break;
    80158388
    8016   case 579:
    8017 
    8018 /* Line 1806 of yacc.c  */
    8019 #line 2255 "parser.yy"
     8389  case 617:
     8390
     8391/* Line 1806 of yacc.c  */
     8392#line 2373 "parser.yy"
    80208393    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80218394    break;
    80228395
    8023   case 580:
    8024 
    8025 /* Line 1806 of yacc.c  */
    8026 #line 2264 "parser.yy"
     8396  case 618:
     8397
     8398/* Line 1806 of yacc.c  */
     8399#line 2383 "parser.yy"
    80278400    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80288401    break;
    80298402
    8030   case 582:
    8031 
    8032 /* Line 1806 of yacc.c  */
    8033 #line 2267 "parser.yy"
     8403  case 620:
     8404
     8405/* Line 1806 of yacc.c  */
     8406#line 2386 "parser.yy"
    80348407    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    80358408    break;
    80368409
    8037   case 583:
    8038 
    8039 /* Line 1806 of yacc.c  */
    8040 #line 2272 "parser.yy"
     8410  case 621:
     8411
     8412/* Line 1806 of yacc.c  */
     8413#line 2388 "parser.yy"
     8414    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8415    break;
     8416
     8417  case 622:
     8418
     8419/* Line 1806 of yacc.c  */
     8420#line 2393 "parser.yy"
     8421    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8422    break;
     8423
     8424  case 623:
     8425
     8426/* Line 1806 of yacc.c  */
     8427#line 2395 "parser.yy"
     8428    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8429    break;
     8430
     8431  case 624:
     8432
     8433/* Line 1806 of yacc.c  */
     8434#line 2397 "parser.yy"
     8435    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8436    break;
     8437
     8438  case 625:
     8439
     8440/* Line 1806 of yacc.c  */
     8441#line 2402 "parser.yy"
     8442    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8443    break;
     8444
     8445  case 626:
     8446
     8447/* Line 1806 of yacc.c  */
     8448#line 2404 "parser.yy"
     8449    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8450    break;
     8451
     8452  case 627:
     8453
     8454/* Line 1806 of yacc.c  */
     8455#line 2406 "parser.yy"
     8456    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8457    break;
     8458
     8459  case 628:
     8460
     8461/* Line 1806 of yacc.c  */
     8462#line 2408 "parser.yy"
     8463    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8464    break;
     8465
     8466  case 629:
     8467
     8468/* Line 1806 of yacc.c  */
     8469#line 2413 "parser.yy"
    80418470    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    80428471    break;
    80438472
    8044   case 584:
    8045 
    8046 /* Line 1806 of yacc.c  */
    8047 #line 2274 "parser.yy"
     8473  case 630:
     8474
     8475/* Line 1806 of yacc.c  */
     8476#line 2415 "parser.yy"
    80488477    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    80498478    break;
    80508479
    8051   case 585:
    8052 
    8053 /* Line 1806 of yacc.c  */
    8054 #line 2276 "parser.yy"
     8480  case 631:
     8481
     8482/* Line 1806 of yacc.c  */
     8483#line 2417 "parser.yy"
    80558484    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    80568485    break;
    80578486
    8058   case 586:
    8059 
    8060 /* Line 1806 of yacc.c  */
    8061 #line 2281 "parser.yy"
    8062     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8063     break;
    8064 
    8065   case 587:
    8066 
    8067 /* Line 1806 of yacc.c  */
    8068 #line 2283 "parser.yy"
    8069     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8070     break;
    8071 
    8072   case 588:
    8073 
    8074 /* Line 1806 of yacc.c  */
    8075 #line 2285 "parser.yy"
    8076     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8077     break;
    8078 
    8079   case 589:
    8080 
    8081 /* Line 1806 of yacc.c  */
    8082 #line 2290 "parser.yy"
    8083     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8084     break;
    8085 
    8086   case 590:
    8087 
    8088 /* Line 1806 of yacc.c  */
    8089 #line 2292 "parser.yy"
    8090     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8091     break;
    8092 
    8093   case 591:
    8094 
    8095 /* Line 1806 of yacc.c  */
    8096 #line 2294 "parser.yy"
    8097     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8098     break;
    8099 
    8100   case 595:
    8101 
    8102 /* Line 1806 of yacc.c  */
    8103 #line 2309 "parser.yy"
    8104     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
    8105     break;
    8106 
    8107   case 596:
    8108 
    8109 /* Line 1806 of yacc.c  */
    8110 #line 2311 "parser.yy"
    8111     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
    8112     break;
    8113 
    8114   case 597:
    8115 
    8116 /* Line 1806 of yacc.c  */
    8117 #line 2313 "parser.yy"
    8118     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8119     break;
    8120 
    8121   case 598:
    8122 
    8123 /* Line 1806 of yacc.c  */
    8124 #line 2318 "parser.yy"
    8125     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8126     break;
    8127 
    8128   case 599:
    8129 
    8130 /* Line 1806 of yacc.c  */
    8131 #line 2320 "parser.yy"
    8132     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8133     break;
    8134 
    8135   case 600:
    8136 
    8137 /* Line 1806 of yacc.c  */
    8138 #line 2322 "parser.yy"
    8139     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8140     break;
    8141 
    8142   case 601:
    8143 
    8144 /* Line 1806 of yacc.c  */
    8145 #line 2327 "parser.yy"
    8146     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8147     break;
    8148 
    8149   case 602:
    8150 
    8151 /* Line 1806 of yacc.c  */
    8152 #line 2329 "parser.yy"
    8153     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8154     break;
    8155 
    8156   case 603:
    8157 
    8158 /* Line 1806 of yacc.c  */
    8159 #line 2331 "parser.yy"
    8160     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8161     break;
    8162 
    8163   case 604:
    8164 
    8165 /* Line 1806 of yacc.c  */
    8166 #line 2346 "parser.yy"
     8487  case 632:
     8488
     8489/* Line 1806 of yacc.c  */
     8490#line 2448 "parser.yy"
    81678491    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81688492    break;
    81698493
    8170   case 606:
    8171 
    8172 /* Line 1806 of yacc.c  */
    8173 #line 2349 "parser.yy"
     8494  case 634:
     8495
     8496/* Line 1806 of yacc.c  */
     8497#line 2451 "parser.yy"
    81748498    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81758499    break;
    81768500
    8177   case 607:
    8178 
    8179 /* Line 1806 of yacc.c  */
    8180 #line 2351 "parser.yy"
     8501  case 635:
     8502
     8503/* Line 1806 of yacc.c  */
     8504#line 2453 "parser.yy"
    81818505    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    81828506    break;
    81838507
    8184   case 609:
    8185 
    8186 /* Line 1806 of yacc.c  */
    8187 #line 2357 "parser.yy"
    8188     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8189     break;
    8190 
    8191   case 610:
    8192 
    8193 /* Line 1806 of yacc.c  */
    8194 #line 2362 "parser.yy"
    8195     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8196     break;
    8197 
    8198   case 611:
    8199 
    8200 /* Line 1806 of yacc.c  */
    8201 #line 2364 "parser.yy"
    8202     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8203     break;
    8204 
    8205   case 612:
    8206 
    8207 /* Line 1806 of yacc.c  */
    8208 #line 2366 "parser.yy"
    8209     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8210     break;
    8211 
    8212   case 613:
    8213 
    8214 /* Line 1806 of yacc.c  */
    8215 #line 2371 "parser.yy"
    8216     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8217     break;
    8218 
    8219   case 614:
    8220 
    8221 /* Line 1806 of yacc.c  */
    8222 #line 2373 "parser.yy"
    8223     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8224     break;
    8225 
    8226   case 615:
    8227 
    8228 /* Line 1806 of yacc.c  */
    8229 #line 2375 "parser.yy"
    8230     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8231     break;
    8232 
    8233   case 616:
    8234 
    8235 /* Line 1806 of yacc.c  */
    8236 #line 2377 "parser.yy"
    8237     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8238     break;
    8239 
    8240   case 617:
    8241 
    8242 /* Line 1806 of yacc.c  */
    8243 #line 2382 "parser.yy"
    8244     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8245     break;
    8246 
    8247   case 618:
    8248 
    8249 /* Line 1806 of yacc.c  */
    8250 #line 2384 "parser.yy"
    8251     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8252     break;
    8253 
    8254   case 619:
    8255 
    8256 /* Line 1806 of yacc.c  */
    8257 #line 2386 "parser.yy"
    8258     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8259     break;
    8260 
    8261   case 620:
    8262 
    8263 /* Line 1806 of yacc.c  */
    8264 #line 2396 "parser.yy"
    8265     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8266     break;
    8267 
    8268   case 622:
    8269 
    8270 /* Line 1806 of yacc.c  */
    8271 #line 2399 "parser.yy"
    8272     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8273     break;
    8274 
    8275   case 623:
    8276 
    8277 /* Line 1806 of yacc.c  */
    8278 #line 2401 "parser.yy"
    8279     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8280     break;
    8281 
    8282   case 624:
    8283 
    8284 /* Line 1806 of yacc.c  */
    8285 #line 2406 "parser.yy"
    8286     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8287     break;
    8288 
    8289   case 625:
    8290 
    8291 /* Line 1806 of yacc.c  */
    8292 #line 2408 "parser.yy"
    8293     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8294     break;
    8295 
    8296   case 626:
    8297 
    8298 /* Line 1806 of yacc.c  */
    8299 #line 2410 "parser.yy"
    8300     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8301     break;
    8302 
    8303   case 627:
    8304 
    8305 /* Line 1806 of yacc.c  */
    8306 #line 2415 "parser.yy"
    8307     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8308     break;
    8309 
    8310   case 628:
    8311 
    8312 /* Line 1806 of yacc.c  */
    8313 #line 2417 "parser.yy"
    8314     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8315     break;
    8316 
    8317   case 629:
    8318 
    8319 /* Line 1806 of yacc.c  */
    8320 #line 2419 "parser.yy"
    8321     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8322     break;
    8323 
    8324   case 630:
    8325 
    8326 /* Line 1806 of yacc.c  */
    8327 #line 2421 "parser.yy"
    8328     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8329     break;
    8330 
    8331   case 631:
    8332 
    8333 /* Line 1806 of yacc.c  */
    8334 #line 2426 "parser.yy"
    8335     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8336     break;
    8337 
    8338   case 632:
    8339 
    8340 /* Line 1806 of yacc.c  */
    8341 #line 2428 "parser.yy"
    8342     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8343     break;
    8344 
    8345   case 633:
    8346 
    8347 /* Line 1806 of yacc.c  */
    8348 #line 2430 "parser.yy"
    8349     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8350     break;
    8351 
    8352   case 634:
    8353 
    8354 /* Line 1806 of yacc.c  */
    8355 #line 2461 "parser.yy"
    8356     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8357     break;
    8358 
    83598508  case 636:
    83608509
    83618510/* Line 1806 of yacc.c  */
    8362 #line 2464 "parser.yy"
    8363     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8364     break;
    8365 
    8366   case 637:
    8367 
    8368 /* Line 1806 of yacc.c  */
    8369 #line 2466 "parser.yy"
    8370     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8371     break;
    8372 
    8373   case 638:
    8374 
    8375 /* Line 1806 of yacc.c  */
    8376 #line 2471 "parser.yy"
     8511#line 2458 "parser.yy"
    83778512    {
    83788513                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83818516    break;
    83828517
    8383   case 639:
    8384 
    8385 /* Line 1806 of yacc.c  */
    8386 #line 2476 "parser.yy"
     8518  case 637:
     8519
     8520/* Line 1806 of yacc.c  */
     8521#line 2463 "parser.yy"
    83878522    {
    83888523                        typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
     
    83918526    break;
    83928527
     8528  case 638:
     8529
     8530/* Line 1806 of yacc.c  */
     8531#line 2471 "parser.yy"
     8532    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8533    break;
     8534
     8535  case 639:
     8536
     8537/* Line 1806 of yacc.c  */
     8538#line 2473 "parser.yy"
     8539    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8540    break;
     8541
    83938542  case 640:
    83948543
    83958544/* Line 1806 of yacc.c  */
    8396 #line 2484 "parser.yy"
     8545#line 2475 "parser.yy"
     8546    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8547    break;
     8548
     8549  case 641:
     8550
     8551/* Line 1806 of yacc.c  */
     8552#line 2480 "parser.yy"
     8553    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     8554    break;
     8555
     8556  case 642:
     8557
     8558/* Line 1806 of yacc.c  */
     8559#line 2482 "parser.yy"
     8560    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8561    break;
     8562
     8563  case 643:
     8564
     8565/* Line 1806 of yacc.c  */
     8566#line 2487 "parser.yy"
     8567    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     8568    break;
     8569
     8570  case 644:
     8571
     8572/* Line 1806 of yacc.c  */
     8573#line 2489 "parser.yy"
     8574    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8575    break;
     8576
     8577  case 646:
     8578
     8579/* Line 1806 of yacc.c  */
     8580#line 2504 "parser.yy"
     8581    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8582    break;
     8583
     8584  case 647:
     8585
     8586/* Line 1806 of yacc.c  */
     8587#line 2506 "parser.yy"
     8588    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8589    break;
     8590
     8591  case 648:
     8592
     8593/* Line 1806 of yacc.c  */
     8594#line 2511 "parser.yy"
     8595    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8596    break;
     8597
     8598  case 649:
     8599
     8600/* Line 1806 of yacc.c  */
     8601#line 2513 "parser.yy"
     8602    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8603    break;
     8604
     8605  case 650:
     8606
     8607/* Line 1806 of yacc.c  */
     8608#line 2515 "parser.yy"
    83978609    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    83988610    break;
    83998611
    8400   case 641:
    8401 
    8402 /* Line 1806 of yacc.c  */
    8403 #line 2486 "parser.yy"
     8612  case 651:
     8613
     8614/* Line 1806 of yacc.c  */
     8615#line 2517 "parser.yy"
    84048616    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    84058617    break;
    84068618
    8407   case 642:
    8408 
    8409 /* Line 1806 of yacc.c  */
    8410 #line 2488 "parser.yy"
     8619  case 652:
     8620
     8621/* Line 1806 of yacc.c  */
     8622#line 2519 "parser.yy"
    84118623    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84128624    break;
    84138625
    8414   case 643:
    8415 
    8416 /* Line 1806 of yacc.c  */
    8417 #line 2493 "parser.yy"
     8626  case 654:
     8627
     8628/* Line 1806 of yacc.c  */
     8629#line 2525 "parser.yy"
     8630    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8631    break;
     8632
     8633  case 655:
     8634
     8635/* Line 1806 of yacc.c  */
     8636#line 2527 "parser.yy"
     8637    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8638    break;
     8639
     8640  case 656:
     8641
     8642/* Line 1806 of yacc.c  */
     8643#line 2529 "parser.yy"
     8644    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8645    break;
     8646
     8647  case 657:
     8648
     8649/* Line 1806 of yacc.c  */
     8650#line 2534 "parser.yy"
     8651    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8652    break;
     8653
     8654  case 658:
     8655
     8656/* Line 1806 of yacc.c  */
     8657#line 2536 "parser.yy"
     8658    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8659    break;
     8660
     8661  case 659:
     8662
     8663/* Line 1806 of yacc.c  */
     8664#line 2538 "parser.yy"
     8665    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8666    break;
     8667
     8668  case 660:
     8669
     8670/* Line 1806 of yacc.c  */
     8671#line 2544 "parser.yy"
     8672    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8673    break;
     8674
     8675  case 661:
     8676
     8677/* Line 1806 of yacc.c  */
     8678#line 2546 "parser.yy"
     8679    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     8680    break;
     8681
     8682  case 663:
     8683
     8684/* Line 1806 of yacc.c  */
     8685#line 2552 "parser.yy"
     8686    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     8687    break;
     8688
     8689  case 664:
     8690
     8691/* Line 1806 of yacc.c  */
     8692#line 2554 "parser.yy"
     8693    { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     8694    break;
     8695
     8696  case 665:
     8697
     8698/* Line 1806 of yacc.c  */
     8699#line 2556 "parser.yy"
     8700    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     8701    break;
     8702
     8703  case 666:
     8704
     8705/* Line 1806 of yacc.c  */
     8706#line 2558 "parser.yy"
     8707    { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     8708    break;
     8709
     8710  case 668:
     8711
     8712/* Line 1806 of yacc.c  */
     8713#line 2573 "parser.yy"
     8714    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8715    break;
     8716
     8717  case 669:
     8718
     8719/* Line 1806 of yacc.c  */
     8720#line 2575 "parser.yy"
     8721    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8722    break;
     8723
     8724  case 670:
     8725
     8726/* Line 1806 of yacc.c  */
     8727#line 2580 "parser.yy"
     8728    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8729    break;
     8730
     8731  case 671:
     8732
     8733/* Line 1806 of yacc.c  */
     8734#line 2582 "parser.yy"
     8735    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8736    break;
     8737
     8738  case 672:
     8739
     8740/* Line 1806 of yacc.c  */
     8741#line 2584 "parser.yy"
     8742    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8743    break;
     8744
     8745  case 673:
     8746
     8747/* Line 1806 of yacc.c  */
     8748#line 2586 "parser.yy"
     8749    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8750    break;
     8751
     8752  case 674:
     8753
     8754/* Line 1806 of yacc.c  */
     8755#line 2588 "parser.yy"
     8756    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8757    break;
     8758
     8759  case 676:
     8760
     8761/* Line 1806 of yacc.c  */
     8762#line 2594 "parser.yy"
     8763    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8764    break;
     8765
     8766  case 677:
     8767
     8768/* Line 1806 of yacc.c  */
     8769#line 2596 "parser.yy"
     8770    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8771    break;
     8772
     8773  case 678:
     8774
     8775/* Line 1806 of yacc.c  */
     8776#line 2598 "parser.yy"
     8777    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8778    break;
     8779
     8780  case 679:
     8781
     8782/* Line 1806 of yacc.c  */
     8783#line 2603 "parser.yy"
     8784    { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
     8785    break;
     8786
     8787  case 680:
     8788
     8789/* Line 1806 of yacc.c  */
     8790#line 2605 "parser.yy"
     8791    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     8792    break;
     8793
     8794  case 681:
     8795
     8796/* Line 1806 of yacc.c  */
     8797#line 2607 "parser.yy"
     8798    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8799    break;
     8800
     8801  case 683:
     8802
     8803/* Line 1806 of yacc.c  */
     8804#line 2614 "parser.yy"
    84188805    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    84198806    break;
    84208807
    8421   case 644:
    8422 
    8423 /* Line 1806 of yacc.c  */
    8424 #line 2495 "parser.yy"
     8808  case 685:
     8809
     8810/* Line 1806 of yacc.c  */
     8811#line 2625 "parser.yy"
     8812    { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     8813    break;
     8814
     8815  case 686:
     8816
     8817/* Line 1806 of yacc.c  */
     8818#line 2628 "parser.yy"
     8819    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     8820    break;
     8821
     8822  case 687:
     8823
     8824/* Line 1806 of yacc.c  */
     8825#line 2630 "parser.yy"
     8826    { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     8827    break;
     8828
     8829  case 688:
     8830
     8831/* Line 1806 of yacc.c  */
     8832#line 2633 "parser.yy"
     8833    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     8834    break;
     8835
     8836  case 689:
     8837
     8838/* Line 1806 of yacc.c  */
     8839#line 2635 "parser.yy"
     8840    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     8841    break;
     8842
     8843  case 690:
     8844
     8845/* Line 1806 of yacc.c  */
     8846#line 2637 "parser.yy"
     8847    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     8848    break;
     8849
     8850  case 692:
     8851
     8852/* Line 1806 of yacc.c  */
     8853#line 2651 "parser.yy"
     8854    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8855    break;
     8856
     8857  case 693:
     8858
     8859/* Line 1806 of yacc.c  */
     8860#line 2653 "parser.yy"
     8861    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     8862    break;
     8863
     8864  case 694:
     8865
     8866/* Line 1806 of yacc.c  */
     8867#line 2658 "parser.yy"
     8868    { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     8869    break;
     8870
     8871  case 695:
     8872
     8873/* Line 1806 of yacc.c  */
     8874#line 2660 "parser.yy"
     8875    { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     8876    break;
     8877
     8878  case 696:
     8879
     8880/* Line 1806 of yacc.c  */
     8881#line 2662 "parser.yy"
     8882    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     8883    break;
     8884
     8885  case 697:
     8886
     8887/* Line 1806 of yacc.c  */
     8888#line 2664 "parser.yy"
     8889    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     8890    break;
     8891
     8892  case 698:
     8893
     8894/* Line 1806 of yacc.c  */
     8895#line 2666 "parser.yy"
     8896    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8897    break;
     8898
     8899  case 700:
     8900
     8901/* Line 1806 of yacc.c  */
     8902#line 2672 "parser.yy"
    84258903    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    84268904    break;
    84278905
    8428   case 645:
    8429 
    8430 /* Line 1806 of yacc.c  */
    8431 #line 2500 "parser.yy"
    8432     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
    8433     break;
    8434 
    8435   case 646:
    8436 
    8437 /* Line 1806 of yacc.c  */
    8438 #line 2502 "parser.yy"
     8906  case 701:
     8907
     8908/* Line 1806 of yacc.c  */
     8909#line 2674 "parser.yy"
     8910    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     8911    break;
     8912
     8913  case 702:
     8914
     8915/* Line 1806 of yacc.c  */
     8916#line 2676 "parser.yy"
     8917    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     8918    break;
     8919
     8920  case 703:
     8921
     8922/* Line 1806 of yacc.c  */
     8923#line 2681 "parser.yy"
    84398924    { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    84408925    break;
    84418926
    8442   case 648:
    8443 
    8444 /* Line 1806 of yacc.c  */
    8445 #line 2517 "parser.yy"
    8446     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8447     break;
    8448 
    8449   case 649:
    8450 
    8451 /* Line 1806 of yacc.c  */
    8452 #line 2519 "parser.yy"
    8453     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8454     break;
    8455 
    8456   case 650:
    8457 
    8458 /* Line 1806 of yacc.c  */
    8459 #line 2524 "parser.yy"
    8460     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8461     break;
    8462 
    8463   case 651:
    8464 
    8465 /* Line 1806 of yacc.c  */
    8466 #line 2526 "parser.yy"
    8467     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8468     break;
    8469 
    8470   case 652:
    8471 
    8472 /* Line 1806 of yacc.c  */
    8473 #line 2528 "parser.yy"
    8474     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8475     break;
    8476 
    8477   case 653:
    8478 
    8479 /* Line 1806 of yacc.c  */
    8480 #line 2530 "parser.yy"
    8481     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8482     break;
    8483 
    8484   case 654:
    8485 
    8486 /* Line 1806 of yacc.c  */
    8487 #line 2532 "parser.yy"
     8927  case 704:
     8928
     8929/* Line 1806 of yacc.c  */
     8930#line 2683 "parser.yy"
    84888931    { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    84898932    break;
    84908933
    8491   case 656:
    8492 
    8493 /* Line 1806 of yacc.c  */
    8494 #line 2538 "parser.yy"
    8495     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8496     break;
    8497 
    8498   case 657:
    8499 
    8500 /* Line 1806 of yacc.c  */
    8501 #line 2540 "parser.yy"
    8502     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8503     break;
    8504 
    8505   case 658:
    8506 
    8507 /* Line 1806 of yacc.c  */
    8508 #line 2542 "parser.yy"
    8509     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8510     break;
    8511 
    8512   case 659:
    8513 
    8514 /* Line 1806 of yacc.c  */
    8515 #line 2547 "parser.yy"
    8516     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8517     break;
    8518 
    8519   case 660:
    8520 
    8521 /* Line 1806 of yacc.c  */
    8522 #line 2549 "parser.yy"
    8523     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8524     break;
    8525 
    8526   case 661:
    8527 
    8528 /* Line 1806 of yacc.c  */
    8529 #line 2551 "parser.yy"
    8530     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8531     break;
    8532 
    8533   case 662:
    8534 
    8535 /* Line 1806 of yacc.c  */
    8536 #line 2557 "parser.yy"
    8537     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8538     break;
    8539 
    8540   case 663:
    8541 
    8542 /* Line 1806 of yacc.c  */
    8543 #line 2559 "parser.yy"
    8544     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
    8545     break;
    8546 
    8547   case 665:
    8548 
    8549 /* Line 1806 of yacc.c  */
    8550 #line 2565 "parser.yy"
    8551     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
    8552     break;
    8553 
    8554   case 666:
    8555 
    8556 /* Line 1806 of yacc.c  */
    8557 #line 2567 "parser.yy"
    8558     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
    8559     break;
    8560 
    8561   case 667:
    8562 
    8563 /* Line 1806 of yacc.c  */
    8564 #line 2569 "parser.yy"
    8565     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
    8566     break;
    8567 
    8568   case 668:
    8569 
    8570 /* Line 1806 of yacc.c  */
    8571 #line 2571 "parser.yy"
    8572     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
    8573     break;
    8574 
    8575   case 670:
    8576 
    8577 /* Line 1806 of yacc.c  */
    8578 #line 2586 "parser.yy"
    8579     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8580     break;
    8581 
    8582   case 671:
    8583 
    8584 /* Line 1806 of yacc.c  */
    8585 #line 2588 "parser.yy"
    8586     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8587     break;
    8588 
    8589   case 672:
    8590 
    8591 /* Line 1806 of yacc.c  */
    8592 #line 2593 "parser.yy"
    8593     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8594     break;
    8595 
    8596   case 673:
    8597 
    8598 /* Line 1806 of yacc.c  */
    8599 #line 2595 "parser.yy"
    8600     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8601     break;
    8602 
    8603   case 674:
    8604 
    8605 /* Line 1806 of yacc.c  */
    8606 #line 2597 "parser.yy"
    8607     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8608     break;
    8609 
    8610   case 675:
    8611 
    8612 /* Line 1806 of yacc.c  */
    8613 #line 2599 "parser.yy"
    8614     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8615     break;
    8616 
    8617   case 676:
    8618 
    8619 /* Line 1806 of yacc.c  */
    8620 #line 2601 "parser.yy"
    8621     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8622     break;
    8623 
    8624   case 678:
    8625 
    8626 /* Line 1806 of yacc.c  */
    8627 #line 2607 "parser.yy"
    8628     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8629     break;
    8630 
    8631   case 679:
    8632 
    8633 /* Line 1806 of yacc.c  */
    8634 #line 2609 "parser.yy"
    8635     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8636     break;
    8637 
    8638   case 680:
    8639 
    8640 /* Line 1806 of yacc.c  */
    8641 #line 2611 "parser.yy"
    8642     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8643     break;
    8644 
    8645   case 681:
    8646 
    8647 /* Line 1806 of yacc.c  */
    8648 #line 2616 "parser.yy"
    8649     { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); }
    8650     break;
    8651 
    8652   case 682:
    8653 
    8654 /* Line 1806 of yacc.c  */
    8655 #line 2618 "parser.yy"
    8656     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8657     break;
    8658 
    8659   case 683:
    8660 
    8661 /* Line 1806 of yacc.c  */
    8662 #line 2620 "parser.yy"
    8663     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8664     break;
    8665 
    8666   case 685:
    8667 
    8668 /* Line 1806 of yacc.c  */
    8669 #line 2627 "parser.yy"
    8670     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
    8671     break;
    8672 
    8673   case 687:
    8674 
    8675 /* Line 1806 of yacc.c  */
    8676 #line 2638 "parser.yy"
    8677     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
    8678     break;
    8679 
    8680   case 688:
    8681 
    8682 /* Line 1806 of yacc.c  */
    8683 #line 2641 "parser.yy"
     8934  case 707:
     8935
     8936/* Line 1806 of yacc.c  */
     8937#line 2693 "parser.yy"
     8938    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     8939    break;
     8940
     8941  case 710:
     8942
     8943/* Line 1806 of yacc.c  */
     8944#line 2703 "parser.yy"
     8945    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8946    break;
     8947
     8948  case 711:
     8949
     8950/* Line 1806 of yacc.c  */
     8951#line 2705 "parser.yy"
     8952    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8953    break;
     8954
     8955  case 712:
     8956
     8957/* Line 1806 of yacc.c  */
     8958#line 2707 "parser.yy"
     8959    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8960    break;
     8961
     8962  case 713:
     8963
     8964/* Line 1806 of yacc.c  */
     8965#line 2709 "parser.yy"
     8966    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8967    break;
     8968
     8969  case 714:
     8970
     8971/* Line 1806 of yacc.c  */
     8972#line 2711 "parser.yy"
     8973    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     8974    break;
     8975
     8976  case 715:
     8977
     8978/* Line 1806 of yacc.c  */
     8979#line 2713 "parser.yy"
     8980    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     8981    break;
     8982
     8983  case 716:
     8984
     8985/* Line 1806 of yacc.c  */
     8986#line 2720 "parser.yy"
     8987    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     8988    break;
     8989
     8990  case 717:
     8991
     8992/* Line 1806 of yacc.c  */
     8993#line 2722 "parser.yy"
     8994    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     8995    break;
     8996
     8997  case 718:
     8998
     8999/* Line 1806 of yacc.c  */
     9000#line 2724 "parser.yy"
     9001    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9002    break;
     9003
     9004  case 719:
     9005
     9006/* Line 1806 of yacc.c  */
     9007#line 2726 "parser.yy"
     9008    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9009    break;
     9010
     9011  case 720:
     9012
     9013/* Line 1806 of yacc.c  */
     9014#line 2728 "parser.yy"
     9015    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9016    break;
     9017
     9018  case 721:
     9019
     9020/* Line 1806 of yacc.c  */
     9021#line 2731 "parser.yy"
     9022    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9023    break;
     9024
     9025  case 722:
     9026
     9027/* Line 1806 of yacc.c  */
     9028#line 2733 "parser.yy"
     9029    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9030    break;
     9031
     9032  case 723:
     9033
     9034/* Line 1806 of yacc.c  */
     9035#line 2735 "parser.yy"
     9036    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     9037    break;
     9038
     9039  case 724:
     9040
     9041/* Line 1806 of yacc.c  */
     9042#line 2737 "parser.yy"
     9043    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     9044    break;
     9045
     9046  case 725:
     9047
     9048/* Line 1806 of yacc.c  */
     9049#line 2739 "parser.yy"
     9050    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9051    break;
     9052
     9053  case 726:
     9054
     9055/* Line 1806 of yacc.c  */
     9056#line 2744 "parser.yy"
    86849057    { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    86859058    break;
    86869059
    8687   case 689:
    8688 
    8689 /* Line 1806 of yacc.c  */
    8690 #line 2643 "parser.yy"
    8691     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
    8692     break;
    8693 
    8694   case 690:
    8695 
    8696 /* Line 1806 of yacc.c  */
    8697 #line 2646 "parser.yy"
     9060  case 727:
     9061
     9062/* Line 1806 of yacc.c  */
     9063#line 2746 "parser.yy"
    86989064    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    86999065    break;
    87009066
    8701   case 691:
    8702 
    8703 /* Line 1806 of yacc.c  */
    8704 #line 2648 "parser.yy"
    8705     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
    8706     break;
    8707 
    8708   case 692:
    8709 
    8710 /* Line 1806 of yacc.c  */
    8711 #line 2650 "parser.yy"
    8712     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
    8713     break;
    8714 
    8715   case 694:
    8716 
    8717 /* Line 1806 of yacc.c  */
    8718 #line 2664 "parser.yy"
    8719     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8720     break;
    8721 
    8722   case 695:
    8723 
    8724 /* Line 1806 of yacc.c  */
    8725 #line 2666 "parser.yy"
    8726     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
    8727     break;
    8728 
    8729   case 696:
    8730 
    8731 /* Line 1806 of yacc.c  */
    8732 #line 2671 "parser.yy"
    8733     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
    8734     break;
    8735 
    8736   case 697:
    8737 
    8738 /* Line 1806 of yacc.c  */
    8739 #line 2673 "parser.yy"
    8740     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
    8741     break;
    8742 
    8743   case 698:
    8744 
    8745 /* Line 1806 of yacc.c  */
    8746 #line 2675 "parser.yy"
    8747     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
    8748     break;
    8749 
    8750   case 699:
    8751 
    8752 /* Line 1806 of yacc.c  */
    8753 #line 2677 "parser.yy"
    8754     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
    8755     break;
    8756 
    8757   case 700:
    8758 
    8759 /* Line 1806 of yacc.c  */
    8760 #line 2679 "parser.yy"
    8761     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8762     break;
    8763 
    8764   case 702:
    8765 
    8766 /* Line 1806 of yacc.c  */
    8767 #line 2685 "parser.yy"
    8768     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8769     break;
    8770 
    8771   case 703:
    8772 
    8773 /* Line 1806 of yacc.c  */
    8774 #line 2687 "parser.yy"
    8775     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
    8776     break;
    8777 
    8778   case 704:
    8779 
    8780 /* Line 1806 of yacc.c  */
    8781 #line 2689 "parser.yy"
    8782     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8783     break;
    8784 
    8785   case 705:
    8786 
    8787 /* Line 1806 of yacc.c  */
    8788 #line 2694 "parser.yy"
    8789     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
    8790     break;
    8791 
    8792   case 706:
    8793 
    8794 /* Line 1806 of yacc.c  */
    8795 #line 2696 "parser.yy"
    8796     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
    8797     break;
    8798 
    8799   case 709:
    8800 
    8801 /* Line 1806 of yacc.c  */
    8802 #line 2706 "parser.yy"
     9067  case 728:
     9068
     9069/* Line 1806 of yacc.c  */
     9070#line 2751 "parser.yy"
     9071    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     9072    break;
     9073
     9074  case 729:
     9075
     9076/* Line 1806 of yacc.c  */
     9077#line 2753 "parser.yy"
     9078    { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     9079    break;
     9080
     9081  case 731:
     9082
     9083/* Line 1806 of yacc.c  */
     9084#line 2780 "parser.yy"
    88039085    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    88049086    break;
    88059087
    8806   case 712:
    8807 
    8808 /* Line 1806 of yacc.c  */
    8809 #line 2716 "parser.yy"
     9088  case 735:
     9089
     9090/* Line 1806 of yacc.c  */
     9091#line 2791 "parser.yy"
    88109092    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88119093    break;
    88129094
    8813   case 713:
    8814 
    8815 /* Line 1806 of yacc.c  */
    8816 #line 2718 "parser.yy"
     9095  case 736:
     9096
     9097/* Line 1806 of yacc.c  */
     9098#line 2793 "parser.yy"
    88179099    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88189100    break;
    88199101
    8820   case 714:
    8821 
    8822 /* Line 1806 of yacc.c  */
    8823 #line 2720 "parser.yy"
     9102  case 737:
     9103
     9104/* Line 1806 of yacc.c  */
     9105#line 2795 "parser.yy"
    88249106    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88259107    break;
    88269108
    8827   case 715:
    8828 
    8829 /* Line 1806 of yacc.c  */
    8830 #line 2722 "parser.yy"
     9109  case 738:
     9110
     9111/* Line 1806 of yacc.c  */
     9112#line 2797 "parser.yy"
    88319113    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88329114    break;
    88339115
    8834   case 716:
    8835 
    8836 /* Line 1806 of yacc.c  */
    8837 #line 2724 "parser.yy"
     9116  case 739:
     9117
     9118/* Line 1806 of yacc.c  */
     9119#line 2799 "parser.yy"
    88389120    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    88399121    break;
    88409122
    8841   case 717:
    8842 
    8843 /* Line 1806 of yacc.c  */
    8844 #line 2726 "parser.yy"
     9123  case 740:
     9124
     9125/* Line 1806 of yacc.c  */
     9126#line 2801 "parser.yy"
    88459127    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    88469128    break;
    88479129
    8848   case 718:
    8849 
    8850 /* Line 1806 of yacc.c  */
    8851 #line 2733 "parser.yy"
    8852     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8853     break;
    8854 
    8855   case 719:
    8856 
    8857 /* Line 1806 of yacc.c  */
    8858 #line 2735 "parser.yy"
     9130  case 741:
     9131
     9132/* Line 1806 of yacc.c  */
     9133#line 2808 "parser.yy"
     9134    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9135    break;
     9136
     9137  case 742:
     9138
     9139/* Line 1806 of yacc.c  */
     9140#line 2810 "parser.yy"
     9141    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9142    break;
     9143
     9144  case 743:
     9145
     9146/* Line 1806 of yacc.c  */
     9147#line 2812 "parser.yy"
    88599148    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88609149    break;
    88619150
    8862   case 720:
    8863 
    8864 /* Line 1806 of yacc.c  */
    8865 #line 2737 "parser.yy"
    8866     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8867     break;
    8868 
    8869   case 721:
    8870 
    8871 /* Line 1806 of yacc.c  */
    8872 #line 2739 "parser.yy"
    8873     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8874     break;
    8875 
    8876   case 722:
    8877 
    8878 /* Line 1806 of yacc.c  */
    8879 #line 2741 "parser.yy"
     9151  case 744:
     9152
     9153/* Line 1806 of yacc.c  */
     9154#line 2814 "parser.yy"
     9155    { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9156    break;
     9157
     9158  case 745:
     9159
     9160/* Line 1806 of yacc.c  */
     9161#line 2816 "parser.yy"
     9162    { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9163    break;
     9164
     9165  case 746:
     9166
     9167/* Line 1806 of yacc.c  */
     9168#line 2818 "parser.yy"
    88809169    { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    88819170    break;
    88829171
    8883   case 723:
    8884 
    8885 /* Line 1806 of yacc.c  */
    8886 #line 2744 "parser.yy"
    8887     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8888     break;
    8889 
    8890   case 724:
    8891 
    8892 /* Line 1806 of yacc.c  */
    8893 #line 2746 "parser.yy"
    8894     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8895     break;
    8896 
    8897   case 725:
    8898 
    8899 /* Line 1806 of yacc.c  */
    8900 #line 2748 "parser.yy"
    8901     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
    8902     break;
    8903 
    8904   case 726:
    8905 
    8906 /* Line 1806 of yacc.c  */
    8907 #line 2750 "parser.yy"
    8908     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
    8909     break;
    8910 
    8911   case 727:
    8912 
    8913 /* Line 1806 of yacc.c  */
    8914 #line 2752 "parser.yy"
    8915     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    8916     break;
    8917 
    8918   case 728:
    8919 
    8920 /* Line 1806 of yacc.c  */
    8921 #line 2757 "parser.yy"
    8922     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
    8923     break;
    8924 
    8925   case 729:
    8926 
    8927 /* Line 1806 of yacc.c  */
    8928 #line 2759 "parser.yy"
    8929     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
    8930     break;
    8931 
    8932   case 730:
    8933 
    8934 /* Line 1806 of yacc.c  */
    8935 #line 2764 "parser.yy"
    8936     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
    8937     break;
    8938 
    8939   case 731:
    8940 
    8941 /* Line 1806 of yacc.c  */
    8942 #line 2766 "parser.yy"
    8943     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
    8944     break;
    8945 
    8946   case 733:
    8947 
    8948 /* Line 1806 of yacc.c  */
    8949 #line 2793 "parser.yy"
    8950     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
    8951     break;
    8952 
    8953   case 737:
    8954 
    8955 /* Line 1806 of yacc.c  */
    8956 #line 2804 "parser.yy"
    8957     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8958     break;
    8959 
    8960   case 738:
    8961 
    8962 /* Line 1806 of yacc.c  */
    8963 #line 2806 "parser.yy"
    8964     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8965     break;
    8966 
    8967   case 739:
    8968 
    8969 /* Line 1806 of yacc.c  */
    8970 #line 2808 "parser.yy"
    8971     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8972     break;
    8973 
    8974   case 740:
    8975 
    8976 /* Line 1806 of yacc.c  */
    8977 #line 2810 "parser.yy"
    8978     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8979     break;
    8980 
    8981   case 741:
    8982 
    8983 /* Line 1806 of yacc.c  */
    8984 #line 2812 "parser.yy"
    8985     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
    8986     break;
    8987 
    8988   case 742:
    8989 
    8990 /* Line 1806 of yacc.c  */
    8991 #line 2814 "parser.yy"
    8992     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
    8993     break;
    8994 
    8995   case 743:
    8996 
    8997 /* Line 1806 of yacc.c  */
    8998 #line 2821 "parser.yy"
    8999     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9000     break;
    9001 
    9002   case 744:
     9172  case 747:
    90039173
    90049174/* Line 1806 of yacc.c  */
    90059175#line 2823 "parser.yy"
    9006     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9007     break;
    9008 
    9009   case 745:
    9010 
    9011 /* Line 1806 of yacc.c  */
    9012 #line 2825 "parser.yy"
    9013     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
    9014     break;
    9015 
    9016   case 746:
    9017 
    9018 /* Line 1806 of yacc.c  */
    9019 #line 2827 "parser.yy"
    9020     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
    9021     break;
    9022 
    9023   case 747:
    9024 
    9025 /* Line 1806 of yacc.c  */
    9026 #line 2829 "parser.yy"
    9027     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); }
     9176    { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
    90289177    break;
    90299178
     
    90319180
    90329181/* Line 1806 of yacc.c  */
    9033 #line 2831 "parser.yy"
    9034     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     9182#line 2828 "parser.yy"
     9183    { (yyval.decl) = DeclarationNode::newFunction( nullptr, DeclarationNode::newTuple( nullptr ), (yyvsp[(4) - (5)].decl), nullptr ); }
    90359184    break;
    90369185
     
    90389187
    90399188/* Line 1806 of yacc.c  */
    9040 #line 2836 "parser.yy"
    9041     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     9189#line 2830 "parser.yy"
     9190    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    90429191    break;
    90439192
     
    90459194
    90469195/* Line 1806 of yacc.c  */
    9047 #line 2843 "parser.yy"
     9196#line 2832 "parser.yy"
    90489197    { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
    90499198    break;
    90509199
    9051   case 751:
    9052 
    9053 /* Line 1806 of yacc.c  */
    9054 #line 2845 "parser.yy"
    9055     { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); }
     9200  case 753:
     9201
     9202/* Line 1806 of yacc.c  */
     9203#line 2856 "parser.yy"
     9204    { (yyval.en) = 0; }
    90569205    break;
    90579206
     
    90599208
    90609209/* Line 1806 of yacc.c  */
    9061 #line 2869 "parser.yy"
    9062     { (yyval.en) = 0; }
    9063     break;
    9064 
    9065   case 755:
    9066 
    9067 /* Line 1806 of yacc.c  */
    9068 #line 2871 "parser.yy"
     9210#line 2858 "parser.yy"
    90699211    { (yyval.en) = (yyvsp[(2) - (2)].en); }
    90709212    break;
     
    90739215
    90749216/* Line 1806 of yacc.c  */
    9075 #line 9076 "Parser/parser.cc"
     9217#line 9218 "Parser/parser.cc"
    90769218      default: break;
    90779219    }
     
    93049446
    93059447/* Line 2067 of yacc.c  */
    9306 #line 2874 "parser.yy"
     9448#line 2861 "parser.yy"
    93079449
    93089450// ----end of grammar----
  • src/Parser/parser.h

    r3f0c6a5 r77971f6  
    115115     ATTR_TYPEGENname = 333,
    116116     INTEGERconstant = 334,
    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
     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
    148146   };
    149147#endif
     
    226224#define ATTR_TYPEGENname 333
    227225#define INTEGERconstant 334
    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
     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
    259255
    260256
     
    266262
    267263/* Line 2068 of yacc.c  */
    268 #line 120 "parser.yy"
     264#line 116 "parser.yy"
    269265
    270266        Token tok;
     
    286282
    287283/* Line 2068 of yacc.c  */
    288 #line 289 "Parser/parser.h"
     284#line 285 "Parser/parser.h"
    289285} YYSTYPE;
    290286# define YYSTYPE_IS_TRIVIAL 1
  • src/Parser/parser.yy

    r3f0c6a5 r77971f6  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Oct 26 17:35:53 2016
    13 // Update Count     : 2066
     12// Last Modified On : Wed Oct 19 22:19:33 2016
     13// Update Count     : 2003
    1414//
    1515
     
    9494%token<tok> IDENTIFIER                  QUOTED_IDENTIFIER               TYPEDEFname                             TYPEGENname
    9595%token<tok> ATTR_IDENTIFIER             ATTR_TYPEDEFname                ATTR_TYPEGENname
    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
     96%token<tok> INTEGERconstant             FLOATINGconstant                CHARACTERconstant               STRINGliteral
    10197%token<tok> ZERO                                ONE                                             // CFA
    10298
     
    315311                // ENUMERATIONconstant is not included here; it is treated as a variable with type "enumeration constant".
    316312        INTEGERconstant                                                         { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
    317         | REALDECIMALconstant                                           { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
    318         | REALFRACTIONconstant                                          { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
    319313        | FLOATINGconstant                                                      { $$ = new ExpressionNode( build_constantFloat( *$1 ) ); }
    320314        | CHARACTERconstant                                                     { $$ = new ExpressionNode( build_constantChar( *$1 ) ); }
     
    363357        | zero_one
    364358                { $$ = new ExpressionNode( build_varref( $1 ) ); }
    365         | tuple
    366359        | '(' comma_expression ')'
    367360                { $$ = $2; }
     
    380373        | postfix_expression '(' argument_expression_list ')'
    381374                { $$ = 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;
    382377        | postfix_expression '.' no_attr_identifier
    383378                { $$ = new ExpressionNode( build_fieldSel( $1, build_varref( $3 ) ) ); }
    384379        | postfix_expression '.' '[' push field_list pop ']' // CFA, tuple field selector
    385380                { $$ = new ExpressionNode( build_fieldSel( $1, build_tuple( $5 ) ) ); }
    386         | postfix_expression REALFRACTIONconstant                       // CFA, tuple index
    387                 { $$ = new ExpressionNode( build_fieldSel( $1, build_constantInteger( *$2 ) ) ); }
     381        | postfix_expression '.' INTEGERconstant
     382                { $$ = new ExpressionNode( build_fieldSel( $1, build_constantInteger( *$3 ) ) ); }
    388383        | postfix_expression ARROW no_attr_identifier
    389384                { $$ = new ExpressionNode( build_pfieldSel( $1, build_varref( $3 ) ) ); }
     
    423418field:                                                                                                  // CFA, tuple field selector
    424419        field_name
    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 ) ) ); }
     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;
    429422        | field_name '.' field
    430423                { $$ = new ExpressionNode( build_fieldSel( $1, maybeMoveBuild<Expression>( $3 ) ) ); }
     
    437430        ;
    438431
    439 field_name: // ... use $2
    440         INTEGERconstant fraction_constants
     432field_name:
     433        no_attr_identifier
     434                { $$ = new ExpressionNode( build_varref( $1 ) ); }
     435                // x.1, x.[0, 0.0]
     436        | INTEGERconstant
    441437                { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
    442         | FLOATINGconstant fraction_constants
    443                 { $$ = new ExpressionNode( build_constantInteger( *$1 ) ); }
    444         | no_attr_identifier fraction_constants
    445                 { $$ = new ExpressionNode( build_varref( $1 ) ); }
    446         ;
    447 
    448 fraction_constants:
    449         // empty
    450         | fraction_constants REALFRACTIONconstant
    451438        ;
    452439
     
    521508        | '(' type_name_no_function ')' cast_expression
    522509                { $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
    523 //      | '(' type_name_no_function ')' tuple
    524 //              { $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
     510        | '(' type_name_no_function ')' tuple
     511                { $$ = new ExpressionNode( build_cast( $2, $4 ) ); }
    525512        ;
    526513
     
    608595        | logical_OR_expression '?' /* empty */ ':' conditional_expression // GCC, omitted first operand
    609596                { $$ = new ExpressionNode( build_cond( $1, $1, $4 ) ); }
    610 //      | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression
    611 //              { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); }
     597        | logical_OR_expression '?' comma_expression ':' tuple // CFA, tuple expression
     598                { $$ = new ExpressionNode( build_cond( $1, $3, $5 ) ); }
    612599        ;
    613600
     
    621608        | unary_expression assignment_operator assignment_expression
    622609                { $$ = new ExpressionNode( build_binary_ptr( $2, $1, $3 ) ); }
    623 //      | tuple assignment_opt                                                          // CFA, tuple expression
    624 //              { $$ = ( $2 == 0 ) ? $1 : new ExpressionNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); }
     610        | tuple assignment_opt                                                          // CFA, tuple expression
     611                { $$ = ( $2 == 0 ) ? $1 : new ExpressionNode( build_binary_ptr( OperKinds::Assign, $1, $2 ) ); }
    625612        ;
    626613
     
    649636                // CFA, one assignment_expression is factored out of comma_expression to eliminate a shift/reduce conflict with
    650637                // comma_expression in new_identifier_parameter_array and new_abstract_array
    651 //      '[' ']'
    652 //              { $$ = new ExpressionNode( build_tuple() ); }
    653 //      '[' push assignment_expression pop ']'
    654 //              { $$ = new ExpressionNode( build_tuple( $3 ) ); }
    655         '[' push ',' tuple_expression_list pop ']'
     638        '[' ']'
     639                { $$ = new ExpressionNode( build_tuple() ); }
     640        | '[' push assignment_expression pop ']'
     641                { $$ = new ExpressionNode( build_tuple( $3 ) ); }
     642        | '[' push ',' tuple_expression_list pop ']'
    656643                { $$ = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( $4 ) ) ); }
    657644        | '[' push assignment_expression ',' tuple_expression_list pop ']'
     
    11521139
    11531140new_function_specifier:                                                                 // CFA
    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 //              }
     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                }
    11581145//      '[' ']' identifier '(' push new_parameter_type_list_opt pop ')'
    11591146//              {
     
    11741161                // type_specifier can resolve to just TYPEDEFname (e.g., typedef int T; int f( T );). Therefore this must be
    11751162                // flattened to allow lookahead to the '(' without having to reduce identifier_or_type_name.
    1176         new_abstract_tuple identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'
     1163        | new_abstract_tuple identifier_or_type_name '(' push new_parameter_type_list_opt pop ')'
    11771164                // To obtain LR(1 ), this rule must be factored out from function return type (see new_abstract_declarator).
    11781165                {
     
    28382825
    28392826new_abstract_function:                                                                  // CFA
    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 ')'
     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 ')'
    28432830                { $$ = DeclarationNode::newFunction( nullptr, $1, $4, nullptr ); }
    28442831        | new_function_return '(' push new_parameter_type_list_opt pop ')'
  • src/driver/Makefile.am

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

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

    r3f0c6a5 r77971f6  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Oct 25 21:29:48 2016
    13 // Update Count     : 152
     12// Last Modified On : Sat Aug  6 16:14:55 2016
     13// Update Count     : 148
    1414//
    1515
     
    2525using std::endl;
    2626using std::string;
    27 using std::to_string;
    2827
    2928
     
    5150
    5251int main( int argc, char *argv[] ) {
    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 ) );
     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
    5568
    5669        string installincdir( CFA_INCDIR );                                     // fixed location of include files
     
    255268        // add the correct set of flags based on the type of compile this is
    256269
    257         args[nargs] = ( *new string( string("-D__CFA_MAJOR__=") + Major ) ).c_str();
     270        args[nargs] = ( *new string( string("-D__CFA__=") + Major ) ).c_str();
    258271        nargs += 1;
    259272        args[nargs] = ( *new string( string("-D__CFA_MINOR__=") + Minor ) ).c_str();
    260273        nargs += 1;
    261         args[nargs] = ( *new string( string("-D__CFA_PATCH__=") + Patch ) ).c_str();
     274        args[nargs] = ( *new string( string("-D__CFA_PATCHLEVEL__=") + Patch ) ).c_str();
    262275        nargs += 1;
    263276        args[nargs] = "-D__CFA__";
  • src/examples/Makefile.in

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

    r3f0c6a5 r77971f6  
    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
    139 CONFIG_STATUS_DEPENDENCIES = @CONFIG_STATUS_DEPENDENCIES@
    140139CPP = @CPP@
    141140CPPFLAGS = @CPPFLAGS@
  • src/tests/Makefile.in

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