Changeset 66f8528
- Timestamp:
- Dec 15, 2016, 5:16:42 PM (9 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 43385ca, f7ff3fb
- Parents:
- 5802a4f (diff), 596f987b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 33 added
- 70 edited
- 7 moved
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
r5802a4f r66f8528 29 29 src/driver/cfa-cpp 30 30 31 src/ libcfa/builtins.cf32 src/ libcfa/extras.cf31 src/prelude/builtins.cf 32 src/prelude/extras.cf 33 33 src/libcfa/libcfa-prelude.c 34 34 -
Jenkinsfile
r5802a4f r66f8528 23 23 //escapes the sandbox 24 24 //Also specify the compiler by hand 25 sh "./configure CXX=${currentCC.cpp_cc} CXXFLAGS=${flags} CFAFLAGS=${flags} --with-backend-compiler=${currentCC.cfa_backend_cc} --prefix=${install_dir} --enable-silent-rules --quiet"25 sh "./configure CXX=${currentCC.cpp_cc} ${flags} --with-backend-compiler=${currentCC.cfa_backend_cc} --prefix=${install_dir} --enable-silent-rules --quiet" 26 26 27 27 //Compile the project … … 33 33 dir ('src/tests') { 34 34 if (full_build) { 35 sh 'make all-tests' 35 sh 'make all-tests debug=yes' 36 sh 'make all-tests debug=no' 36 37 } 37 38 else { … … 166 167 167 168 bIsFullBuild = isFullBuild == 'true' 168 architectureFlag = buildArchitecture == '64-bit' ? '-m64' : (buildArchitecture == '32-bit' ? '-m32' : 'ERROR') 169 architectureFlag = '' 170 if (buildArchitecture == '64-bit') { 171 architectureFlag = '--host=x86_64 CXXFLAGS="-m64" CFAFLAGS="-m64"' 172 } else if (buildArchitecture == '32-bit'){ 173 architectureFlag = '--host=i386 CXXFLAGS="-m32" CFAFLAGS="-m32"' 174 } else { 175 architectureFlag = 'ERROR' 176 } 169 177 170 178 echo "FULL BUILD = ${isFullBuild}\nArchitecture = ${buildArchitecture} (flag ${architectureFlag})" -
Makefile.am
r5802a4f r66f8528 11 11 ## Created On : Sun May 31 22:14:18 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Fri Jun 17 14:56:18 201614 ## Update Count : 1 313 ## Last Modified On : Wed Dec 14 14:20:48 2016 14 ## Update Count : 15 15 15 ############################################################################### 16 16 17 17 AUTOMAKE_OPTIONS = foreign # do not require all the GNU file names 18 SUBDIRS = src/driver src src/ libcfa # order important, src before libcfabecause cfa-cpp used to build prelude18 SUBDIRS = src/driver src src/prelude src/libcfa # order important, src before prelude because cfa-cpp used to build prelude 19 19 EXTRA_DIST = Docs # non-source files 20 20 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command -
Makefile.in
r5802a4f r66f8528 35 35 PRE_UNINSTALL = : 36 36 POST_UNINSTALL = : 37 build_triplet = @build@ 38 host_triplet = @host@ 37 39 subdir = . 38 40 DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ 39 41 $(srcdir)/Makefile.in $(srcdir)/config.h.in \ 40 42 $(top_srcdir)/configure INSTALL automake/compile \ 41 automake/ depcomp automake/install-sh automake/missing\42 automake/ ylwrap43 automake/config.guess automake/config.sub automake/depcomp \ 44 automake/install-sh automake/missing automake/ylwrap 43 45 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 44 46 am__aclocal_m4_deps = $(top_srcdir)/configure.ac … … 124 126 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 125 127 CC = @CC@ 128 CCAS = @CCAS@ 129 CCASDEPMODE = @CCASDEPMODE@ 130 CCASFLAGS = @CCASFLAGS@ 126 131 CCDEPMODE = @CCDEPMODE@ 127 132 CFA_BACKEND_CC = @CFA_BACKEND_CC@ … … 158 163 LIBS = @LIBS@ 159 164 LTLIBOBJS = @LTLIBOBJS@ 165 MACHINE_TYPE = @MACHINE_TYPE@ 160 166 MAINT = @MAINT@ 161 167 MAKEINFO = @MAKEINFO@ … … 189 195 am__untar = @am__untar@ 190 196 bindir = @bindir@ 197 build = @build@ 191 198 build_alias = @build_alias@ 199 build_cpu = @build_cpu@ 200 build_os = @build_os@ 201 build_vendor = @build_vendor@ 192 202 builddir = @builddir@ 193 203 datadir = @datadir@ … … 196 206 dvidir = @dvidir@ 197 207 exec_prefix = @exec_prefix@ 208 host = @host@ 198 209 host_alias = @host_alias@ 210 host_cpu = @host_cpu@ 211 host_os = @host_os@ 212 host_vendor = @host_vendor@ 199 213 htmldir = @htmldir@ 200 214 includedir = @includedir@ … … 221 235 top_srcdir = @top_srcdir@ 222 236 AUTOMAKE_OPTIONS = foreign # do not require all the GNU file names 223 SUBDIRS = src/driver src src/ libcfa # order important, src before libcfabecause cfa-cpp used to build prelude237 SUBDIRS = src/driver src src/prelude src/libcfa # order important, src before prelude because cfa-cpp used to build prelude 224 238 EXTRA_DIST = Docs # non-source files 225 239 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/* -
aclocal.m4
r5802a4f r66f8528 60 60 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) 61 61 62 # Figure out how to run the assembler. -*- Autoconf -*- 63 64 # Copyright (C) 2001, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 65 # 66 # This file is free software; the Free Software Foundation 67 # gives unlimited permission to copy and/or distribute it, 68 # with or without modifications, as long as this notice is preserved. 69 70 # serial 5 71 72 # AM_PROG_AS 73 # ---------- 74 AC_DEFUN([AM_PROG_AS], 75 [# By default we simply use the C compiler to build assembly code. 76 AC_REQUIRE([AC_PROG_CC]) 77 test "${CCAS+set}" = set || CCAS=$CC 78 test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS 79 AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) 80 AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) 81 _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl 82 ]) 83 62 84 # AM_AUX_DIR_EXPAND -*- Autoconf -*- 63 85 … … 113 135 # expand $ac_aux_dir to an absolute path 114 136 am_aux_dir=`cd $ac_aux_dir && pwd` 137 ]) 138 139 # AM_COND_IF -*- Autoconf -*- 140 141 # Copyright (C) 2008, 2010 Free Software Foundation, Inc. 142 # 143 # This file is free software; the Free Software Foundation 144 # gives unlimited permission to copy and/or distribute it, 145 # with or without modifications, as long as this notice is preserved. 146 147 # serial 3 148 149 # _AM_COND_IF 150 # _AM_COND_ELSE 151 # _AM_COND_ENDIF 152 # -------------- 153 # These macros are only used for tracing. 154 m4_define([_AM_COND_IF]) 155 m4_define([_AM_COND_ELSE]) 156 m4_define([_AM_COND_ENDIF]) 157 158 159 # AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) 160 # --------------------------------------- 161 # If the shell condition COND is true, execute IF-TRUE, otherwise execute 162 # IF-FALSE. Allow automake to learn about conditional instantiating macros 163 # (the AC_CONFIG_FOOS). 164 AC_DEFUN([AM_COND_IF], 165 [m4_ifndef([_AM_COND_VALUE_$1], 166 [m4_fatal([$0: no such condition "$1"])])dnl 167 _AM_COND_IF([$1])dnl 168 if test -z "$$1_TRUE"; then : 169 m4_n([$2])[]dnl 170 m4_ifval([$3], 171 [_AM_COND_ELSE([$1])dnl 172 else 173 $3 174 ])dnl 175 _AM_COND_ENDIF([$1])dnl 176 fi[]dnl 115 177 ]) 116 178 -
configure
r5802a4f r66f8528 616 616 YFLAGS 617 617 YACC 618 am__fastdepCCAS_FALSE 619 am__fastdepCCAS_TRUE 620 CCASDEPMODE 621 CCASFLAGS 622 CCAS 618 623 am__fastdepCC_FALSE 619 624 am__fastdepCC_TRUE … … 639 644 CXXFLAGS 640 645 CXX 646 MACHINE_TYPE 647 host_os 648 host_vendor 649 host_cpu 650 host 651 build_os 652 build_vendor 653 build_cpu 654 build 641 655 CFA_FLAGS 642 656 CFA_LIBDIR … … 644 658 CFA_INCDIR 645 659 CFA_PREFIX 660 BUILD_NO_LIB_FALSE 661 BUILD_NO_LIB_TRUE 662 BUILD_DEBUG_FALSE 663 BUILD_DEBUG_TRUE 664 BUILD_RELEASE_FALSE 665 BUILD_RELEASE_TRUE 646 666 CFA_BACKEND_CC 647 667 BACKEND_CC … … 720 740 enable_maintainer_mode 721 741 with_backend_compiler 742 enable_target_release 743 enable_target_debug 722 744 enable_dependency_tracking 723 745 ' … … 733 755 CC 734 756 CFLAGS 757 CCAS 758 CCASFLAGS 735 759 YACC 736 760 YFLAGS … … 1339 1363 --program-suffix=SUFFIX append SUFFIX to installed program names 1340 1364 --program-transform-name=PROGRAM run sed PROGRAM on installed program names 1365 1366 System types: 1367 --build=BUILD configure for building on BUILD [guessed] 1368 --host=HOST cross-compile to build programs to run on HOST [BUILD] 1341 1369 _ACEOF 1342 1370 fi … … 1356 1384 --disable-maintainer-mode disable make rules and dependencies not useful 1357 1385 (and sometimes confusing) to the casual installer 1386 --enable-target-release Build and install the release target 1387 --enable-target-debug Build and install the debug target 1358 1388 --disable-dependency-tracking speeds up one-time build 1359 1389 --enable-dependency-tracking do not reject slow dependency extractors … … 1374 1404 CC C compiler command 1375 1405 CFLAGS C compiler flags 1406 CCAS assembler compiler command (defaults to CC) 1407 CCASFLAGS assembler compiler flags (defaults to CFLAGS) 1376 1408 YACC The `Yet Another Compiler Compiler' implementation to use. 1377 1409 Defaults to the first program found out of: `bison -y', `byacc', … … 3079 3111 3080 3112 3113 3114 3115 # Check whether --enable-target-release was given. 3116 if test "${enable_target_release+set}" = set; then : 3117 enableval=$enable_target_release; 3118 fi 3119 3120 # Check whether --enable-target-debug was given. 3121 if test "${enable_target_debug+set}" = set; then : 3122 enableval=$enable_target_debug; 3123 fi 3124 3125 3126 case "$enable_target_release" in 3127 yes) 3128 case "$enable_target_debug" in 3129 yes) 3130 build_release="yes" 3131 build_debug="yes" 3132 ;; 3133 no) 3134 build_release="yes" 3135 build_debug="no" 3136 ;; 3137 *) 3138 build_release="yes" 3139 build_debug="no" 3140 ;; 3141 esac 3142 ;; 3143 no) 3144 case "$enable_target_debug" in 3145 yes) 3146 build_release="no" 3147 build_debug="yes" 3148 ;; 3149 no) 3150 build_release="no" 3151 build_debug="no" 3152 ;; 3153 *) 3154 build_release="no" 3155 build_debug="yes" 3156 ;; 3157 esac 3158 ;; 3159 *) 3160 case "$enable_target_debug" in 3161 yes) 3162 build_release="no" 3163 build_debug="yes" 3164 ;; 3165 no) 3166 build_release="yes" 3167 build_debug="no" 3168 ;; 3169 *) 3170 build_release="yes" 3171 build_debug="yes" 3172 ;; 3173 esac 3174 ;; 3175 esac 3176 3177 if test "x$build_release" = "xyes"; then 3178 BUILD_RELEASE_TRUE= 3179 BUILD_RELEASE_FALSE='#' 3180 else 3181 BUILD_RELEASE_TRUE='#' 3182 BUILD_RELEASE_FALSE= 3183 fi 3184 3185 if test "x$build_debug" = "xyes"; then 3186 BUILD_DEBUG_TRUE= 3187 BUILD_DEBUG_FALSE='#' 3188 else 3189 BUILD_DEBUG_TRUE='#' 3190 BUILD_DEBUG_FALSE= 3191 fi 3192 3193 if test "x$build_release$build_debug" = "xnono"; then 3194 BUILD_NO_LIB_TRUE= 3195 BUILD_NO_LIB_FALSE='#' 3196 else 3197 BUILD_NO_LIB_TRUE='#' 3198 BUILD_NO_LIB_FALSE= 3199 fi 3200 3201 3081 3202 if test "x$prefix" = "xNONE"; then 3082 3203 cfa_prefix=${ac_default_prefix} … … 3137 3258 3138 3259 CFA_FLAGS=${CFAFLAGS} 3260 3261 3262 # Make sure we can run config.sub. 3263 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || 3264 as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 3265 3266 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 3267 $as_echo_n "checking build system type... " >&6; } 3268 if ${ac_cv_build+:} false; then : 3269 $as_echo_n "(cached) " >&6 3270 else 3271 ac_build_alias=$build_alias 3272 test "x$ac_build_alias" = x && 3273 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` 3274 test "x$ac_build_alias" = x && 3275 as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 3276 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || 3277 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 3278 3279 fi 3280 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 3281 $as_echo "$ac_cv_build" >&6; } 3282 case $ac_cv_build in 3283 *-*-*) ;; 3284 *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; 3285 esac 3286 build=$ac_cv_build 3287 ac_save_IFS=$IFS; IFS='-' 3288 set x $ac_cv_build 3289 shift 3290 build_cpu=$1 3291 build_vendor=$2 3292 shift; shift 3293 # Remember, the first character of IFS is used to create $*, 3294 # except with old shells: 3295 build_os=$* 3296 IFS=$ac_save_IFS 3297 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac 3298 3299 3300 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 3301 $as_echo_n "checking host system type... " >&6; } 3302 if ${ac_cv_host+:} false; then : 3303 $as_echo_n "(cached) " >&6 3304 else 3305 if test "x$host_alias" = x; then 3306 ac_cv_host=$ac_cv_build 3307 else 3308 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || 3309 as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 3310 fi 3311 3312 fi 3313 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 3314 $as_echo "$ac_cv_host" >&6; } 3315 case $ac_cv_host in 3316 *-*-*) ;; 3317 *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; 3318 esac 3319 host=$ac_cv_host 3320 ac_save_IFS=$IFS; IFS='-' 3321 set x $ac_cv_host 3322 shift 3323 host_cpu=$1 3324 host_vendor=$2 3325 shift; shift 3326 # Remember, the first character of IFS is used to create $*, 3327 # except with old shells: 3328 host_os=$* 3329 IFS=$ac_save_IFS 3330 case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac 3331 3332 3333 MACHINE_TYPE=$host_cpu 3139 3334 3140 3335 … … 4503 4698 am__fastdepCC_TRUE='#' 4504 4699 am__fastdepCC_FALSE= 4700 fi 4701 4702 4703 # By default we simply use the C compiler to build assembly code. 4704 4705 test "${CCAS+set}" = set || CCAS=$CC 4706 test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS 4707 4708 4709 4710 depcc="$CCAS" am_compiler_list= 4711 4712 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 4713 $as_echo_n "checking dependency style of $depcc... " >&6; } 4714 if ${am_cv_CCAS_dependencies_compiler_type+:} false; then : 4715 $as_echo_n "(cached) " >&6 4716 else 4717 if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then 4718 # We make a subdir and do the tests there. Otherwise we can end up 4719 # making bogus files that we don't know about and never remove. For 4720 # instance it was reported that on HP-UX the gcc test will end up 4721 # making a dummy file named `D' -- because `-MD' means `put the output 4722 # in D'. 4723 rm -rf conftest.dir 4724 mkdir conftest.dir 4725 # Copy depcomp to subdir because otherwise we won't find it if we're 4726 # using a relative directory. 4727 cp "$am_depcomp" conftest.dir 4728 cd conftest.dir 4729 # We will build objects and dependencies in a subdirectory because 4730 # it helps to detect inapplicable dependency modes. For instance 4731 # both Tru64's cc and ICC support -MD to output dependencies as a 4732 # side effect of compilation, but ICC will put the dependencies in 4733 # the current directory while Tru64 will put them in the object 4734 # directory. 4735 mkdir sub 4736 4737 am_cv_CCAS_dependencies_compiler_type=none 4738 if test "$am_compiler_list" = ""; then 4739 am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` 4740 fi 4741 am__universal=false 4742 4743 4744 for depmode in $am_compiler_list; do 4745 # Setup a source with many dependencies, because some compilers 4746 # like to wrap large dependency lists on column 80 (with \), and 4747 # we should not choose a depcomp mode which is confused by this. 4748 # 4749 # We need to recreate these files for each test, as the compiler may 4750 # overwrite some of them when testing with obscure command lines. 4751 # This happens at least with the AIX C compiler. 4752 : > sub/conftest.c 4753 for i in 1 2 3 4 5 6; do 4754 echo '#include "conftst'$i'.h"' >> sub/conftest.c 4755 # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with 4756 # Solaris 8's {/usr,}/bin/sh. 4757 touch sub/conftst$i.h 4758 done 4759 echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf 4760 4761 # We check with `-c' and `-o' for the sake of the "dashmstdout" 4762 # mode. It turns out that the SunPro C++ compiler does not properly 4763 # handle `-M -o', and we need to detect this. Also, some Intel 4764 # versions had trouble with output in subdirs 4765 am__obj=sub/conftest.${OBJEXT-o} 4766 am__minus_obj="-o $am__obj" 4767 case $depmode in 4768 gcc) 4769 # This depmode causes a compiler race in universal mode. 4770 test "$am__universal" = false || continue 4771 ;; 4772 nosideeffect) 4773 # after this tag, mechanisms are not by side-effect, so they'll 4774 # only be used when explicitly requested 4775 if test "x$enable_dependency_tracking" = xyes; then 4776 continue 4777 else 4778 break 4779 fi 4780 ;; 4781 msvc7 | msvc7msys | msvisualcpp | msvcmsys) 4782 # This compiler won't grok `-c -o', but also, the minuso test has 4783 # not run yet. These depmodes are late enough in the game, and 4784 # so weak that their functioning should not be impacted. 4785 am__obj=conftest.${OBJEXT-o} 4786 am__minus_obj= 4787 ;; 4788 none) break ;; 4789 esac 4790 if depmode=$depmode \ 4791 source=sub/conftest.c object=$am__obj \ 4792 depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ 4793 $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ 4794 >/dev/null 2>conftest.err && 4795 grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && 4796 grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && 4797 grep $am__obj sub/conftest.Po > /dev/null 2>&1 && 4798 ${MAKE-make} -s -f confmf > /dev/null 2>&1; then 4799 # icc doesn't choke on unknown options, it will just issue warnings 4800 # or remarks (even with -Werror). So we grep stderr for any message 4801 # that says an option was ignored or not supported. 4802 # When given -MP, icc 7.0 and 7.1 complain thusly: 4803 # icc: Command line warning: ignoring option '-M'; no argument required 4804 # The diagnosis changed in icc 8.0: 4805 # icc: Command line remark: option '-MP' not supported 4806 if (grep 'ignoring option' conftest.err || 4807 grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else 4808 am_cv_CCAS_dependencies_compiler_type=$depmode 4809 break 4810 fi 4811 fi 4812 done 4813 4814 cd .. 4815 rm -rf conftest.dir 4816 else 4817 am_cv_CCAS_dependencies_compiler_type=none 4818 fi 4819 4820 fi 4821 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 4822 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } 4823 CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type 4824 4825 if 4826 test "x$enable_dependency_tracking" != xno \ 4827 && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then 4828 am__fastdepCCAS_TRUE= 4829 am__fastdepCCAS_FALSE='#' 4830 else 4831 am__fastdepCCAS_TRUE='#' 4832 am__fastdepCCAS_FALSE= 4505 4833 fi 4506 4834 … … 5856 6184 5857 6185 5858 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/examples/Makefile src/tests/Makefile src/ libcfa/Makefile"6186 ac_config_files="$ac_config_files Makefile src/driver/Makefile src/Makefile src/examples/Makefile src/tests/Makefile src/prelude/Makefile src/libcfa/Makefile" 5859 6187 5860 6188 … … 5980 6308 Usually this means the macro was only invoked conditionally." "$LINENO" 5 5981 6309 fi 6310 if test -z "${BUILD_RELEASE_TRUE}" && test -z "${BUILD_RELEASE_FALSE}"; then 6311 as_fn_error $? "conditional \"BUILD_RELEASE\" was never defined. 6312 Usually this means the macro was only invoked conditionally." "$LINENO" 5 6313 fi 6314 if test -z "${BUILD_DEBUG_TRUE}" && test -z "${BUILD_DEBUG_FALSE}"; then 6315 as_fn_error $? "conditional \"BUILD_DEBUG\" was never defined. 6316 Usually this means the macro was only invoked conditionally." "$LINENO" 5 6317 fi 6318 if test -z "${BUILD_NO_LIB_TRUE}" && test -z "${BUILD_NO_LIB_FALSE}"; then 6319 as_fn_error $? "conditional \"BUILD_NO_LIB\" was never defined. 6320 Usually this means the macro was only invoked conditionally." "$LINENO" 5 6321 fi 5982 6322 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then 5983 6323 as_fn_error $? "conditional \"AMDEP\" was never defined. … … 5990 6330 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then 5991 6331 as_fn_error $? "conditional \"am__fastdepCC\" was never defined. 6332 Usually this means the macro was only invoked conditionally." "$LINENO" 5 6333 fi 6334 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then 6335 as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. 5992 6336 Usually this means the macro was only invoked conditionally." "$LINENO" 5 5993 6337 fi … … 6603 6947 "src/examples/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/Makefile" ;; 6604 6948 "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; 6949 "src/prelude/Makefile") CONFIG_FILES="$CONFIG_FILES src/prelude/Makefile" ;; 6605 6950 "src/libcfa/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcfa/Makefile" ;; 6606 6951 … … 7333 7678 7334 7679 7680 if test -z "$BUILD_RELEASE_TRUE"; then : 7681 if test -z "$BUILD_DEBUG_TRUE"; then : 7682 { $as_echo "$as_me:${as_lineno-$LINENO}: Building libcfa for target: release & debug" >&5 7683 $as_echo "$as_me: Building libcfa for target: release & debug" >&6;} 7684 else 7685 { $as_echo "$as_me:${as_lineno-$LINENO}: Building libcfa for target: release" >&5 7686 $as_echo "$as_me: Building libcfa for target: release" >&6;} 7687 fi 7688 else 7689 if test -z "$BUILD_DEBUG_TRUE"; then : 7690 { $as_echo "$as_me:${as_lineno-$LINENO}: Building libcfa for target: debug" >&5 7691 $as_echo "$as_me: Building libcfa for target: debug" >&6;} 7692 else 7693 { $as_echo "$as_me:${as_lineno-$LINENO}: Running cfa without libcfa" >&5 7694 $as_echo "$as_me: Running cfa without libcfa" >&6;} 7695 fi 7696 fi 7697 7335 7698 # Final text 7336 7699 { $as_echo "$as_me:${as_lineno-$LINENO}: result: Cforall configuraton completed. Type \"make -j 8 install\"." >&5 -
configure.ac
r5802a4f r66f8528 53 53 AC_SUBST(CFA_BACKEND_CC) 54 54 55 56 57 AC_ARG_ENABLE(target-release, AS_HELP_STRING([--enable-target-release], [Build and install the release target])) 58 AC_ARG_ENABLE(target-debug, AS_HELP_STRING([--enable-target-debug], [Build and install the debug target])) 59 60 case "$enable_target_release" in 61 yes) 62 case "$enable_target_debug" in 63 yes) 64 build_release="yes" 65 build_debug="yes" 66 ;; 67 no) 68 build_release="yes" 69 build_debug="no" 70 ;; 71 *) 72 build_release="yes" 73 build_debug="no" 74 ;; 75 esac 76 ;; 77 no) 78 case "$enable_target_debug" in 79 yes) 80 build_release="no" 81 build_debug="yes" 82 ;; 83 no) 84 build_release="no" 85 build_debug="no" 86 ;; 87 *) 88 build_release="no" 89 build_debug="yes" 90 ;; 91 esac 92 ;; 93 *) 94 case "$enable_target_debug" in 95 yes) 96 build_release="no" 97 build_debug="yes" 98 ;; 99 no) 100 build_release="yes" 101 build_debug="no" 102 ;; 103 *) 104 build_release="yes" 105 build_debug="yes" 106 ;; 107 esac 108 ;; 109 esac 110 111 AM_CONDITIONAL([BUILD_RELEASE], [test "x$build_release" = "xyes"]) 112 AM_CONDITIONAL([BUILD_DEBUG], [test "x$build_debug" = "xyes"]) 113 AM_CONDITIONAL([BUILD_NO_LIB], [test "x$build_release$build_debug" = "xnono"]) 114 55 115 if test "x$prefix" = "xNONE"; then 56 116 cfa_prefix=${ac_default_prefix} … … 87 147 AC_DEFINE_UNQUOTED(CFA_FLAGS, "${CFAFLAGS}", [compilation flags for cfa libraries and test programs.]) 88 148 AC_SUBST(CFA_FLAGS, ${CFAFLAGS}) 149 150 AC_CANONICAL_HOST 151 AC_SUBST([MACHINE_TYPE],[$host_cpu]) 89 152 90 153 # Checks for programs. 91 154 AC_PROG_CXX 92 155 AC_PROG_CC 156 AM_PROG_AS 93 157 AM_PROG_CC_C_O # deprecated 94 158 # These are often not installed and people miss seeing the "no", so stop the configure. … … 128 192 src/examples/Makefile 129 193 src/tests/Makefile 194 src/prelude/Makefile 130 195 src/libcfa/Makefile 131 196 ]) … … 133 198 AC_OUTPUT 134 199 200 AM_COND_IF([BUILD_RELEASE], 201 [AM_COND_IF([BUILD_DEBUG], 202 [AC_MSG_NOTICE(Building libcfa for target: release & debug)], 203 [AC_MSG_NOTICE(Building libcfa for target: release)])], 204 [AM_COND_IF([BUILD_DEBUG], 205 [AC_MSG_NOTICE(Building libcfa for target: debug)], 206 [AC_MSG_NOTICE(Running cfa without libcfa)])]) 207 135 208 # Final text 136 209 AC_MSG_RESULT(Cforall configuraton completed. Type "make -j 8 install".) -
doc/proposals/concurrency/Makefile
r5802a4f r66f8528 9 9 SOURCES = ${addsuffix .tex, \ 10 10 concurrency \ 11 style \ 12 glossary \ 11 13 } 12 14 -
doc/proposals/concurrency/concurrency.tex
r5802a4f r66f8528 1 1 % requires tex packages: texlive-base texlive-latex-base tex-common texlive-humanities texlive-latex-extra texlive-fonts-recommended 2 2 3 % inline code �...�(copyright symbol) emacs: C-q M-)4 % red highlighting �...�(registered trademark symbol) emacs: C-q M-.5 % blue highlighting �...�(sharp s symbol) emacs: C-q M-_6 % green highlighting �...�(cent symbol) emacs: C-q M-"7 % LaTex escape �...�(section symbol) emacs: C-q M-'8 % keyword escape �...�(pilcrow symbol) emacs: C-q M-^3 % inline code ©...© (copyright symbol) emacs: C-q M-) 4 % red highlighting ®...® (registered trademark symbol) emacs: C-q M-. 5 % blue highlighting ß...ß (sharp s symbol) emacs: C-q M-_ 6 % green highlighting ¢...¢ (cent symbol) emacs: C-q M-" 7 % LaTex escape §...§ (section symbol) emacs: C-q M-' 8 % keyword escape ¶...¶ (pilcrow symbol) emacs: C-q M-^ 9 9 % math escape $...$ (dollar symbol) 10 10 … … 100 100 101 101 \section{Introduction} 102 This proposal provides a minimal core concurrency API that is both simple, efficient and can be reused to build higher-level features. The simplest possible concurrency core is a thread and a lock but this low-level approach is hard to master. An easier approach for users is to support higher-level constructs as the basis of the concurrency in \CFA. Indeed, for highly productive parallel programming, high-level approaches are much more popular~\cite{HPP:Study}. Examples are task based parallelism, message passing and implicit threading.103 104 There are actually two problems that need to be solved in the design of the concurrency for a programming language . Which concurrency tools are available to the users and which parallelism tools are available. While these two concepts are often seen together, they are in fact distinct concepts that require different sorts of tools~\cite{Buhr05a}. Concurrency tools need to handle mutual exclusion and synchronization, while parallelism tools are more about performance, cost and resource utilization.102 This proposal provides a minimal core concurrency API that is both simple, efficient and can be reused to build higher-level features. The simplest possible concurrency core is a thread and a lock but this low-level approach is hard to master. An easier approach for users is to support higher-level constructs as the basis of the concurrency in \CFA. Indeed, for highly productive parallel programming, high-level approaches are much more popular~\cite{HPP:Study}. Examples are task based, message passing and implicit threading. 103 104 There are actually two problems that need to be solved in the design of the concurrency for a programming language: which concurrency tools are available to the users and which parallelism tools are available. While these two concepts are often seen together, they are in fact distinct concepts that require different sorts of tools~\cite{Buhr05a}. Concurrency tools need to handle mutual exclusion and synchronization, while parallelism tools are more about performance, cost and resource utilization. 105 105 106 106 % ##### ####### # # ##### # # ###### ###### ####### # # ##### # # … … 113 113 114 114 \section{Concurrency} 115 Several tool can be used to solve concurrency challenges. Since these challenges always appear with the use of mutable shared state, some languages and libraries simply disallow mutable shared-state (Erlang~\cite{Erlang}, Haskell~\cite{Haskell}, Akka (Scala)~\cite{Akka}). In these paradigms, interaction among concurrent objects relies on message passing~\cite{Thoth,Harmony,V-Kernel} or other paradigms that closely relate to networking concepts. However, in languages that use routine calls as their core abstraction mechanism, these approaches force a clear distinction between concurrent and non-concurrent paradigms (i.e. message passing versus routine call). Which in turn means that, in order to be effective, programmers need to learn two sets of designs patterns. This distinction can be hidden away in library code, but effective use of the librairy will still have to take both paradigms into account. Approaches based on shared memory are more closely related to non-concurrent paradigms since they often rely on non-concurrent constructs like routine calls and objects. At a lower level these can be implemented as locks and atomic operations. Many such mechanisms have been proposed, including semaphores~\cite{Dijkstra68b} and path expressions~\cite{Campbell74}. However, for productivity reasons it is desireable to have a higher-level construct to be the core concurrency paradigm~\cite{HPP:Study}. An approach that is worth mentionning because it is gaining in popularity is transactionnal memory~\cite{Dice10}[Check citation]. While this approach is even pursued by system languages like \CC\cit, the performance and feature set is currently too restrictive to be possible to add such a paradigm to a language like C or \CC\cit, which is why it was rejected as the core paradigm for concurrency in \CFA. One of the most natural, elegant, and efficient mechanisms for synchronization and communication, especially for shared memory systems, is the \emph{monitor}. Monitors were first proposed by Brinch Hansen~\cite{Hansen73} and later described and extended by C.A.R.~Hoare~\cite{Hoare74}. Many programming languages---e.g., Concurrent Pascal~\cite{ConcurrentPascal}, Mesa~\cite{Mesa}, Modula~\cite{Modula-2}, Turing~\cite{Turing:old}, Modula-3~\cite{Modula-3}, NeWS~\cite{NeWS}, Emerald~\cite{Emerald}, \uC~\cite{Buhr92a} and Java~\cite{Java}---provide monitors as explicit language constructs. In addition, operating-system kernels and device drivers have a monitor-like structure, although they often use lower-level primitives such as semaphores or locks to simulate monitors. For these reasons, this project proposes Monitors as the core concurrency construct.115 Several tool can be used to solve concurrency challenges. Since these challenges always appear with the use of mutable shared-state, some languages and libraries simply disallow mutable shared-state (Erlang~\cite{Erlang}, Haskell~\cite{Haskell}, Akka (Scala)~\cite{Akka}). In these paradigms, interaction among concurrent objects relies on message passing~\cite{Thoth,Harmony,V-Kernel} or other paradigms that closely relate to networking concepts (channels\cit for example). However, in languages that use routine calls as their core abstraction mechanism, these approaches force a clear distinction between concurrent and non-concurrent paradigms (i.e., message passing versus routine call). Which in turn means that, in order to be effective, programmers need to learn two sets of designs patterns. This distinction can be hidden away in library code, but effective use of the librairy still has to take both paradigms into account. Approaches based on shared memory are more closely related to non-concurrent paradigms since they often rely on basic constructs like routine calls and objects. At a lower level these can be implemented as locks and atomic operations. Many such mechanisms have been proposed, including semaphores~\cite{Dijkstra68b} and path expressions~\cite{Campbell74}. However, for productivity reasons it is desireable to have a higher-level construct be the core concurrency paradigm~\cite{HPP:Study}. An approach that is worth mentionning because it is gaining in popularity is transactionnal memory~\cite{Dice10}[Check citation]. While this approach is even pursued by system languages like \CC\cit, the performance and feature set is currently too restrictive to add such a paradigm to a language like C or \CC\cit, which is why it was rejected as the core paradigm for concurrency in \CFA. One of the most natural, elegant, and efficient mechanisms for synchronization and communication, especially for shared memory systems, is the \emph{monitor}. Monitors were first proposed by Brinch Hansen~\cite{Hansen73} and later described and extended by C.A.R.~Hoare~\cite{Hoare74}. Many programming languages---e.g., Concurrent Pascal~\cite{ConcurrentPascal}, Mesa~\cite{Mesa}, Modula~\cite{Modula-2}, Turing~\cite{Turing:old}, Modula-3~\cite{Modula-3}, NeWS~\cite{NeWS}, Emerald~\cite{Emerald}, \uC~\cite{Buhr92a} and Java~\cite{Java}---provide monitors as explicit language constructs. In addition, operating-system kernels and device drivers have a monitor-like structure, although they often use lower-level primitives such as semaphores or locks to simulate monitors. For these reasons, this project proposes monitors as the core concurrency construct. 116 116 117 117 % # # ####### # # ### ####### ####### ###### ##### … … 144 144 145 145 \subsubsection{Call semantics} \label{call} 146 The above monitor example displays some of the irintrinsic characteristics. Indeed, it is necessary to use pass-by-reference over pass-by-value for monitor routines. This semantics is important because at their core, monitors are implicit mutual-exclusion objects (locks), and these objects cannot be copied. Therefore, monitors are implicitly non-copyable.147 148 Another aspect to consider is when a monitor acquires its mutual exclusion. For example, a monitor may need to be passed through multiple helper routines that do not acquire the monitor mutual exclusion on entry. Pass through can be both generic helper routines (\code{swap}, \code{sort}, etc.) or specific helper routines like the following to implement an atomic largecounter :149 150 \begin{lstlisting} 151 mutex struct counter_t { /*... */ };152 153 void ?{}(counter_t & nomutex this); 154 size_t ++?(counter_t & mutex this); 146 The above monitor example displays some of the intrinsic characteristics. Indeed, it is necessary to use pass-by-reference over pass-by-value for monitor routines. This semantics is important because at their core, monitors are implicit mutual-exclusion objects (locks), and these objects cannot be copied. Therefore, monitors are implicitly non-copyable. 147 148 Another aspect to consider is when a monitor acquires its mutual exclusion. For example, a monitor may need to be passed through multiple helper routines that do not acquire the monitor mutual-exclusion on entry. Pass through can be both generic helper routines (\code{swap}, \code{sort}, etc.) or specific helper routines like the following to implement an atomic counter : 149 150 \begin{lstlisting} 151 mutex struct counter_t { /*...see section §\ref{data}§...*/ }; 152 153 void ?{}(counter_t & nomutex this); //constructor 154 size_t ++?(counter_t & mutex this); //increment 155 155 156 156 //need for mutex is platform dependent here 157 void ?{}(size_t * this, counter_t & mutex cnt); 158 \end{lstlisting} 159 *semantics of the declaration of \code{mutex struct counter_t} are discussed in details in section \ref{data} 160 161 Here, the constructor(\code(?{})) uses the \code{nomutex} keyword to signify that it does not acquire the monitor mutual exclusion when constructing. This semantics is because object not yet constructed should never be shared and therefore do not require mutual exclusion. The prefix increment operator uses \code{mutex} to protect the incrementing process from race conditions. Finally, there is a conversion operator from \code{counter_t} to \code{size_t}. This conversion may or may not require the \code{mutex} key word depending on whether or not reading an \code{size_t} is an atomic operation or not. 162 163 Having both \code{mutex} and \code{nomutex} keywords could be argued to be redundant based on the meaning of a routine having neither of these keywords. If there were a meaning to routine \code{void foo(counter_t & this)} then one could argue that it should default to the safest option : \code{mutex}. On the other hand, the option of having routine \code{void foo(counter_t & this)} mean \code{nomutex} is unsafe by default and may easily cause subtle errors. It can be argued that this is the more "normal" behavior, \code{nomutex} effectively stating explicitly that "this routine has nothing special". Another alternative is to make having exactly one of these keywords mandatory, which would provide the same semantics but without the ambiguity of supporting routine \code{void foo(counter_t & this)}. Mandatory keywords would also have the added benefice of being self-documented but at the cost of extra typing. In the end, which solution should be picked is still up for debate. For the reminder of this proposal, the explicit approach is used for clarity. 164 165 Regardless of which keyword is kept, it is important to establish when mutex/nomutex may be used as a type qualifier. Consider : 157 void ?{}(size_t * this, counter_t & mutex cnt); //conversion 158 \end{lstlisting} 159 160 Here, the constructor(\code{?\{\}}) uses the \code{nomutex} keyword to signify that it does not acquire the monitor mutual exclusion when constructing. This semantics is because an object not yet constructed should never be shared and therefore does not require mutual exclusion. The prefix increment operator uses \code{mutex} to protect the incrementing process from race conditions. Finally, there is a conversion operator from \code{counter_t} to \code{size_t}. This conversion may or may not require the \code{mutex} key word depending on whether or not reading an \code{size_t} is an atomic operation or not. 161 162 Having both \code{mutex} and \code{nomutex} keywords could be argued to be redundant based on the meaning of a routine having neither of these keywords. For example, given a routine without wualifiers \code{void foo(counter_t & this)} then one could argue that it should default to the safest option \code{mutex}. On the other hand, the option of having routine \code{void foo(counter_t & this)} mean \code{nomutex} is unsafe by default and may easily cause subtle errors. It can be argued that \code{nomutex} is the more "normal" behaviour, the \code{nomutex} keyword effectively stating explicitly that "this routine has nothing special". Another alternative is to make having exactly one of these keywords mandatory, which would provide the same semantics but without the ambiguity of supporting routine \code{void foo(counter_t & this)}. Mandatory keywords would also have the added benefice of being self-documented but at the cost of extra typing. In the end, which solution should be picked is still up for debate. For the reminder of this proposal, the explicit approach is used for clarity. 163 164 The next semantic decision is to establish when mutex/nomutex may be used as a type qualifier. Consider the following declarations: 166 165 \begin{lstlisting} 167 166 int f1(monitor & mutex m); … … 171 170 int f5(graph(monitor*) & mutex m); 172 171 \end{lstlisting} 173 174 The problem is to indentify which object(s) should be acquired. Furthermore, each object needs to be acquired only once. In case of simple routines like \code{f1} and \code{f2} it is easy to identify an exhaustive list of objects to acquire on entering. Adding indirections (\code{f3}) still allows the compiler and programmer to indentify which object is acquired. However, adding in arrays (\code{f4}) makes it much harder. Array lengths are not necessarily known in C and even then making sure we only acquire objects once becomes also none trivial. This can be extended to absurd limits like \code{f5}, which uses a graph of monitors. To keep everyone as sane as possible~\cite{Chicken}, this projects imposes the requirement that a routine may only acquire one monitor per parameter and it must be the type of the parameter (ignoring potential qualifiers and indirections). Also note that while routine \code{f3} can be supported, meaning that monitor \code{**m} will be acquired, passing an array to this routine would be type safe and result in undefined behavior. For this reason, it would also be reasonnable to disallow mutex in the context where arrays may be passed. 172 The problem is to indentify which object(s) should be acquired. Furthermore, each object needs to be acquired only once. In the case of simple routines like \code{f1} and \code{f2} it is easy to identify an exhaustive list of objects to acquire on entry. Adding indirections (\code{f3}) still allows the compiler and programmer to indentify which object is acquired. However, adding in arrays (\code{f4}) makes it much harder. Array lengths are not necessarily known in C and even then making sure we only acquire objects once becomes also none trivial. This can be extended to absurd limits like \code{f5}, which uses a graph of monitors. To keep everyone as sane as possible~\cite{Chicken}, this projects imposes the requirement that a routine may only acquire one monitor per parameter and it must be the type of the parameter (ignoring potential qualifiers and indirections). Also note that while routine \code{f3} can be supported, meaning that monitor \code{**m} is be acquired, passing an array to this routine would be type safe and yet result in undefined behavior because only the first element of the array is acquired. However, this ambiguity is part of the C type system with respects to arrays. For this reason, it would also be reasonnable to disallow mutex in the context where arrays may be passed. 175 173 176 174 % ###### # ####### # … … 183 181 184 182 \subsubsection{Data semantics} \label{data} 185 Once the call semantics are established, the next step is to establish data semantics. Indeed, until now a monitor is used simply as a generic handle but in most cases monitors contian shared data. This data should be intrinsic to the monitor declaration to prevent any accidental use of data without its appr ipriate protection. For example here is a more fleshed-out version of the counter showed in \ref{call}:183 Once the call semantics are established, the next step is to establish data semantics. Indeed, until now a monitor is used simply as a generic handle but in most cases monitors contian shared data. This data should be intrinsic to the monitor declaration to prevent any accidental use of data without its appropriate protection. For example, here is a complete version of the counter showed in section \ref{call}: 186 184 \begin{lstlisting} 187 185 mutex struct counter_t { … … 203 201 \end{lstlisting} 204 202 205 This simple counter offers an example of monitor usage. Notice how the counter is used without any explicit synchronisation and yet supports thread-safe semantics for both reading and writting:203 This simple counter is used as follows: 206 204 \begin{center} 207 205 \begin{tabular}{c @{\hskip 0.35in} c @{\hskip 0.35in} c} 208 206 \begin{lstlisting} 207 //shared counter 209 208 counter_t cnt; 210 209 210 //multiple threads access counter 211 211 thread 1 : cnt++; 212 212 thread 2 : cnt++; … … 218 218 \end{center} 219 219 220 These simple mutual exclusion semantics also naturally expandto multi-monitor calls.220 Notice how the counter is used without any explicit synchronisation and yet supports thread-safe semantics for both reading and writting. Unlike object-oriented monitors, where calling a mutex member \emph{implicitly} acquires mutual-exclusion, \CFA uses an explicit mechanism to acquire mutual-exclusion. A consequence of this approach is that it extends to multi-monitor calls. 221 221 \begin{lstlisting} 222 222 int f(MonitorA & mutex a, MonitorB & mutex b); … … 226 226 f(a,b); 227 227 \end{lstlisting} 228 229 This code acquires both locks before entering the critical section (Referenced as \gls{group-acquire} from now on). In practice, writing multi-locking routines that can not lead to deadlocks can be tricky. Having language support for such a feature is therefore a significant asset for \CFA. In the case presented above, \CFA guarantees that the order of aquisition will be consistent across calls to routines using the same monitors as arguments. However, since \CFA monitors use multi-acquiring locks users can effectively force the acquiring order. For example, notice which routines use \code{mutex}/\code{nomutex} and how this affects aquiring order : 230 \begin{lstlisting} 231 void foo(A & mutex a, B & mutex a) { 232 //... 233 } 234 235 void bar(A & mutex a, B & nomutex a) 236 //... 237 foo(a, b); 238 //... 239 } 240 241 void baz(A & nomutex a, B & mutex a) 242 //... 243 foo(a, b); 244 //... 245 } 246 \end{lstlisting} 247 248 Such a use will lead to nested monitor call problems~\cite{Lister77}, which are a specific implementation of the lock acquiring order problem. In the example above, the user uses implicit ordering in the case of function \code{foo} but explicit ordering in the case of \code{bar} and \code{baz}. This subtle mistake means that calling these routines concurrently may lead to deadlocks, depending on the implicit ordering matching the explicit ordering. As shown on several occasion\cit, solving this problems requires to : 228 This code acquires both locks before entering the critical section, called \emph{\gls{group-acquire}}. In practice, writing multi-locking routines that do not lead to deadlocks is tricky. Having language support for such a feature is therefore a significant asset for \CFA. In the case presented above, \CFA guarantees that the order of aquisition is consistent across calls to routines using the same monitors as arguments. However, since \CFA monitors use multi-acquisition locks, users can effectively force the acquiring order. For example, notice which routines use \code{mutex}/\code{nomutex} and how this affects aquiring order : 229 \begin{lstlisting} 230 void foo(A & mutex a, B & mutex b) { //acquire a & b 231 //... 232 } 233 234 void bar(A & mutex a, B & nomutex b) { //acquire a 235 //... 236 foo(a, b); //acquire b 237 //... 238 } 239 240 void baz(A & nomutex a, B & mutex b) { //acquire b 241 //... 242 foo(a, b); //acquire a 243 //... 244 } 245 \end{lstlisting} 246 247 The multi-acquisition monitor lock allows a monitor lock to be acquired by both \code{bar} or \code{baz} and acquired again in \code{foo}. In the calls to \code{bar} and \code{baz} the monitors are acquired in opposite order. such use leads to nested monitor call problems~\cite{Lister77}, which is a specific implementation of the lock acquiring order problem. In the example above, the user uses implicit ordering in the case of function \code{foo} but explicit ordering in the case of \code{bar} and \code{baz}. This subtle mistake means that calling these routines concurrently may lead to deadlock and is therefore undefined behavior. As shown on several occasion\cit, solving this problem requires : 249 248 \begin{enumerate} 250 \item Dynamically track the monitorcall order.249 \item Dynamically tracking of the monitor-call order. 251 250 \item Implement rollback semantics. 252 251 \end{enumerate} 253 252 254 While the first requirement is already a significant constraint on the system, implementing a general rollback semantics in a C-like language is prohibitively complex \cit. In \CFA users simply need to be carefull when acquiring multiple monitors at the same time.253 While the first requirement is already a significant constraint on the system, implementing a general rollback semantics in a C-like language is prohibitively complex \cit. In \CFA, users simply need to be carefull when acquiring multiple monitors at the same time. 255 254 256 255 % ###### ####### ####### # ### # ##### … … 271 270 272 271 \subsubsection{Implementation Details: Interaction with polymorphism} 273 At first glance, interaction between monitors and \CFA's concept of polymorphism seem complex to support. However, it can be reasoned that entry-point locking can solve most of the issues that could be present with polymorphism. 274 275 First of all, interaction between \code{otype} polymorphism and monitors is impossible since monitors do not support copying. Therefore, the main question is how to support \code{dtype} polymorphism. Since a monitor's main purpose is to ensure mutual exclusion when accessing shared data, this implies that mutual exclusion is only required for routines that do in fact access shared data. However, since \code{dtype} polymorphism always handles incomplete types (by definition), no \code{dtype} polymorphic routine can access shared data since the data requires knowledge about the type. Therefore the only concern when combining \code{dtype} polymorphism and monitors is to protect access to routines. \Gls{callsite-locking}\footnotemark would require a significant amount of work, since any \code{dtype} routine may have to obtain some lock before calling a routine, depending on whether or not the type passed is a monitor. However, with \gls{entry-point-locking}\footnotemark[\value{footnote}] calling a monitor routine becomes exactly the same as calling it from anywhere else. 276 \footnotetext{See glossary for a definition of \gls{callsite-locking} and \gls{entry-point-locking}} 272 At first glance, interaction between monitors and \CFA's concept of polymorphism seems complex to support. However, it is shown that entry-point locking can solve most of the issues. 273 274 Before looking into complex control flow, it is important to present the difference between the two acquiring options : \gls{callsite-locking} and \gls{entry-point-locking}, i.e. acquiring the monitors before making a mutex call or as the first instruction of the mutex call. For example: 275 276 \begin{center} 277 \begin{tabular}{|c|c|c|} 278 Code & \gls{callsite-locking} & \gls{entry-point-locking} \\ 279 \CFA & pseudo-code & pseudo-code \\ 280 \hline 281 \begin{lstlisting} 282 void foo(monitor & mutex a) { 283 284 285 286 //Do Work 287 //... 288 289 } 290 291 void main() { 292 monitor a; 293 294 295 296 foo(a); 297 298 } 299 \end{lstlisting} &\begin{lstlisting} 300 foo(& a) { 301 302 303 304 //Do Work 305 //... 306 307 } 308 309 main() { 310 monitor a; 311 //calling routine 312 //handles concurrency 313 acquire(a); 314 foo(a); 315 release(a); 316 } 317 \end{lstlisting} &\begin{lstlisting} 318 foo(& a) { 319 //called routine 320 //handles concurrency 321 acquire(a); 322 //Do Work 323 //... 324 release(a); 325 } 326 327 main() { 328 monitor a; 329 330 331 332 foo(a); 333 334 } 335 \end{lstlisting} 336 \end{tabular} 337 \end{center} 338 339 First of all, interaction between \code{otype} polymorphism and monitors is impossible since monitors do not support copying. Therefore, the main question is how to support \code{dtype} polymorphism. Since a monitor's main purpose is to ensure mutual exclusion when accessing shared data, this implies that mutual exclusion is only required for routines that do in fact access shared data. However, since \code{dtype} polymorphism always handles incomplete types (by definition), no \code{dtype} polymorphic routine can access shared data since the data requires knowledge about the type. Therefore, the only concern when combining \code{dtype} polymorphism and monitors is to protect access to routines. \Gls{callsite-locking} would require a significant amount of work, since any \code{dtype} routine may have to obtain some lock before calling a routine, depending on whether or not the type passed is a monitor. However, with \gls{entry-point-locking} calling a monitor routine becomes exactly the same as calling it from anywhere else. 340 341 277 342 278 343 % ### # # ####### ##### ##### # # ####### ###### … … 285 350 286 351 \subsection{Internal scheduling} \label{insched} 287 Monitors also need to schedule waiting threads within itas a mean of synchronization. Internal scheduling is one of the simple examples of such a feature. It allows users to declare condition variables and have threads wait and signaled from them. Here is a simple example of such a technique :352 Monitors also need to schedule waiting threads internally as a mean of synchronization. Internal scheduling is one of the simple examples of such a feature. It allows users to declare condition variables and have threads wait and signaled from them. Here is a simple example of such a technique : 288 353 289 354 \begin{lstlisting} … … 303 368 \end{lstlisting} 304 369 305 Here routine \code{foo} waits for the \code{signal} from \code{bar} before making further progress, effectively ensuring a basic ordering. This semantic can easily be extended to multi-monitor calls by offering the same guarantee.370 Note that in \CFA, \code{condition} have no particular need to be stored inside a monitor, beyond any software engineering reasons. Here routine \code{foo} waits for the \code{signal} from \code{bar} before making further progress, effectively ensuring a basic ordering. This semantic can easily be extended to multi-monitor calls by offering the same guarantee. 306 371 \begin{center} 307 372 \begin{tabular}{ c @{\hskip 0.65in} c } … … 337 402 condition e; 338 403 404 //acquire a & b 339 405 void foo(monitor & mutex a, 340 406 monitor & mutex b) { 341 407 342 wait(e); 408 wait(e); //release a & b 343 409 } 344 410 … … 352 418 condition e; 353 419 420 //acquire a 354 421 void bar(monitor & mutex a, 355 422 monitor & nomutex b) { … … 357 424 } 358 425 426 //acquire a & b 359 427 void foo(monitor & mutex a, 360 428 monitor & mutex b) { 361 wait(e); 429 wait(e); //release a & b 362 430 } 363 431 … … 366 434 condition e; 367 435 436 //acquire a 368 437 void bar(monitor & mutex a, 369 438 monitor & nomutex b) { … … 371 440 } 372 441 442 //acquire b 373 443 void baz(monitor & nomutex a, 374 444 monitor & mutex b) { 375 wait(e); 445 wait(e); //release b 376 446 } 377 447 … … 381 451 \end{center} 382 452 383 Note that in \CFA, \code{condition} have no particular need to be stored inside a monitor, beyond any software engineering reasons. Context 1 is the simplest way of acquiring more than one monitor (\gls{group-acquire}), using a routine wiht multiple parameters having the \code{mutex} keyword. Context 2 also uses \gls{group-acquire} as well in routine \code{foo}. However, the routine is called by routine \code{bar} which only acquires monitor \code{a}. Since monitors can be acquired multiple times this will not cause a deadlock by itself but it does force the acquiring order to \code{a} then \code{b}. Context 3 also forces the acquiring order to be \code{a} then \code{b} but does not use \gls{group-acquire}. The previous example tries to illustrate the semantics that must be established to support releasing monitors in a \code{wait} statement. In all casesthe behavior of the wait statment is to release all the locks that were acquired my the inner-most monitor call. That is \code{a & b} in context 1 and 2 and \code{b} only in context 3. Here are a few other examples of this behavior.453 Context 1 is the simplest way of acquiring more than one monitor (\gls{group-acquire}), using a routine with multiple parameters having the \code{mutex} keyword. Context 2 also uses \gls{group-acquire} as well in routine \code{foo}. However, the routine is called by routine \code{bar}, which only acquires monitor \code{a}. Since monitors can be acquired multiple times this does not cause a deadlock by itself but it does force the acquiring order to \code{a} then \code{b}. Context 3 also forces the acquiring order to be \code{a} then \code{b} but does not use \gls{group-acquire}. The previous example tries to illustrate the semantics that must be established to support releasing monitors in a \code{wait} statement. In all cases, the behavior of the wait statment is to release all the locks that were acquired my the inner-most monitor call. That is \code{a & b} in context 1 and 2 and \code{b} only in context 3. Here are a few other examples of this behavior. 384 454 385 455 … … 389 459 condition e; 390 460 391 //acquire a461 //acquire b 392 462 void foo(monitor & nomutex a, 393 463 monitor & mutex b) { … … 399 469 monitor & nomutex b) { 400 470 401 //release a 402 //keep b 403 wait(e); 471 wait(e); //release a 472 //keep b 404 473 } 405 474 … … 418 487 monitor & nomutex b) { 419 488 420 //release b 421 //keep a 422 wait(e); 489 wait(e); //release b 490 //keep a 423 491 } 424 492 … … 437 505 monitor & nomutex b) { 438 506 439 //release a & b 440 //keep none 441 wait(e); 507 wait(e); //release a & b 508 //keep none 442 509 } 443 510 … … 446 513 \end{tabular} 447 514 \end{center} 448 Note the right-most example which uses a helper routine and therefore is not relevant to find which monitors will be released. 449 450 These semantics imply that in order to release of subset of the monitors currently held, users must write (and name) a routine that only acquires the desired subset and simply calls wait. While users can use this method, \CFA offers the \code{wait_release}\footnote{Not sure if an overload of \code{wait} would work...} which will release only the specified monitors. 451 452 Regardless of the context in which the \code{wait} statement is used, \code{signal} must used holding the same set of monitors. In all cases, signal only needs a single parameter, the condition variable that needs to be signalled. But \code{signal} needs to be called from the same monitor(s) that call to \code{wait}. Otherwise, mutual exclusion cannot be properly transferred back to the waiting monitor. 515 Note the right-most example is actually a trick pulled on the reader. Monitor state information is stored in thread local storage rather then in the routine context, which means that helper routines and other \code{nomutex} routines are invisible to the runtime system in regards to concurrency. This means that in the right-most example, the routine parameters are completly unnecessary. However, calling this routine from outside a valid monitor context is undefined. 516 517 These semantics imply that in order to release of subset of the monitors currently held, users must write (and name) a routine that only acquires the desired subset and simply calls wait. While users can use this method, \CFA offers the \code{wait_release}\footnote{Not sure if an overload of \code{wait} would work...} which will release only the specified monitors. In the center previous examples, the code in the center uses the \code{bar} routine to only release monitor \code{b}. Using the \code{wait_release} helper, this can be rewritten without having the name two routines : 518 \begin{center} 519 \begin{tabular}{ c c c } 520 \begin{lstlisting} 521 condition e; 522 523 //acquire a & b 524 void foo(monitor & mutex a, 525 monitor & mutex b) { 526 bar(a,b); 527 } 528 529 //acquire b 530 void bar(monitor & mutex a, 531 monitor & nomutex b) { 532 533 wait(e); //release b 534 //keep a 535 } 536 537 foo(a, b); 538 \end{lstlisting} &\begin{lstlisting} 539 => 540 \end{lstlisting} &\begin{lstlisting} 541 condition e; 542 543 //acquire a & b 544 void foo(monitor & mutex a, 545 monitor & mutex b) { 546 wait_release(e,b); //release b 547 //keep a 548 } 549 550 foo(a, b); 551 \end{lstlisting} 552 \end{tabular} 553 \end{center} 554 555 Regardless of the context in which the \code{wait} statement is used, \code{signal} must be called holding the same set of monitors. In all cases, signal only needs a single parameter, the condition variable that needs to be signalled. But \code{signal} needs to be called from the same monitor(s) that call to \code{wait}. Otherwise, mutual exclusion cannot be properly transferred back to the waiting monitor. 453 556 454 557 Finally, an additional semantic which can be very usefull is the \code{signal_block} routine. This routine behaves like signal for all of the semantics discussed above, but with the subtelty that mutual exclusion is transferred to the waiting task immediately rather than wating for the end of the critical section. … … 464 567 \newpage 465 568 \subsection{External scheduling} \label{extsched} 466 A s one might expect, the alternative to Internal scheduling is to use External scheduling instead. This method is somewhat more robust to deadlocks since one of the threads keeps a relatively tight control on scheduling. Indeed, as the following examples will demonstrate, external scheduling allows users to wait for events from other threads without the concern of unrelated events occuring. External scheduling can generally be done either in terms of control flow (ex: \uC) or in terms of data (ex: Go). Of course, both of these paradigms have their own strenghts and weaknesses but for this project control flow semantics where chosen to stay consistent with the rest of the languages semantics. Two challenges specific to \CFA arise when trying to add external scheduling with loose object definitions and multi-monitor routines. The following example shows whata simple use \code{accept} versus \code{wait}/\code{signal} and its advantages.569 An alternative to internal scheduling is to use external scheduling instead. This method is more constrained and explicit which may help users tone down the undeterministic nature of concurrency. Indeed, as the following examples demonstrates, external scheduling allows users to wait for events from other threads without the concern of unrelated events occuring. External scheduling can generally be done either in terms of control flow (ex: \uC) or in terms of data (ex: Go). Of course, both of these paradigms have their own strenghts and weaknesses but for this project control flow semantics where chosen to stay consistent with the rest of the languages semantics. Two challenges specific to \CFA arise when trying to add external scheduling with loose object definitions and multi-monitor routines. The following example shows a simple use \code{accept} versus \code{wait}/\code{signal} and its advantages. 467 570 468 571 \begin{center} … … 482 585 483 586 public: 484 void f() ;587 void f() { /*...*/ } 485 588 void g() { _Accept(f); } 486 589 private: … … 490 593 \end{center} 491 594 492 In the case of internal scheduling, the call to \code{wait} only guarantees that \code{g} was the last routine to access the monitor. This intails that the routine \code{f} may have acquired mutual exclusion several times while routine \code{h} was waiting. On the other hand, external scheduling guarantees that while routine \code{h} was waiting, no routine other than \code{g} could acquire the monitor.595 In the case of internal scheduling, the call to \code{wait} only guarantees that \code{g} is the last routine to access the monitor. This intails that the routine \code{f} may have acquired mutual exclusion several times while routine \code{h} was waiting. On the other hand, external scheduling guarantees that while routine \code{h} was waiting, no routine other than \code{g} could acquire the monitor. 493 596 \\ 494 597 … … 673 776 % # # # # # # # ####### ####### ####### ####### ### ##### # # 674 777 \section{Parallelism} 675 Historically, computer performance was about processor speeds and instructions count. However, with heat dissipation being a direct consequence of speed increase, parallelism has become the new source for increased performance~\cite{Sutter05, Sutter05b}. In this decade, it is not longer reasonnable to create high-performance application without caring about parallelism. Indeed, parallelism is an important aspect of performance and more specifically throughput and hardware utilization. The lowest level approach of parallelism is to use \glspl{kthread} in combination with semantics like \code{fork}, \code{join}, etc. However, since these have significant costs and limitations\glspl{kthread} are now mostly used as an implementation tool rather than a user oriented one. There are several alternatives to solve these issues that all have strengths and weaknesses. While there are many variations of the presented paradigms, most of these variations do not actually change the guarantees or the semantics, they simply move costs in order to achieve better performance for certain workloads.778 Historically, computer performance was about processor speeds and instructions count. However, with heat dissipation being a direct consequence of speed increase, parallelism has become the new source for increased performance~\cite{Sutter05, Sutter05b}. In this decade, it is not longer reasonnable to create a high-performance application without caring about parallelism. Indeed, parallelism is an important aspect of performance and more specifically throughput and hardware utilization. The lowest-level approach of parallelism is to use \glspl{kthread} in combination with semantics like \code{fork}, \code{join}, etc. However, since these have significant costs and limitations, \glspl{kthread} are now mostly used as an implementation tool rather than a user oriented one. There are several alternatives to solve these issues that all have strengths and weaknesses. While there are many variations of the presented paradigms, most of these variations do not actually change the guarantees or the semantics, they simply move costs in order to achieve better performance for certain workloads. 676 779 677 780 \subsection{User-level threads} 678 A direct improvement on the \gls{kthread} approach is to use \glspl{uthread}. These threads offer most of the same features that the operating system already provide but can be used on a much larger scale. This approach is the most powerfull solution as it allows all the features of multi-threading while removing several of the more expensives costs of using kernel threads. The down side is that almost none of the low-level threading problems are hidden, users still have to think about data races, deadlocks and synchronization issues. These issues can be somewhat alleviated by a concurrency toolkit with strong garantees but the parallelism toolkit offers very little to reduce complexity in itself.679 680 Examples of languages that support are Erlang~\cite{Erlang} and \uC~\cite{uC++book}.681 682 \subs ection{Fibers : user-level threads without preemption}683 In the middle of the flexibility versus complexity spectrum lay \glspl{fiber} which offer \glspl{uthread} without the complexity of preemption by using cooperative scheduling. On a single core machine this means users need not worry about concurrency. On multi-core machines, while concurrency is still a concern, it is only a problem for fibers across cores but not while on the same core. This extra guarantee plus the fact that creating and destroying fibers are implicit synchronizing points means preventing mutable shared ressources still leaves many control flow options. However, multi-core processors can still execute fibers in parallel. This means users either need to worry about mutual exclusion, deadlocks and race conditions, or limit themselves to subset of concurrency primitives, raising the complexity in both cases. In this aspect, fibers can be seen as a more powerfull alternative to \glspl{job}.781 A direct improvement on the \gls{kthread} approach is to use \glspl{uthread}. These threads offer most of the same features that the operating system already provide but can be used on a much larger scale. This approach is the most powerfull solution as it allows all the features of multi-threading, while removing several of the more expensives costs of using kernel threads. The down side is that almost none of the low-level threading problems are hidden, users still have to think about data races, deadlocks and synchronization issues. These issues can be somewhat alleviated by a concurrency toolkit with strong garantees but the parallelism toolkit offers very little to reduce complexity in itself. 782 783 Examples of languages that support \glspl{uthread} are Erlang~\cite{Erlang} and \uC~\cite{uC++book}. 784 785 \subsubsection{Fibers : user-level threads without preemption} 786 A popular varient of \glspl{uthread} is what is often reffered to as \glspl{fiber}. However, \glspl{fiber} do not present meaningful semantical differences with \glspl{uthread}. Advocates of \glspl{fiber} list their high performance and ease of implementation as majors strenghts of \glspl{fiber} but the performance difference between \glspl{uthread} and \glspl{fiber} is controversial and the ease of implementation, while true, is a weak argument in the context of language design. Therefore this proposal largely ignore fibers. 684 787 685 788 An example of a language that uses fibers is Go~\cite{Go} 686 789 687 790 \subsection{Jobs and thread pools} 688 The approach on the opposite end of the spectrum is to base parallelism on \glspl{pool}. Indeed, \glspl{pool} offer limited flexibility but at the benefit of a simpler user interface. In \gls{pool} based systems, users express parallelism as units of work and the dependency graph (either explicit or implicit) that tie them together. This approach means users need not worry about concurrency but significantly limits the interaction that can occur between different jobs. Indeed, any \gls{job} that blocks also blocks the underlying worker, which effectively means the CPU utilization, and therefore throughput, suffers noticeably. It can be argued that a solution to this problem is to use more workers than available cores. However, unless the number of jobs and the number of workers are comparable, having a significant amount of blocked jobs willalways results in idles cores.791 The approach on the opposite end of the spectrum is to base parallelism on \glspl{pool}. Indeed, \glspl{pool} offer limited flexibility but at the benefit of a simpler user interface. In \gls{pool} based systems, users express parallelism as units of work and a dependency graph (either explicit or implicit) that tie them together. This approach means users need not worry about concurrency but significantly limits the interaction that can occur among jobs. Indeed, any \gls{job} that blocks also blocks the underlying worker, which effectively means the CPU utilization, and therefore throughput, suffers noticeably. It can be argued that a solution to this problem is to use more workers than available cores. However, unless the number of jobs and the number of workers are comparable, having a significant amount of blocked jobs always results in idles cores. 689 792 690 793 The gold standard of this implementation is Intel's TBB library~\cite{TBB}. 691 794 692 795 \subsection{Paradigm performance} 693 While the choice between the three paradigms listed above may have significant performance implication, it is difficult to pindown the performance implications of chosing a model at the language level. Indeed, in many situations one of these paradigms may show better performance but it all strongly depends on the workload. Having a large amount of mostly independent units of work to execute almost guarantess that the \gls{pool} based system has the best performance thanks to the lower memory overhead. However, interactions between jobs can easily exacerbate contention. User-level threads may allows fine grain context switching which may result in better resource utilisation but context switches will be more expansive and it is also harder for users to get perfect tunning. As with every example, fibers sit somewhat in the middle of the spectrum. Furthermore, if the units of uninterrupted work are large enough the paradigm choice will belargely amorticised by the actual work done.796 While the choice between the three paradigms listed above may have significant performance implication, it is difficult to pindown the performance implications of chosing a model at the language level. Indeed, in many situations one of these paradigms may show better performance but it all strongly depends on the workload. Having a large amount of mostly independent units of work to execute almost guarantess that the \gls{pool} based system has the best performance thanks to the lower memory overhead. However, interactions between jobs can easily exacerbate contention. User-level threads allow fine-grain context switching, which results in better resource utilisation, but context switches will be more expansive and the extra control means users need to tweak more variables to get the desired performance. Furthermore, if the units of uninterrupted work are large enough the paradigm choice is largely amorticised by the actual work done. 694 797 695 798 % ##### ####### # ####### ###### ###### … … 702 805 703 806 \section{\CFA 's Thread Building Blocks} 704 As a system level language, \CFA should offer both performance and flexibilty as its primary goals, simplicity and user-friendliness being a secondary concern. Therefore, the core of parallelism in \CFA should prioritize power and efficiency. With this said, it is possible to deconstruct the three paradigms details aboved in order to get simple building blocks. Here is a table showing the core caracteristics of the mentionned paradigms : 705 \begin{center} 706 \begin{tabular}[t]{| r | c | c |} 707 \cline{2-3} 708 \multicolumn{1}{ c| }{} & Has a stack & Preemptive \\ 709 \hline 710 \Glspl{pool} & X & X \\ 711 \hline 712 \Glspl{fiber} & \checkmark & X \\ 713 \hline 714 \Glspl{uthread} & \checkmark & \checkmark \\ 715 \hline 716 \end{tabular} 717 \end{center} 718 719 This table is missing several variations (for example jobs on \glspl{uthread} or \glspl{fiber}), but these variation affect mostly performance and do not effect the guarantees as the presented paradigm do. 720 721 As shown in section \ref{cfaparadigms} these different blocks being available in \CFA it is trivial to reproduce any of these paradigm. 807 As a system-level language, \CFA should offer both performance and flexibilty as its primary goals, simplicity and user-friendliness being a secondary concern. Therefore, the core of parallelism in \CFA should prioritize power and efficiency. With this said, deconstructing popular paradigms in order to get simple building blocks yields \glspl{uthread} as the core parallelism block. \Glspl{pool} and other parallelism paradigms can then be built on top of the underlying threading model. 722 808 723 809 % ####### # # ###### ####### # ###### ##### … … 730 816 731 817 \subsection{Thread Interface} 732 The basic building blocks of \CFA are \glspl{cfathread}. By default these are implemented as \glspl{uthread} and as such offer a flexible and lightweight threading interface (lightweight comparatievelyto \glspl{kthread}). A thread can be declared using a struct declaration with prefix \code{thread} as follows :818 The basic building blocks of \CFA are \glspl{cfathread}. By default these are implemented as \glspl{uthread}, and as such, offer a flexible and lightweight threading interface (lightweight compared to \glspl{kthread}). A thread can be declared using a struct declaration with prefix \code{thread} as follows : 733 819 734 820 \begin{lstlisting} … … 736 822 \end{lstlisting} 737 823 738 Obviously, for this thread implementation to be usefull it must run some user code. Several other threading interfaces use some function pointer representation as the interface of threads (for example : \Csharp~\cite{Csharp} and Scala~\cite{Scala}). However, this proposal considers that statically tying a \code{main} routine to a thread superseeds this approach. Since the \code{main} routine is definitely a special routine in \CFA, the existing syntax for declaring routines with unordinary namecan be extended, i.e. operator overloading. As such the \code{main} routine of a thread can be defined as :824 Obviously, for this thread implementation to be usefull it must run some user code. Several other threading interfaces use a function-pointer representation as the interface of threads (for example : \Csharp~\cite{Csharp} and Scala~\cite{Scala}). However, this proposal considers that statically tying a \code{main} routine to a thread superseeds this approach. Since the \code{main} routine is already a special routine in \CFA (where the program begins), the existing syntax for declaring routines names with special semantics can be extended, i.e. operator overloading. As such the \code{main} routine of a thread can be defined as : 739 825 \begin{lstlisting} 740 826 thread struct foo {}; 741 827 742 void ?main( threadfoo* this) {743 /*... Some useful code ...*/744 } 745 \end{lstlisting} 746 747 With these semantics it is trivial to write a thread type that takes a function pointer as parameter and executes it on its stack asynchronously :828 void ?main(foo* this) { 829 sout | "Hello World!" | endl; 830 } 831 \end{lstlisting} 832 833 In this example, threads of type \code{foo} will start there execution in the \code{void ?main(foo*)} routine which in this case prints \code{"Hello World!"}. While this proposoal encourages this approach which is enforces strongly type programming. Users may prefer to use the routine based thread semantics for the sake of simplicity. With these semantics it is trivial to write a thread type that takes a function pointer as parameter and executes it on its stack asynchronously : 748 834 \begin{lstlisting} 749 835 typedef void (*voidFunc)(void); … … 754 840 755 841 //ctor 756 void ?{}( threadFuncRunner* this, voidFunc inFunc) {842 void ?{}(FuncRunner* this, voidFunc inFunc) { 757 843 func = inFunc; 758 844 } 759 845 760 846 //main 761 void ?main( threadFuncRunner* this) {847 void ?main(FuncRunner* this) { 762 848 this->func(); 763 849 } 764 850 \end{lstlisting} 765 851 766 % In this example \code{func} is a function pointer stored in \acrfull{tls}, which is \CFA is both easy to use and completly typesafe. 767 768 Of course for threads to be useful, it must be possible to start and stop threads and wait for them to complete execution. While using an \acrshort{api} such as \code{fork} and \code{join} is relatively common in the literature, such an interface is not needed. Indeed, the simplest approach is to use \acrshort{raii} principles and have threads \code{fork} once the constructor has completed and \code{join} before the destructor runs. 769 \begin{lstlisting} 770 thread struct FuncRunner; //FuncRunner declared above 771 772 void world() { 852 Of course for threads to be useful, it must be possible to start and stop threads and wait for them to complete execution. While using an \acrshort{api} such as \code{fork} and \code{join} is relatively common in the literature, such an interface is unnecessary. Indeed, the simplest approach is to use \acrshort{raii} principles and have threads \code{fork} once the constructor has completed and \code{join} before the destructor runs. 853 \begin{lstlisting} 854 thread struct World; //FuncRunner declared above 855 856 void ?main(thread World* this) { 773 857 sout | "World!" | endl; 774 858 } 775 859 776 860 void main() { 777 FuncRunner run = {world};861 World w; 778 862 //Thread run forks here 779 863 … … 784 868 } 785 869 \end{lstlisting} 786 This semantic has several advantages over explicit semantics : typesafety is guaranteed, a thread is always started and stopped exaclty once and users cannot make any progamming errors. Furthermore it naturally follows the memory allocation semantics, which means users do not need to learn multiple semantics. 787 788 These semantics also naturally scale to multiple threads meaning basic synchronisation is very simple : 870 This semantic has several advantages over explicit semantics : typesafety is guaranteed, a thread is always started and stopped exaclty once and users cannot make any progamming errors. However, one of the apparent drawbacks of this system is that threads now always form a lattice, that is they are always destroyed in opposite order of construction. While this seems like a significant limitation, existing \CFA semantics can solve this problem. Indeed, by using dynamic allocation to create threads will naturally let threads outlive the scope in which the thread was created much like dynamically allocating memory will let objects outlive the scope in which thy were created : 871 789 872 \begin{lstlisting} 790 873 thread struct MyThread { … … 793 876 794 877 //ctor 795 void ?{}(thread MyThread* this) {} 878 void ?{}(MyThread* this, 879 bool is_special = false) { 880 //... 881 } 796 882 797 883 //main 798 void ?main(thread MyThread* this) { 884 void ?main(MyThread* this) { 885 //... 886 } 887 888 void foo() { 889 MyThread* special_thread; 890 { 891 MyThread thrds = {false}; 892 //Start a thread at the beginning of the scope 893 894 DoStuff(); 895 896 //create a other thread that will outlive the thread in this scope 897 special_thread = new MyThread{true}; 898 899 //Wait for the thread to finish 900 } 901 DoMoreStuff(); 902 903 //Now wait for the special 904 } 905 \end{lstlisting} 906 907 Another advantage of this semantic is that it naturally scale to multiple threads meaning basic synchronisation is very simple : 908 909 \begin{lstlisting} 910 thread struct MyThread { 911 //... 912 }; 913 914 //ctor 915 void ?{}(MyThread* this) {} 916 917 //main 918 void ?main(MyThread* this) { 799 919 //... 800 920 } … … 808 928 //Wait for the 10 threads to finish 809 929 } 810 811 void bar() { 812 MyThread* thrds = new MyThread[10]; 813 //Start 10 threads at the beginning of the scope 814 815 DoStuff(); 816 817 //Wait for the 10 threads to finish 818 delete MyThread; 930 \end{lstlisting} 931 932 \subsection{Coroutines : A stepping stone}\label{coroutine} 933 While the main focus of this proposal is concurrency and paralellism, it is important to adress coroutines which are actually a significant underlying aspect of the concurrency system. Indeed, while having nothing todo with parallelism and arguably very little to do with concurrency, coroutines need to deal with context-switchs and and other context management operations. Therefore, this proposal includes coroutines both as an intermediate step for the implementation of threads and a first class feature of \CFA. 934 935 The core API of coroutines revolve around two features : independent stacks and suspedn/resume. Much like threads the syntax for declaring a coroutine is declaring a type and a main routine for it to start : 936 \begin{lstlisting} 937 coroutine struct MyCoroutine { 938 //... 939 }; 940 941 //ctor 942 void ?{}(MyCoroutine* this) { 943 944 } 945 946 //main 947 void ?main(MyCoroutine* this) { 948 sout | "Hello World!" | endl; 949 } 950 \end{lstlisting} 951 952 One a coroutine is created, users can context switch to it using \code{suspend} and come back using \code{resume}. Here is an example of a solution to the fibonnaci problem using coroutines : 953 \begin{lstlisting} 954 coroutine struct Fibonacci { 955 int fn; // used for communication 956 }; 957 958 void ?main(Fibonacci* this) { 959 int fn1, fn2; // retained between resumes 960 this->fn = 0; 961 fn1 = this->fn; 962 suspend(this); // return to last resume 963 964 this->fn = 1; 965 fn2 = fn1; 966 fn1 = this->fn; 967 suspend(this); // return to last resume 968 969 for ( ;; ) { 970 this->fn = fn1 + fn2; 971 fn2 = fn1; 972 fn1 = this->fn; 973 suspend(this); // return to last resume 974 } 975 } 976 977 int next(Fibonacci& this) { 978 resume(&this); // transfer to last suspend 979 return this.fn; 980 } 981 982 void main() { 983 Fibonacci f1, f2; 984 for ( int i = 1; i <= 10; i += 1 ) { 985 sout | next(f1) | '§\verb+ +§' | next(f2) | endl; 986 } 819 987 } 820 988 \end{lstlisting} 821 989 822 990 \newpage 823 \ large{\textbf{WORK IN PROGRESS}}991 \bf{WORK IN PROGRESS} 824 992 \subsection{The \CFA Kernel : Processors, Clusters and Threads}\label{kernel} 825 993 -
doc/proposals/concurrency/glossary.tex
r5802a4f r66f8528 14 14 15 15 \longnewglossaryentry{group-acquire} 16 {name={ grouped acquiring}}16 {name={bulked acquiring}} 17 17 { 18 18 Implicitly acquiring several monitors when entering a monitor. -
doc/proposals/concurrency/style.tex
r5802a4f r66f8528 2 2 3 3 \lstset{ 4 morekeywords=[2]{nomutex,mutex,thread,wait,wait_release,signal,signal_block,accept,monitor },4 morekeywords=[2]{nomutex,mutex,thread,wait,wait_release,signal,signal_block,accept,monitor,suspend,resume,coroutine}, 5 5 keywordstyle=[2]\color{blue}, % second set of keywords for concurency 6 6 basicstyle=\linespread{0.9}\tt\small, % reduce line spacing and use typewriter font -
doc/proposals/concurrency/version
r5802a4f r66f8528 1 0. 5.1501 0.7.48 -
doc/working/resolver_design.md
r5802a4f r66f8528 1382 1382 hypothesis needs to be empirically validated. 1383 1383 1384 Another approach would be to abandon expression-tree ordering for 1385 subexpression matching, and order by "most constrained symbol"; symbols would 1386 be more constrained if there were fewer matching declarations, fewer 1387 subexpressions yet to resolve, or possibly fewer possible types the expression 1388 could resolve to. Ordering the expressions in a priority-queue by this metric 1389 would not necessarily produce a top-down or a bottom-up order, but would add 1390 opportunities for pruning based on memoized upper and lower bounds. 1391 1384 1392 Both Baker and Cormack explicitly generate all possible interpretations of a 1385 1393 given expression; thinking of the set of interpretations of an expression as a -
src/CodeGen/CodeGenerator.cc
r5802a4f r66f8528 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 4 13:35:30201613 // Update Count : 3 5212 // Last Modified On : Tue Dec 13 14:51:27 2016 13 // Update Count : 362 14 14 // 15 15 … … 57 57 if ( decl->get_extension() ) { 58 58 output << "__extension__ "; 59 } // if 60 } // extension 61 62 void CodeGenerator::asmName( DeclarationWithType * decl ) { 63 if ( ConstantExpr * asmName = decl->get_asmName() ) { 64 output << " asm ( " << asmName->get_constant()->get_value() << " )"; 59 65 } // if 60 66 } // extension … … 141 147 } // if 142 148 149 asmName( functionDecl ); 150 143 151 // acceptAll( functionDecl->get_oldDecls(), *this ); 144 152 if ( functionDecl->get_statements() ) { … … 153 161 handleStorageClass( objectDecl ); 154 162 output << genType( objectDecl->get_type(), mangleName( objectDecl ) ); 163 164 asmName( objectDecl ); 155 165 156 166 if ( objectDecl->get_init() ) { -
src/CodeGen/CodeGenerator.h
r5802a4f r66f8528 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 4 13:37:07201613 // Update Count : 3 812 // Last Modified On : Tue Dec 13 13:51:53 2016 13 // Update Count : 39 14 14 // 15 15 … … 108 108 }; 109 109 110 void asmName( DeclarationWithType *decl ); 111 110 112 void extension( Expression *expr ); 111 113 void extension( Declaration *decl ); -
src/CodeGen/GenType.cc
r5802a4f r66f8528 204 204 void GenType::visit( ZeroType *zeroType ) { 205 205 // ideally these wouldn't hit codegen at all, but should be safe to make them ints 206 typeString = " int " + typeString;206 typeString = "long int " + typeString; 207 207 handleQualifiers( zeroType ); 208 208 } … … 210 210 void GenType::visit( OneType *oneType ) { 211 211 // ideally these wouldn't hit codegen at all, but should be safe to make them ints 212 typeString = " int " + typeString;212 typeString = "long int " + typeString; 213 213 handleQualifiers( oneType ); 214 214 } -
src/CodeGen/OperatorTable.cc
r5802a4f r66f8528 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Rob Schluntz12 // Last Modified On : T hu Apr 14 16:48:27201613 // Update Count : 911 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 13 14:33:05 2016 13 // Update Count : 10 14 14 // 15 15 … … 21 21 const OperatorInfo tableValues[] = { 22 22 { "?[?]", "", "_operator_index", OT_INDEX }, 23 { "?{}", "=", 23 { "?{}", "=", "_constructor", OT_CTOR }, 24 24 { "^?{}", "", "_destructor", OT_DTOR }, 25 25 { "?()", "", "_operator_call", OT_CALL }, -
src/Common/Assert.cc
r5802a4f r66f8528 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // Assert.cc -- 8 // 6 // 7 // Assert.cc -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Thu Aug 18 13:26:59 2016 … … 12 12 // Last Modified On : Fri Aug 19 17:07:08 2016 13 13 // Update Count : 10 14 // 14 // 15 15 16 16 #include <assert.h> … … 35 35 va_start( args, fmt ); 36 36 vfprintf( stderr, fmt, args ); 37 va_end( args ); 38 fprintf( stderr, "\n" ); 37 39 abort(); 38 40 } … … 43 45 // compile-command: "make install" // 44 46 // End: // 45 -
src/Common/utility.h
r5802a4f r66f8528 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 23 11:46:47201613 // Update Count : 2812 // Last Modified On : Wed Dec 14 21:25:25 2016 13 // Update Count : 31 14 14 // 15 15 … … 36 36 } 37 37 38 template< typename T, typename U>38 template< typename T, typename U > 39 39 struct maybeBuild_t { 40 40 static T * doit( const U *orig ) { -
src/InitTweak/FixInit.cc
r5802a4f r66f8528 346 346 347 347 if ( VariableExpr * function = dynamic_cast< VariableExpr * > ( appExpr->get_function() ) ) { 348 if ( function->get_var()->get_linkage() == LinkageSpec::Intrinsic) {348 if ( LinkageSpec::isBuiltin( function->get_var()->get_linkage() ) ) { 349 349 // optimization: don't need to copy construct in order to call intrinsic functions 350 350 return appExpr; -
src/InitTweak/InitTweak.cc
r5802a4f r66f8528 304 304 305 305 namespace { 306 DeclarationWithType * getCalledFunction( Expression * expr ); 307 308 template<typename CallExpr> 309 DeclarationWithType * handleDerefCalledFunction( CallExpr * expr ) { 310 // (*f)(x) => should get "f" 311 std::string name = getFunctionName( expr ); 312 assertf( name == "*?", "Unexpected untyped expression: %s", name.c_str() ); 313 assertf( ! expr->get_args().empty(), "Can't get called function from dereference with no arguments" ); 314 return getCalledFunction( expr->get_args().front() ); 315 } 316 306 317 DeclarationWithType * getCalledFunction( Expression * expr ) { 307 318 assert( expr ); … … 312 323 } else if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( expr ) ) { 313 324 return getCalledFunction( castExpr->get_arg() ); 325 } else if ( UntypedExpr * untypedExpr = dynamic_cast< UntypedExpr * >( expr ) ) { 326 return handleDerefCalledFunction( untypedExpr ); 327 } else if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * > ( expr ) ) { 328 return handleDerefCalledFunction( appExpr ); 314 329 } 315 330 return nullptr; … … 377 392 378 393 namespace { 394 std::string funcName( Expression * func ); 395 396 template<typename CallExpr> 397 std::string handleDerefName( CallExpr * expr ) { 398 // (*f)(x) => should get name "f" 399 std::string name = getFunctionName( expr ); 400 assertf( name == "*?", "Unexpected untyped expression: %s", name.c_str() ); 401 assertf( ! expr->get_args().empty(), "Can't get function name from dereference with no arguments" ); 402 return funcName( expr->get_args().front() ); 403 } 404 379 405 std::string funcName( Expression * func ) { 380 406 if ( NameExpr * nameExpr = dynamic_cast< NameExpr * >( func ) ) { … … 388 414 } else if ( UntypedMemberExpr * memberExpr = dynamic_cast< UntypedMemberExpr * > ( func ) ) { 389 415 return funcName( memberExpr->get_member() ); 416 } else if ( UntypedExpr * untypedExpr = dynamic_cast< UntypedExpr * >( func ) ) { 417 return handleDerefName( untypedExpr ); 418 } else if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( func ) ) { 419 return handleDerefName( appExpr ); 390 420 } else { 391 421 assertf( false, "Unexpected expression type being called as a function in call expression" ); … … 395 425 396 426 std::string getFunctionName( Expression * expr ) { 427 // there's some unforunate overlap here with getCalledFunction. Ideally this would be able to use getCalledFunction and 428 // return the name of the DeclarationWithType, but this needs to work for NameExpr and UntypedMemberExpr, where getCalledFunction 429 // can't possibly do anything reasonable. 397 430 if ( ApplicationExpr * appExpr = dynamic_cast< ApplicationExpr * >( expr ) ) { 398 431 return funcName( appExpr->get_function() ); -
src/Makefile.am
r5802a4f r66f8528 41 41 driver_cfa_cpp_SOURCES = ${SRC} 42 42 driver_cfa_cpp_LDADD = ${LEXLIB} -ldl # yywrap 43 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${abs_top_srcdir}/src/include -DYY_NO_INPUT 43 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${abs_top_srcdir}/src/include -DYY_NO_INPUT -O2 44 44 driver_cfa_cpp_LDFLAGS = -Xlinker -export-dynamic 45 45 -
src/Makefile.in
r5802a4f r66f8528 69 69 PRE_UNINSTALL = : 70 70 POST_UNINSTALL = : 71 build_triplet = @build@ 72 host_triplet = @host@ 71 73 DIST_COMMON = $(srcdir)/CodeGen/module.mk $(srcdir)/Common/module.mk \ 72 74 $(srcdir)/ControlStruct/module.mk $(srcdir)/GenPoly/module.mk \ … … 259 261 BACKEND_CC = @BACKEND_CC@ 260 262 CC = @CC@ 263 CCAS = @CCAS@ 264 CCASDEPMODE = @CCASDEPMODE@ 265 CCASFLAGS = @CCASFLAGS@ 261 266 CCDEPMODE = @CCDEPMODE@ 262 267 CFA_BACKEND_CC = @CFA_BACKEND_CC@ … … 293 298 LIBS = @LIBS@ 294 299 LTLIBOBJS = @LTLIBOBJS@ 300 MACHINE_TYPE = @MACHINE_TYPE@ 295 301 MAINT = @MAINT@ 296 302 MAKEINFO = @MAKEINFO@ … … 324 330 am__untar = @am__untar@ 325 331 bindir = @bindir@ 332 build = @build@ 326 333 build_alias = @build_alias@ 334 build_cpu = @build_cpu@ 335 build_os = @build_os@ 336 build_vendor = @build_vendor@ 327 337 builddir = @builddir@ 328 338 datadir = @datadir@ … … 331 341 dvidir = @dvidir@ 332 342 exec_prefix = @exec_prefix@ 343 host = @host@ 333 344 host_alias = @host_alias@ 345 host_cpu = @host_cpu@ 346 host_os = @host_os@ 347 host_vendor = @host_vendor@ 334 348 htmldir = @htmldir@ 335 349 includedir = @includedir@ … … 418 432 driver_cfa_cpp_SOURCES = ${SRC} 419 433 driver_cfa_cpp_LDADD = ${LEXLIB} -ldl # yywrap 420 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${abs_top_srcdir}/src/include -DYY_NO_INPUT 434 driver_cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${abs_top_srcdir}/src/include -DYY_NO_INPUT -O2 421 435 driver_cfa_cpp_LDFLAGS = -Xlinker -export-dynamic 422 436 all: $(BUILT_SOURCES) -
src/Parser/DeclarationNode.cc
r5802a4f r66f8528 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08 201613 // Update Count : 6 5112 // Last Modified On : Tue Dec 13 14:43:38 2016 13 // Update Count : 660 14 14 // 15 15 … … 48 48 type( nullptr ), 49 49 storageClass( NoStorageClass ), 50 bitfieldWidth( nullptr ), 50 51 isInline( false ), 51 52 isNoreturn( false ), 52 bitfieldWidth( nullptr ),53 initializer( nullptr ),54 53 hasEllipsis( false ), 55 54 linkage( ::linkage ), 55 asmName( nullptr ), 56 initializer( nullptr ), 56 57 extension( false ) { 57 58 … … 75 76 delete type; 76 77 delete bitfieldWidth; 78 // asmName, no delete, passed to next stage 77 79 delete initializer; 78 80 } … … 90 92 newnode->set_next( maybeClone( get_next() ) ); 91 93 newnode->linkage = linkage; 94 newnode->asmName = maybeClone( asmName ); 92 95 93 96 // newnode->variable.name = variable.name ? new string( *variable.name ) : nullptr; … … 283 286 DeclarationNode * newnode = new DeclarationNode; 284 287 newnode->type = nullptr; 285 assert( ! newnode->name ); 288 assert( ! newnode->name ); 286 289 // newnode->variable.name = name; 287 290 newnode->name = name; … … 372 375 newnode->type = new TypeData( TypeData::Builtin ); 373 376 newnode->builtin = bt; 377 newnode->type->builtintype = newnode->builtin; 374 378 return newnode; 375 379 } // DeclarationNode::newBuiltinType … … 640 644 } 641 645 646 DeclarationNode * DeclarationNode::addAsmName( ConstantExpr * newname ) { 647 assert( ! asmName ); 648 asmName = newname; 649 return this; 650 } 651 642 652 DeclarationNode * DeclarationNode::addBitfield( ExpressionNode * size ) { 643 653 bitfieldWidth = size; … … 946 956 947 957 if ( type ) { 948 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, maybeBuild< Initializer >(initializer) )->set_extension( extension );958 return buildDecl( type, name ? *name : string( "" ), storageClass, maybeBuild< Expression >( bitfieldWidth ), isInline, isNoreturn, linkage, asmName, maybeBuild< Initializer >(initializer) )->set_extension( extension ); 949 959 } // if 950 960 951 961 if ( ! isInline && ! isNoreturn ) { 952 962 assertf( name, "ObjectDecl are assumed to have names\n" ); 953 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_ extension( extension );963 return (new ObjectDecl( *name, storageClass, linkage, maybeBuild< Expression >( bitfieldWidth ), nullptr, maybeBuild< Initializer >( initializer ) ))->set_asmName( asmName )->set_extension( extension ); 954 964 } // if 955 965 -
src/Parser/ExpressionNode.cc
r5802a4f r66f8528 46 46 // type. 47 47 48 staticType::Qualifiers emptyQualifiers; // no qualifiers on constants48 Type::Qualifiers emptyQualifiers; // no qualifiers on constants 49 49 50 50 static inline bool checkU( char c ) { return c == 'u' || c == 'U'; } … … 172 172 } // build_constantStr 173 173 174 Expression *build_constantZeroOne( const std::string & str ) { 175 Expression * ret = new ConstantExpr( Constant( str == "0" ? (Type*)new ZeroType( emptyQualifiers ) : (Type*)new OneType( emptyQualifiers ), str ) ); 176 delete &str; // created by lex 177 return ret; 178 } // build_constantChar 179 174 180 Expression * build_field_name_FLOATINGconstant( const std::string & str ) { 175 181 // str is of the form A.B -> separate at the . and return member expression -
src/Parser/ParseNode.h
r5802a4f r66f8528 10 10 // Created On : Sat May 16 13:28:16 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 18:03:08201613 // Update Count : 6 3612 // Last Modified On : Tue Dec 13 15:37:33 2016 13 // Update Count : 643 14 14 // 15 15 … … 154 154 Expression * build_constantFloat( const std::string &str ); 155 155 Expression * build_constantChar( const std::string &str ); 156 Expression * build_constantZeroOne( const std::string &str ); 156 157 ConstantExpr * build_constantStr( const std::string &str ); 157 158 Expression * build_field_name_FLOATINGconstant( const std::string & str ); … … 204 205 enum Aggregate { Struct, Union, Trait, NoAggregate }; 205 206 enum TypeClass { Otype, Dtype, Ftype, NoTypeClass }; 206 enum BuiltinType { Valist };207 enum BuiltinType { Valist, Zero, One, NoBuiltinType }; 207 208 208 209 static const char * storageName[]; … … 256 257 DeclarationNode * addAssertions( DeclarationNode * ); 257 258 DeclarationNode * addName( std::string * ); 259 DeclarationNode * addAsmName( ConstantExpr * ); 258 260 DeclarationNode * addBitfield( ExpressionNode * size ); 259 261 DeclarationNode * addVarArgs(); … … 308 310 TypeData * type; 309 311 StorageClass storageClass; 312 ExpressionNode * bitfieldWidth; 310 313 bool isInline, isNoreturn; 311 std::list< std::string > attributes;312 ExpressionNode * bitfieldWidth;313 314 std::unique_ptr<ExpressionNode> enumeratorValue; 314 InitializerNode * initializer;315 315 bool hasEllipsis; 316 316 LinkageSpec::Spec linkage; 317 ConstantExpr *asmName; 318 std::list< std::string > attributes; 319 InitializerNode * initializer; 317 320 bool extension = false; 318 321 std::string error; -
src/Parser/TypeData.cc
r5802a4f r66f8528 10 10 // Created On : Sat May 16 15:12:51 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Sep 24 11:14:26201613 // Update Count : 4 1512 // Last Modified On : Tue Dec 13 13:40:33 2016 13 // Update Count : 420 14 14 // 15 15 … … 215 215 break; 216 216 case Builtin: 217 assert( false );218 // newtype->builtin = builtin;217 assert( builtintype == DeclarationNode::Zero || builtintype == DeclarationNode::One ); 218 newtype->builtintype = builtintype; 219 219 break; 220 220 } // switch … … 444 444 return buildTypeof( td ); 445 445 case TypeData::Builtin: 446 return new VarArgsType( buildQualifiers( td ) ); 446 if(td->builtintype == DeclarationNode::Zero) { 447 return new ZeroType( emptyQualifiers ); 448 } 449 else if(td->builtintype == DeclarationNode::One) { 450 return new OneType( emptyQualifiers ); 451 } 452 else { 453 return new VarArgsType( buildQualifiers( td ) ); 454 } 447 455 case TypeData::Symbolic: 448 456 case TypeData::Enum: … … 574 582 const_cast<TypeData *>(td)->basictype = DeclarationNode::Int; 575 583 goto Integral; 584 default: 585 assert(false); 586 return nullptr; 576 587 } // switch 577 588 … … 710 721 } // buildTypeof 711 722 712 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, Initializer * init ) {723 Declaration * buildDecl( const TypeData * td, const string &name, DeclarationNode::StorageClass sc, Expression * bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Spec linkage, ConstantExpr *asmName, Initializer * init ) { 713 724 if ( td->kind == TypeData::Function ) { 714 725 FunctionDecl * decl; … … 732 743 } // for 733 744 buildList( td->function.oldDeclList, decl->get_oldDecls() ); 734 return decl ;745 return decl->set_asmName( asmName ); 735 746 } else if ( td->kind == TypeData::Aggregate ) { 736 747 return buildAggregate( td ); … … 740 751 return buildSymbolic( td, name, sc ); 741 752 } else { 742 return new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn);753 return (new ObjectDecl( name, sc, linkage, bitfieldWidth, typebuild( td ), init, list< Attribute * >(), isInline, isNoreturn ))->set_asmName( asmName ); 743 754 } // if 744 755 return nullptr; … … 758 769 break; 759 770 default: 760 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall ) ) );771 ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( buildDecl( td->base, "", DeclarationNode::NoStorageClass, nullptr, false, false, LinkageSpec::Cforall, nullptr ) ) ); 761 772 } // switch 762 773 } else { -
src/Parser/TypeData.h
r5802a4f r66f8528 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // TypeData.h -- 7 // TypeData.h -- 8 8 // 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Oct 3 12:34:08201613 // Update Count : 14 212 // Last Modified On : Tue Dec 13 13:39:39 2016 13 // Update Count : 143 14 14 // 15 15 … … 74 74 DeclarationNode::Signedness signedness = DeclarationNode::NoSignedness; 75 75 DeclarationNode::Length length = DeclarationNode::NoLength; 76 DeclarationNode::BuiltinType builtintype = DeclarationNode::NoBuiltinType; 76 77 typedef std::bitset< DeclarationNode::NoQualifier > Qualifiers; 77 78 Qualifiers qualifiers; … … 110 111 TupleType * buildTuple( const TypeData * ); 111 112 TypeofType * buildTypeof( const TypeData * ); 112 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, Initializer * init = nullptr );113 Declaration * buildDecl( const TypeData *, const std::string &, DeclarationNode::StorageClass, Expression *, bool isInline, bool isNoreturn, LinkageSpec::Spec, ConstantExpr *asmName, Initializer * init = nullptr ); 113 114 FunctionType * buildFunction( const TypeData * ); 114 115 -
src/Parser/lex.cc
r5802a4f r66f8528 382 382 (yy_c_buf_p) = yy_cp; 383 383 384 #define YY_NUM_RULES 18 3385 #define YY_END_OF_BUFFER 18 4384 #define YY_NUM_RULES 185 385 #define YY_END_OF_BUFFER 186 386 386 /* This struct is not used in this scanner, 387 387 but its presence is necessary. */ … … 391 391 flex_int32_t yy_nxt; 392 392 }; 393 static yyconst flex_int16_t yy_accept[ 895] =393 static yyconst flex_int16_t yy_accept[905] = 394 394 { 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, 400 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, 409 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 410 176, 0, 120, 117, 103, 0, 0, 173, 0, 103, 411 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 412 103, 103, 103, 103, 103, 103, 38, 103, 103, 103, 413 103, 103, 103, 103, 103, 103, 103, 57, 103, 103, 414 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, 395 0, 0, 0, 0, 0, 0, 120, 120, 123, 123, 396 186, 184, 7, 9, 8, 143, 122, 105, 148, 151, 397 119, 130, 131, 146, 144, 134, 145, 137, 147, 110, 398 111, 112, 135, 136, 153, 155, 154, 156, 184, 105, 399 128, 184, 129, 149, 105, 107, 105, 105, 105, 105, 400 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 401 105, 105, 105, 132, 152, 133, 150, 7, 184, 4, 402 4, 185, 108, 185, 109, 120, 121, 127, 123, 124, 403 7, 9, 0, 8, 160, 179, 105, 0, 172, 142, 404 165, 173, 170, 157, 168, 158, 169, 167, 0, 116, 405 406 3, 0, 171, 115, 113, 0, 0, 113, 113, 0, 407 0, 113, 112, 112, 112, 0, 112, 140, 141, 139, 408 161, 163, 159, 164, 162, 0, 0, 0, 0, 0, 419 409 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, 422 111, 0, 112, 0, 0, 110, 110, 110, 110, 0, 423 174, 175, 0, 180, 178, 0, 0, 0, 104, 0, 424 0, 0, 0, 0, 0, 0, 0, 103, 17, 103, 425 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 426 103, 103, 103, 103, 103, 103, 103, 14, 103, 103, 427 428 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 429 103, 103, 103, 103, 103, 103, 51, 103, 103, 103, 430 64, 103, 103, 103, 103, 103, 103, 103, 103, 103, 431 103, 103, 103, 103, 103, 90, 103, 103, 103, 103, 432 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, 440 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, 444 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 445 103, 103, 103, 103, 103, 103, 98, 103, 103, 0, 410 106, 178, 0, 122, 119, 105, 0, 0, 175, 0, 411 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 412 105, 105, 105, 105, 105, 105, 105, 38, 105, 105, 413 105, 105, 105, 105, 105, 105, 105, 105, 57, 105, 414 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 415 105, 105, 105, 105, 105, 105, 105, 174, 166, 7, 416 417 0, 0, 0, 2, 0, 5, 108, 0, 0, 0, 418 120, 0, 126, 125, 125, 0, 0, 0, 123, 0, 446 419 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, 453 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, 420 0, 0, 0, 0, 138, 116, 117, 0, 117, 117, 421 0, 0, 6, 117, 113, 0, 0, 0, 117, 0, 422 113, 113, 113, 113, 0, 114, 0, 0, 112, 112, 423 112, 112, 0, 176, 177, 0, 182, 180, 0, 0, 424 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 425 105, 17, 105, 105, 105, 105, 105, 105, 105, 105, 426 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 427 428 14, 105, 105, 105, 105, 105, 105, 105, 105, 105, 429 105, 105, 105, 105, 105, 105, 105, 105, 105, 51, 430 105, 105, 105, 64, 105, 105, 105, 105, 105, 105, 431 105, 105, 105, 105, 105, 105, 105, 105, 105, 91, 432 105, 105, 105, 105, 105, 105, 105, 105, 0, 0, 433 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 434 0, 0, 125, 0, 0, 183, 0, 0, 0, 0, 435 0, 0, 0, 117, 0, 117, 0, 117, 0, 117, 436 0, 0, 117, 0, 113, 113, 0, 0, 114, 114, 437 0, 114, 0, 114, 112, 112, 0, 0, 0, 0, 438 439 0, 0, 0, 0, 0, 0, 181, 105, 105, 105, 440 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 441 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 442 21, 105, 24, 105, 27, 105, 105, 105, 105, 105, 443 105, 105, 41, 105, 43, 105, 105, 105, 105, 105, 444 105, 105, 56, 105, 67, 105, 105, 105, 105, 105, 445 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 446 105, 105, 99, 105, 105, 105, 0, 0, 0, 0, 458 447 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, 448 125, 0, 0, 0, 0, 0, 117, 0, 0, 0, 449 450 0, 0, 0, 0, 114, 114, 0, 118, 0, 114, 451 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452 0, 0, 0, 0, 105, 105, 22, 105, 105, 105, 453 105, 105, 105, 105, 15, 105, 105, 105, 105, 105, 454 105, 105, 105, 105, 105, 105, 105, 105, 105, 23, 455 25, 105, 32, 105, 105, 105, 105, 40, 105, 105, 456 105, 105, 49, 105, 105, 54, 105, 105, 71, 72, 457 105, 105, 105, 78, 105, 105, 105, 105, 105, 88, 458 90, 105, 105, 96, 105, 105, 103, 105, 0, 0, 476 459 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, 460 461 0, 0, 0, 0, 0, 0, 0, 118, 0, 0, 462 114, 118, 118, 118, 118, 0, 114, 0, 0, 0, 463 0, 0, 0, 0, 0, 0, 0, 105, 0, 105, 464 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 465 105, 105, 105, 105, 105, 59, 105, 105, 105, 105, 466 105, 105, 105, 105, 28, 105, 105, 105, 39, 42, 467 45, 105, 105, 52, 105, 61, 68, 105, 105, 77, 468 79, 82, 83, 85, 86, 105, 105, 93, 105, 105, 469 104, 0, 1, 0, 0, 0, 0, 0, 0, 108, 470 0, 0, 0, 125, 0, 0, 0, 0, 118, 0, 471 472 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 473 0, 105, 105, 18, 105, 105, 105, 105, 105, 105, 474 105, 16, 105, 105, 105, 33, 105, 105, 105, 105, 475 105, 105, 105, 105, 105, 105, 105, 105, 36, 37, 476 105, 48, 53, 105, 105, 105, 92, 105, 105, 0, 477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 10, 11, 29, 55, 105, 105, 105, 105, 479 105, 105, 105, 105, 105, 105, 105, 60, 62, 65, 480 105, 105, 80, 94, 105, 105, 35, 105, 47, 73, 481 74, 105, 97, 100, 0, 0, 0, 0, 0, 0, 482 483 0, 0, 0, 0, 0, 0, 105, 69, 105, 105, 484 12, 105, 105, 30, 34, 105, 105, 105, 66, 105, 485 105, 105, 105, 105, 105, 105, 0, 0, 0, 0, 485 486 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 486 10 3, 103, 103, 103, 103, 103, 103, 50, 63, 74,487 8 0, 94, 100, 103, 103, 103, 0, 0, 0, 0,488 0, 0, 0, 0, 10 3, 103, 13, 19, 103, 103,489 31, 10 3, 103, 103, 26, 46, 88, 0, 0, 103,490 10 3, 103, 103, 103, 103, 75, 101, 103, 86, 20,491 10 3, 103, 44, 83, 103, 103, 103, 103, 103, 103,492 103, 97, 70, 0 493 487 105, 105, 105, 105, 105, 105, 105, 50, 63, 75, 488 81, 95, 101, 105, 105, 105, 0, 0, 0, 0, 489 0, 0, 0, 0, 105, 105, 13, 19, 105, 105, 490 31, 105, 105, 105, 26, 46, 89, 0, 0, 105, 491 105, 105, 105, 105, 105, 76, 102, 105, 87, 20, 492 105, 105, 44, 84, 105, 105, 105, 105, 105, 105, 493 494 105, 98, 70, 0 494 495 } ; 495 496 … … 539 540 } ; 540 541 541 static yyconst flex_int16_t yy_base[10 69] =542 static yyconst flex_int16_t yy_base[1079] = 542 543 { 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, 548 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, 559 282, 433, 372, 281, 437, 434, 428, 570, 444, 466, 560 464, 469, 475, 321, 492, 438, 471, 445, 474, 512, 561 489, 503, 496, 521, 276, 515, 516, 2224, 526, 510, 562 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 544 0, 84, 2323, 2322, 94, 0, 177, 178, 179, 180, 545 2338, 2866, 191, 2866, 197, 55, 2866, 2283, 60, 173, 546 2866, 2866, 2866, 56, 188, 2866, 191, 189, 204, 216, 547 275, 0, 2300, 2866, 216, 2298, 152, 344, 155, 220, 548 2866, 159, 2866, 217, 226, 2866, 185, 154, 212, 251, 549 237, 270, 235, 257, 241, 279, 193, 305, 314, 333, 550 238, 228, 227, 2866, 225, 2866, 2295, 402, 390, 2866, 551 2306, 2866, 2273, 235, 2866, 0, 2866, 426, 0, 2866, 552 417, 2866, 439, 451, 2866, 498, 2270, 264, 2866, 2866, 553 2866, 2866, 2866, 2286, 2866, 2285, 2866, 2866, 2297, 559, 554 555 2866, 2313, 2866, 438, 444, 511, 534, 289, 253, 197, 556 380, 305, 0, 319, 280, 198, 322, 2866, 2866, 2866, 557 2281, 2866, 2866, 2866, 2278, 2277, 218, 312, 2292, 350, 558 459, 368, 398, 440, 405, 448, 2272, 441, 2219, 458, 559 2247, 2866, 335, 2866, 2866, 321, 2243, 2242, 2866, 2214, 560 444, 297, 433, 372, 425, 454, 434, 461, 570, 455, 561 468, 385, 474, 475, 494, 492, 489, 464, 488, 491, 562 513, 503, 430, 521, 517, 519, 516, 522, 2240, 526, 563 523, 276, 460, 524, 542, 555, 554, 561, 325, 558, 564 584, 552, 600, 586, 593, 588, 595, 2866, 2866, 667, 565 566 655, 2287, 682, 2866, 688, 2866, 2236, 590, 2232, 2230, 567 0, 648, 2866, 2866, 675, 2227, 2224, 2223, 0, 2246, 568 578, 631, 654, 685, 698, 660, 689, 670, 692, 2242, 569 695, 701, 2200, 2198, 2866, 0, 693, 720, 685, 711, 570 2197, 2247, 2866, 737, 745, 666, 757, 763, 797, 780, 571 599, 2866, 2203, 2178, 0, 805, 2224, 806, 617, 2866, 572 2199, 2172, 819, 2866, 2866, 2203, 2866, 2866, 707, 722, 573 2182, 2182, 699, 2177, 2174, 2171, 0, 2170, 0, 2141, 574 743, 724, 739, 689, 741, 720, 623, 759, 762, 804, 575 681, 795, 749, 746, 799, 801, 765, 784, 803, 811, 576 577 2170, 814, 818, 827, 831, 817, 821, 833, 835, 841, 578 842, 834, 843, 844, 845, 847, 849, 857, 858, 860, 579 851, 859, 866, 2167, 867, 868, 869, 871, 873, 874, 580 763, 875, 876, 880, 881, 884, 887, 888, 885, 2164, 581 891, 936, 894, 897, 905, 899, 901, 902, 965, 961, 582 2160, 2159, 2157, 0, 2154, 0, 952, 956, 2153, 0, 583 2152, 0, 2150, 0, 2169, 2866, 951, 952, 2148, 2145, 584 0, 2143, 0, 2866, 967, 986, 978, 2866, 992, 1032, 585 2140, 1008, 1054, 2136, 2866, 2866, 915, 951, 1040, 993, 586 1079, 956, 1071, 994, 2866, 2866, 2132, 2130, 2128, 0, 587 588 2125, 0, 2123, 0, 2121, 0, 2866, 935, 969, 973, 589 968, 1012, 975, 1056, 992, 1058, 997, 1032, 993, 1000, 590 1060, 1061, 1066, 1070, 1073, 1030, 1071, 1069, 1072, 1078, 591 2121, 700, 2118, 1085, 2117, 1079, 1081, 1089, 1087, 1098, 592 1096, 1099, 2116, 1101, 2114, 1105, 1106, 1107, 1109, 1112, 593 1113, 1114, 2111, 1115, 2108, 1117, 1119, 1120, 1118, 1124, 594 1126, 1121, 1136, 1130, 1134, 1135, 1149, 1137, 1138, 1150, 595 1152, 1153, 2107, 1151, 1154, 1167, 1205, 2103, 0, 2101, 596 0, 2098, 0, 2095, 0, 1204, 2094, 0, 2093, 0, 597 2091, 2088, 2085, 0, 2084, 0, 1208, 2083, 1214, 1230, 598 599 1216, 1255, 1221, 1172, 1169, 2866, 1271, 1289, 1282, 2093, 600 2066, 2075, 2074, 0, 2073, 0, 2071, 0, 2068, 0, 601 2065, 0, 2064, 0, 1190, 1159, 2066, 1193, 1195, 1197, 602 1212, 1237, 1231, 1265, 1248, 1266, 1267, 1213, 1268, 1269, 603 1283, 1270, 1271, 234, 1285, 1273, 1274, 1287, 1293, 2064, 604 1306, 1301, 2061, 1290, 1303, 1305, 1308, 2058, 1312, 1309, 605 1311, 1313, 2057, 1314, 1319, 2056, 1316, 1322, 2054, 2051, 606 1315, 1327, 1330, 2050, 1333, 1332, 1336, 1334, 1338, 1345, 607 2049, 1335, 1348, 2047, 1346, 1349, 2044, 1351, 2093, 2039, 608 0, 2037, 0, 2004, 0, 2002, 0, 2001, 0, 1998, 609 610 0, 1995, 0, 1994, 0, 1394, 1404, 1428, 1415, 1993, 611 2866, 1421, 1370, 1391, 1419, 1991, 2866, 1988, 0, 1985, 612 0, 1984, 0, 1983, 0, 0, 0, 1984, 0, 1352, 613 1406, 1408, 1359, 1354, 1409, 1415, 1412, 1411, 1423, 1433, 614 1425, 1430, 1435, 1437, 1439, 1448, 1442, 1449, 1440, 1444, 615 1453, 1450, 1452, 1456, 1981, 1458, 1460, 1463, 1980, 1979, 616 1977, 1466, 1467, 1974, 1470, 1973, 1972, 1469, 1473, 1970, 617 1963, 1961, 1960, 1957, 1953, 1475, 1479, 1949, 1476, 1477, 618 1945, 1992, 2866, 1938, 0, 1937, 0, 0, 0, 1938, 619 0, 0, 0, 2866, 0, 0, 0, 0, 1525, 1932, 620 621 2866, 2866, 1531, 1931, 0, 1930, 0, 0, 0, 0, 622 1928, 1488, 1483, 1928, 1491, 1507, 1518, 1490, 1519, 1521, 623 1508, 1927, 1525, 1529, 1527, 1541, 1530, 1384, 1543, 1539, 624 1558, 1547, 1549, 1512, 1545, 1552, 1553, 1554, 1926, 1924, 625 1557, 1921, 1920, 1556, 1537, 1560, 1919, 1561, 1564, 0, 626 0, 0, 1914, 1911, 1910, 1612, 0, 1909, 1907, 1904, 627 1903, 1902, 1903, 1900, 1899, 1898, 1568, 1572, 1566, 1577, 628 1590, 1570, 1578, 1579, 1591, 1596, 1625, 1896, 1598, 1893, 629 1599, 1603, 1604, 1608, 1606, 1612, 1892, 1613, 1891, 1889, 630 1886, 1614, 1885, 1884, 1879, 1872, 1870, 1869, 1866, 1865, 631 632 1864, 1862, 1845, 1836, 1835, 1832, 1616, 1828, 1617, 1622, 633 1620, 1619, 1624, 1626, 1825, 1628, 1644, 1630, 1818, 1631, 634 1639, 1645, 1647, 1634, 1649, 1651, 1813, 1812, 1791, 1790, 635 1789, 1782, 1780, 1779, 1737, 1735, 1733, 1732, 1730, 1732, 636 1652, 1654, 1655, 1657, 1659, 1662, 1663, 1731, 1729, 1668, 637 1727, 1724, 1669, 1670, 1664, 1675, 1719, 1718, 1671, 1629, 638 1564, 1468, 1350, 1269, 1678, 1681, 1239, 1682, 1688, 1689, 639 1238, 1690, 1692, 1696, 1206, 1171, 1157, 1035, 1031, 1691, 640 1697, 1700, 1704, 1702, 1706, 998, 560, 1701, 527, 395, 641 1707, 1710, 357, 300, 1708, 1713, 1715, 1718, 1716, 1719, 642 643 1720, 233, 137, 2866, 1794, 1807, 1820, 1830, 1840, 1853, 644 1863, 1876, 1889, 1902, 1910, 1920, 1927, 1934, 1941, 1948, 645 1955, 1962, 1969, 1976, 1983, 1990, 1994, 2002, 2008, 2015, 646 2022, 2029, 2036, 2039, 2046, 2052, 2065, 2078, 2085, 2092, 647 2099, 2106, 2109, 2116, 2119, 2126, 2129, 2136, 2139, 2146, 648 2149, 2156, 2159, 2166, 2169, 2176, 2184, 2191, 2198, 2205, 649 2212, 2215, 2222, 2225, 2232, 2235, 2242, 2248, 2261, 2268, 650 2275, 2278, 2285, 2288, 2295, 2298, 2305, 2308, 2315, 2318, 651 2325, 2328, 2335, 2342, 2345, 2352, 2355, 2362, 2369, 2376, 652 2379, 2386, 2389, 2396, 2399, 2406, 2409, 2416, 2419, 2426, 653 654 2432, 2445, 2452, 2459, 2462, 2469, 2472, 2479, 2482, 2489, 655 2492, 2499, 2502, 2509, 2512, 2519, 2522, 2529, 2532, 2539, 656 2546, 2549, 2556, 2559, 2566, 2569, 2576, 2579, 2582, 2588, 657 2595, 2604, 2611, 2618, 2621, 2628, 2631, 2634, 2640, 2647, 658 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2675, 2678, 2685, 659 2688, 2691, 2694, 2697, 2707, 2714, 2717, 2720, 2723, 2730, 660 2737, 2744, 2747, 2754, 2761, 2768, 2775, 2782, 2789, 2796, 661 2803, 2810, 2817, 2824, 2831, 2838, 2845, 2852 660 662 } ; 661 663 662 static yyconst flex_int16_t yy_def[10 69] =664 static yyconst flex_int16_t yy_def[1079] = 663 665 { 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, 727 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 666 904, 1, 905, 905, 904, 5, 906, 906, 907, 907, 667 904, 904, 904, 904, 904, 904, 904, 908, 904, 904, 668 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 669 904, 31, 904, 904, 904, 904, 904, 904, 909, 908, 670 904, 904, 904, 904, 908, 904, 908, 908, 908, 908, 671 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 672 908, 908, 908, 904, 904, 904, 904, 904, 910, 904, 673 904, 904, 911, 904, 904, 912, 904, 904, 913, 904, 674 904, 904, 904, 904, 904, 904, 908, 904, 904, 904, 675 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 676 677 904, 914, 904, 904, 30, 904, 904, 904, 904, 915, 678 30, 904, 31, 904, 904, 31, 904, 904, 904, 904, 679 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 680 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 681 916, 904, 904, 904, 904, 908, 917, 918, 904, 904, 682 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 683 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 684 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 685 908, 908, 908, 908, 908, 908, 908, 908, 908, 908, 686 908, 908, 908, 908, 908, 908, 908, 904, 904, 904, 687 688 910, 910, 910, 904, 910, 904, 911, 904, 919, 920, 689 912, 904, 904, 904, 904, 921, 922, 923, 913, 904, 690 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 691 904, 904, 924, 925, 904, 100, 904, 904, 904, 904, 692 100, 914, 904, 100, 111, 245, 904, 904, 904, 904, 693 904, 904, 904, 904, 926, 927, 928, 904, 904, 904, 694 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 695 904, 929, 904, 930, 931, 932, 933, 934, 935, 904, 696 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 697 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 698 699 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 700 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 701 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 702 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 703 936, 936, 936, 936, 936, 936, 936, 936, 937, 938, 704 939, 940, 941, 942, 943, 944, 904, 904, 945, 946, 705 947, 948, 949, 950, 904, 904, 904, 904, 904, 951, 706 952, 953, 954, 904, 904, 904, 904, 904, 904, 904, 707 380, 904, 376, 383, 904, 904, 955, 956, 957, 904, 708 904, 904, 957, 904, 904, 904, 958, 959, 960, 961, 709 710 962, 963, 964, 965, 966, 967, 904, 968, 968, 968, 711 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 712 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 713 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 714 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 715 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 716 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 717 968, 968, 968, 968, 968, 968, 969, 970, 971, 972, 718 973, 974, 975, 976, 977, 904, 978, 979, 980, 981, 719 982, 982, 983, 984, 985, 986, 904, 497, 904, 904, 720 721 987, 904, 987, 904, 904, 904, 904, 904, 904, 904, 722 904, 988, 989, 990, 991, 992, 993, 994, 995, 996, 723 997, 998, 999, 1000, 1001, 1001, 1001, 1001, 1001, 1001, 724 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 725 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 726 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 727 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 728 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 729 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1002, 1003, 730 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 731 732 1014, 1015, 1016, 1017, 1018, 904, 904, 904, 904, 1019, 733 904, 608, 904, 904, 904, 612, 904, 1020, 1021, 1022, 734 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1030, 735 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 736 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 737 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 738 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 739 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 740 1030, 1032, 904, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 741 1040, 1041, 1042, 904, 1043, 1044, 1045, 1046, 904, 699, 742 743 904, 904, 904, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 744 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 745 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 746 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 747 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1056, 748 1057, 1058, 1059, 1060, 1061, 904, 1062, 1047, 1049, 1063, 749 1064, 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 750 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 751 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 752 1055, 1055, 1055, 1055, 1065, 1066, 1059, 1067, 1060, 1068, 753 754 1061, 1069, 1070, 1063, 1071, 1064, 1055, 1055, 1055, 1055, 755 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 756 1055, 1055, 1055, 1055, 1055, 1055, 1072, 1065, 1073, 1066, 757 1074, 1067, 1075, 1068, 1076, 1069, 1077, 1070, 1071, 1055, 758 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 759 1055, 1055, 1055, 1055, 1055, 1055, 1078, 1072, 1073, 1074, 760 1075, 1049, 1076, 1077, 1055, 1055, 1055, 1055, 1055, 1055, 761 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1078, 1049, 1055, 762 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 763 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 764 765 1055, 1055, 1055, 0, 904, 904, 904, 904, 904, 904, 766 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 767 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 768 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 769 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 770 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 771 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 772 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 773 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 774 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 775 776 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 777 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 778 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 779 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 780 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 781 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 782 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 783 904, 904, 904, 904, 904, 904, 904, 904 781 784 } ; 782 785 783 static yyconst flex_int16_t yy_nxt[29 31] =786 static yyconst flex_int16_t yy_nxt[2952] = 784 787 { 0, 785 788 12, 13, 14, 15, 15, 15, 13, 16, 17, 12, … … 791 794 50, 51, 52, 53, 18, 54, 18, 55, 18, 18, 792 795 56, 18, 57, 58, 59, 60, 61, 62, 18, 18, 793 18, 63, 64, 65, 66, 67, 84, 92, 85, 85, 794 67, 88, 89, 68, 71, 71, 71, 71, 71, 71, 795 796 71, 71, 71, 71, 72, 71, 71, 71, 71, 71, 797 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 798 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, 796 63, 64, 65, 66, 67, 68, 85, 93, 86, 86, 797 68, 89, 90, 69, 72, 72, 72, 72, 72, 72, 798 799 72, 72, 72, 72, 73, 72, 72, 72, 72, 72, 799 800 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 800 72, 72, 72, 72, 72, 71, 73, 71, 71, 72, 801 74, 72, 72, 72, 72, 72, 72, 72, 72, 72, 802 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 803 72, 72, 72, 72, 72, 71, 71, 71, 71, 76, 804 76, 79, 79, 123, 124, 90, 141, 79, 79, 87, 805 76, 76, 80, 81, 82, 82, 82, 80, 82, 81, 806 807 83, 83, 83, 82, 91, 93, 87, 142, 146, 98, 808 95, 99, 99, 99, 99, 99, 99, 252, 894, 94, 809 100, 85, 96, 97, 85, 101, 161, 118, 143, 77, 810 77, 77, 77, 144, 147, 102, 103, 87, 104, 104, 811 104, 104, 105, 105, 119, 87, 120, 121, 148, 263, 812 149, 264, 254, 260, 183, 106, 195, 87, 159, 107, 813 160, 150, 151, 152, 87, 108, 109, 153, 154, 162, 814 155, 110, 87, 156, 157, 145, 163, 106, 87, 182, 815 87, 158, 164, 111, 206, 87, 263, 87, 264, 87, 816 87, 108, 194, 87, 109, 103, 250, 112, 112, 112, 817 818 112, 112, 112, 87, 169, 177, 170, 196, 193, 87, 819 207, 180, 165, 230, 106, 171, 166, 181, 113, 178, 820 251, 167, 87, 258, 114, 168, 179, 172, 87, 263, 821 115, 264, 248, 87, 87, 173, 106, 174, 249, 231, 822 175, 143, 116, 263, 176, 264, 144, 259, 317, 283, 823 114, 125, 280, 503, 249, 126, 127, 87, 128, 191, 824 129, 130, 256, 131, 249, 132, 87, 265, 257, 184, 825 185, 257, 248, 87, 133, 134, 135, 504, 188, 186, 826 249, 263, 187, 264, 271, 87, 189, 265, 145, 256, 827 305, 200, 201, 190, 257, 136, 200, 257, 137, 263, 828 829 894, 264, 192, 197, 81, 82, 82, 82, 197, 87, 830 272, 198, 202, 202, 202, 202, 202, 202, 80, 81, 831 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, 836 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, 839 840 211, 214, 211, 281, 215, 217, 278, 284, 285, 218, 841 219, 307, 298, 279, 220, 221, 87, 222, 87, 223, 842 87, 87, 894, 87, 309, 300, 87, 87, 224, 225, 843 226, 103, 303, 105, 105, 105, 105, 105, 105, 87, 844 299, 87, 301, 302, 87, 304, 308, 310, 87, 227, 845 106, 245, 228, 245, 306, 87, 246, 246, 246, 246, 846 246, 246, 87, 313, 87, 315, 244, 87, 87, 311, 847 314, 87, 106, 87, 87, 87, 323, 87, 87, 322, 848 229, 233, 233, 233, 233, 233, 233, 312, 333, 247, 849 319, 316, 328, 320, 318, 87, 87, 234, 235, 236, 850 851 321, 237, 236, 87, 324, 87, 325, 143, 335, 360, 852 331, 361, 87, 87, 238, 337, 326, 327, 87, 236, 853 235, 236, 87, 329, 237, 332, 236, 287, 288, 289, 854 336, 290, 291, 334, 87, 292, 87, 293, 409, 360, 855 330, 361, 294, 295, 296, 87, 297, 339, 360, 343, 856 361, 87, 200, 201, 338, 340, 346, 200, 341, 87, 857 342, 197, 81, 82, 82, 82, 197, 200, 201, 198, 858 380, 361, 200, 202, 202, 202, 202, 202, 202, 344, 859 201, 360, 347, 361, 344, 360, 345, 361, 202, 202, 860 202, 202, 202, 202, 209, 210, 380, 87, 361, 209, 861 862 202, 202, 202, 202, 202, 202, 352, 352, 352, 352, 863 360, 87, 361, 362, 360, 360, 361, 361, 360, 363, 864 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, 1009 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 801 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 802 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 803 73, 73, 73, 73, 73, 72, 74, 72, 72, 73, 804 75, 73, 73, 73, 73, 73, 73, 73, 73, 73, 805 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 806 73, 73, 73, 73, 73, 72, 72, 72, 72, 77, 807 77, 80, 80, 124, 125, 91, 142, 80, 80, 88, 808 77, 77, 81, 82, 83, 83, 83, 81, 83, 82, 809 810 84, 84, 84, 83, 92, 94, 88, 143, 147, 99, 811 96, 100, 100, 100, 100, 100, 100, 255, 904, 95, 812 101, 86, 97, 98, 86, 102, 162, 119, 144, 78, 813 78, 78, 78, 145, 148, 103, 104, 88, 105, 105, 814 105, 105, 106, 106, 120, 88, 121, 122, 149, 266, 815 150, 267, 257, 263, 185, 107, 198, 648, 160, 108, 816 161, 151, 152, 153, 88, 109, 110, 154, 155, 163, 817 156, 111, 88, 157, 158, 146, 164, 107, 88, 88, 818 88, 159, 165, 112, 209, 88, 88, 88, 197, 88, 819 88, 109, 196, 88, 110, 104, 253, 113, 113, 113, 820 821 113, 113, 113, 88, 170, 178, 171, 199, 195, 88, 822 210, 181, 166, 233, 107, 172, 167, 182, 114, 179, 823 254, 168, 88, 261, 115, 169, 180, 173, 88, 144, 824 116, 88, 251, 326, 145, 174, 107, 175, 252, 234, 825 176, 144, 117, 266, 177, 267, 145, 262, 183, 88, 826 115, 126, 88, 184, 252, 127, 128, 88, 129, 193, 827 130, 131, 259, 132, 252, 133, 88, 283, 260, 186, 828 187, 260, 251, 88, 134, 135, 136, 88, 190, 188, 829 252, 266, 189, 267, 274, 88, 191, 268, 146, 259, 830 337, 203, 204, 192, 260, 137, 203, 260, 138, 266, 831 832 904, 267, 194, 200, 82, 83, 83, 83, 200, 88, 833 275, 201, 205, 205, 205, 205, 205, 205, 81, 82, 834 83, 83, 83, 81, 88, 139, 140, 212, 213, 266, 835 904, 267, 212, 285, 214, 258, 266, 88, 267, 214, 836 83, 82, 83, 83, 83, 83, 303, 88, 215, 215, 837 215, 215, 83, 82, 84, 84, 84, 83, 904, 214, 838 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 839 269, 266, 266, 267, 267, 216, 268, 88, 214, 266, 840 270, 267, 88, 214, 214, 88, 88, 214, 214, 266, 841 266, 267, 267, 286, 904, 214, 88, 317, 214, 246, 842 843 214, 217, 214, 284, 218, 220, 88, 88, 288, 221, 844 222, 281, 88, 88, 223, 224, 88, 225, 282, 226, 845 88, 327, 904, 301, 287, 289, 88, 88, 227, 228, 846 229, 104, 306, 106, 106, 106, 106, 106, 106, 311, 847 88, 88, 302, 88, 88, 307, 88, 304, 305, 230, 848 107, 248, 231, 248, 309, 88, 249, 249, 249, 249, 849 249, 249, 310, 308, 313, 88, 247, 312, 88, 88, 850 314, 88, 107, 88, 88, 88, 88, 316, 88, 88, 851 232, 236, 236, 236, 236, 236, 236, 319, 315, 250, 852 318, 320, 325, 323, 88, 321, 322, 237, 238, 239, 853 854 324, 240, 239, 328, 88, 329, 88, 88, 144, 365, 855 88, 366, 88, 88, 241, 330, 331, 333, 335, 239, 856 238, 239, 88, 341, 240, 332, 239, 290, 291, 292, 857 338, 293, 294, 336, 334, 295, 88, 296, 88, 351, 858 88, 339, 297, 298, 299, 88, 300, 88, 385, 212, 859 213, 343, 88, 347, 212, 342, 203, 204, 345, 344, 860 346, 203, 365, 340, 366, 352, 395, 348, 200, 82, 861 83, 83, 83, 200, 385, 88, 201, 205, 205, 205, 862 205, 205, 205, 203, 204, 365, 904, 366, 203, 349, 863 204, 365, 395, 366, 349, 414, 350, 357, 357, 357, 864 865 357, 365, 366, 366, 205, 205, 205, 205, 205, 205, 866 205, 205, 205, 205, 205, 205, 365, 366, 366, 367, 867 365, 382, 366, 365, 368, 366, 365, 374, 366, 365, 868 358, 366, 365, 88, 366, 374, 374, 375, 266, 375, 869 267, 88, 376, 376, 376, 376, 376, 376, 397, 378, 870 374, 378, 88, 266, 378, 267, 420, 411, 374, 380, 871 380, 380, 380, 380, 380, 104, 550, 245, 245, 245, 872 245, 378, 88, 378, 398, 377, 88, 413, 378, 106, 873 106, 106, 106, 106, 106, 249, 249, 249, 249, 249, 874 249, 88, 381, 88, 409, 88, 107, 248, 88, 248, 875 876 246, 88, 249, 249, 249, 249, 249, 249, 408, 410, 877 412, 88, 258, 423, 88, 88, 415, 88, 107, 383, 878 383, 383, 383, 383, 383, 388, 427, 422, 106, 106, 879 106, 106, 106, 106, 416, 237, 88, 239, 461, 240, 880 239, 113, 113, 113, 113, 113, 113, 88, 390, 428, 881 391, 88, 384, 88, 392, 88, 88, 239, 426, 239, 882 393, 258, 240, 88, 239, 421, 88, 424, 425, 88, 883 88, 417, 394, 88, 263, 432, 391, 418, 419, 88, 884 392, 430, 429, 88, 431, 88, 88, 88, 433, 435, 885 434, 436, 439, 88, 88, 88, 88, 88, 440, 88, 886 887 441, 88, 444, 88, 443, 442, 437, 438, 446, 88, 888 88, 88, 88, 445, 448, 449, 447, 450, 88, 88, 889 88, 88, 452, 88, 457, 88, 88, 88, 88, 453, 890 455, 454, 88, 88, 451, 456, 88, 88, 459, 88, 891 88, 464, 458, 88, 144, 463, 88, 462, 460, 88, 892 469, 88, 470, 88, 88, 465, 474, 88, 468, 466, 893 502, 467, 472, 204, 471, 473, 349, 204, 475, 202, 894 503, 349, 476, 350, 214, 214, 214, 214, 357, 357, 895 357, 357, 365, 365, 366, 366, 502, 88, 88, 376, 896 376, 376, 376, 376, 376, 375, 502, 375, 525, 510, 897 898 376, 376, 376, 376, 376, 376, 504, 486, 497, 497, 899 497, 497, 497, 497, 236, 236, 236, 236, 236, 236, 900 88, 88, 502, 511, 237, 88, 239, 88, 240, 239, 901 245, 245, 245, 245, 106, 106, 505, 526, 530, 528, 902 527, 498, 506, 506, 88, 88, 239, 379, 239, 88, 903 88, 240, 88, 239, 380, 380, 380, 380, 380, 380, 904 388, 505, 534, 382, 88, 537, 532, 536, 506, 506, 905 237, 238, 239, 529, 240, 239, 383, 383, 383, 383, 906 383, 383, 88, 390, 88, 391, 904, 381, 545, 392, 907 904, 904, 239, 238, 239, 393, 507, 240, 507, 239, 908 909 535, 508, 508, 508, 508, 508, 508, 394, 88, 384, 910 88, 391, 88, 88, 390, 392, 391, 531, 88, 533, 911 392, 88, 88, 88, 88, 88, 512, 542, 538, 539, 912 88, 88, 547, 88, 509, 540, 541, 88, 394, 88, 913 543, 88, 391, 548, 546, 549, 392, 544, 88, 551, 914 88, 88, 552, 88, 554, 553, 556, 88, 88, 88, 915 558, 88, 555, 557, 88, 88, 88, 88, 559, 88, 916 88, 88, 88, 88, 562, 566, 88, 560, 88, 564, 917 561, 570, 88, 563, 567, 565, 88, 88, 88, 88, 918 88, 571, 568, 569, 578, 574, 572, 575, 573, 577, 919 920 576, 88, 88, 88, 88, 88, 88, 204, 579, 88, 921 582, 88, 581, 589, 580, 587, 585, 502, 611, 88, 922 583, 584, 588, 88, 631, 586, 214, 214, 214, 214, 923 497, 497, 497, 497, 497, 497, 380, 380, 380, 380, 924 380, 380, 88, 502, 611, 88, 237, 88, 239, 88, 925 240, 239, 383, 383, 383, 383, 383, 383, 88, 630, 926 632, 502, 634, 498, 88, 88, 502, 633, 239, 499, 927 239, 503, 607, 240, 607, 239, 610, 608, 608, 608, 928 608, 608, 608, 88, 642, 500, 635, 502, 637, 88, 929 88, 88, 502, 508, 508, 508, 508, 508, 508, 507, 930 931 88, 507, 636, 639, 508, 508, 508, 508, 508, 508, 932 609, 612, 612, 612, 612, 612, 612, 88, 88, 88, 933 88, 88, 88, 88, 904, 88, 88, 613, 638, 614, 934 644, 615, 614, 646, 641, 88, 647, 88, 640, 88, 935 645, 643, 88, 651, 616, 88, 649, 650, 652, 614, 936 653, 614, 654, 88, 615, 88, 614, 88, 88, 656, 937 88, 88, 655, 88, 88, 88, 88, 88, 88, 659, 938 657, 88, 658, 660, 88, 662, 665, 666, 661, 88, 939 663, 664, 88, 667, 88, 88, 88, 88, 88, 668, 940 88, 676, 669, 671, 672, 673, 677, 88, 88, 670, 941 942 88, 88, 675, 88, 88, 904, 88, 777, 674, 712, 943 678, 88, 701, 701, 680, 679, 497, 497, 497, 497, 944 497, 497, 713, 717, 716, 681, 608, 608, 608, 608, 945 608, 608, 607, 701, 607, 701, 88, 608, 608, 608, 946 608, 608, 608, 612, 612, 612, 612, 612, 612, 606, 947 699, 699, 699, 699, 699, 699, 701, 702, 88, 702, 948 88, 88, 702, 88, 88, 714, 613, 88, 614, 715, 949 615, 614, 720, 731, 719, 88, 616, 88, 722, 702, 950 721, 702, 88, 700, 718, 88, 702, 88, 614, 88, 951 614, 88, 88, 615, 88, 614, 88, 725, 723, 724, 952 953 88, 88, 88, 729, 88, 88, 727, 732, 88, 726, 954 88, 730, 88, 728, 734, 88, 733, 737, 88, 88, 955 735, 88, 88, 879, 740, 88, 736, 88, 88, 88, 956 744, 88, 745, 738, 739, 88, 746, 748, 741, 743, 957 88, 747, 88, 88, 749, 764, 742, 699, 699, 699, 958 699, 699, 699, 612, 612, 612, 612, 612, 612, 88, 959 88, 763, 768, 613, 88, 614, 766, 615, 614, 765, 960 88, 88, 783, 88, 769, 767, 770, 88, 771, 88, 961 700, 88, 88, 772, 780, 614, 703, 614, 774, 88, 962 615, 88, 614, 88, 773, 88, 775, 88, 778, 88, 963 964 779, 88, 781, 776, 88, 88, 88, 784, 88, 88, 965 88, 791, 88, 88, 782, 787, 88, 785, 88, 904, 966 88, 793, 88, 809, 88, 794, 786, 788, 790, 88, 967 88, 88, 789, 792, 699, 699, 699, 699, 699, 699, 968 807, 808, 88, 88, 810, 812, 815, 813, 88, 817, 969 88, 88, 811, 818, 819, 88, 88, 814, 88, 821, 970 88, 816, 820, 822, 88, 88, 88, 756, 88, 88, 971 848, 88, 88, 823, 88, 843, 88, 88, 88, 845, 972 88, 846, 88, 88, 904, 849, 88, 824, 825, 826, 973 841, 88, 842, 844, 851, 840, 88, 88, 847, 88, 974 975 852, 88, 854, 88, 88, 850, 88, 88, 853, 88, 976 867, 88, 855, 866, 88, 88, 88, 871, 868, 856, 977 88, 88, 88, 873, 874, 865, 904, 88, 876, 869, 978 88, 875, 872, 88, 88, 870, 877, 882, 881, 880, 979 88, 88, 88, 88, 88, 885, 884, 886, 88, 88, 980 883, 887, 88, 88, 88, 890, 88, 892, 88, 88, 981 88, 893, 88, 888, 889, 88, 891, 88, 88, 897, 982 88, 88, 88, 904, 878, 894, 88, 896, 898, 88, 983 895, 88, 903, 88, 88, 904, 901, 904, 864, 899, 984 904, 900, 863, 902, 70, 70, 70, 70, 70, 70, 985 986 70, 70, 70, 70, 70, 70, 70, 76, 76, 76, 987 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 988 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 989 79, 79, 79, 87, 904, 861, 87, 904, 87, 87, 990 87, 87, 87, 141, 860, 904, 859, 141, 141, 141, 991 141, 141, 141, 202, 202, 202, 202, 202, 202, 202, 992 202, 202, 202, 202, 202, 202, 207, 904, 858, 207, 993 88, 207, 207, 207, 207, 207, 211, 88, 211, 211, 994 88, 211, 211, 211, 211, 211, 211, 904, 211, 219, 995 839, 904, 219, 219, 219, 219, 219, 219, 219, 219, 996 997 838, 219, 242, 242, 242, 242, 242, 242, 242, 242, 998 242, 242, 242, 242, 242, 256, 256, 836, 256, 904, 999 834, 904, 256, 272, 832, 904, 272, 830, 272, 272, 1000 272, 272, 272, 276, 828, 276, 88, 88, 88, 276, 1001 278, 88, 278, 88, 88, 88, 278, 353, 88, 353, 1002 88, 88, 88, 353, 355, 88, 355, 904, 806, 804, 1003 355, 359, 904, 359, 904, 801, 799, 359, 361, 797, 1004 361, 88, 88, 88, 361, 363, 88, 363, 88, 88, 1005 88, 363, 370, 762, 370, 759, 758, 756, 370, 372, 1006 208, 372, 752, 751, 683, 372, 387, 88, 387, 389, 1007 1008 389, 88, 389, 389, 389, 88, 389, 256, 256, 88, 1009 256, 272, 88, 88, 272, 88, 272, 272, 272, 272, 1010 272, 399, 88, 399, 88, 88, 88, 399, 401, 88, 1011 401, 88, 88, 88, 401, 403, 88, 403, 710, 709, 1012 707, 403, 276, 705, 276, 405, 703, 405, 610, 698, 1013 697, 405, 278, 695, 278, 87, 693, 691, 87, 689, 1014 87, 87, 87, 87, 87, 202, 202, 202, 202, 202, 1015 202, 202, 202, 202, 202, 202, 202, 202, 477, 477, 1016 477, 477, 477, 477, 477, 477, 477, 477, 477, 477, 1017 477, 478, 687, 478, 685, 683, 88, 478, 480, 88, 1018 1019 480, 88, 88, 88, 480, 482, 88, 482, 88, 88, 1020 88, 482, 353, 88, 353, 484, 88, 484, 88, 629, 1021 627, 484, 355, 625, 355, 487, 623, 487, 621, 619, 1022 512, 487, 359, 617, 359, 489, 617, 489, 606, 605, 1023 603, 489, 361, 492, 361, 491, 492, 491, 601, 599, 1024 597, 491, 363, 595, 363, 493, 593, 493, 591, 88, 1025 88, 493, 370, 88, 370, 495, 88, 495, 88, 88, 1026 88, 495, 372, 88, 372, 501, 524, 501, 522, 501, 1027 520, 501, 387, 518, 387, 516, 387, 514, 387, 389, 1028 389, 500, 389, 389, 389, 499, 389, 513, 496, 513, 1029 1030 494, 366, 366, 513, 515, 492, 515, 490, 488, 485, 1031 515, 517, 483, 517, 481, 479, 88, 517, 399, 88, 1032 399, 519, 88, 519, 407, 406, 404, 519, 401, 402, 1033 401, 521, 400, 521, 273, 268, 267, 521, 403, 396, 1034 403, 523, 396, 523, 255, 386, 386, 523, 405, 243, 1035 405, 87, 379, 373, 87, 371, 87, 87, 87, 87, 1036 87, 477, 477, 477, 477, 477, 477, 477, 477, 477, 1037 477, 477, 477, 477, 590, 369, 590, 365, 364, 362, 1038 590, 478, 360, 478, 592, 356, 592, 354, 208, 204, 1039 592, 480, 88, 480, 594, 280, 594, 279, 277, 273, 1040 1041 594, 482, 268, 482, 596, 271, 596, 268, 266, 265, 1042 596, 484, 264, 484, 598, 243, 598, 235, 86, 86, 1043 598, 487, 88, 487, 600, 208, 600, 206, 86, 123, 1044 600, 489, 118, 489, 491, 88, 491, 904, 71, 71, 1045 491, 602, 904, 602, 904, 904, 904, 602, 493, 904, 1046 493, 604, 904, 604, 904, 904, 904, 604, 495, 904, 1047 495, 501, 904, 501, 904, 501, 904, 501, 389, 904, 1048 389, 904, 904, 904, 389, 618, 904, 618, 904, 904, 1049 904, 618, 513, 904, 513, 620, 904, 620, 904, 904, 1050 904, 620, 515, 904, 515, 622, 904, 622, 904, 904, 1051 1052 904, 622, 517, 904, 517, 624, 904, 624, 904, 904, 1053 904, 624, 519, 904, 519, 626, 904, 626, 904, 904, 1054 904, 626, 521, 904, 521, 628, 904, 628, 904, 904, 1055 904, 628, 523, 904, 523, 87, 904, 904, 87, 904, 1056 87, 87, 87, 87, 87, 682, 682, 682, 682, 682, 1057 682, 682, 682, 682, 682, 682, 682, 682, 684, 904, 1058 684, 904, 904, 904, 684, 590, 904, 590, 686, 904, 1059 686, 904, 904, 904, 686, 592, 904, 592, 688, 904, 1060 688, 904, 904, 904, 688, 594, 904, 594, 690, 904, 1061 690, 904, 904, 904, 690, 596, 904, 596, 692, 904, 1062 1063 692, 904, 904, 904, 692, 598, 904, 598, 694, 904, 1064 694, 904, 904, 904, 694, 600, 904, 600, 696, 904, 1065 696, 904, 904, 904, 696, 602, 904, 602, 87, 904, 1066 87, 904, 904, 904, 87, 604, 904, 604, 501, 904, 1067 501, 904, 904, 904, 501, 704, 904, 704, 904, 904, 1068 904, 704, 618, 904, 618, 706, 904, 706, 904, 904, 1069 904, 706, 620, 904, 620, 708, 904, 708, 904, 904, 1070 904, 708, 622, 904, 622, 141, 904, 141, 904, 904, 1071 904, 141, 624, 904, 624, 711, 904, 711, 626, 904, 1072 626, 87, 904, 904, 87, 904, 87, 87, 87, 87, 1073 1074 87, 628, 904, 628, 682, 682, 682, 682, 682, 682, 1075 682, 682, 682, 682, 682, 682, 682, 750, 904, 750, 1076 904, 904, 904, 750, 684, 904, 684, 207, 904, 207, 1077 904, 904, 904, 207, 686, 904, 686, 753, 904, 753, 1078 688, 904, 688, 207, 904, 904, 207, 904, 207, 207, 1079 207, 207, 207, 690, 904, 690, 754, 904, 754, 692, 1080 904, 692, 694, 904, 694, 755, 904, 755, 696, 904, 1081 696, 87, 904, 87, 757, 904, 757, 904, 904, 904, 1082 757, 704, 904, 704, 272, 904, 272, 904, 904, 904, 1083 272, 706, 904, 706, 760, 904, 760, 708, 904, 708, 1084 1085 141, 904, 141, 761, 904, 761, 904, 904, 904, 761, 1086 87, 904, 904, 87, 904, 87, 87, 87, 87, 87, 1087 795, 904, 795, 750, 904, 750, 207, 904, 207, 796, 1088 904, 796, 904, 904, 904, 796, 798, 904, 798, 904, 1089 904, 904, 798, 800, 904, 800, 904, 904, 904, 800, 1090 802, 904, 802, 803, 904, 803, 904, 904, 904, 803, 1091 805, 904, 805, 904, 904, 904, 805, 827, 904, 827, 1092 904, 904, 904, 827, 829, 904, 829, 904, 904, 904, 1093 829, 831, 904, 831, 904, 904, 904, 831, 833, 904, 1094 833, 904, 904, 904, 833, 835, 904, 835, 904, 904, 1095 1096 904, 835, 837, 904, 837, 904, 904, 904, 837, 628, 1097 904, 628, 904, 904, 904, 628, 857, 904, 857, 904, 1098 904, 904, 857, 690, 904, 690, 904, 904, 904, 690, 1099 694, 904, 694, 904, 904, 904, 694, 87, 904, 87, 1100 904, 904, 904, 87, 862, 904, 862, 904, 904, 904, 1101 862, 141, 904, 141, 904, 904, 904, 141, 207, 904, 1102 207, 904, 904, 904, 207, 11, 904, 904, 904, 904, 1103 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1104 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1105 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1106 1107 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1108 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1109 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1110 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1111 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1112 904 1107 1113 } ; 1108 1114 1109 static yyconst flex_int16_t yy_chk[29 31] =1115 static yyconst flex_int16_t yy_chk[2952] = 1110 1116 { 0, 1111 1117 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, … … 1128 1134 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1129 1135 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 1130 8, 9, 10, 37, 37, 20, 39, 9, 10, 893,1136 8, 9, 10, 37, 37, 20, 39, 9, 10, 903, 1131 1137 7, 8, 13, 13, 13, 13, 13, 13, 15, 15, 1132 1138 1133 1139 15, 15, 15, 15, 20, 25, 48, 39, 42, 28, 1134 27, 28, 28, 28, 28, 28, 28, 1 09, 115, 25,1140 27, 28, 28, 28, 28, 28, 28, 110, 116, 25, 1135 1141 29, 25, 27, 27, 27, 29, 48, 35, 40, 7, 1136 1142 8, 9, 10, 40, 42, 29, 30, 47, 30, 30, 1137 30, 30, 30, 30, 35, 57, 35, 35, 44, 12 6,1138 44, 12 6, 109, 115, 57, 30, 64, 56, 47, 30,1143 30, 30, 30, 30, 35, 57, 35, 35, 44, 127, 1144 44, 127, 110, 116, 57, 30, 65, 544, 47, 30, 1139 1145 47, 45, 45, 45, 49, 30, 30, 45, 45, 49, 1140 45, 30, 40, 45, 45, 40, 49, 30, 45, 56, 1141 62, 45, 49, 30, 73, 892, 127, 53, 127, 51, 1142 61, 30, 62, 55, 30, 31, 108, 31, 31, 31, 1143 1144 31, 31, 31, 50, 51, 53, 51, 64, 61, 54, 1145 73, 55, 50, 87, 31, 51, 50, 55, 31, 54, 1146 108, 50, 52, 114, 31, 50, 54, 52, 175, 129, 1147 31, 129, 107, 154, 151, 52, 31, 52, 107, 87, 1148 52, 60, 31, 132, 52, 132, 60, 114, 175, 154, 1149 31, 38, 151, 387, 111, 38, 38, 58, 38, 60, 1150 38, 38, 113, 38, 107, 38, 59, 130, 113, 58, 1151 58, 116, 111, 164, 38, 38, 38, 387, 59, 58, 1152 111, 130, 58, 130, 142, 60, 59, 131, 60, 116, 1153 164, 68, 68, 59, 113, 38, 68, 116, 38, 131, 1154 1155 110, 131, 60, 67, 67, 67, 67, 67, 67, 884, 1156 142, 67, 68, 68, 68, 68, 68, 68, 80, 80, 1157 80, 80, 80, 80, 153, 38, 38, 77, 77, 134, 1158 110, 134, 77, 153, 77, 110, 135, 135, 135, 77, 1159 82, 82, 82, 82, 82, 82, 883, 243, 77, 77, 1160 77, 77, 83, 83, 83, 83, 83, 83, 110, 77, 1161 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 1162 133, 133, 137, 133, 137, 77, 145, 139, 77, 139, 1163 157, 145, 243, 77, 77, 152, 156, 77, 77, 155, 1164 166, 150, 157, 880, 104, 77, 159, 168, 77, 104, 1165 1166 77, 77, 77, 152, 77, 85, 150, 155, 156, 85, 1167 85, 166, 159, 150, 85, 85, 161, 85, 160, 85, 1168 145, 162, 104, 167, 168, 161, 169, 163, 85, 85, 1169 85, 105, 163, 105, 105, 105, 105, 105, 105, 879, 1170 160, 171, 162, 162, 165, 163, 167, 169, 173, 85, 1171 105, 106, 85, 106, 165, 172, 106, 106, 106, 106, 1172 106, 106, 180, 171, 170, 173, 105, 176, 177, 170, 1173 172, 181, 105, 174, 184, 187, 181, 182, 179, 180, 1174 85, 99, 99, 99, 99, 99, 99, 170, 187, 106, 1175 177, 174, 184, 179, 176, 183, 190, 99, 99, 99, 1176 1177 179, 99, 99, 189, 182, 186, 183, 191, 189, 218, 1178 186, 218, 185, 188, 99, 190, 183, 183, 284, 99, 1179 99, 99, 158, 185, 99, 186, 99, 158, 158, 158, 1180 189, 158, 158, 188, 192, 158, 194, 158, 284, 219, 1181 185, 219, 158, 158, 158, 193, 158, 192, 220, 194, 1182 220, 191, 198, 198, 191, 192, 205, 198, 193, 877, 1183 193, 197, 197, 197, 197, 197, 197, 200, 200, 197, 1184 248, 221, 200, 198, 198, 198, 198, 198, 198, 202, 1185 202, 223, 205, 223, 202, 221, 202, 221, 200, 200, 1186 200, 200, 200, 200, 209, 209, 248, 876, 222, 209, 1187 1188 202, 202, 202, 202, 202, 202, 212, 212, 212, 212, 1189 222, 286, 222, 224, 224, 225, 224, 225, 226, 226, 1190 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 1309 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 1146 45, 30, 40, 45, 45, 40, 49, 30, 45, 63, 1147 62, 45, 49, 30, 74, 902, 544, 53, 63, 51, 1148 61, 30, 62, 55, 30, 31, 109, 31, 31, 31, 1149 1150 31, 31, 31, 50, 51, 53, 51, 65, 61, 54, 1151 74, 55, 50, 88, 31, 51, 50, 55, 31, 54, 1152 109, 50, 52, 115, 31, 50, 54, 52, 182, 146, 1153 31, 56, 108, 182, 146, 52, 31, 52, 108, 88, 1154 52, 60, 31, 128, 52, 128, 60, 115, 56, 152, 1155 31, 38, 894, 56, 112, 38, 38, 58, 38, 60, 1156 38, 38, 114, 38, 108, 38, 59, 152, 114, 58, 1157 58, 117, 112, 146, 38, 38, 38, 189, 59, 58, 1158 112, 130, 58, 130, 143, 60, 59, 132, 60, 117, 1159 189, 69, 69, 59, 114, 38, 69, 117, 38, 132, 1160 1161 111, 132, 60, 68, 68, 68, 68, 68, 68, 893, 1162 143, 68, 69, 69, 69, 69, 69, 69, 81, 81, 1163 81, 81, 81, 81, 154, 38, 38, 78, 78, 133, 1164 111, 133, 78, 154, 78, 111, 135, 162, 135, 78, 1165 83, 83, 83, 83, 83, 83, 162, 890, 78, 78, 1166 78, 78, 84, 84, 84, 84, 84, 84, 111, 78, 1167 104, 104, 104, 104, 104, 104, 105, 105, 105, 105, 1168 134, 134, 138, 134, 138, 78, 131, 155, 78, 136, 1169 136, 136, 173, 78, 78, 153, 157, 78, 78, 140, 1170 131, 140, 131, 155, 105, 78, 151, 173, 78, 105, 1171 1172 78, 78, 78, 153, 78, 86, 156, 160, 157, 86, 1173 86, 151, 183, 158, 86, 86, 168, 86, 151, 86, 1174 161, 183, 105, 160, 156, 158, 163, 164, 86, 86, 1175 86, 106, 164, 106, 106, 106, 106, 106, 106, 168, 1176 169, 167, 161, 170, 166, 164, 165, 163, 163, 86, 1177 106, 107, 86, 107, 166, 172, 107, 107, 107, 107, 1178 107, 107, 167, 165, 170, 171, 106, 169, 177, 175, 1179 171, 176, 106, 174, 178, 181, 184, 172, 180, 889, 1180 86, 100, 100, 100, 100, 100, 100, 175, 171, 107, 1181 174, 176, 181, 180, 185, 177, 178, 100, 100, 100, 1182 1183 180, 100, 100, 184, 192, 185, 187, 186, 193, 221, 1184 190, 221, 887, 188, 100, 185, 185, 187, 188, 100, 1185 100, 100, 159, 192, 100, 186, 100, 159, 159, 159, 1186 190, 159, 159, 188, 187, 159, 191, 159, 194, 208, 1187 196, 191, 159, 159, 159, 195, 159, 197, 251, 212, 1188 212, 194, 193, 196, 212, 193, 201, 201, 195, 194, 1189 195, 201, 222, 191, 222, 208, 259, 197, 200, 200, 1190 200, 200, 200, 200, 251, 287, 200, 201, 201, 201, 1191 201, 201, 201, 203, 203, 223, 246, 223, 203, 205, 1192 205, 226, 259, 226, 205, 287, 205, 215, 215, 215, 1193 1194 215, 228, 224, 228, 203, 203, 203, 203, 203, 203, 1195 205, 205, 205, 205, 205, 205, 224, 225, 224, 227, 1196 227, 246, 227, 229, 229, 229, 231, 239, 231, 225, 1197 215, 225, 232, 291, 232, 237, 237, 238, 269, 238, 1198 269, 284, 238, 238, 238, 238, 238, 238, 273, 240, 1199 239, 240, 432, 270, 240, 270, 291, 284, 237, 244, 1200 244, 244, 244, 244, 244, 245, 432, 245, 245, 245, 1201 245, 240, 286, 240, 273, 238, 282, 286, 240, 247, 1202 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 1203 248, 283, 244, 285, 282, 281, 247, 250, 294, 250, 1204 1205 245, 293, 250, 250, 250, 250, 250, 250, 281, 283, 1206 285, 288, 247, 294, 289, 331, 288, 297, 247, 249, 1207 249, 249, 249, 249, 249, 256, 297, 293, 258, 258, 1208 258, 258, 258, 258, 289, 249, 298, 249, 331, 249, 1209 249, 263, 263, 263, 263, 263, 263, 292, 256, 298, 1210 256, 295, 249, 296, 256, 299, 290, 249, 296, 249, 1211 256, 258, 249, 300, 249, 292, 302, 295, 295, 306, 1212 303, 290, 256, 307, 263, 303, 256, 290, 290, 304, 1213 256, 300, 299, 305, 302, 308, 312, 309, 304, 306, 1214 305, 307, 309, 310, 311, 313, 314, 315, 310, 316, 1215 1216 311, 317, 314, 321, 313, 312, 308, 308, 316, 318, 1217 319, 322, 320, 315, 318, 319, 317, 320, 323, 325, 1218 326, 327, 321, 328, 327, 329, 330, 332, 333, 322, 1219 325, 323, 334, 335, 320, 326, 336, 339, 329, 337, 1220 338, 334, 328, 341, 342, 333, 343, 332, 330, 344, 1221 339, 346, 341, 347, 348, 335, 346, 345, 338, 336, 1222 387, 337, 344, 350, 343, 345, 349, 349, 347, 350, 1223 387, 349, 348, 349, 357, 357, 357, 357, 358, 358, 1224 358, 358, 367, 368, 367, 368, 387, 408, 342, 375, 1225 375, 375, 375, 375, 375, 377, 388, 377, 408, 392, 1226 1227 377, 377, 377, 377, 377, 377, 388, 357, 376, 376, 1228 376, 376, 376, 376, 379, 379, 379, 379, 379, 379, 1229 411, 409, 388, 392, 376, 410, 376, 413, 376, 376, 1230 382, 382, 382, 382, 382, 382, 390, 409, 413, 411, 1231 410, 376, 390, 394, 415, 419, 376, 379, 376, 417, 1232 886, 376, 420, 376, 380, 380, 380, 380, 380, 380, 1233 389, 394, 417, 382, 412, 420, 415, 419, 390, 394, 1234 380, 380, 380, 412, 380, 380, 383, 383, 383, 383, 1235 383, 383, 426, 389, 418, 389, 879, 380, 426, 389, 1236 878, 393, 380, 380, 380, 389, 391, 380, 391, 380, 1237 1238 418, 391, 391, 391, 391, 391, 391, 389, 414, 383, 1239 416, 389, 421, 422, 393, 389, 393, 414, 423, 416, 1240 393, 428, 424, 427, 429, 425, 393, 424, 421, 421, 1241 430, 436, 428, 437, 391, 422, 423, 434, 393, 439, 1242 425, 438, 393, 429, 427, 430, 393, 425, 441, 434, 1243 440, 442, 436, 444, 438, 437, 440, 446, 447, 448, 1244 442, 449, 439, 441, 450, 451, 452, 454, 444, 456, 1245 459, 457, 458, 462, 448, 452, 460, 446, 461, 450, 1246 447, 458, 464, 449, 454, 451, 465, 466, 463, 468, 1247 469, 459, 456, 457, 466, 462, 460, 463, 461, 465, 1248 1249 464, 467, 470, 474, 471, 472, 475, 477, 467, 877, 1250 470, 526, 469, 477, 468, 475, 472, 504, 505, 476, 1251 470, 471, 476, 876, 526, 474, 486, 486, 486, 486, 1252 497, 497, 497, 497, 497, 497, 499, 499, 499, 499, 1253 499, 499, 525, 504, 505, 528, 497, 529, 497, 530, 1254 497, 497, 500, 500, 500, 500, 500, 500, 875, 525, 1255 528, 501, 530, 497, 531, 538, 503, 529, 497, 499, 1256 497, 501, 502, 497, 502, 497, 503, 502, 502, 502, 1257 502, 502, 502, 533, 538, 500, 531, 501, 533, 532, 1258 871, 867, 503, 507, 507, 507, 507, 507, 507, 509, 1259 1260 535, 509, 532, 535, 509, 509, 509, 509, 509, 509, 1261 502, 508, 508, 508, 508, 508, 508, 534, 536, 537, 1262 539, 540, 542, 543, 864, 546, 547, 508, 534, 508, 1263 540, 508, 508, 542, 537, 541, 543, 545, 536, 548, 1264 541, 539, 554, 547, 508, 549, 545, 546, 548, 508, 1265 549, 508, 551, 552, 508, 555, 508, 556, 551, 554, 1266 557, 560, 552, 561, 559, 562, 564, 571, 567, 557, 1267 555, 565, 556, 559, 568, 561, 565, 567, 560, 572, 1268 562, 564, 573, 568, 576, 575, 578, 582, 577, 571, 1269 579, 580, 572, 575, 576, 577, 582, 580, 585, 573, 1270 1271 583, 586, 579, 588, 630, 863, 634, 728, 578, 630, 1272 583, 633, 613, 613, 586, 585, 606, 606, 606, 606, 1273 606, 606, 630, 634, 633, 588, 607, 607, 607, 607, 1274 607, 607, 609, 614, 609, 613, 728, 609, 609, 609, 1275 609, 609, 609, 612, 612, 612, 612, 612, 612, 606, 1276 608, 608, 608, 608, 608, 608, 614, 615, 631, 615, 1277 632, 635, 615, 638, 637, 631, 608, 636, 608, 632, 1278 608, 608, 637, 648, 636, 639, 612, 641, 639, 615, 1279 638, 615, 642, 608, 635, 640, 615, 643, 608, 644, 1280 608, 645, 649, 608, 647, 608, 650, 642, 640, 641, 1281 1282 646, 648, 652, 646, 653, 651, 644, 649, 654, 643, 1283 656, 647, 657, 645, 651, 658, 650, 654, 662, 663, 1284 652, 668, 665, 862, 658, 669, 653, 676, 679, 680, 1285 668, 677, 669, 656, 657, 713, 676, 679, 662, 665, 1286 712, 677, 718, 715, 680, 713, 663, 699, 699, 699, 1287 699, 699, 699, 703, 703, 703, 703, 703, 703, 716, 1288 721, 712, 718, 699, 734, 699, 716, 699, 699, 715, 1289 717, 719, 734, 720, 719, 717, 720, 723, 721, 725, 1290 699, 724, 727, 723, 731, 699, 703, 699, 725, 745, 1291 699, 730, 699, 726, 724, 729, 726, 735, 729, 732, 1292 1293 730, 733, 732, 727, 736, 737, 738, 735, 744, 741, 1294 731, 745, 746, 748, 733, 738, 749, 736, 769, 861, 1295 767, 748, 772, 769, 768, 749, 737, 741, 744, 770, 1296 773, 774, 741, 746, 756, 756, 756, 756, 756, 756, 1297 767, 768, 771, 775, 770, 772, 775, 773, 776, 777, 1298 779, 781, 771, 779, 781, 782, 783, 774, 785, 783, 1299 784, 776, 782, 784, 786, 788, 792, 756, 807, 809, 1300 817, 812, 811, 785, 810, 811, 813, 777, 814, 813, 1301 816, 814, 818, 820, 860, 818, 824, 786, 788, 792, 1302 809, 821, 810, 812, 821, 807, 817, 822, 816, 823, 1303 1304 822, 825, 824, 826, 841, 820, 842, 843, 823, 844, 1305 843, 845, 825, 842, 846, 847, 855, 846, 844, 826, 1306 850, 853, 854, 850, 853, 841, 859, 856, 855, 845, 1307 865, 854, 847, 866, 868, 845, 856, 868, 866, 865, 1308 869, 870, 872, 880, 873, 872, 870, 873, 874, 881, 1309 869, 874, 882, 888, 884, 882, 883, 884, 885, 891, 1310 895, 885, 892, 880, 881, 896, 883, 897, 899, 895, 1311 898, 900, 901, 858, 857, 888, 852, 892, 896, 851, 1312 891, 849, 901, 848, 840, 839, 899, 838, 837, 897, 1313 836, 898, 835, 900, 905, 905, 905, 905, 905, 905, 1314 1315 905, 905, 905, 905, 905, 905, 905, 906, 906, 906, 1316 906, 906, 906, 906, 906, 906, 906, 906, 906, 906, 1317 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 1318 907, 907, 907, 908, 834, 833, 908, 832, 908, 908, 1319 908, 908, 908, 909, 831, 830, 829, 909, 909, 909, 1320 909, 909, 909, 910, 910, 910, 910, 910, 910, 910, 1321 910, 910, 910, 910, 910, 910, 911, 828, 827, 911, 1322 819, 911, 911, 911, 911, 911, 912, 815, 912, 912, 1323 808, 912, 912, 912, 912, 912, 912, 806, 912, 913, 1324 805, 804, 913, 913, 913, 913, 913, 913, 913, 913, 1325 1326 803, 913, 914, 914, 914, 914, 914, 914, 914, 914, 1327 914, 914, 914, 914, 914, 915, 915, 802, 915, 801, 1328 800, 799, 915, 916, 798, 797, 916, 796, 916, 916, 1329 916, 916, 916, 917, 795, 917, 794, 793, 791, 917, 1330 918, 790, 918, 789, 787, 780, 918, 919, 778, 919, 1331 766, 765, 764, 919, 920, 763, 920, 762, 761, 760, 1332 920, 921, 759, 921, 758, 755, 754, 921, 922, 753, 1333 922, 747, 743, 742, 922, 923, 740, 923, 739, 722, 1334 714, 923, 924, 711, 924, 706, 704, 700, 924, 925, 1335 690, 925, 686, 684, 682, 925, 926, 681, 926, 927, 1336 1337 927, 678, 927, 927, 927, 675, 927, 928, 928, 674, 1338 928, 929, 673, 672, 929, 671, 929, 929, 929, 929, 1339 929, 930, 670, 930, 667, 666, 664, 930, 931, 661, 1340 931, 660, 659, 655, 931, 932, 628, 932, 624, 622, 1341 620, 932, 933, 618, 933, 934, 616, 934, 610, 604, 1342 602, 934, 935, 600, 935, 936, 598, 596, 936, 594, 1343 936, 936, 936, 936, 936, 937, 937, 937, 937, 937, 1344 937, 937, 937, 937, 937, 937, 937, 937, 938, 938, 1345 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 1346 938, 939, 592, 939, 590, 589, 587, 939, 940, 584, 1347 1348 940, 581, 574, 570, 940, 941, 569, 941, 566, 563, 1349 558, 941, 942, 553, 942, 943, 550, 943, 527, 523, 1350 521, 943, 944, 519, 944, 945, 517, 945, 515, 513, 1351 512, 945, 946, 511, 946, 947, 510, 947, 498, 495, 1352 493, 947, 948, 492, 948, 949, 491, 949, 489, 487, 1353 484, 949, 950, 482, 950, 951, 480, 951, 478, 473, 1354 455, 951, 952, 453, 952, 953, 445, 953, 443, 435, 1355 433, 953, 954, 431, 954, 955, 405, 955, 403, 955, 1356 401, 955, 956, 399, 956, 398, 956, 397, 956, 957, 1357 957, 384, 957, 957, 957, 381, 957, 958, 372, 958, 1358 1359 370, 369, 365, 958, 959, 363, 959, 361, 359, 355, 1360 959, 960, 353, 960, 352, 351, 340, 960, 961, 324, 1361 961, 962, 301, 962, 280, 278, 276, 962, 963, 275, 1362 963, 964, 274, 964, 272, 271, 266, 964, 965, 262, 1363 965, 966, 261, 966, 257, 254, 253, 966, 967, 242, 1364 967, 968, 241, 234, 968, 233, 968, 968, 968, 968, 1365 968, 969, 969, 969, 969, 969, 969, 969, 969, 969, 1366 969, 969, 969, 969, 970, 230, 970, 220, 218, 217, 1367 970, 971, 216, 971, 972, 210, 972, 209, 207, 202, 1368 972, 973, 179, 973, 974, 150, 974, 148, 147, 141, 1369 1370 974, 975, 139, 975, 976, 137, 976, 129, 126, 125, 1371 976, 977, 121, 977, 978, 102, 978, 99, 96, 94, 1372 978, 979, 87, 979, 980, 73, 980, 71, 67, 36, 1373 980, 981, 33, 981, 982, 18, 982, 11, 4, 3, 1374 982, 983, 0, 983, 0, 0, 0, 983, 984, 0, 1375 984, 985, 0, 985, 0, 0, 0, 985, 986, 0, 1376 986, 987, 0, 987, 0, 987, 0, 987, 988, 0, 1377 988, 0, 0, 0, 988, 989, 0, 989, 0, 0, 1378 0, 989, 990, 0, 990, 991, 0, 991, 0, 0, 1379 0, 991, 992, 0, 992, 993, 0, 993, 0, 0, 1380 1381 0, 993, 994, 0, 994, 995, 0, 995, 0, 0, 1382 0, 995, 996, 0, 996, 997, 0, 997, 0, 0, 1383 0, 997, 998, 0, 998, 999, 0, 999, 0, 0, 1384 0, 999, 1000, 0, 1000, 1001, 0, 0, 1001, 0, 1385 1001, 1001, 1001, 1001, 1001, 1002, 1002, 1002, 1002, 1002, 1386 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 0, 1387 1003, 0, 0, 0, 1003, 1004, 0, 1004, 1005, 0, 1388 1005, 0, 0, 0, 1005, 1006, 0, 1006, 1007, 0, 1389 1007, 0, 0, 0, 1007, 1008, 0, 1008, 1009, 0, 1390 1009, 0, 0, 0, 1009, 1010, 0, 1010, 1011, 0, 1391 1392 1011, 0, 0, 0, 1011, 1012, 0, 1012, 1013, 0, 1393 1013, 0, 0, 0, 1013, 1014, 0, 1014, 1015, 0, 1394 1015, 0, 0, 0, 1015, 1016, 0, 1016, 1017, 0, 1395 1017, 0, 0, 0, 1017, 1018, 0, 1018, 1019, 0, 1396 1019, 0, 0, 0, 1019, 1020, 0, 1020, 0, 0, 1397 0, 1020, 1021, 0, 1021, 1022, 0, 1022, 0, 0, 1398 0, 1022, 1023, 0, 1023, 1024, 0, 1024, 0, 0, 1399 0, 1024, 1025, 0, 1025, 1026, 0, 1026, 0, 0, 1400 0, 1026, 1027, 0, 1027, 1028, 0, 1028, 1029, 0, 1401 1029, 1030, 0, 0, 1030, 0, 1030, 1030, 1030, 1030, 1402 1403 1030, 1031, 0, 1031, 1032, 1032, 1032, 1032, 1032, 1032, 1404 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1033, 0, 1033, 1405 0, 0, 0, 1033, 1034, 0, 1034, 1035, 0, 1035, 1406 0, 0, 0, 1035, 1036, 0, 1036, 1037, 0, 1037, 1407 1038, 0, 1038, 1039, 0, 0, 1039, 0, 1039, 1039, 1408 1039, 1039, 1039, 1040, 0, 1040, 1041, 0, 1041, 1042, 1409 0, 1042, 1043, 0, 1043, 1044, 0, 1044, 1045, 0, 1410 1045, 1046, 0, 1046, 1047, 0, 1047, 0, 0, 0, 1411 1047, 1048, 0, 1048, 1049, 0, 1049, 0, 0, 0, 1412 1049, 1050, 0, 1050, 1051, 0, 1051, 1052, 0, 1052, 1413 1414 1053, 0, 1053, 1054, 0, 1054, 0, 0, 0, 1054, 1415 1055, 0, 0, 1055, 0, 1055, 1055, 1055, 1055, 1055, 1416 1056, 0, 1056, 1057, 0, 1057, 1058, 0, 1058, 1059, 1417 0, 1059, 0, 0, 0, 1059, 1060, 0, 1060, 0, 1418 0, 0, 1060, 1061, 0, 1061, 0, 0, 0, 1061, 1419 1062, 0, 1062, 1063, 0, 1063, 0, 0, 0, 1063, 1420 1064, 0, 1064, 0, 0, 0, 1064, 1065, 0, 1065, 1421 0, 0, 0, 1065, 1066, 0, 1066, 0, 0, 0, 1422 1066, 1067, 0, 1067, 0, 0, 0, 1067, 1068, 0, 1423 1068, 0, 0, 0, 1068, 1069, 0, 1069, 0, 0, 1424 1425 0, 1069, 1070, 0, 1070, 0, 0, 0, 1070, 1071, 1426 0, 1071, 0, 0, 0, 1071, 1072, 0, 1072, 0, 1427 0, 0, 1072, 1073, 0, 1073, 0, 0, 0, 1073, 1428 1074, 0, 1074, 0, 0, 0, 1074, 1075, 0, 1075, 1429 0, 0, 0, 1075, 1076, 0, 1076, 0, 0, 0, 1430 1076, 1077, 0, 1077, 0, 0, 0, 1077, 1078, 0, 1431 1078, 0, 0, 0, 1078, 904, 904, 904, 904, 904, 1432 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1433 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1434 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1435 1436 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1437 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1438 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1439 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1440 904, 904, 904, 904, 904, 904, 904, 904, 904, 904, 1441 904 1433 1442 } ; 1434 1443 1435 1444 /* Table of booleans, true if rule could match eol. */ 1436 static yyconst flex_int32_t yy_rule_can_match_eol[18 4] =1445 static yyconst flex_int32_t yy_rule_can_match_eol[186] = 1437 1446 { 0, 1438 1447 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … … 1441 1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1442 1451 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,1452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1453 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1445 1454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1446 1455 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, };1456 0, 0, 0, 0, 0, 0, }; 1448 1457 1449 1458 static yy_state_type yy_last_accepting_state; … … 1473 1482 * Created On : Sat Sep 22 08:58:10 2001 1474 1483 * Last Modified By : Peter A. Buhr 1475 * Last Modified On : Wed Oct 26 17:32:30 20161476 * Update Count : 4991484 * Last Modified On : Tue Nov 29 11:32:00 2016 1485 * Update Count : 501 1477 1486 */ 1478 1487 #line 20 "lex.ll" … … 1535 1544 1536 1545 1537 #line 15 38"Parser/lex.cc"1546 #line 1547 "Parser/lex.cc" 1538 1547 1539 1548 #define INITIAL 0 … … 1730 1739 1731 1740 /* line directives */ 1732 #line 17 33"Parser/lex.cc"1741 #line 1742 "Parser/lex.cc" 1733 1742 1734 1743 if ( !(yy_init) ) … … 1784 1793 { 1785 1794 yy_current_state = (int) yy_def[yy_current_state]; 1786 if ( yy_current_state >= 895 )1795 if ( yy_current_state >= 905 ) 1787 1796 yy_c = yy_meta[(unsigned int) yy_c]; 1788 1797 } … … 1790 1799 ++yy_cp; 1791 1800 } 1792 while ( yy_base[yy_current_state] != 28 45);1801 while ( yy_base[yy_current_state] != 2866 ); 1793 1802 1794 1803 yy_find_action: … … 2206 2215 YY_RULE_SETUP 2207 2216 #line 239 "lex.ll" 2217 { NUMERIC_RETURN(ONE_T); } // CFA 2218 YY_BREAK 2219 case 72: 2220 YY_RULE_SETUP 2221 #line 240 "lex.ll" 2208 2222 { KEYWORD_RETURN(OTYPE); } // CFA 2209 2223 YY_BREAK 2210 case 7 2:2211 YY_RULE_SETUP 2212 #line 24 0"lex.ll"2224 case 73: 2225 YY_RULE_SETUP 2226 #line 241 "lex.ll" 2213 2227 { KEYWORD_RETURN(REGISTER); } 2214 2228 YY_BREAK 2215 case 7 3:2216 YY_RULE_SETUP 2217 #line 24 1"lex.ll"2229 case 74: 2230 YY_RULE_SETUP 2231 #line 242 "lex.ll" 2218 2232 { KEYWORD_RETURN(RESTRICT); } // C99 2219 YY_BREAK2220 case 74:2221 YY_RULE_SETUP2222 #line 242 "lex.ll"2223 { KEYWORD_RETURN(RESTRICT); } // GCC2224 2233 YY_BREAK 2225 2234 case 75: … … 2231 2240 YY_RULE_SETUP 2232 2241 #line 244 "lex.ll" 2242 { KEYWORD_RETURN(RESTRICT); } // GCC 2243 YY_BREAK 2244 case 77: 2245 YY_RULE_SETUP 2246 #line 245 "lex.ll" 2233 2247 { KEYWORD_RETURN(RETURN); } 2234 2248 YY_BREAK 2235 case 7 7:2236 YY_RULE_SETUP 2237 #line 24 5"lex.ll"2249 case 78: 2250 YY_RULE_SETUP 2251 #line 246 "lex.ll" 2238 2252 { KEYWORD_RETURN(SHORT); } 2239 2253 YY_BREAK 2240 case 7 8:2241 YY_RULE_SETUP 2242 #line 24 6"lex.ll"2254 case 79: 2255 YY_RULE_SETUP 2256 #line 247 "lex.ll" 2243 2257 { KEYWORD_RETURN(SIGNED); } 2244 YY_BREAK2245 case 79:2246 YY_RULE_SETUP2247 #line 247 "lex.ll"2248 { KEYWORD_RETURN(SIGNED); } // GCC2249 2258 YY_BREAK 2250 2259 case 80: … … 2256 2265 YY_RULE_SETUP 2257 2266 #line 249 "lex.ll" 2267 { KEYWORD_RETURN(SIGNED); } // GCC 2268 YY_BREAK 2269 case 82: 2270 YY_RULE_SETUP 2271 #line 250 "lex.ll" 2258 2272 { KEYWORD_RETURN(SIZEOF); } 2259 2273 YY_BREAK 2260 case 8 2:2261 YY_RULE_SETUP 2262 #line 25 0"lex.ll"2274 case 83: 2275 YY_RULE_SETUP 2276 #line 251 "lex.ll" 2263 2277 { KEYWORD_RETURN(STATIC); } 2264 2278 YY_BREAK 2265 case 8 3:2266 YY_RULE_SETUP 2267 #line 25 1"lex.ll"2279 case 84: 2280 YY_RULE_SETUP 2281 #line 252 "lex.ll" 2268 2282 { KEYWORD_RETURN(STATICASSERT); } // C11 2269 2283 YY_BREAK 2270 case 8 4:2271 YY_RULE_SETUP 2272 #line 25 2"lex.ll"2284 case 85: 2285 YY_RULE_SETUP 2286 #line 253 "lex.ll" 2273 2287 { KEYWORD_RETURN(STRUCT); } 2274 2288 YY_BREAK 2275 case 8 5:2276 YY_RULE_SETUP 2277 #line 25 3"lex.ll"2289 case 86: 2290 YY_RULE_SETUP 2291 #line 254 "lex.ll" 2278 2292 { KEYWORD_RETURN(SWITCH); } 2279 2293 YY_BREAK 2280 case 8 6:2281 YY_RULE_SETUP 2282 #line 25 4"lex.ll"2294 case 87: 2295 YY_RULE_SETUP 2296 #line 255 "lex.ll" 2283 2297 { KEYWORD_RETURN(THREADLOCAL); } // C11 2284 2298 YY_BREAK 2285 case 8 7:2286 YY_RULE_SETUP 2287 #line 25 5"lex.ll"2299 case 88: 2300 YY_RULE_SETUP 2301 #line 256 "lex.ll" 2288 2302 { KEYWORD_RETURN(THROW); } // CFA 2289 2303 YY_BREAK 2290 case 8 8:2291 YY_RULE_SETUP 2292 #line 25 6"lex.ll"2304 case 89: 2305 YY_RULE_SETUP 2306 #line 257 "lex.ll" 2293 2307 { KEYWORD_RETURN(THROWRESUME); } // CFA 2294 2308 YY_BREAK 2295 case 89:2296 YY_RULE_SETUP 2297 #line 25 7"lex.ll"2309 case 90: 2310 YY_RULE_SETUP 2311 #line 258 "lex.ll" 2298 2312 { KEYWORD_RETURN(TRAIT); } // CFA 2299 2313 YY_BREAK 2300 case 9 0:2301 YY_RULE_SETUP 2302 #line 25 8"lex.ll"2314 case 91: 2315 YY_RULE_SETUP 2316 #line 259 "lex.ll" 2303 2317 { KEYWORD_RETURN(TRY); } // CFA 2304 2318 YY_BREAK 2305 case 9 1:2306 YY_RULE_SETUP 2307 #line 2 59"lex.ll"2319 case 92: 2320 YY_RULE_SETUP 2321 #line 260 "lex.ll" 2308 2322 { KEYWORD_RETURN(TYPEDEF); } 2309 YY_BREAK2310 case 92:2311 YY_RULE_SETUP2312 #line 260 "lex.ll"2313 { KEYWORD_RETURN(TYPEOF); } // GCC2314 2323 YY_BREAK 2315 2324 case 93: … … 2326 2335 YY_RULE_SETUP 2327 2336 #line 263 "lex.ll" 2337 { KEYWORD_RETURN(TYPEOF); } // GCC 2338 YY_BREAK 2339 case 96: 2340 YY_RULE_SETUP 2341 #line 264 "lex.ll" 2328 2342 { KEYWORD_RETURN(UNION); } 2329 2343 YY_BREAK 2330 case 9 6:2331 YY_RULE_SETUP 2332 #line 26 4"lex.ll"2344 case 97: 2345 YY_RULE_SETUP 2346 #line 265 "lex.ll" 2333 2347 { KEYWORD_RETURN(UNSIGNED); } 2334 2348 YY_BREAK 2335 case 9 7:2336 YY_RULE_SETUP 2337 #line 26 5"lex.ll"2349 case 98: 2350 YY_RULE_SETUP 2351 #line 266 "lex.ll" 2338 2352 { KEYWORD_RETURN(VALIST); } // GCC 2339 2353 YY_BREAK 2340 case 9 8:2341 YY_RULE_SETUP 2342 #line 26 6"lex.ll"2354 case 99: 2355 YY_RULE_SETUP 2356 #line 267 "lex.ll" 2343 2357 { KEYWORD_RETURN(VOID); } 2344 2358 YY_BREAK 2345 case 99:2346 YY_RULE_SETUP 2347 #line 26 7"lex.ll"2359 case 100: 2360 YY_RULE_SETUP 2361 #line 268 "lex.ll" 2348 2362 { KEYWORD_RETURN(VOLATILE); } 2349 YY_BREAK2350 case 100:2351 YY_RULE_SETUP2352 #line 268 "lex.ll"2353 { KEYWORD_RETURN(VOLATILE); } // GCC2354 2363 YY_BREAK 2355 2364 case 101: … … 2361 2370 YY_RULE_SETUP 2362 2371 #line 270 "lex.ll" 2372 { KEYWORD_RETURN(VOLATILE); } // GCC 2373 YY_BREAK 2374 case 103: 2375 YY_RULE_SETUP 2376 #line 271 "lex.ll" 2363 2377 { KEYWORD_RETURN(WHILE); } 2364 2378 YY_BREAK 2379 case 104: 2380 YY_RULE_SETUP 2381 #line 272 "lex.ll" 2382 { NUMERIC_RETURN(ZERO_T); } // CFA 2383 YY_BREAK 2365 2384 /* identifier */ 2366 case 10 3:2367 YY_RULE_SETUP 2368 #line 27 3"lex.ll"2385 case 105: 2386 YY_RULE_SETUP 2387 #line 275 "lex.ll" 2369 2388 { IDENTIFIER_RETURN(); } 2370 2389 YY_BREAK 2371 case 10 4:2372 YY_RULE_SETUP 2373 #line 27 4"lex.ll"2390 case 106: 2391 YY_RULE_SETUP 2392 #line 276 "lex.ll" 2374 2393 { ATTRIBUTE_RETURN(); } 2375 2394 YY_BREAK 2376 case 10 5:2377 YY_RULE_SETUP 2378 #line 27 5"lex.ll"2395 case 107: 2396 YY_RULE_SETUP 2397 #line 277 "lex.ll" 2379 2398 { BEGIN BKQUOTE; } 2380 2399 YY_BREAK 2381 case 10 6:2382 YY_RULE_SETUP 2383 #line 27 6"lex.ll"2400 case 108: 2401 YY_RULE_SETUP 2402 #line 278 "lex.ll" 2384 2403 { IDENTIFIER_RETURN(); } 2385 2404 YY_BREAK 2386 case 10 7:2387 YY_RULE_SETUP 2388 #line 27 7"lex.ll"2405 case 109: 2406 YY_RULE_SETUP 2407 #line 279 "lex.ll" 2389 2408 { BEGIN 0; } 2390 2409 YY_BREAK 2391 2410 /* numeric constants */ 2392 case 1 08:2393 YY_RULE_SETUP 2394 #line 28 0"lex.ll"2411 case 110: 2412 YY_RULE_SETUP 2413 #line 282 "lex.ll" 2395 2414 { NUMERIC_RETURN(ZERO); } // CFA 2396 2415 YY_BREAK 2397 case 1 09:2398 YY_RULE_SETUP 2399 #line 28 1"lex.ll"2416 case 111: 2417 YY_RULE_SETUP 2418 #line 283 "lex.ll" 2400 2419 { NUMERIC_RETURN(ONE); } // CFA 2401 YY_BREAK2402 case 110:2403 YY_RULE_SETUP2404 #line 282 "lex.ll"2405 { NUMERIC_RETURN(INTEGERconstant); }2406 YY_BREAK2407 case 111:2408 YY_RULE_SETUP2409 #line 283 "lex.ll"2410 { NUMERIC_RETURN(INTEGERconstant); }2411 2420 YY_BREAK 2412 2421 case 112: … … 2418 2427 YY_RULE_SETUP 2419 2428 #line 285 "lex.ll" 2429 { NUMERIC_RETURN(INTEGERconstant); } 2430 YY_BREAK 2431 case 114: 2432 YY_RULE_SETUP 2433 #line 286 "lex.ll" 2434 { NUMERIC_RETURN(INTEGERconstant); } 2435 YY_BREAK 2436 case 115: 2437 YY_RULE_SETUP 2438 #line 287 "lex.ll" 2420 2439 { NUMERIC_RETURN(REALDECIMALconstant); } // must appear before floating_constant 2421 2440 YY_BREAK 2422 case 11 4:2423 YY_RULE_SETUP 2424 #line 28 6"lex.ll"2441 case 116: 2442 YY_RULE_SETUP 2443 #line 288 "lex.ll" 2425 2444 { NUMERIC_RETURN(REALFRACTIONconstant); } // must appear before floating_constant 2426 2445 YY_BREAK 2427 case 11 5:2428 YY_RULE_SETUP 2429 #line 28 7"lex.ll"2446 case 117: 2447 YY_RULE_SETUP 2448 #line 289 "lex.ll" 2430 2449 { NUMERIC_RETURN(FLOATINGconstant); } 2431 2450 YY_BREAK 2432 case 11 6:2433 YY_RULE_SETUP 2434 #line 2 88"lex.ll"2451 case 118: 2452 YY_RULE_SETUP 2453 #line 290 "lex.ll" 2435 2454 { NUMERIC_RETURN(FLOATINGconstant); } 2436 2455 YY_BREAK 2437 2456 /* character constant, allows empty value */ 2438 case 11 7:2439 YY_RULE_SETUP 2440 #line 29 1"lex.ll"2457 case 119: 2458 YY_RULE_SETUP 2459 #line 293 "lex.ll" 2441 2460 { BEGIN QUOTE; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2442 2461 YY_BREAK 2443 case 1 18:2444 YY_RULE_SETUP 2445 #line 29 2"lex.ll"2462 case 120: 2463 YY_RULE_SETUP 2464 #line 294 "lex.ll" 2446 2465 { strtext->append( yytext, yyleng ); } 2447 2466 YY_BREAK 2448 case 1 19:2449 /* rule 1 19can match eol */2450 YY_RULE_SETUP 2451 #line 29 3"lex.ll"2467 case 121: 2468 /* rule 121 can match eol */ 2469 YY_RULE_SETUP 2470 #line 295 "lex.ll" 2452 2471 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(CHARACTERconstant); } 2453 2472 YY_BREAK 2454 2473 /* ' stop highlighting */ 2455 2474 /* string constant */ 2456 case 12 0:2457 YY_RULE_SETUP 2458 #line 29 7"lex.ll"2475 case 122: 2476 YY_RULE_SETUP 2477 #line 299 "lex.ll" 2459 2478 { BEGIN STRING; rm_underscore(); strtext = new std::string( yytext, yyleng ); } 2460 2479 YY_BREAK 2461 case 12 1:2462 YY_RULE_SETUP 2463 #line 298"lex.ll"2480 case 123: 2481 YY_RULE_SETUP 2482 #line 300 "lex.ll" 2464 2483 { strtext->append( yytext, yyleng ); } 2465 2484 YY_BREAK 2466 case 12 2:2467 /* rule 12 2can match eol */2468 YY_RULE_SETUP 2469 #line 299"lex.ll"2485 case 124: 2486 /* rule 124 can match eol */ 2487 YY_RULE_SETUP 2488 #line 301 "lex.ll" 2470 2489 { BEGIN 0; strtext->append( yytext, yyleng ); RETURN_STR(STRINGliteral); } 2471 2490 YY_BREAK 2472 2491 /* " stop highlighting */ 2473 2492 /* common character/string constant */ 2474 case 12 3:2475 YY_RULE_SETUP 2476 #line 30 3"lex.ll"2493 case 125: 2494 YY_RULE_SETUP 2495 #line 305 "lex.ll" 2477 2496 { rm_underscore(); strtext->append( yytext, yyleng ); } 2478 2497 YY_BREAK 2479 case 12 4:2480 /* rule 12 4can match eol */2481 YY_RULE_SETUP 2482 #line 30 4"lex.ll"2498 case 126: 2499 /* rule 126 can match eol */ 2500 YY_RULE_SETUP 2501 #line 306 "lex.ll" 2483 2502 {} // continuation (ALSO HANDLED BY CPP) 2484 2503 YY_BREAK 2485 case 12 5:2486 YY_RULE_SETUP 2487 #line 30 5"lex.ll"2504 case 127: 2505 YY_RULE_SETUP 2506 #line 307 "lex.ll" 2488 2507 { strtext->append( yytext, yyleng ); } // unknown escape character 2489 2508 YY_BREAK 2490 2509 /* punctuation */ 2491 case 126:2492 YY_RULE_SETUP2493 #line 308 "lex.ll"2494 { ASCIIOP_RETURN(); }2495 YY_BREAK2496 case 127:2497 YY_RULE_SETUP2498 #line 309 "lex.ll"2499 { ASCIIOP_RETURN(); }2500 YY_BREAK2501 2510 case 128: 2502 2511 YY_RULE_SETUP … … 2522 2531 YY_RULE_SETUP 2523 2532 #line 314 "lex.ll" 2524 { ASCIIOP_RETURN(); } // also operator2533 { ASCIIOP_RETURN(); } 2525 2534 YY_BREAK 2526 2535 case 133: … … 2532 2541 YY_RULE_SETUP 2533 2542 #line 316 "lex.ll" 2543 { ASCIIOP_RETURN(); } // also operator 2544 YY_BREAK 2545 case 135: 2546 YY_RULE_SETUP 2547 #line 317 "lex.ll" 2534 2548 { ASCIIOP_RETURN(); } 2535 2549 YY_BREAK 2536 case 135: 2537 YY_RULE_SETUP 2538 #line 317 "lex.ll" 2550 case 136: 2551 YY_RULE_SETUP 2552 #line 318 "lex.ll" 2553 { ASCIIOP_RETURN(); } 2554 YY_BREAK 2555 case 137: 2556 YY_RULE_SETUP 2557 #line 319 "lex.ll" 2539 2558 { ASCIIOP_RETURN(); } // also operator 2540 2559 YY_BREAK 2541 case 13 6:2542 YY_RULE_SETUP 2543 #line 3 18"lex.ll"2560 case 138: 2561 YY_RULE_SETUP 2562 #line 320 "lex.ll" 2544 2563 { NAMEDOP_RETURN(ELLIPSIS); } 2545 2564 YY_BREAK 2546 2565 /* alternative C99 brackets, "<:" & "<:<:" handled by preprocessor */ 2547 case 13 7:2548 YY_RULE_SETUP 2549 #line 32 1"lex.ll"2566 case 139: 2567 YY_RULE_SETUP 2568 #line 323 "lex.ll" 2550 2569 { RETURN_VAL('['); } 2551 2570 YY_BREAK 2552 case 1 38:2553 YY_RULE_SETUP 2554 #line 32 2"lex.ll"2571 case 140: 2572 YY_RULE_SETUP 2573 #line 324 "lex.ll" 2555 2574 { RETURN_VAL(']'); } 2556 2575 YY_BREAK 2557 case 1 39:2558 YY_RULE_SETUP 2559 #line 32 3"lex.ll"2576 case 141: 2577 YY_RULE_SETUP 2578 #line 325 "lex.ll" 2560 2579 { RETURN_VAL('{'); } 2561 2580 YY_BREAK 2562 case 14 0:2563 YY_RULE_SETUP 2564 #line 32 4"lex.ll"2581 case 142: 2582 YY_RULE_SETUP 2583 #line 326 "lex.ll" 2565 2584 { RETURN_VAL('}'); } 2566 2585 YY_BREAK 2567 2586 /* operators */ 2568 case 141:2569 YY_RULE_SETUP2570 #line 327 "lex.ll"2571 { ASCIIOP_RETURN(); }2572 YY_BREAK2573 case 142:2574 YY_RULE_SETUP2575 #line 328 "lex.ll"2576 { ASCIIOP_RETURN(); }2577 YY_BREAK2578 2587 case 143: 2579 2588 YY_RULE_SETUP … … 2638 2647 case 155: 2639 2648 YY_RULE_SETUP 2649 #line 341 "lex.ll" 2650 { ASCIIOP_RETURN(); } 2651 YY_BREAK 2652 case 156: 2653 YY_RULE_SETUP 2640 2654 #line 342 "lex.ll" 2655 { ASCIIOP_RETURN(); } 2656 YY_BREAK 2657 case 157: 2658 YY_RULE_SETUP 2659 #line 344 "lex.ll" 2641 2660 { NAMEDOP_RETURN(ICR); } 2642 2661 YY_BREAK 2643 case 15 6:2644 YY_RULE_SETUP 2645 #line 34 3"lex.ll"2662 case 158: 2663 YY_RULE_SETUP 2664 #line 345 "lex.ll" 2646 2665 { NAMEDOP_RETURN(DECR); } 2647 2666 YY_BREAK 2648 case 15 7:2649 YY_RULE_SETUP 2650 #line 34 4"lex.ll"2667 case 159: 2668 YY_RULE_SETUP 2669 #line 346 "lex.ll" 2651 2670 { NAMEDOP_RETURN(EQ); } 2652 2671 YY_BREAK 2653 case 1 58:2654 YY_RULE_SETUP 2655 #line 34 5"lex.ll"2672 case 160: 2673 YY_RULE_SETUP 2674 #line 347 "lex.ll" 2656 2675 { NAMEDOP_RETURN(NE); } 2657 2676 YY_BREAK 2658 case 1 59:2659 YY_RULE_SETUP 2660 #line 34 6"lex.ll"2677 case 161: 2678 YY_RULE_SETUP 2679 #line 348 "lex.ll" 2661 2680 { NAMEDOP_RETURN(LS); } 2662 2681 YY_BREAK 2663 case 16 0:2664 YY_RULE_SETUP 2665 #line 34 7"lex.ll"2682 case 162: 2683 YY_RULE_SETUP 2684 #line 349 "lex.ll" 2666 2685 { NAMEDOP_RETURN(RS); } 2667 2686 YY_BREAK 2668 case 16 1:2669 YY_RULE_SETUP 2670 #line 3 48"lex.ll"2687 case 163: 2688 YY_RULE_SETUP 2689 #line 350 "lex.ll" 2671 2690 { NAMEDOP_RETURN(LE); } 2672 2691 YY_BREAK 2673 case 16 2:2674 YY_RULE_SETUP 2675 #line 3 49"lex.ll"2692 case 164: 2693 YY_RULE_SETUP 2694 #line 351 "lex.ll" 2676 2695 { NAMEDOP_RETURN(GE); } 2677 2696 YY_BREAK 2678 case 16 3:2679 YY_RULE_SETUP 2680 #line 35 0"lex.ll"2697 case 165: 2698 YY_RULE_SETUP 2699 #line 352 "lex.ll" 2681 2700 { NAMEDOP_RETURN(ANDAND); } 2682 2701 YY_BREAK 2683 case 16 4:2684 YY_RULE_SETUP 2685 #line 35 1"lex.ll"2702 case 166: 2703 YY_RULE_SETUP 2704 #line 353 "lex.ll" 2686 2705 { NAMEDOP_RETURN(OROR); } 2687 2706 YY_BREAK 2688 case 16 5:2689 YY_RULE_SETUP 2690 #line 35 2"lex.ll"2707 case 167: 2708 YY_RULE_SETUP 2709 #line 354 "lex.ll" 2691 2710 { NAMEDOP_RETURN(ARROW); } 2692 2711 YY_BREAK 2693 case 16 6:2694 YY_RULE_SETUP 2695 #line 35 3"lex.ll"2712 case 168: 2713 YY_RULE_SETUP 2714 #line 355 "lex.ll" 2696 2715 { NAMEDOP_RETURN(PLUSassign); } 2697 2716 YY_BREAK 2698 case 16 7:2699 YY_RULE_SETUP 2700 #line 35 4"lex.ll"2717 case 169: 2718 YY_RULE_SETUP 2719 #line 356 "lex.ll" 2701 2720 { NAMEDOP_RETURN(MINUSassign); } 2702 2721 YY_BREAK 2703 case 1 68:2704 YY_RULE_SETUP 2705 #line 35 5"lex.ll"2722 case 170: 2723 YY_RULE_SETUP 2724 #line 357 "lex.ll" 2706 2725 { NAMEDOP_RETURN(MULTassign); } 2707 2726 YY_BREAK 2708 case 1 69:2709 YY_RULE_SETUP 2710 #line 35 6"lex.ll"2727 case 171: 2728 YY_RULE_SETUP 2729 #line 358 "lex.ll" 2711 2730 { NAMEDOP_RETURN(DIVassign); } 2712 2731 YY_BREAK 2713 case 17 0:2714 YY_RULE_SETUP 2715 #line 35 7"lex.ll"2732 case 172: 2733 YY_RULE_SETUP 2734 #line 359 "lex.ll" 2716 2735 { NAMEDOP_RETURN(MODassign); } 2717 2736 YY_BREAK 2718 case 17 1:2719 YY_RULE_SETUP 2720 #line 3 58"lex.ll"2737 case 173: 2738 YY_RULE_SETUP 2739 #line 360 "lex.ll" 2721 2740 { NAMEDOP_RETURN(ANDassign); } 2722 2741 YY_BREAK 2723 case 17 2:2724 YY_RULE_SETUP 2725 #line 3 59"lex.ll"2742 case 174: 2743 YY_RULE_SETUP 2744 #line 361 "lex.ll" 2726 2745 { NAMEDOP_RETURN(ORassign); } 2727 2746 YY_BREAK 2728 case 17 3:2729 YY_RULE_SETUP 2730 #line 36 0"lex.ll"2747 case 175: 2748 YY_RULE_SETUP 2749 #line 362 "lex.ll" 2731 2750 { NAMEDOP_RETURN(ERassign); } 2732 2751 YY_BREAK 2733 case 17 4:2734 YY_RULE_SETUP 2735 #line 36 1"lex.ll"2752 case 176: 2753 YY_RULE_SETUP 2754 #line 363 "lex.ll" 2736 2755 { NAMEDOP_RETURN(LSassign); } 2737 2756 YY_BREAK 2738 case 17 5:2739 YY_RULE_SETUP 2740 #line 36 2"lex.ll"2757 case 177: 2758 YY_RULE_SETUP 2759 #line 364 "lex.ll" 2741 2760 { NAMEDOP_RETURN(RSassign); } 2742 2761 YY_BREAK 2743 case 17 6:2744 YY_RULE_SETUP 2745 #line 36 4"lex.ll"2762 case 178: 2763 YY_RULE_SETUP 2764 #line 366 "lex.ll" 2746 2765 { NAMEDOP_RETURN(ATassign); } // CFA 2747 2766 YY_BREAK 2748 2767 /* CFA, operator identifier */ 2749 case 17 7:2750 YY_RULE_SETUP 2751 #line 36 7"lex.ll"2768 case 179: 2769 YY_RULE_SETUP 2770 #line 369 "lex.ll" 2752 2771 { IDENTIFIER_RETURN(); } // unary 2753 2772 YY_BREAK 2754 case 1 78:2755 YY_RULE_SETUP 2756 #line 3 68"lex.ll"2773 case 180: 2774 YY_RULE_SETUP 2775 #line 370 "lex.ll" 2757 2776 { IDENTIFIER_RETURN(); } 2758 2777 YY_BREAK 2759 case 1 79:2760 YY_RULE_SETUP 2761 #line 3 69"lex.ll"2778 case 181: 2779 YY_RULE_SETUP 2780 #line 371 "lex.ll" 2762 2781 { IDENTIFIER_RETURN(); } 2763 2782 YY_BREAK 2764 case 18 0:2765 YY_RULE_SETUP 2766 #line 37 0"lex.ll"2783 case 182: 2784 YY_RULE_SETUP 2785 #line 372 "lex.ll" 2767 2786 { IDENTIFIER_RETURN(); } // binary 2768 2787 YY_BREAK … … 2793 2812 an argument list. 2794 2813 */ 2795 case 18 1:2796 YY_RULE_SETUP 2797 #line 39 7"lex.ll"2814 case 183: 2815 YY_RULE_SETUP 2816 #line 399 "lex.ll" 2798 2817 { 2799 2818 // 1 or 2 character unary operator ? … … 2808 2827 YY_BREAK 2809 2828 /* unknown characters */ 2810 case 18 2:2811 YY_RULE_SETUP 2812 #line 4 09"lex.ll"2829 case 184: 2830 YY_RULE_SETUP 2831 #line 411 "lex.ll" 2813 2832 { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); } 2814 2833 YY_BREAK 2815 case 18 3:2816 YY_RULE_SETUP 2817 #line 41 1"lex.ll"2834 case 185: 2835 YY_RULE_SETUP 2836 #line 413 "lex.ll" 2818 2837 ECHO; 2819 2838 YY_BREAK 2820 #line 28 21"Parser/lex.cc"2839 #line 2840 "Parser/lex.cc" 2821 2840 case YY_STATE_EOF(INITIAL): 2822 2841 case YY_STATE_EOF(COMMENT): … … 3115 3134 { 3116 3135 yy_current_state = (int) yy_def[yy_current_state]; 3117 if ( yy_current_state >= 895 )3136 if ( yy_current_state >= 905 ) 3118 3137 yy_c = yy_meta[(unsigned int) yy_c]; 3119 3138 } … … 3143 3162 { 3144 3163 yy_current_state = (int) yy_def[yy_current_state]; 3145 if ( yy_current_state >= 895 )3164 if ( yy_current_state >= 905 ) 3146 3165 yy_c = yy_meta[(unsigned int) yy_c]; 3147 3166 } 3148 3167 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3149 yy_is_jam = (yy_current_state == 894);3168 yy_is_jam = (yy_current_state == 904); 3150 3169 3151 3170 return yy_is_jam ? 0 : yy_current_state; … … 3793 3812 #define YYTABLES_NAME "yytables" 3794 3813 3795 #line 41 1"lex.ll"3814 #line 413 "lex.ll" 3796 3815 3797 3816 -
src/Parser/lex.ll
r5802a4f r66f8528 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Wed Oct 26 17:32:30 201613 * Update Count : 49912 * Last Modified On : Tue Nov 29 11:32:00 2016 13 * Update Count : 501 14 14 */ 15 15 … … 237 237 _Noreturn { KEYWORD_RETURN(NORETURN); } // C11 238 238 __builtin_offsetof { KEYWORD_RETURN(OFFSETOF); } // GCC 239 one_t { NUMERIC_RETURN(ONE_T); } // CFA 239 240 otype { KEYWORD_RETURN(OTYPE); } // CFA 240 241 register { KEYWORD_RETURN(REGISTER); } … … 269 270 __volatile__ { KEYWORD_RETURN(VOLATILE); } // GCC 270 271 while { KEYWORD_RETURN(WHILE); } 272 zero_t { NUMERIC_RETURN(ZERO_T); } // CFA 271 273 272 274 /* identifier */ -
src/Parser/parser.cc
r5802a4f r66f8528 145 145 SIGNED = 277, 146 146 UNSIGNED = 278, 147 VALIST = 279, 148 BOOL = 280, 149 COMPLEX = 281, 150 IMAGINARY = 282, 151 TYPEOF = 283, 152 LABEL = 284, 153 ENUM = 285, 154 STRUCT = 286, 155 UNION = 287, 156 OTYPE = 288, 157 FTYPE = 289, 158 DTYPE = 290, 159 TRAIT = 291, 160 SIZEOF = 292, 161 OFFSETOF = 293, 162 ATTRIBUTE = 294, 163 EXTENSION = 295, 164 IF = 296, 165 ELSE = 297, 166 SWITCH = 298, 167 CASE = 299, 168 DEFAULT = 300, 169 DO = 301, 170 WHILE = 302, 171 FOR = 303, 172 BREAK = 304, 173 CONTINUE = 305, 174 GOTO = 306, 175 RETURN = 307, 176 CHOOSE = 308, 177 DISABLE = 309, 178 ENABLE = 310, 179 FALLTHRU = 311, 180 TRY = 312, 181 CATCH = 313, 182 CATCHRESUME = 314, 183 FINALLY = 315, 184 THROW = 316, 185 THROWRESUME = 317, 186 AT = 318, 187 ASM = 319, 188 ALIGNAS = 320, 189 ALIGNOF = 321, 190 ATOMIC = 322, 191 GENERIC = 323, 192 NORETURN = 324, 193 STATICASSERT = 325, 194 THREADLOCAL = 326, 195 IDENTIFIER = 327, 196 QUOTED_IDENTIFIER = 328, 197 TYPEDEFname = 329, 198 TYPEGENname = 330, 199 ATTR_IDENTIFIER = 331, 200 ATTR_TYPEDEFname = 332, 201 ATTR_TYPEGENname = 333, 202 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 147 ZERO_T = 279, 148 ONE_T = 280, 149 VALIST = 281, 150 BOOL = 282, 151 COMPLEX = 283, 152 IMAGINARY = 284, 153 TYPEOF = 285, 154 LABEL = 286, 155 ENUM = 287, 156 STRUCT = 288, 157 UNION = 289, 158 OTYPE = 290, 159 FTYPE = 291, 160 DTYPE = 292, 161 TRAIT = 293, 162 SIZEOF = 294, 163 OFFSETOF = 295, 164 ATTRIBUTE = 296, 165 EXTENSION = 297, 166 IF = 298, 167 ELSE = 299, 168 SWITCH = 300, 169 CASE = 301, 170 DEFAULT = 302, 171 DO = 303, 172 WHILE = 304, 173 FOR = 305, 174 BREAK = 306, 175 CONTINUE = 307, 176 GOTO = 308, 177 RETURN = 309, 178 CHOOSE = 310, 179 DISABLE = 311, 180 ENABLE = 312, 181 FALLTHRU = 313, 182 TRY = 314, 183 CATCH = 315, 184 CATCHRESUME = 316, 185 FINALLY = 317, 186 THROW = 318, 187 THROWRESUME = 319, 188 AT = 320, 189 ASM = 321, 190 ALIGNAS = 322, 191 ALIGNOF = 323, 192 ATOMIC = 324, 193 GENERIC = 325, 194 NORETURN = 326, 195 STATICASSERT = 327, 196 THREADLOCAL = 328, 197 IDENTIFIER = 329, 198 QUOTED_IDENTIFIER = 330, 199 TYPEDEFname = 331, 200 TYPEGENname = 332, 201 ATTR_IDENTIFIER = 333, 202 ATTR_TYPEDEFname = 334, 203 ATTR_TYPEGENname = 335, 204 INTEGERconstant = 336, 205 CHARACTERconstant = 337, 206 STRINGliteral = 338, 207 REALDECIMALconstant = 339, 208 REALFRACTIONconstant = 340, 209 FLOATINGconstant = 341, 210 ZERO = 342, 211 ONE = 343, 212 ARROW = 344, 213 ICR = 345, 214 DECR = 346, 215 LS = 347, 216 RS = 348, 217 LE = 349, 218 GE = 350, 219 EQ = 351, 220 NE = 352, 221 ANDAND = 353, 222 OROR = 354, 223 ELLIPSIS = 355, 224 MULTassign = 356, 225 DIVassign = 357, 226 MODassign = 358, 227 PLUSassign = 359, 228 MINUSassign = 360, 229 LSassign = 361, 230 RSassign = 362, 231 ANDassign = 363, 232 ERassign = 364, 233 ORassign = 365, 234 ATassign = 366, 235 THEN = 367 234 236 }; 235 237 #endif … … 256 258 #define SIGNED 277 257 259 #define UNSIGNED 278 258 #define VALIST 279 259 #define BOOL 280 260 #define COMPLEX 281 261 #define IMAGINARY 282 262 #define TYPEOF 283 263 #define LABEL 284 264 #define ENUM 285 265 #define STRUCT 286 266 #define UNION 287 267 #define OTYPE 288 268 #define FTYPE 289 269 #define DTYPE 290 270 #define TRAIT 291 271 #define SIZEOF 292 272 #define OFFSETOF 293 273 #define ATTRIBUTE 294 274 #define EXTENSION 295 275 #define IF 296 276 #define ELSE 297 277 #define SWITCH 298 278 #define CASE 299 279 #define DEFAULT 300 280 #define DO 301 281 #define WHILE 302 282 #define FOR 303 283 #define BREAK 304 284 #define CONTINUE 305 285 #define GOTO 306 286 #define RETURN 307 287 #define CHOOSE 308 288 #define DISABLE 309 289 #define ENABLE 310 290 #define FALLTHRU 311 291 #define TRY 312 292 #define CATCH 313 293 #define CATCHRESUME 314 294 #define FINALLY 315 295 #define THROW 316 296 #define THROWRESUME 317 297 #define AT 318 298 #define ASM 319 299 #define ALIGNAS 320 300 #define ALIGNOF 321 301 #define ATOMIC 322 302 #define GENERIC 323 303 #define NORETURN 324 304 #define STATICASSERT 325 305 #define THREADLOCAL 326 306 #define IDENTIFIER 327 307 #define QUOTED_IDENTIFIER 328 308 #define TYPEDEFname 329 309 #define TYPEGENname 330 310 #define ATTR_IDENTIFIER 331 311 #define ATTR_TYPEDEFname 332 312 #define ATTR_TYPEGENname 333 313 #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 260 #define ZERO_T 279 261 #define ONE_T 280 262 #define VALIST 281 263 #define BOOL 282 264 #define COMPLEX 283 265 #define IMAGINARY 284 266 #define TYPEOF 285 267 #define LABEL 286 268 #define ENUM 287 269 #define STRUCT 288 270 #define UNION 289 271 #define OTYPE 290 272 #define FTYPE 291 273 #define DTYPE 292 274 #define TRAIT 293 275 #define SIZEOF 294 276 #define OFFSETOF 295 277 #define ATTRIBUTE 296 278 #define EXTENSION 297 279 #define IF 298 280 #define ELSE 299 281 #define SWITCH 300 282 #define CASE 301 283 #define DEFAULT 302 284 #define DO 303 285 #define WHILE 304 286 #define FOR 305 287 #define BREAK 306 288 #define CONTINUE 307 289 #define GOTO 308 290 #define RETURN 309 291 #define CHOOSE 310 292 #define DISABLE 311 293 #define ENABLE 312 294 #define FALLTHRU 313 295 #define TRY 314 296 #define CATCH 315 297 #define CATCHRESUME 316 298 #define FINALLY 317 299 #define THROW 318 300 #define THROWRESUME 319 301 #define AT 320 302 #define ASM 321 303 #define ALIGNAS 322 304 #define ALIGNOF 323 305 #define ATOMIC 324 306 #define GENERIC 325 307 #define NORETURN 326 308 #define STATICASSERT 327 309 #define THREADLOCAL 328 310 #define IDENTIFIER 329 311 #define QUOTED_IDENTIFIER 330 312 #define TYPEDEFname 331 313 #define TYPEGENname 332 314 #define ATTR_IDENTIFIER 333 315 #define ATTR_TYPEDEFname 334 316 #define ATTR_TYPEGENname 335 317 #define INTEGERconstant 336 318 #define CHARACTERconstant 337 319 #define STRINGliteral 338 320 #define REALDECIMALconstant 339 321 #define REALFRACTIONconstant 340 322 #define FLOATINGconstant 341 323 #define ZERO 342 324 #define ONE 343 325 #define ARROW 344 326 #define ICR 345 327 #define DECR 346 328 #define LS 347 329 #define RS 348 330 #define LE 349 331 #define GE 350 332 #define EQ 351 333 #define NE 352 334 #define ANDAND 353 335 #define OROR 354 336 #define ELLIPSIS 355 337 #define MULTassign 356 338 #define DIVassign 357 339 #define MODassign 358 340 #define PLUSassign 359 341 #define MINUSassign 360 342 #define LSassign 361 343 #define RSassign 362 344 #define ANDassign 363 345 #define ERassign 364 346 #define ORassign 365 347 #define ATassign 366 348 #define THEN 367 345 349 346 350 … … 372 376 373 377 /* Line 293 of yacc.c */ 374 #line 37 5"Parser/parser.cc"378 #line 379 "Parser/parser.cc" 375 379 } YYSTYPE; 376 380 # define YYSTYPE_IS_TRIVIAL 1 … … 384 388 385 389 /* Line 343 of yacc.c */ 386 #line 3 87"Parser/parser.cc"390 #line 391 "Parser/parser.cc" 387 391 388 392 #ifdef short … … 601 605 602 606 /* YYFINAL -- State number of the termination state. */ 603 #define YYFINAL 2 49607 #define YYFINAL 251 604 608 /* YYLAST -- Last index in YYTABLE. */ 605 #define YYLAST 10 266609 #define YYLAST 10624 606 610 607 611 /* YYNTOKENS -- Number of terminals. */ 608 #define YYNTOKENS 13 5612 #define YYNTOKENS 137 609 613 /* YYNNTS -- Number of nonterminals. */ 610 614 #define YYNNTS 243 611 615 /* YYNRULES -- Number of rules. */ 612 #define YYNRULES 75 5616 #define YYNRULES 757 613 617 /* YYNRULES -- Number of states. */ 614 #define YYNSTATES 15 38618 #define YYNSTATES 1540 615 619 616 620 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 617 621 #define YYUNDEFTOK 2 618 #define YYMAXUTOK 36 5622 #define YYMAXUTOK 367 619 623 620 624 #define YYTRANSLATE(YYX) \ … … 627 631 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 628 632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 629 2, 2, 2, 12 3, 2, 2, 2, 126, 120, 2,630 11 1, 112, 119, 121, 118, 122, 115, 125, 2, 2,631 2, 2, 2, 2, 2, 2, 2, 2, 13 2, 134,632 12 7, 133, 128, 131, 2, 2, 2, 2, 2, 2,633 2, 2, 2, 125, 2, 2, 2, 128, 122, 2, 634 113, 114, 121, 123, 120, 124, 117, 127, 2, 2, 635 2, 2, 2, 2, 2, 2, 2, 2, 134, 136, 636 129, 135, 130, 133, 2, 2, 2, 2, 2, 2, 633 637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 634 638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 635 2, 11 3, 2, 114, 129, 2, 2, 2, 2, 2,639 2, 115, 2, 116, 131, 2, 2, 2, 2, 2, 636 640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 637 641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 638 2, 2, 2, 11 6, 130, 117, 124, 2, 2, 2,642 2, 2, 2, 118, 132, 119, 126, 2, 2, 2, 639 643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 640 644 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, … … 660 664 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 661 665 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 662 105, 106, 107, 108, 109, 110 666 105, 106, 107, 108, 109, 110, 111, 112 663 667 }; 664 668 … … 701 705 1119, 1125, 1127, 1130, 1134, 1136, 1139, 1141, 1143, 1145, 702 706 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165, 703 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 118 6,704 118 9, 1193, 1197, 1199, 1203, 1205, 1208, 1211, 1214, 1219,705 12 24, 1229, 1234, 1236, 1239, 1242, 1246, 1248, 1251, 1254,706 125 6, 1259, 1262, 1266, 1268, 1271, 1274, 1276, 1278, 1283,707 128 6, 1287, 1294, 1302, 1305, 1308, 1311, 1312, 1315, 1318,708 13 22, 1325, 1329, 1331, 1334, 1338, 1341, 1344, 1349, 1350,709 135 2, 1355, 1358, 1360, 1361, 1363, 1366, 1369, 1375, 1378,710 1379, 138 7, 1390, 1395, 1396, 1399, 1400, 1402, 1404, 1406,711 14 12, 1418, 1424, 1426, 1432, 1438, 1448, 1450, 1456, 1457,712 14 59, 1461, 1467, 1469, 1471, 1477, 1483, 1485, 1489, 1493,713 149 8, 1500, 1502, 1504, 1506, 1509, 1511, 1515, 1519, 1521,714 152 4, 1526, 1530, 1532, 1534, 1536, 1538, 1540, 1542, 1544,715 1546, 1548, 1550, 1552, 155 5, 1557, 1559, 1561, 1564, 1565,716 1568, 15 71, 1573, 1578, 1579, 1581, 1584, 1588, 1593, 1596,717 159 9, 1601, 1604, 1607, 1613, 1619, 1627, 1634, 1636, 1639,718 164 2, 1646, 1648, 1651, 1654, 1659, 1662, 1667, 1668, 1673,719 167 6, 1678, 1680, 1682, 1683, 1686, 1692, 1698, 1712, 1714,720 1716, 17 20, 1724, 1727, 1731, 1735, 1738, 1743, 1745, 1752,721 17 62, 1763, 1775, 1777, 1781, 1785, 1789, 1791, 1793, 1799,722 1 802, 1808, 1809, 1811, 1813, 1817, 1818, 1820, 1822, 1824,723 1826, 182 7, 1834, 1837, 1839, 1842, 1847, 1850, 1854, 1858,724 18 62, 1867, 1873, 1879, 1885, 1892, 1894, 1896, 1898, 1902,725 190 3, 1909, 1910, 1912, 1914, 1917, 1924, 1926, 1930, 1931,726 193 3, 1938, 1940, 1942, 1944, 1946, 1949, 1951, 1954, 1957,727 195 9, 1963, 1966, 1970, 1974, 1977, 1982, 1987, 1991, 2000,728 2004, 2007, 2009, 2012, 2019, 2028, 2032, 2035, 2039, 2043,729 204 8, 2053, 2057, 2059, 2061, 2063, 2068, 2075, 2079, 2082,730 208 6, 2090, 2095, 2100, 2104, 2107, 2109, 2112, 2115, 2117,731 21 21, 2124, 2128, 2132, 2135, 2140, 2145, 2149, 2156, 2165,732 216 9, 2172, 2174, 2177, 2180, 2183, 2187, 2191, 2194, 2199,733 2 204, 2208, 2215, 2224, 2228, 2231, 2233, 2236, 2239, 2241,734 2243, 224 6, 2250, 2254, 2257, 2262, 2269, 2278, 2280, 2283,735 228 6, 2288, 2291, 2294, 2298, 2302, 2304, 2309, 2314, 2318,736 23 24, 2333, 2337, 2340, 2344, 2346, 2352, 2358, 2365, 2372,737 23 74, 2377, 2380, 2382, 2385, 2388, 2392, 2396, 2398, 2403,738 240 8, 2412, 2418, 2427, 2431, 2433, 2436, 2438, 2441, 2448,739 24 54, 2461, 2469, 2477, 2479, 2482, 2485, 2487, 2490, 2493,740 249 7, 2501, 2503, 2508, 2513, 2517, 2526, 2530, 2532, 2534,741 253 7, 2539, 2541, 2544, 2548, 2551, 2555, 2558, 2562, 2566,742 256 9, 2574, 2578, 2581, 2585, 2588, 2593, 2597, 2600, 2607,743 26 14, 2621, 2629, 2631, 2634, 2636, 2638, 2640, 2643, 2647,744 26 50, 2654, 2657, 2661, 2665, 2670, 2673, 2677, 2682, 2685,745 26 91, 2698, 2705, 2706, 2708, 2709707 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 1185, 708 1187, 1190, 1193, 1197, 1201, 1203, 1207, 1209, 1212, 1215, 709 1218, 1223, 1228, 1233, 1238, 1240, 1243, 1246, 1250, 1252, 710 1255, 1258, 1260, 1263, 1266, 1270, 1272, 1275, 1278, 1280, 711 1282, 1287, 1290, 1291, 1298, 1306, 1309, 1312, 1315, 1316, 712 1319, 1322, 1326, 1329, 1333, 1335, 1338, 1342, 1345, 1348, 713 1353, 1354, 1356, 1359, 1362, 1364, 1365, 1367, 1370, 1373, 714 1379, 1382, 1383, 1391, 1394, 1399, 1400, 1403, 1404, 1406, 715 1408, 1410, 1416, 1422, 1428, 1430, 1436, 1442, 1452, 1454, 716 1460, 1461, 1463, 1465, 1471, 1473, 1475, 1481, 1487, 1489, 717 1493, 1497, 1502, 1504, 1506, 1508, 1510, 1513, 1515, 1519, 718 1523, 1525, 1528, 1530, 1534, 1536, 1538, 1540, 1542, 1544, 719 1546, 1548, 1550, 1552, 1554, 1556, 1559, 1561, 1563, 1565, 720 1568, 1569, 1572, 1575, 1577, 1582, 1583, 1585, 1588, 1592, 721 1597, 1600, 1603, 1605, 1608, 1611, 1617, 1623, 1631, 1638, 722 1640, 1643, 1646, 1650, 1652, 1655, 1658, 1663, 1666, 1671, 723 1672, 1677, 1680, 1682, 1684, 1686, 1687, 1690, 1696, 1702, 724 1716, 1718, 1720, 1724, 1728, 1731, 1735, 1739, 1742, 1747, 725 1749, 1756, 1766, 1767, 1779, 1781, 1785, 1789, 1793, 1795, 726 1797, 1803, 1806, 1812, 1813, 1815, 1817, 1821, 1822, 1824, 727 1826, 1828, 1830, 1831, 1838, 1841, 1843, 1846, 1851, 1854, 728 1858, 1862, 1866, 1871, 1877, 1883, 1889, 1896, 1898, 1900, 729 1902, 1906, 1907, 1913, 1914, 1916, 1918, 1921, 1928, 1930, 730 1934, 1935, 1937, 1942, 1944, 1946, 1948, 1950, 1953, 1955, 731 1958, 1961, 1963, 1967, 1970, 1974, 1978, 1981, 1986, 1991, 732 1995, 2004, 2008, 2011, 2013, 2016, 2023, 2032, 2036, 2039, 733 2043, 2047, 2052, 2057, 2061, 2063, 2065, 2067, 2072, 2079, 734 2083, 2086, 2090, 2094, 2099, 2104, 2108, 2111, 2113, 2116, 735 2119, 2121, 2125, 2128, 2132, 2136, 2139, 2144, 2149, 2153, 736 2160, 2169, 2173, 2176, 2178, 2181, 2184, 2187, 2191, 2195, 737 2198, 2203, 2208, 2212, 2219, 2228, 2232, 2235, 2237, 2240, 738 2243, 2245, 2247, 2250, 2254, 2258, 2261, 2266, 2273, 2282, 739 2284, 2287, 2290, 2292, 2295, 2298, 2302, 2306, 2308, 2313, 740 2318, 2322, 2328, 2337, 2341, 2344, 2348, 2350, 2356, 2362, 741 2369, 2376, 2378, 2381, 2384, 2386, 2389, 2392, 2396, 2400, 742 2402, 2407, 2412, 2416, 2422, 2431, 2435, 2437, 2440, 2442, 743 2445, 2452, 2458, 2465, 2473, 2481, 2483, 2486, 2489, 2491, 744 2494, 2497, 2501, 2505, 2507, 2512, 2517, 2521, 2530, 2534, 745 2536, 2538, 2541, 2543, 2545, 2548, 2552, 2555, 2559, 2562, 746 2566, 2570, 2573, 2578, 2582, 2585, 2589, 2592, 2597, 2601, 747 2604, 2611, 2618, 2625, 2633, 2635, 2638, 2640, 2642, 2644, 748 2647, 2651, 2654, 2658, 2661, 2665, 2669, 2674, 2677, 2681, 749 2686, 2689, 2695, 2702, 2709, 2710, 2712, 2713 746 750 }; 747 751 … … 749 753 static const yytype_int16 yyrhs[] = 750 754 { 751 30 6, 0, -1, -1, -1, 79, -1, 82, -1, 83,752 -1, 8 4, -1, 80, -1, 72, -1, 76, -1, 142,753 -1, 7 2, -1, 76, -1, 72, -1, 142, -1, 85,754 -1, 8 6, -1, 144, -1, 81, -1, 144, 81, -1,755 7 2, -1, 142, -1, 172, -1, 111, 174, 112, -1,756 11 1, 178, 112, -1, 145, -1, 146, 113, 136, 169,757 13 7, 114, -1, 146, 111, 147, 112, -1, 146, 115,758 14 1, -1, 146, 115, 113, 136, 149, 137, 114, -1,759 14 6, 83, -1, 146, 87, 141, -1, 146, 87, 113,760 13 6, 149, 137, 114, -1, 146, 88, -1, 146, 89,761 -1, 11 1, 279, 112, 116, 283, 376, 117, -1, 146,762 11 6, 147, 117, -1, 148, -1, 147, 118, 148, -1,763 -1, 1 69, -1, 150, -1, 149, 118, 150, -1, 151,764 -1, 8 2, 150, -1, 82, 113, 136, 149, 137, 114,765 -1, 15 1, 115, 150, -1, 151, 115, 113, 136, 149,766 13 7, 114, -1, 151, 87, 150, -1, 151, 87, 113,767 13 6, 149, 137, 114, -1, 79, 152, -1, 84, 152,768 -1, 14 1, 152, -1, -1, 152, 83, -1, 146, -1,769 1 38, -1, 143, -1, 40, 156, -1, 154, 156, -1,770 15 5, 156, -1, 88, 153, -1, 89, 153, -1, 37,771 15 3, -1, 37, 111, 279, 112, -1, 66, 153, -1,772 6 6, 111, 279, 112, -1, 38, 111, 279, 118, 141,773 11 2, -1, 76, -1, 76, 111, 148, 112, -1, 76,774 11 1, 280, 112, -1, 119, -1, 120, -1, 121, -1,775 12 2, -1, 123, -1, 124, -1, 153, -1, 111, 279,776 11 2, 156, -1, 156, -1, 157, 119, 156, -1, 157,777 12 5, 156, -1, 157, 126, 156, -1, 157, -1, 158,778 12 1, 157, -1, 158, 122, 157, -1, 158, -1, 159,779 9 0, 158, -1, 159, 91, 158, -1, 159, -1, 160,780 12 7, 159, -1, 160, 128, 159, -1, 160, 92, 159,781 -1, 16 0, 93, 159, -1, 160, -1, 161, 94, 160,782 -1, 16 1, 95, 160, -1, 161, -1, 162, 120, 161,783 -1, 16 2, -1, 163, 129, 162, -1, 163, -1, 164,784 13 0, 163, -1, 164, -1, 165, 96, 164, -1, 165,785 -1, 16 6, 97, 165, -1, 166, -1, 166, 131, 174,786 13 2, 167, -1, 166, 131, 132, 167, -1, 167, -1,787 16 7, -1, 153, 171, 169, -1, -1, 169, -1, 133,788 -1, 1 09, -1, 99, -1, 100, -1, 101, -1, 102,789 -1, 10 3, -1, 104, -1, 105, -1, 106, -1, 107,790 -1, 1 08, -1, 113, 136, 118, 173, 137, 114, -1,791 11 3, 136, 169, 118, 173, 137, 114, -1, 170, -1,792 17 3, 118, 170, -1, 169, -1, 174, 118, 169, -1,793 -1, 17 4, -1, 177, -1, 178, -1, 182, -1, 183,794 -1, 19 5, -1, 197, -1, 198, -1, 203, -1, 129,795 14 6, 116, 147, 117, 134, -1, 72, 132, 316, 176,796 -1, 11 6, 117, -1, 116, 136, 136, 214, 179, 137,797 11 7, -1, 180, -1, 179, 136, 180, -1, 217, -1,798 4 0, 217, -1, 312, -1, 176, 137, -1, 176, -1,799 18 1, 176, -1, 175, 134, -1, 41, 111, 174, 112,800 17 6, -1, 41, 111, 174, 112, 176, 42, 176, -1,801 4 3, 111, 174, 112, 188, -1, 43, 111, 174, 112,802 11 6, 136, 210, 189, 117, -1, 53, 111, 174, 112,803 1 88, -1, 53, 111, 174, 112, 116, 136, 210, 191,804 11 7, -1, 168, -1, 168, 98, 168, -1, 314, -1,805 18 4, -1, 185, 118, 184, -1, 44, 185, 132, -1,806 4 5, 132, -1, 186, -1, 187, 186, -1, 187, 176,807 -1, -1, 19 0, -1, 187, 181, -1, 190, 187, 181,808 -1, -1, 19 2, -1, 187, 194, -1, 187, 181, 193,809 -1, 19 2, 187, 194, -1, 192, 187, 181, 193, -1,810 -1, 19 4, -1, 56, -1, 56, 134, -1, 47, 111,811 17 4, 112, 176, -1, 46, 176, 47, 111, 174, 112,812 13 4, -1, 48, 111, 136, 196, 112, 176, -1, 175,813 13 7, 134, 175, 134, 175, -1, 217, 175, 134, 175,814 -1, 5 1, 72, 134, -1, 51, 119, 174, 134, -1,815 5 0, 134, -1, 50, 72, 134, -1, 49, 134, -1,816 49, 72, 134, -1, 52, 175, 134, -1, 61, 170,817 13 4, -1, 62, 170, 134, -1, 62, 170, 63, 169,818 13 4, -1, 57, 178, 199, -1, 57, 178, 201, -1,819 5 7, 178, 199, 201, -1, 200, -1, 58, 111, 98,820 11 2, 178, -1, 200, 58, 111, 98, 112, 178, -1,821 59, 111, 98, 112, 178, -1, 200, 59, 111, 98,822 11 2, 178, -1, 58, 111, 136, 136, 202, 137, 112,823 1 78, 137, -1, 200, 58, 111, 136, 136, 202, 137,824 11 2, 178, 137, -1, 59, 111, 136, 136, 202, 137,825 11 2, 178, 137, -1, 200, 59, 111, 136, 136, 202,826 13 7, 112, 178, 137, -1, 60, 178, -1, 230, -1,827 23 0, 313, -1, 230, 361, -1, 370, 141, -1, 370,828 -1, 6 4, 204, 111, 143, 112, 134, -1, 64, 204,829 11 1, 143, 132, 205, 112, 134, -1, 64, 204, 111,830 14 3, 132, 205, 132, 205, 112, 134, -1, 64, 204,831 11 1, 143, 132, 205, 132, 205, 132, 208, 112, 134,832 -1, 6 4, 204, 51, 111, 143, 132, 132, 205, 132,833 2 08, 132, 209, 112, 134, -1, -1, 11, -1, -1,834 20 6, -1, 207, -1, 206, 118, 207, -1, 143, 111,835 1 68, 112, -1, 113, 168, 114, 143, 111, 168, 112,836 -1, -1, 14 3, -1, 208, 118, 143, -1, 141, -1,837 2 09, 118, 141, -1, 137, -1, 211, -1, 217, -1,838 21 1, 136, 217, -1, 137, -1, 213, -1, 227, -1,839 21 3, 136, 227, -1, -1, 215, -1, 29, 216, 134,840 -1, 21 5, 29, 216, 134, -1, 278, -1, 216, 118,841 2 78, -1, 218, -1, 227, -1, 219, 137, 134, -1,842 22 4, 137, 134, -1, 221, 137, 134, -1, 297, 137,843 13 4, -1, 300, 137, 134, -1, 220, 281, -1, 236,844 22 0, 281, -1, 219, 137, 118, 136, 276, 281, -1,845 37 1, 276, 315, -1, 374, 276, 315, -1, 232, 374,846 27 6, 315, -1, 222, -1, 232, 222, -1, 236, 222,847 -1, 23 6, 232, 222, -1, 221, 137, 118, 136, 276,848 -1, 37 4, 276, 111, 136, 264, 137, 112, -1, 223,849 27 6, 111, 136, 264, 137, 112, -1, 113, 136, 266,850 13 7, 114, -1, 113, 136, 266, 137, 118, 136, 267,851 13 7, 114, -1, 3, 220, -1, 3, 222, -1, 224,852 13 7, 118, 136, 141, -1, 3, 230, 313, -1, 225,853 13 7, 118, 136, 313, -1, 232, 3, 230, 313, -1,854 23 0, 3, 313, -1, 230, 3, 232, 313, -1, 3,855 14 1, 133, 169, -1, 226, 137, 118, 136, 141, 133,856 1 69, -1, 228, 137, 134, -1, 225, 137, 134, -1,857 22 6, 137, 134, -1, 244, 137, 134, -1, 229, 313,858 31 5, 281, -1, 228, 118, 316, 313, 315, 281, -1,859 24 0, -1, 244, -1, 246, -1, 287, -1, 241, -1,860 24 5, -1, 247, -1, 288, -1, -1, 232, -1, 233,861 -1, 23 2, 233, -1, 234, -1, 318, -1, 10, -1,862 12, -1, 11, -1, 14, -1, 6 7, -1, -1, 13,863 11 1, 235, 290, 112, -1, 237, -1, 232, 237, -1,864 23 6, 232, 237, -1, 238, -1, 237, 238, -1, 5,755 308, 0, -1, -1, -1, 81, -1, 84, -1, 85, 756 -1, 86, -1, 82, -1, 74, -1, 78, -1, 144, 757 -1, 74, -1, 78, -1, 74, -1, 144, -1, 87, 758 -1, 88, -1, 146, -1, 83, -1, 146, 83, -1, 759 74, -1, 144, -1, 174, -1, 113, 176, 114, -1, 760 113, 180, 114, -1, 147, -1, 148, 115, 138, 171, 761 139, 116, -1, 148, 113, 149, 114, -1, 148, 117, 762 143, -1, 148, 117, 115, 138, 151, 139, 116, -1, 763 148, 85, -1, 148, 89, 143, -1, 148, 89, 115, 764 138, 151, 139, 116, -1, 148, 90, -1, 148, 91, 765 -1, 113, 281, 114, 118, 285, 378, 119, -1, 148, 766 118, 149, 119, -1, 150, -1, 149, 120, 150, -1, 767 -1, 171, -1, 152, -1, 151, 120, 152, -1, 153, 768 -1, 84, 152, -1, 84, 115, 138, 151, 139, 116, 769 -1, 153, 117, 152, -1, 153, 117, 115, 138, 151, 770 139, 116, -1, 153, 89, 152, -1, 153, 89, 115, 771 138, 151, 139, 116, -1, 81, 154, -1, 86, 154, 772 -1, 143, 154, -1, -1, 154, 85, -1, 148, -1, 773 140, -1, 145, -1, 42, 158, -1, 156, 158, -1, 774 157, 158, -1, 90, 155, -1, 91, 155, -1, 39, 775 155, -1, 39, 113, 281, 114, -1, 68, 155, -1, 776 68, 113, 281, 114, -1, 40, 113, 281, 120, 143, 777 114, -1, 78, -1, 78, 113, 150, 114, -1, 78, 778 113, 282, 114, -1, 121, -1, 122, -1, 123, -1, 779 124, -1, 125, -1, 126, -1, 155, -1, 113, 281, 780 114, 158, -1, 158, -1, 159, 121, 158, -1, 159, 781 127, 158, -1, 159, 128, 158, -1, 159, -1, 160, 782 123, 159, -1, 160, 124, 159, -1, 160, -1, 161, 783 92, 160, -1, 161, 93, 160, -1, 161, -1, 162, 784 129, 161, -1, 162, 130, 161, -1, 162, 94, 161, 785 -1, 162, 95, 161, -1, 162, -1, 163, 96, 162, 786 -1, 163, 97, 162, -1, 163, -1, 164, 122, 163, 787 -1, 164, -1, 165, 131, 164, -1, 165, -1, 166, 788 132, 165, -1, 166, -1, 167, 98, 166, -1, 167, 789 -1, 168, 99, 167, -1, 168, -1, 168, 133, 176, 790 134, 169, -1, 168, 133, 134, 169, -1, 169, -1, 791 169, -1, 155, 173, 171, -1, -1, 171, -1, 135, 792 -1, 111, -1, 101, -1, 102, -1, 103, -1, 104, 793 -1, 105, -1, 106, -1, 107, -1, 108, -1, 109, 794 -1, 110, -1, 115, 138, 120, 175, 139, 116, -1, 795 115, 138, 171, 120, 175, 139, 116, -1, 172, -1, 796 175, 120, 172, -1, 171, -1, 176, 120, 171, -1, 797 -1, 176, -1, 179, -1, 180, -1, 184, -1, 185, 798 -1, 197, -1, 199, -1, 200, -1, 205, -1, 131, 799 148, 118, 149, 119, 136, -1, 74, 134, 318, 178, 800 -1, 118, 119, -1, 118, 138, 138, 216, 181, 139, 801 119, -1, 182, -1, 181, 138, 182, -1, 219, -1, 802 42, 219, -1, 314, -1, 178, 139, -1, 178, -1, 803 183, 178, -1, 177, 136, -1, 43, 113, 176, 114, 804 178, -1, 43, 113, 176, 114, 178, 44, 178, -1, 805 45, 113, 176, 114, 190, -1, 45, 113, 176, 114, 806 118, 138, 212, 191, 119, -1, 55, 113, 176, 114, 807 190, -1, 55, 113, 176, 114, 118, 138, 212, 193, 808 119, -1, 170, -1, 170, 100, 170, -1, 316, -1, 809 186, -1, 187, 120, 186, -1, 46, 187, 134, -1, 810 47, 134, -1, 188, -1, 189, 188, -1, 189, 178, 811 -1, -1, 192, -1, 189, 183, -1, 192, 189, 183, 812 -1, -1, 194, -1, 189, 196, -1, 189, 183, 195, 813 -1, 194, 189, 196, -1, 194, 189, 183, 195, -1, 814 -1, 196, -1, 58, -1, 58, 136, -1, 49, 113, 815 176, 114, 178, -1, 48, 178, 49, 113, 176, 114, 816 136, -1, 50, 113, 138, 198, 114, 178, -1, 177, 817 139, 136, 177, 136, 177, -1, 219, 177, 136, 177, 818 -1, 53, 74, 136, -1, 53, 121, 176, 136, -1, 819 52, 136, -1, 52, 74, 136, -1, 51, 136, -1, 820 51, 74, 136, -1, 54, 177, 136, -1, 63, 172, 821 136, -1, 64, 172, 136, -1, 64, 172, 65, 171, 822 136, -1, 59, 180, 201, -1, 59, 180, 203, -1, 823 59, 180, 201, 203, -1, 202, -1, 60, 113, 100, 824 114, 180, -1, 202, 60, 113, 100, 114, 180, -1, 825 61, 113, 100, 114, 180, -1, 202, 61, 113, 100, 826 114, 180, -1, 60, 113, 138, 138, 204, 139, 114, 827 180, 139, -1, 202, 60, 113, 138, 138, 204, 139, 828 114, 180, 139, -1, 61, 113, 138, 138, 204, 139, 829 114, 180, 139, -1, 202, 61, 113, 138, 138, 204, 830 139, 114, 180, 139, -1, 62, 180, -1, 232, -1, 831 232, 315, -1, 232, 363, -1, 372, 143, -1, 372, 832 -1, 66, 206, 113, 145, 114, 136, -1, 66, 206, 833 113, 145, 134, 207, 114, 136, -1, 66, 206, 113, 834 145, 134, 207, 134, 207, 114, 136, -1, 66, 206, 835 113, 145, 134, 207, 134, 207, 134, 210, 114, 136, 836 -1, 66, 206, 53, 113, 145, 134, 134, 207, 134, 837 210, 134, 211, 114, 136, -1, -1, 11, -1, -1, 838 208, -1, 209, -1, 208, 120, 209, -1, 145, 113, 839 170, 114, -1, 115, 170, 116, 145, 113, 170, 114, 840 -1, -1, 145, -1, 210, 120, 145, -1, 143, -1, 841 211, 120, 143, -1, 139, -1, 213, -1, 219, -1, 842 213, 138, 219, -1, 139, -1, 215, -1, 229, -1, 843 215, 138, 229, -1, -1, 217, -1, 31, 218, 136, 844 -1, 217, 31, 218, 136, -1, 280, -1, 218, 120, 845 280, -1, 220, -1, 229, -1, 221, 139, 136, -1, 846 226, 139, 136, -1, 223, 139, 136, -1, 299, 139, 847 136, -1, 302, 139, 136, -1, 222, 283, -1, 238, 848 222, 283, -1, 221, 139, 120, 138, 278, 283, -1, 849 373, 278, 317, -1, 376, 278, 317, -1, 234, 376, 850 278, 317, -1, 224, -1, 234, 224, -1, 238, 224, 851 -1, 238, 234, 224, -1, 223, 139, 120, 138, 278, 852 -1, 376, 278, 113, 138, 266, 139, 114, -1, 225, 853 278, 113, 138, 266, 139, 114, -1, 115, 138, 268, 854 139, 116, -1, 115, 138, 268, 139, 120, 138, 269, 855 139, 116, -1, 3, 222, -1, 3, 224, -1, 226, 856 139, 120, 138, 143, -1, 3, 232, 315, -1, 227, 857 139, 120, 138, 315, -1, 234, 3, 232, 315, -1, 858 232, 3, 315, -1, 232, 3, 234, 315, -1, 3, 859 143, 135, 171, -1, 228, 139, 120, 138, 143, 135, 860 171, -1, 230, 139, 136, -1, 227, 139, 136, -1, 861 228, 139, 136, -1, 246, 139, 136, -1, 231, 315, 862 317, 283, -1, 230, 120, 318, 315, 317, 283, -1, 863 242, -1, 246, -1, 248, -1, 289, -1, 243, -1, 864 247, -1, 249, -1, 290, -1, -1, 234, -1, 235, 865 -1, 234, 235, -1, 236, -1, 320, -1, 10, -1, 866 12, -1, 11, -1, 14, -1, 69, -1, -1, 13, 867 113, 237, 292, 114, -1, 239, -1, 234, 239, -1, 868 238, 234, 239, -1, 240, -1, 239, 240, -1, 5, 865 869 -1, 7, -1, 4, -1, 6, -1, 8, -1, 9, 866 -1, 69, -1, 71, -1, 16, -1, 21, -1, 20,870 -1, 71, -1, 73, -1, 16, -1, 21, -1, 20, 867 871 -1, 18, -1, 19, -1, 17, -1, 22, -1, 23, 868 -1, 15, -1, 2 5, -1, 26, -1, 27, -1, 24,869 -1, 241, -1, 236, 241, -1, 240, 238, -1, 240,870 2 38, 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 2 52, 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 13 4, -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 2 78, 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 26 7, -1, 267, 137, 118, 136, 98, -1, 266, 137,893 1 18, 136, 98, -1, 271, -1, 267, 137, 118, 136,894 2 71, -1, 266, 137, 118, 136, 271, -1, 266, 137,895 118, 136, 267, 137, 118, 136, 271, -1, 272, -1,896 2 67, 137, 118, 136, 272, -1, -1, 269, -1, 270,897 -1, 27 0, 137, 118, 136, 98, -1, 274, -1, 273,898 -1, 27 0, 137, 118, 136, 274, -1, 270, 137, 118,899 136, 273, -1, 273, -1, 366, 276, 377, -1, 374,900 27 6, 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 13 6, 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 3 4, -1, -1, 294, 295, -1, 130, 278, 111, 296,920 1 12, -1, 130, 116, 136, 302, 117, -1, 130, 111,921 1 36, 290, 137, 112, 116, 136, 302, 117, 111, 296,922 112, -1, 280, -1, 169, -1, 296, 118, 280, -1,923 29 6, 118, 169, -1, 33, 298, -1, 237, 33, 298,924 -1, 2 97, 118, 298, -1, 299, 294, -1, 299, 294,925 133, 280, -1, 278, -1, 277, 111, 136, 290, 137,926 11 2, -1, 36, 278, 111, 136, 290, 137, 112, 116,927 117, -1, -1, 36, 278, 111, 136, 290, 137, 112,928 1 16, 301, 302, 117, -1, 303, -1, 302, 136, 303,929 -1, 304, 13 7, 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 1 78, -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 1 11, 324, 112, -1, 323, 353, -1, 111, 324, 112,949 353, -1, 111, 325, 112, 354, -1, 111, 325, 112,950 -1, 11 1, 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 11 2, -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, 3 23, 111, 275, 112, -1, 111, 333,958 11 2, 111, 275, 112, -1, 111, 332, 112, -1, 154,959 33 1, -1, 154, 232, 331, -1, 111, 333, 112, -1,960 11 1, 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, 1 54, 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 1 36, 268, 137, 112, -1, 111, 339, 112, -1, 323,968 3 16, -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 1 36, 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 1 11, 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 1 37, 112, -1, 111, 352, 112, -1, 113, 114, -1,985 113, 114, 354, -1, 354, -1, 113, 136, 169, 137,986 11 4, -1, 113, 136, 119, 137, 114, -1, 354, 113,987 1 36, 169, 137, 114, -1, 354, 113, 136, 119, 137,988 11 4, -1, 356, -1, 357, 316, -1, 358, 316, -1,989 154, -1, 154, 232, -1, 154, 355, -1, 154, 232,990 35 5, -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 11 2, 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 13 6, 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 36 5, -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 3 54, 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 1 36, 264, 137, 112, -1, -1, 118, -1, -1, 133,1022 1 69, -1872 -1, 15, -1, 27, -1, 28, -1, 29, -1, 26, 873 -1, 24, -1, 25, -1, 243, -1, 238, 243, -1, 874 242, 240, -1, 242, 240, 234, -1, 242, 240, 243, 875 -1, 244, -1, 233, 245, 233, -1, 241, -1, 234, 876 241, -1, 244, 235, -1, 244, 241, -1, 30, 113, 877 282, 114, -1, 30, 113, 176, 114, -1, 80, 113, 878 282, 114, -1, 80, 113, 176, 114, -1, 247, -1, 879 238, 247, -1, 246, 240, -1, 246, 240, 234, -1, 880 250, -1, 234, 250, -1, 247, 235, -1, 249, -1, 881 238, 249, -1, 248, 240, -1, 248, 240, 234, -1, 882 76, -1, 234, 76, -1, 249, 235, -1, 251, -1, 883 262, -1, 253, 118, 254, 119, -1, 253, 280, -1, 884 -1, 253, 280, 252, 118, 254, 119, -1, 253, 113, 885 298, 114, 118, 254, 119, -1, 253, 291, -1, 33, 886 318, -1, 34, 318, -1, -1, 254, 255, -1, 256, 887 136, -1, 42, 256, 136, -1, 257, 136, -1, 42, 888 257, 136, -1, 372, -1, 372, 280, -1, 256, 120, 889 280, -1, 256, 120, -1, 232, 258, -1, 257, 120, 890 318, 258, -1, -1, 260, -1, 324, 259, -1, 337, 891 259, -1, 363, -1, -1, 260, -1, 134, 170, -1, 892 32, 318, -1, 261, 118, 264, 378, 119, -1, 261, 893 280, -1, -1, 261, 280, 263, 118, 264, 378, 119, 894 -1, 280, 265, -1, 264, 120, 280, 265, -1, -1, 895 135, 170, -1, -1, 267, -1, 269, -1, 268, -1, 896 268, 139, 120, 138, 269, -1, 269, 139, 120, 138, 897 100, -1, 268, 139, 120, 138, 100, -1, 273, -1, 898 269, 139, 120, 138, 273, -1, 268, 139, 120, 138, 899 273, -1, 268, 139, 120, 138, 269, 139, 120, 138, 900 273, -1, 274, -1, 269, 139, 120, 138, 274, -1, 901 -1, 271, -1, 272, -1, 272, 139, 120, 138, 100, 902 -1, 276, -1, 275, -1, 272, 139, 120, 138, 276, 903 -1, 272, 139, 120, 138, 275, -1, 275, -1, 368, 904 278, 379, -1, 376, 278, 379, -1, 234, 376, 278, 905 379, -1, 224, -1, 276, -1, 368, -1, 376, -1, 906 234, 376, -1, 377, -1, 231, 342, 379, -1, 231, 907 346, 379, -1, 231, -1, 231, 357, -1, 143, -1, 908 277, 120, 143, -1, 141, -1, 76, -1, 77, -1, 909 142, -1, 76, -1, 77, -1, 143, -1, 76, -1, 910 77, -1, 372, -1, 232, -1, 232, 363, -1, 372, 911 -1, 377, -1, 232, -1, 232, 351, -1, -1, 135, 912 284, -1, 111, 284, -1, 171, -1, 118, 285, 378, 913 119, -1, -1, 284, -1, 286, 284, -1, 285, 120, 914 284, -1, 285, 120, 286, 284, -1, 287, 134, -1, 915 280, 134, -1, 288, -1, 287, 288, -1, 117, 280, 916 -1, 115, 138, 171, 139, 116, -1, 115, 138, 316, 917 139, 116, -1, 115, 138, 170, 100, 170, 139, 116, 918 -1, 117, 115, 138, 151, 139, 116, -1, 290, -1, 919 238, 290, -1, 289, 240, -1, 289, 240, 234, -1, 920 291, -1, 234, 291, -1, 290, 235, -1, 77, 113, 921 298, 114, -1, 293, 379, -1, 292, 120, 293, 379, 922 -1, -1, 295, 280, 294, 296, -1, 232, 342, -1, 923 35, -1, 37, -1, 36, -1, -1, 296, 297, -1, 924 132, 280, 113, 298, 114, -1, 132, 118, 138, 304, 925 119, -1, 132, 113, 138, 292, 139, 114, 118, 138, 926 304, 119, 113, 298, 114, -1, 282, -1, 171, -1, 927 298, 120, 282, -1, 298, 120, 171, -1, 35, 300, 928 -1, 239, 35, 300, -1, 299, 120, 300, -1, 301, 929 296, -1, 301, 296, 135, 282, -1, 280, -1, 279, 930 113, 138, 292, 139, 114, -1, 38, 280, 113, 138, 931 292, 139, 114, 118, 119, -1, -1, 38, 280, 113, 932 138, 292, 139, 114, 118, 303, 304, 119, -1, 305, 933 -1, 304, 138, 305, -1, 306, 139, 136, -1, 307, 934 139, 136, -1, 222, -1, 224, -1, 306, 139, 120, 935 138, 278, -1, 232, 315, -1, 307, 139, 120, 138, 936 315, -1, -1, 309, -1, 311, -1, 309, 138, 311, 937 -1, -1, 309, -1, 219, -1, 313, -1, 205, -1, 938 -1, 5, 83, 312, 118, 310, 119, -1, 42, 311, 939 -1, 314, -1, 329, 180, -1, 333, 138, 214, 180, 940 -1, 223, 180, -1, 231, 329, 180, -1, 234, 329, 941 180, -1, 238, 329, 180, -1, 238, 234, 329, 180, 942 -1, 231, 333, 138, 214, 180, -1, 234, 333, 138, 943 214, 180, -1, 238, 333, 138, 214, 180, -1, 238, 944 234, 333, 138, 214, 180, -1, 324, -1, 337, -1, 945 329, -1, 170, 126, 170, -1, -1, 66, 113, 145, 946 114, 318, -1, -1, 319, -1, 320, -1, 319, 320, 947 -1, 41, 113, 113, 321, 114, 114, -1, 322, -1, 948 321, 120, 322, -1, -1, 323, -1, 323, 113, 177, 949 114, -1, 278, -1, 240, -1, 241, -1, 235, -1, 950 325, 318, -1, 326, -1, 327, 318, -1, 328, 318, 951 -1, 141, -1, 113, 325, 114, -1, 156, 324, -1, 952 156, 234, 324, -1, 113, 326, 114, -1, 325, 355, 953 -1, 113, 326, 114, 355, -1, 113, 327, 114, 356, 954 -1, 113, 327, 114, -1, 113, 326, 114, 113, 138, 955 270, 139, 114, -1, 113, 328, 114, -1, 330, 318, 956 -1, 331, -1, 332, 318, -1, 325, 113, 138, 270, 957 139, 114, -1, 113, 331, 114, 113, 138, 270, 139, 958 114, -1, 113, 330, 114, -1, 156, 329, -1, 156, 959 234, 329, -1, 113, 331, 114, -1, 113, 331, 114, 960 355, -1, 113, 332, 114, 356, -1, 113, 332, 114, 961 -1, 334, -1, 335, -1, 336, -1, 325, 113, 277, 962 114, -1, 113, 335, 114, 113, 277, 114, -1, 113, 963 334, 114, -1, 156, 333, -1, 156, 234, 333, -1, 964 113, 335, 114, -1, 113, 335, 114, 355, -1, 113, 965 336, 114, 356, -1, 113, 336, 114, -1, 338, 318, 966 -1, 339, -1, 340, 318, -1, 341, 318, -1, 347, 967 -1, 113, 338, 114, -1, 156, 337, -1, 156, 234, 968 337, -1, 113, 339, 114, -1, 338, 355, -1, 113, 969 339, 114, 355, -1, 113, 340, 114, 356, -1, 113, 970 340, 114, -1, 338, 113, 138, 270, 139, 114, -1, 971 113, 339, 114, 113, 138, 270, 139, 114, -1, 113, 972 341, 114, -1, 325, 318, -1, 343, -1, 344, 318, 973 -1, 345, 318, -1, 156, 342, -1, 156, 234, 342, 974 -1, 113, 343, 114, -1, 325, 361, -1, 113, 343, 975 114, 355, -1, 113, 344, 114, 356, -1, 113, 344, 976 114, -1, 325, 113, 138, 270, 139, 114, -1, 113, 977 343, 114, 113, 138, 270, 139, 114, -1, 113, 345, 978 114, -1, 347, 318, -1, 348, -1, 349, 318, -1, 979 350, 318, -1, 76, -1, 77, -1, 156, 346, -1, 980 156, 234, 346, -1, 113, 348, 114, -1, 347, 361, 981 -1, 113, 348, 114, 361, -1, 347, 113, 138, 270, 982 139, 114, -1, 113, 348, 114, 113, 138, 270, 139, 983 114, -1, 352, -1, 353, 318, -1, 354, 318, -1, 984 156, -1, 156, 234, -1, 156, 351, -1, 156, 234, 985 351, -1, 113, 352, 114, -1, 355, -1, 113, 352, 986 114, 355, -1, 113, 353, 114, 356, -1, 113, 353, 987 114, -1, 113, 138, 270, 139, 114, -1, 113, 352, 988 114, 113, 138, 270, 139, 114, -1, 113, 354, 114, 989 -1, 115, 116, -1, 115, 116, 356, -1, 356, -1, 990 115, 138, 171, 139, 116, -1, 115, 138, 121, 139, 991 116, -1, 356, 115, 138, 171, 139, 116, -1, 356, 992 115, 138, 121, 139, 116, -1, 358, -1, 359, 318, 993 -1, 360, 318, -1, 156, -1, 156, 234, -1, 156, 994 357, -1, 156, 234, 357, -1, 113, 358, 114, -1, 995 361, -1, 113, 358, 114, 361, -1, 113, 359, 114, 996 356, -1, 113, 359, 114, -1, 113, 138, 270, 139, 997 114, -1, 113, 358, 114, 113, 138, 270, 139, 114, 998 -1, 113, 360, 114, -1, 362, -1, 362, 356, -1, 999 356, -1, 115, 116, -1, 115, 138, 234, 121, 139, 1000 116, -1, 115, 138, 234, 139, 116, -1, 115, 138, 1001 234, 171, 139, 116, -1, 115, 138, 7, 233, 171, 1002 139, 116, -1, 115, 138, 234, 7, 171, 139, 116, 1003 -1, 364, -1, 365, 318, -1, 366, 318, -1, 156, 1004 -1, 156, 234, -1, 156, 363, -1, 156, 234, 363, 1005 -1, 113, 364, 114, -1, 355, -1, 113, 364, 114, 1006 355, -1, 113, 365, 114, 356, -1, 113, 365, 114, 1007 -1, 113, 364, 114, 113, 138, 270, 139, 114, -1, 1008 113, 366, 114, -1, 368, -1, 376, -1, 234, 376, 1009 -1, 369, -1, 370, -1, 156, 232, -1, 234, 156, 1010 232, -1, 156, 377, -1, 234, 156, 377, -1, 156, 1011 367, -1, 234, 156, 367, -1, 115, 116, 232, -1, 1012 371, 232, -1, 115, 116, 356, 232, -1, 371, 356, 1013 232, -1, 356, 232, -1, 115, 116, 369, -1, 371, 1014 369, -1, 115, 116, 356, 369, -1, 371, 356, 369, 1015 -1, 356, 369, -1, 115, 138, 234, 121, 139, 116, 1016 -1, 115, 138, 234, 171, 139, 116, -1, 115, 138, 1017 238, 171, 139, 116, -1, 115, 138, 238, 234, 171, 1018 139, 116, -1, 376, -1, 234, 376, -1, 373, -1, 1019 374, -1, 375, -1, 156, 232, -1, 234, 156, 232, 1020 -1, 156, 377, -1, 234, 156, 377, -1, 156, 372, 1021 -1, 234, 156, 372, -1, 115, 116, 232, -1, 115, 1022 116, 356, 232, -1, 356, 232, -1, 115, 116, 374, 1023 -1, 115, 116, 356, 374, -1, 356, 374, -1, 115, 1024 138, 269, 139, 116, -1, 376, 113, 138, 266, 139, 1025 114, -1, 225, 113, 138, 266, 139, 114, -1, -1, 1026 120, -1, -1, 135, 171, -1 1023 1027 }; 1024 1028 … … 1026 1030 static const yytype_uint16 yyrline[] = 1027 1031 { 1028 0, 30 5, 305, 309, 316, 317, 318, 319, 320, 324,1029 32 5, 326, 330, 331, 335, 336, 340, 341, 345, 349,1030 35 0, 361, 363, 365, 366, 368, 373, 374, 380, 382,1031 38 4, 386, 388, 390, 392, 394, 396, 398, 407, 408,1032 41 4, 415, 419, 420, 424, 425, 427, 429, 431, 433,1033 43 5, 440, 442, 444, 450, 451, 459, 462, 464, 466,1034 47 1, 484, 486, 488, 490, 492, 494, 496, 498, 500,1035 50 2, 504, 511, 512, 518, 519, 520, 521, 525, 526,1036 5 33, 534, 536, 538, 543, 544, 546, 551, 552, 554,1037 5 59, 560, 562, 564, 566, 571, 572, 574, 579, 580,1038 5 85, 586, 591, 592, 597, 598, 603, 604, 609, 610,1039 6 13, 620, 625, 626, 634, 635, 639, 640, 641, 642,1040 6 43, 644, 645, 646, 647, 648, 649, 650, 660, 662,1041 6 67, 668, 673, 674, 680, 681, 687, 688, 689, 690,1042 69 1, 692, 693, 694, 695, 705, 712, 714, 724, 725,1043 73 0, 732, 738, 740, 744, 745, 750, 755, 758, 760,1044 76 2, 772, 774, 785, 786, 788, 792, 794, 798, 799,1045 8 04, 805, 809, 814, 815, 819, 821, 827, 828, 832,1046 8 34, 836, 838, 844, 845, 849, 851, 856, 858, 860,1047 8 65, 867, 872, 874, 878, 881, 885, 888, 892, 894,1048 896, 898, 903, 905, 907, 912, 914, 916, 918, 920,1049 9 25, 927, 929, 931, 936, 948, 949, 954, 956, 961,1050 9 65, 967, 969, 971, 973, 979, 980, 986, 987, 991,1051 99 2, 997, 999, 1005, 1006, 1008, 1013, 1018, 1028, 1030,1052 10 34, 1035, 1040, 1042, 1046, 1047, 1051, 1053, 1057, 1058,1053 10 62, 1063, 1067, 1068, 1083, 1084, 1085, 1086, 1087, 1091,1054 1 096, 1103, 1113, 1118, 1123, 1131, 1136, 1141, 1146, 1151,1055 118 1, 1186, 1193, 1195, 1202, 1207, 1212, 1223, 1228, 1233,1056 12 38, 1243, 1252, 1257, 1265, 1266, 1267, 1268, 1274, 1279,1057 12 87, 1288, 1289, 1290, 1294, 1295, 1296, 1297, 1302, 1303,1058 13 12, 1313, 1318, 1319, 1324, 1326, 1328, 1330, 1332, 1335,1059 13 34, 1346, 1347, 1349, 1359, 1360, 1365, 1367, 1369, 1371,1060 13 73, 1376, 1378, 1381, 1386, 1388, 1390, 1392, 1394, 1396,1061 1 398, 1400, 1402, 1404, 1406, 1408, 1410, 1416, 1417, 1419,1062 142 1, 1423, 1428, 1429, 1435, 1436, 1438, 1440, 1445, 1447,1063 14 49, 1451, 1456, 1457, 1459, 1461, 1466, 1467, 1469, 1474,1064 14 75, 1477, 1479, 1484, 1486, 1488, 1493, 1494, 1498, 1500,1065 15 06, 1505, 1509, 1511, 1516, 1518, 1524, 1525, 1530, 1531,1066 15 33, 1534, 1543, 1544, 1546, 1548, 1553, 1555, 1561, 1562,1067 15 64, 1567, 1570, 1575, 1576, 1581, 1586, 1590, 1592, 1598,1068 1 597, 1604, 1606, 1612, 1613, 1621, 1622, 1626, 1627, 1628,1069 163 0, 1632, 1639, 1640, 1642, 1644, 1649, 1650, 1656, 1657,1070 166 1, 1662, 1667, 1668, 1669, 1671, 1679, 1680, 1682, 1685,1071 16 87, 1691, 1692, 1693, 1695, 1697, 1701, 1706, 1714, 1715,1072 172 4, 1726, 1731, 1732, 1733, 1737, 1738, 1739, 1743, 1744,1073 17 45, 1749, 1750, 1751, 1756, 1757, 1758, 1759, 1765, 1766,1074 17 68, 1773, 1774, 1779, 1780, 1781, 1782, 1783, 1798, 1799,1075 18 04, 1805, 1811, 1813, 1816, 1818, 1820, 1843, 1844, 1846,1076 18 48, 1853, 1854, 1856, 1861, 1866, 1867, 1873, 1872, 1876,1077 188 0, 1882, 1884, 1890, 1891, 1896, 1901, 1903, 1908, 1910,1078 19 11, 1913, 1918, 1920, 1922, 1927, 1929, 1934, 1939, 1947,1079 195 3, 1952, 1966, 1967, 1972, 1973, 1977, 1982, 1987, 1995,1080 2000, 2011, 2012, 2017, 2018, 2024, 2025, 2029, 2030, 2031,1081 20 34, 2033, 2044, 2053, 2059, 2065, 2074, 2080, 2086, 2092,1082 2098, 210 6, 2112, 2120, 2126, 2135, 2136, 2137, 2141, 2145,1083 21 47, 2152, 2153, 2157, 2158, 2163, 2169, 2170, 2173, 2175,1084 21 76, 2180, 2181, 2182, 2183, 2217, 2219, 2220, 2222, 2227,1085 223 2, 2237, 2239, 2241, 2246, 2248, 2250, 2252, 2257, 2259,1086 22 68, 2270, 2271, 2276, 2278, 2280, 2285, 2287, 2289, 2294,1087 2 296, 2298, 2307, 2308, 2309, 2313, 2315, 2317, 2322, 2324,1088 23 26, 2331, 2333, 2335, 2350, 2352, 2353, 2355, 2360, 2361,1089 23 66, 2368, 2370, 2375, 2377, 2379, 2381, 2386, 2388, 2390,1090 240 0, 2402, 2403, 2405, 2410, 2412, 2414, 2419, 2421, 2423,1091 24 25, 2430, 2432, 2434, 2465, 2467, 2468, 2470, 2475, 2480,1092 248 8, 2490, 2492, 2497, 2499, 2504, 2506, 2520, 2521, 2523,1093 25 28, 2530, 2532, 2534, 2536, 2541, 2542, 2544, 2546, 2551,1094 25 53, 2555, 2561, 2563, 2565, 2569, 2571, 2573, 2575, 2589,1095 25 90, 2592, 2597, 2599, 2601, 2603, 2605, 2610, 2611, 2613,1096 26 15, 2620, 2622, 2624, 2630, 2631, 2633, 2642, 2645, 2647,1097 265 0, 2652, 2654, 2667, 2668, 2670, 2675, 2677, 2679, 2681,1098 26 83, 2688, 2689, 2691, 2693, 2698, 2700, 2708, 2709, 2710,1099 27 15, 2716, 2720, 2722, 2724, 2726, 2728, 2730, 2737, 2739,1100 27 41, 2743, 2745, 2748, 2750, 2752, 2754, 2756, 2761, 2763,1101 27 65, 2770, 2796, 2797, 2799, 2803, 2804, 2808, 2810, 2812,1102 28 14, 2816, 2818, 2825, 2827, 2829, 2831, 2833, 2835, 2840,1103 284 7, 2849, 2867, 2869, 2874, 28751032 0, 306, 306, 310, 317, 318, 319, 320, 321, 325, 1033 326, 327, 331, 332, 336, 337, 341, 342, 346, 350, 1034 351, 362, 364, 366, 367, 369, 374, 375, 381, 383, 1035 385, 387, 389, 391, 393, 395, 397, 399, 408, 409, 1036 415, 416, 420, 421, 425, 426, 428, 430, 432, 434, 1037 436, 441, 443, 445, 457, 458, 466, 469, 471, 473, 1038 478, 491, 493, 495, 497, 499, 501, 503, 505, 507, 1039 509, 511, 518, 519, 525, 526, 527, 528, 532, 533, 1040 540, 541, 543, 545, 550, 551, 553, 558, 559, 561, 1041 566, 567, 569, 571, 573, 578, 579, 581, 586, 587, 1042 592, 593, 598, 599, 604, 605, 610, 611, 616, 617, 1043 620, 627, 632, 633, 641, 642, 646, 647, 648, 649, 1044 650, 651, 652, 653, 654, 655, 656, 657, 667, 669, 1045 674, 675, 680, 681, 687, 688, 694, 695, 696, 697, 1046 698, 699, 700, 701, 702, 712, 719, 721, 731, 732, 1047 737, 739, 745, 747, 751, 752, 757, 762, 765, 767, 1048 769, 779, 781, 792, 793, 795, 799, 801, 805, 806, 1049 811, 812, 816, 821, 822, 826, 828, 834, 835, 839, 1050 841, 843, 845, 851, 852, 856, 858, 863, 865, 867, 1051 872, 874, 879, 881, 885, 888, 892, 895, 899, 901, 1052 903, 905, 910, 912, 914, 919, 921, 923, 925, 927, 1053 932, 934, 936, 938, 943, 955, 956, 961, 963, 968, 1054 972, 974, 976, 978, 980, 986, 987, 993, 994, 998, 1055 999, 1004, 1006, 1012, 1013, 1015, 1021, 1026, 1036, 1038, 1056 1042, 1043, 1048, 1050, 1054, 1055, 1059, 1061, 1065, 1066, 1057 1070, 1071, 1075, 1076, 1091, 1092, 1093, 1094, 1095, 1099, 1058 1104, 1111, 1121, 1126, 1131, 1139, 1144, 1149, 1154, 1159, 1059 1189, 1194, 1201, 1203, 1210, 1215, 1220, 1231, 1236, 1241, 1060 1246, 1251, 1260, 1265, 1273, 1274, 1275, 1276, 1282, 1287, 1061 1295, 1296, 1297, 1298, 1302, 1303, 1304, 1305, 1310, 1311, 1062 1320, 1321, 1326, 1327, 1332, 1334, 1336, 1338, 1340, 1343, 1063 1342, 1354, 1355, 1357, 1367, 1368, 1373, 1375, 1377, 1379, 1064 1381, 1384, 1386, 1389, 1394, 1396, 1398, 1400, 1402, 1404, 1065 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420, 1422, 1428, 1066 1429, 1431, 1433, 1435, 1440, 1441, 1447, 1448, 1450, 1452, 1067 1457, 1459, 1461, 1463, 1468, 1469, 1471, 1473, 1478, 1479, 1068 1481, 1486, 1487, 1489, 1491, 1496, 1498, 1500, 1505, 1506, 1069 1510, 1512, 1518, 1517, 1521, 1523, 1528, 1530, 1536, 1537, 1070 1542, 1543, 1545, 1546, 1555, 1556, 1558, 1560, 1565, 1567, 1071 1573, 1574, 1576, 1579, 1582, 1587, 1588, 1593, 1598, 1602, 1072 1604, 1610, 1609, 1616, 1618, 1624, 1625, 1633, 1634, 1638, 1073 1639, 1640, 1642, 1644, 1651, 1652, 1654, 1656, 1661, 1662, 1074 1668, 1669, 1673, 1674, 1679, 1680, 1681, 1683, 1691, 1692, 1075 1694, 1697, 1699, 1703, 1704, 1705, 1707, 1709, 1713, 1718, 1076 1726, 1727, 1736, 1738, 1743, 1744, 1745, 1749, 1750, 1751, 1077 1755, 1756, 1757, 1761, 1762, 1763, 1768, 1769, 1770, 1771, 1078 1777, 1778, 1780, 1785, 1786, 1791, 1792, 1793, 1794, 1795, 1079 1810, 1811, 1816, 1817, 1823, 1825, 1828, 1830, 1832, 1855, 1080 1856, 1858, 1860, 1865, 1866, 1868, 1873, 1878, 1879, 1885, 1081 1884, 1888, 1892, 1894, 1896, 1902, 1903, 1908, 1913, 1915, 1082 1920, 1922, 1923, 1925, 1930, 1932, 1934, 1939, 1941, 1946, 1083 1951, 1959, 1965, 1964, 1978, 1979, 1984, 1985, 1989, 1994, 1084 1999, 2007, 2012, 2023, 2024, 2029, 2030, 2036, 2037, 2041, 1085 2042, 2043, 2046, 2045, 2056, 2065, 2071, 2077, 2086, 2092, 1086 2098, 2104, 2110, 2118, 2124, 2132, 2138, 2147, 2148, 2149, 1087 2153, 2159, 2160, 2166, 2167, 2171, 2172, 2177, 2183, 2184, 1088 2187, 2189, 2190, 2194, 2195, 2196, 2197, 2231, 2233, 2234, 1089 2236, 2241, 2246, 2251, 2253, 2255, 2260, 2262, 2264, 2266, 1090 2271, 2273, 2282, 2284, 2285, 2290, 2292, 2294, 2299, 2301, 1091 2303, 2308, 2310, 2312, 2321, 2322, 2323, 2327, 2329, 2331, 1092 2336, 2338, 2340, 2345, 2347, 2349, 2364, 2366, 2367, 2369, 1093 2374, 2375, 2380, 2382, 2384, 2389, 2391, 2393, 2395, 2400, 1094 2402, 2404, 2414, 2416, 2417, 2419, 2424, 2426, 2428, 2433, 1095 2435, 2437, 2439, 2444, 2446, 2448, 2479, 2481, 2482, 2484, 1096 2489, 2494, 2502, 2504, 2506, 2511, 2513, 2518, 2520, 2534, 1097 2535, 2537, 2542, 2544, 2546, 2548, 2550, 2555, 2556, 2558, 1098 2560, 2565, 2567, 2569, 2575, 2577, 2579, 2583, 2585, 2587, 1099 2589, 2603, 2604, 2606, 2611, 2613, 2615, 2617, 2619, 2624, 1100 2625, 2627, 2629, 2634, 2636, 2638, 2644, 2645, 2647, 2656, 1101 2659, 2661, 2664, 2666, 2668, 2681, 2682, 2684, 2689, 2691, 1102 2693, 2695, 2697, 2702, 2703, 2705, 2707, 2712, 2714, 2722, 1103 2723, 2724, 2729, 2730, 2734, 2736, 2738, 2740, 2742, 2744, 1104 2751, 2753, 2755, 2757, 2759, 2762, 2764, 2766, 2768, 2770, 1105 2775, 2777, 2779, 2784, 2810, 2811, 2813, 2817, 2818, 2822, 1106 2824, 2826, 2828, 2830, 2832, 2839, 2841, 2843, 2845, 2847, 1107 2849, 2854, 2861, 2863, 2881, 2883, 2888, 2889 1104 1108 }; 1105 1109 #endif … … 1113 1117 "STATIC", "INLINE", "FORTRAN", "CONST", "VOLATILE", "RESTRICT", "FORALL", 1114 1118 "LVALUE", "VOID", "CHAR", "SHORT", "INT", "LONG", "FLOAT", "DOUBLE", 1115 "SIGNED", "UNSIGNED", "VALIST", "BOOL", "COMPLEX", "IMAGINARY", "TYPEOF", 1116 "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", "FTYPE", "DTYPE", "TRAIT", 1117 "SIZEOF", "OFFSETOF", "ATTRIBUTE", "EXTENSION", "IF", "ELSE", "SWITCH", 1118 "CASE", "DEFAULT", "DO", "WHILE", "FOR", "BREAK", "CONTINUE", "GOTO", 1119 "RETURN", "CHOOSE", "DISABLE", "ENABLE", "FALLTHRU", "TRY", "CATCH", 1120 "CATCHRESUME", "FINALLY", "THROW", "THROWRESUME", "AT", "ASM", "ALIGNAS", 1121 "ALIGNOF", "ATOMIC", "GENERIC", "NORETURN", "STATICASSERT", 1122 "THREADLOCAL", "IDENTIFIER", "QUOTED_IDENTIFIER", "TYPEDEFname", 1123 "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", 1119 "SIGNED", "UNSIGNED", "ZERO_T", "ONE_T", "VALIST", "BOOL", "COMPLEX", 1120 "IMAGINARY", "TYPEOF", "LABEL", "ENUM", "STRUCT", "UNION", "OTYPE", 1121 "FTYPE", "DTYPE", "TRAIT", "SIZEOF", "OFFSETOF", "ATTRIBUTE", 1122 "EXTENSION", "IF", "ELSE", "SWITCH", "CASE", "DEFAULT", "DO", "WHILE", 1123 "FOR", "BREAK", "CONTINUE", "GOTO", "RETURN", "CHOOSE", "DISABLE", 1124 "ENABLE", "FALLTHRU", "TRY", "CATCH", "CATCHRESUME", "FINALLY", "THROW", 1125 "THROWRESUME", "AT", "ASM", "ALIGNAS", "ALIGNOF", "ATOMIC", "GENERIC", 1126 "NORETURN", "STATICASSERT", "THREADLOCAL", "IDENTIFIER", 1127 "QUOTED_IDENTIFIER", "TYPEDEFname", "TYPEGENname", "ATTR_IDENTIFIER", 1128 "ATTR_TYPEDEFname", "ATTR_TYPEGENname", "INTEGERconstant", 1129 "CHARACTERconstant", "STRINGliteral", "REALDECIMALconstant", 1130 "REALFRACTIONconstant", "FLOATINGconstant", "ZERO", "ONE", "ARROW", 1131 "ICR", "DECR", "LS", "RS", "LE", "GE", "EQ", "NE", "ANDAND", "OROR", 1132 "ELLIPSIS", "MULTassign", "DIVassign", "MODassign", "PLUSassign", 1133 "MINUSassign", "LSassign", "RSassign", "ANDassign", "ERassign", 1134 "ORassign", "ATassign", "THEN", "'('", "')'", "'['", "']'", "'.'", "'{'", 1135 "'}'", "','", "'*'", "'&'", "'+'", "'-'", "'!'", "'~'", "'/'", "'%'", 1136 "'<'", "'>'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "$accept", 1137 "push", "pop", "constant", "identifier", "no_01_identifier", 1138 "no_attr_identifier", "zero_one", "string_literal", 1134 1139 "string_literal_list", "primary_expression", "postfix_expression", 1135 1140 "argument_expression_list", "argument_expression", "field_list", "field", … … 1235 1240 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 1236 1241 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, 591242 365, 366, 367, 40, 41, 91, 93, 46, 123, 125, 1243 44, 42, 38, 43, 45, 33, 126, 47, 37, 60, 1244 62, 94, 124, 63, 58, 61, 59 1240 1245 }; 1241 1246 # endif … … 1244 1249 static const yytype_uint16 yyr1[] = 1245 1250 { 1246 0, 13 5, 136, 137, 138, 138, 138, 138, 138, 139,1247 1 39, 139, 140, 140, 141, 141, 142, 142, 143, 144,1248 14 4, 145, 145, 145, 145, 145, 146, 146, 146, 146,1249 14 6, 146, 146, 146, 146, 146, 146, 146, 147, 147,1250 1 48, 148, 149, 149, 150, 150, 150, 150, 150, 150,1251 15 0, 151, 151, 151, 152, 152, 153, 153, 153, 153,1252 15 3, 153, 153, 153, 153, 153, 153, 153, 153, 153,1253 15 3, 153, 154, 154, 155, 155, 155, 155, 156, 156,1254 15 7, 157, 157, 157, 158, 158, 158, 159, 159, 159,1255 16 0, 160, 160, 160, 160, 161, 161, 161, 162, 162,1256 16 3, 163, 164, 164, 165, 165, 166, 166, 167, 167,1257 16 7, 168, 169, 169, 170, 170, 171, 171, 171, 171,1258 17 1, 171, 171, 171, 171, 171, 171, 171, 172, 172,1259 17 3, 173, 174, 174, 175, 175, 176, 176, 176, 176,1260 17 6, 176, 176, 176, 176, 177, 178, 178, 179, 179,1261 18 0, 180, 180, 180, 181, 181, 182, 183, 183, 183,1262 18 3, 183, 183, 184, 184, 184, 185, 185, 186, 186,1263 18 7, 187, 188, 189, 189, 190, 190, 191, 191, 192,1264 19 2, 192, 192, 193, 193, 194, 194, 195, 195, 195,1265 19 6, 196, 197, 197, 197, 197, 197, 197, 197, 197,1266 19 7, 197, 198, 198, 198, 199, 199, 199, 199, 199,1267 20 0, 200, 200, 200, 201, 202, 202, 202, 202, 202,1268 20 3, 203, 203, 203, 203, 204, 204, 205, 205, 206,1269 20 6, 207, 207, 208, 208, 208, 209, 209, 210, 210,1270 21 1, 211, 212, 212, 213, 213, 214, 214, 215, 215,1271 21 6, 216, 217, 217, 218, 218, 218, 218, 218, 219,1272 2 19, 219, 220, 220, 220, 221, 221, 221, 221, 221,1273 22 2, 222, 223, 223, 224, 224, 224, 225, 225, 225,1274 22 5, 225, 226, 226, 227, 227, 227, 227, 228, 228,1275 2 29, 229, 229, 229, 230, 230, 230, 230, 231, 231,1276 23 2, 232, 233, 233, 234, 234, 234, 234, 234, 235,1277 23 4, 236, 236, 236, 237, 237, 238, 238, 238, 238,1278 2 38, 238, 238, 238, 239, 239, 239, 239, 239, 239,1279 2 39, 239, 239, 239, 239, 239, 239, 240, 240, 240,1280 24 0, 240, 241, 241, 242, 242, 242, 242, 243, 243,1281 24 3, 243, 244, 244, 244, 244, 245, 245, 245, 246,1282 24 6, 246, 246, 247, 247, 247, 248, 248, 249, 249,1283 25 0, 249, 249, 249, 251, 251, 252, 252, 253, 253,1284 25 3, 253, 254, 254, 254, 254, 255, 255, 256, 256,1285 25 6, 256, 256, 257, 257, 258, 259, 260, 260, 261,1286 26 0, 262, 262, 263, 263, 264, 264, 265, 265, 265,1287 26 5, 265, 266, 266, 266, 266, 267, 267, 268, 268,1288 2 69, 269, 270, 270, 270, 270, 271, 271, 271, 271,1289 27 1, 272, 272, 272, 272, 272, 273, 273, 274, 274,1290 27 5, 275, 276, 276, 276, 277, 277, 277, 278, 278,1291 2 78, 279, 279, 279, 280, 280, 280, 280, 281, 281,1292 28 1, 282, 282, 283, 283, 283, 283, 283, 284, 284,1293 28 5, 285, 286, 286, 286, 286, 286, 287, 287, 287,1294 28 7, 288, 288, 288, 289, 290, 290, 292, 291, 291,1295 293, 293, 29 3, 294, 294, 295, 295, 295, 296, 296,1296 29 6, 296, 297, 297, 297, 298, 298, 299, 299, 300,1297 301, 30 0, 302, 302, 303, 303, 304, 304, 304, 305,1298 30 5, 306, 306, 307, 307, 308, 308, 309, 309, 309,1299 31 0, 309, 309, 311, 311, 311, 312, 312, 312, 312,1300 31 2, 312, 312, 312, 312, 313, 313, 313, 314, 315,1301 31 5, 316, 316, 317, 317, 318, 319, 319, 320, 320,1302 32 0, 321, 321, 321, 321, 322, 322, 322, 322, 323,1303 32 3, 324, 324, 324, 325, 325, 325, 325, 326, 326,1304 32 7, 327, 327, 328, 328, 328, 329, 329, 329, 330,1305 33 0, 330, 331, 331, 331, 332, 332, 332, 333, 333,1306 33 3, 334, 334, 334, 335, 335, 335, 335, 336, 336,1307 33 7, 337, 337, 338, 338, 338, 338, 339, 339, 339,1308 34 0, 340, 340, 340, 341, 341, 341, 342, 342, 342,1309 34 2, 343, 343, 343, 344, 344, 344, 344, 345, 345,1310 34 6, 346, 346, 347, 347, 348, 348, 349, 349, 349,1311 35 0, 350, 350, 350, 350, 351, 351, 351, 351, 352,1312 35 2, 352, 353, 353, 353, 354, 354, 354, 354, 355,1313 35 5, 355, 356, 356, 356, 356, 356, 357, 357, 357,1314 35 7, 358, 358, 358, 359, 359, 359, 360, 360, 360,1315 36 0, 360, 360, 361, 361, 361, 362, 362, 362, 362,1316 36 2, 363, 363, 363, 363, 364, 364, 365, 365, 365,1317 36 6, 366, 367, 367, 367, 367, 367, 367, 368, 368,1318 3 68, 368, 368, 368, 368, 368, 368, 368, 369, 369,1319 3 69, 369, 370, 370, 370, 371, 371, 372, 372, 372,1320 37 2, 372, 372, 373, 373, 373, 373, 373, 373, 374,1321 375, 37 5, 376, 376, 377, 3771251 0, 137, 138, 139, 140, 140, 140, 140, 140, 141, 1252 141, 141, 142, 142, 143, 143, 144, 144, 145, 146, 1253 146, 147, 147, 147, 147, 147, 148, 148, 148, 148, 1254 148, 148, 148, 148, 148, 148, 148, 148, 149, 149, 1255 150, 150, 151, 151, 152, 152, 152, 152, 152, 152, 1256 152, 153, 153, 153, 154, 154, 155, 155, 155, 155, 1257 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 1258 155, 155, 156, 156, 157, 157, 157, 157, 158, 158, 1259 159, 159, 159, 159, 160, 160, 160, 161, 161, 161, 1260 162, 162, 162, 162, 162, 163, 163, 163, 164, 164, 1261 165, 165, 166, 166, 167, 167, 168, 168, 169, 169, 1262 169, 170, 171, 171, 172, 172, 173, 173, 173, 173, 1263 173, 173, 173, 173, 173, 173, 173, 173, 174, 174, 1264 175, 175, 176, 176, 177, 177, 178, 178, 178, 178, 1265 178, 178, 178, 178, 178, 179, 180, 180, 181, 181, 1266 182, 182, 182, 182, 183, 183, 184, 185, 185, 185, 1267 185, 185, 185, 186, 186, 186, 187, 187, 188, 188, 1268 189, 189, 190, 191, 191, 192, 192, 193, 193, 194, 1269 194, 194, 194, 195, 195, 196, 196, 197, 197, 197, 1270 198, 198, 199, 199, 199, 199, 199, 199, 199, 199, 1271 199, 199, 200, 200, 200, 201, 201, 201, 201, 201, 1272 202, 202, 202, 202, 203, 204, 204, 204, 204, 204, 1273 205, 205, 205, 205, 205, 206, 206, 207, 207, 208, 1274 208, 209, 209, 210, 210, 210, 211, 211, 212, 212, 1275 213, 213, 214, 214, 215, 215, 216, 216, 217, 217, 1276 218, 218, 219, 219, 220, 220, 220, 220, 220, 221, 1277 221, 221, 222, 222, 222, 223, 223, 223, 223, 223, 1278 224, 224, 225, 225, 226, 226, 226, 227, 227, 227, 1279 227, 227, 228, 228, 229, 229, 229, 229, 230, 230, 1280 231, 231, 231, 231, 232, 232, 232, 232, 233, 233, 1281 234, 234, 235, 235, 236, 236, 236, 236, 236, 237, 1282 236, 238, 238, 238, 239, 239, 240, 240, 240, 240, 1283 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 1284 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 1285 242, 242, 242, 242, 243, 243, 244, 244, 244, 244, 1286 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 1287 247, 248, 248, 248, 248, 249, 249, 249, 250, 250, 1288 251, 251, 252, 251, 251, 251, 253, 253, 254, 254, 1289 255, 255, 255, 255, 256, 256, 256, 256, 257, 257, 1290 258, 258, 258, 258, 258, 259, 259, 260, 261, 262, 1291 262, 263, 262, 264, 264, 265, 265, 266, 266, 267, 1292 267, 267, 267, 267, 268, 268, 268, 268, 269, 269, 1293 270, 270, 271, 271, 272, 272, 272, 272, 273, 273, 1294 273, 273, 273, 274, 274, 274, 274, 274, 275, 275, 1295 276, 276, 277, 277, 278, 278, 278, 279, 279, 279, 1296 280, 280, 280, 281, 281, 281, 282, 282, 282, 282, 1297 283, 283, 283, 284, 284, 285, 285, 285, 285, 285, 1298 286, 286, 287, 287, 288, 288, 288, 288, 288, 289, 1299 289, 289, 289, 290, 290, 290, 291, 292, 292, 294, 1300 293, 293, 295, 295, 295, 296, 296, 297, 297, 297, 1301 298, 298, 298, 298, 299, 299, 299, 300, 300, 301, 1302 301, 302, 303, 302, 304, 304, 305, 305, 306, 306, 1303 306, 307, 307, 308, 308, 309, 309, 310, 310, 311, 1304 311, 311, 312, 311, 311, 313, 313, 313, 314, 314, 1305 314, 314, 314, 314, 314, 314, 314, 315, 315, 315, 1306 316, 317, 317, 318, 318, 319, 319, 320, 321, 321, 1307 322, 322, 322, 323, 323, 323, 323, 324, 324, 324, 1308 324, 325, 325, 326, 326, 326, 327, 327, 327, 327, 1309 328, 328, 329, 329, 329, 330, 330, 330, 331, 331, 1310 331, 332, 332, 332, 333, 333, 333, 334, 334, 334, 1311 335, 335, 335, 336, 336, 336, 337, 337, 337, 337, 1312 338, 338, 339, 339, 339, 340, 340, 340, 340, 341, 1313 341, 341, 342, 342, 342, 342, 343, 343, 343, 344, 1314 344, 344, 344, 345, 345, 345, 346, 346, 346, 346, 1315 347, 347, 348, 348, 348, 349, 349, 350, 350, 351, 1316 351, 351, 352, 352, 352, 352, 352, 353, 353, 353, 1317 353, 354, 354, 354, 355, 355, 355, 356, 356, 356, 1318 356, 357, 357, 357, 358, 358, 358, 358, 358, 359, 1319 359, 359, 359, 360, 360, 360, 361, 361, 361, 362, 1320 362, 362, 362, 362, 362, 363, 363, 363, 364, 364, 1321 364, 364, 364, 365, 365, 365, 365, 366, 366, 367, 1322 367, 367, 368, 368, 369, 369, 369, 369, 369, 369, 1323 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 1324 371, 371, 371, 371, 372, 372, 372, 373, 373, 374, 1325 374, 374, 374, 374, 374, 375, 375, 375, 375, 375, 1326 375, 376, 377, 377, 378, 378, 379, 379 1322 1327 }; 1323 1328 … … 1358 1363 5, 1, 2, 3, 1, 2, 1, 1, 1, 1, 1359 1364 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, 1392 1, 2, 2, 3, 3, 1, 4, 4, 3, 5, 1393 8, 3, 2, 3, 1, 5, 5, 6, 6, 1, 1365 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1366 2, 2, 3, 3, 1, 3, 1, 2, 2, 2, 1367 4, 4, 4, 4, 1, 2, 2, 3, 1, 2, 1368 2, 1, 2, 2, 3, 1, 2, 2, 1, 1, 1369 4, 2, 0, 6, 7, 2, 2, 2, 0, 2, 1370 2, 3, 2, 3, 1, 2, 3, 2, 2, 4, 1371 0, 1, 2, 2, 1, 0, 1, 2, 2, 5, 1372 2, 0, 7, 2, 4, 0, 2, 0, 1, 1, 1373 1, 5, 5, 5, 1, 5, 5, 9, 1, 5, 1374 0, 1, 1, 5, 1, 1, 5, 5, 1, 3, 1375 3, 4, 1, 1, 1, 1, 2, 1, 3, 3, 1376 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1377 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1378 0, 2, 2, 1, 4, 0, 1, 2, 3, 4, 1379 2, 2, 1, 2, 2, 5, 5, 7, 6, 1, 1380 2, 2, 3, 1, 2, 2, 4, 2, 4, 0, 1381 4, 2, 1, 1, 1, 0, 2, 5, 5, 13, 1382 1, 1, 3, 3, 2, 3, 3, 2, 4, 1, 1383 6, 9, 0, 11, 1, 3, 3, 3, 1, 1, 1384 5, 2, 5, 0, 1, 1, 3, 0, 1, 1, 1385 1, 1, 0, 6, 2, 1, 2, 4, 2, 3, 1386 3, 3, 4, 5, 5, 5, 6, 1, 1, 1, 1387 3, 0, 5, 0, 1, 1, 2, 6, 1, 3, 1388 0, 1, 4, 1, 1, 1, 1, 2, 1, 2, 1389 2, 1, 3, 2, 3, 3, 2, 4, 4, 3, 1390 8, 3, 2, 1, 2, 6, 8, 3, 2, 3, 1391 3, 4, 4, 3, 1, 1, 1, 4, 6, 3, 1392 2, 3, 3, 4, 4, 3, 2, 1, 2, 2, 1393 1, 3, 2, 3, 3, 2, 4, 4, 3, 6, 1394 8, 3, 2, 1, 2, 2, 2, 3, 3, 2, 1395 4, 4, 3, 6, 8, 3, 2, 1, 2, 2, 1396 1, 1, 2, 3, 3, 2, 4, 6, 8, 1, 1394 1397 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 1398 3, 5, 8, 3, 2, 3, 1, 5, 5, 6, 1399 6, 1, 2, 2, 1, 2, 2, 3, 3, 1, 1400 4, 4, 3, 5, 8, 3, 1, 2, 1, 2, 1401 6, 5, 6, 7, 7, 1, 2, 2, 1, 2, 1402 2, 3, 3, 1, 4, 4, 3, 8, 3, 1, 1403 1, 2, 1, 1, 2, 3, 2, 3, 2, 3, 1404 3, 2, 4, 3, 2, 3, 2, 4, 3, 2, 1405 6, 6, 6, 7, 1, 2, 1, 1, 1, 2, 1406 3, 2, 3, 2, 3, 3, 4, 2, 3, 4, 1407 2, 5, 6, 6, 0, 1, 0, 2 1403 1408 }; 1404 1409 … … 1410 1415 298, 298, 318, 316, 319, 317, 320, 321, 304, 306, 1411 1416 305, 0, 307, 332, 324, 329, 327, 328, 326, 325, 1412 330, 331, 33 6, 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 3 11, 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 55 1, 2, 592, 593, 594, 298, 0, 735, 736, 0,1421 14, 0, 15, 298, 274, 275, 0, 299, 294, 295,1422 29 6, 297, 530, 309, 396, 552, 553, 374, 375, 14,1423 449, 450, 13, 445, 448, 0, 507, 502, 493, 449,1424 4 50, 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 55 1, 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 3 46, 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 7 7, 57, 22, 58, 18, 26, 56, 78, 298, 0,1441 80, 84, 87, 90, 95, 98, 100, 102, 104, 106,1442 10 8, 112, 499, 23, 456, 498, 0, 454, 455, 0,1443 570, 585, 588, 591, 597, 600, 603, 2, 743, 298,1444 74 6, 2, 72, 298, 3, 430, 0, 438, 299, 298,1445 311, 337, 291, 352, 359, 3, 3, 412, 416, 426,1446 4 31, 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 2 85, 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 6 07, 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 2 98, 440, 0, 298, 242, 0, 2, 244, 0, 299,1457 0, 2 62, 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 12 7, 117, 116, 0, 60, 61, 0, 0, 0, 0,1417 330, 331, 337, 338, 336, 333, 334, 335, 553, 553, 1418 553, 0, 0, 0, 298, 225, 308, 322, 323, 9, 1419 365, 0, 10, 16, 17, 0, 2, 72, 73, 571, 1420 11, 298, 531, 529, 252, 3, 460, 3, 265, 0, 1421 3, 3, 3, 253, 3, 0, 0, 0, 299, 300, 1422 302, 298, 311, 314, 346, 290, 339, 344, 291, 354, 1423 292, 361, 358, 368, 0, 0, 369, 293, 479, 483, 1424 3, 3, 0, 2, 525, 530, 535, 303, 0, 0, 1425 553, 583, 553, 2, 594, 595, 596, 298, 0, 737, 1426 738, 0, 14, 0, 15, 298, 274, 275, 0, 299, 1427 294, 295, 296, 297, 532, 309, 398, 554, 555, 376, 1428 377, 14, 451, 452, 13, 447, 450, 0, 509, 504, 1429 495, 451, 452, 0, 0, 534, 226, 0, 298, 0, 1430 0, 0, 0, 0, 0, 0, 0, 298, 298, 0, 1431 739, 299, 588, 600, 743, 736, 734, 741, 0, 0, 1432 0, 259, 2, 0, 538, 445, 446, 444, 0, 0, 1433 0, 0, 553, 0, 640, 641, 0, 0, 551, 547, 1434 553, 568, 553, 553, 549, 2, 548, 553, 607, 553, 1435 553, 610, 0, 0, 0, 298, 298, 316, 366, 2, 1436 298, 266, 301, 312, 347, 359, 484, 0, 2, 0, 1437 460, 267, 299, 340, 355, 362, 480, 0, 2, 0, 1438 315, 341, 348, 349, 0, 356, 360, 363, 367, 452, 1439 298, 378, 371, 375, 0, 400, 481, 485, 0, 0, 1440 0, 1, 298, 2, 536, 582, 584, 298, 2, 747, 1441 299, 750, 551, 551, 0, 299, 0, 0, 277, 553, 1442 549, 2, 298, 0, 0, 298, 556, 2, 507, 2, 1443 560, 0, 0, 0, 0, 0, 0, 21, 69, 4, 1444 8, 19, 5, 6, 7, 0, 0, 298, 2, 74, 1445 75, 76, 77, 57, 22, 58, 18, 26, 56, 78, 1446 298, 0, 80, 84, 87, 90, 95, 98, 100, 102, 1447 104, 106, 108, 112, 501, 23, 458, 500, 0, 456, 1448 457, 0, 572, 587, 590, 593, 599, 602, 605, 2, 1449 745, 298, 748, 2, 72, 298, 3, 432, 0, 440, 1450 299, 298, 311, 339, 291, 354, 361, 3, 3, 414, 1451 418, 428, 433, 479, 298, 434, 712, 713, 298, 435, 1452 437, 2, 589, 601, 735, 2, 2, 254, 2, 465, 1453 0, 463, 462, 461, 146, 2, 2, 256, 2, 2, 1454 255, 2, 285, 2, 286, 0, 284, 0, 0, 0, 1455 0, 0, 0, 0, 0, 0, 573, 612, 0, 460, 1456 2, 567, 576, 666, 569, 570, 539, 298, 2, 606, 1457 615, 608, 609, 0, 280, 298, 298, 345, 299, 0, 1458 299, 298, 740, 744, 742, 540, 298, 551, 260, 268, 1459 313, 0, 2, 541, 298, 505, 342, 343, 287, 357, 1460 364, 0, 298, 0, 754, 405, 0, 482, 506, 257, 1461 258, 526, 298, 442, 0, 298, 242, 0, 2, 244, 1462 0, 299, 0, 262, 2, 263, 282, 0, 0, 2, 1463 298, 551, 298, 492, 494, 493, 0, 0, 756, 0, 1464 298, 0, 298, 496, 298, 566, 564, 565, 563, 0, 1465 558, 561, 0, 0, 298, 64, 298, 78, 59, 298, 1466 66, 298, 298, 62, 63, 2, 132, 0, 0, 454, 1467 0, 453, 734, 298, 20, 31, 0, 34, 35, 40, 1468 2, 0, 40, 118, 119, 120, 121, 122, 123, 124, 1469 125, 126, 127, 117, 116, 0, 60, 61, 0, 0, 1465 1470 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 7 08, 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 29 9, 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 57 9, 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 9 6, 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, 6 73, 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 3 78, 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 6 42, 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 3 71, 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 41 7, 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 20 3, 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 1 66, 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 1 34, 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 1 79, 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, 2131471 0, 0, 0, 0, 0, 0, 0, 2, 652, 459, 1472 649, 553, 553, 657, 486, 298, 2, 591, 592, 0, 1473 603, 604, 0, 746, 749, 298, 298, 0, 714, 299, 1474 718, 709, 710, 716, 0, 2, 2, 674, 553, 756, 1475 623, 553, 553, 756, 553, 637, 553, 553, 688, 441, 1476 671, 553, 553, 679, 686, 298, 436, 299, 0, 0, 1477 298, 724, 299, 729, 756, 721, 298, 726, 756, 298, 1478 298, 0, 0, 21, 2, 0, 22, 0, 466, 754, 1479 0, 0, 472, 246, 0, 298, 0, 0, 0, 551, 1480 575, 579, 581, 611, 614, 618, 621, 574, 613, 0, 1481 288, 664, 0, 298, 281, 0, 0, 0, 0, 279, 1482 2, 0, 264, 542, 298, 0, 0, 298, 2, 370, 1483 390, 379, 0, 0, 384, 378, 755, 0, 0, 403, 1484 0, 299, 3, 421, 3, 425, 424, 597, 0, 537, 1485 298, 72, 3, 298, 440, 299, 3, 434, 435, 2, 1486 0, 0, 0, 491, 310, 298, 0, 487, 489, 3, 1487 2, 2, 0, 508, 3, 0, 560, 134, 0, 0, 1488 227, 0, 0, 0, 0, 41, 0, 0, 298, 24, 1489 0, 25, 0, 698, 703, 455, 695, 553, 553, 0, 1490 114, 3, 2, 32, 0, 38, 0, 2, 29, 0, 1491 113, 81, 82, 83, 85, 86, 88, 89, 93, 94, 1492 91, 92, 96, 97, 99, 101, 103, 105, 107, 0, 1493 0, 298, 0, 0, 0, 653, 654, 650, 651, 503, 1494 502, 298, 0, 720, 298, 725, 299, 298, 668, 711, 1495 667, 2, 298, 0, 0, 0, 0, 0, 0, 0, 1496 0, 689, 0, 675, 626, 642, 676, 2, 622, 629, 1497 438, 624, 625, 439, 2, 636, 645, 638, 639, 672, 1498 673, 687, 715, 719, 717, 756, 272, 2, 751, 2, 1499 429, 723, 728, 430, 3, 408, 3, 3, 3, 460, 1500 0, 0, 2, 474, 471, 755, 0, 467, 2, 470, 1501 473, 0, 298, 247, 269, 3, 276, 278, 0, 460, 1502 2, 577, 578, 2, 616, 617, 0, 665, 543, 3, 1503 351, 350, 353, 352, 298, 544, 0, 545, 378, 0, 1504 0, 298, 0, 0, 698, 388, 391, 395, 553, 395, 1505 394, 387, 380, 553, 382, 385, 298, 405, 399, 111, 1506 406, 754, 0, 0, 443, 245, 0, 0, 3, 2, 1507 674, 436, 0, 533, 0, 756, 757, 495, 0, 298, 1508 298, 298, 0, 557, 559, 135, 0, 0, 220, 0, 1509 0, 0, 228, 229, 65, 0, 67, 70, 71, 0, 1510 133, 0, 0, 0, 699, 700, 696, 697, 465, 79, 1511 115, 130, 3, 114, 0, 28, 40, 3, 0, 37, 1512 110, 0, 3, 656, 660, 663, 655, 3, 598, 722, 1513 727, 2, 72, 298, 3, 3, 299, 0, 3, 628, 1514 632, 635, 644, 678, 682, 685, 298, 3, 627, 643, 1515 677, 298, 298, 431, 298, 298, 0, 0, 0, 0, 1516 261, 111, 0, 3, 3, 0, 468, 0, 464, 0, 1517 0, 250, 298, 0, 0, 134, 0, 0, 0, 0, 1518 0, 134, 0, 0, 114, 114, 21, 0, 0, 3, 1519 136, 137, 2, 148, 138, 139, 140, 141, 142, 143, 1520 150, 152, 0, 0, 0, 289, 298, 298, 553, 0, 1521 546, 298, 381, 383, 0, 397, 699, 392, 396, 393, 1522 386, 390, 373, 404, 0, 585, 2, 670, 669, 0, 1523 675, 2, 488, 490, 510, 3, 518, 519, 0, 2, 1524 514, 3, 3, 0, 0, 562, 227, 0, 0, 0, 1525 227, 0, 0, 702, 706, 708, 701, 754, 114, 0, 1526 3, 54, 0, 54, 54, 3, 42, 44, 39, 0, 1527 3, 109, 0, 2, 658, 659, 0, 298, 0, 0, 1528 0, 3, 644, 0, 2, 630, 631, 2, 646, 2, 1529 680, 681, 0, 0, 72, 0, 3, 3, 3, 3, 1530 416, 415, 419, 753, 2, 2, 752, 0, 0, 0, 1531 0, 3, 469, 3, 0, 248, 151, 3, 299, 298, 1532 0, 0, 0, 0, 2, 0, 196, 0, 194, 0, 1533 0, 0, 0, 0, 0, 0, 553, 0, 156, 153, 1534 298, 0, 0, 271, 283, 3, 3, 552, 619, 374, 1535 389, 402, 298, 270, 298, 0, 521, 498, 298, 0, 1536 0, 497, 512, 0, 0, 0, 221, 0, 230, 68, 1537 2, 704, 705, 0, 131, 128, 0, 51, 2, 45, 1538 52, 53, 0, 0, 0, 0, 27, 0, 661, 298, 1539 586, 730, 731, 732, 0, 683, 298, 298, 298, 3, 1540 3, 0, 691, 0, 0, 0, 0, 298, 298, 3, 1541 550, 475, 476, 0, 251, 299, 0, 0, 0, 0, 1542 298, 197, 195, 192, 0, 198, 0, 0, 0, 0, 1543 202, 205, 203, 199, 0, 200, 134, 40, 149, 147, 1544 249, 0, 0, 423, 427, 426, 0, 515, 2, 516, 1545 2, 517, 511, 298, 233, 0, 231, 0, 233, 298, 1546 36, 129, 55, 0, 43, 33, 2, 49, 2, 47, 1547 30, 3, 733, 3, 3, 3, 0, 0, 690, 692, 1548 633, 647, 273, 2, 413, 3, 412, 0, 478, 134, 1549 0, 0, 134, 3, 0, 134, 193, 0, 2, 2, 1550 214, 204, 0, 0, 0, 145, 0, 580, 620, 2, 1551 0, 0, 2, 234, 0, 0, 222, 0, 3, 3, 1552 0, 0, 0, 0, 0, 0, 693, 694, 298, 0, 1553 477, 157, 0, 0, 2, 170, 134, 159, 0, 187, 1554 0, 134, 0, 2, 161, 0, 2, 0, 2, 2, 1555 2, 201, 37, 298, 520, 522, 513, 0, 0, 0, 1556 0, 0, 0, 3, 3, 662, 634, 648, 684, 417, 1557 134, 163, 166, 0, 165, 169, 3, 172, 171, 0, 1558 134, 189, 134, 3, 0, 298, 0, 298, 0, 2, 1559 0, 2, 144, 2, 235, 236, 0, 232, 223, 707, 1560 46, 0, 0, 158, 0, 0, 168, 238, 173, 2, 1561 240, 188, 0, 191, 177, 206, 3, 215, 219, 208, 1562 3, 0, 298, 0, 298, 0, 0, 0, 50, 48, 1563 164, 167, 134, 0, 174, 298, 134, 134, 0, 178, 1564 0, 0, 698, 216, 217, 218, 0, 207, 3, 209, 1565 3, 298, 224, 237, 154, 175, 160, 134, 241, 190, 1566 185, 183, 179, 162, 134, 0, 699, 0, 0, 0, 1567 0, 155, 176, 186, 180, 184, 183, 181, 3, 3, 1568 0, 0, 499, 182, 210, 212, 3, 3, 211, 213 1564 1569 }; 1565 1570 … … 1567 1572 static const yytype_int16 yydefgoto[] = 1568 1573 { 1569 -1, 80 0, 464, 301, 47, 133, 134, 302, 303, 304,1570 30 5, 306, 752, 753, 1113, 1114, 1115, 1225, 307, 378,1571 3 09, 310, 311, 312, 313, 314, 315, 316, 317, 318,1572 3 19, 320, 321, 1010, 514, 959, 543, 323, 960, 933,1573 103 6, 1502, 1038, 1039, 1040, 1041, 1503, 1042, 1043, 1420,1574 142 1, 1383, 1384, 1385, 1481, 1482, 1486, 1487, 1522, 1523,1575 104 4, 1342, 1045, 1046, 1278, 1279, 1280, 1464, 1047, 145,1576 9 39, 940, 941, 1362, 1444, 1456, 1457, 465, 466, 860,1577 86 1, 1018, 51, 52, 53, 54, 55, 345, 157, 58,1578 59, 60, 61, 62, 347, 64, 65, 263, 67, 68,1579 27 3, 349, 350, 71, 72, 73, 118, 75, 203, 352,1580 1 19, 78, 120, 80, 81, 451, 82, 450, 679, 680,1581 68 1, 893, 1065, 894, 83, 84, 454, 452, 687, 842,1582 84 3, 355, 356, 690, 691, 692, 357, 358, 359, 360,1583 46 2, 176, 135, 136, 518, 325, 169, 636, 637, 638,1584 6 39, 640, 85, 121, 87, 485, 486, 925, 487, 276,1585 49 1, 326, 88, 137, 138, 89, 1301, 1087, 1088, 1089,1586 109 0, 90, 91, 708, 92, 272, 93, 94, 186, 1012,1587 67 0, 409, 125, 95, 497, 498, 499, 187, 267, 189,1588 19 0, 191, 268, 98, 99, 100, 101, 102, 103, 104,1589 19 4, 195, 196, 197, 198, 812, 598, 599, 600, 601,1590 199, 603, 604, 605, 567, 568, 569, 570, 742, 105,1591 60 7, 608, 609, 610, 611, 612, 953, 744, 745, 746,1592 5 88, 363, 364, 365, 366, 327, 163, 107, 108, 109,1593 3 68, 685, 7151574 -1, 802, 466, 303, 49, 135, 136, 304, 305, 306, 1575 307, 308, 754, 755, 1115, 1116, 1117, 1227, 309, 380, 1576 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 1577 321, 322, 323, 1012, 516, 961, 545, 325, 962, 935, 1578 1038, 1504, 1040, 1041, 1042, 1043, 1505, 1044, 1045, 1422, 1579 1423, 1385, 1386, 1387, 1483, 1484, 1488, 1489, 1524, 1525, 1580 1046, 1344, 1047, 1048, 1280, 1281, 1282, 1466, 1049, 147, 1581 941, 942, 943, 1364, 1446, 1458, 1459, 467, 468, 862, 1582 863, 1020, 53, 54, 55, 56, 57, 347, 159, 60, 1583 61, 62, 63, 64, 349, 66, 67, 265, 69, 70, 1584 275, 351, 352, 73, 74, 75, 120, 77, 205, 354, 1585 121, 80, 122, 82, 83, 453, 84, 452, 681, 682, 1586 683, 895, 1067, 896, 85, 86, 456, 454, 689, 844, 1587 845, 357, 358, 692, 693, 694, 359, 360, 361, 362, 1588 464, 178, 137, 138, 520, 327, 171, 638, 639, 640, 1589 641, 642, 87, 123, 89, 487, 488, 927, 489, 278, 1590 493, 328, 90, 139, 140, 91, 1303, 1089, 1090, 1091, 1591 1092, 92, 93, 710, 94, 274, 95, 96, 188, 1014, 1592 672, 411, 127, 97, 499, 500, 501, 189, 269, 191, 1593 192, 193, 270, 100, 101, 102, 103, 104, 105, 106, 1594 196, 197, 198, 199, 200, 814, 600, 601, 602, 603, 1595 201, 605, 606, 607, 569, 570, 571, 572, 744, 107, 1596 609, 610, 611, 612, 613, 614, 955, 746, 747, 748, 1597 590, 365, 366, 367, 368, 329, 165, 109, 110, 111, 1598 370, 687, 717 1594 1599 }; 1595 1600 1596 1601 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1597 1602 STATE-NUM. */ 1598 #define YYPACT_NINF -1 3331603 #define YYPACT_NINF -1267 1599 1604 static const yytype_int16 yypact[] = 1600 1605 { 1601 6694, 7975, -1333, -14, -1333, -1333, -1333, -1333, -1333, -1333,1602 -1 333, 26, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,1603 -1 333, -1333, -1333, -1333, -1333, -1333, 109, 109, 109, 759,1604 860, 66, 6930, 241, -1333, -1333, -1333, -1333, -1333, 199,1605 -1 333, -1333, -1333, 1264, 207, -1333, -1333, -1333, -1333, 8320,1606 -1 333, -1333, -1333, -1333, 3, 216, -1333, 1096, -1333, -1333,1607 -1 333, -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 -1 333, 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 -1 333, 525, 576, -1333, -1333, 50, 8059, 1902, 238, 538,1616 578, 604, 613, 618, 635, 8659, 6327, 649, -1333, 8431,1617 -1 333, -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 -1 333, -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 -1 333, -1333, -1333, 9692, 9692, 7829, 207, -1333, -1333, -1333,1631 -1 333, -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 -1 333, -1333, 465, 880, -1333, 586, 880, -1333, -1333, 8461,1635 -1 333, 890, 897, 8174, -1333, -1333, 1514, 1088, 7619, 6116,1636 554, -1333, 554, 1138, 1138, -1333, -1333, -1333, -1333, -1333,1637 -1 333, 1138, 8461, 1096, -1333, -1333, 8659, 1872, -1333, -1333,1638 -1 333, -1333, -1333, -1333, -1333, -1333, -1333, 9279, 9515, -1333,1639 -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,1640 -1 333, -1333, -1333, 2376, -1333, 105, 903, 926, 928, 796,1641 9 31, 941, 943, 2098, -1333, -1333, 952, 3, 954, -1333,1642 -1333, 961, -1333, -1333, -1333, 4461, -1333, -1333, -1333, -1333,1643 -1 333, 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 -1 333, -1333, -1333, 9515, -1333, -1333, 9515, 9515, 9515, 9515,1656 9 515, 9515, 9515, 9515, 9515, 9515, 9515, 9515, 9515, 9515,1657 9 515, 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 -1 333, -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 -1 333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333, 961,1684 -1 333, -1333, -1333, 986, -1333, -1333, -1333, -1333, -1333, -1333,1685 -1 333, -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 -1 333, -1333, 6327, -1333, 216, -1333, -1333, 452, 487, 6327,1690 1790, 9515, 2983, -1333, -1333, 1153, 20, 1153, -1333, 860,1691 -1 333, 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 11 77, -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 -1 333, 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 -1 333, -1333, 773, -1333, 2983, -1333, -1333, -1333, -1333, 972,1708 -1 333, -1333, 1250, -1333, -1333, -1333, -1333, 1257, 1700, -1333,1709 -1333, 1241, -1333, 1085, -1333, -1333, 2376, 1256, -1333, -1333,1710 -1 333, 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 12 82, -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 -1 333, -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 9 515, 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 -1 333, -1333, 1340, -1333, 5606, 5606, 5606, -1333, -1333, 1341,1726 -1 333, 1342, 1345, 1347, 600, 7385, 7502, -1333, -1333, -1333,1727 -1 333, 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 -1 333, 8545, 866, 1373, -1333, 1368, 866, 5606, -1333, -1333,1732 -1 333, 730, -1333, -1333, -1333, -1333, -1333, -1333, -1333, -1333,1733 -1 333, -1333, -1333, -1333, 1384, 1391, -1333, -1333, -1333, -1333,1734 -1 333, -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 1 413, -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 1 418, -1333, -1333, 1445, -1333, 1449, -1333, 1467, 1469, -1333,1741 14 35, 8545, -1333, -1333, -1333, 866, 594, 1456, 1436, 1460,1742 1 466, 1270, 1270, -1333, -1333, -1333, -1333, -1333, 9220, 194,1743 -1333, 376, -1333, -1333, 7048, -1333, -1333, 1447, 9515, -1333,1744 9 515, 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 -1 333, -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, -13331606 5235, 8510, -1267, -14, -1267, -1267, -1267, -1267, -1267, -1267, 1607 -1267, -27, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1608 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 84, 84, 1609 84, 1541, 905, 123, 6677, 163, -1267, -1267, -1267, -1267, 1610 -1267, 157, -1267, -1267, -1267, 1043, 81, -1267, -1267, -1267, 1611 -1267, 4048, -1267, -1267, -1267, -1267, 225, 198, -1267, 1956, 1612 -1267, -1267, -1267, -1267, 217, 1716, 371, 37, 6797, -1267, 1613 -1267, 4048, 829, -1267, -1267, 1101, 380, 3172, 661, 839, 1614 1101, 977, -1267, -1267, 1289, 340, -1267, 1101, 1140, -1267, 1615 273, -1267, 439, 447, -1267, -1267, -1267, -1267, 337, 198, 1616 84, -1267, 84, -1267, -1267, -1267, -1267, 7269, 1956, -1267, 1617 -1267, 1956, -1267, 325, -1267, 7582, -1267, -1267, 2178, 8744, 1618 -1267, 675, 675, 675, -1267, -1267, -1267, 84, -1267, -1267, 1619 -1267, 360, 395, 436, -1267, -1267, -1267, 466, -1267, -1267, 1620 -1267, -1267, -1267, 503, 515, -1267, -1267, 272, 8119, 1675, 1621 307, 370, 377, 524, 565, 568, 580, 8828, 6307, 594, 1622 -1267, 4677, -1267, -1267, -1267, -1267, 613, -1267, 271, 9583, 1623 9583, -1267, 610, 339, -1267, -1267, -1267, -1267, 618, 379, 1624 421, 468, 84, 603, -1267, -1267, 1716, 2591, 687, -1267, 1625 90, -1267, 84, 84, 198, -1267, -1267, 91, -1267, 84, 1626 84, -1267, 2973, 652, 657, 675, 6831, -1267, -1267, -1267, 1627 4048, -1267, -1267, 1101, -1267, -1267, -1267, 198, -1267, 1956, 1628 225, -1267, 7235, -1267, 675, 675, 675, 198, -1267, 1541, 1629 -1267, 3826, -1267, -1267, 642, 675, -1267, 675, -1267, 157, 1630 8119, -1267, 665, -1267, 905, 685, 675, -1267, 1541, 689, 1631 710, -1267, 6677, 291, -1267, -1267, -1267, 8477, -1267, -1267, 1632 4354, -1267, 687, 8, 9760, 8744, 2178, 2973, -1267, 101, 1633 -1267, -1267, 7582, 1956, 740, 10515, -1267, -1267, 378, -1267, 1634 10178, 730, 705, 9819, 773, 9760, 9878, -1267, 794, -1267, 1635 -1267, -1267, -1267, -1267, -1267, 9937, 9937, 7885, 81, -1267, 1636 -1267, -1267, -1267, -1267, -1267, -1267, 834, -1267, 1184, 2546, 1637 8119, 9760, -1267, 525, 415, 844, 338, 853, 823, 831, 1638 841, 886, 56, -1267, -1267, -1267, 518, -1267, 528, -1267, 1639 -1267, 1675, -1267, -1267, 456, 900, -1267, 490, 900, -1267, 1640 -1267, 7269, -1267, 940, 946, 8236, -1267, -1267, 536, 1525, 1641 7667, 6831, 1101, -1267, 1101, 675, 675, -1267, -1267, -1267, 1642 -1267, -1267, -1267, 675, 7269, 1956, -1267, -1267, 8828, 1786, 1643 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9524, 1644 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1645 -1267, -1267, -1267, -1267, -1267, 2178, -1267, 446, 945, 961, 1646 968, 800, 973, 976, 981, 2591, -1267, -1267, 939, 225, 1647 982, -1267, -1267, 987, -1267, -1267, -1267, 8477, -1267, -1267, 1648 -1267, -1267, -1267, 2973, -1267, 8119, 8119, -1267, 675, 2178, 1649 10547, 7742, -1267, -1267, -1267, -1267, 8477, 8, -1267, -1267, 1650 1101, 198, -1267, -1267, 8477, -1267, 5404, -1267, -1267, 675, 1651 675, 579, 8594, 994, 993, 983, 998, 675, -1267, -1267, 1652 -1267, -1267, 9019, -1267, 616, 10212, -1267, 198, 1004, -1267, 1653 2178, 10298, 9996, -1267, -1267, -1267, -1267, 843, 2973, -1267, 1654 7742, 687, 5806, -1267, -1267, -1267, 1900, 626, 990, 905, 1655 10515, 1647, 7582, -1267, 10515, -1267, -1267, -1267, -1267, 627, 1656 -1267, 1013, 705, 154, 7885, -1267, 8860, -1267, -1267, 7885, 1657 -1267, 8002, 7885, -1267, -1267, 81, -1267, 640, 1015, 658, 1658 1021, -1267, -1267, 6061, -1267, -1267, 315, -1267, -1267, 9760, 1659 -1267, 368, 9760, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1660 -1267, -1267, -1267, -1267, -1267, 9760, -1267, -1267, 9760, 9760, 1661 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 9760, 1662 9760, 9760, 9760, 9760, 9760, 9760, 3432, 518, 1212, -1267, 1663 -1267, 84, 84, -1267, -1267, 8119, -1267, -1267, 987, 291, 1664 -1267, 987, 10055, -1267, -1267, 8828, 6061, 1020, -1267, 8744, 1665 -1267, -1267, 613, -1267, 1023, 1793, 1025, 1950, 136, 990, 1666 -1267, 84, 84, 990, 407, -1267, 84, 84, 987, -1267, 1667 -1267, 84, 84, -1267, 900, 8944, 1956, 10447, 356, 541, 1668 8944, -1267, 4354, -1267, 990, -1267, 7269, -1267, 126, 7354, 1669 7354, 1956, 9642, 1003, -1267, 789, 1008, 1010, -1267, 1026, 1670 9583, 449, -1267, 1114, 1956, 7354, 291, 2178, 291, 687, 1671 707, 900, -1267, -1267, 766, 900, -1267, -1267, -1267, 705, 1672 -1267, 900, 198, 9019, -1267, 643, 1041, 647, 1045, -1267, 1673 940, 198, -1267, -1267, 8477, 198, 1042, 8860, 81, -1267, 1674 1307, -1267, 471, 481, 905, -1267, 905, 1047, 9760, -1267, 1675 905, 10447, -1267, -1267, 1056, -1267, -1267, -1267, 291, -1267, 1676 10373, 946, -1267, 7354, 694, 7667, -1267, -1267, 613, 1052, 1677 1057, 1900, 2267, -1267, -1267, 10515, 9760, -1267, -1267, 1055, 1678 -1267, -1267, 1048, -1267, 1055, 1063, 10178, 9760, 1046, 1051, 1679 117, 1065, 1062, 1070, 1074, -1267, 1081, 1082, 6061, -1267, 1680 9760, -1267, 658, 1520, -1267, -1267, -1267, 84, 84, 9701, 1681 9760, 1077, -1267, -1267, 679, -1267, 9760, -1267, -1267, 821, 1682 -1267, -1267, -1267, -1267, 525, 525, 415, 415, 844, 844, 1683 844, 844, 338, 338, 853, 823, 831, 841, 886, 9760, 1684 397, 9019, 1085, 1086, 1087, 1212, -1267, -1267, -1267, -1267, 1685 -1267, 9019, 691, -1267, 7269, -1267, 6430, 8353, -1267, -1267, 1686 -1267, 1793, 9019, 856, 1089, 1091, 1092, 1093, 1096, 1098, 1687 1104, -1267, 3291, 1950, -1267, -1267, -1267, -1267, -1267, -1267, 1688 -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1689 -1267, 987, -1267, -1267, -1267, 990, -1267, -1267, -1267, -1267, 1690 -1267, -1267, -1267, -1267, -1267, -1267, 1105, 1106, -1267, 225, 1691 1077, 9642, -1267, -1267, -1267, 9524, 1108, -1267, -1267, -1267, 1692 -1267, 905, 5524, 1197, -1267, -1267, -1267, -1267, 1095, 225, 1693 -1267, -1267, 987, -1267, -1267, 987, 1117, 987, -1267, -1267, 1694 -1267, -1267, -1267, -1267, 6307, -1267, 198, -1267, -1267, 505, 1695 507, 6307, 1549, 9760, 2098, -1267, -1267, 1099, 38, 1099, 1696 -1267, 905, -1267, 84, -1267, -1267, 8627, 983, -1267, -1267, 1697 -1267, 993, 1120, 1115, -1267, -1267, 1122, 1123, -1267, 694, 1698 1698, -1267, 576, -1267, 2267, 990, -1267, -1267, 1126, 10515, 1699 7582, 8119, 1129, -1267, -1267, 1125, 1135, 1118, -1267, 9760, 1700 1141, 190, 1136, -1267, 1142, 291, 1142, -1267, -1267, 1142, 1701 -1267, 1147, 1152, 1154, 1520, -1267, -1267, -1267, 9524, -1267, 1702 -1267, -1267, 1163, 9760, 986, -1267, 9760, -1267, 986, -1267, 1703 -1267, 9760, -1267, 894, 900, -1267, -1267, -1267, -1267, -1267, 1704 -1267, -1267, 946, 8236, -1267, -1267, 6553, 1171, -1267, 898, 1705 900, -1267, 920, 936, 900, -1267, 675, 7112, -1267, -1267, 1706 -1267, 9019, 9019, -1267, 7742, 7742, 1172, 1167, 1168, 1175, 1707 -1267, 670, 111, 1077, -1267, 986, -1267, 9583, -1267, 9760, 1708 540, -1267, 5932, 1180, 1181, 9465, 1182, 1185, -8, 40, 1709 86, 9760, 1191, 198, 9760, 9760, 1177, 585, 1169, -1267, 1710 -1267, -1267, 1187, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1711 -1267, -1267, 905, 1195, 9760, -1267, 9019, 9019, 84, 1201, 1712 -1267, 8711, -1267, -1267, 862, -1267, 2098, -1267, -1267, -1267, 1713 -1267, 1307, -1267, -1267, 1198, -1267, -1267, -1267, -1267, 1202, 1714 1698, -1267, -1267, 1196, -1267, 1055, -1267, -1267, 2178, 1210, 1715 -1267, -1267, -1267, 704, 1217, -1267, 117, 1214, 9760, 1200, 1716 117, 117, 1224, 950, 900, -1267, -1267, 1026, 9760, 1230, 1717 1163, -1267, 943, -1267, -1267, 1220, -1267, 78, -1267, 1231, 1718 1220, -1267, 1234, -1267, -1267, 987, 1236, 6184, 1235, 1239, 1719 1241, -1267, -1267, 1238, -1267, -1267, 987, -1267, -1267, -1267, 1720 -1267, 987, 9760, 9760, 946, 1243, -1267, -1267, -1267, -1267, 1721 -1267, -1267, -1267, -1267, -1267, -1267, -1267, 9760, 9760, 1244, 1722 1248, 1220, -1267, -1267, 905, -1267, -1267, -1267, 7070, 7582, 1723 9760, 9760, 1318, 9760, -1267, 1233, -1267, 1246, -1267, 1250, 1724 9760, 1254, 9760, 938, 1255, 47, 84, 1805, -1267, -1267, 1725 5524, 1256, 554, -1267, -1267, -1267, -1267, -1267, -1267, -1267, 1726 -1267, -1267, 9281, -1267, 7742, 1260, -1267, -1267, 7582, 555, 1727 561, -1267, 1273, 1262, 705, 1283, -1267, 256, -1267, -1267, 1728 -1267, -1267, 987, 1282, -1267, -1267, 1288, 1321, -1267, -1267, 1729 1321, 1321, 986, 1292, 1699, 1866, -1267, 1295, -1267, 9019, 1730 -1267, -1267, -1267, -1267, 1298, -1267, 9019, 9019, 9019, -1267, 1731 -1267, 1300, -1267, 1301, 1310, 1311, 725, 7429, 7548, -1267, 1732 -1267, -1267, -1267, 1305, -1267, 7817, 709, 755, 1317, 758, 1733 5667, -1267, -1267, -1267, 582, -1267, 768, 1319, 1323, 198, 1734 1369, 935, -1267, -1267, 9760, -1267, 9465, 9760, -1267, -1267, 1735 -1267, 1320, 1326, -1267, -1267, -1267, 1324, -1267, -1267, -1267, 1736 -1267, -1267, -1267, 7582, 705, 1330, -1267, 1313, 705, 9019, 1737 -1267, -1267, -1267, 986, -1267, -1267, -1267, -1267, -1267, -1267, 1738 -1267, -1267, -1267, -1267, -1267, -1267, 1337, 1340, -1267, -1267, 1739 -1267, -1267, -1267, -1267, -1267, 1343, -1267, 1342, -1267, 9465, 1740 276, 9760, 9465, -1267, 1346, 9760, -1267, 281, 1361, 1363, 1741 -1267, -1267, 1355, 1356, 1339, -1267, 901, -1267, -1267, -1267, 1742 1956, 2178, 1347, -1267, 401, 9760, -1267, 783, -1267, 1220, 1743 986, 986, 1362, 1364, 1365, 1367, -1267, -1267, 7742, 1357, 1744 -1267, 1438, 9760, 1352, -1267, -1267, 9375, -1267, 791, -1267, 1745 1360, 9465, 1368, -1267, -1267, 1386, -1267, 1389, -1267, 1407, 1746 1409, -1267, 1376, 7582, -1267, -1267, -1267, 705, 291, 1403, 1747 1382, 1405, 1404, 1220, 1220, -1267, -1267, -1267, -1267, -1267, 1748 9465, 240, -1267, 474, -1267, -1267, 6917, -1267, -1267, 1385, 1749 9760, -1267, 9760, 6917, 198, 8860, 198, 8860, 1410, -1267, 1750 1411, -1267, -1267, 1408, -1267, -1267, 802, -1267, -1267, -1267, 1751 -1267, 1422, 1423, -1267, 9760, 9760, -1267, -1267, 979, 59, 1752 -1267, -1267, 1390, -1267, 979, -1267, -1267, 2042, 291, -1267, 1753 -1267, 198, 8860, 198, 8860, 1427, 1412, 291, -1267, -1267, 1754 -1267, -1267, 9375, 1425, 979, 6995, 9760, 9285, 1426, 979, 1755 1435, 2042, 2360, -1267, -1267, -1267, 1436, -1267, -1267, -1267, 1756 -1267, 8119, -1267, -1267, -1267, 9148, -1267, 9375, -1267, -1267, 1757 1416, 9058, -1267, -1267, 9285, 198, 2360, 198, 1441, 1445, 1758 814, -1267, 9148, -1267, -1267, -1267, 9058, -1267, -1267, -1267, 1759 198, 198, -1267, -1267, -1267, -1267, -1267, -1267, -1267, -1267 1755 1760 }; 1756 1761 … … 1758 1763 static const yytype_int16 yypgoto[] = 1759 1764 { 1760 -1 333, 3826, 2645, -1333, 849, -1333, 762, 867, -112, 956,1761 -1 333, 580, -517, -490, -904, -999, -1333, -62, 4003, 0,1762 -1 333, 676, 547, 572, 581, 571, 1057, 1058, 1059, 1055,1763 10 61, -1333, 963, -485, 4467, -910, -1333, -1333, 665, 184,1764 -6 91, 319, -1333, 356, -1333, 440, -1283, -1333, -1333, 176,1765 -1 333, -1072, -1062, 285, -1333, -1333, -1333, -1333, 107, -1332,1766 -1 333, -1333, -1333, -1333, -1333, -1333, 359, -1109, 16, -1333,1767 - 288, -1333, 535, 330, -1333, 208, -1333, -237, -1333, -1333,1768 -1 333, 596, -693, -1333, -1333, 9, -933, 372, 2238, -1333,1769 -1 333, -1333, -57, -1333, 110, 36, -194, 1419, 3198, -1333,1770 -1 333, 12, 61, 1486, 1572, -1333, 1265, -1333, -1333, 21,1771 1 950, -1333, 2034, 1735, -1333, -1333, -1333, -611, -1333, 975,1772 9 76, 584, 761, 136, -1333, -1333, -1333, 967, 755, -456,1773 -1 333, -528, -433, 832, -1333, -1333, -922, -915, -420, 1560,1774 10 84, 19, -1333, 388, 467, -359, -203, -145, 706, 811,1775 -1 333, 1028, -1333, 2348, 798, -442, 958, -1333, -1333, 740,1776 -1 333, -233, -1333, 118, -1333, -1333, -1333, -1243, 466, -1333,1777 -1 333, -1333, 1188, -1333, -1, -1333, -1333, -832, -108, -1152,1778 -1 31, 3669, -1333, 4255, -1333, 951, -1333, -125, 120, -178,1779 -1 73, -170, 7, -41, -40, -39, 619, -5, 25, 46,1780 -4, -167, -166, -158, -157, -296, -519, -516, -510, -538,1781 -31 1, -552, -1333, -1333, -514, 1111, 1112, 1114, 1610, 4174,1782 -5 65, -560, -546, -522, -389, -1333, -475, -720, -716, -715,1783 -58 4, -222, -287, -1333, -1333, 47, 102, -51, -1333, 3453,1784 108, -6 02, -1961765 -1267, 4051, 2784, -1267, 133, -1267, 1353, 867, -240, -1267, 1766 -1267, 504, -528, -489, -834, -1001, -1267, -77, 4776, 0, 1767 -1267, 793, 489, 531, 722, 534, 999, 1001, 1005, 1007, 1768 1002, -1267, 711, -584, 4023, -739, -1267, -1267, 606, -227, 1769 -674, -263, -1267, 335, -1267, 382, -963, -1267, -1267, 119, 1770 -1267, -732, -1049, 228, -1267, -1267, -1267, -1267, 54, -1266, 1771 -1267, -1267, -1267, -1267, -1267, -1267, 302, -1050, 23, -1267, 1772 -171, -1267, 482, 277, -1267, 153, -1267, -355, -1267, -1267, 1773 -1267, 538, -612, -1267, -1267, 9, -990, 219, 2319, -1267, 1774 -1267, -1267, -124, -1267, 110, 36, -188, 1213, 3869, -1267, 1775 -1267, 12, 61, 970, 1623, -1267, 1495, -1267, -1267, 21, 1776 1827, -1267, 2153, 1937, -1267, -1267, -1267, -641, -1267, 911, 1777 914, 521, 695, -93, -1267, -1267, -1267, 906, 690, -521, 1778 -1267, -507, -417, -420, -1267, -1267, -914, -941, -147, -54, 1779 1019, 19, -1267, 2311, 381, -366, -185, -122, 649, 745, 1780 -1267, 964, -1267, 2435, 1823, -463, 895, -1267, -1267, 693, 1781 -1267, -225, -1267, 103, -1267, -1267, -1267, -1263, 408, -1267, 1782 -1267, -1267, 1139, -1267, 42, -1267, -1267, -832, -94, -1230, 1783 -162, 2364, -1267, 3117, -1267, 908, -1267, -103, 120, -184, 1784 -183, -178, 7, -40, -39, -36, 1505, 4, 32, 71, 1785 92, -173, -172, -170, -168, -306, -510, -503, -496, -559, 1786 -313, -498, -1267, -1267, -514, 1064, 1072, 1076, 1925, 4399, 1787 -524, -566, -556, -543, -548, -1267, -508, -723, -722, -717, 1788 -582, -166, -229, -1267, -1267, 283, 102, 6, -1267, 3380, 1789 108, -611, -462 1785 1790 }; 1786 1791 … … 1788 1793 positive, shift that token. If negative, reduce the rule which 1789 1794 number is the opposite. If YYTABLE_NINF, syntax error. */ 1790 #define YYTABLE_NINF -52 71795 #define YYTABLE_NINF -529 1791 1796 static const yytype_int16 yytable[] = 1792 1797 { 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, 1798 51, 115, 398, 399, 759, 151, 152, 99, 400, 153, 1799 116, 745, 71, 401, 402, 451, 403, 427, 404, 951, 1800 952, 78, 734, 52, 268, 953, 409, 719, 856, 808, 1801 1051, 724, 1167, 833, 51, 438, 604, 118, 815, 809, 1802 1362, 99, 503, 599, 906, 149, 71, 382, 383, 154, 1803 819, 51, 810, 936, 786, 78, 826, 52, 162, 666, 1804 668, 72, 662, 706, 1152, 187, 1175, 203, 210, 124, 1805 517, 51, 194, 816, 408, 217, 145, 155, 227, 33, 1806 220, 671, 398, 399, 406, 804, 125, 160, 400, 675, 1807 1150, 1151, 805, 401, 402, 72, 403, 807, 404, 806, 1808 473, 475, 108, 108, 910, -239, -239, 115, 424, 848, 1809 65, 1229, 1284, 261, 1177, 115, 156, 204, 267, 272, 1810 98, 474, 846, 846, 865, 33, 723, 262, 1176, 213, 1811 263, 33, 33, 469, 1120, 623, 108, 820, 846, 627, 1812 1443, 823, 33, 259, 65, 736, 151, 152, 310, 149, 1813 153, 160, 1424, 410, 98, 565, 162, 115, 345, 167, 1814 1179, 210, 840, 342, 406, 150, 843, 1234, 372, 951, 1815 952, 98, 900, 108, 146, 953, 1178, 33, -239, 591, 1816 713, 1161, 918, 1285, 326, 190, 187, 187, 98, 566, 1817 154, 98, 177, 340, 162, 1235, 846, 157, 665, 667, 1818 291, 804, 267, 253, 418, 410, 410, 1180, 805, 790, 1819 51, 1157, 847, 847, 479, 806, 410, 162, 155, 58, 1820 117, 1512, 210, 167, 660, 1424, 151, 152, 847, 441, 1821 153, 1314, 939, 1317, 1319, 808, 144, 1158, 437, 474, 1822 310, 177, 429, 879, 177, 809, 432, 1061, 1527, 817, 1823 1050, 596, 51, 58, 999, 819, 330, 156, 810, 99, 1824 272, 716, 728, 1152, 71, 272, 267, 267, 729, 98, 1825 148, 976, 115, 78, 162, 52, 326, 517, 78, 407, 1826 1167, 98, 517, 440, 604, 517, 847, 211, 730, 1000, 1827 221, 804, 481, 469, 461, 1184, 1185, 310, 805, 498, 1828 1074, 649, 657, 987, 1099, 806, 397, 190, 432, 1065, 1829 310, 486, 469, 72, 707, 695, 172, 1152, 434, 886, 1830 469, 706, 1382, 1383, 1100, 281, 568, 1382, 1383, 664, 1831 98, 149, 445, 519, 164, 669, 169, 182, 372, 780, 1832 1454, 115, 98, 1150, 1151, 345, 160, 584, 330, 597, 1833 615, 458, 177, 808, 108, 1097, 795, 1181, 1051, 407, 1834 170, 972, 65, 809, 620, 112, 1158, 470, 620, 1224, 1835 1307, 977, 98, 1003, 202, 657, 810, 583, 43, 44, 1836 434, 588, 988, -294, 624, 282, 477, 1470, 628, 112, 1837 1308, 376, 174, 248, 1384, 267, 816, 842, 164, 1393, 1838 621, 833, 43, 44, 625, 187, 177, 377, 696, 1482, 1839 1166, 213, 372, 177, 112, 1487, 141, 142, 167, 876, 1840 253, 332, 1498, 267, 1500, 310, 310, 43, 44, 267, 1841 752, 620, 555, 556, 254, 1507, 1167, 1152, 78, 251, 1842 1514, 439, 112, 1167, 1138, 1140, 1106, -524, 33, 591, 1843 253, 98, 115, 593, 591, 43, 44, 78, 244, 386, 1844 264, 326, 326, 1082, 1419, 78, 1085, 557, 558, 598, 1845 267, 58, 836, -12, 706, 387, 837, 1118, 267, 1369, 1846 620, 177, 51, 757, 333, 372, 712, 869, 680, 99, 1847 940, 334, 115, 433, 71, 1167, 1223, 658, 177, 389, 1848 604, 118, 177, 78, 310, 52, 115, 998, -448, 310, 1849 491, 310, 310, 492, 1215, 390, 695, 740, 857, 743, 1850 824, 1407, 596, 345, 1511, 190, 486, 470, 326, 416, 1851 486, 971, 213, 330, 330, 1408, 1413, 1414, 551, 552, 1852 519, 391, 519, 72, 1522, 519, 470, 326, 519, -449, 1853 469, 1526, 435, 867, 470, 433, 1000, 392, 1106, 253, 1854 332, 410, 443, 900, 858, 980, 635, 568, 568, 576, 1855 658, 410, 707, 1259, 1260, 310, 915, 897, 1050, 277, 1856 521, 1147, 1148, 859, 108, 620, 345, 1149, 393, 615, 1857 704, 901, 65, 164, 1455, 597, 1343, 597, 797, 1039, 1858 330, 903, 98, 579, 394, 410, 598, 902, 1456, 696, 1859 39, 326, 175, 176, 42, 620, 279, 904, 998, 330, 1860 620, 793, 615, 43, 44, 901, 620, 903, 280, 620, 1861 620, 567, 518, 410, 695, 835, 1195, 1196, 335, 47, 1862 48, 1062, 574, 1063, 695, 620, 548, 267, 575, 371, 1863 849, 832, 549, 550, 1428, 695, 588, 838, 1345, 287, 1864 1164, 839, 841, 864, 1010, 2, 207, 4, 5, 6, 1865 7, 1392, 43, 44, 1164, 1298, 1165, 115, 440, 336, 1866 894, 1300, 337, 330, 1055, 8, 9, 10, 11, 12, 1867 1290, 1299, 838, 676, 338, 78, 1081, 1301, 512, 575, 1868 378, 58, 740, 620, 920, 615, 1093, 371, 398, 399, 1869 706, 712, 712, 680, 400, 803, 33, 598, 1346, 401, 1870 402, 78, 403, 834, 404, 707, 375, 696, 593, 384, 1871 697, 388, 37, 1016, 38, 684, 698, 696, 345, 396, 1872 714, 725, 743, 743, 36, 498, 715, 726, 696, 177, 1873 1428, 486, 213, 408, 739, 1428, 1462, 880, 1463, 1356, 1874 740, 882, 1172, 740, 177, 425, 213, 740, 951, 952, 1875 426, 742, 899, 410, 953, 1428, 673, 177, 448, 47, 1876 48, 1409, 1428, -372, 470, 568, -112, 521, 291, 521, 1877 -112, 406, 521, 965, 620, 521, 983, -3, 1421, 966, 1878 898, 597, 699, -401, 1068, 978, 1068, 919, 1142, 596, 1879 470, 698, 1509, 597, 1460, 47, 48, 591, 1211, 1321, 1880 870, 1460, 410, 1339, 575, 459, 1323, 1324, 1325, 740, 1881 979, 803, 598, 2, 207, 4, 5, 6, 7, 518, 1882 1335, 1332, -295, 502, 518, 1333, 460, 518, 704, 8, 1883 9, 10, 11, 12, 695, 695, 940, 213, 482, 177, 1884 940, 940, 310, 112, 229, 141, 142, 50, 114, 1340, 1885 1480, 1421, 1342, 1508, 71, 740, 43, 44, 740, 873, 1886 33, 410, 1347, 78, 345, 731, 506, 732, 740, 1368, 1887 733, 345, 894, 737, 894, 1162, 797, 1410, 114, 114, 1888 37, 50, 38, 1407, 852, 1429, 115, 511, 36, 695, 1889 695, 740, 50, 418, 653, 410, 1476, 524, 50, 920, 1890 920, 803, 1477, 72, 712, 1213, 50, 1039, 1532, 1217, 1891 115, 310, 50, 598, 575, 50, 553, 554, 50, 1086, 1892 969, 966, 680, 1266, 1267, 561, 1269, 696, 696, 559, 1893 560, 114, 114, 1274, 743, 1276, 479, 332, 410, 1494, 1894 684, 707, 562, 657, 108, 486, 1088, 326, 897, 817, 1895 332, 596, 65, 563, 1305, 50, 332, 410, 50, 112, 1896 -296, 141, 142, 345, 564, 50, 407, 8, 9, 10, 1897 11, 12, 43, 44, 1206, 1352, 1353, 878, 1277, 1278, 1898 1279, 704, 696, 696, 620, 620, 885, 1123, 1106, 410, 1899 887, 1134, 1064, 410, 898, 339, 50, 112, 33, 832, 1900 1402, 966, 310, 1355, 1111, 1382, 1383, 1112, 50, 1113, 1901 43, 44, 108, 1137, 1169, 596, 1230, 1231, 707, 330, 1902 764, 765, 230, 78, 598, 231, 36, 440, 235, 1139, 1903 237, 596, 659, 50, 50, 1294, 585, 246, 1228, 650, 1904 112, 115, -3, 1220, 1363, 410, 894, 1111, 1363, 50, 1905 1112, 894, 1113, 43, 44, 651, 1381, 50, 508, 1389, 1906 920, 58, 652, 72, 766, 767, 50, 654, 267, 50, 1907 655, 834, 695, 772, 773, 656, 114, 680, 661, 695, 1908 695, 695, 258, 546, 547, 2, 207, 4, 5, 6, 1909 7, 114, 685, 686, 1388, 114, 690, 39, 688, 50, 1910 114, 42, -243, 1427, 108, 716, 727, 345, 1431, 741, 1911 43, 44, 470, 50, 50, 749, 798, -14, 546, 800, 1912 50, 811, -15, -297, 854, 861, 855, 50, 1295, 1087, 1913 8, 9, 10, 11, 12, 881, 45, 1453, 658, 883, 1914 888, 931, 695, 899, 47, 48, 908, 1444, 272, 115, 1915 -422, -528, 37, 546, 38, 715, 923, 933, 220, 944, 1916 937, 33, 945, 230, 946, 696, 898, 938, 947, 684, 1917 310, 898, 696, 696, 696, 948, 949, 963, 50, 973, 1918 974, 975, 71, 989, 620, 990, 991, 992, 115, 36, 1919 993, 78, 994, 68, 119, 50, 50, 1086, 995, -410, 1920 -409, 1060, 8, 9, 10, 11, 12, 1018, 1052, 213, 1921 1054, 1058, 50, 893, 1075, 1076, 50, 704, 1077, 1078, 1922 1084, 58, 1521, 1094, 1088, 740, 636, 68, 1521, 1095, 1923 496, 72, 1096, 33, 1098, 696, 1101, 620, 620, 1521, 1924 958, 1103, 50, 1521, 161, 272, 1104, 1405, 1105, 525, 1925 310, 108, 50, 526, 527, 528, 1520, 768, 769, 770, 1926 771, 36, 1169, 1108, 222, 1132, 1153, 1154, 1155, 1156, 1927 50, 78, 108, 1170, 1171, 1173, 50, 529, 1174, 530, 1928 65, 531, 532, 115, 1182, 1188, -3, 398, 399, 1193, 1929 108, 1186, 1086, 400, 704, 1198, 1203, 1201, 401, 402, 1930 260, 403, 230, 404, 235, 567, 440, 410, 491, 1207, 1931 1214, 72, 114, 47, 48, 1212, 1216, 50, 1219, 1088, 1932 1232, 761, 762, 763, 684, 50, 1225, 1236, 1238, 50, 1933 1240, 1241, 1245, 50, 113, 1242, 114, 1243, 114, 1252, 1934 1261, 267, 331, 112, 1262, 141, 239, 1268, 1183, 1271, 1935 260, 350, 108, 1493, 1296, 1289, 43, 44, 620, 1404, 1936 470, 39, 1272, 184, 185, 42, 1273, 211, 221, 406, 1937 1275, 1283, 1302, 114, 43, 44, 1304, 1306, 114, 909, 1938 405, 1310, 240, 115, 1311, 108, 1312, 241, 1315, 58, 1939 230, 1320, 1086, 657, 1322, 423, 1328, 1329, 428, 430, 1940 892, 1338, 410, 161, 1330, 1331, 115, 1087, 47, 48, 1941 1341, 1279, 1348, 115, 1357, 115, 1349, 115, 1169, 1088, 1942 1358, 893, 1359, 1365, 446, 1169, 114, 78, 449, 1366, 1943 450, 151, 152, 1376, 78, 153, 1377, -411, 1380, 457, 1944 1391, 1395, 50, 1397, 50, 68, 1406, 1492, 1399, 1400, 1945 471, 1467, 115, 1467, 115, 1401, 1415, 1333, 1416, 1417, 1946 478, 1418, 1420, 50, 439, 115, 1425, 72, 430, 58, 1947 970, 1492, 1492, 177, 72, 76, 1430, 1169, 50, 162, 1948 1434, 310, 114, 1436, 1432, 108, 78, 1438, 1467, 1440, 1949 1467, 50, 1442, 114, 50, 114, 1492, 1447, 1448, 1449, 1950 1450, 1461, 1087, 372, 1471, 1473, 1486, 1475, 108, 76, 1951 8, 9, 10, 11, 12, 108, 470, 326, 1478, 1479, 1952 1501, 1187, 959, 470, 1506, 1513, 72, 50, 1502, 1515, 1953 1517, 114, 1523, 114, 260, 1530, 163, 114, 589, 1531, 1954 774, 33, 1011, 775, 617, 114, 223, 778, 776, 1110, 1955 195, 777, 1288, 218, 1481, 1394, 228, 622, 50, 50, 1956 1533, 622, 1351, 1218, 407, 1367, 1464, 108, 889, 36, 1957 1192, 890, 1200, 50, 1069, 470, 911, 1073, 792, 39, 1958 1017, 184, 185, 42, 909, 860, 463, 1107, 658, 330, 1959 925, 477, 43, 44, 1350, 131, 1297, 132, 133, 134, 1960 1083, 709, 1087, 39, 0, 184, 185, 42, 43, 44, 1961 471, 782, 0, 742, 934, 410, 43, 44, 595, 783, 1962 596, 47, 48, 784, 350, 58, 47, 48, 0, 471, 1963 909, 0, 58, 353, 163, 0, 0, 471, 0, 0, 1964 0, 0, 892, 0, 410, 0, 373, 0, 50, 0, 1965 47, 48, 0, 0, 0, 691, 0, 0, 430, 0, 1966 50, 0, 1121, 0, 0, 8, 9, 10, 11, 12, 1967 0, 214, 163, 705, 0, 68, 496, 0, 0, 0, 1968 233, 0, 0, 430, 58, 0, 0, 430, 8, 9, 1969 10, 11, 12, 0, 0, 163, 33, 0, 1468, 0, 1970 1468, 112, 636, 141, 142, 0, 447, 442, 114, 0, 1971 1011, 0, 0, 0, 43, 44, 350, 0, 0, 33, 1972 0, 0, 214, 0, 36, 0, 0, 76, 0, 39, 1973 0, 0, 76, 42, 0, 1468, 0, 1468, 0, 50, 1974 720, 50, 43, 44, 0, 721, 0, 36, 114, 1465, 1975 0, 1469, 0, 112, 0, 0, 546, 0, 0, 0, 1976 1111, 785, 0, 1112, 214, 1113, 43, 44, 45, 0, 1977 39, 50, 184, 185, 42, 0, 47, 48, 622, 796, 1978 0, 0, 0, 43, 44, 0, 1497, 0, 1499, 909, 1979 813, 919, 114, 596, 1316, 508, 0, 0, 113, 47, 1980 48, 0, 0, 0, 0, 636, 0, 79, 589, 186, 1981 0, 114, 0, 589, 0, 114, 373, 47, 48, 622, 1982 0, 0, 350, 350, 0, 214, 223, 0, 0, 0, 1983 1528, 0, 1529, 0, 0, 0, 0, 0, 350, 0, 1984 39, 79, 175, 176, 42, 1536, 1537, 39, 909, 909, 1985 0, 42, 0, 43, 44, 0, 691, 0, 0, 753, 1986 43, 44, 114, 214, 758, 0, 0, 471, 214, 0, 1987 525, 216, 0, 0, 526, 527, 528, 0, 224, 375, 1988 0, 0, 0, 497, 0, 0, 801, 243, 596, 0, 1989 373, 0, 76, 471, 47, 48, 350, 0, 529, 114, 1990 530, 0, 531, 1287, 0, 924, 353, 0, 430, 0, 1991 0, 76, 463, 50, 0, 0, 0, 0, 50, 76, 1992 112, 0, 216, 0, 0, 0, 0, 1111, 0, 0, 1993 1112, 705, 1113, 43, 44, 50, 954, 353, 0, 0, 1964 1994 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, 1995 0, 0, 0, 214, 39, 353, 0, 76, 42, 114, 1996 0, 1318, 0, 0, 216, 355, 0, 43, 44, 0, 1997 0, 33, 0, 0, 691, 0, 0, 0, 0, 866, 1998 0, 868, 0, 0, 691, 215, 0, 622, 0, 0, 1999 986, 0, 0, 711, 0, 691, 0, 0, 353, 36, 2000 0, 47, 48, 0, 39, 997, 184, 185, 42, 0, 2001 39, 114, 175, 176, 42, 0, 0, 43, 44, 0, 2002 0, 0, 0, 43, 44, 216, 0, 0, 0, 0, 2003 0, 914, 0, 214, 0, 0, 215, 0, 0, 0, 2004 0, 0, 0, 595, 0, 596, 0, 0, 0, 214, 2005 0, 47, 48, 0, 0, 68, 909, 0, 0, 79, 2006 0, 353, 0, 216, 79, 0, 0, 0, 216, 0, 2007 0, 0, 0, 909, 214, 0, 0, 796, 215, 114, 2008 0, 114, 114, 0, 705, 0, 0, 1066, 8, 9, 2009 10, 11, 12, 0, 0, 412, 39, 0, 184, 185, 2010 42, 0, 420, 0, 353, 353, 0, 0, 0, 43, 2011 44, 0, 0, 1080, 0, 0, 0, 0, 0, 33, 2012 353, 0, 430, 119, 0, 0, 0, 0, 0, 0, 2013 0, 0, 0, 81, 0, 1491, 0, 410, 353, 215, 2014 0, 0, 0, 47, 48, 909, 909, 36, 0, 76, 2015 0, 0, 39, 216, 184, 185, 42, 0, 224, 0, 2016 114, 0, 0, 0, 0, 43, 44, 81, 0, 0, 2017 0, 0, 0, 0, 412, 76, 589, 215, 353, 0, 2018 0, 0, 215, 0, 0, 0, 0, 0, 0, 428, 2019 0, 892, 214, 410, 691, 691, 0, 350, 350, 47, 2020 48, 0, 0, 0, 225, 0, 0, 50, 50, 0, 2021 0, 0, 0, 353, 0, 1168, 0, 114, 114, 0, 2022 214, 0, 0, 0, 79, 214, 0, 0, 0, 0, 2023 0, 573, 39, 216, 184, 185, 42, 0, 355, 577, 2024 0, 0, 580, 79, 0, 43, 44, 0, 0, 691, 2025 691, 79, 0, 0, 0, 114, 353, 8, 9, 10, 2026 11, 12, 0, 0, 0, 0, 353, 215, 0, 355, 2027 0, 266, 223, 0, 216, 0, 0, 353, 1102, 47, 2028 48, 0, 0, 0, 0, 0, 0, 355, 33, 79, 2029 0, 356, 0, 0, 214, 0, 0, 1114, 0, 59, 2030 59, 1114, 412, 0, 0, 0, 420, 0, 214, 0, 2031 0, 0, 0, 0, 50, 114, 36, 0, 0, 0, 2032 705, 39, 0, 143, 114, 42, 0, 0, 0, 497, 2033 355, 0, 0, 59, 43, 44, 0, 76, 50, 50, 2034 0, 0, 0, 0, 0, 0, 0, 215, 1114, 0, 2035 8, 9, 10, 11, 12, 0, 0, 0, 0, 353, 2036 711, 0, 1265, 50, 0, 0, 353, 59, 47, 48, 2037 59, 0, 126, 129, 130, 242, 245, 0, 0, 0, 2038 0, 33, 412, 68, 0, 81, 0, 0, 215, 0, 2039 81, 0, 216, 355, 0, 691, 0, 705, 0, 214, 2040 0, 119, 0, 0, 0, 0, 0, 0, 0, 36, 2041 0, 0, 0, 0, 39, 88, 184, 185, 42, 0, 2042 216, 0, 0, 0, 0, 216, 0, 43, 44, 0, 2043 0, 0, 691, 0, 0, 0, 355, 355, 0, 691, 2044 691, 691, 0, 0, 255, 1114, 256, 0, 0, 88, 2045 350, 350, 355, 1491, 0, 410, 0, 348, 0, 0, 2046 0, 47, 48, 1168, 0, 0, 0, 0, 0, 0, 2047 355, 0, 573, 573, 0, 0, 353, 353, 0, 353, 2048 353, 79, 0, 0, 225, 0, 226, 0, 0, 0, 2049 0, 0, 0, 0, 216, 0, 119, 76, 0, 0, 2050 0, 0, 691, 0, 0, 0, 215, 79, 216, 0, 2051 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2052 0, 59, 0, 0, 0, 0, 395, 0, 0, 0, 2053 0, 353, 353, 0, 215, 455, 414, 415, 0, 215, 2054 0, 419, 0, 421, 422, 355, 0, 0, 0, 0, 2055 81, 59, 0, 0, 0, 871, 0, 0, 0, 874, 2056 0, 0, 0, 0, 356, 1114, 0, 1114, 1114, 81, 2057 0, 350, 0, 363, 0, 0, 0, 81, 0, 0, 2058 0, 8, 9, 10, 11, 12, 0, 0, 355, 214, 2059 0, 0, 0, 0, 0, 356, 119, 0, 355, 216, 2060 0, 0, 353, 0, 224, 0, 0, 0, 215, 355, 2061 0, 0, 33, 356, 0, 81, 0, 0, 0, 1168, 2062 0, 0, 215, 0, 0, 0, 1168, 533, 534, 535, 2063 536, 537, 538, 539, 540, 541, 542, 543, 0, 0, 2064 36, 0, 0, 0, 223, 39, 1114, 184, 185, 42, 2065 0, 0, 0, 0, 0, 0, 356, 0, 43, 44, 2066 0, 544, 0, 0, 0, 76, 0, 88, 0, 79, 2067 637, 0, 88, 0, 0, 0, 0, 353, 1168, 353, 2068 0, 0, 0, 0, 186, 1516, 0, 0, 0, 0, 2069 573, 355, 47, 48, 0, 0, 0, 0, 355, 0, 2070 0, 0, 0, 1114, 1114, 0, 0, 0, 0, 0, 2071 0, 0, 0, 215, 353, 0, 0, 0, 0, 356, 2072 0, 353, 353, 353, 0, 0, 0, 0, 0, 0, 2073 348, 0, 353, 353, 0, 0, 0, 0, 0, 0, 2074 0, 1445, 0, 0, 0, 76, 0, 0, 0, 0, 2056 2075 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, 2076 0, 0, 356, 356, 0, 0, 226, 0, 0, 0, 2077 0, 214, 0, 0, 0, 0, 0, 0, 356, 0, 2078 718, 59, 722, 0, 353, 0, 0, 0, 0, 216, 2079 0, 0, 0, 0, 0, 0, 356, 0, 0, 0, 2080 0, 1495, 0, 412, 0, 0, 0, 81, 355, 355, 2081 1503, 355, 355, 0, 0, 0, 0, 0, 0, 168, 2082 0, 173, 348, 0, 179, 180, 181, 0, 183, 79, 2083 0, 0, 88, 81, 0, 0, 356, 0, 0, 0, 2084 0, 0, 234, 0, 0, 0, 363, 0, 0, 0, 2085 0, 88, 0, 353, 249, 250, 0, 0, 0, 88, 2086 0, 0, 0, 355, 355, 0, 0, 0, 214, 0, 2087 0, 356, 0, 0, 0, 0, 0, 363, 1124, 0, 2088 0, 0, 0, 0, 0, 348, 0, 0, 0, 0, 2089 0, 0, 0, 0, 1135, 363, 0, 88, 0, 0, 2090 0, 76, 0, 215, 0, 0, 0, 0, 76, 0, 2091 0, 0, 0, 0, 356, 787, 788, 0, 0, 0, 2092 0, 0, 0, 0, 356, 0, 853, 0, 348, 348, 2093 225, 0, 0, 0, 355, 356, 0, 0, 363, 0, 2094 0, 0, 818, 0, 348, 821, 822, 0, 825, 0, 2095 827, 828, 0, 0, 0, 829, 830, 0, 0, 0, 2096 76, 0, 0, 8, 9, 10, 11, 12, 0, 412, 2097 0, 216, 0, 0, 0, 905, 224, 907, 0, 0, 2098 0, 455, 0, 0, 0, 0, 0, 0, 0, 0, 2099 0, 0, 0, 0, 33, 81, 0, 79, 0, 0, 2100 0, 363, 348, 0, 0, 0, 0, 0, 1221, 355, 2101 0, 355, 0, 0, 0, 0, 0, 356, 0, 0, 2102 0, 0, 36, 0, 356, 0, 0, 39, 0, 184, 2103 185, 42, 0, 0, 0, 0, 0, 0, 0, 0, 2104 43, 44, 0, 0, 363, 363, 355, 0, 0, 0, 2105 0, 0, 0, 355, 355, 355, 0, 0, 0, 0, 2106 363, 0, 0, 0, 355, 355, 266, 0, 216, 0, 2107 0, 0, 0, 0, 47, 48, 0, 79, 363, 0, 2108 0, 0, 0, 0, 0, 215, 0, 0, 0, 88, 2109 0, 956, 957, 0, 0, 0, 0, 0, 0, 0, 2110 0, 0, 0, 0, 0, 0, 0, 0, 587, 0, 2111 594, 0, 0, 0, 0, 88, 355, 0, 363, 0, 2112 0, 618, 619, 0, 0, 128, 128, 128, 0, 0, 2113 0, 0, 0, 0, 356, 356, 0, 356, 356, 0, 2114 0, 0, 0, 0, 0, 0, 637, 0, 0, 0, 2115 0, 0, 1021, 363, 0, 81, 0, 0, 0, 0, 2116 0, 59, 8, 9, 10, 11, 12, 13, 14, 15, 2117 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2118 26, 27, 215, 348, 0, 355, 0, 0, 0, 356, 2119 356, 0, 1070, 33, 0, 0, 363, 128, 0, 128, 2120 0, 0, 0, 0, 0, 0, 363, 0, 0, 0, 2121 0, 0, 226, 0, 0, 0, 0, 363, 0, 0, 2122 0, 36, 0, 0, 276, 0, 0, 0, 0, 59, 2123 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 2124 79, 0, 0, 0, 0, 0, 0, 1071, 0, 637, 2080 2125 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, 2126 356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2127 0, 0, 0, 0, 0, 0, 0, 88, 996, 128, 2128 0, 8, 9, 10, 11, 12, 0, 128, 0, 128, 2129 128, 0, 79, 0, 128, 0, 128, 128, 0, 363, 2130 0, 0, 225, 348, 348, 0, 363, 0, 0, 0, 2131 283, 284, 33, 285, 0, 0, 0, 0, 0, 0, 2132 0, 59, 0, 81, 0, 0, 0, 0, 0, 0, 2133 0, 0, 0, 0, 0, 356, 0, 356, 0, 286, 2134 36, 0, 0, 1021, 0, 287, 0, 0, 0, 288, 2135 0, 0, 289, 290, 291, 292, 293, 294, 43, 44, 2136 0, 295, 296, 0, 0, 0, 128, 0, 0, 0, 2137 0, 0, 356, 0, 0, 0, 0, 0, 0, 356, 2138 356, 356, 0, 0, 297, 0, 378, 0, 0, 0, 2139 356, 356, 344, 48, 299, 300, 301, 302, 0, 0, 2140 0, 0, 1197, 81, 0, 0, 0, 0, 0, 0, 2141 0, 166, 0, 0, 0, 0, 363, 363, 0, 363, 2142 363, 0, 0, 0, 0, 0, 0, 0, 219, 0, 2143 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 2144 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, 2145 0, 283, 284, 0, 285, 1264, 912, 0, 913, 0, 2146 0, 0, 0, 0, 0, 916, 917, 59, 59, 0, 2147 922, 363, 363, 0, 0, 166, 0, 0, 0, 273, 2148 286, 0, 0, 928, 0, 0, 287, 0, 932, 59, 2149 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2150 44, 0, 295, 296, 0, 0, 0, 59, 166, 0, 2151 0, 356, 0, 0, 0, 594, 0, 0, 369, 0, 2152 0, 374, 0, 0, 0, 297, 0, 378, 0, 0, 2153 1286, 0, 0, 47, 48, 299, 300, 301, 302, 0, 2154 0, 0, 363, 0, 0, 0, 779, 0, 0, 0, 2155 0, 0, 0, 0, 0, 0, 348, 348, 0, 81, 2156 0, 0, 0, 0, 59, 0, 81, 0, 0, 59, 2157 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158 0, 0, 219, 0, 226, 0, 0, 0, 0, 0, 2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2160 166, 0, 59, 0, 0, 88, 0, 0, 1006, 0, 2161 1007, 1008, 1009, 0, 0, 0, 0, 363, 81, 363, 2162 0, 0, 0, 0, 0, 374, 0, 0, 0, 1053, 2163 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 2164 0, 0, 0, 1059, 0, 0, 0, 0, 0, 0, 2165 0, 0, 0, 0, 363, 0, 0, 522, 0, 0, 2166 0, 363, 363, 363, 0, 0, 0, 0, 128, 128, 2167 166, 0, 363, 363, 0, 0, 0, 348, 0, 0, 2168 0, 0, 1079, 0, 0, 88, 0, 0, 0, 0, 2169 0, 0, 0, 0, 0, 128, 0, 0, 128, 128, 2170 0, 128, 59, 128, 128, 592, 0, 0, 128, 128, 2171 616, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2172 0, 0, 0, 0, 363, 59, 1109, 0, 0, 0, 2173 0, 1119, 59, 0, 0, 0, 1122, 0, 0, 0, 2174 0, 1126, 0, 0, 0, 0, 1128, 0, 1129, 1130, 2175 0, 0, 1133, 0, 0, 0, 0, 0, 0, 0, 2176 0, 1145, 0, 0, 0, 0, 0, 0, 0, 0, 2177 0, 0, 0, 0, 0, 0, 0, 1159, 1160, 0, 2178 0, 0, 0, 0, 59, 166, 166, 0, 0, 0, 2179 0, 369, 0, 363, 0, 0, 0, 0, 0, 0, 2180 0, 0, 0, 1189, 0, 0, 1191, 0, 0, 0, 2181 0, 0, 522, 0, 0, 0, 8, 9, 10, 11, 2182 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2183 22, 23, 24, 25, 26, 27, -298, 0, 0, 0, 2184 708, 88, 0, 0, 128, 128, 0, 33, 88, 1205, 2185 0, 0, 166, 0, 0, 1209, 1210, 0, 0, 0, 2186 0, 0, 0, 0, 522, 0, 522, 0, 0, 522, 2187 0, 166, 522, 0, 1226, 36, 0, 0, 0, 1233, 2188 0, 0, 0, 369, 1237, 0, -298, 0, 0, 0, 2189 0, 0, 0, 0, 0, 1244, 0, 0, 0, 0, 2190 88, 0, 0, 0, 0, 0, 0, 0, 1251, 0, 2191 1253, 1254, 1255, 1256, 0, 0, 0, 212, 0, 0, 2192 0, 0, 0, 0, 0, 1263, 232, 1159, 236, 0, 2193 238, 173, 0, 0, 0, 166, 0, 247, 0, 0, 2194 0, 0, 0, 0, 0, 0, 369, 0, 0, 799, 2195 0, 0, 0, 0, 0, 0, 0, 0, 0, 1291, 2196 1292, 0, 0, 0, 0, 0, 0, 0, 212, 0, 2197 236, 238, 247, 0, 0, 592, 0, 0, 0, 0, 2198 592, 0, 0, 0, 0, 0, 0, 0, 0, 369, 2199 369, 0, 0, 0, 0, 128, 0, 0, 0, 0, 2200 128, 0, 0, 0, 0, 369, 0, 0, 0, 0, 2201 212, 0, 0, 1326, 1327, 0, 0, 0, 0, 0, 2202 0, 0, 0, 1337, 0, 0, 0, 0, 0, 0, 2203 0, 0, 0, 0, 0, 0, 0, 522, 8, 9, 2163 2204 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, 2205 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2206 28, 29, 30, 369, 0, 921, 0, 0, 0, 33, 2207 0, 212, 0, 236, 238, 247, 0, 158, 0, 0, 2208 0, 0, 0, 0, 0, 1372, 0, 1373, 1374, 1375, 2209 0, 0, 0, 0, 0, 0, 0, 36, 708, 1379, 2210 0, 0, 39, 0, 40, 41, 42, 1390, 0, 212, 2211 0, 0, 0, 0, 212, 43, 44, 0, 0, 0, 2212 0, 0, 0, 0, 252, 0, 0, 0, 0, 495, 2213 0, 0, 1411, 1412, 257, 0, 0, 0, 0, 0, 2214 0, 45, 0, 46, 0, 0, 0, 0, 0, 47, 2215 48, 324, 0, 0, 0, 128, 616, 0, 0, 0, 2216 0, 346, 0, 0, 0, 0, 0, 0, 0, 0, 2217 0, 0, 381, 381, 0, 0, 0, 1451, 1452, 0, 2218 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2219 1457, 0, 0, 0, 0, 0, 0, 1457, 0, 212, 2220 0, 0, 0, 385, 236, 238, 0, 0, 0, 0, 2221 0, 0, 247, 0, 0, 0, 0, 0, 0, 0, 2222 0, 0, 0, 0, 0, 0, 417, 0, 0, 0, 2223 1490, 0, 0, 0, 1496, 0, 0, 0, 0, 0, 2224 431, 0, 0, 324, 369, 0, 0, 0, 0, 436, 2225 0, 708, 0, 0, 212, 0, 0, 0, 0, 444, 2226 0, 0, 1518, 0, 1519, 0, 522, 476, 0, 0, 2227 0, 0, 212, 0, 0, 0, 0, 212, 0, 212, 2228 0, 0, 0, 128, 462, 0, 0, 0, 0, 472, 2229 0, 166, 1534, 1535, 0, 212, 0, 0, 212, 212, 2230 1538, 1539, 480, 0, 0, 0, 212, 0, 490, 0, 2231 494, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2232 212, 0, 0, 0, 0, 0, 0, 212, 0, 523, 2175 2233 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, 2234 0, 0, 0, 592, 8, 9, 10, 11, 12, 13, 2235 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2236 24, 25, 26, 27, 369, 369, 28, 29, 30, 0, 2237 582, 0, 0, 0, 586, 33, 0, 0, 0, 0, 2238 0, 0, 381, 0, 0, 0, 0, 0, 0, 0, 2206 2239 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, 2240 0, 0, 629, 36, 0, 0, 630, 631, 0, 632, 2241 208, 41, 0, 0, 0, 0, 643, 644, 0, 645, 2242 646, 522, 647, 0, 648, 0, 0, 0, 0, 0, 2243 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 2244 0, 582, 0, 0, 0, 0, 0, 0, 0, 663, 2245 0, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2246 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 2247 0, 212, 0, 674, 0, 702, 0, 0, 0, 0, 2248 0, 0, 0, 0, 0, 0, 0, 708, 0, 0, 2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 700, 2250 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 2251 462, 0, 0, 0, 735, 0, 0, 0, 0, 0, 2252 0, 0, 0, 0, 0, 0, 751, 0, 219, 0, 2253 0, 0, 735, 0, 0, 735, 341, 364, 0, 0, 2254 212, 0, 0, 0, 0, 0, 738, 0, 760, 0, 2255 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 2256 0, 756, 0, 0, 708, 0, 0, 0, 0, 413, 2257 0, 0, 0, 0, 0, 495, 413, 0, 789, 0, 2258 0, 0, 0, 0, 0, 346, 0, 0, 0, 751, 2259 0, 0, 0, 0, 0, 0, 0, 0, 781, 0, 2260 0, 0, 0, 0, 0, 0, 0, 791, 0, 0, 2261 0, 0, 0, 0, 0, 0, 0, 369, 369, 0, 2262 0, 0, 0, 0, 0, 219, 0, 812, 0, 0, 2263 0, 0, 0, 0, 212, 850, 0, 0, 0, 0, 2264 0, 0, 0, 381, 0, 212, 0, 0, 413, 0, 2215 2265 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, 2266 0, 0, 212, 0, 0, 851, 0, 8, 9, 10, 2267 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2268 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2269 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 2270 0, 884, 0, 0, 0, 413, 0, 0, 0, 891, 2271 0, 0, 0, 413, 578, 0, 413, 581, 0, 926, 2272 0, 0, 0, 0, 364, 0, 36, 0, 608, 0, 2273 0, 39, 0, 208, 41, 42, 0, 0, 369, 0, 2274 252, 751, 0, 950, 43, 44, 0, 626, 0, 0, 2275 0, 929, 930, 960, 0, 0, 0, 0, 0, 967, 2218 2276 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, 2277 45, 0, 271, 212, 0, 0, 413, 0, 47, 48, 2278 413, 0, 0, 964, 0, 0, 0, 0, 968, 0, 2279 0, 0, 0, 0, 0, 522, 0, 522, 0, 984, 2280 985, 0, 0, 212, 0, 0, 0, 0, 0, 0, 2281 364, 0, 0, 0, 0, 346, 0, 0, 0, 0, 2230 2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2231 274, 505, 164, 0, 0, 0, 0, 0, 0, 0, 2232 0, 779, 0, 0, 0, 0, 0, 0, 0, 0, 2233 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2234 0, 0, 0, 0, 954, 955, 0, 0, 0, 0, 2235 810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2236 0, 0, 0, 0, 590, 126, 0, 0, 0, 0, 2237 0, 411, 0, 126, 0, 126, 126, 0, 0, 0, 2238 126, 0, 126, 126, 0, 367, 367, 0, 849, 0, 2239 0, 210, 0, 0, 463, 2, 205, 4, 5, 6, 2240 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2241 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 2242 0, 26, 27, 28, 882, 0, 0, 0, 411, 0, 2243 31, 0, 889, 0, 0, 0, 411, 576, 0, 411, 2244 579, 0, 520, 0, 0, 0, 0, 362, 0, 0, 2245 0, 606, 126, 0, 0, 0, 0, 0, 34, 0, 2246 35, 0, 36, 250, 0, 38, 39, 0, 0, 0, 2247 624, 0, 0, 0, 927, 928, 0, 0, 0, 505, 2248 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 2249 505, 505, 505, 505, 505, 505, 505, 0, 0, 411, 2250 1069, 0, 0, 411, 0, 0, 962, -3, 706, 0, 2251 0, 966, 8, 9, 10, 11, 12, 13, 14, 15, 2252 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2253 -298, 0, 0, 362, 0, 0, 0, 0, 0, 0, 2254 0, 31, 0, 322, 0, 0, 0, 0, 0, 217, 2255 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 2256 0, 0, 0, 0, 379, 379, 0, 0, 0, 34, 2257 0, 999, 0, 0, 0, 0, 0, 0, 1000, 411, 2258 -298, 0, 362, 0, 0, 706, 0, 0, 0, 0, 2259 0, 1002, 0, 1003, 0, 0, 0, 0, 0, 0, 2260 0, 0, 0, 0, 0, 0, 1013, 0, 0, 0, 2261 0, 0, 1017, 0, 0, 0, 0, 0, 0, 505, 2262 0, 411, 0, 0, 1054, 362, 0, 1055, 0, 0, 2263 0, 0, 0, 0, 0, 322, 0, 0, 367, 367, 2264 0, 0, 210, 0, 0, 0, 217, 0, 0, 0, 2265 0, 0, 0, 0, 0, 1195, 0, 0, 0, 474, 2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 2267 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2268 505, 0, 0, 0, 0, 0, 0, 792, 362, 0, 2269 0, 0, 0, 0, 0, 0, 0, 606, 0, 606, 2270 606, 0, 0, 0, 0, 0, 606, 0, 0, 0, 2271 505, 0, 0, 0, 0, 0, 829, 362, 0, 0, 2272 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 2273 0, 362, 362, 0, 0, 1125, 0, 0, 0, 0, 2274 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 2275 0, 0, 411, 870, 126, 126, 411, 873, 0, 367, 2276 0, 0, 0, 875, 0, 0, 0, 0, 0, 0, 2277 0, 0, 0, 0, 379, 0, 0, 0, 0, 0, 2278 0, 126, 411, 1284, 126, 126, 0, 126, 0, 126, 2279 126, 0, 0, 0, 126, 126, 1188, 0, 0, 0, 2280 0, 0, 0, 0, 0, 362, 606, 0, 0, 0, 2281 0, 0, 0, 0, 0, 0, 520, 0, 520, 0, 2282 0, 0, 0, 0, 505, 0, 0, 0, 0, 0, 2283 1200, 0, 0, 0, 0, 1202, 0, 0, 0, 0, 2284 362, 0, 0, 1206, 411, 411, 0, 0, 0, 0, 2285 0, 0, 0, 520, 0, 520, 0, 0, 0, 0, 2286 0, 0, 0, 0, 0, 0, 0, 700, 0, 0, 2287 505, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 2288 0, 0, 164, 0, 0, 0, 0, 411, 1244, 0, 2289 0, 1245, 0, 1246, 0, 0, 0, 0, 0, 0, 2290 0, 0, 505, 606, 0, 606, 733, 0, 1255, 1256, 2291 0, 0, 0, 0, 505, 606, 0, 0, 749, 0, 2292 0, 0, 0, 0, 733, 0, 0, 733, 1268, 0, 2293 126, 126, 1141, 0, 0, 8, 9, 10, 11, 12, 2294 758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2295 0, 0, 0, 505, 0, 0, 0, 0, 0, 0, 2296 0, 0, 281, 282, 31, 283, 0, 0, 0, 0, 2297 787, 0, 0, 0, 1307, 0, 0, 344, 0, 0, 2298 0, 749, 1311, 0, 0, 0, 362, 0, 0, 0, 2299 0, 284, 34, 362, 411, 0, 411, 285, 0, 0, 2300 411, 286, 0, 0, 287, 288, 289, 290, 291, 292, 2301 41, 42, 0, 293, 294, 0, 0, 0, 0, 0, 2302 0, 606, 606, 0, 0, 0, 0, 848, 0, 505, 2303 0, 0, 0, 0, 0, 379, 295, 0, 376, 0, 2304 0, 0, 0, 0, 1142, 46, 297, 298, 299, 300, 2305 0, 0, 1358, 0, 1359, 0, 411, 0, 0, 0, 2283 0, 0, 522, 0, 522, 212, 0, 0, 0, 0, 2284 0, 0, 0, 0, 0, 0, 212, 0, 1001, 0, 2285 0, 0, 0, 0, 1013, 1002, 413, 0, 381, 364, 2286 0, 166, 0, 0, 0, 0, 0, 0, 1004, 0, 2287 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2288 0, 0, 0, 1015, 0, 0, 0, 346, 0, 1019, 2289 0, 0, 0, 0, 346, 0, 0, 0, 413, 0, 2290 0, 1056, 364, 0, 1057, 0, 0, 0, 0, 0, 2291 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 2293 0, 0, 0, 0, 324, 0, 0, 0, 0, 0, 2294 0, 0, 0, 0, 0, 0, 413, 413, 0, 0, 2306 2295 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, 2296 0, 381, 0, 0, 794, 364, 960, 0, 0, 735, 2297 0, 0, 0, 0, 608, 0, 608, 608, 0, 0, 2298 0, 0, 0, 608, 0, 0, 0, 0, 0, 1131, 2299 0, 0, 0, 831, 364, 0, 0, 0, 0, 364, 2300 1146, 0, 0, 0, 0, 0, 0, 0, 364, 364, 2301 0, 0, 1127, 0, 0, 0, 0, 212, 0, 0, 2302 381, 0, 1163, 0, 364, 0, 0, 0, 0, 413, 2303 872, 0, 0, 413, 875, 0, 0, 960, 960, 505, 2304 877, 507, 510, 0, 0, 0, 0, 0, 0, 0, 2305 0, 513, 514, 0, 0, 0, 0, 1194, 0, 413, 2306 0, 0, 0, 0, 0, 0, 507, 507, 0, 0, 2307 0, 0, 0, 1190, 0, 0, 0, 0, 0, 0, 2308 0, 0, 364, 608, 0, 0, 0, 0, 0, 0, 2312 2309 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 1 433, 965, 1435, 1437, 1439, 0, 0, 0, 0, 0,2316 0, 0, 0, 0, 0, 0, 411, 0, 411, 0,2317 0, 0, 0, 411, 0, 0,0, 0, 0, 0,2318 0, 0, 606, 0, 0, 0, 0, 0, 0, 0,2319 0, 982, 983, 1470, 0, 1472, 0, 1206, 0, 0,2320 0, 0, 0, 0, 0, 411, 1220, 344, 0, 0,2321 0, 0, 0, 1483, 0, 0, 0, 0, 0, 0,2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 362,2323 0, 0, 0, 0, 0, 2324 0, 126, 0, 0, 0, 0, 1011, 0, 0, 0,2325 379, 0, 0, 0, 0, 8, 9, 10, 11, 12,2310 0, 507, 0, 0, 0, 0, 0, 1202, 0, 0, 2311 0, 960, 1204, 0, 212, 0, 0, 364, 0, 0, 2312 1208, 413, 413, 0, 0, 0, 0, 0, 0, 0, 2313 850, 0, 0, 0, 0, 0, 507, 0, 0, 0, 2314 0, 0, 0, 0, 0, 1249, 1250, 0, 0, 0, 2315 0, 0, 0, 0, 1239, 0, 0, 0, 0, 0, 2316 0, 0, 0, 0, 413, 1246, 0, 0, 1247, 0, 2317 1248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2318 608, 0, 608, 0, 0, 1257, 1258, 0, 0, 0, 2319 0, 0, 608, 0, 0, 0, 0, 0, 0, 0, 2320 0, 0, 0, 0, 0, 1270, 0, 0, 0, 0, 2321 0, 0, 0, 0, 0, -523, 0, 0, 1, 2, 2322 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2326 2323 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, 2324 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2325 31, 1309, 0, 32, 0, 0, 33, 34, 0, 1313, 2326 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 2327 364, 413, 0, 413, 0, 0, 0, 413, 0, 0, 2328 0, 35, 0, 0, 36, 0, 37, 1354, 38, 39, 2329 735, 40, 41, 42, 0, 0, 0, 0, 608, 608, 2330 0, 0, 43, 44, 507, 507, 507, 507, 507, 507, 2331 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 2332 507, 507, 0, 0, 0, 0, 0, 0, 45, 1360, 2333 46, 1361, 0, 413, 0, 0, 47, 48, 0, 0, 2334 0, 0, 0, 0, 0, 0, 0, 1370, 0, 1371, 2335 0, 0, 413, 1125, 0, 0, 0, 0, 0, 0, 2336 0, 0, 364, 0, 1378, 212, 0, 0, 413, 1136, 2337 0, 608, 608, 1141, 0, 0, 0, 0, 0, 1396, 2338 1398, 0, 0, 364, 364, 0, 0, 0, 0, 0, 2339 1403, 0, 0, 1208, 8, 9, 10, 11, 12, 13, 2340 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2341 24, 25, 26, 27, -299, 1426, 0, 0, 0, 0, 2342 0, 0, 0, 0, 1433, 33, 0, 1435, 0, 1437, 2343 1439, 1441, 0, 0, 0, 0, 0, 0, 0, 0, 2344 0, 0, 0, 413, 507, 413, 0, 0, 0, 0, 2345 413, 0, 0, 36, 0, 0, 0, 0, 0, 608, 2346 0, 0, 0, 0, -299, 0, 0, 0, 0, 0, 2347 1472, 0, 1474, 0, 1208, 0, 0, 0, 0, 0, 2348 0, 0, 413, 1222, 0, 0, 0, 0, 0, 0, 2349 1485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2350 0, 0, 0, 0, 324, 507, 364, 1, 2, 207, 2333 2351 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2334 2352 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, 2353 24, 25, 26, 27, 0, 507, 28, 29, 30, 31, 2354 0, 0, 32, 283, 284, 33, 1022, 1023, 0, 1024, 2355 0, 0, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 2356 0, 0, 0, 1033, 0, 0, 0, 1034, 1035, 0, 2357 35, 0, 286, 36, 0, 37, 0, 38, 1036, 0, 2358 40, 41, 288, 364, 0, 289, 290, 291, 292, 293, 2359 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2337 2360 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, 2361 0, 0, 0, 0, 0, 0, 0, 297, 0, 298, 2362 0, 0, 172, 0, 0, 47, 48, 299, 300, 301, 2363 302, 0, 0, 0, 0, 1037, 364, 364, 0, 0, 2364 -134, 0, 0, 0, 0, 0, 0, 0, 0, 507, 2365 1, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2366 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2367 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2368 29, 30, 31, 0, 0, 32, 283, 284, 33, 285, 2369 0, 0, 0, 0, 0, 507, 0, 0, 0, 0, 2370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2371 0, 0, 0, 0, 0, 286, 36, 0, 37, 0, 2372 38, 287, 0, 40, 41, 288, 0, 507, 289, 290, 2373 291, 292, 293, 294, 43, 44, 0, 295, 296, 507, 2374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 2376 297, 0, 298, 0, 0, 0, 0, 0, 47, 48, 2377 299, 300, 301, 302, 0, 0, 0, 0, 507, 0, 2378 0, 0, 0, -134, 0, 0, 0, 0, 0, 1, 2379 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 2380 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2381 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2382 30, 31, 0, 0, 32, 0, 0, 33, 34, 0, 2383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2384 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 2385 0, 0, 35, 0, 507, 36, 0, 37, 0, 38, 2386 39, 0, 40, 41, 42, 0, 0, 0, 0, 0, 2387 413, 413, 0, 43, 44, 0, 0, 0, 0, 0, 2388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2389 0, 0, 0, 0, 0, 413, 0, 0, 0, 45, 2390 0, 46, 0, 0, 0, -527, 0, 47, 48, 0, 2391 0, 0, 0, 507, 507, 1, 2, 207, 4, 5, 2346 2392 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2347 2393 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2348 362, 0, 26, 27, 28, 29, 0, 0, 30, 0, 2349 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 2350 0, 0, 0, 958, 0, 0, 0, 0, 0, 0, 2351 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 2352 0, 35, 848, 36, 0, 0, 38, 39, 0, 0, 2353 0, 0, 0, 0, 0, 0, 0, 1247, 1248, 0, 2354 2, 205, 4, 5, 6, 7, 8, 9, 10, 11, 2355 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2356 22, 23, 24, 25, 0, 44, 26, 27, 28, 411, 2357 0, 45, 46, 0, 0, 31, 0, 0, 0, 0, 2358 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2359 0, 0, 0, 411, 411, 0, 0, 0, 0, 0, 2360 0, 0, 0, 34, 0, 35, 0, 36, 0, 0, 2361 38, 39, 0, 0, 0, 0, 0, 0, 411, 0, 2362 0, 0, 1, 2, 205, 4, 5, 6, 7, 8, 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, 2394 26, 27, 0, 0, 28, 29, 30, 31, 0, 0, 2395 32, 283, 284, 33, 285, 0, 0, 0, 0, 0, 2371 2396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2372 2397 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, 2398 286, 36, 0, 37, 0, 38, 287, 0, 40, 41, 2399 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2400 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2402 0, 0, 0, 0, 0, 297, 0, 298, 0, 0, 2403 0, 0, 0, 47, 48, 299, 300, 301, 302, 0, 2404 0, 0, 0, 0, 0, 2, 207, 4, 5, 6, 2376 2405 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, 2406 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2407 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2408 283, 284, 33, 285, 0, 0, 0, 0, 0, 0, 2409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2410 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, 2411 36, 0, 37, 0, 38, 287, 0, 40, 41, 288, 2412 0, 507, 289, 290, 291, 292, 293, 294, 43, 44, 2413 0, 295, 296, 0, 0, 0, 0, 0, 507, 0, 2414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2415 0, 0, 0, 0, 297, 0, 343, 0, 0, 0, 2416 0, 750, 344, 48, 299, 300, 301, 302, 2, 207, 2390 2417 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2391 2418 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, 2419 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2420 0, 0, 0, 283, 284, 33, 285, 0, 0, 0, 2421 507, 507, 0, 0, 0, 0, 0, 0, 0, 0, 2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2423 0, 0, 286, 36, 0, 37, 0, 38, 287, 0, 2424 40, 41, 288, 0, 0, 289, 290, 291, 292, 293, 2425 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2427 0, 0, 0, 0, 0, 0, 0, 297, 0, 343, 2428 0, 0, 0, 0, 750, 47, 48, 299, 300, 301, 2429 302, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2418 2430 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, 2431 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2432 29, 30, 0, 0, 0, 0, 283, 284, 33, 285, 2430 2433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431 2434 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, 2435 0, 0, 0, 0, 0, 286, 36, 0, 37, 0, 2436 38, 287, 0, 40, 41, 288, 0, 0, 289, 290, 2437 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2442 2438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2443 2439 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, 2440 297, 0, 343, 0, 0, 0, 0, 0, 344, 48, 2441 299, 300, 301, 302, 2, 207, 4, 5, 6, 7, 2442 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2443 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2444 0, 0, 28, 29, 30, 0, 0, 0, 0, 283, 2445 284, 33, 285, 0, 0, 0, 0, 0, 0, 0, 2447 2446 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, 2447 0, 0, 0, 0, 0, 0, 0, 0, 286, 36, 2448 0, 37, 0, 38, 287, 0, 208, 41, 288, 0, 2449 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2450 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2452 0, 0, 0, 297, 0, 981, 0, 0, 0, 0, 2453 0, 982, 48, 299, 300, 301, 302, 2, 207, 4, 2454 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2455 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2456 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2457 0, 0, 283, 284, 33, 285, 0, 0, 0, 0, 2454 2458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2455 2459 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, 2460 0, 286, 36, 0, 37, 0, 38, 287, 0, 208, 2461 41, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2462 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2464 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2465 0, 0, 0, 0, 47, 48, 299, 300, 301, 302, 2466 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2467 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2468 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2469 29, 30, 31, 0, 0, 32, 0, 0, 33, 34, 2459 2470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2460 2471 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, 2472 0, 0, 0, 35, 0, 0, 36, 0, 37, 0, 2473 38, 39, 0, 40, 41, 42, 0, 0, 0, 0, 2474 0, 0, 0, 0, 43, 44, 0, 0, 0, 0, 2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2477 45, 0, 46, 0, 0, 0, 0, 0, 47, 48, 2478 206, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2479 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2480 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2481 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 2482 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2483 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2484 27, 0, 0, 28, 29, 30, 36, 0, 37, 0, 2485 38, 39, 33, 208, 41, 42, 0, 0, 0, 0, 2486 0, 0, 0, 0, 43, 44, 0, 0, 0, 0, 2487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2488 36, 0, 0, 0, 0, 0, 0, 40, 41, 0, 2489 45, 0, 209, 0, 0, 0, 0, 0, 47, 48, 2490 1, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2491 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2492 21, 22, 23, 24, 25, 26, 27, -298, 0, 28, 2493 29, 30, 31, 0, 0, 32, 0, 0, 33, 0, 2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2497 38, 0, 0, 40, 41, 0, 0, -298, 1, 2, 2498 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2499 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2500 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2501 31, 0, 46, 32, 0, 0, 33, 0, 47, 48, 2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504 0, 0, 0, 0, 36, 0, 37, 0, 38, 0, 2505 0, 40, 41, 206, 2, 207, 4, 5, 6, 7, 2506 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2507 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2508 0, 0, 28, 29, 30, 0, 0, 0, 0, 0, 2509 46, 33, 0, 0, 0, 0, 47, 48, 0, 1143, 2510 0, 0, 8, 9, 10, 11, 12, 0, 0, 0, 2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2512 0, 37, 0, 38, 0, 0, 208, 41, 0, 0, 2513 0, 283, 284, 33, 285, 0, 0, 0, 0, 0, 2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2516 286, 36, 0, 0, 0, 209, 287, 0, 0, 0, 2517 288, 47, 48, 289, 290, 291, 292, 293, 294, 43, 2518 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2520 0, 0, 0, 0, 0, 297, 0, 378, 0, 0, 2521 0, 0, 0, 1144, 48, 299, 300, 301, 302, 2, 2522 207, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2523 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2524 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2525 0, 0, 0, 0, 0, 0, 33, 0, 0, 8, 2526 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2527 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2528 0, 28, 29, 30, 36, 0, 37, 0, 38, 39, 2529 33, 208, 41, 42, 0, 0, 0, 0, 0, 0, 2530 0, 0, 43, 44, 0, 0, 0, 0, 0, 0, 2531 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2532 0, 0, 0, 0, 0, 40, 41, 0, 45, 0, 2533 209, 0, 0, 0, 0, 0, 47, 48, 2, 207, 2463 2534 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2464 2535 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,2536 24, 25, 26, 27, 258, 0, 28, 29, 30, 0, 2537 47, 48, 0, 0, 0, 33, 0, 0, 0, 0, 2467 2538 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 2539 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, 2540 0, 0, 0, 36, 0, 37, 0, 38, 0, 0, 2541 40, 41, 0, 2, 207, 4, 5, 6, 7, 8, 2542 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2543 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2544 0, 28, 29, 30, 0, 0, 0, 0, -407, 670, 2545 33, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2546 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2547 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2548 37, 0, 38, 0, 0, 40, 41, 0, 0, 0, 2549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2550 0, 0, 0, 0, 0, 0, 0, 0, 0, 1334, 2551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2552 0, 0, 0, 0, 670, 0, 0, 0, 0, 0, 2553 47, 48, 2, 207, 4, 5, 6, 7, 8, 9, 2554 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2555 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2556 28, 29, 30, 0, 0, 0, 0, 0, 0, 33, 2557 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2558 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2559 26, 27, 0, 0, 28, 29, 30, 36, 0, 37, 2560 0, 38, 0, 33, 40, 41, 0, 0, 0, 0, 2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2562 0, 0, 0, 0, 0, 0, 0, 0, 1336, 0, 2563 0, 36, 0, 0, 0, 0, 0, 0, 40, 41, 2564 0, 0, 0, 670, 0, 0, 0, 0, 0, 47, 2565 48, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2566 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2567 21, 22, 23, 24, 25, 26, 27, 46, 0, 28, 2568 29, 30, 0, 47, 48, 0, 0, 0, 33, 0, 2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2571 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2572 38, 0, 0, 208, 41, 0, 2, 207, 4, 5, 2475 2573 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2476 2574 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, 2575 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2576 0, 0, 271, 33, 0, 0, 0, 0, 47, 48, 2483 2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2484 2578 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 2 6, 27, 28, 29, 0, 0, 30, 0, 0, 31,2490 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,2579 0, 36, 0, 37, 0, 38, 0, 0, 40, 41, 2580 0, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2581 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2582 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2583 29, 30, 0, 0, 0, 0, 0, 670, 33, 0, 2584 0, 0, 0, 47, 48, 0, 0, 0, 0, 0, 2491 2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2492 0, 0, 0, 0, 33, 0, 0, 34, 0, 35, 2493 0, 36, 37, 0, 38, 39, 40, 0, 0, 0, 2494 0, 0, 0, 0, 0, 41, 42, 0, 0, 0, 2586 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2587 38, 0, 0, 208, 41, 8, 9, 10, 11, 12, 2588 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2589 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2590 0, 0, 0, 0, 283, 284, 33, 285, 0, 0, 2591 0, 0, 209, 0, 0, 0, 0, 0, 47, 48, 2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2593 0, 0, 0, 286, 36, 0, 0, 0, 0, 287, 2594 0, 40, 41, 288, 0, 0, 289, 290, 291, 292, 2595 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2596 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2597 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2598 515, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2599 301, 302, 8, 9, 10, 11, 12, 13, 14, 15, 2600 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2601 26, 27, 0, 0, 28, 29, 30, 0, 0, 0, 2602 0, 283, 284, 33, 285, 0, 0, 0, 0, 0, 2495 2603 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496 2604 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, 2499 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2500 20, 21, 22, 23, 24, 25, -298, 0, 26, 27, 2501 28, 29, 0, 0, 30, 0, 0, 31, 0, 0, 2605 286, 36, 0, 0, 0, 0, 287, 0, 40, 41, 2606 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2607 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2609 0, 0, 0, 0, 0, 297, -40, 298, 0, 0, 2610 0, 0, 0, 47, 48, 299, 300, 301, 302, 8, 2611 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2612 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2613 0, 28, 29, 30, 0, 0, 0, 0, 283, 284, 2614 33, 285, 0, 0, 0, 0, 0, 0, 0, 0, 2615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2616 0, 0, 0, 0, 0, 0, 0, 286, 36, 0, 2617 0, 0, 0, 287, 0, 40, 41, 288, 0, 0, 2618 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2619 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2621 0, 0, 297, 0, 298, 0, 0, 0, 0, 0, 2622 47, 48, 299, 300, 301, 302, 8, 9, 10, 11, 2623 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2624 22, 23, 24, 25, 26, 27, 0, 0, 28, 29, 2625 30, 0, 0, 0, 0, 283, 284, 33, 285, 0, 2502 2626 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2503 2627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2504 0, 0, 0, 0, 0, 34, 0, 35, 0, 36, 2505 0, 0, 38, 39, 0, 0, -298, 204, 2, 205, 2628 0, 0, 0, 0, 286, 36, 0, 0, 0, 0, 2629 287, 0, 40, 41, 288, 0, 0, 289, 290, 291, 2630 292, 293, 294, 43, 44, 0, 295, 296, 0, 0, 2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2632 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 2633 0, 343, 0, 0, 0, 0, 0, 47, 48, 299, 2634 300, 301, 302, 8, 9, 10, 11, 12, 13, 14, 2635 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2636 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2637 0, 0, 283, 284, 33, 285, 0, 0, 0, 0, 2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640 0, 286, 36, 0, 0, 0, 0, 287, 0, 40, 2641 41, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2642 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2645 0, 0, 0, 0, 47, 48, 299, 300, 301, 302, 2646 465, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2647 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2648 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2649 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 2650 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2651 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2652 0, 0, 28, 29, 30, 0, 36, 0, 37, 0, 2653 38, 33, 0, 40, 41, 0, 0, 0, 0, 0, 2654 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2655 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2656 0, 0, 0, 0, 112, 0, 40, 41, 0, 0, 2657 0, 0, 0, 0, 0, -3, 0, 43, 44, 0, 2658 0, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2659 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2660 24, 25, 26, 27, 0, 46, 28, 29, 30, 0, 2661 0, 47, 48, 0, 0, 33, 677, 8, 9, 10, 2662 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2663 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2664 29, 30, 0, 36, 0, 0, 0, 0, 33, 677, 2665 40, 41, 0, 0, 0, 0, 0, 0, 0, 0, 2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2667 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 2668 0, 0, 0, 40, 41, 0, 0, 0, 0, 678, 2669 0, 0, 0, 679, 0, 47, 48, 0, 0, 0, 2670 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2671 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2672 27, 0, 678, 28, 29, 30, 1072, 0, 47, 48, 2673 0, 0, 33, 677, 8, 9, 10, 11, 12, 13, 2674 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2675 24, 25, 26, 27, 0, 0, 28, 29, 30, 0, 2676 36, 0, 0, 0, 0, 33, 0, 40, 41, 0, 2677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2679 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 2680 208, 41, 0, 0, 0, 0, 678, 0, 0, 0, 2681 1199, 0, 47, 48, 0, 0, 0, 0, 8, 9, 2682 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2683 20, 21, 22, 23, 24, 25, 26, 27, 0, 271, 2684 28, 29, 30, 0, 0, 47, 48, 0, 0, 33, 2685 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 2686 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 2687 0, 0, 28, 29, 30, 0, 0, 36, 0, 0, 2688 0, 33, 0, 0, 40, 41, 0, 0, 0, 0, 2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2690 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 2691 0, 0, 0, 0, 0, 0, 40, 41, 0, 0, 2692 0, 0, 0, 339, 0, 0, 0, 0, 0, 47, 2693 48, 0, 0, 0, 8, 9, 10, 11, 12, 13, 2694 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 2695 24, 25, 26, 27, 0, 678, 28, 29, 30, 0, 2696 0, 47, 48, 0, 0, 33, 0, 0, 0, 0, 2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2698 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2699 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 2700 40, 41, 0, 2, 207, 4, 5, 6, 7, 8, 2701 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 2702 19, 20, 21, 22, 23, 24, 25, 26, 27, 0, 2703 0, 28, 29, 30, 0, 0, 0, 0, 0, 670, 2704 33, 0, 0, 0, 0, 47, 48, 0, 0, 0, 2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2706 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 2707 37, 0, 38, 0, 0, 40, 41, 283, 284, 0, 2708 285, 1023, 0, 1024, 0, 0, 1025, 1026, 1027, 1028, 2709 1029, 1030, 1031, 1032, 0, 0, 1510, 1033, 0, 0, 2710 0, 1034, 1035, 0, 35, 0, 286, 0, 0, 0, 2711 0, 0, 1036, -420, 0, 0, 288, 0, 0, 289, 2712 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2713 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2714 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2715 0, 297, 0, 378, 0, 0, 172, 0, 0, 47, 2716 48, 299, 300, 301, 302, 0, 0, 283, 284, 1037, 2717 285, 1023, 0, 1024, -134, 0, 1025, 1026, 1027, 1028, 2718 1029, 1030, 1031, 1032, 0, 0, 0, 1033, 0, 0, 2719 0, 1034, 1035, 0, 35, 0, 286, 0, 0, 0, 2720 0, 0, 1036, 0, 0, 0, 288, 0, 0, 289, 2721 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2724 0, 297, 0, 378, 0, 0, 172, 0, 0, 47, 2725 48, 299, 300, 301, 302, 0, 0, 0, 0, 1037, 2726 0, 0, 0, 0, -134, 2, 207, 4, 5, 6, 2727 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2728 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 2729 27, 0, 0, 28, 29, 30, 0, 0, 0, 0, 2730 0, 0, 33, 0, 283, 284, 0, 285, 1023, 0, 2731 1024, 1382, 1383, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 2732 1032, 0, 0, 1510, 1033, 0, 0, 0, 1034, 1035, 2733 36, 35, 37, 286, 38, 0, 0, 40, 41, 1036, 2734 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2735 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2736 0, 1293, 0, 0, 0, 0, 0, 0, 0, 0, 2737 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2738 378, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2739 301, 302, 0, 0, 283, 284, 1037, 285, 1023, 0, 2740 1024, 1382, 1383, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 2741 1032, 0, 0, 0, 1033, 0, 0, 0, 1034, 1035, 2742 0, 35, 0, 286, 0, 0, 0, 0, 0, 1036, 2743 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2744 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2746 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2747 378, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2748 301, 302, 0, 0, 283, 284, 1037, 285, 1023, 0, 2749 1024, 0, 0, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 2750 1032, 0, 0, 0, 1033, 0, 0, 0, 1034, 1035, 2751 0, 35, 0, 286, 0, 0, 0, 0, 0, 1036, 2752 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2753 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2754 0, 0, 0, 283, 284, 0, 285, 0, 0, 0, 2755 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2756 378, 0, 0, 172, 0, 0, 47, 48, 299, 300, 2757 301, 302, 286, 0, 0, 0, 1037, 0, 633, 0, 2758 141, 142, 288, 0, 0, 289, 290, 291, 292, 293, 2759 294, 43, 44, 0, 295, 296, 0, 0, 0, 0, 2760 0, 0, 283, 284, 0, 285, 0, 0, 0, 0, 2761 0, 0, 0, 0, 0, 0, 0, 297, 0, 634, 2762 0, 635, 379, 0, 0, 47, 48, 299, 300, 301, 2763 302, 286, 0, 0, 0, 0, 0, 287, 0, 0, 2764 0, 288, 0, 0, 289, 290, 291, 292, 293, 294, 2765 43, 44, 0, 295, 296, 0, 0, 0, 0, 0, 2766 0, 283, 284, 0, 285, 0, 0, 0, 0, 0, 2767 0, 0, 0, 0, 0, 0, 297, 0, 378, 0, 2768 0, 379, 0, 0, 47, 48, 299, 300, 301, 302, 2769 286, 0, 0, 0, 0, 0, 287, 0, 0, 0, 2770 288, 0, 0, 289, 290, 291, 292, 293, 294, 43, 2771 44, 0, 295, 296, 0, 0, 0, 0, 0, 0, 2772 283, 284, 0, 285, 0, 0, 0, 0, 0, 0, 2773 0, 0, 0, 0, 0, 297, 0, 378, 0, 0, 2774 0, 0, 750, 47, 48, 299, 300, 301, 302, 286, 2775 0, 0, 0, 0, 0, 287, 0, 0, 0, 288, 2776 0, 0, 289, 290, 291, 292, 293, 294, 43, 44, 2777 0, 295, 296, 0, 0, 0, 0, 0, 0, 283, 2778 284, 0, 285, 0, 0, 0, 0, 0, 0, 0, 2779 0, 0, 0, 0, 297, 0, 378, 0, 0, 958, 2780 0, 0, 47, 48, 299, 300, 301, 302, 286, 0, 2781 0, 0, 0, 0, 287, 0, 0, 0, 288, 0, 2782 0, 289, 290, 291, 292, 293, 294, 43, 44, 0, 2783 295, 296, 0, 0, 0, 0, 0, 0, 283, 284, 2784 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, 2785 0, 0, 0, 297, 0, 378, 0, 0, 0, 0, 2786 0, 47, 48, 299, 300, 301, 302, 286, 0, 0, 2787 0, 0, 0, 287, 0, 0, 0, 288, 0, 0, 2788 289, 290, 291, 292, 293, 294, 43, 44, 0, 295, 2789 296, 0, 0, 0, 0, 0, 0, 283, 284, 0, 2790 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2791 0, 0, 504, 0, 378, 0, 0, 0, 0, 0, 2792 47, 48, 299, 300, 301, 302, 286, 0, 0, 0, 2793 0, 0, 287, 0, 0, 0, 288, 0, 0, 289, 2794 290, 291, 292, 293, 294, 43, 44, 0, 295, 296, 2795 0, 0, 0, 0, 0, 0, 283, 284, 0, 285, 2796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2797 0, 509, 0, 378, 0, 0, 0, 0, 0, 47, 2798 48, 299, 300, 301, 302, 286, 0, 0, 0, 0, 2799 0, 287, 0, 0, 0, 288, 0, 0, 289, 290, 2800 291, 292, 293, 294, 43, 44, 0, 295, 296, 0, 2801 0, 0, 0, 0, 0, 283, 284, 0, 285, 0, 2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2803 512, 0, 378, 0, 0, 0, 0, 0, 47, 48, 2804 299, 300, 301, 302, 286, 0, 0, 0, 0, 0, 2805 287, 0, 0, 0, 288, 0, 0, 289, 290, 291, 2806 292, 293, 294, 43, 44, 0, 295, 296, 0, 0, 2807 0, 0, 0, 0, 283, 284, 0, 285, 0, 0, 2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 2809 0, 378, 0, 0, 0, 0, 0, 701, 48, 299, 2810 300, 301, 302, 286, 0, 0, 0, 0, 0, 287, 2811 0, 0, 0, 288, 0, 0, 289, 290, 291, 292, 2812 293, 294, 43, 44, 0, 295, 296, 0, 0, 0, 2813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2814 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 2815 378, 0, 0, 0, 0, 0, 344, 48, 299, 300, 2816 301, 302, 2, 207, 4, 5, 6, 7, 8, 9, 2817 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2818 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 2820 0, 0, 8, 9, 10, 11, 12, 13, 14, 15, 2821 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 2822 26, 27, 0, 0, 28, 29, 30, 36, 0, 37, 2823 0, 38, 39, 33, 175, 176, 42, 0, 0, 0, 2824 0, 0, 0, 0, 0, 43, 44, 0, 0, 0, 2825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2826 0, 36, 0, 0, 0, 0, 112, 0, 40, 41, 2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 2828 44, 206, 2, 207, 4, 5, 6, 7, 8, 9, 2829 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2830 20, 21, 22, 23, 24, 25, 26, 27, 0, 0, 2831 28, 29, 30, 0, 0, 0, 0, 0, 0, 33, 2832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2834 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 2835 0, 38, 0, 0, 208, 41, 465, 2, 207, 4, 2836 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2837 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2838 25, 26, 27, 0, 0, 28, 29, 30, 0, 0, 2839 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2842 0, 0, 36, 0, 37, 0, 38, 0, 0, 40, 2843 41, 2, 207, 4, 5, 6, 7, 8, 9, 10, 2844 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2845 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2846 29, 30, 0, 0, 0, 0, 0, 0, 33, 0, 2847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2849 0, 0, 0, 0, 0, 0, 36, 0, 37, 0, 2850 38, 0, 0, 208, 41, 8, 9, 10, 11, 12, 2851 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 2852 23, 24, 25, 26, 27, 0, 0, 28, 29, 30, 2853 483, 484, 485, 0, 0, 0, 33, 8, 9, 10, 2854 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2855 21, 22, 23, 24, 25, 26, 27, 0, 0, 28, 2856 29, 30, 0, 0, 36, 0, 0, 0, 33, 0, 2857 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, 2858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2859 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 2860 0, 0, 0, 208, 41 2861 }; 2862 2863 #define yypact_value_is_default(yystate) \ 2864 ((yystate) == (-1267)) 2865 2866 #define yytable_value_is_error(yytable_value) \ 2867 YYID (0) 2868 2869 static const yytype_int16 yycheck[] = 2870 { 2871 0, 1, 186, 186, 532, 45, 45, 0, 186, 45, 2872 1, 519, 0, 186, 186, 240, 186, 205, 186, 742, 2873 742, 0, 511, 0, 118, 742, 188, 490, 639, 595, 2874 862, 494, 1022, 615, 34, 220, 349, 1, 597, 595, 2875 1303, 34, 282, 349, 685, 45, 34, 169, 170, 45, 2876 598, 51, 595, 727, 568, 34, 604, 34, 51, 425, 2877 426, 0, 417, 480, 1005, 65, 74, 30, 68, 83, 2878 297, 71, 65, 597, 66, 68, 34, 45, 71, 41, 2879 71, 436, 266, 266, 187, 595, 113, 51, 266, 444, 2880 1004, 1005, 595, 266, 266, 34, 266, 595, 266, 595, 2881 262, 263, 0, 1, 688, 46, 47, 107, 202, 630, 2882 0, 1112, 65, 107, 74, 115, 45, 80, 118, 119, 2883 0, 113, 629, 630, 645, 41, 492, 108, 136, 68, 2884 111, 41, 41, 257, 968, 364, 34, 599, 645, 368, 2885 1403, 603, 41, 107, 34, 511, 186, 186, 148, 149, 2886 186, 115, 1382, 115, 34, 99, 149, 157, 158, 51, 2887 74, 161, 624, 157, 267, 45, 628, 89, 161, 892, 2888 892, 51, 680, 71, 11, 892, 136, 41, 119, 345, 2889 486, 1015, 703, 136, 148, 65, 186, 187, 68, 133, 2890 186, 71, 59, 157, 187, 117, 703, 116, 425, 426, 2891 83, 711, 202, 113, 113, 115, 115, 121, 711, 575, 2892 210, 100, 629, 630, 113, 711, 115, 210, 186, 0, 2893 1, 1487, 222, 115, 409, 1455, 266, 266, 645, 222, 2894 266, 1232, 115, 1234, 1235, 801, 113, 126, 219, 113, 2895 240, 108, 206, 663, 111, 801, 210, 888, 1514, 113, 2896 862, 115, 252, 34, 813, 803, 148, 186, 801, 252, 2897 260, 135, 502, 1204, 252, 265, 266, 267, 114, 149, 2898 113, 785, 272, 252, 267, 252, 240, 504, 257, 187, 2899 1270, 161, 509, 222, 597, 512, 703, 68, 134, 813, 2900 71, 801, 273, 417, 252, 1034, 1035, 297, 801, 280, 2901 911, 395, 405, 801, 114, 801, 186, 187, 272, 893, 2902 310, 275, 436, 252, 480, 462, 118, 1258, 210, 674, 2903 444, 738, 46, 47, 134, 53, 326, 46, 47, 423, 2904 210, 331, 229, 297, 51, 429, 111, 120, 331, 566, 2905 100, 341, 222, 1257, 1258, 345, 310, 341, 240, 349, 2906 350, 248, 219, 919, 252, 939, 585, 1031, 1190, 267, 2907 135, 781, 252, 919, 364, 74, 126, 257, 368, 1108, 2908 114, 791, 252, 835, 3, 478, 919, 341, 87, 88, 2909 272, 345, 802, 3, 365, 113, 266, 1437, 369, 74, 2910 134, 120, 57, 120, 118, 395, 920, 626, 115, 118, 2911 364, 983, 87, 88, 368, 405, 273, 136, 462, 1458, 2912 1022, 350, 405, 280, 74, 1464, 76, 77, 310, 659, 2913 113, 114, 1472, 423, 1474, 425, 426, 87, 88, 429, 2914 115, 431, 94, 95, 99, 1484, 1426, 1378, 417, 0, 2915 1489, 222, 74, 1433, 992, 993, 954, 0, 41, 615, 2916 113, 331, 452, 345, 620, 87, 88, 436, 118, 120, 2917 135, 425, 426, 925, 1378, 444, 929, 129, 130, 349, 2918 470, 252, 116, 113, 891, 136, 120, 966, 478, 1313, 2919 480, 348, 482, 115, 114, 478, 486, 649, 452, 482, 2920 730, 114, 492, 210, 482, 1485, 1107, 405, 365, 120, 2921 813, 465, 369, 482, 504, 482, 506, 813, 113, 509, 2922 132, 511, 512, 135, 1098, 136, 663, 120, 640, 519, 2923 113, 120, 115, 523, 1487, 405, 490, 417, 492, 194, 2924 494, 134, 471, 425, 426, 134, 1370, 1371, 123, 124, 2925 504, 120, 506, 482, 1507, 509, 436, 511, 512, 113, 2926 674, 1514, 217, 647, 444, 272, 1080, 136, 1066, 113, 2927 114, 115, 227, 1071, 115, 794, 117, 567, 568, 113, 2928 478, 115, 738, 1157, 1158, 575, 700, 680, 1190, 113, 2929 297, 1001, 1002, 134, 482, 585, 586, 1004, 120, 589, 2930 480, 120, 482, 310, 120, 595, 1270, 597, 586, 862, 2931 492, 120, 482, 113, 136, 115, 486, 136, 134, 663, 2932 74, 575, 76, 77, 78, 615, 113, 136, 924, 511, 2933 620, 585, 622, 87, 88, 120, 626, 120, 113, 629, 2934 630, 113, 297, 115, 781, 616, 1056, 1057, 114, 121, 2935 122, 136, 114, 136, 791, 645, 121, 647, 120, 113, 2936 631, 615, 127, 128, 1386, 802, 620, 116, 1270, 74, 2937 120, 120, 626, 644, 849, 4, 5, 6, 7, 8, 2938 9, 1345, 87, 88, 120, 120, 136, 677, 617, 114, 2939 680, 120, 114, 575, 869, 10, 11, 12, 13, 14, 2940 136, 136, 116, 114, 114, 674, 120, 136, 113, 120, 2941 115, 482, 120, 703, 704, 705, 931, 113, 892, 892, 2942 1127, 711, 712, 677, 892, 595, 41, 597, 136, 892, 2943 892, 700, 892, 615, 892, 891, 113, 781, 620, 119, 2944 114, 113, 71, 855, 73, 452, 120, 791, 738, 136, 2945 114, 114, 742, 743, 69, 726, 120, 120, 802, 616, 2946 1482, 715, 691, 66, 114, 1487, 1430, 114, 1432, 1287, 2947 120, 114, 1025, 120, 631, 113, 705, 120, 1491, 1491, 2948 113, 113, 680, 115, 1491, 1507, 441, 644, 136, 121, 2949 122, 1365, 1514, 118, 674, 785, 116, 504, 83, 506, 2950 120, 894, 509, 114, 794, 512, 796, 136, 1382, 120, 2951 680, 801, 467, 118, 897, 114, 899, 113, 996, 115, 2952 700, 120, 1486, 813, 1426, 121, 122, 983, 114, 1239, 2953 113, 1433, 115, 114, 120, 136, 1246, 1247, 1248, 120, 2954 794, 711, 712, 4, 5, 6, 7, 8, 9, 504, 2955 1257, 116, 3, 113, 509, 120, 136, 512, 738, 10, 2956 11, 12, 13, 14, 1001, 1002, 1096, 796, 118, 726, 2957 1100, 1101, 862, 74, 35, 76, 77, 0, 1, 114, 2958 1454, 1455, 114, 1485, 862, 120, 87, 88, 120, 113, 2959 41, 115, 114, 862, 884, 504, 113, 506, 120, 1309, 2960 509, 891, 892, 512, 894, 1017, 884, 114, 31, 32, 2961 71, 34, 73, 120, 115, 114, 906, 113, 69, 1056, 2962 1057, 120, 45, 113, 114, 115, 114, 83, 51, 919, 2963 920, 801, 120, 862, 924, 1096, 59, 1190, 114, 1100, 2964 930, 931, 65, 813, 120, 68, 92, 93, 71, 930, 2965 119, 120, 906, 1170, 1171, 122, 1173, 1001, 1002, 96, 2966 97, 84, 85, 1180, 954, 1182, 113, 114, 115, 1467, 2967 677, 1127, 131, 1066, 862, 929, 930, 931, 1071, 113, 2968 114, 115, 862, 132, 1214, 108, 114, 115, 111, 74, 2969 3, 76, 77, 983, 98, 118, 894, 10, 11, 12, 2970 13, 14, 87, 88, 1088, 60, 61, 662, 60, 61, 2971 62, 891, 1056, 1057, 1004, 1005, 671, 113, 1516, 115, 2972 675, 113, 892, 115, 894, 115, 149, 74, 41, 983, 2973 119, 120, 1022, 1286, 81, 46, 47, 84, 161, 86, 2974 87, 88, 930, 113, 1022, 115, 1113, 1114, 1204, 931, 2975 551, 552, 72, 1022, 924, 75, 69, 986, 78, 113, 2976 80, 115, 113, 186, 187, 1202, 116, 87, 115, 114, 2977 74, 1061, 116, 113, 1304, 115, 1066, 81, 1308, 202, 2978 84, 1071, 86, 87, 88, 114, 1339, 210, 285, 1342, 2979 1080, 862, 114, 1022, 553, 554, 219, 114, 1088, 222, 2980 114, 983, 1239, 559, 560, 114, 229, 1061, 116, 1246, 2981 1247, 1248, 115, 310, 311, 4, 5, 6, 7, 8, 2982 9, 244, 118, 120, 1341, 248, 118, 74, 135, 252, 2983 253, 78, 118, 1386, 1022, 135, 113, 1127, 1391, 114, 2984 87, 88, 1022, 266, 267, 114, 116, 134, 345, 116, 2985 273, 116, 134, 3, 134, 31, 120, 280, 1202, 930, 2986 10, 11, 12, 13, 14, 114, 113, 1420, 1066, 114, 2987 118, 113, 1309, 1071, 121, 122, 119, 1407, 1168, 1169, 2988 114, 119, 71, 380, 73, 120, 119, 114, 1169, 114, 2989 134, 41, 120, 213, 114, 1239, 1066, 136, 114, 906, 2990 1190, 1071, 1246, 1247, 1248, 114, 114, 120, 331, 114, 2991 114, 114, 1190, 114, 1204, 114, 114, 114, 1208, 69, 2992 114, 1190, 114, 0, 1, 348, 349, 1208, 114, 114, 2993 114, 886, 10, 11, 12, 13, 14, 119, 31, 1168, 2994 135, 114, 365, 134, 114, 120, 369, 1127, 116, 116, 2995 114, 1022, 1505, 114, 1208, 120, 379, 34, 1511, 114, 2996 280, 1190, 134, 41, 113, 1309, 120, 1257, 1258, 1522, 2997 118, 114, 395, 1526, 51, 1265, 114, 1361, 114, 85, 2998 1270, 1169, 405, 89, 90, 91, 1501, 555, 556, 557, 2999 558, 69, 1270, 120, 71, 114, 114, 120, 120, 114, 3000 423, 1270, 1190, 113, 113, 113, 429, 113, 113, 115, 3001 1190, 117, 118, 1303, 113, 136, 119, 1491, 1491, 114, 3002 1208, 134, 1303, 1491, 1204, 114, 114, 119, 1491, 1491, 3003 107, 1491, 352, 1491, 354, 113, 1265, 115, 132, 119, 3004 116, 1270, 465, 121, 122, 118, 136, 470, 114, 1303, 3005 120, 548, 549, 550, 1061, 478, 116, 116, 114, 482, 3006 114, 116, 114, 486, 1, 116, 489, 116, 491, 116, 3007 116, 1361, 149, 74, 116, 76, 77, 49, 1033, 136, 3008 157, 158, 1270, 1467, 114, 119, 87, 88, 1378, 1360, 3009 1270, 74, 136, 76, 77, 78, 136, 1168, 1169, 1492, 3010 136, 136, 119, 526, 87, 88, 134, 114, 531, 688, 3011 187, 119, 113, 1403, 116, 1303, 85, 118, 116, 1190, 3012 440, 116, 1403, 1516, 116, 202, 116, 116, 205, 206, 3013 113, 116, 115, 210, 114, 114, 1426, 1208, 121, 122, 3014 113, 62, 113, 1433, 114, 1435, 113, 1437, 1426, 1403, 3015 114, 134, 118, 113, 231, 1433, 579, 1426, 235, 136, 3016 237, 1491, 1491, 116, 1433, 1491, 116, 114, 116, 246, 3017 114, 100, 595, 100, 597, 252, 119, 1467, 113, 113, 3018 257, 1435, 1472, 1437, 1474, 136, 114, 120, 114, 114, 3019 267, 114, 44, 616, 1265, 1485, 134, 1426, 275, 1270, 3020 779, 1491, 1492, 1360, 1433, 0, 136, 1485, 631, 1492, 3021 114, 1501, 635, 114, 136, 1403, 1485, 100, 1472, 100, 3022 1474, 644, 136, 646, 647, 648, 1516, 114, 136, 114, 3023 116, 136, 1303, 1516, 114, 114, 136, 119, 1426, 34, 3024 10, 11, 12, 13, 14, 1433, 1426, 1501, 116, 116, 3025 113, 1037, 749, 1433, 119, 119, 1485, 680, 136, 114, 3026 114, 684, 136, 686, 341, 114, 51, 690, 345, 114, 3027 561, 41, 851, 562, 351, 698, 71, 565, 563, 963, 3028 65, 564, 1190, 68, 1455, 1347, 71, 364, 711, 712, 3029 1526, 368, 1280, 1101, 1492, 1308, 1433, 1485, 677, 69, 3030 1052, 677, 1071, 726, 899, 1485, 690, 907, 579, 74, 3031 855, 76, 77, 78, 893, 641, 253, 958, 1516, 1501, 3032 715, 1491, 87, 88, 1279, 74, 1208, 76, 77, 78, 3033 927, 482, 1403, 74, -1, 76, 77, 78, 87, 88, 3034 417, 567, -1, 113, 726, 115, 87, 88, 113, 567, 3035 115, 121, 122, 567, 431, 1426, 121, 122, -1, 436, 3036 939, -1, 1433, 158, 149, -1, -1, 444, -1, -1, 3037 -1, -1, 113, -1, 115, -1, 161, -1, 801, -1, 3038 121, 122, -1, -1, -1, 462, -1, -1, 465, -1, 3039 813, -1, 971, -1, -1, 10, 11, 12, 13, 14, 3040 -1, 68, 187, 480, -1, 482, 726, -1, -1, -1, 3041 77, -1, -1, 490, 1485, -1, -1, 494, 10, 11, 3042 12, 13, 14, -1, -1, 210, 41, -1, 1435, -1, 3043 1437, 74, 855, 76, 77, -1, 231, 222, 861, -1, 3044 1019, -1, -1, -1, 87, 88, 523, -1, -1, 41, 3045 -1, -1, 119, -1, 69, -1, -1, 252, -1, 74, 3046 -1, -1, 257, 78, -1, 1472, -1, 1474, -1, 892, 3047 113, 894, 87, 88, -1, 118, -1, 69, 901, 1434, 3048 -1, 1436, -1, 74, -1, -1, 983, -1, -1, -1, 3049 81, 568, -1, 84, 161, 86, 87, 88, 113, -1, 3050 74, 924, 76, 77, 78, -1, 121, 122, 585, 586, 3051 -1, -1, -1, 87, 88, -1, 1471, -1, 1473, 1098, 3052 597, 113, 945, 115, 115, 1022, -1, -1, 465, 121, 3053 122, -1, -1, -1, -1, 958, -1, 0, 615, 113, 3054 -1, 964, -1, 620, -1, 968, 331, 121, 122, 626, 3055 -1, -1, 629, 630, -1, 222, 351, -1, -1, -1, 3056 1515, -1, 1517, -1, -1, -1, -1, -1, 645, -1, 3057 74, 34, 76, 77, 78, 1530, 1531, 74, 1157, 1158, 3058 -1, 78, -1, 87, 88, -1, 663, -1, -1, 526, 3059 87, 88, 1015, 260, 531, -1, -1, 674, 265, -1, 3060 85, 68, -1, -1, 89, 90, 91, -1, 71, 113, 3061 -1, -1, -1, 280, -1, -1, 113, 84, 115, -1, 3062 405, -1, 417, 700, 121, 122, 703, -1, 113, 1052, 3063 115, -1, 117, 118, -1, 712, 431, -1, 715, -1, 3064 -1, 436, 579, 1066, -1, -1, -1, -1, 1071, 444, 3065 74, -1, 119, -1, -1, -1, -1, 81, -1, -1, 3066 84, 738, 86, 87, 88, 1088, 743, 462, -1, -1, 3067 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, 3068 -1, -1, -1, 350, 74, 480, -1, 482, 78, 1112, 3069 -1, 115, -1, -1, 161, 158, -1, 87, 88, -1, 3070 -1, 41, -1, -1, 781, -1, -1, -1, -1, 646, 3071 -1, 648, -1, -1, 791, 68, -1, 794, -1, -1, 3072 797, -1, -1, 113, -1, 802, -1, -1, 523, 69, 3073 -1, 121, 122, -1, 74, 812, 76, 77, 78, -1, 3074 74, 1164, 76, 77, 78, -1, -1, 87, 88, -1, 3075 -1, -1, -1, 87, 88, 222, -1, -1, -1, -1, 3076 -1, 698, -1, 430, -1, -1, 119, -1, -1, -1, 3077 -1, -1, -1, 113, -1, 115, -1, -1, -1, 446, 3078 -1, 121, 122, -1, -1, 862, 1365, -1, -1, 252, 3079 -1, 586, -1, 260, 257, -1, -1, -1, 265, -1, 3080 -1, -1, -1, 1382, 471, -1, -1, 884, 161, 1232, 3081 -1, 1234, 1235, -1, 891, -1, -1, 894, 10, 11, 3082 12, 13, 14, -1, -1, 190, 74, -1, 76, 77, 3083 78, -1, 197, -1, 629, 630, -1, -1, -1, 87, 3084 88, -1, -1, 920, -1, -1, -1, -1, -1, 41, 3085 645, -1, 929, 930, -1, -1, -1, -1, -1, -1, 3086 -1, -1, -1, 0, -1, 113, -1, 115, 663, 222, 3087 -1, -1, -1, 121, 122, 1454, 1455, 69, -1, 674, 3088 -1, -1, 74, 350, 76, 77, 78, -1, 351, -1, 3089 1313, -1, -1, -1, -1, 87, 88, 34, -1, -1, 3090 -1, -1, -1, -1, 269, 700, 983, 260, 703, -1, 3091 -1, -1, 265, -1, -1, -1, -1, -1, -1, 996, 3092 -1, 113, 589, 115, 1001, 1002, -1, 1004, 1005, 121, 3093 122, -1, -1, -1, 71, -1, -1, 1360, 1361, -1, 3094 -1, -1, -1, 738, -1, 1022, -1, 1370, 1371, -1, 3095 617, -1, -1, -1, 417, 622, -1, -1, -1, -1, 3096 -1, 326, 74, 430, 76, 77, 78, -1, 431, 334, 3097 -1, -1, 337, 436, -1, 87, 88, -1, -1, 1056, 3098 1057, 444, -1, -1, -1, 1408, 781, 10, 11, 12, 3099 13, 14, -1, -1, -1, -1, 791, 350, -1, 462, 3100 -1, 113, 797, -1, 471, -1, -1, 802, 945, 121, 3101 122, -1, -1, -1, -1, -1, -1, 480, 41, 482, 3102 -1, 158, -1, -1, 691, -1, -1, 964, -1, 0, 3103 1, 968, 397, -1, -1, -1, 401, -1, 705, -1, 3104 -1, -1, -1, -1, 1467, 1468, 69, -1, -1, -1, 3105 1127, 74, -1, 32, 1477, 78, -1, -1, -1, 726, 3106 523, -1, -1, 34, 87, 88, -1, 862, 1491, 1492, 3107 -1, -1, -1, -1, -1, -1, -1, 430, 1015, -1, 3108 10, 11, 12, 13, 14, -1, -1, -1, -1, 884, 3109 113, -1, 1169, 1516, -1, -1, 891, 68, 121, 122, 3110 71, -1, 28, 29, 30, 84, 85, -1, -1, -1, 3111 -1, 41, 477, 1190, -1, 252, -1, -1, 471, -1, 3112 257, -1, 589, 586, -1, 1202, -1, 1204, -1, 796, 3113 -1, 1208, -1, -1, -1, -1, -1, -1, -1, 69, 3114 -1, -1, -1, -1, 74, 0, 76, 77, 78, -1, 3115 617, -1, -1, -1, -1, 622, -1, 87, 88, -1, 3116 -1, -1, 1239, -1, -1, -1, 629, 630, -1, 1246, 3117 1247, 1248, -1, -1, 100, 1112, 102, -1, -1, 34, 3118 1257, 1258, 645, 113, -1, 115, -1, 158, -1, -1, 3119 -1, 121, 122, 1270, -1, -1, -1, -1, -1, -1, 3120 663, -1, 567, 568, -1, -1, 1001, 1002, -1, 1004, 3121 1005, 674, -1, -1, 351, -1, 71, -1, -1, -1, 3122 -1, -1, -1, -1, 691, -1, 1303, 1022, -1, -1, 3123 -1, -1, 1309, -1, -1, -1, 589, 700, 705, -1, 3124 703, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3125 -1, 222, -1, -1, -1, -1, 182, -1, -1, -1, 3126 -1, 1056, 1057, -1, 617, 244, 192, 193, -1, 622, 3127 -1, 197, -1, 199, 200, 738, -1, -1, -1, -1, 3128 417, 252, -1, -1, -1, 650, -1, -1, -1, 654, 3129 -1, -1, -1, -1, 431, 1232, -1, 1234, 1235, 436, 3130 -1, 1378, -1, 158, -1, -1, -1, 444, -1, -1, 3131 -1, 10, 11, 12, 13, 14, -1, -1, 781, 986, 3132 -1, -1, -1, -1, -1, 462, 1403, -1, 791, 796, 3133 -1, -1, 1127, -1, 797, -1, -1, -1, 691, 802, 3134 -1, -1, 41, 480, -1, 482, -1, -1, -1, 1426, 3135 -1, -1, 705, -1, -1, -1, 1433, 101, 102, 103, 3136 104, 105, 106, 107, 108, 109, 110, 111, -1, -1, 3137 69, -1, -1, -1, 1169, 74, 1313, 76, 77, 78, 3138 -1, -1, -1, -1, -1, -1, 523, -1, 87, 88, 3139 -1, 135, -1, -1, -1, 1190, -1, 252, -1, 862, 3140 379, -1, 257, -1, -1, -1, -1, 1202, 1485, 1204, 3141 -1, -1, -1, -1, 113, 1492, -1, -1, -1, -1, 3142 785, 884, 121, 122, -1, -1, -1, -1, 891, -1, 3143 -1, -1, -1, 1370, 1371, -1, -1, -1, -1, -1, 3144 -1, -1, -1, 796, 1239, -1, -1, -1, -1, 586, 3145 -1, 1246, 1247, 1248, -1, -1, -1, -1, -1, -1, 3146 431, -1, 1257, 1258, -1, -1, -1, -1, -1, -1, 3147 -1, 1408, -1, -1, -1, 1270, -1, -1, -1, -1, 3148 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3149 -1, -1, 629, 630, -1, -1, 351, -1, -1, -1, 3150 -1, 1168, -1, -1, -1, -1, -1, -1, 645, -1, 3151 489, 482, 491, -1, 1309, -1, -1, -1, -1, 986, 3152 -1, -1, -1, -1, -1, -1, 663, -1, -1, -1, 3153 -1, 1468, -1, 898, -1, -1, -1, 674, 1001, 1002, 3154 1477, 1004, 1005, -1, -1, -1, -1, -1, -1, 55, 3155 -1, 57, 523, -1, 60, 61, 62, -1, 64, 1022, 3156 -1, -1, 417, 700, -1, -1, 703, -1, -1, -1, 3157 -1, -1, 78, -1, -1, -1, 431, -1, -1, -1, 3158 -1, 436, -1, 1378, 90, 91, -1, -1, -1, 444, 3159 -1, -1, -1, 1056, 1057, -1, -1, -1, 1265, -1, 3160 -1, 738, -1, -1, -1, -1, -1, 462, 973, -1, 3161 -1, -1, -1, -1, -1, 586, -1, -1, -1, -1, 3162 -1, -1, -1, -1, 989, 480, -1, 482, -1, -1, 3163 -1, 1426, -1, 986, -1, -1, -1, -1, 1433, -1, 3164 -1, -1, -1, -1, 781, 571, 572, -1, -1, -1, 3165 -1, -1, -1, -1, 791, -1, 635, -1, 629, 630, 3166 797, -1, -1, -1, 1127, 802, -1, -1, 523, -1, 3167 -1, -1, 598, -1, 645, 601, 602, -1, 604, -1, 3168 606, 607, -1, -1, -1, 611, 612, -1, -1, -1, 3169 1485, -1, -1, 10, 11, 12, 13, 14, -1, 1064, 3170 -1, 1168, -1, -1, -1, 684, 1169, 686, -1, -1, 3171 -1, 690, -1, -1, -1, -1, -1, -1, -1, -1, 3172 -1, -1, -1, -1, 41, 862, -1, 1190, -1, -1, 3173 -1, 586, 703, -1, -1, -1, -1, -1, 1103, 1202, 3174 -1, 1204, -1, -1, -1, -1, -1, 884, -1, -1, 3175 -1, -1, 69, -1, 891, -1, -1, 74, -1, 76, 3176 77, 78, -1, -1, -1, -1, -1, -1, -1, -1, 3177 87, 88, -1, -1, 629, 630, 1239, -1, -1, -1, 3178 -1, -1, -1, 1246, 1247, 1248, -1, -1, -1, -1, 3179 645, -1, -1, -1, 1257, 1258, 113, -1, 1265, -1, 3180 -1, -1, -1, -1, 121, 122, -1, 1270, 663, -1, 3181 -1, -1, -1, -1, -1, 1168, -1, -1, -1, 674, 3182 -1, 747, 748, -1, -1, -1, -1, -1, -1, -1, 3183 -1, -1, -1, -1, -1, -1, -1, -1, 344, -1, 3184 346, -1, -1, -1, -1, 700, 1309, -1, 703, -1, 3185 -1, 357, 358, -1, -1, 28, 29, 30, -1, -1, 3186 -1, -1, -1, -1, 1001, 1002, -1, 1004, 1005, -1, 3187 -1, -1, -1, -1, -1, -1, 855, -1, -1, -1, 3188 -1, -1, 861, 738, -1, 1022, -1, -1, -1, -1, 3189 -1, 862, 10, 11, 12, 13, 14, 15, 16, 17, 3190 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3191 28, 29, 1265, 884, -1, 1378, -1, -1, -1, 1056, 3192 1057, -1, 901, 41, -1, -1, 781, 100, -1, 102, 3193 -1, -1, -1, -1, -1, -1, 791, -1, -1, -1, 3194 -1, -1, 797, -1, -1, -1, -1, 802, -1, -1, 3195 -1, 69, -1, -1, 127, -1, -1, -1, -1, 930, 3196 -1, -1, -1, 1426, -1, -1, -1, -1, -1, -1, 3197 1433, -1, -1, -1, -1, -1, -1, 903, -1, 958, 3198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3199 1127, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3200 -1, -1, -1, -1, -1, -1, -1, 862, 7, 182, 3201 -1, 10, 11, 12, 13, 14, -1, 190, -1, 192, 3202 193, -1, 1485, -1, 197, -1, 199, 200, -1, 884, 3203 -1, -1, 1169, 1004, 1005, -1, 891, -1, -1, -1, 3204 39, 40, 41, 42, -1, -1, -1, -1, -1, -1, 3205 -1, 1022, -1, 1190, -1, -1, -1, -1, -1, -1, 3206 -1, -1, -1, -1, -1, 1202, -1, 1204, -1, 68, 3207 69, -1, -1, 1052, -1, 74, -1, -1, -1, 78, 3208 -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, 3209 -1, 90, 91, -1, -1, -1, 269, -1, -1, -1, 3210 -1, -1, 1239, -1, -1, -1, -1, -1, -1, 1246, 3211 1247, 1248, -1, -1, 113, -1, 115, -1, -1, -1, 3212 1257, 1258, 121, 122, 123, 124, 125, 126, -1, -1, 3213 -1, -1, 1058, 1270, -1, -1, -1, -1, -1, -1, 3214 -1, 51, -1, -1, -1, -1, 1001, 1002, -1, 1004, 3215 1005, -1, -1, -1, -1, -1, -1, -1, 68, -1, 3216 -1, -1, -1, -1, -1, -1, -1, 1022, -1, -1, 3217 -1, -1, 1309, -1, -1, -1, -1, -1, -1, -1, 3218 -1, 39, 40, -1, 42, 1164, 692, -1, 694, -1, 3219 -1, -1, -1, -1, -1, 701, 702, 1168, 1169, -1, 3220 706, 1056, 1057, -1, -1, 115, -1, -1, -1, 119, 3221 68, -1, -1, 719, -1, -1, 74, -1, 724, 1190, 3222 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3223 88, -1, 90, 91, -1, -1, -1, 1208, 148, -1, 3224 -1, 1378, -1, -1, -1, 751, -1, -1, 158, -1, 3225 -1, 161, -1, -1, -1, 113, -1, 115, -1, -1, 3226 1186, -1, -1, 121, 122, 123, 124, 125, 126, -1, 3227 -1, -1, 1127, -1, -1, -1, 134, -1, -1, -1, 3228 -1, -1, -1, -1, -1, -1, 1257, 1258, -1, 1426, 3229 -1, -1, -1, -1, 1265, -1, 1433, -1, -1, 1270, 3230 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3231 -1, -1, 222, -1, 1169, -1, -1, -1, -1, -1, 3232 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3233 240, -1, 1303, -1, -1, 1190, -1, -1, 844, -1, 3234 846, 847, 848, -1, -1, -1, -1, 1202, 1485, 1204, 3235 -1, -1, -1, -1, -1, 265, -1, -1, -1, 865, 3236 -1, -1, 272, -1, -1, -1, -1, -1, -1, -1, 3237 -1, -1, -1, 879, -1, -1, -1, -1, -1, -1, 3238 -1, -1, -1, -1, 1239, -1, -1, 297, -1, -1, 3239 -1, 1246, 1247, 1248, -1, -1, -1, -1, 571, 572, 3240 310, -1, 1257, 1258, -1, -1, -1, 1378, -1, -1, 3241 -1, -1, 918, -1, -1, 1270, -1, -1, -1, -1, 3242 -1, -1, -1, -1, -1, 598, -1, -1, 601, 602, 3243 -1, 604, 1403, 606, 607, 345, -1, -1, 611, 612, 3244 350, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3245 -1, -1, -1, -1, 1309, 1426, 962, -1, -1, -1, 3246 -1, 967, 1433, -1, -1, -1, 972, -1, -1, -1, 3247 -1, 977, -1, -1, -1, -1, 982, -1, 984, 985, 3248 -1, -1, 988, -1, -1, -1, -1, -1, -1, -1, 3249 -1, 997, -1, -1, -1, -1, -1, -1, -1, -1, 3250 -1, -1, -1, -1, -1, -1, -1, 1013, 1014, -1, 3251 -1, -1, -1, -1, 1485, 425, 426, -1, -1, -1, 3252 -1, 431, -1, 1378, -1, -1, -1, -1, -1, -1, 3253 -1, -1, -1, 1039, -1, -1, 1042, -1, -1, -1, 3254 -1, -1, 452, -1, -1, -1, 10, 11, 12, 13, 3255 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3256 24, 25, 26, 27, 28, 29, 30, -1, -1, -1, 3257 480, 1426, -1, -1, 747, 748, -1, 41, 1433, 1085, 3258 -1, -1, 492, -1, -1, 1091, 1092, -1, -1, -1, 3259 -1, -1, -1, -1, 504, -1, 506, -1, -1, 509, 3260 -1, 511, 512, -1, 1110, 69, -1, -1, -1, 1115, 3261 -1, -1, -1, 523, 1120, -1, 80, -1, -1, -1, 3262 -1, -1, -1, -1, -1, 1131, -1, -1, -1, -1, 3263 1485, -1, -1, -1, -1, -1, -1, -1, 1144, -1, 3264 1146, 1147, 1148, 1149, -1, -1, -1, 68, -1, -1, 3265 -1, -1, -1, -1, -1, 1161, 77, 1163, 79, -1, 3266 81, 1167, -1, -1, -1, 575, -1, 88, -1, -1, 3267 -1, -1, -1, -1, -1, -1, 586, -1, -1, 589, 3268 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1195, 3269 1196, -1, -1, -1, -1, -1, -1, -1, 119, -1, 3270 121, 122, 123, -1, -1, 615, -1, -1, -1, -1, 3271 620, -1, -1, -1, -1, -1, -1, -1, -1, 629, 3272 630, -1, -1, -1, -1, 898, -1, -1, -1, -1, 3273 903, -1, -1, -1, -1, 645, -1, -1, -1, -1, 3274 161, -1, -1, 1249, 1250, -1, -1, -1, -1, -1, 3275 -1, -1, -1, 1259, -1, -1, -1, -1, -1, -1, 3276 -1, -1, -1, -1, -1, -1, -1, 677, 10, 11, 3277 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3278 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3279 32, 33, 34, 703, -1, 705, -1, -1, -1, 41, 3280 -1, 222, -1, 224, 225, 226, -1, 46, -1, -1, 3281 -1, -1, -1, -1, -1, 1321, -1, 1323, 1324, 1325, 3282 -1, -1, -1, -1, -1, -1, -1, 69, 738, 1335, 3283 -1, -1, 74, -1, 76, 77, 78, 1343, -1, 260, 3284 -1, -1, -1, -1, 265, 87, 88, -1, -1, -1, 3285 -1, -1, -1, -1, 93, -1, -1, -1, -1, 280, 3286 -1, -1, 1368, 1369, 103, -1, -1, -1, -1, -1, 3287 -1, 113, -1, 115, -1, -1, -1, -1, -1, 121, 3288 122, 148, -1, -1, -1, 1058, 796, -1, -1, -1, 3289 -1, 158, -1, -1, -1, -1, -1, -1, -1, -1, 3290 -1, -1, 169, 170, -1, -1, -1, 1413, 1414, -1, 3291 331, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3292 1426, -1, -1, -1, -1, -1, -1, 1433, -1, 350, 3293 -1, -1, -1, 172, 355, 356, -1, -1, -1, -1, 3294 -1, -1, 363, -1, -1, -1, -1, -1, -1, -1, 3295 -1, -1, -1, -1, -1, -1, 195, -1, -1, -1, 3296 1466, -1, -1, -1, 1470, -1, -1, -1, -1, -1, 3297 209, -1, -1, 240, 884, -1, -1, -1, -1, 218, 3298 -1, 891, -1, -1, 405, -1, -1, -1, -1, 228, 3299 -1, -1, 1498, -1, 1500, -1, 906, 264, -1, -1, 3300 -1, -1, 423, -1, -1, -1, -1, 428, -1, 430, 3301 -1, -1, -1, 1186, 253, -1, -1, -1, -1, 258, 3302 -1, 931, 1528, 1529, -1, 446, -1, -1, 449, 450, 3303 1536, 1537, 271, -1, -1, -1, 457, -1, 277, -1, 3304 279, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3305 471, -1, -1, -1, -1, -1, -1, 478, -1, 298, 3306 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3307 -1, -1, -1, 983, 10, 11, 12, 13, 14, 15, 3308 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3309 26, 27, 28, 29, 1004, 1005, 32, 33, 34, -1, 3310 339, -1, -1, -1, 343, 41, -1, -1, -1, -1, 3311 -1, -1, 379, -1, -1, -1, -1, -1, -1, -1, 3312 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3313 -1, -1, 371, 69, -1, -1, 375, 376, -1, 378, 3314 76, 77, -1, -1, -1, -1, 385, 386, -1, 388, 3315 389, 1061, 391, -1, 393, -1, -1, -1, -1, -1, 3316 -1, -1, -1, -1, -1, -1, -1, -1, 589, -1, 3317 -1, 410, -1, -1, -1, -1, -1, -1, -1, 418, 3318 -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, 3319 -1, -1, -1, -1, -1, -1, 617, -1, -1, -1, 3320 -1, 622, -1, 442, -1, 472, -1, -1, -1, -1, 3321 -1, -1, -1, -1, -1, -1, -1, 1127, -1, -1, 3322 -1, -1, -1, -1, -1, -1, -1, -1, -1, 468, 3323 -1, -1, -1, -1, -1, 474, -1, -1, -1, -1, 3324 479, -1, -1, -1, 511, -1, -1, -1, -1, -1, 3325 -1, -1, -1, -1, -1, -1, 523, -1, 1168, -1, 3326 -1, -1, 529, -1, -1, 532, 157, 158, -1, -1, 3327 691, -1, -1, -1, -1, -1, 515, -1, 545, -1, 3328 -1, -1, -1, -1, 705, -1, -1, -1, -1, -1, 3329 -1, 530, -1, -1, 1204, -1, -1, -1, -1, 190, 3330 -1, -1, -1, -1, -1, 726, 197, -1, 575, -1, 3331 -1, -1, -1, -1, -1, 582, -1, -1, -1, 586, 3332 -1, -1, -1, -1, -1, -1, -1, -1, 567, -1, 3333 -1, -1, -1, -1, -1, -1, -1, 576, -1, -1, 3334 -1, -1, -1, -1, -1, -1, -1, 1257, 1258, -1, 3335 -1, -1, -1, -1, -1, 1265, -1, 596, -1, -1, 3336 -1, -1, -1, -1, 785, 632, -1, -1, -1, -1, 3337 -1, -1, -1, 640, -1, 796, -1, -1, 269, -1, 3338 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3339 -1, -1, 813, -1, -1, 634, -1, 10, 11, 12, 3340 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3341 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3342 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3343 -1, 670, -1, -1, -1, 326, -1, -1, -1, 678, 3344 -1, -1, -1, 334, 335, -1, 337, 338, -1, 716, 3345 -1, -1, -1, -1, 345, -1, 69, -1, 349, -1, 3346 -1, 74, -1, 76, 77, 78, -1, -1, 1378, -1, 3347 709, 738, -1, 740, 87, 88, -1, 368, -1, -1, 3348 -1, 720, 721, 750, -1, -1, -1, -1, -1, 756, 3349 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3350 113, -1, 115, 924, -1, -1, 397, -1, 121, 122, 3351 401, -1, -1, 752, -1, -1, -1, -1, 757, -1, 3352 -1, -1, -1, -1, -1, 1435, -1, 1437, -1, 796, 3353 797, -1, -1, 954, -1, -1, -1, -1, -1, -1, 3354 431, -1, -1, -1, -1, 812, -1, -1, -1, -1, 3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3356 -1, -1, 1472, -1, 1474, 986, -1, -1, -1, -1, 3357 -1, -1, -1, -1, -1, -1, 997, -1, 817, -1, 3358 -1, -1, -1, -1, 851, 824, 477, -1, 855, 480, 3359 -1, 1501, -1, -1, -1, -1, -1, -1, 837, -1, 3360 839, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3361 -1, -1, -1, 852, -1, -1, -1, 884, -1, 858, 3362 -1, -1, -1, -1, 891, -1, -1, -1, 519, -1, 3363 -1, 870, 523, -1, 873, -1, -1, -1, -1, -1, 3364 -1, -1, -1, -1, -1, 1066, -1, -1, -1, -1, 3365 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1080, 3366 -1, -1, -1, -1, 931, -1, -1, -1, -1, -1, 3367 -1, -1, -1, -1, -1, -1, 567, 568, -1, -1, 3368 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3369 -1, 958, -1, -1, 585, 586, 963, -1, -1, 966, 3370 -1, -1, -1, -1, 595, -1, 597, 598, -1, -1, 3371 -1, -1, -1, 604, -1, -1, -1, -1, -1, 986, 3372 -1, -1, -1, 614, 615, -1, -1, -1, -1, 620, 3373 997, -1, -1, -1, -1, -1, -1, -1, 629, 630, 3374 -1, -1, 981, -1, -1, -1, -1, 1168, -1, -1, 3375 1017, -1, 1019, -1, 645, -1, -1, -1, -1, 650, 3376 651, -1, -1, 654, 655, -1, -1, 1034, 1035, 283, 3377 661, 285, 286, -1, -1, -1, -1, -1, -1, -1, 3378 -1, 295, 296, -1, -1, -1, -1, 1054, -1, 680, 3379 -1, -1, -1, -1, -1, -1, 310, 311, -1, -1, 3380 -1, -1, -1, 1042, -1, -1, -1, -1, -1, -1, 3381 -1, -1, 703, 704, -1, -1, -1, -1, -1, -1, 3382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3383 -1, 345, -1, -1, -1, -1, -1, 1076, -1, -1, 3384 -1, 1108, 1081, -1, 1265, -1, -1, 738, -1, -1, 3385 1089, 742, 743, -1, -1, -1, -1, -1, -1, -1, 3386 1127, -1, -1, -1, -1, -1, 380, -1, -1, -1, 3387 -1, -1, -1, -1, -1, 1142, 1143, -1, -1, -1, 3388 -1, -1, -1, -1, 1123, -1, -1, -1, -1, -1, 3389 -1, -1, -1, -1, 785, 1134, -1, -1, 1137, -1, 3390 1139, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3391 801, -1, 803, -1, -1, 1154, 1155, -1, -1, -1, 3392 -1, -1, 813, -1, -1, -1, -1, -1, -1, -1, 3393 -1, -1, -1, -1, -1, 1174, -1, -1, -1, -1, 3394 -1, -1, -1, -1, -1, 0, -1, -1, 3, 4, 3395 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3396 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3397 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3398 35, 1220, -1, 38, -1, -1, 41, 42, -1, 1228, 3399 -1, -1, -1, 884, -1, -1, -1, -1, -1, -1, 3400 891, 892, -1, 894, -1, -1, -1, 898, -1, -1, 3401 -1, 66, -1, -1, 69, -1, 71, 1284, 73, 74, 3402 1287, 76, 77, 78, -1, -1, -1, -1, 919, 920, 3403 -1, -1, 87, 88, 548, 549, 550, 551, 552, 553, 3404 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 3405 564, 565, -1, -1, -1, -1, -1, -1, 113, 1298, 3406 115, 1300, -1, 954, -1, -1, 121, 122, -1, -1, 3407 -1, -1, -1, -1, -1, -1, -1, 1316, -1, 1318, 3408 -1, -1, 973, 974, -1, -1, -1, -1, -1, -1, 3409 -1, -1, 983, -1, 1333, 1516, -1, -1, 989, 990, 3410 -1, 992, 993, 994, -1, -1, -1, -1, -1, 1348, 3411 1349, -1, -1, 1004, 1005, -1, -1, -1, -1, -1, 3412 1359, -1, -1, 1362, 10, 11, 12, 13, 14, 15, 3413 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3414 26, 27, 28, 29, 30, 1384, -1, -1, -1, -1, 3415 -1, -1, -1, -1, 1393, 41, -1, 1396, -1, 1398, 3416 1399, 1400, -1, -1, -1, -1, -1, -1, -1, -1, 3417 -1, -1, -1, 1064, 688, 1066, -1, -1, -1, -1, 3418 1071, -1, -1, 69, -1, -1, -1, -1, -1, 1080, 3419 -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, 3420 1439, -1, 1441, -1, 1443, -1, -1, -1, -1, -1, 3421 -1, -1, 1103, 1104, -1, -1, -1, -1, -1, -1, 3422 1459, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3423 -1, -1, -1, -1, 1501, 749, 1127, 3, 4, 5, 3424 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3425 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3426 26, 27, 28, 29, -1, 779, 32, 33, 34, 35, 3427 -1, -1, 38, 39, 40, 41, 42, 43, -1, 45, 3428 -1, -1, 48, 49, 50, 51, 52, 53, 54, 55, 3429 -1, -1, -1, 59, -1, -1, -1, 63, 64, -1, 3430 66, -1, 68, 69, -1, 71, -1, 73, 74, -1, 3431 76, 77, 78, 1204, -1, 81, 82, 83, 84, 85, 3432 86, 87, 88, -1, 90, 91, -1, -1, -1, -1, 3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3434 -1, -1, -1, -1, -1, -1, -1, 113, -1, 115, 3435 -1, -1, 118, -1, -1, 121, 122, 123, 124, 125, 3436 126, -1, -1, -1, -1, 131, 1257, 1258, -1, -1, 3437 136, -1, -1, -1, -1, -1, -1, -1, -1, 893, 3438 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3439 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3440 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3441 33, 34, 35, -1, -1, 38, 39, 40, 41, 42, 3442 -1, -1, -1, -1, -1, 939, -1, -1, -1, -1, 3443 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3444 -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, 3445 73, 74, -1, 76, 77, 78, -1, 971, 81, 82, 3446 83, 84, 85, 86, 87, 88, -1, 90, 91, 983, 3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3448 -1, -1, -1, -1, -1, -1, -1, 1378, -1, -1, 3449 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3450 123, 124, 125, 126, -1, -1, -1, -1, 1022, -1, 3451 -1, -1, -1, 136, -1, -1, -1, -1, -1, 3, 2506 3452 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 2507 3453 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, 2510 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, 3454 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3455 34, 35, -1, -1, 38, -1, -1, 41, 42, -1, 3456 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3457 -1, -1, -1, -1, -1, -1, 1467, -1, -1, -1, 3458 -1, -1, 66, -1, 1098, 69, -1, 71, -1, 73, 3459 74, -1, 76, 77, 78, -1, -1, -1, -1, -1, 3460 1491, 1492, -1, 87, 88, -1, -1, -1, -1, -1, 3461 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3462 -1, -1, -1, -1, -1, 1516, -1, -1, -1, 113, 3463 -1, 115, -1, -1, -1, 119, -1, 121, 122, -1, 3464 -1, -1, -1, 1157, 1158, 3, 4, 5, 6, 7, 3465 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3466 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3467 28, 29, -1, -1, 32, 33, 34, 35, -1, -1, 3468 38, 39, 40, 41, 42, -1, -1, -1, -1, -1, 3469 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3470 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3471 68, 69, -1, 71, -1, 73, 74, -1, 76, 77, 3472 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3473 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3475 -1, -1, -1, -1, -1, 113, -1, 115, -1, -1, 3476 -1, -1, -1, 121, 122, 123, 124, 125, 126, -1, 3477 -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, 3478 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3479 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3480 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3481 39, 40, 41, 42, -1, -1, -1, -1, -1, -1, 3482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3483 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 3484 69, -1, 71, -1, 73, 74, -1, 76, 77, 78, 3485 -1, 1365, 81, 82, 83, 84, 85, 86, 87, 88, 3486 -1, 90, 91, -1, -1, -1, -1, -1, 1382, -1, 3487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3488 -1, -1, -1, -1, 113, -1, 115, -1, -1, -1, 3489 -1, 120, 121, 122, 123, 124, 125, 126, 4, 5, 3490 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3491 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3492 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3493 -1, -1, -1, 39, 40, 41, 42, -1, -1, -1, 3494 1454, 1455, -1, -1, -1, -1, -1, -1, -1, -1, 3495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3496 -1, -1, 68, 69, -1, 71, -1, 73, 74, -1, 3497 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 3498 86, 87, 88, -1, 90, 91, -1, -1, -1, -1, 3499 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3500 -1, -1, -1, -1, -1, -1, -1, 113, -1, 115, 3501 -1, -1, -1, -1, 120, 121, 122, 123, 124, 125, 3502 126, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3503 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3504 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3505 33, 34, -1, -1, -1, -1, 39, 40, 41, 42, 3506 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3507 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3508 -1, -1, -1, -1, -1, 68, 69, -1, 71, -1, 3509 73, 74, -1, 76, 77, 78, -1, -1, 81, 82, 3510 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, 3511 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3512 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3513 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3514 123, 124, 125, 126, 4, 5, 6, 7, 8, 9, 3515 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3516 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3517 -1, -1, 32, 33, 34, -1, -1, -1, -1, 39, 3518 40, 41, 42, -1, -1, -1, -1, -1, -1, -1, 3519 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3520 -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 3521 -1, 71, -1, 73, 74, -1, 76, 77, 78, -1, 3522 -1, 81, 82, 83, 84, 85, 86, 87, 88, -1, 3523 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, 3524 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3525 -1, -1, -1, 113, -1, 115, -1, -1, -1, -1, 3526 -1, 121, 122, 123, 124, 125, 126, 4, 5, 6, 3527 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3528 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3529 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3530 -1, -1, 39, 40, 41, 42, -1, -1, -1, -1, 3531 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3533 -1, 68, 69, -1, 71, -1, 73, 74, -1, 76, 3534 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, 3535 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, 3536 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3537 -1, -1, -1, -1, -1, -1, 113, -1, 115, -1, 3538 -1, -1, -1, -1, 121, 122, 123, 124, 125, 126, 3539 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3540 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3541 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3542 33, 34, 35, -1, -1, 38, -1, -1, 41, 42, 3543 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3544 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3545 -1, -1, -1, 66, -1, -1, 69, -1, 71, -1, 3546 73, 74, -1, 76, 77, 78, -1, -1, -1, -1, 3547 -1, -1, -1, -1, 87, 88, -1, -1, -1, -1, 3548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3550 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3551 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3552 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3553 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3554 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3555 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3556 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3557 29, -1, -1, 32, 33, 34, 69, -1, 71, -1, 3558 73, 74, 41, 76, 77, 78, -1, -1, -1, -1, 3559 -1, -1, -1, -1, 87, 88, -1, -1, -1, -1, 3560 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3561 69, -1, -1, -1, -1, -1, -1, 76, 77, -1, 3562 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3563 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3564 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3565 23, 24, 25, 26, 27, 28, 29, 30, -1, 32, 3566 33, 34, 35, -1, -1, 38, -1, -1, 41, -1, 3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3569 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3570 73, -1, -1, 76, 77, -1, -1, 80, 3, 4, 2525 3571 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 2526 3572 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 2527 25, 0, 0, 26, 27, 28, 0, 0, 0, 0, 2528 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2530 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, 3573 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3574 35, -1, 115, 38, -1, -1, 41, -1, 121, 122, 3575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3576 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3577 -1, -1, -1, -1, 69, -1, 71, -1, 73, -1, 3578 -1, 76, 77, 3, 4, 5, 6, 7, 8, 9, 3579 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3580 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3581 -1, -1, 32, 33, 34, -1, -1, -1, -1, -1, 3582 115, 41, -1, -1, -1, -1, 121, 122, -1, 7, 3583 -1, -1, 10, 11, 12, 13, 14, -1, -1, -1, 3584 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3585 -1, 71, -1, 73, -1, -1, 76, 77, -1, -1, 3586 -1, 39, 40, 41, 42, -1, -1, -1, -1, -1, 3587 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3588 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3589 68, 69, -1, -1, -1, 115, 74, -1, -1, -1, 3590 78, 121, 122, 81, 82, 83, 84, 85, 86, 87, 3591 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3593 -1, -1, -1, -1, -1, 113, -1, 115, -1, -1, 3594 -1, -1, -1, 121, 122, 123, 124, 125, 126, 4, 3595 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3596 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3597 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3598 -1, -1, -1, -1, -1, -1, 41, -1, -1, 10, 3599 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3600 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3601 -1, 32, 33, 34, 69, -1, 71, -1, 73, 74, 3602 41, 76, 77, 78, -1, -1, -1, -1, -1, -1, 3603 -1, -1, 87, 88, -1, -1, -1, -1, -1, -1, 3604 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, 3605 -1, -1, -1, -1, -1, 76, 77, -1, 113, -1, 3606 115, -1, -1, -1, -1, -1, 121, 122, 4, 5, 2544 3607 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 2545 3608 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, 3609 26, 27, 28, 29, 115, -1, 32, 33, 34, -1, 3610 121, 122, -1, -1, -1, 41, -1, -1, -1, -1, 3611 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3612 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3613 -1, -1, -1, 69, -1, 71, -1, 73, -1, -1, 3614 76, 77, -1, 4, 5, 6, 7, 8, 9, 10, 3615 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3616 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3617 -1, 32, 33, 34, -1, -1, -1, -1, 114, 115, 3618 41, -1, -1, -1, -1, 121, 122, -1, -1, -1, 3619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3620 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, 3621 71, -1, 73, -1, -1, 76, 77, -1, -1, -1, 3622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 3624 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3625 -1, -1, -1, -1, 115, -1, -1, -1, -1, -1, 3626 121, 122, 4, 5, 6, 7, 8, 9, 10, 11, 3627 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3628 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3629 32, 33, 34, -1, -1, -1, -1, -1, -1, 41, 3630 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3631 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3632 28, 29, -1, -1, 32, 33, 34, 69, -1, 71, 3633 -1, 73, -1, 41, 76, 77, -1, -1, -1, -1, 3634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3635 -1, -1, -1, -1, -1, -1, -1, -1, 100, -1, 3636 -1, 69, -1, -1, -1, -1, -1, -1, 76, 77, 3637 -1, -1, -1, 115, -1, -1, -1, -1, -1, 121, 3638 122, 4, 5, 6, 7, 8, 9, 10, 11, 12, 2548 3639 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, 2803 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, 3640 23, 24, 25, 26, 27, 28, 29, 115, -1, 32, 3641 33, 34, -1, 121, 122, -1, -1, -1, 41, -1, 3093 3642 -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 3643 -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, 3277 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3278 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3279 -1, 30, 31, 32, 668, -1, -1, -1, 324, -1, 3280 39, -1, 676, -1, -1, -1, 332, 333, -1, 335, 3281 336, -1, 1059, -1, -1, -1, -1, 343, -1, -1, 3282 -1, 347, 267, -1, -1, -1, -1, -1, 67, -1, 3283 69, -1, 71, 707, -1, 74, 75, -1, -1, -1, 3284 366, -1, -1, -1, 718, 719, -1, -1, -1, 546, 3285 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 3286 557, 558, 559, 560, 561, 562, 563, -1, -1, 395, 3287 901, -1, -1, 399, -1, -1, 750, 116, 1125, -1, 3288 -1, 755, 10, 11, 12, 13, 14, 15, 16, 17, 3289 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3290 28, -1, -1, 429, -1, -1, -1, -1, -1, -1, 3291 -1, 39, -1, 146, -1, -1, -1, -1, -1, 1166, 3292 -1, -1, -1, 156, -1, -1, -1, -1, -1, -1, 3293 -1, -1, -1, -1, 167, 168, -1, -1, -1, 67, 3294 -1, 815, -1, -1, -1, -1, -1, -1, 822, 475, 3295 78, -1, 478, -1, -1, 1202, -1, -1, -1, -1, 3296 -1, 835, -1, 837, -1, -1, -1, -1, -1, -1, 3297 -1, -1, -1, -1, -1, -1, 850, -1, -1, -1, 3298 -1, -1, 856, -1, -1, -1, -1, -1, -1, 686, 3299 -1, 517, -1, -1, 868, 521, -1, 871, -1, -1, 3300 -1, -1, -1, -1, -1, 238, -1, -1, 1255, 1256, 3301 -1, -1, 1514, -1, -1, -1, 1263, -1, -1, -1, 3302 -1, -1, -1, -1, -1, 1056, -1, -1, -1, 262, 3303 -1, -1, -1, -1, -1, -1, -1, -1, -1, 565, 3304 566, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3305 747, -1, -1, -1, -1, -1, -1, 583, 584, -1, 3306 -1, -1, -1, -1, -1, -1, -1, 593, -1, 595, 3307 596, -1, -1, -1, -1, -1, 602, -1, -1, -1, 3308 777, -1, -1, -1, -1, -1, 612, 613, -1, -1, 3309 -1, -1, 618, -1, -1, -1, -1, -1, -1, -1, 3310 -1, 627, 628, -1, -1, 979, -1, -1, -1, -1, 3311 -1, -1, -1, -1, -1, -1, -1, 643, -1, -1, 3312 -1, -1, 648, 649, 569, 570, 652, 653, -1, 1376, 3313 -1, -1, -1, 659, -1, -1, -1, -1, -1, -1, 3314 -1, -1, -1, -1, 377, -1, -1, -1, -1, -1, 3315 -1, 596, 678, 1184, 599, 600, -1, 602, -1, 604, 3316 605, -1, -1, -1, 609, 610, 1040, -1, -1, -1, 3317 -1, -1, -1, -1, -1, 701, 702, -1, -1, -1, 3318 -1, -1, -1, -1, -1, -1, 1433, -1, 1435, -1, 3319 -1, -1, -1, -1, 891, -1, -1, -1, -1, -1, 3320 1074, -1, -1, -1, -1, 1079, -1, -1, -1, -1, 3321 736, -1, -1, 1087, 740, 741, -1, -1, -1, -1, 3322 -1, -1, -1, 1470, -1, 1472, -1, -1, -1, -1, 3323 -1, -1, -1, -1, -1, -1, -1, 470, -1, -1, 3324 937, -1, -1, -1, -1, -1, -1, 1121, -1, -1, 3325 -1, -1, 1499, -1, -1, -1, -1, 783, 1132, -1, 3326 -1, 1135, -1, 1137, -1, -1, -1, -1, -1, -1, 3327 -1, -1, 969, 799, -1, 801, 509, -1, 1152, 1153, 3328 -1, -1, -1, -1, 981, 811, -1, -1, 521, -1, 3329 -1, -1, -1, -1, 527, -1, -1, 530, 1172, -1, 3330 745, 746, 7, -1, -1, 10, 11, 12, 13, 14, 3331 543, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3332 -1, -1, -1, 1020, -1, -1, -1, -1, -1, -1, 3333 -1, -1, 37, 38, 39, 40, -1, -1, -1, -1, 3334 573, -1, -1, -1, 1218, -1, -1, 580, -1, -1, 3335 -1, 584, 1226, -1, -1, -1, 882, -1, -1, -1, 3336 -1, 66, 67, 889, 890, -1, 892, 72, -1, -1, 3337 896, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3338 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, 3339 -1, 917, 918, -1, -1, -1, -1, 630, -1, 1096, 3340 -1, -1, -1, -1, -1, 638, 111, -1, 113, -1, 3341 -1, -1, -1, -1, 119, 120, 121, 122, 123, 124, 3342 -1, -1, 1296, -1, 1298, -1, 952, -1, -1, -1, 3343 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3344 1314, -1, 1316, -1, -1, 971, 972, -1, -1, -1, 3345 -1, 896, -1, -1, -1, 981, 901, 1331, 1155, 1156, 3346 -1, 987, 988, -1, 990, 991, 992, -1, -1, -1, 3347 -1, -1, 1346, 1347, -1, -1, 1002, 1003, -1, -1, 3348 -1, 714, -1, 1357, -1, -1, 1360, -1, -1, -1, 3349 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3350 -1, -1, -1, 736, -1, 738, -1, -1, 1382, -1, 3351 -1, -1, -1, -1, -1, 748, -1, 1391, -1, -1, 3352 1394, 754, 1396, 1397, 1398, -1, -1, -1, -1, -1, 3353 -1, -1, -1, -1, -1, -1, 1062, -1, 1064, -1, 3354 -1, -1, -1, 1069, -1, -1, -1, -1, -1, -1, 3355 -1, -1, 1078, -1, -1, -1, -1, -1, -1, -1, 3356 -1, 794, 795, 1437, -1, 1439, -1, 1441, -1, -1, 3357 -1, -1, -1, -1, -1, 1101, 1102, 810, -1, -1, 3358 -1, -1, -1, 1457, -1, -1, -1, -1, -1, -1, 3359 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1125, 3360 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3361 -1, 1056, -1, -1, -1, -1, 849, -1, -1, -1, 3362 853, -1, -1, -1, -1, 10, 11, 12, 13, 14, 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, 3374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3375 -1, 984, -1, -1, -1, 1452, 1453, -1, -1, -1, 3376 -1, 67, 995, 69, -1, 71, 72, -1, 74, 75, 3377 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, 3378 86, -1, 1015, -1, 1017, -1, -1, -1, -1, -1, 3379 -1, -1, -1, -1, -1, -1, -1, -1, -1, 1032, 3380 1033, -1, -1, -1, -1, 111, -1, 113, -1, -1, 3381 -1, -1, -1, 119, 120, -1, -1, -1, -1, 1052, 3382 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 3644 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3645 73, -1, -1, 76, 77, -1, 4, 5, 6, 7, 3383 3646 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3384 3647 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3385 1376, -1, 30, 31, 32, 33, -1, -1, 36, -1, 3386 -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, 3387 -1, -1, -1, 1106, -1, -1, -1, -1, -1, -1, 3388 -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, 3389 -1, 69, 1125, 71, -1, -1, 74, 75, -1, -1, 3390 -1, -1, -1, -1, -1, -1, -1, 1140, 1141, -1, 3391 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3392 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3393 24, 25, 26, 27, -1, 113, 30, 31, 32, 1465, 3394 -1, 119, 120, -1, -1, 39, -1, -1, -1, -1, 3395 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3396 -1, -1, -1, 1489, 1490, -1, -1, -1, -1, -1, 3397 -1, -1, -1, 67, -1, 69, -1, 71, -1, -1, 3398 74, 75, -1, -1, -1, -1, -1, -1, 1514, -1, 3399 -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 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, 3648 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3649 -1, -1, 115, 41, -1, -1, -1, -1, 121, 122, 3408 3650 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3409 3651 -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, 3413 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3414 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, 3415 -1, 30, 31, 32, 33, -1, -1, 36, 37, 38, 3416 39, 40, 10, 11, 12, 13, 14, 15, 16, 17, 3652 -1, 69, -1, 71, -1, 73, -1, -1, 76, 77, 3653 -1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3654 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3655 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3656 33, 34, -1, -1, -1, -1, -1, 115, 41, -1, 3657 -1, -1, -1, 121, 122, -1, -1, -1, -1, -1, 3658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3659 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3660 73, -1, -1, 76, 77, 10, 11, 12, 13, 14, 3661 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3662 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3663 -1, -1, -1, -1, 39, 40, 41, 42, -1, -1, 3664 -1, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3665 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3666 -1, -1, -1, 68, 69, -1, -1, -1, -1, 74, 3667 -1, 76, 77, 78, -1, -1, 81, 82, 83, 84, 3668 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3669 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3670 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3671 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3672 125, 126, 10, 11, 12, 13, 14, 15, 16, 17, 3417 3673 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, 3431 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, 3436 -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, 3437 -1, -1, -1, 78, -1, 111, -1, 113, -1, -1, 3438 -1, -1, -1, 119, 120, 121, 122, 123, 124, 4, 3439 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 3440 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3441 25, 26, 27, -1, -1, 30, 31, 32, -1, -1, 3442 -1, -1, 37, 38, 39, 40, 10, 11, 12, 13, 3443 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3444 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3445 -1, 66, 67, -1, 69, 39, 71, 72, -1, 74, 3446 75, 76, -1, -1, 79, 80, 81, 82, 83, 84, 3447 85, 86, -1, 88, 89, -1, -1, -1, -1, -1, 3448 -1, -1, -1, 67, -1, -1, -1, -1, -1, -1, 3449 74, 75, -1, -1, -1, -1, 111, -1, 113, -1, 3450 -1, -1, -1, 118, 119, 120, 121, 122, 123, 124, 3451 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 3452 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3453 24, 25, 26, 27, -1, -1, 30, 31, 32, -1, 3454 -1, -1, -1, 37, 38, 39, 40, 10, 11, 12, 3455 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3456 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3457 -1, -1, 66, 67, -1, 69, 39, 71, 72, -1, 3458 74, 75, 76, -1, -1, 79, 80, 81, 82, 83, 3459 84, 85, 86, -1, 88, 89, -1, -1, -1, -1, 3460 -1, -1, -1, -1, 67, -1, -1, -1, -1, -1, 3461 -1, 74, 75, -1, -1, -1, -1, 111, -1, 113, 3462 -1, -1, -1, -1, 118, 119, 120, 121, 122, 123, 3463 124, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3464 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3465 23, 24, 25, 26, 27, -1, -1, 30, 31, 32, 3466 -1, -1, -1, -1, 37, 38, 39, 40, -1, -1, 3674 28, 29, -1, -1, 32, 33, 34, -1, -1, -1, 3675 -1, 39, 40, 41, 42, -1, -1, -1, -1, -1, 3467 3676 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3468 3677 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3469 -1, -1, -1, 66, 67, -1, 69, -1, 71, 72,3470 -1, 74, 75, 76, -1, -1, 79, 80, 81, 82,3471 8 3, 84, 85, 86, -1, 88, 89, -1, -1, -1,3678 68, 69, -1, -1, -1, -1, 74, -1, 76, 77, 3679 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3680 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3472 3681 -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, 3476 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3477 22, 23, 24, 25, 26, 27, -1, -1, 30, 31, 3478 32, -1, -1, -1, -1, 37, 38, 39, 40, -1, 3682 -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, 3683 -1, -1, -1, 121, 122, 123, 124, 125, 126, 10, 3684 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3685 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3686 -1, 32, 33, 34, -1, -1, -1, -1, 39, 40, 3687 41, 42, -1, -1, -1, -1, -1, -1, -1, -1, 3688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3689 -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, 3690 -1, -1, -1, 74, -1, 76, 77, 78, -1, -1, 3691 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 3692 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3694 -1, -1, 113, -1, 115, -1, -1, -1, -1, -1, 3695 121, 122, 123, 124, 125, 126, 10, 11, 12, 13, 3696 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 3697 24, 25, 26, 27, 28, 29, -1, -1, 32, 33, 3698 34, -1, -1, -1, -1, 39, 40, 41, 42, -1, 3479 3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480 3700 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3481 -1, -1, -1, -1, 6 6, 67, -1, 69, -1, 71,3482 7 2, -1, 74, 75, 76, -1, -1, 79, 80, 81,3483 8 2, 83, 84, 85, 86, -1, 88, 89, -1, -1,3701 -1, -1, -1, -1, 68, 69, -1, -1, -1, -1, 3702 74, -1, 76, 77, 78, -1, -1, 81, 82, 83, 3703 84, 85, 86, 87, 88, -1, 90, 91, -1, -1, 3484 3704 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3485 -1, -1, -1, -1, -1, -1, -1, -1, -1, 11 1,3486 -1, 11 3, -1, -1, -1, -1, -1, 119, 120, 121,3487 12 2, 123, 124, 4, 5, 6, 7, 8, 9, 10,3488 1 1, 12, 13, 14, 15, 16, 17, 18, 19, 20,3489 2 1, 22, 23, 24, 25, 26, 27, -1, -1, 30,3490 31, 32, -1, -1, -1, -1, 37, 38, 39, 40,3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 3706 -1, 115, -1, -1, -1, -1, -1, 121, 122, 123, 3707 124, 125, 126, 10, 11, 12, 13, 14, 15, 16, 3708 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3709 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3710 -1, -1, 39, 40, 41, 42, -1, -1, -1, -1, 3491 3711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3492 3712 -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, 3713 -1, 68, 69, -1, -1, -1, -1, 74, -1, 76, 3714 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, 3715 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, 3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3717 -1, -1, -1, -1, -1, -1, 113, -1, 115, -1, 3718 -1, -1, -1, -1, 121, 122, 123, 124, 125, 126, 3719 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3720 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3721 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3722 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3723 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3724 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3725 -1, -1, 32, 33, 34, -1, 69, -1, 71, -1, 3726 73, 41, -1, 76, 77, -1, -1, -1, -1, -1, 3727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3729 -1, -1, -1, -1, 74, -1, 76, 77, -1, -1, 3730 -1, -1, -1, -1, -1, 118, -1, 87, 88, -1, 3731 -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3732 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3733 26, 27, 28, 29, -1, 115, 32, 33, 34, -1, 3734 -1, 121, 122, -1, -1, 41, 42, 10, 11, 12, 3735 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3736 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3737 33, 34, -1, 69, -1, -1, -1, -1, 41, 42, 3738 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, 3739 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3740 -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, 3741 -1, -1, -1, 76, 77, -1, -1, -1, -1, 115, 3742 -1, -1, -1, 119, -1, 121, 122, -1, -1, -1, 3743 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3744 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3745 29, -1, 115, 32, 33, 34, 119, -1, 121, 122, 3746 -1, -1, 41, 42, 10, 11, 12, 13, 14, 15, 3747 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3748 26, 27, 28, 29, -1, -1, 32, 33, 34, -1, 3749 69, -1, -1, -1, -1, 41, -1, 76, 77, -1, 3496 3750 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3497 3751 -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, 3752 -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, 3753 76, 77, -1, -1, -1, -1, 115, -1, -1, -1, 3754 119, -1, 121, 122, -1, -1, -1, -1, 10, 11, 3755 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3756 22, 23, 24, 25, 26, 27, 28, 29, -1, 115, 3757 32, 33, 34, -1, -1, 121, 122, -1, -1, 41, 3758 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 3759 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 3760 -1, -1, 32, 33, 34, -1, -1, 69, -1, -1, 3761 -1, 41, -1, -1, 76, 77, -1, -1, -1, -1, 3762 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3763 -1, -1, -1, -1, -1, -1, -1, -1, -1, 69, 3764 -1, -1, -1, -1, -1, -1, 76, 77, -1, -1, 3765 -1, -1, -1, 115, -1, -1, -1, -1, -1, 121, 3766 122, -1, -1, -1, 10, 11, 12, 13, 14, 15, 3501 3767 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, 3768 26, 27, 28, 29, -1, 115, 32, 33, 34, -1, 3769 -1, 121, 122, -1, -1, 41, -1, -1, -1, -1, 3520 3770 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3521 3771 -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 1 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,3525 2 0, 21, 22, 23, 24, 25, 26, 27, -1, -1,3526 30, 31, 32, 33, -1, -1, 36, -1, -1, 39,3527 4 0, -1, -1, -1, -1, -1, -1, -1, -1, -1,3772 -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, 3773 76, 77, -1, 4, 5, 6, 7, 8, 9, 10, 3774 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 3775 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, 3776 -1, 32, 33, 34, -1, -1, -1, -1, -1, 115, 3777 41, -1, -1, -1, -1, 121, 122, -1, -1, -1, 3528 3778 -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, 3779 -1, -1, -1, -1, -1, -1, -1, -1, 69, -1, 3780 71, -1, 73, -1, -1, 76, 77, 39, 40, -1, 3781 42, 43, -1, 45, -1, -1, 48, 49, 50, 51, 3782 52, 53, 54, 55, -1, -1, 58, 59, -1, -1, 3783 -1, 63, 64, -1, 66, -1, 68, -1, -1, -1, 3784 -1, -1, 74, 114, -1, -1, 78, -1, -1, 81, 3785 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 3532 3786 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3533 3787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3534 -1, 111, -1, 113, -1, -1, -1, -1, -1, 119, 3535 120, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3536 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3537 22, 23, 24, 25, 26, 27, 28, -1, 30, 31, 3538 32, 33, -1, -1, 36, -1, -1, 39, -1, -1, 3788 -1, 113, -1, 115, -1, -1, 118, -1, -1, 121, 3789 122, 123, 124, 125, 126, -1, -1, 39, 40, 131, 3790 42, 43, -1, 45, 136, -1, 48, 49, 50, 51, 3791 52, 53, 54, 55, -1, -1, -1, 59, -1, -1, 3792 -1, 63, 64, -1, 66, -1, 68, -1, -1, -1, 3793 -1, -1, 74, -1, -1, -1, 78, -1, -1, 81, 3794 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 3539 3795 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3540 3796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3541 -1, -1, -1, -1, -1, 67, -1, 69, -1, 71, 3542 -1, -1, 74, 75, -1, -1, 78, 3, 4, 5, 3543 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 3544 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 3545 26, 27, -1, -1, 30, 31, 32, -1, -1, -1, 3546 -1, 113, -1, 39, -1, -1, -1, 119, 120, -1, 3797 -1, 113, -1, 115, -1, -1, 118, -1, -1, 121, 3798 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, 3799 -1, -1, -1, -1, 136, 4, 5, 6, 7, 8, 3800 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 3801 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 3802 29, -1, -1, 32, 33, 34, -1, -1, -1, -1, 3803 -1, -1, 41, -1, 39, 40, -1, 42, 43, -1, 3804 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3805 55, -1, -1, 58, 59, -1, -1, -1, 63, 64, 3806 69, 66, 71, 68, 73, -1, -1, 76, 77, 74, 3807 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3808 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3809 -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, 3810 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3811 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3812 125, 126, -1, -1, 39, 40, 131, 42, 43, -1, 3813 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3814 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, 3815 -1, 66, -1, 68, -1, -1, -1, -1, -1, 74, 3816 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3817 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3818 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3819 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3820 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3821 125, 126, -1, -1, 39, 40, 131, 42, 43, -1, 3822 45, -1, -1, 48, 49, 50, 51, 52, 53, 54, 3823 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, 3824 -1, 66, -1, 68, -1, -1, -1, -1, -1, 74, 3825 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3826 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3827 -1, -1, -1, 39, 40, -1, 42, -1, -1, -1, 3828 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3829 115, -1, -1, 118, -1, -1, 121, 122, 123, 124, 3830 125, 126, 68, -1, -1, -1, 131, -1, 74, -1, 3831 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 3832 86, 87, 88, -1, 90, 91, -1, -1, -1, -1, 3833 -1, -1, 39, 40, -1, 42, -1, -1, -1, -1, 3834 -1, -1, -1, -1, -1, -1, -1, 113, -1, 115, 3835 -1, 117, 118, -1, -1, 121, 122, 123, 124, 125, 3836 126, 68, -1, -1, -1, -1, -1, 74, -1, -1, 3837 -1, 78, -1, -1, 81, 82, 83, 84, 85, 86, 3838 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, 3839 -1, 39, 40, -1, 42, -1, -1, -1, -1, -1, 3840 -1, -1, -1, -1, -1, -1, 113, -1, 115, -1, 3841 -1, 118, -1, -1, 121, 122, 123, 124, 125, 126, 3842 68, -1, -1, -1, -1, -1, 74, -1, -1, -1, 3843 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, 3844 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, 3845 39, 40, -1, 42, -1, -1, -1, -1, -1, -1, 3846 -1, -1, -1, -1, -1, 113, -1, 115, -1, -1, 3847 -1, -1, 120, 121, 122, 123, 124, 125, 126, 68, 3848 -1, -1, -1, -1, -1, 74, -1, -1, -1, 78, 3849 -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, 3850 -1, 90, 91, -1, -1, -1, -1, -1, -1, 39, 3851 40, -1, 42, -1, -1, -1, -1, -1, -1, -1, 3852 -1, -1, -1, -1, 113, -1, 115, -1, -1, 118, 3853 -1, -1, 121, 122, 123, 124, 125, 126, 68, -1, 3854 -1, -1, -1, -1, 74, -1, -1, -1, 78, -1, 3855 -1, 81, 82, 83, 84, 85, 86, 87, 88, -1, 3856 90, 91, -1, -1, -1, -1, -1, -1, 39, 40, 3857 -1, 42, -1, -1, -1, -1, -1, -1, -1, -1, 3858 -1, -1, -1, 113, -1, 115, -1, -1, -1, -1, 3859 -1, 121, 122, 123, 124, 125, 126, 68, -1, -1, 3860 -1, -1, -1, 74, -1, -1, -1, 78, -1, -1, 3861 81, 82, 83, 84, 85, 86, 87, 88, -1, 90, 3862 91, -1, -1, -1, -1, -1, -1, 39, 40, -1, 3863 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3864 -1, -1, 113, -1, 115, -1, -1, -1, -1, -1, 3865 121, 122, 123, 124, 125, 126, 68, -1, -1, -1, 3866 -1, -1, 74, -1, -1, -1, 78, -1, -1, 81, 3867 82, 83, 84, 85, 86, 87, 88, -1, 90, 91, 3868 -1, -1, -1, -1, -1, -1, 39, 40, -1, 42, 3869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3870 -1, 113, -1, 115, -1, -1, -1, -1, -1, 121, 3871 122, 123, 124, 125, 126, 68, -1, -1, -1, -1, 3872 -1, 74, -1, -1, -1, 78, -1, -1, 81, 82, 3873 83, 84, 85, 86, 87, 88, -1, 90, 91, -1, 3874 -1, -1, -1, -1, -1, 39, 40, -1, 42, -1, 3875 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3876 113, -1, 115, -1, -1, -1, -1, -1, 121, 122, 3877 123, 124, 125, 126, 68, -1, -1, -1, -1, -1, 3878 74, -1, -1, -1, 78, -1, -1, 81, 82, 83, 3879 84, 85, 86, 87, 88, -1, 90, 91, -1, -1, 3880 -1, -1, -1, -1, 39, 40, -1, 42, -1, -1, 3881 -1, -1, -1, -1, -1, -1, -1, -1, -1, 113, 3882 -1, 115, -1, -1, -1, -1, -1, 121, 122, 123, 3883 124, 125, 126, 68, -1, -1, -1, -1, -1, 74, 3884 -1, -1, -1, 78, -1, -1, 81, 82, 83, 84, 3885 85, 86, 87, 88, -1, 90, 91, -1, -1, -1, 3886 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3887 -1, -1, -1, -1, -1, -1, -1, -1, 113, -1, 3888 115, -1, -1, -1, -1, -1, 121, 122, 123, 124, 3889 125, 126, 4, 5, 6, 7, 8, 9, 10, 11, 3890 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3891 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3892 -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, 3893 -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 3894 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 3895 28, 29, -1, -1, 32, 33, 34, 69, -1, 71, 3896 -1, 73, 74, 41, 76, 77, 78, -1, -1, -1, 3897 -1, -1, -1, -1, -1, 87, 88, -1, -1, -1, 3898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3899 -1, 69, -1, -1, -1, -1, 74, -1, 76, 77, 3900 -1, -1, -1, -1, -1, -1, -1, -1, -1, 87, 3901 88, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3902 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3903 22, 23, 24, 25, 26, 27, 28, 29, -1, -1, 3904 32, 33, 34, -1, -1, -1, -1, -1, -1, 41, 3547 3905 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3548 3906 -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, 3907 -1, -1, -1, -1, -1, -1, -1, 69, -1, 71, 3908 -1, 73, -1, -1, 76, 77, 3, 4, 5, 6, 3562 3909 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 3563 3910 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 3564 27, -1, -1, 30, 31, 32, -1, -1, -1, -1,3565 -1, -1, 39, -1, -1, -1, -1, -1, -1, -1,3911 27, 28, 29, -1, -1, 32, 33, 34, -1, -1, 3912 -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, 3566 3913 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3567 3914 -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, 3915 -1, -1, 69, -1, 71, -1, 73, -1, -1, 76, 3916 77, 4, 5, 6, 7, 8, 9, 10, 11, 12, 3917 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3918 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3919 33, 34, -1, -1, -1, -1, -1, -1, 41, -1, 3588 3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3589 3921 -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, 3922 -1, -1, -1, -1, -1, -1, 69, -1, 71, -1, 3923 73, -1, -1, 76, 77, 10, 11, 12, 13, 14, 3924 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 3925 25, 26, 27, 28, 29, -1, -1, 32, 33, 34, 3926 35, 36, 37, -1, -1, -1, 41, 10, 11, 12, 3927 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 3928 23, 24, 25, 26, 27, 28, 29, -1, -1, 32, 3929 33, 34, -1, -1, 69, -1, -1, -1, 41, -1, 3930 -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, 3596 3931 -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 3932 -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, 3933 -1, -1, -1, 76, 77 3857 3934 }; 3858 3935 … … 3863 3940 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 3864 3941 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 3865 22, 23, 24, 25, 26, 27, 30, 31, 32, 33,3866 3 6, 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, 23 6,3870 23 7, 238, 239, 240, 241, 242, 244, 245, 246, 247,3871 248, 249, 25 1, 259, 260, 287, 288, 289, 297, 300,3872 306, 307, 309, 311, 312, 318, 323, 327, 328, 329,3873 330, 331, 332, 333, 334, 3 54, 371, 372, 373, 374,3874 72, 141, 142, 154, 220, 222, 230, 232, 241, 245,3875 24 7, 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 32 9, 330, 332, 333, 334, 114, 136, 223, 230, 232,3879 327, 331, 370, 371, 374, 375, 137, 109, 133, 281,3880 1 16, 137, 178, 74, 75, 139, 276, 137, 137, 137,3881 1 18, 137, 74, 75, 111, 154, 313, 322, 323, 324,3882 325, 326, 327, 3 31, 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 2 32, 241, 245, 247, 288, 327, 331, 33, 238, 238,3886 2 33, 239, 137, 238, 233, 238, 233, 75, 111, 116,3887 278, 289, 116, 278, 238, 233, 118, 137, 137, 0,3888 13 6, 111, 178, 316, 316, 136, 113, 230, 232, 372,3889 2 76, 276, 133, 232, 111, 154, 313, 323, 327, 113,3890 154, 374, 310, 235, 318, 111, 294, 111, 111, 51,3891 11 1, 37, 38, 40, 66, 72, 76, 79, 80, 81,3892 82, 83, 84, 8 8, 89, 111, 113, 121, 122, 123,3893 124, 1 38, 142, 143, 144, 145, 146, 153, 154, 155,3942 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 3943 34, 35, 38, 41, 42, 66, 69, 71, 73, 74, 3944 76, 77, 78, 87, 88, 113, 115, 121, 122, 141, 3945 144, 156, 205, 219, 220, 221, 222, 223, 224, 225, 3946 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 3947 236, 238, 239, 240, 241, 242, 243, 244, 246, 247, 3948 248, 249, 250, 251, 253, 261, 262, 289, 290, 291, 3949 299, 302, 308, 309, 311, 313, 314, 320, 325, 329, 3950 330, 331, 332, 333, 334, 335, 336, 356, 373, 374, 3951 375, 376, 74, 143, 144, 156, 222, 224, 232, 234, 3952 243, 247, 249, 290, 83, 113, 318, 319, 320, 318, 3953 318, 74, 76, 77, 78, 142, 143, 279, 280, 300, 3954 301, 76, 77, 280, 113, 311, 11, 206, 113, 156, 3955 325, 330, 331, 332, 334, 335, 336, 116, 138, 225, 3956 232, 234, 329, 333, 372, 373, 376, 377, 139, 111, 3957 135, 283, 118, 139, 180, 76, 77, 141, 278, 139, 3958 139, 139, 120, 139, 76, 77, 113, 156, 315, 324, 3959 325, 326, 327, 328, 329, 333, 337, 338, 339, 340, 3960 341, 347, 3, 30, 80, 245, 3, 5, 76, 115, 3961 156, 224, 235, 239, 241, 250, 291, 329, 333, 376, 3962 222, 224, 234, 243, 247, 249, 290, 329, 333, 35, 3963 240, 240, 235, 241, 139, 240, 235, 240, 235, 77, 3964 113, 118, 280, 291, 118, 280, 240, 235, 120, 139, 3965 139, 0, 138, 113, 180, 318, 318, 138, 115, 232, 3966 234, 374, 278, 278, 135, 234, 113, 156, 315, 325, 3967 329, 115, 156, 376, 312, 237, 320, 113, 296, 113, 3968 113, 53, 113, 39, 40, 42, 68, 74, 78, 81, 3969 82, 83, 84, 85, 86, 90, 91, 113, 115, 123, 3970 124, 125, 126, 140, 144, 145, 146, 147, 148, 155, 3894 3971 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 3895 166, 167, 16 9, 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 23 7, 241, 244, 245, 247, 266, 267, 271, 272, 273,3899 274, 2 88, 354, 366, 367, 368, 369, 374, 375, 111,3900 3 27, 331, 374, 111, 118, 134, 113, 116, 154, 169,3901 282, 282, 117, 136, 118, 134, 111, 118, 134, 118,3902 13 4, 118, 134, 316, 134, 323, 324, 325, 326, 336,3903 3 37, 338, 339, 232, 322, 335, 64, 315, 113, 316,3904 353, 354, 316, 316, 178, 136, 111, 316, 353, 316,3905 3 16, 232, 313, 111, 111, 231, 232, 230, 232, 136,3906 23 0, 370, 375, 178, 136, 276, 281, 222, 237, 327,3907 331, 178, 136, 298, 232, 241, 134, 232, 232, 296,3908 2 52, 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 1 16, 33, 34, 35, 230, 290, 291, 293, 136, 130,3912 13 3, 295, 136, 233, 238, 239, 276, 319, 320, 321,3913 111, 143, 111, 153, 111, 153, 156, 111, 153, 111,3914 1 11, 153, 153, 113, 169, 174, 178, 230, 279, 370,3915 374, 136, 81, 83, 87, 88, 89, 111, 113, 115,3916 11 6, 99, 100, 101, 102, 103, 104, 105, 106, 107,3917 108, 109, 1 33, 171, 156, 156, 119, 125, 126, 121,3918 12 2, 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 3 74, 375, 137, 111, 113, 154, 323, 340, 341, 342,3923 343, 344, 345, 346, 347, 348, 3 54, 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 13 6, 72, 113, 115, 142, 278, 282, 283, 284, 285,3927 286, 136, 136, 136, 136, 136, 136, 313, 112, 112,3928 11 2, 112, 112, 112, 112, 322, 335, 111, 281, 114,3929 2 12, 136, 313, 174, 280, 174, 280, 313, 113, 212,3930 315, 178, 136, 212, 112, 40, 113, 117, 230, 253,3931 2 54, 255, 370, 116, 118, 376, 133, 263, 116, 232,3932 268, 269, 270, 273, 274, 112, 118, 178, 136, 119,3933 1 69, 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 1 11, 154, 353, 361, 362, 363, 364, 112, 118, 169,3938 1 13, 141, 147, 148, 136, 113, 141, 147, 169, 156,3939 1 56, 156, 157, 157, 158, 158, 159, 159, 159, 159,3940 16 0, 160, 161, 162, 163, 164, 165, 132, 174, 136,3941 350, 351, 352, 232, 349, 316, 316, 169, 280, 136,3942 2 75, 230, 354, 367, 232, 236, 114, 374, 114, 111,3943 1 36, 323, 341, 342, 343, 346, 356, 357, 358, 114,3944 136, 232, 340, 344, 355, 111, 316, 359, 377, 316,3945 3 16, 377, 111, 316, 359, 316, 316, 316, 316, 354,3946 230, 365, 375, 276, 114, 118, 114, 118, 377, 230,3947 3 67, 377, 264, 265, 266, 267, 264, 276, 169, 136,3948 1 13, 278, 132, 118, 376, 282, 113, 132, 286, 29,3949 2 14, 215, 276, 264, 141, 313, 141, 315, 111, 353,3950 354, 111, 353, 354, 144, 354, 178, 268, 112, 112,3951 11 2, 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 1 37, 137, 141, 227, 137, 137, 264, 111, 154, 374,3955 1 37, 117, 232, 291, 169, 292, 137, 136, 136, 111,3956 13 7, 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 17 3, 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 11 2, 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, 5 7, 61, 62, 72, 129, 175, 176, 177, 178,3967 179, 180, 18 2, 183, 195, 197, 198, 203, 217, 312,3968 29, 137, 133, 281, 136, 136, 112, 137, 178, 252,3969 1 34, 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 1 41, 112, 112, 112, 361, 283, 118, 137, 173, 79,3974 82, 84, 141, 149, 150, 151, 148, 137, 149, 167,3975 1 37, 111, 353, 354, 137, 136, 137, 137, 137, 169,3976 1 12, 137, 111, 353, 354, 111, 359, 111, 359, 354,3977 231, 7, 119, 137, 169, 268, 268, 267, 271, 271,3978 27 2, 112, 118, 118, 112, 98, 124, 137, 137, 149,3979 282, 169, 118, 134, 217, 221, 232, 236, 111, 111,3980 1 76, 111, 111, 72, 134, 72, 134, 72, 119, 175,3981 1 11, 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 1 16, 205, 114, 168, 134, 205, 207, 112, 111, 353,3985 354, 376, 170, 114, 137, 152, 113, 150, 152, 152,3986 1 18, 137, 87, 115, 114, 137, 112, 136, 112, 114,3987 114, 11 4, 137, 112, 136, 136, 136, 169, 169, 137,3988 1 14, 137, 137, 137, 137, 136, 136, 168, 168, 114,3989 1 14, 137, 278, 232, 174, 174, 47, 174, 136, 134,3990 13 4, 134, 174, 134, 174, 58, 59, 60, 199, 200,3991 201, 134, 63, 134, 316, 116, 180, 117, 134, 137,3992 13 7, 98, 273, 274, 112, 303, 118, 134, 118, 134,3993 1 17, 301, 132, 143, 112, 112, 132, 136, 117, 114,3994 83, 136, 150, 114, 113, 150, 113, 150, 114, 268,3995 11 4, 268, 268, 268, 137, 137, 114, 114, 112, 112,3996 114, 11 8, 98, 267, 98, 137, 114, 112, 112, 111,3997 11 2, 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 13 7, 137, 137, 137, 114, 114, 136, 137, 114, 176,4001 44, 45, 116, 186, 187, 188, 174, 176, 137, 112,4002 1 75, 116, 188, 98, 136, 98, 136, 111, 111, 134,4003 11 7, 136, 276, 313, 117, 118, 132, 168, 112, 137,4004 1 37, 149, 149, 112, 112, 112, 112, 271, 42, 168,4005 184, 185, 314, 132, 136, 176, 186, 112, 134, 176,4006 13 4, 136, 112, 136, 112, 136, 98, 136, 98, 136,4007 1 34, 302, 143, 141, 209, 112, 134, 112, 114, 137,4008 1 37, 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 1 87, 189, 190, 136, 134, 187, 191, 192, 137, 111,4012 1 54, 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 11 2, 193, 137, 137, 178, 178, 137, 1373972 166, 167, 168, 169, 171, 174, 232, 282, 298, 372, 3973 377, 234, 114, 114, 114, 114, 114, 114, 114, 115, 3974 232, 356, 374, 115, 121, 156, 171, 224, 225, 231, 3975 234, 238, 239, 243, 246, 247, 249, 268, 269, 273, 3976 274, 275, 276, 290, 356, 368, 369, 370, 371, 376, 3977 377, 113, 329, 333, 376, 113, 120, 136, 115, 118, 3978 156, 171, 284, 284, 119, 138, 120, 136, 113, 120, 3979 136, 120, 136, 120, 136, 318, 136, 325, 326, 327, 3980 328, 338, 339, 340, 341, 234, 324, 337, 66, 317, 3981 115, 318, 355, 356, 318, 318, 180, 138, 113, 318, 3982 355, 318, 318, 234, 315, 113, 113, 233, 234, 232, 3983 234, 138, 232, 372, 377, 180, 138, 278, 283, 224, 3984 239, 329, 333, 180, 138, 300, 234, 243, 136, 234, 3985 234, 298, 254, 252, 264, 280, 263, 234, 300, 136, 3986 136, 311, 138, 143, 277, 3, 139, 214, 215, 229, 3987 231, 234, 138, 317, 113, 317, 171, 325, 234, 113, 3988 138, 278, 118, 35, 36, 37, 232, 292, 293, 295, 3989 138, 132, 135, 297, 138, 235, 240, 241, 278, 321, 3990 322, 323, 113, 145, 113, 155, 113, 155, 158, 113, 3991 155, 113, 113, 155, 155, 115, 171, 176, 180, 232, 3992 281, 372, 376, 138, 83, 85, 89, 90, 91, 113, 3993 115, 117, 118, 101, 102, 103, 104, 105, 106, 107, 3994 108, 109, 110, 111, 135, 173, 158, 158, 121, 127, 3995 128, 123, 124, 92, 93, 94, 95, 129, 130, 96, 3996 97, 122, 131, 132, 98, 99, 133, 113, 156, 351, 3997 352, 353, 354, 355, 114, 120, 113, 355, 356, 113, 3998 355, 356, 138, 232, 374, 116, 138, 139, 232, 234, 3999 367, 368, 376, 377, 139, 113, 115, 156, 325, 342, 4000 343, 344, 345, 346, 347, 348, 349, 350, 356, 357, 4001 358, 359, 360, 361, 362, 156, 376, 234, 139, 139, 4002 156, 232, 234, 369, 278, 232, 356, 369, 278, 138, 4003 138, 138, 138, 74, 115, 117, 144, 280, 284, 285, 4004 286, 287, 288, 138, 138, 138, 138, 138, 138, 315, 4005 114, 114, 114, 114, 114, 114, 114, 324, 337, 113, 4006 283, 116, 214, 138, 315, 176, 282, 176, 282, 315, 4007 115, 214, 317, 180, 138, 214, 114, 42, 115, 119, 4008 232, 255, 256, 257, 372, 118, 120, 378, 135, 265, 4009 118, 234, 270, 271, 272, 275, 276, 114, 120, 180, 4010 138, 121, 171, 138, 231, 234, 269, 368, 376, 309, 4011 310, 113, 156, 342, 114, 120, 135, 379, 280, 292, 4012 113, 118, 280, 282, 292, 114, 120, 113, 145, 114, 4013 134, 281, 281, 281, 150, 171, 282, 281, 138, 114, 4014 120, 114, 113, 156, 355, 363, 364, 365, 366, 114, 4015 120, 171, 115, 143, 149, 150, 138, 115, 143, 149, 4016 171, 158, 158, 158, 159, 159, 160, 160, 161, 161, 4017 161, 161, 162, 162, 163, 164, 165, 166, 167, 134, 4018 176, 138, 352, 353, 354, 234, 351, 318, 318, 171, 4019 282, 138, 277, 232, 356, 369, 234, 238, 116, 376, 4020 116, 113, 138, 325, 343, 344, 345, 348, 358, 359, 4021 360, 116, 138, 234, 342, 346, 357, 113, 318, 361, 4022 379, 318, 318, 379, 113, 318, 361, 318, 318, 318, 4023 318, 356, 232, 367, 377, 278, 116, 120, 116, 120, 4024 379, 232, 369, 379, 266, 267, 268, 269, 266, 278, 4025 171, 138, 115, 280, 134, 120, 378, 284, 115, 134, 4026 288, 31, 216, 217, 278, 266, 143, 315, 143, 317, 4027 113, 355, 356, 113, 355, 356, 145, 356, 180, 270, 4028 114, 114, 114, 114, 138, 180, 214, 180, 118, 256, 4029 257, 138, 113, 134, 156, 258, 260, 324, 325, 337, 4030 363, 120, 136, 120, 136, 280, 254, 280, 119, 169, 4031 170, 264, 139, 139, 143, 229, 139, 139, 266, 113, 4032 156, 376, 139, 119, 234, 293, 171, 294, 139, 138, 4033 138, 113, 139, 114, 322, 176, 177, 134, 136, 115, 4034 145, 207, 208, 209, 114, 120, 114, 114, 114, 114, 4035 171, 364, 365, 366, 234, 363, 318, 318, 118, 158, 4036 171, 172, 175, 120, 138, 114, 120, 171, 138, 119, 4037 169, 134, 270, 114, 114, 114, 351, 270, 114, 232, 4038 369, 115, 121, 156, 171, 171, 234, 348, 270, 114, 4039 114, 114, 114, 114, 114, 114, 7, 234, 342, 346, 4040 357, 138, 138, 379, 138, 138, 139, 139, 139, 139, 4041 283, 169, 170, 171, 316, 138, 284, 286, 119, 138, 4042 218, 280, 42, 43, 45, 48, 49, 50, 51, 52, 4043 53, 54, 55, 59, 63, 64, 74, 131, 177, 178, 4044 179, 180, 181, 182, 184, 185, 197, 199, 200, 205, 4045 219, 314, 31, 139, 135, 283, 138, 138, 114, 139, 4046 180, 254, 136, 136, 325, 170, 234, 259, 260, 259, 4047 280, 318, 119, 265, 378, 114, 120, 116, 116, 139, 4048 234, 120, 379, 296, 114, 292, 222, 224, 232, 304, 4049 305, 306, 307, 298, 114, 114, 134, 170, 113, 114, 4050 134, 120, 143, 114, 114, 114, 363, 285, 120, 139, 4051 175, 81, 84, 86, 143, 151, 152, 153, 150, 139, 4052 151, 169, 139, 113, 355, 356, 139, 138, 139, 139, 4053 139, 171, 114, 139, 113, 355, 356, 113, 361, 113, 4054 361, 356, 233, 7, 121, 139, 171, 270, 270, 269, 4055 273, 273, 274, 114, 120, 120, 114, 100, 126, 139, 4056 139, 151, 284, 171, 120, 136, 219, 223, 234, 238, 4057 113, 113, 178, 113, 113, 74, 136, 74, 136, 74, 4058 121, 177, 113, 180, 172, 172, 134, 148, 136, 139, 4059 138, 139, 218, 114, 171, 270, 270, 318, 114, 119, 4060 258, 119, 138, 114, 138, 139, 315, 119, 138, 139, 4061 139, 114, 118, 207, 116, 170, 136, 207, 209, 114, 4062 113, 355, 356, 378, 172, 116, 139, 154, 115, 152, 4063 154, 154, 120, 139, 89, 117, 116, 139, 114, 138, 4064 114, 116, 116, 116, 139, 114, 138, 138, 138, 171, 4065 171, 139, 116, 139, 139, 139, 139, 138, 138, 170, 4066 170, 116, 116, 139, 280, 234, 176, 176, 49, 176, 4067 138, 136, 136, 136, 176, 136, 176, 60, 61, 62, 4068 201, 202, 203, 136, 65, 136, 318, 118, 182, 119, 4069 136, 139, 139, 100, 275, 276, 114, 305, 120, 136, 4070 120, 136, 119, 303, 134, 145, 114, 114, 134, 138, 4071 119, 116, 85, 138, 152, 116, 115, 152, 115, 152, 4072 116, 270, 116, 270, 270, 270, 139, 139, 116, 116, 4073 114, 114, 116, 120, 100, 269, 100, 139, 116, 114, 4074 114, 113, 114, 177, 198, 219, 136, 114, 113, 113, 4075 180, 203, 60, 61, 171, 178, 149, 114, 114, 118, 4076 138, 138, 304, 145, 210, 113, 136, 210, 270, 151, 4077 138, 138, 139, 139, 139, 139, 116, 116, 138, 139, 4078 116, 178, 46, 47, 118, 188, 189, 190, 176, 178, 4079 139, 114, 177, 118, 190, 100, 138, 100, 138, 113, 4080 113, 136, 119, 138, 278, 315, 119, 120, 134, 170, 4081 114, 139, 139, 151, 151, 114, 114, 114, 114, 273, 4082 44, 170, 186, 187, 316, 134, 138, 178, 188, 114, 4083 136, 178, 136, 138, 114, 138, 114, 138, 100, 138, 4084 100, 138, 136, 304, 145, 143, 211, 114, 136, 114, 4085 116, 139, 139, 178, 100, 120, 134, 139, 212, 213, 4086 219, 136, 177, 177, 212, 180, 204, 232, 372, 180, 4087 204, 114, 138, 114, 138, 119, 114, 120, 116, 116, 4088 170, 186, 189, 191, 192, 138, 136, 189, 193, 194, 4089 139, 113, 156, 315, 363, 143, 139, 180, 204, 180, 4090 204, 113, 136, 143, 178, 183, 119, 189, 219, 177, 4091 58, 183, 196, 119, 189, 114, 234, 114, 139, 139, 4092 298, 178, 183, 136, 195, 196, 183, 196, 180, 180, 4093 114, 114, 114, 195, 139, 139, 180, 180, 139, 139 4017 4094 }; 4018 4095 … … 4851 4928 4852 4929 /* Line 1806 of yacc.c */ 4853 #line 30 5"parser.yy"4930 #line 306 "parser.yy" 4854 4931 { typedefTable.enterScope(); } 4855 4932 break; … … 4858 4935 4859 4936 /* Line 1806 of yacc.c */ 4860 #line 3 09"parser.yy"4937 #line 310 "parser.yy" 4861 4938 { typedefTable.leaveScope(); } 4862 4939 break; … … 4865 4942 4866 4943 /* Line 1806 of yacc.c */ 4867 #line 31 6"parser.yy"4944 #line 317 "parser.yy" 4868 4945 { (yyval.en) = new ExpressionNode( build_constantInteger( *(yyvsp[(1) - (1)].tok) ) ); } 4869 4946 break; 4870 4947 4871 4948 case 5: 4872 4873 /* Line 1806 of yacc.c */4874 #line 317 "parser.yy"4875 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); }4876 break;4877 4878 case 6:4879 4949 4880 4950 /* Line 1806 of yacc.c */ … … 4883 4953 break; 4884 4954 4885 case 7:4955 case 6: 4886 4956 4887 4957 /* Line 1806 of yacc.c */ … … 4890 4960 break; 4891 4961 4962 case 7: 4963 4964 /* Line 1806 of yacc.c */ 4965 #line 320 "parser.yy" 4966 { (yyval.en) = new ExpressionNode( build_constantFloat( *(yyvsp[(1) - (1)].tok) ) ); } 4967 break; 4968 4892 4969 case 8: 4893 4970 4894 4971 /* Line 1806 of yacc.c */ 4895 #line 32 0"parser.yy"4972 #line 321 "parser.yy" 4896 4973 { (yyval.en) = new ExpressionNode( build_constantChar( *(yyvsp[(1) - (1)].tok) ) ); } 4897 4974 break; … … 4900 4977 4901 4978 /* Line 1806 of yacc.c */ 4902 #line 34 5"parser.yy"4979 #line 346 "parser.yy" 4903 4980 { (yyval.constant) = build_constantStr( *(yyvsp[(1) - (1)].str) ); } 4904 4981 break; … … 4907 4984 4908 4985 /* Line 1806 of yacc.c */ 4909 #line 3 49"parser.yy"4986 #line 350 "parser.yy" 4910 4987 { (yyval.str) = (yyvsp[(1) - (1)].tok); } 4911 4988 break; … … 4914 4991 4915 4992 /* Line 1806 of yacc.c */ 4916 #line 35 1"parser.yy"4993 #line 352 "parser.yy" 4917 4994 { 4918 4995 appendStr( (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].tok) ); // append 2nd juxtaposed string to 1st … … 4925 5002 4926 5003 /* Line 1806 of yacc.c */ 4927 #line 36 2"parser.yy"5004 #line 363 "parser.yy" 4928 5005 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (1)].tok) ) ); } 4929 5006 break; … … 4932 5009 4933 5010 /* Line 1806 of yacc.c */ 4934 #line 36 4"parser.yy"4935 { (yyval.en) = new ExpressionNode( build_ varref((yyvsp[(1) - (1)].tok) ) ); }5011 #line 365 "parser.yy" 5012 { (yyval.en) = new ExpressionNode( build_constantZeroOne( *(yyvsp[(1) - (1)].tok) ) ); } 4936 5013 break; 4937 5014 … … 4939 5016 4940 5017 /* Line 1806 of yacc.c */ 4941 #line 36 7"parser.yy"5018 #line 368 "parser.yy" 4942 5019 { (yyval.en) = (yyvsp[(2) - (3)].en); } 4943 5020 break; … … 4946 5023 4947 5024 /* Line 1806 of yacc.c */ 4948 #line 3 69"parser.yy"5025 #line 370 "parser.yy" 4949 5026 { (yyval.en) = new ExpressionNode( build_valexpr( (yyvsp[(2) - (3)].sn) ) ); } 4950 5027 break; … … 4953 5030 4954 5031 /* Line 1806 of yacc.c */ 4955 #line 3 79"parser.yy"5032 #line 380 "parser.yy" 4956 5033 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Index, (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en) ) ); } 4957 5034 break; … … 4960 5037 4961 5038 /* Line 1806 of yacc.c */ 4962 #line 38 1"parser.yy"5039 #line 382 "parser.yy" 4963 5040 { (yyval.en) = new ExpressionNode( build_func( (yyvsp[(1) - (4)].en), (yyvsp[(3) - (4)].en) ) ); } 4964 5041 break; … … 4967 5044 4968 5045 /* Line 1806 of yacc.c */ 4969 #line 38 3"parser.yy"5046 #line 384 "parser.yy" 4970 5047 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4971 5048 break; … … 4974 5051 4975 5052 /* Line 1806 of yacc.c */ 4976 #line 38 5"parser.yy"5053 #line 386 "parser.yy" 4977 5054 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4978 5055 break; … … 4981 5058 4982 5059 /* Line 1806 of yacc.c */ 4983 #line 38 7"parser.yy"5060 #line 388 "parser.yy" 4984 5061 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (2)].en), build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ) ) ); } 4985 5062 break; … … 4988 5065 4989 5066 /* Line 1806 of yacc.c */ 4990 #line 3 89"parser.yy"5067 #line 390 "parser.yy" 4991 5068 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), build_varref( (yyvsp[(3) - (3)].tok) ) ) ); } 4992 5069 break; … … 4995 5072 4996 5073 /* Line 1806 of yacc.c */ 4997 #line 39 1"parser.yy"5074 #line 392 "parser.yy" 4998 5075 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 4999 5076 break; … … 5002 5079 5003 5080 /* Line 1806 of yacc.c */ 5004 #line 39 3"parser.yy"5081 #line 394 "parser.yy" 5005 5082 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::IncrPost, (yyvsp[(1) - (2)].en) ) ); } 5006 5083 break; … … 5009 5086 5010 5087 /* Line 1806 of yacc.c */ 5011 #line 39 5"parser.yy"5088 #line 396 "parser.yy" 5012 5089 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::DecrPost, (yyvsp[(1) - (2)].en) ) ); } 5013 5090 break; … … 5016 5093 5017 5094 /* Line 1806 of yacc.c */ 5018 #line 39 7"parser.yy"5095 #line 398 "parser.yy" 5019 5096 { (yyval.en) = new ExpressionNode( build_compoundLiteral( (yyvsp[(2) - (7)].decl), new InitializerNode( (yyvsp[(5) - (7)].in), true ) ) ); } 5020 5097 break; … … 5023 5100 5024 5101 /* Line 1806 of yacc.c */ 5025 #line 399"parser.yy"5102 #line 400 "parser.yy" 5026 5103 { 5027 5104 Token fn; … … 5034 5111 5035 5112 /* Line 1806 of yacc.c */ 5036 #line 4 09"parser.yy"5113 #line 410 "parser.yy" 5037 5114 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 5038 5115 break; … … 5041 5118 5042 5119 /* Line 1806 of yacc.c */ 5043 #line 41 4"parser.yy"5044 { (yyval.en) = 0; }5120 #line 415 "parser.yy" 5121 { (yyval.en) = nullptr; } 5045 5122 break; 5046 5123 … … 5048 5125 5049 5126 /* Line 1806 of yacc.c */ 5050 #line 42 0"parser.yy"5127 #line 421 "parser.yy" 5051 5128 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5052 5129 break; … … 5055 5132 5056 5133 /* Line 1806 of yacc.c */ 5057 #line 42 6"parser.yy"5134 #line 427 "parser.yy" 5058 5135 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (2)].tok) ) ), maybeMoveBuild<Expression>( (yyvsp[(2) - (2)].en) ) ) ); } 5059 5136 break; … … 5062 5139 5063 5140 /* Line 1806 of yacc.c */ 5064 #line 42 8"parser.yy"5141 #line 429 "parser.yy" 5065 5142 { (yyval.en) = new ExpressionNode( build_fieldSel( new ExpressionNode( build_field_name_REALDECIMALconstant( *(yyvsp[(1) - (6)].tok) ) ), build_tuple( (yyvsp[(4) - (6)].en) ) ) ); } 5066 5143 break; … … 5069 5146 5070 5147 /* Line 1806 of yacc.c */ 5071 #line 43 0"parser.yy"5148 #line 431 "parser.yy" 5072 5149 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 5073 5150 break; … … 5076 5153 5077 5154 /* Line 1806 of yacc.c */ 5078 #line 43 2"parser.yy"5155 #line 433 "parser.yy" 5079 5156 { (yyval.en) = new ExpressionNode( build_fieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5080 5157 break; … … 5083 5160 5084 5161 /* Line 1806 of yacc.c */ 5085 #line 43 4"parser.yy"5162 #line 435 "parser.yy" 5086 5163 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (3)].en), maybeMoveBuild<Expression>( (yyvsp[(3) - (3)].en) ) ) ); } 5087 5164 break; … … 5090 5167 5091 5168 /* Line 1806 of yacc.c */ 5092 #line 43 6"parser.yy"5169 #line 437 "parser.yy" 5093 5170 { (yyval.en) = new ExpressionNode( build_pfieldSel( (yyvsp[(1) - (7)].en), build_tuple( (yyvsp[(5) - (7)].en) ) ) ); } 5094 5171 break; … … 5097 5174 5098 5175 /* Line 1806 of yacc.c */ 5099 #line 44 1"parser.yy"5176 #line 442 "parser.yy" 5100 5177 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantInteger( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 5101 5178 break; … … 5104 5181 5105 5182 /* Line 1806 of yacc.c */ 5106 #line 44 3"parser.yy"5183 #line 444 "parser.yy" 5107 5184 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 5108 5185 break; … … 5111 5188 5112 5189 /* Line 1806 of yacc.c */ 5113 #line 445 "parser.yy" 5114 { (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); } 5190 #line 446 "parser.yy" 5191 { 5192 if( (*(yyvsp[(1) - (2)].tok)) == "0" || (*(yyvsp[(1) - (2)].tok)) == "1" ) { 5193 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *(yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); 5194 } else { 5195 (yyval.en) = new ExpressionNode( build_field_name_fraction_constants( build_varref( (yyvsp[(1) - (2)].tok) ), (yyvsp[(2) - (2)].en) ) ); 5196 } 5197 } 5115 5198 break; 5116 5199 … … 5118 5201 5119 5202 /* Line 1806 of yacc.c */ 5120 #line 45 0"parser.yy"5203 #line 457 "parser.yy" 5121 5204 { (yyval.en) = nullptr; } 5122 5205 break; … … 5125 5208 5126 5209 /* Line 1806 of yacc.c */ 5127 #line 45 2"parser.yy"5210 #line 459 "parser.yy" 5128 5211 { 5129 5212 Expression * constant = build_field_name_REALFRACTIONconstant( *(yyvsp[(2) - (2)].tok) ); … … 5135 5218 5136 5219 /* Line 1806 of yacc.c */ 5137 #line 4 63"parser.yy"5220 #line 470 "parser.yy" 5138 5221 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5139 5222 break; … … 5142 5225 5143 5226 /* Line 1806 of yacc.c */ 5144 #line 4 65"parser.yy"5227 #line 472 "parser.yy" 5145 5228 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 5146 5229 break; … … 5149 5232 5150 5233 /* Line 1806 of yacc.c */ 5151 #line 4 67"parser.yy"5234 #line 474 "parser.yy" 5152 5235 { (yyval.en) = (yyvsp[(2) - (2)].en)->set_extension( true ); } 5153 5236 break; … … 5156 5239 5157 5240 /* Line 1806 of yacc.c */ 5158 #line 47 2"parser.yy"5241 #line 479 "parser.yy" 5159 5242 { 5160 5243 switch ( (yyvsp[(1) - (2)].op) ) { … … 5174 5257 5175 5258 /* Line 1806 of yacc.c */ 5176 #line 4 85"parser.yy"5259 #line 492 "parser.yy" 5177 5260 { (yyval.en) = new ExpressionNode( build_unary_val( (yyvsp[(1) - (2)].op), (yyvsp[(2) - (2)].en) ) ); } 5178 5261 break; … … 5181 5264 5182 5265 /* Line 1806 of yacc.c */ 5183 #line 4 87"parser.yy"5266 #line 494 "parser.yy" 5184 5267 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Incr, (yyvsp[(2) - (2)].en) ) ); } 5185 5268 break; … … 5188 5271 5189 5272 /* Line 1806 of yacc.c */ 5190 #line 4 89"parser.yy"5273 #line 496 "parser.yy" 5191 5274 { (yyval.en) = new ExpressionNode( build_unary_ptr( OperKinds::Decr, (yyvsp[(2) - (2)].en) ) ); } 5192 5275 break; … … 5195 5278 5196 5279 /* Line 1806 of yacc.c */ 5197 #line 49 1"parser.yy"5280 #line 498 "parser.yy" 5198 5281 { (yyval.en) = new ExpressionNode( build_sizeOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5199 5282 break; … … 5202 5285 5203 5286 /* Line 1806 of yacc.c */ 5204 #line 493"parser.yy"5287 #line 500 "parser.yy" 5205 5288 { (yyval.en) = new ExpressionNode( build_sizeOftype( (yyvsp[(3) - (4)].decl) ) ); } 5206 5289 break; … … 5209 5292 5210 5293 /* Line 1806 of yacc.c */ 5211 #line 495"parser.yy"5294 #line 502 "parser.yy" 5212 5295 { (yyval.en) = new ExpressionNode( build_alignOfexpr( (yyvsp[(2) - (2)].en) ) ); } 5213 5296 break; … … 5216 5299 5217 5300 /* Line 1806 of yacc.c */ 5218 #line 497"parser.yy"5301 #line 504 "parser.yy" 5219 5302 { (yyval.en) = new ExpressionNode( build_alignOftype( (yyvsp[(3) - (4)].decl) ) ); } 5220 5303 break; … … 5223 5306 5224 5307 /* Line 1806 of yacc.c */ 5225 #line 499"parser.yy"5308 #line 506 "parser.yy" 5226 5309 { (yyval.en) = new ExpressionNode( build_offsetOf( (yyvsp[(3) - (6)].decl), build_varref( (yyvsp[(5) - (6)].tok) ) ) ); } 5227 5310 break; … … 5230 5313 5231 5314 /* Line 1806 of yacc.c */ 5232 #line 50 1"parser.yy"5315 #line 508 "parser.yy" 5233 5316 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (1)].tok) ), nullptr ) ); } 5234 5317 break; … … 5237 5320 5238 5321 /* Line 1806 of yacc.c */ 5239 #line 5 03"parser.yy"5322 #line 510 "parser.yy" 5240 5323 { (yyval.en) = new ExpressionNode( build_attrexpr( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].en) ) ); } 5241 5324 break; … … 5244 5327 5245 5328 /* Line 1806 of yacc.c */ 5246 #line 5 05"parser.yy"5329 #line 512 "parser.yy" 5247 5330 { (yyval.en) = new ExpressionNode( build_attrtype( build_varref( (yyvsp[(1) - (4)].tok) ), (yyvsp[(3) - (4)].decl) ) ); } 5248 5331 break; … … 5251 5334 5252 5335 /* Line 1806 of yacc.c */ 5253 #line 51 1"parser.yy"5336 #line 518 "parser.yy" 5254 5337 { (yyval.op) = OperKinds::PointTo; } 5255 5338 break; … … 5258 5341 5259 5342 /* Line 1806 of yacc.c */ 5260 #line 51 2"parser.yy"5343 #line 519 "parser.yy" 5261 5344 { (yyval.op) = OperKinds::AddressOf; } 5262 5345 break; … … 5265 5348 5266 5349 /* Line 1806 of yacc.c */ 5267 #line 5 18"parser.yy"5350 #line 525 "parser.yy" 5268 5351 { (yyval.op) = OperKinds::UnPlus; } 5269 5352 break; … … 5272 5355 5273 5356 /* Line 1806 of yacc.c */ 5274 #line 5 19"parser.yy"5357 #line 526 "parser.yy" 5275 5358 { (yyval.op) = OperKinds::UnMinus; } 5276 5359 break; … … 5279 5362 5280 5363 /* Line 1806 of yacc.c */ 5281 #line 52 0"parser.yy"5364 #line 527 "parser.yy" 5282 5365 { (yyval.op) = OperKinds::Neg; } 5283 5366 break; … … 5286 5369 5287 5370 /* Line 1806 of yacc.c */ 5288 #line 52 1"parser.yy"5371 #line 528 "parser.yy" 5289 5372 { (yyval.op) = OperKinds::BitNeg; } 5290 5373 break; … … 5293 5376 5294 5377 /* Line 1806 of yacc.c */ 5295 #line 5 27"parser.yy"5378 #line 534 "parser.yy" 5296 5379 { (yyval.en) = new ExpressionNode( build_cast( (yyvsp[(2) - (4)].decl), (yyvsp[(4) - (4)].en) ) ); } 5297 5380 break; … … 5300 5383 5301 5384 /* Line 1806 of yacc.c */ 5302 #line 5 35"parser.yy"5385 #line 542 "parser.yy" 5303 5386 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mul, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5304 5387 break; … … 5307 5390 5308 5391 /* Line 1806 of yacc.c */ 5309 #line 5 37"parser.yy"5392 #line 544 "parser.yy" 5310 5393 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Div, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5311 5394 break; … … 5314 5397 5315 5398 /* Line 1806 of yacc.c */ 5316 #line 5 39"parser.yy"5399 #line 546 "parser.yy" 5317 5400 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Mod, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5318 5401 break; … … 5321 5404 5322 5405 /* Line 1806 of yacc.c */ 5323 #line 5 45"parser.yy"5406 #line 552 "parser.yy" 5324 5407 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Plus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5325 5408 break; … … 5328 5411 5329 5412 /* Line 1806 of yacc.c */ 5330 #line 5 47"parser.yy"5413 #line 554 "parser.yy" 5331 5414 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Minus, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5332 5415 break; … … 5335 5418 5336 5419 /* Line 1806 of yacc.c */ 5337 #line 5 53"parser.yy"5420 #line 560 "parser.yy" 5338 5421 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5339 5422 break; … … 5342 5425 5343 5426 /* Line 1806 of yacc.c */ 5344 #line 5 55"parser.yy"5427 #line 562 "parser.yy" 5345 5428 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::RShift, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5346 5429 break; … … 5349 5432 5350 5433 /* Line 1806 of yacc.c */ 5351 #line 56 1"parser.yy"5434 #line 568 "parser.yy" 5352 5435 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5353 5436 break; … … 5356 5439 5357 5440 /* Line 1806 of yacc.c */ 5358 #line 5 63"parser.yy"5441 #line 570 "parser.yy" 5359 5442 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5360 5443 break; … … 5363 5446 5364 5447 /* Line 1806 of yacc.c */ 5365 #line 5 65"parser.yy"5448 #line 572 "parser.yy" 5366 5449 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::LEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5367 5450 break; … … 5370 5453 5371 5454 /* Line 1806 of yacc.c */ 5372 #line 5 67"parser.yy"5455 #line 574 "parser.yy" 5373 5456 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::GEThan, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5374 5457 break; … … 5377 5460 5378 5461 /* Line 1806 of yacc.c */ 5379 #line 5 73"parser.yy"5462 #line 580 "parser.yy" 5380 5463 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Eq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5381 5464 break; … … 5384 5467 5385 5468 /* Line 1806 of yacc.c */ 5386 #line 5 75"parser.yy"5469 #line 582 "parser.yy" 5387 5470 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Neq, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5388 5471 break; … … 5391 5474 5392 5475 /* Line 1806 of yacc.c */ 5393 #line 58 1"parser.yy"5476 #line 588 "parser.yy" 5394 5477 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitAnd, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5395 5478 break; … … 5398 5481 5399 5482 /* Line 1806 of yacc.c */ 5400 #line 5 87"parser.yy"5483 #line 594 "parser.yy" 5401 5484 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::Xor, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5402 5485 break; … … 5405 5488 5406 5489 /* Line 1806 of yacc.c */ 5407 #line 593"parser.yy"5490 #line 600 "parser.yy" 5408 5491 { (yyval.en) = new ExpressionNode( build_binary_val( OperKinds::BitOr, (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5409 5492 break; … … 5412 5495 5413 5496 /* Line 1806 of yacc.c */ 5414 #line 599"parser.yy"5497 #line 606 "parser.yy" 5415 5498 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), true ) ); } 5416 5499 break; … … 5419 5502 5420 5503 /* Line 1806 of yacc.c */ 5421 #line 6 05"parser.yy"5504 #line 612 "parser.yy" 5422 5505 { (yyval.en) = new ExpressionNode( build_and_or( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en), false ) ); } 5423 5506 break; … … 5426 5509 5427 5510 /* Line 1806 of yacc.c */ 5428 #line 61 1"parser.yy"5511 #line 618 "parser.yy" 5429 5512 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (5)].en), (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].en) ) ); } 5430 5513 break; … … 5433 5516 5434 5517 /* Line 1806 of yacc.c */ 5435 #line 6 14"parser.yy"5518 #line 621 "parser.yy" 5436 5519 { (yyval.en) = new ExpressionNode( build_cond( (yyvsp[(1) - (4)].en), (yyvsp[(1) - (4)].en), (yyvsp[(4) - (4)].en) ) ); } 5437 5520 break; … … 5440 5523 5441 5524 /* Line 1806 of yacc.c */ 5442 #line 6 27"parser.yy"5525 #line 634 "parser.yy" 5443 5526 { (yyval.en) = new ExpressionNode( build_binary_ptr( (yyvsp[(2) - (3)].op), (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5444 5527 break; … … 5447 5530 5448 5531 /* Line 1806 of yacc.c */ 5449 #line 6 34"parser.yy"5532 #line 641 "parser.yy" 5450 5533 { (yyval.en) = nullptr; } 5451 5534 break; … … 5454 5537 5455 5538 /* Line 1806 of yacc.c */ 5456 #line 6 39"parser.yy"5539 #line 646 "parser.yy" 5457 5540 { (yyval.op) = OperKinds::Assign; } 5458 5541 break; … … 5461 5544 5462 5545 /* Line 1806 of yacc.c */ 5463 #line 64 0"parser.yy"5546 #line 647 "parser.yy" 5464 5547 { (yyval.op) = OperKinds::AtAssn; } 5465 5548 break; … … 5468 5551 5469 5552 /* Line 1806 of yacc.c */ 5470 #line 64 1"parser.yy"5553 #line 648 "parser.yy" 5471 5554 { (yyval.op) = OperKinds::MulAssn; } 5472 5555 break; … … 5475 5558 5476 5559 /* Line 1806 of yacc.c */ 5477 #line 64 2"parser.yy"5560 #line 649 "parser.yy" 5478 5561 { (yyval.op) = OperKinds::DivAssn; } 5479 5562 break; … … 5482 5565 5483 5566 /* Line 1806 of yacc.c */ 5484 #line 6 43"parser.yy"5567 #line 650 "parser.yy" 5485 5568 { (yyval.op) = OperKinds::ModAssn; } 5486 5569 break; … … 5489 5572 5490 5573 /* Line 1806 of yacc.c */ 5491 #line 6 44"parser.yy"5574 #line 651 "parser.yy" 5492 5575 { (yyval.op) = OperKinds::PlusAssn; } 5493 5576 break; … … 5496 5579 5497 5580 /* Line 1806 of yacc.c */ 5498 #line 6 45"parser.yy"5581 #line 652 "parser.yy" 5499 5582 { (yyval.op) = OperKinds::MinusAssn; } 5500 5583 break; … … 5503 5586 5504 5587 /* Line 1806 of yacc.c */ 5505 #line 6 46"parser.yy"5588 #line 653 "parser.yy" 5506 5589 { (yyval.op) = OperKinds::LSAssn; } 5507 5590 break; … … 5510 5593 5511 5594 /* Line 1806 of yacc.c */ 5512 #line 6 47"parser.yy"5595 #line 654 "parser.yy" 5513 5596 { (yyval.op) = OperKinds::RSAssn; } 5514 5597 break; … … 5517 5600 5518 5601 /* Line 1806 of yacc.c */ 5519 #line 6 48"parser.yy"5602 #line 655 "parser.yy" 5520 5603 { (yyval.op) = OperKinds::AndAssn; } 5521 5604 break; … … 5524 5607 5525 5608 /* Line 1806 of yacc.c */ 5526 #line 6 49"parser.yy"5609 #line 656 "parser.yy" 5527 5610 { (yyval.op) = OperKinds::ERAssn; } 5528 5611 break; … … 5531 5614 5532 5615 /* Line 1806 of yacc.c */ 5533 #line 65 0"parser.yy"5616 #line 657 "parser.yy" 5534 5617 { (yyval.op) = OperKinds::OrAssn; } 5535 5618 break; … … 5538 5621 5539 5622 /* Line 1806 of yacc.c */ 5540 #line 66 1"parser.yy"5623 #line 668 "parser.yy" 5541 5624 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(new ExpressionNode( nullptr ) )->set_last( (yyvsp[(4) - (6)].en) ) ) ); } 5542 5625 break; … … 5545 5628 5546 5629 /* Line 1806 of yacc.c */ 5547 #line 6 63"parser.yy"5630 #line 670 "parser.yy" 5548 5631 { (yyval.en) = new ExpressionNode( build_tuple( (ExpressionNode *)(yyvsp[(3) - (7)].en)->set_last( (yyvsp[(5) - (7)].en) ) ) ); } 5549 5632 break; … … 5552 5635 5553 5636 /* Line 1806 of yacc.c */ 5554 #line 6 69"parser.yy"5637 #line 676 "parser.yy" 5555 5638 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 5556 5639 break; … … 5559 5642 5560 5643 /* Line 1806 of yacc.c */ 5561 #line 6 75"parser.yy"5644 #line 682 "parser.yy" 5562 5645 { (yyval.en) = new ExpressionNode( build_comma( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5563 5646 break; … … 5566 5649 5567 5650 /* Line 1806 of yacc.c */ 5568 #line 68 0"parser.yy"5569 { (yyval.en) = 0; }5651 #line 687 "parser.yy" 5652 { (yyval.en) = nullptr; } 5570 5653 break; 5571 5654 … … 5573 5656 5574 5657 /* Line 1806 of yacc.c */ 5575 #line 6 89"parser.yy"5658 #line 696 "parser.yy" 5576 5659 { (yyval.sn) = (yyvsp[(1) - (1)].sn); } 5577 5660 break; … … 5580 5663 5581 5664 /* Line 1806 of yacc.c */ 5582 #line 696"parser.yy"5665 #line 703 "parser.yy" 5583 5666 { 5584 5667 Token fn; … … 5591 5674 5592 5675 /* Line 1806 of yacc.c */ 5593 #line 7 06"parser.yy"5676 #line 713 "parser.yy" 5594 5677 { 5595 5678 (yyval.sn) = (yyvsp[(4) - (4)].sn)->add_label( (yyvsp[(1) - (4)].tok) ); … … 5600 5683 5601 5684 /* Line 1806 of yacc.c */ 5602 #line 7 13"parser.yy"5685 #line 720 "parser.yy" 5603 5686 { (yyval.sn) = new StatementNode( build_compound( (StatementNode *)0 ) ); } 5604 5687 break; … … 5607 5690 5608 5691 /* Line 1806 of yacc.c */ 5609 #line 72 0"parser.yy"5692 #line 727 "parser.yy" 5610 5693 { (yyval.sn) = new StatementNode( build_compound( (yyvsp[(5) - (7)].sn) ) ); } 5611 5694 break; … … 5614 5697 5615 5698 /* Line 1806 of yacc.c */ 5616 #line 7 26"parser.yy"5699 #line 733 "parser.yy" 5617 5700 { if ( (yyvsp[(1) - (3)].sn) != 0 ) { (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ); (yyval.sn) = (yyvsp[(1) - (3)].sn); } } 5618 5701 break; … … 5621 5704 5622 5705 /* Line 1806 of yacc.c */ 5623 #line 73 1"parser.yy"5706 #line 738 "parser.yy" 5624 5707 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5625 5708 break; … … 5628 5711 5629 5712 /* Line 1806 of yacc.c */ 5630 #line 7 33"parser.yy"5713 #line 740 "parser.yy" 5631 5714 { // mark all fields in list 5632 5715 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 5639 5722 5640 5723 /* Line 1806 of yacc.c */ 5641 #line 7 39"parser.yy"5724 #line 746 "parser.yy" 5642 5725 { (yyval.sn) = new StatementNode( (yyvsp[(1) - (1)].decl) ); } 5643 5726 break; … … 5646 5729 5647 5730 /* Line 1806 of yacc.c */ 5648 #line 7 46"parser.yy"5731 #line 753 "parser.yy" 5649 5732 { if ( (yyvsp[(1) - (2)].sn) != 0 ) { (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) ); (yyval.sn) = (yyvsp[(1) - (2)].sn); } } 5650 5733 break; … … 5653 5736 5654 5737 /* Line 1806 of yacc.c */ 5655 #line 75 1"parser.yy"5738 #line 758 "parser.yy" 5656 5739 { (yyval.sn) = new StatementNode( build_expr( (yyvsp[(1) - (2)].en) ) ); } 5657 5740 break; … … 5660 5743 5661 5744 /* Line 1806 of yacc.c */ 5662 #line 7 57"parser.yy"5745 #line 764 "parser.yy" 5663 5746 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn), nullptr ) ); } 5664 5747 break; … … 5667 5750 5668 5751 /* Line 1806 of yacc.c */ 5669 #line 7 59"parser.yy"5752 #line 766 "parser.yy" 5670 5753 { (yyval.sn) = new StatementNode( build_if( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].sn), (yyvsp[(7) - (7)].sn) ) ); } 5671 5754 break; … … 5674 5757 5675 5758 /* Line 1806 of yacc.c */ 5676 #line 76 1"parser.yy"5759 #line 768 "parser.yy" 5677 5760 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5678 5761 break; … … 5681 5764 5682 5765 /* Line 1806 of yacc.c */ 5683 #line 7 63"parser.yy"5766 #line 770 "parser.yy" 5684 5767 { 5685 5768 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); … … 5689 5772 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 5690 5773 // statement. 5691 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5774 (yyval.sn) = (yyvsp[(7) - (9)].decl) ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5692 5775 } 5693 5776 break; … … 5696 5779 5697 5780 /* Line 1806 of yacc.c */ 5698 #line 7 73"parser.yy"5781 #line 780 "parser.yy" 5699 5782 { (yyval.sn) = new StatementNode( build_switch( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5700 5783 break; … … 5703 5786 5704 5787 /* Line 1806 of yacc.c */ 5705 #line 7 75"parser.yy"5788 #line 782 "parser.yy" 5706 5789 { 5707 5790 StatementNode *sw = new StatementNode( build_switch( (yyvsp[(3) - (9)].en), (yyvsp[(8) - (9)].sn) ) ); 5708 (yyval.sn) = (yyvsp[(7) - (9)].decl) != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw;5791 (yyval.sn) = (yyvsp[(7) - (9)].decl) ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( (yyvsp[(7) - (9)].decl) ))->set_last( sw )) ) ) : sw; 5709 5792 } 5710 5793 break; … … 5713 5796 5714 5797 /* Line 1806 of yacc.c */ 5715 #line 7 85"parser.yy"5798 #line 792 "parser.yy" 5716 5799 { (yyval.en) = (yyvsp[(1) - (1)].en); } 5717 5800 break; … … 5720 5803 5721 5804 /* Line 1806 of yacc.c */ 5722 #line 7 87"parser.yy"5805 #line 794 "parser.yy" 5723 5806 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 5724 5807 break; … … 5727 5810 5728 5811 /* Line 1806 of yacc.c */ 5729 #line 79 2"parser.yy"5812 #line 799 "parser.yy" 5730 5813 { (yyval.sn) = new StatementNode( build_case( (yyvsp[(1) - (1)].en) ) ); } 5731 5814 break; … … 5734 5817 5735 5818 /* Line 1806 of yacc.c */ 5736 #line 794"parser.yy"5819 #line 801 "parser.yy" 5737 5820 { (yyval.sn) = (StatementNode *)((yyvsp[(1) - (3)].sn)->set_last( new StatementNode( build_case( (yyvsp[(3) - (3)].en) ) ) ) ); } 5738 5821 break; … … 5741 5824 5742 5825 /* Line 1806 of yacc.c */ 5743 #line 798"parser.yy"5826 #line 805 "parser.yy" 5744 5827 { (yyval.sn) = (yyvsp[(2) - (3)].sn); } 5745 5828 break; … … 5748 5831 5749 5832 /* Line 1806 of yacc.c */ 5750 #line 799"parser.yy"5833 #line 806 "parser.yy" 5751 5834 { (yyval.sn) = new StatementNode( build_default() ); } 5752 5835 break; … … 5755 5838 5756 5839 /* Line 1806 of yacc.c */ 5757 #line 8 05"parser.yy"5840 #line 812 "parser.yy" 5758 5841 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (2)].sn)->set_last( (yyvsp[(2) - (2)].sn) )); } 5759 5842 break; … … 5762 5845 5763 5846 /* Line 1806 of yacc.c */ 5764 #line 8 09"parser.yy"5847 #line 816 "parser.yy" 5765 5848 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5766 5849 break; … … 5769 5852 5770 5853 /* Line 1806 of yacc.c */ 5771 #line 8 14"parser.yy"5772 { (yyval.sn) = 0; }5854 #line 821 "parser.yy" 5855 { (yyval.sn) = nullptr; } 5773 5856 break; 5774 5857 … … 5776 5859 5777 5860 /* Line 1806 of yacc.c */ 5778 #line 82 0"parser.yy"5861 #line 827 "parser.yy" 5779 5862 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(2) - (2)].sn) ) ) ); } 5780 5863 break; … … 5783 5866 5784 5867 /* Line 1806 of yacc.c */ 5785 #line 82 2"parser.yy"5868 #line 829 "parser.yy" 5786 5869 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( new StatementNode( build_compound( (yyvsp[(3) - (3)].sn) ) ) ) ) ); } 5787 5870 break; … … 5790 5873 5791 5874 /* Line 1806 of yacc.c */ 5792 #line 8 27"parser.yy"5793 { (yyval.sn) = 0; }5875 #line 834 "parser.yy" 5876 { (yyval.sn) = nullptr; } 5794 5877 break; 5795 5878 … … 5797 5880 5798 5881 /* Line 1806 of yacc.c */ 5799 #line 8 33"parser.yy"5882 #line 840 "parser.yy" 5800 5883 { (yyval.sn) = (yyvsp[(1) - (2)].sn)->append_last_case( (yyvsp[(2) - (2)].sn) ); } 5801 5884 break; … … 5804 5887 5805 5888 /* Line 1806 of yacc.c */ 5806 #line 8 35"parser.yy"5889 #line 842 "parser.yy" 5807 5890 { (yyval.sn) = (yyvsp[(1) - (3)].sn)->append_last_case( new StatementNode( build_compound( (StatementNode *)(yyvsp[(2) - (3)].sn)->set_last( (yyvsp[(3) - (3)].sn) ) ) ) ); } 5808 5891 break; … … 5811 5894 5812 5895 /* Line 1806 of yacc.c */ 5813 #line 8 37"parser.yy"5896 #line 844 "parser.yy" 5814 5897 { (yyval.sn) = (StatementNode *)( (yyvsp[(1) - (3)].sn)->set_last( (yyvsp[(2) - (3)].sn)->append_last_case( (yyvsp[(3) - (3)].sn) ))); } 5815 5898 break; … … 5818 5901 5819 5902 /* Line 1806 of yacc.c */ 5820 #line 8 39"parser.yy"5903 #line 846 "parser.yy" 5821 5904 { (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) ) ) ) ) ) ); } 5822 5905 break; … … 5825 5908 5826 5909 /* Line 1806 of yacc.c */ 5827 #line 8 44"parser.yy"5910 #line 851 "parser.yy" 5828 5911 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5829 5912 break; … … 5832 5915 5833 5916 /* Line 1806 of yacc.c */ 5834 #line 85 0"parser.yy"5835 { (yyval.sn) = 0; }5917 #line 857 "parser.yy" 5918 { (yyval.sn) = nullptr; } 5836 5919 break; 5837 5920 … … 5839 5922 5840 5923 /* Line 1806 of yacc.c */ 5841 #line 85 2"parser.yy"5842 { (yyval.sn) = 0; }5924 #line 859 "parser.yy" 5925 { (yyval.sn) = nullptr; } 5843 5926 break; 5844 5927 … … 5846 5929 5847 5930 /* Line 1806 of yacc.c */ 5848 #line 8 57"parser.yy"5931 #line 864 "parser.yy" 5849 5932 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(3) - (5)].en), (yyvsp[(5) - (5)].sn) ) ); } 5850 5933 break; … … 5853 5936 5854 5937 /* Line 1806 of yacc.c */ 5855 #line 8 59"parser.yy"5938 #line 866 "parser.yy" 5856 5939 { (yyval.sn) = new StatementNode( build_while( (yyvsp[(5) - (7)].en), (yyvsp[(2) - (7)].sn), true ) ); } 5857 5940 break; … … 5860 5943 5861 5944 /* Line 1806 of yacc.c */ 5862 #line 86 1"parser.yy"5945 #line 868 "parser.yy" 5863 5946 { (yyval.sn) = new StatementNode( build_for( (yyvsp[(4) - (6)].fctl), (yyvsp[(6) - (6)].sn) ) ); } 5864 5947 break; … … 5867 5950 5868 5951 /* Line 1806 of yacc.c */ 5869 #line 8 66"parser.yy"5952 #line 873 "parser.yy" 5870 5953 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (6)].en), (yyvsp[(4) - (6)].en), (yyvsp[(6) - (6)].en) ); } 5871 5954 break; … … 5874 5957 5875 5958 /* Line 1806 of yacc.c */ 5876 #line 8 68"parser.yy"5959 #line 875 "parser.yy" 5877 5960 { (yyval.fctl) = new ForCtl( (yyvsp[(1) - (4)].decl), (yyvsp[(2) - (4)].en), (yyvsp[(4) - (4)].en) ); } 5878 5961 break; … … 5881 5964 5882 5965 /* Line 1806 of yacc.c */ 5883 #line 8 73"parser.yy"5966 #line 880 "parser.yy" 5884 5967 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Goto ) ); } 5885 5968 break; … … 5888 5971 5889 5972 /* Line 1806 of yacc.c */ 5890 #line 8 77"parser.yy"5973 #line 884 "parser.yy" 5891 5974 { (yyval.sn) = new StatementNode( build_computedgoto( (yyvsp[(3) - (4)].en) ) ); } 5892 5975 break; … … 5895 5978 5896 5979 /* Line 1806 of yacc.c */ 5897 #line 88 0"parser.yy"5980 #line 887 "parser.yy" 5898 5981 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Continue ) ); } 5899 5982 break; … … 5902 5985 5903 5986 /* Line 1806 of yacc.c */ 5904 #line 8 84"parser.yy"5987 #line 891 "parser.yy" 5905 5988 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Continue ) ); } 5906 5989 break; … … 5909 5992 5910 5993 /* Line 1806 of yacc.c */ 5911 #line 8 87"parser.yy"5994 #line 894 "parser.yy" 5912 5995 { (yyval.sn) = new StatementNode( build_branch( BranchStmt::Break ) ); } 5913 5996 break; … … 5916 5999 5917 6000 /* Line 1806 of yacc.c */ 5918 #line 89 1"parser.yy"6001 #line 898 "parser.yy" 5919 6002 { (yyval.sn) = new StatementNode( build_branch( (yyvsp[(2) - (3)].tok), BranchStmt::Break ) ); } 5920 6003 break; … … 5923 6006 5924 6007 /* Line 1806 of yacc.c */ 5925 #line 893"parser.yy"6008 #line 900 "parser.yy" 5926 6009 { (yyval.sn) = new StatementNode( build_return( (yyvsp[(2) - (3)].en) ) ); } 5927 6010 break; … … 5930 6013 5931 6014 /* Line 1806 of yacc.c */ 5932 #line 895"parser.yy"6015 #line 902 "parser.yy" 5933 6016 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5934 6017 break; … … 5937 6020 5938 6021 /* Line 1806 of yacc.c */ 5939 #line 897"parser.yy"6022 #line 904 "parser.yy" 5940 6023 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (3)].en) ) ); } 5941 6024 break; … … 5944 6027 5945 6028 /* Line 1806 of yacc.c */ 5946 #line 899"parser.yy"6029 #line 906 "parser.yy" 5947 6030 { (yyval.sn) = new StatementNode( build_throw( (yyvsp[(2) - (5)].en) ) ); } 5948 6031 break; … … 5951 6034 5952 6035 /* Line 1806 of yacc.c */ 5953 #line 9 04"parser.yy"6036 #line 911 "parser.yy" 5954 6037 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), (yyvsp[(3) - (3)].sn), 0 ) ); } 5955 6038 break; … … 5958 6041 5959 6042 /* Line 1806 of yacc.c */ 5960 #line 9 06"parser.yy"6043 #line 913 "parser.yy" 5961 6044 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (3)].sn), 0, (yyvsp[(3) - (3)].sn) ) ); } 5962 6045 break; … … 5965 6048 5966 6049 /* Line 1806 of yacc.c */ 5967 #line 9 08"parser.yy"6050 #line 915 "parser.yy" 5968 6051 { (yyval.sn) = new StatementNode( build_try( (yyvsp[(2) - (4)].sn), (yyvsp[(3) - (4)].sn), (yyvsp[(4) - (4)].sn) ) ); } 5969 6052 break; … … 5972 6055 5973 6056 /* Line 1806 of yacc.c */ 5974 #line 9 15"parser.yy"6057 #line 922 "parser.yy" 5975 6058 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5976 6059 break; … … 5979 6062 5980 6063 /* Line 1806 of yacc.c */ 5981 #line 9 17"parser.yy"6064 #line 924 "parser.yy" 5982 6065 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5983 6066 break; … … 5986 6069 5987 6070 /* Line 1806 of yacc.c */ 5988 #line 9 19"parser.yy"6071 #line 926 "parser.yy" 5989 6072 { (yyval.sn) = new StatementNode( build_catch( 0, (yyvsp[(5) - (5)].sn), true ) ); } 5990 6073 break; … … 5993 6076 5994 6077 /* Line 1806 of yacc.c */ 5995 #line 92 1"parser.yy"6078 #line 928 "parser.yy" 5996 6079 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (6)].sn)->set_last( new StatementNode( build_catch( 0, (yyvsp[(6) - (6)].sn), true ) ) ); } 5997 6080 break; … … 6000 6083 6001 6084 /* Line 1806 of yacc.c */ 6002 #line 9 26"parser.yy"6085 #line 933 "parser.yy" 6003 6086 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6004 6087 break; … … 6007 6090 6008 6091 /* Line 1806 of yacc.c */ 6009 #line 9 28"parser.yy"6092 #line 935 "parser.yy" 6010 6093 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6011 6094 break; … … 6014 6097 6015 6098 /* Line 1806 of yacc.c */ 6016 #line 93 0"parser.yy"6099 #line 937 "parser.yy" 6017 6100 { (yyval.sn) = new StatementNode( build_catch( (yyvsp[(5) - (9)].decl), (yyvsp[(8) - (9)].sn) ) ); } 6018 6101 break; … … 6021 6104 6022 6105 /* Line 1806 of yacc.c */ 6023 #line 93 2"parser.yy"6106 #line 939 "parser.yy" 6024 6107 { (yyval.sn) = (StatementNode *)(yyvsp[(1) - (10)].sn)->set_last( new StatementNode( build_catch( (yyvsp[(6) - (10)].decl), (yyvsp[(9) - (10)].sn) ) ) ); } 6025 6108 break; … … 6028 6111 6029 6112 /* Line 1806 of yacc.c */ 6030 #line 9 37"parser.yy"6113 #line 944 "parser.yy" 6031 6114 { 6032 6115 (yyval.sn) = new StatementNode( build_finally( (yyvsp[(2) - (2)].sn) ) ); … … 6037 6120 6038 6121 /* Line 1806 of yacc.c */ 6039 #line 95 0"parser.yy"6122 #line 957 "parser.yy" 6040 6123 { 6041 6124 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6047 6130 6048 6131 /* Line 1806 of yacc.c */ 6049 #line 9 55"parser.yy"6132 #line 962 "parser.yy" 6050 6133 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6051 6134 break; … … 6054 6137 6055 6138 /* Line 1806 of yacc.c */ 6056 #line 9 57"parser.yy"6139 #line 964 "parser.yy" 6057 6140 { 6058 6141 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6064 6147 6065 6148 /* Line 1806 of yacc.c */ 6066 #line 9 66"parser.yy"6149 #line 973 "parser.yy" 6067 6150 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (6)].flag), (yyvsp[(4) - (6)].constant), 0 ) ); } 6068 6151 break; … … 6071 6154 6072 6155 /* Line 1806 of yacc.c */ 6073 #line 9 68"parser.yy"6156 #line 975 "parser.yy" 6074 6157 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (8)].flag), (yyvsp[(4) - (8)].constant), (yyvsp[(6) - (8)].en) ) ); } 6075 6158 break; … … 6078 6161 6079 6162 /* Line 1806 of yacc.c */ 6080 #line 97 0"parser.yy"6163 #line 977 "parser.yy" 6081 6164 { (yyval.sn) = new StatementNode( build_asmstmt( (yyvsp[(2) - (10)].flag), (yyvsp[(4) - (10)].constant), (yyvsp[(6) - (10)].en), (yyvsp[(8) - (10)].en) ) ); } 6082 6165 break; … … 6085 6168 6086 6169 /* Line 1806 of yacc.c */ 6087 #line 97 2"parser.yy"6170 #line 979 "parser.yy" 6088 6171 { (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) ) ); } 6089 6172 break; … … 6092 6175 6093 6176 /* Line 1806 of yacc.c */ 6094 #line 9 74"parser.yy"6177 #line 981 "parser.yy" 6095 6178 { (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) ) ); } 6096 6179 break; … … 6099 6182 6100 6183 /* Line 1806 of yacc.c */ 6101 #line 9 79"parser.yy"6184 #line 986 "parser.yy" 6102 6185 { (yyval.flag) = false; } 6103 6186 break; … … 6106 6189 6107 6190 /* Line 1806 of yacc.c */ 6108 #line 98 1"parser.yy"6191 #line 988 "parser.yy" 6109 6192 { (yyval.flag) = true; } 6110 6193 break; … … 6113 6196 6114 6197 /* Line 1806 of yacc.c */ 6115 #line 9 86"parser.yy"6116 { (yyval.en) = 0; }6198 #line 993 "parser.yy" 6199 { (yyval.en) = nullptr; } 6117 6200 break; 6118 6201 … … 6120 6203 6121 6204 /* Line 1806 of yacc.c */ 6122 #line 993"parser.yy"6205 #line 1000 "parser.yy" 6123 6206 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) ); } 6124 6207 break; … … 6127 6210 6128 6211 /* Line 1806 of yacc.c */ 6129 #line 998"parser.yy"6212 #line 1005 "parser.yy" 6130 6213 { (yyval.en) = new ExpressionNode( build_asmexpr( 0, (yyvsp[(1) - (4)].constant), (yyvsp[(3) - (4)].en) ) ); } 6131 6214 break; … … 6134 6217 6135 6218 /* Line 1806 of yacc.c */ 6136 #line 100 0"parser.yy"6219 #line 1007 "parser.yy" 6137 6220 { (yyval.en) = new ExpressionNode( build_asmexpr( (yyvsp[(2) - (7)].en), (yyvsp[(4) - (7)].constant), (yyvsp[(6) - (7)].en) ) ); } 6138 6221 break; … … 6141 6224 6142 6225 /* Line 1806 of yacc.c */ 6143 #line 10 05"parser.yy"6144 { (yyval.en) = 0; }6226 #line 1012 "parser.yy" 6227 { (yyval.en) = nullptr; } 6145 6228 break; 6146 6229 … … 6148 6231 6149 6232 /* Line 1806 of yacc.c */ 6150 #line 10 07"parser.yy"6233 #line 1014 "parser.yy" 6151 6234 { (yyval.en) = new ExpressionNode( (yyvsp[(1) - (1)].constant) ); } 6152 6235 break; … … 6155 6238 6156 6239 /* Line 1806 of yacc.c */ 6157 #line 10 09"parser.yy"6240 #line 1017 "parser.yy" 6158 6241 { (yyval.en) = (ExpressionNode *)(yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( (yyvsp[(3) - (3)].constant) ) ); } 6159 6242 break; … … 6162 6245 6163 6246 /* Line 1806 of yacc.c */ 6164 #line 10 14"parser.yy"6247 #line 1022 "parser.yy" 6165 6248 { 6166 6249 (yyval.label) = new LabelNode(); (yyval.label)->labels.push_back( *(yyvsp[(1) - (1)].tok) ); … … 6172 6255 6173 6256 /* Line 1806 of yacc.c */ 6174 #line 10 19"parser.yy"6257 #line 1027 "parser.yy" 6175 6258 { 6176 6259 (yyval.label) = (yyvsp[(1) - (3)].label); (yyvsp[(1) - (3)].label)->labels.push_back( *(yyvsp[(3) - (3)].tok) ); … … 6182 6265 6183 6266 /* Line 1806 of yacc.c */ 6184 #line 10 29"parser.yy"6185 { (yyval.decl) = 0; }6267 #line 1037 "parser.yy" 6268 { (yyval.decl) = nullptr; } 6186 6269 break; 6187 6270 … … 6189 6272 6190 6273 /* Line 1806 of yacc.c */ 6191 #line 10 36"parser.yy"6274 #line 1044 "parser.yy" 6192 6275 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6193 6276 break; … … 6196 6279 6197 6280 /* Line 1806 of yacc.c */ 6198 #line 104 1"parser.yy"6199 { (yyval.decl) = 0; }6281 #line 1049 "parser.yy" 6282 { (yyval.decl) = nullptr; } 6200 6283 break; 6201 6284 … … 6203 6286 6204 6287 /* Line 1806 of yacc.c */ 6205 #line 10 48"parser.yy"6288 #line 1056 "parser.yy" 6206 6289 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 6207 6290 break; … … 6210 6293 6211 6294 /* Line 1806 of yacc.c */ 6212 #line 10 62"parser.yy"6295 #line 1070 "parser.yy" 6213 6296 {} 6214 6297 break; … … 6217 6300 6218 6301 /* Line 1806 of yacc.c */ 6219 #line 10 63"parser.yy"6302 #line 1071 "parser.yy" 6220 6303 {} 6221 6304 break; … … 6224 6307 6225 6308 /* Line 1806 of yacc.c */ 6226 #line 1 092"parser.yy"6309 #line 1100 "parser.yy" 6227 6310 { 6228 6311 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6234 6317 6235 6318 /* Line 1806 of yacc.c */ 6236 #line 1 099"parser.yy"6319 #line 1107 "parser.yy" 6237 6320 { 6238 6321 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6244 6327 6245 6328 /* Line 1806 of yacc.c */ 6246 #line 11 04"parser.yy"6329 #line 1112 "parser.yy" 6247 6330 { 6248 6331 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (6)].tok), TypedefTable::ID ); … … 6254 6337 6255 6338 /* Line 1806 of yacc.c */ 6256 #line 11 14"parser.yy"6339 #line 1122 "parser.yy" 6257 6340 { 6258 6341 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6259 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ) ;6342 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].constant) ); 6260 6343 } 6261 6344 break; … … 6264 6347 6265 6348 /* Line 1806 of yacc.c */ 6266 #line 11 19"parser.yy"6349 #line 1127 "parser.yy" 6267 6350 { 6268 6351 typedefTable.setNextIdentifier( *(yyvsp[(2) - (3)].tok) ); 6269 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ) ;6352 (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) )->addAsmName( (yyvsp[(3) - (3)].constant) ); 6270 6353 } 6271 6354 break; … … 6274 6357 6275 6358 /* Line 1806 of yacc.c */ 6276 #line 11 24"parser.yy"6359 #line 1132 "parser.yy" 6277 6360 { 6278 6361 typedefTable.setNextIdentifier( *(yyvsp[(3) - (4)].tok) ); 6279 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) ) ;6362 (yyval.decl) = (yyvsp[(2) - (4)].decl)->addQualifiers( (yyvsp[(1) - (4)].decl) )->addName( (yyvsp[(3) - (4)].tok) )->addAsmName( (yyvsp[(4) - (4)].constant) ); 6280 6363 } 6281 6364 break; … … 6284 6367 6285 6368 /* Line 1806 of yacc.c */ 6286 #line 11 32"parser.yy"6369 #line 1140 "parser.yy" 6287 6370 { 6288 6371 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6294 6377 6295 6378 /* Line 1806 of yacc.c */ 6296 #line 11 37"parser.yy"6379 #line 1145 "parser.yy" 6297 6380 { 6298 6381 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6304 6387 6305 6388 /* Line 1806 of yacc.c */ 6306 #line 11 42"parser.yy"6389 #line 1150 "parser.yy" 6307 6390 { 6308 6391 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6314 6397 6315 6398 /* Line 1806 of yacc.c */ 6316 #line 11 47"parser.yy"6399 #line 1155 "parser.yy" 6317 6400 { 6318 6401 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 6324 6407 6325 6408 /* Line 1806 of yacc.c */ 6326 #line 11 52"parser.yy"6409 #line 1160 "parser.yy" 6327 6410 { 6328 6411 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 6334 6417 6335 6418 /* Line 1806 of yacc.c */ 6336 #line 11 83"parser.yy"6419 #line 1191 "parser.yy" 6337 6420 { 6338 6421 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6343 6426 6344 6427 /* Line 1806 of yacc.c */ 6345 #line 11 87"parser.yy"6428 #line 1195 "parser.yy" 6346 6429 { 6347 6430 (yyval.decl) = DeclarationNode::newFunction( (yyvsp[(2) - (7)].tok), (yyvsp[(1) - (7)].decl), (yyvsp[(5) - (7)].decl), 0, true ); … … 6352 6435 6353 6436 /* Line 1806 of yacc.c */ 6354 #line 1 194"parser.yy"6437 #line 1202 "parser.yy" 6355 6438 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 6356 6439 break; … … 6359 6442 6360 6443 /* Line 1806 of yacc.c */ 6361 #line 1 198"parser.yy"6444 #line 1206 "parser.yy" 6362 6445 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (9)].decl)->appendList( (yyvsp[(7) - (9)].decl) ) ); } 6363 6446 break; … … 6366 6449 6367 6450 /* Line 1806 of yacc.c */ 6368 #line 12 03"parser.yy"6451 #line 1211 "parser.yy" 6369 6452 { 6370 6453 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6376 6459 6377 6460 /* Line 1806 of yacc.c */ 6378 #line 12 08"parser.yy"6461 #line 1216 "parser.yy" 6379 6462 { 6380 6463 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6386 6469 6387 6470 /* Line 1806 of yacc.c */ 6388 #line 12 13"parser.yy"6471 #line 1221 "parser.yy" 6389 6472 { 6390 6473 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (5)].tok), TypedefTable::TD ); … … 6396 6479 6397 6480 /* Line 1806 of yacc.c */ 6398 #line 12 24"parser.yy"6481 #line 1232 "parser.yy" 6399 6482 { 6400 6483 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6406 6489 6407 6490 /* Line 1806 of yacc.c */ 6408 #line 12 29"parser.yy"6491 #line 1237 "parser.yy" 6409 6492 { 6410 6493 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6416 6499 6417 6500 /* Line 1806 of yacc.c */ 6418 #line 12 34"parser.yy"6501 #line 1242 "parser.yy" 6419 6502 { 6420 6503 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6426 6509 6427 6510 /* Line 1806 of yacc.c */ 6428 #line 12 39"parser.yy"6511 #line 1247 "parser.yy" 6429 6512 { 6430 6513 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6436 6519 6437 6520 /* Line 1806 of yacc.c */ 6438 #line 12 44"parser.yy"6521 #line 1252 "parser.yy" 6439 6522 { 6440 6523 typedefTable.addToEnclosingScope( TypedefTable::TD ); … … 6446 6529 6447 6530 /* Line 1806 of yacc.c */ 6448 #line 12 53"parser.yy"6531 #line 1261 "parser.yy" 6449 6532 { 6450 6533 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (4)].tok), TypedefTable::TD ); … … 6456 6539 6457 6540 /* Line 1806 of yacc.c */ 6458 #line 12 58"parser.yy"6541 #line 1266 "parser.yy" 6459 6542 { 6460 6543 typedefTable.addToEnclosingScope( *(yyvsp[(5) - (7)].tok), TypedefTable::TD ); … … 6466 6549 6467 6550 /* Line 1806 of yacc.c */ 6468 #line 12 75"parser.yy"6551 #line 1283 "parser.yy" 6469 6552 { 6470 6553 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6471 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->add Initializer( (yyvsp[(4) - (4)].in) );6554 (yyval.decl) = ( (yyvsp[(2) - (4)].decl)->addType( (yyvsp[(1) - (4)].decl) ))->addAsmName( (yyvsp[(3) - (4)].constant) )->addInitializer( (yyvsp[(4) - (4)].in) ); 6472 6555 } 6473 6556 break; … … 6476 6559 6477 6560 /* Line 1806 of yacc.c */ 6478 #line 128 0"parser.yy"6561 #line 1288 "parser.yy" 6479 6562 { 6480 6563 typedefTable.addToEnclosingScope( TypedefTable::ID ); 6481 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->add Initializer( (yyvsp[(6) - (6)].in) ) ) );6564 (yyval.decl) = (yyvsp[(1) - (6)].decl)->appendList( (yyvsp[(1) - (6)].decl)->cloneBaseType( (yyvsp[(4) - (6)].decl)->addAsmName( (yyvsp[(5) - (6)].constant) )->addInitializer( (yyvsp[(6) - (6)].in) ) ) ); 6482 6565 } 6483 6566 break; … … 6486 6569 6487 6570 /* Line 1806 of yacc.c */ 6488 #line 13 02"parser.yy"6489 { (yyval.decl) = 0; }6571 #line 1310 "parser.yy" 6572 { (yyval.decl) = nullptr; } 6490 6573 break; 6491 6574 … … 6493 6576 6494 6577 /* Line 1806 of yacc.c */ 6495 #line 13 14"parser.yy"6578 #line 1322 "parser.yy" 6496 6579 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6497 6580 break; … … 6500 6583 6501 6584 /* Line 1806 of yacc.c */ 6502 #line 13 25"parser.yy"6585 #line 1333 "parser.yy" 6503 6586 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Const ); } 6504 6587 break; … … 6507 6590 6508 6591 /* Line 1806 of yacc.c */ 6509 #line 13 27"parser.yy"6592 #line 1335 "parser.yy" 6510 6593 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Restrict ); } 6511 6594 break; … … 6514 6597 6515 6598 /* Line 1806 of yacc.c */ 6516 #line 13 29"parser.yy"6599 #line 1337 "parser.yy" 6517 6600 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Volatile ); } 6518 6601 break; … … 6521 6604 6522 6605 /* Line 1806 of yacc.c */ 6523 #line 133 1"parser.yy"6606 #line 1339 "parser.yy" 6524 6607 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Lvalue ); } 6525 6608 break; … … 6528 6611 6529 6612 /* Line 1806 of yacc.c */ 6530 #line 13 33"parser.yy"6613 #line 1341 "parser.yy" 6531 6614 { (yyval.decl) = DeclarationNode::newQualifier( DeclarationNode::Atomic ); } 6532 6615 break; … … 6535 6618 6536 6619 /* Line 1806 of yacc.c */ 6537 #line 13 35"parser.yy"6620 #line 1343 "parser.yy" 6538 6621 { 6539 6622 typedefTable.enterScope(); … … 6544 6627 6545 6628 /* Line 1806 of yacc.c */ 6546 #line 13 39"parser.yy"6629 #line 1347 "parser.yy" 6547 6630 { 6548 6631 typedefTable.leaveScope(); … … 6554 6637 6555 6638 /* Line 1806 of yacc.c */ 6556 #line 13 48"parser.yy"6639 #line 1356 "parser.yy" 6557 6640 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6558 6641 break; … … 6561 6644 6562 6645 /* Line 1806 of yacc.c */ 6563 #line 135 0"parser.yy"6646 #line 1358 "parser.yy" 6564 6647 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6565 6648 break; … … 6568 6651 6569 6652 /* Line 1806 of yacc.c */ 6570 #line 136 1"parser.yy"6653 #line 1369 "parser.yy" 6571 6654 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6572 6655 break; … … 6575 6658 6576 6659 /* Line 1806 of yacc.c */ 6577 #line 13 66"parser.yy"6660 #line 1374 "parser.yy" 6578 6661 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Extern ); } 6579 6662 break; … … 6582 6665 6583 6666 /* Line 1806 of yacc.c */ 6584 #line 13 68"parser.yy"6667 #line 1376 "parser.yy" 6585 6668 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Static ); } 6586 6669 break; … … 6589 6672 6590 6673 /* Line 1806 of yacc.c */ 6591 #line 137 0"parser.yy"6674 #line 1378 "parser.yy" 6592 6675 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Auto ); } 6593 6676 break; … … 6596 6679 6597 6680 /* Line 1806 of yacc.c */ 6598 #line 13 72"parser.yy"6681 #line 1380 "parser.yy" 6599 6682 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Register ); } 6600 6683 break; … … 6603 6686 6604 6687 /* Line 1806 of yacc.c */ 6605 #line 13 75"parser.yy"6688 #line 1383 "parser.yy" 6606 6689 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isInline = true; } 6607 6690 break; … … 6610 6693 6611 6694 /* Line 1806 of yacc.c */ 6612 #line 13 77"parser.yy"6695 #line 1385 "parser.yy" 6613 6696 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Fortran ); } 6614 6697 break; … … 6617 6700 6618 6701 /* Line 1806 of yacc.c */ 6619 #line 138 0"parser.yy"6702 #line 1388 "parser.yy" 6620 6703 { (yyval.decl) = new DeclarationNode; (yyval.decl)->isNoreturn = true; } 6621 6704 break; … … 6624 6707 6625 6708 /* Line 1806 of yacc.c */ 6626 #line 13 82"parser.yy"6709 #line 1390 "parser.yy" 6627 6710 { (yyval.decl) = DeclarationNode::newStorageClass( DeclarationNode::Threadlocal ); } 6628 6711 break; … … 6631 6714 6632 6715 /* Line 1806 of yacc.c */ 6633 #line 13 87"parser.yy"6716 #line 1395 "parser.yy" 6634 6717 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Char ); } 6635 6718 break; … … 6638 6721 6639 6722 /* Line 1806 of yacc.c */ 6640 #line 13 89"parser.yy"6723 #line 1397 "parser.yy" 6641 6724 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Double ); } 6642 6725 break; … … 6645 6728 6646 6729 /* Line 1806 of yacc.c */ 6647 #line 139 1"parser.yy"6730 #line 1399 "parser.yy" 6648 6731 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Float ); } 6649 6732 break; … … 6652 6735 6653 6736 /* Line 1806 of yacc.c */ 6654 #line 1 393"parser.yy"6737 #line 1401 "parser.yy" 6655 6738 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Int ); } 6656 6739 break; … … 6659 6742 6660 6743 /* Line 1806 of yacc.c */ 6661 #line 1 395"parser.yy"6744 #line 1403 "parser.yy" 6662 6745 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Long ); } 6663 6746 break; … … 6666 6749 6667 6750 /* Line 1806 of yacc.c */ 6668 #line 1 397"parser.yy"6751 #line 1405 "parser.yy" 6669 6752 { (yyval.decl) = DeclarationNode::newLength( DeclarationNode::Short ); } 6670 6753 break; … … 6673 6756 6674 6757 /* Line 1806 of yacc.c */ 6675 #line 1 399"parser.yy"6758 #line 1407 "parser.yy" 6676 6759 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Signed ); } 6677 6760 break; … … 6680 6763 6681 6764 /* Line 1806 of yacc.c */ 6682 #line 140 1"parser.yy"6765 #line 1409 "parser.yy" 6683 6766 { (yyval.decl) = DeclarationNode::newSignedNess( DeclarationNode::Unsigned ); } 6684 6767 break; … … 6687 6770 6688 6771 /* Line 1806 of yacc.c */ 6689 #line 14 03"parser.yy"6772 #line 1411 "parser.yy" 6690 6773 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Void ); } 6691 6774 break; … … 6694 6777 6695 6778 /* Line 1806 of yacc.c */ 6696 #line 14 05"parser.yy"6779 #line 1413 "parser.yy" 6697 6780 { (yyval.decl) = DeclarationNode::newBasicType( DeclarationNode::Bool ); } 6698 6781 break; … … 6701 6784 6702 6785 /* Line 1806 of yacc.c */ 6703 #line 14 07"parser.yy"6786 #line 1415 "parser.yy" 6704 6787 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Complex ); } 6705 6788 break; … … 6708 6791 6709 6792 /* Line 1806 of yacc.c */ 6710 #line 14 09"parser.yy"6793 #line 1417 "parser.yy" 6711 6794 { (yyval.decl) = DeclarationNode::newComplexType( DeclarationNode::Imaginary ); } 6712 6795 break; … … 6715 6798 6716 6799 /* Line 1806 of yacc.c */ 6717 #line 141 1"parser.yy"6800 #line 1419 "parser.yy" 6718 6801 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 6719 6802 break; 6720 6803 6804 case 337: 6805 6806 /* Line 1806 of yacc.c */ 6807 #line 1421 "parser.yy" 6808 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 6809 break; 6810 6721 6811 case 338: 6722 6812 6723 6813 /* Line 1806 of yacc.c */ 6724 #line 1418 "parser.yy" 6814 #line 1423 "parser.yy" 6815 { (yyval.decl) = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 6816 break; 6817 6818 case 340: 6819 6820 /* Line 1806 of yacc.c */ 6821 #line 1430 "parser.yy" 6725 6822 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6726 6823 break; 6727 6824 6728 case 3 39:6729 6730 /* Line 1806 of yacc.c */ 6731 #line 14 20"parser.yy"6825 case 341: 6826 6827 /* Line 1806 of yacc.c */ 6828 #line 1432 "parser.yy" 6732 6829 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6733 6830 break; 6734 6831 6735 case 34 0:6736 6737 /* Line 1806 of yacc.c */ 6738 #line 14 22"parser.yy"6832 case 342: 6833 6834 /* Line 1806 of yacc.c */ 6835 #line 1434 "parser.yy" 6739 6836 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6740 6837 break; 6741 6838 6742 case 34 1:6743 6744 /* Line 1806 of yacc.c */ 6745 #line 14 24"parser.yy"6839 case 343: 6840 6841 /* Line 1806 of yacc.c */ 6842 #line 1436 "parser.yy" 6746 6843 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addType( (yyvsp[(1) - (3)].decl) ); } 6747 6844 break; 6748 6845 6749 case 34 3:6750 6751 /* Line 1806 of yacc.c */ 6752 #line 14 30"parser.yy"6846 case 345: 6847 6848 /* Line 1806 of yacc.c */ 6849 #line 1442 "parser.yy" 6753 6850 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6754 6851 break; 6755 6852 6756 case 34 5:6757 6758 /* Line 1806 of yacc.c */ 6759 #line 14 37"parser.yy"6853 case 347: 6854 6855 /* Line 1806 of yacc.c */ 6856 #line 1449 "parser.yy" 6760 6857 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6761 6858 break; 6762 6859 6763 case 34 6:6764 6765 /* Line 1806 of yacc.c */ 6766 #line 14 39"parser.yy"6860 case 348: 6861 6862 /* Line 1806 of yacc.c */ 6863 #line 1451 "parser.yy" 6767 6864 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6768 6865 break; 6769 6866 6770 case 34 7:6771 6772 /* Line 1806 of yacc.c */ 6773 #line 14 41"parser.yy"6867 case 349: 6868 6869 /* Line 1806 of yacc.c */ 6870 #line 1453 "parser.yy" 6774 6871 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addType( (yyvsp[(2) - (2)].decl) ); } 6775 6872 break; 6776 6873 6777 case 3 48:6778 6779 /* Line 1806 of yacc.c */ 6780 #line 14 46"parser.yy"6874 case 350: 6875 6876 /* Line 1806 of yacc.c */ 6877 #line 1458 "parser.yy" 6781 6878 { (yyval.decl) = (yyvsp[(3) - (4)].decl); } 6782 6879 break; 6783 6880 6784 case 3 49:6785 6786 /* Line 1806 of yacc.c */ 6787 #line 14 48"parser.yy"6881 case 351: 6882 6883 /* Line 1806 of yacc.c */ 6884 #line 1460 "parser.yy" 6788 6885 { (yyval.decl) = DeclarationNode::newTypeof( (yyvsp[(3) - (4)].en) ); } 6789 6886 break; 6790 6887 6791 case 35 0:6792 6793 /* Line 1806 of yacc.c */ 6794 #line 14 50"parser.yy"6888 case 352: 6889 6890 /* Line 1806 of yacc.c */ 6891 #line 1462 "parser.yy" 6795 6892 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].decl) ); } 6796 6893 break; 6797 6894 6798 case 35 1:6799 6800 /* Line 1806 of yacc.c */ 6801 #line 14 52"parser.yy"6895 case 353: 6896 6897 /* Line 1806 of yacc.c */ 6898 #line 1464 "parser.yy" 6802 6899 { (yyval.decl) = DeclarationNode::newAttr( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 6803 6900 break; 6804 6901 6805 case 35 3:6806 6807 /* Line 1806 of yacc.c */ 6808 #line 14 58"parser.yy"6902 case 355: 6903 6904 /* Line 1806 of yacc.c */ 6905 #line 1470 "parser.yy" 6809 6906 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6810 6907 break; 6811 6908 6812 case 35 4:6813 6814 /* Line 1806 of yacc.c */ 6815 #line 14 60"parser.yy"6909 case 356: 6910 6911 /* Line 1806 of yacc.c */ 6912 #line 1472 "parser.yy" 6816 6913 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6817 6914 break; 6818 6915 6819 case 35 5:6820 6821 /* Line 1806 of yacc.c */ 6822 #line 14 62"parser.yy"6916 case 357: 6917 6918 /* Line 1806 of yacc.c */ 6919 #line 1474 "parser.yy" 6823 6920 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6824 6921 break; 6825 6922 6826 case 35 7:6827 6828 /* Line 1806 of yacc.c */ 6829 #line 14 68"parser.yy"6923 case 359: 6924 6925 /* Line 1806 of yacc.c */ 6926 #line 1480 "parser.yy" 6830 6927 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6831 6928 break; 6832 6929 6833 case 3 58:6834 6835 /* Line 1806 of yacc.c */ 6836 #line 14 70"parser.yy"6930 case 360: 6931 6932 /* Line 1806 of yacc.c */ 6933 #line 1482 "parser.yy" 6837 6934 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6838 6935 break; 6839 6936 6840 case 36 0:6841 6842 /* Line 1806 of yacc.c */ 6843 #line 14 76"parser.yy"6937 case 362: 6938 6939 /* Line 1806 of yacc.c */ 6940 #line 1488 "parser.yy" 6844 6941 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6845 6942 break; 6846 6943 6847 case 36 1:6848 6849 /* Line 1806 of yacc.c */ 6850 #line 14 78"parser.yy"6944 case 363: 6945 6946 /* Line 1806 of yacc.c */ 6947 #line 1490 "parser.yy" 6851 6948 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6852 6949 break; 6853 6950 6854 case 36 2:6855 6856 /* Line 1806 of yacc.c */ 6857 #line 14 80"parser.yy"6951 case 364: 6952 6953 /* Line 1806 of yacc.c */ 6954 #line 1492 "parser.yy" 6858 6955 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 6859 6956 break; 6860 6957 6861 case 36 3:6862 6863 /* Line 1806 of yacc.c */ 6864 #line 14 85"parser.yy"6958 case 365: 6959 6960 /* Line 1806 of yacc.c */ 6961 #line 1497 "parser.yy" 6865 6962 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(1) - (1)].tok) ); } 6866 6963 break; 6867 6964 6868 case 36 4:6869 6870 /* Line 1806 of yacc.c */ 6871 #line 14 87"parser.yy"6965 case 366: 6966 6967 /* Line 1806 of yacc.c */ 6968 #line 1499 "parser.yy" 6872 6969 { (yyval.decl) = DeclarationNode::newFromTypedef( (yyvsp[(2) - (2)].tok) )->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 6873 6970 break; 6874 6971 6875 case 36 5:6876 6877 /* Line 1806 of yacc.c */ 6878 #line 1 489"parser.yy"6972 case 367: 6973 6974 /* Line 1806 of yacc.c */ 6975 #line 1501 "parser.yy" 6879 6976 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 6880 6977 break; 6881 6978 6882 case 3 68:6883 6884 /* Line 1806 of yacc.c */ 6885 #line 1 499"parser.yy"6979 case 370: 6980 6981 /* Line 1806 of yacc.c */ 6982 #line 1511 "parser.yy" 6886 6983 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (4)].aggKey), nullptr, nullptr, (yyvsp[(3) - (4)].decl), true ); } 6887 6984 break; 6888 6985 6889 case 3 69:6890 6891 /* Line 1806 of yacc.c */ 6892 #line 15 01"parser.yy"6986 case 371: 6987 6988 /* Line 1806 of yacc.c */ 6989 #line 1513 "parser.yy" 6893 6990 { 6894 6991 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 6897 6994 break; 6898 6995 6899 case 37 0:6900 6901 /* Line 1806 of yacc.c */ 6902 #line 15 06"parser.yy"6996 case 372: 6997 6998 /* Line 1806 of yacc.c */ 6999 #line 1518 "parser.yy" 6903 7000 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 6904 7001 break; 6905 7002 6906 case 37 1:6907 6908 /* Line 1806 of yacc.c */ 6909 #line 15 08"parser.yy"7003 case 373: 7004 7005 /* Line 1806 of yacc.c */ 7006 #line 1520 "parser.yy" 6910 7007 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (6)].aggKey), (yyvsp[(2) - (6)].tok), nullptr, (yyvsp[(5) - (6)].decl), true ); } 6911 7008 break; 6912 7009 6913 case 37 2:6914 6915 /* Line 1806 of yacc.c */ 6916 #line 15 10"parser.yy"7010 case 374: 7011 7012 /* Line 1806 of yacc.c */ 7013 #line 1522 "parser.yy" 6917 7014 { (yyval.decl) = DeclarationNode::newAggregate( (yyvsp[(1) - (7)].aggKey), nullptr, (yyvsp[(3) - (7)].en), (yyvsp[(6) - (7)].decl), false ); } 6918 7015 break; 6919 7016 6920 case 37 3:6921 6922 /* Line 1806 of yacc.c */ 6923 #line 15 12"parser.yy"7017 case 375: 7018 7019 /* Line 1806 of yacc.c */ 7020 #line 1524 "parser.yy" 6924 7021 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 6925 7022 break; 6926 7023 6927 case 37 4:6928 6929 /* Line 1806 of yacc.c */ 6930 #line 15 17"parser.yy"7024 case 376: 7025 7026 /* Line 1806 of yacc.c */ 7027 #line 1529 "parser.yy" 6931 7028 { (yyval.aggKey) = DeclarationNode::Struct; } 6932 7029 break; 6933 7030 6934 case 37 5:6935 6936 /* Line 1806 of yacc.c */ 6937 #line 15 19"parser.yy"7031 case 377: 7032 7033 /* Line 1806 of yacc.c */ 7034 #line 1531 "parser.yy" 6938 7035 { (yyval.aggKey) = DeclarationNode::Union; } 6939 7036 break; 6940 7037 6941 case 376: 6942 6943 /* Line 1806 of yacc.c */ 6944 #line 1524 "parser.yy" 6945 { (yyval.decl) = 0; } 6946 break; 6947 6948 case 377: 6949 6950 /* Line 1806 of yacc.c */ 6951 #line 1526 "parser.yy" 6952 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7038 case 378: 7039 7040 /* Line 1806 of yacc.c */ 7041 #line 1536 "parser.yy" 7042 { (yyval.decl) = nullptr; } 6953 7043 break; 6954 7044 … … 6956 7046 6957 7047 /* Line 1806 of yacc.c */ 6958 #line 1532 "parser.yy" 7048 #line 1538 "parser.yy" 7049 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7050 break; 7051 7052 case 381: 7053 7054 /* Line 1806 of yacc.c */ 7055 #line 1544 "parser.yy" 6959 7056 { (yyval.decl) = (yyvsp[(2) - (3)].decl)->set_extension( true ); } 6960 7057 break; 6961 7058 6962 case 38 1:6963 6964 /* Line 1806 of yacc.c */ 6965 #line 15 35"parser.yy"7059 case 383: 7060 7061 /* Line 1806 of yacc.c */ 7062 #line 1547 "parser.yy" 6966 7063 { // mark all fields in list 6967 7064 for ( DeclarationNode *iter = (yyvsp[(2) - (3)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 6971 7068 break; 6972 7069 6973 case 38 3:6974 6975 /* Line 1806 of yacc.c */ 6976 #line 15 45"parser.yy"7070 case 385: 7071 7072 /* Line 1806 of yacc.c */ 7073 #line 1557 "parser.yy" 6977 7074 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addName( (yyvsp[(2) - (2)].tok) ); } 6978 7075 break; 6979 7076 6980 case 38 4:6981 6982 /* Line 1806 of yacc.c */ 6983 #line 15 47"parser.yy"7077 case 386: 7078 7079 /* Line 1806 of yacc.c */ 7080 #line 1559 "parser.yy" 6984 7081 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(1) - (3)].decl)->cloneType( (yyvsp[(3) - (3)].tok) ) ); } 6985 7082 break; 6986 7083 6987 case 38 5:6988 6989 /* Line 1806 of yacc.c */ 6990 #line 15 49"parser.yy"7084 case 387: 7085 7086 /* Line 1806 of yacc.c */ 7087 #line 1561 "parser.yy" 6991 7088 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(1) - (2)].decl)->cloneType( 0 ) ); } 6992 7089 break; 6993 7090 6994 case 38 6:6995 6996 /* Line 1806 of yacc.c */ 6997 #line 15 54"parser.yy"7091 case 388: 7092 7093 /* Line 1806 of yacc.c */ 7094 #line 1566 "parser.yy" 6998 7095 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 6999 7096 break; 7000 7097 7001 case 38 7:7002 7003 /* Line 1806 of yacc.c */ 7004 #line 15 56"parser.yy"7098 case 389: 7099 7100 /* Line 1806 of yacc.c */ 7101 #line 1568 "parser.yy" 7005 7102 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(1) - (4)].decl)->cloneBaseType( (yyvsp[(4) - (4)].decl) ) ); } 7006 7103 break; 7007 7104 7008 case 3 88:7009 7010 /* Line 1806 of yacc.c */ 7011 #line 15 61"parser.yy"7105 case 390: 7106 7107 /* Line 1806 of yacc.c */ 7108 #line 1573 "parser.yy" 7012 7109 { (yyval.decl) = DeclarationNode::newName( 0 ); /* XXX */ } 7013 7110 break; 7014 7111 7015 case 3 89:7016 7017 /* Line 1806 of yacc.c */ 7018 #line 15 63"parser.yy"7112 case 391: 7113 7114 /* Line 1806 of yacc.c */ 7115 #line 1575 "parser.yy" 7019 7116 { (yyval.decl) = DeclarationNode::newBitfield( (yyvsp[(1) - (1)].en) ); } 7020 7117 break; 7021 7118 7022 case 39 0:7023 7024 /* Line 1806 of yacc.c */ 7025 #line 15 66"parser.yy"7119 case 392: 7120 7121 /* Line 1806 of yacc.c */ 7122 #line 1578 "parser.yy" 7026 7123 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7027 7124 break; 7028 7125 7029 case 39 1:7030 7031 /* Line 1806 of yacc.c */ 7032 #line 15 69"parser.yy"7126 case 393: 7127 7128 /* Line 1806 of yacc.c */ 7129 #line 1581 "parser.yy" 7033 7130 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addBitfield( (yyvsp[(2) - (2)].en) ); } 7034 7131 break; 7035 7132 7036 case 39 3:7037 7038 /* Line 1806 of yacc.c */ 7039 #line 15 75"parser.yy"7040 { (yyval.en) = 0; }7041 break; 7042 7043 case 39 4:7044 7045 /* Line 1806 of yacc.c */ 7046 #line 15 77"parser.yy"7133 case 395: 7134 7135 /* Line 1806 of yacc.c */ 7136 #line 1587 "parser.yy" 7137 { (yyval.en) = nullptr; } 7138 break; 7139 7140 case 396: 7141 7142 /* Line 1806 of yacc.c */ 7143 #line 1589 "parser.yy" 7047 7144 { (yyval.en) = (yyvsp[(1) - (1)].en); } 7048 7145 break; 7049 7146 7050 case 39 5:7051 7052 /* Line 1806 of yacc.c */ 7053 #line 15 82"parser.yy"7147 case 397: 7148 7149 /* Line 1806 of yacc.c */ 7150 #line 1594 "parser.yy" 7054 7151 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7055 7152 break; 7056 7153 7057 case 39 7:7058 7059 /* Line 1806 of yacc.c */ 7060 #line 1 591"parser.yy"7154 case 399: 7155 7156 /* Line 1806 of yacc.c */ 7157 #line 1603 "parser.yy" 7061 7158 { (yyval.decl) = DeclarationNode::newEnum( nullptr, (yyvsp[(3) - (5)].decl) ); } 7062 7159 break; 7063 7160 7064 case 398:7065 7066 /* Line 1806 of yacc.c */ 7067 #line 1 593"parser.yy"7161 case 400: 7162 7163 /* Line 1806 of yacc.c */ 7164 #line 1605 "parser.yy" 7068 7165 { 7069 7166 typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); … … 7072 7169 break; 7073 7170 7074 case 399:7075 7076 /* Line 1806 of yacc.c */ 7077 #line 1 598"parser.yy"7171 case 401: 7172 7173 /* Line 1806 of yacc.c */ 7174 #line 1610 "parser.yy" 7078 7175 { typedefTable.makeTypedef( *(yyvsp[(2) - (2)].tok) ); } 7079 7176 break; 7080 7177 7081 case 40 0:7082 7083 /* Line 1806 of yacc.c */ 7084 #line 16 00"parser.yy"7178 case 402: 7179 7180 /* Line 1806 of yacc.c */ 7181 #line 1612 "parser.yy" 7085 7182 { (yyval.decl) = DeclarationNode::newEnum( (yyvsp[(2) - (7)].tok), (yyvsp[(5) - (7)].decl) ); } 7086 7183 break; 7087 7184 7088 case 40 1:7089 7090 /* Line 1806 of yacc.c */ 7091 #line 16 05"parser.yy"7185 case 403: 7186 7187 /* Line 1806 of yacc.c */ 7188 #line 1617 "parser.yy" 7092 7189 { (yyval.decl) = DeclarationNode::newEnumConstant( (yyvsp[(1) - (2)].tok), (yyvsp[(2) - (2)].en) ); } 7093 7190 break; 7094 7191 7095 case 40 2:7096 7097 /* Line 1806 of yacc.c */ 7098 #line 16 07"parser.yy"7192 case 404: 7193 7194 /* Line 1806 of yacc.c */ 7195 #line 1619 "parser.yy" 7099 7196 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( DeclarationNode::newEnumConstant( (yyvsp[(3) - (4)].tok), (yyvsp[(4) - (4)].en) ) ); } 7100 7197 break; 7101 7198 7102 case 40 3:7103 7104 /* Line 1806 of yacc.c */ 7105 #line 16 12"parser.yy"7106 { (yyval.en) = 0; }7107 break; 7108 7109 case 40 4:7110 7111 /* Line 1806 of yacc.c */ 7112 #line 16 14"parser.yy"7199 case 405: 7200 7201 /* Line 1806 of yacc.c */ 7202 #line 1624 "parser.yy" 7203 { (yyval.en) = nullptr; } 7204 break; 7205 7206 case 406: 7207 7208 /* Line 1806 of yacc.c */ 7209 #line 1626 "parser.yy" 7113 7210 { (yyval.en) = (yyvsp[(2) - (2)].en); } 7114 7211 break; 7115 7212 7116 case 405: 7117 7118 /* Line 1806 of yacc.c */ 7119 #line 1621 "parser.yy" 7120 { (yyval.decl) = 0; } 7121 break; 7122 7123 case 409: 7124 7125 /* Line 1806 of yacc.c */ 7126 #line 1629 "parser.yy" 7127 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7128 break; 7129 7130 case 410: 7131 7132 /* Line 1806 of yacc.c */ 7133 #line 1631 "parser.yy" 7134 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7213 case 407: 7214 7215 /* Line 1806 of yacc.c */ 7216 #line 1633 "parser.yy" 7217 { (yyval.decl) = nullptr; } 7135 7218 break; 7136 7219 7137 7220 case 411: 7138 7139 /* Line 1806 of yacc.c */7140 #line 1633 "parser.yy"7141 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); }7142 break;7143 7144 case 413:7145 7221 7146 7222 /* Line 1806 of yacc.c */ … … 7149 7225 break; 7150 7226 7151 case 41 4:7227 case 412: 7152 7228 7153 7229 /* Line 1806 of yacc.c */ 7154 7230 #line 1643 "parser.yy" 7231 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7232 break; 7233 7234 case 413: 7235 7236 /* Line 1806 of yacc.c */ 7237 #line 1645 "parser.yy" 7238 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7239 break; 7240 7241 case 415: 7242 7243 /* Line 1806 of yacc.c */ 7244 #line 1653 "parser.yy" 7155 7245 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7156 7246 break; 7157 7247 7158 case 415: 7159 7160 /* Line 1806 of yacc.c */ 7161 #line 1645 "parser.yy" 7248 case 416: 7249 7250 /* Line 1806 of yacc.c */ 7251 #line 1655 "parser.yy" 7252 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7253 break; 7254 7255 case 417: 7256 7257 /* Line 1806 of yacc.c */ 7258 #line 1657 "parser.yy" 7162 7259 { (yyval.decl) = (yyvsp[(1) - (9)].decl)->appendList( (yyvsp[(5) - (9)].decl) )->appendList( (yyvsp[(9) - (9)].decl) ); } 7163 7260 break; 7164 7261 7165 case 41 7:7166 7167 /* Line 1806 of yacc.c */ 7168 #line 16 51"parser.yy"7262 case 419: 7263 7264 /* Line 1806 of yacc.c */ 7265 #line 1663 "parser.yy" 7169 7266 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7170 7267 break; 7171 7268 7172 case 4 18:7173 7174 /* Line 1806 of yacc.c */ 7175 #line 16 56"parser.yy"7176 { (yyval.decl) = 0; }7177 break; 7178 7179 case 42 1:7180 7181 /* Line 1806 of yacc.c */ 7182 #line 16 63"parser.yy"7269 case 420: 7270 7271 /* Line 1806 of yacc.c */ 7272 #line 1668 "parser.yy" 7273 { (yyval.decl) = nullptr; } 7274 break; 7275 7276 case 423: 7277 7278 /* Line 1806 of yacc.c */ 7279 #line 1675 "parser.yy" 7183 7280 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->addVarArgs(); } 7184 7281 break; 7185 7282 7186 case 42 4:7187 7188 /* Line 1806 of yacc.c */ 7189 #line 16 70"parser.yy"7283 case 426: 7284 7285 /* Line 1806 of yacc.c */ 7286 #line 1682 "parser.yy" 7190 7287 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7191 7288 break; 7192 7289 7193 case 42 5:7194 7195 /* Line 1806 of yacc.c */ 7196 #line 16 72"parser.yy"7290 case 427: 7291 7292 /* Line 1806 of yacc.c */ 7293 #line 1684 "parser.yy" 7197 7294 { (yyval.decl) = (yyvsp[(1) - (5)].decl)->appendList( (yyvsp[(5) - (5)].decl) ); } 7198 7295 break; 7199 7296 7200 case 42 7:7201 7202 /* Line 1806 of yacc.c */ 7203 #line 16 81"parser.yy"7297 case 429: 7298 7299 /* Line 1806 of yacc.c */ 7300 #line 1693 "parser.yy" 7204 7301 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7205 7302 break; 7206 7303 7207 case 4 28:7208 7209 /* Line 1806 of yacc.c */ 7210 #line 16 84"parser.yy"7304 case 430: 7305 7306 /* Line 1806 of yacc.c */ 7307 #line 1696 "parser.yy" 7211 7308 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addName( (yyvsp[(2) - (3)].tok) ); } 7212 7309 break; 7213 7310 7214 case 4 29:7215 7216 /* Line 1806 of yacc.c */ 7217 #line 16 86"parser.yy"7311 case 431: 7312 7313 /* Line 1806 of yacc.c */ 7314 #line 1698 "parser.yy" 7218 7315 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addName( (yyvsp[(3) - (4)].tok) )->addQualifiers( (yyvsp[(1) - (4)].decl) ); } 7219 7316 break; 7220 7317 7221 case 43 4:7222 7223 /* Line 1806 of yacc.c */ 7224 #line 1 696"parser.yy"7318 case 436: 7319 7320 /* Line 1806 of yacc.c */ 7321 #line 1708 "parser.yy" 7225 7322 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7226 7323 break; 7227 7324 7228 case 43 6:7229 7230 /* Line 1806 of yacc.c */ 7231 #line 17 02"parser.yy"7325 case 438: 7326 7327 /* Line 1806 of yacc.c */ 7328 #line 1714 "parser.yy" 7232 7329 { 7233 7330 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7234 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ));7331 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr ); 7235 7332 } 7236 7333 break; 7237 7334 7238 case 43 7:7239 7240 /* Line 1806 of yacc.c */ 7241 #line 17 07"parser.yy"7335 case 439: 7336 7337 /* Line 1806 of yacc.c */ 7338 #line 1719 "parser.yy" 7242 7339 { 7243 7340 typedefTable.addToEnclosingScope( TypedefTable::ID ); 7244 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( new InitializerNode( (yyvsp[(3) - (3)].en) ));7341 (yyval.decl) = (yyvsp[(2) - (3)].decl)->addType( (yyvsp[(1) - (3)].decl) )->addInitializer( (yyvsp[(3) - (3)].en) ? new InitializerNode( (yyvsp[(3) - (3)].en) ) : nullptr ); 7245 7342 } 7246 7343 break; 7247 7344 7248 case 4 39:7249 7250 /* Line 1806 of yacc.c */ 7251 #line 17 16"parser.yy"7345 case 441: 7346 7347 /* Line 1806 of yacc.c */ 7348 #line 1728 "parser.yy" 7252 7349 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7253 7350 break; 7254 7351 7255 case 44 0:7256 7257 /* Line 1806 of yacc.c */ 7258 #line 17 25"parser.yy"7352 case 442: 7353 7354 /* Line 1806 of yacc.c */ 7355 #line 1737 "parser.yy" 7259 7356 { (yyval.decl) = DeclarationNode::newName( (yyvsp[(1) - (1)].tok) ); } 7260 7357 break; 7261 7358 7262 case 44 1:7263 7264 /* Line 1806 of yacc.c */ 7265 #line 17 27"parser.yy"7359 case 443: 7360 7361 /* Line 1806 of yacc.c */ 7362 #line 1739 "parser.yy" 7266 7363 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( DeclarationNode::newName( (yyvsp[(3) - (3)].tok) ) ); } 7267 7364 break; 7268 7365 7269 case 45 3:7270 7271 /* Line 1806 of yacc.c */ 7272 #line 17 52"parser.yy"7366 case 455: 7367 7368 /* Line 1806 of yacc.c */ 7369 #line 1764 "parser.yy" 7273 7370 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7274 7371 break; 7275 7372 7276 case 45 7:7277 7278 /* Line 1806 of yacc.c */ 7279 #line 17 60"parser.yy"7373 case 459: 7374 7375 /* Line 1806 of yacc.c */ 7376 #line 1772 "parser.yy" 7280 7377 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addType( (yyvsp[(1) - (2)].decl) ); } 7281 7378 break; 7282 7379 7283 case 4 58:7284 7285 /* Line 1806 of yacc.c */ 7286 #line 17 65"parser.yy"7287 { (yyval.in) = 0; }7288 break; 7289 7290 case 4 59:7291 7292 /* Line 1806 of yacc.c */ 7293 #line 17 67"parser.yy"7380 case 460: 7381 7382 /* Line 1806 of yacc.c */ 7383 #line 1777 "parser.yy" 7384 { (yyval.in) = nullptr; } 7385 break; 7386 7387 case 461: 7388 7389 /* Line 1806 of yacc.c */ 7390 #line 1779 "parser.yy" 7294 7391 { (yyval.in) = (yyvsp[(2) - (2)].in); } 7295 7392 break; 7296 7393 7297 case 46 0:7298 7299 /* Line 1806 of yacc.c */ 7300 #line 17 69"parser.yy"7394 case 462: 7395 7396 /* Line 1806 of yacc.c */ 7397 #line 1781 "parser.yy" 7301 7398 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_maybeConstructed( false ); } 7302 7399 break; 7303 7400 7304 case 46 1:7305 7306 /* Line 1806 of yacc.c */ 7307 #line 17 73"parser.yy"7401 case 463: 7402 7403 /* Line 1806 of yacc.c */ 7404 #line 1785 "parser.yy" 7308 7405 { (yyval.in) = new InitializerNode( (yyvsp[(1) - (1)].en) ); } 7309 7406 break; 7310 7407 7311 case 46 2:7312 7313 /* Line 1806 of yacc.c */ 7314 #line 17 74"parser.yy"7408 case 464: 7409 7410 /* Line 1806 of yacc.c */ 7411 #line 1786 "parser.yy" 7315 7412 { (yyval.in) = new InitializerNode( (yyvsp[(2) - (4)].in), true ); } 7316 7413 break; 7317 7414 7318 case 463:7319 7320 /* Line 1806 of yacc.c */7321 #line 1779 "parser.yy"7322 { (yyval.in) = 0; }7323 break;7324 7325 7415 case 465: 7326 7416 7327 7417 /* Line 1806 of yacc.c */ 7328 #line 1781 "parser.yy" 7418 #line 1791 "parser.yy" 7419 { (yyval.in) = nullptr; } 7420 break; 7421 7422 case 467: 7423 7424 /* Line 1806 of yacc.c */ 7425 #line 1793 "parser.yy" 7329 7426 { (yyval.in) = (yyvsp[(2) - (2)].in)->set_designators( (yyvsp[(1) - (2)].en) ); } 7330 7427 break; 7331 7428 7332 case 46 6:7333 7334 /* Line 1806 of yacc.c */ 7335 #line 17 82"parser.yy"7429 case 468: 7430 7431 /* Line 1806 of yacc.c */ 7432 #line 1794 "parser.yy" 7336 7433 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (3)].in)->set_last( (yyvsp[(3) - (3)].in) ) ); } 7337 7434 break; 7338 7435 7339 case 46 7:7340 7341 /* Line 1806 of yacc.c */ 7342 #line 17 84"parser.yy"7436 case 469: 7437 7438 /* Line 1806 of yacc.c */ 7439 #line 1796 "parser.yy" 7343 7440 { (yyval.in) = (InitializerNode *)( (yyvsp[(1) - (4)].in)->set_last( (yyvsp[(4) - (4)].in)->set_designators( (yyvsp[(3) - (4)].en) ) ) ); } 7344 7441 break; 7345 7442 7346 case 4 69:7347 7348 /* Line 1806 of yacc.c */ 7349 #line 18 00"parser.yy"7443 case 471: 7444 7445 /* Line 1806 of yacc.c */ 7446 #line 1812 "parser.yy" 7350 7447 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(1) - (2)].tok) ) ); } 7351 7448 break; 7352 7449 7353 case 47 1:7354 7355 /* Line 1806 of yacc.c */ 7356 #line 18 06"parser.yy"7450 case 473: 7451 7452 /* Line 1806 of yacc.c */ 7453 #line 1818 "parser.yy" 7357 7454 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (2)].en)->set_last( (yyvsp[(2) - (2)].en) ) ); } 7358 7455 break; 7359 7456 7360 case 47 2:7361 7362 /* Line 1806 of yacc.c */ 7363 #line 18 12"parser.yy"7457 case 474: 7458 7459 /* Line 1806 of yacc.c */ 7460 #line 1824 "parser.yy" 7364 7461 { (yyval.en) = new ExpressionNode( build_varref( (yyvsp[(2) - (2)].tok) ) ); } 7365 7462 break; 7366 7463 7367 case 47 3:7368 7369 /* Line 1806 of yacc.c */ 7370 #line 18 15"parser.yy"7464 case 475: 7465 7466 /* Line 1806 of yacc.c */ 7467 #line 1827 "parser.yy" 7371 7468 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7372 7469 break; 7373 7470 7374 case 47 4:7375 7376 /* Line 1806 of yacc.c */ 7377 #line 18 17"parser.yy"7471 case 476: 7472 7473 /* Line 1806 of yacc.c */ 7474 #line 1829 "parser.yy" 7378 7475 { (yyval.en) = (yyvsp[(3) - (5)].en); } 7379 7476 break; 7380 7477 7381 case 47 5:7382 7383 /* Line 1806 of yacc.c */ 7384 #line 18 19"parser.yy"7478 case 477: 7479 7480 /* Line 1806 of yacc.c */ 7481 #line 1831 "parser.yy" 7385 7482 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(3) - (7)].en), (yyvsp[(5) - (7)].en) ) ); } 7386 7483 break; 7387 7484 7388 case 47 6:7389 7390 /* Line 1806 of yacc.c */ 7391 #line 18 21"parser.yy"7485 case 478: 7486 7487 /* Line 1806 of yacc.c */ 7488 #line 1833 "parser.yy" 7392 7489 { (yyval.en) = (yyvsp[(4) - (6)].en); } 7393 7490 break; 7394 7491 7395 case 4 78:7396 7397 /* Line 1806 of yacc.c */ 7398 #line 18 45"parser.yy"7492 case 480: 7493 7494 /* Line 1806 of yacc.c */ 7495 #line 1857 "parser.yy" 7399 7496 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7400 7497 break; 7401 7498 7402 case 4 79:7403 7404 /* Line 1806 of yacc.c */ 7405 #line 18 47"parser.yy"7499 case 481: 7500 7501 /* Line 1806 of yacc.c */ 7502 #line 1859 "parser.yy" 7406 7503 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7407 7504 break; 7408 7505 7409 case 48 0:7410 7411 /* Line 1806 of yacc.c */ 7412 #line 18 49"parser.yy"7506 case 482: 7507 7508 /* Line 1806 of yacc.c */ 7509 #line 1861 "parser.yy" 7413 7510 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->addQualifiers( (yyvsp[(2) - (3)].decl) )->addQualifiers( (yyvsp[(3) - (3)].decl) ); } 7414 7511 break; 7415 7512 7416 case 48 2:7417 7418 /* Line 1806 of yacc.c */ 7419 #line 18 55"parser.yy"7513 case 484: 7514 7515 /* Line 1806 of yacc.c */ 7516 #line 1867 "parser.yy" 7420 7517 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7421 7518 break; 7422 7519 7423 case 48 3:7424 7425 /* Line 1806 of yacc.c */ 7426 #line 18 57"parser.yy"7520 case 485: 7521 7522 /* Line 1806 of yacc.c */ 7523 #line 1869 "parser.yy" 7427 7524 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7428 7525 break; 7429 7526 7430 case 48 4:7431 7432 /* Line 1806 of yacc.c */ 7433 #line 18 62"parser.yy"7527 case 486: 7528 7529 /* Line 1806 of yacc.c */ 7530 #line 1874 "parser.yy" 7434 7531 { (yyval.decl) = DeclarationNode::newFromTypeGen( (yyvsp[(1) - (4)].tok), (yyvsp[(3) - (4)].en) ); } 7435 7532 break; 7436 7533 7437 case 48 6:7438 7439 /* Line 1806 of yacc.c */ 7440 #line 18 68"parser.yy"7534 case 488: 7535 7536 /* Line 1806 of yacc.c */ 7537 #line 1880 "parser.yy" 7441 7538 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->appendList( (yyvsp[(3) - (4)].decl) ); } 7442 7539 break; 7443 7540 7444 case 48 7:7445 7446 /* Line 1806 of yacc.c */ 7447 #line 18 73"parser.yy"7541 case 489: 7542 7543 /* Line 1806 of yacc.c */ 7544 #line 1885 "parser.yy" 7448 7545 { typedefTable.addToEnclosingScope( *(yyvsp[(2) - (2)].tok), TypedefTable::TD ); } 7449 7546 break; 7450 7547 7451 case 4 88:7452 7453 /* Line 1806 of yacc.c */ 7454 #line 18 75"parser.yy"7548 case 490: 7549 7550 /* Line 1806 of yacc.c */ 7551 #line 1887 "parser.yy" 7455 7552 { (yyval.decl) = DeclarationNode::newTypeParam( (yyvsp[(1) - (4)].tclass), (yyvsp[(2) - (4)].tok) )->addAssertions( (yyvsp[(4) - (4)].decl) ); } 7456 7553 break; 7457 7554 7458 case 49 0:7459 7460 /* Line 1806 of yacc.c */ 7461 #line 18 81"parser.yy"7555 case 492: 7556 7557 /* Line 1806 of yacc.c */ 7558 #line 1893 "parser.yy" 7462 7559 { (yyval.tclass) = DeclarationNode::Otype; } 7463 7560 break; 7464 7561 7465 case 49 1:7466 7467 /* Line 1806 of yacc.c */ 7468 #line 18 83"parser.yy"7562 case 493: 7563 7564 /* Line 1806 of yacc.c */ 7565 #line 1895 "parser.yy" 7469 7566 { (yyval.tclass) = DeclarationNode::Ftype; } 7470 7567 break; 7471 7568 7472 case 49 2:7473 7474 /* Line 1806 of yacc.c */ 7475 #line 18 85"parser.yy"7569 case 494: 7570 7571 /* Line 1806 of yacc.c */ 7572 #line 1897 "parser.yy" 7476 7573 { (yyval.tclass) = DeclarationNode::Dtype; } 7477 7574 break; 7478 7575 7479 case 493:7480 7481 /* Line 1806 of yacc.c */7482 #line 1890 "parser.yy"7483 { (yyval.decl) = 0; }7484 break;7485 7486 case 494:7487 7488 /* Line 1806 of yacc.c */7489 #line 1892 "parser.yy"7490 { (yyval.decl) = (yyvsp[(1) - (2)].decl) != 0 ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); }7491 break;7492 7493 7576 case 495: 7494 7577 7495 7578 /* Line 1806 of yacc.c */ 7496 #line 1897 "parser.yy" 7579 #line 1902 "parser.yy" 7580 { (yyval.decl) = nullptr; } 7581 break; 7582 7583 case 496: 7584 7585 /* Line 1806 of yacc.c */ 7586 #line 1904 "parser.yy" 7587 { (yyval.decl) = (yyvsp[(1) - (2)].decl) ? (yyvsp[(1) - (2)].decl)->appendList( (yyvsp[(2) - (2)].decl) ) : (yyvsp[(2) - (2)].decl); } 7588 break; 7589 7590 case 497: 7591 7592 /* Line 1806 of yacc.c */ 7593 #line 1909 "parser.yy" 7497 7594 { 7498 7595 typedefTable.openTrait( *(yyvsp[(2) - (5)].tok) ); … … 7501 7598 break; 7502 7599 7503 case 49 6:7504 7505 /* Line 1806 of yacc.c */ 7506 #line 19 02"parser.yy"7600 case 498: 7601 7602 /* Line 1806 of yacc.c */ 7603 #line 1914 "parser.yy" 7507 7604 { (yyval.decl) = (yyvsp[(4) - (5)].decl); } 7508 7605 break; 7509 7606 7510 case 49 7:7511 7512 /* Line 1806 of yacc.c */ 7513 #line 19 04"parser.yy"7514 { (yyval.decl) = 0; }7515 break; 7516 7517 case 498:7518 7519 /* Line 1806 of yacc.c */ 7520 #line 19 09"parser.yy"7607 case 499: 7608 7609 /* Line 1806 of yacc.c */ 7610 #line 1916 "parser.yy" 7611 { (yyval.decl) = nullptr; } 7612 break; 7613 7614 case 500: 7615 7616 /* Line 1806 of yacc.c */ 7617 #line 1921 "parser.yy" 7521 7618 { (yyval.en) = new ExpressionNode( build_typevalue( (yyvsp[(1) - (1)].decl) ) ); } 7522 7619 break; 7523 7620 7524 case 50 0:7525 7526 /* Line 1806 of yacc.c */ 7527 #line 19 12"parser.yy"7621 case 502: 7622 7623 /* Line 1806 of yacc.c */ 7624 #line 1924 "parser.yy" 7528 7625 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( new ExpressionNode( build_typevalue( (yyvsp[(3) - (3)].decl) ) ) ) ); } 7529 7626 break; 7530 7627 7531 case 50 1:7532 7533 /* Line 1806 of yacc.c */ 7534 #line 19 14"parser.yy"7628 case 503: 7629 7630 /* Line 1806 of yacc.c */ 7631 #line 1926 "parser.yy" 7535 7632 { (yyval.en) = (ExpressionNode *)( (yyvsp[(1) - (3)].en)->set_last( (yyvsp[(3) - (3)].en) )); } 7536 7633 break; 7537 7634 7538 case 50 2:7539 7540 /* Line 1806 of yacc.c */ 7541 #line 19 19"parser.yy"7635 case 504: 7636 7637 /* Line 1806 of yacc.c */ 7638 #line 1931 "parser.yy" 7542 7639 { (yyval.decl) = (yyvsp[(2) - (2)].decl); } 7543 7640 break; 7544 7641 7545 case 50 3:7546 7547 /* Line 1806 of yacc.c */ 7548 #line 19 21"parser.yy"7642 case 505: 7643 7644 /* Line 1806 of yacc.c */ 7645 #line 1933 "parser.yy" 7549 7646 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addQualifiers( (yyvsp[(1) - (3)].decl) ); } 7550 7647 break; 7551 7648 7552 case 50 4:7553 7554 /* Line 1806 of yacc.c */ 7555 #line 19 23"parser.yy"7649 case 506: 7650 7651 /* Line 1806 of yacc.c */ 7652 #line 1935 "parser.yy" 7556 7653 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl)->copyStorageClasses( (yyvsp[(1) - (3)].decl) ) ); } 7557 7654 break; 7558 7655 7559 case 50 5:7560 7561 /* Line 1806 of yacc.c */ 7562 #line 19 28"parser.yy"7656 case 507: 7657 7658 /* Line 1806 of yacc.c */ 7659 #line 1940 "parser.yy" 7563 7660 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addAssertions( (yyvsp[(2) - (2)].decl) ); } 7564 7661 break; 7565 7662 7566 case 50 6:7567 7568 /* Line 1806 of yacc.c */ 7569 #line 19 30"parser.yy"7663 case 508: 7664 7665 /* Line 1806 of yacc.c */ 7666 #line 1942 "parser.yy" 7570 7667 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addAssertions( (yyvsp[(2) - (4)].decl) )->addType( (yyvsp[(4) - (4)].decl) ); } 7571 7668 break; 7572 7669 7573 case 50 7:7574 7575 /* Line 1806 of yacc.c */ 7576 #line 19 35"parser.yy"7670 case 509: 7671 7672 /* Line 1806 of yacc.c */ 7673 #line 1947 "parser.yy" 7577 7674 { 7578 7675 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (1)].tok), TypedefTable::TD ); … … 7581 7678 break; 7582 7679 7583 case 5 08:7584 7585 /* Line 1806 of yacc.c */ 7586 #line 19 40"parser.yy"7680 case 510: 7681 7682 /* Line 1806 of yacc.c */ 7683 #line 1952 "parser.yy" 7587 7684 { 7588 7685 typedefTable.addToEnclosingScope( *(yyvsp[(1) - (6)].tok), TypedefTable::TG ); … … 7591 7688 break; 7592 7689 7593 case 5 09:7594 7595 /* Line 1806 of yacc.c */ 7596 #line 19 48"parser.yy"7690 case 511: 7691 7692 /* Line 1806 of yacc.c */ 7693 #line 1960 "parser.yy" 7597 7694 { 7598 7695 typedefTable.addToEnclosingScope( *(yyvsp[(2) - (9)].tok), TypedefTable::ID ); … … 7601 7698 break; 7602 7699 7603 case 51 0:7604 7605 /* Line 1806 of yacc.c */ 7606 #line 19 53"parser.yy"7700 case 512: 7701 7702 /* Line 1806 of yacc.c */ 7703 #line 1965 "parser.yy" 7607 7704 { 7608 7705 typedefTable.enterTrait( *(yyvsp[(2) - (8)].tok) ); … … 7611 7708 break; 7612 7709 7613 case 51 1:7614 7615 /* Line 1806 of yacc.c */ 7616 #line 19 58"parser.yy"7710 case 513: 7711 7712 /* Line 1806 of yacc.c */ 7713 #line 1970 "parser.yy" 7617 7714 { 7618 7715 typedefTable.leaveTrait(); … … 7622 7719 break; 7623 7720 7624 case 51 3:7625 7626 /* Line 1806 of yacc.c */ 7627 #line 19 68"parser.yy"7721 case 515: 7722 7723 /* Line 1806 of yacc.c */ 7724 #line 1980 "parser.yy" 7628 7725 { (yyval.decl) = (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ); } 7629 7726 break; 7630 7727 7631 case 51 6:7632 7633 /* Line 1806 of yacc.c */ 7634 #line 19 78"parser.yy"7728 case 518: 7729 7730 /* Line 1806 of yacc.c */ 7731 #line 1990 "parser.yy" 7635 7732 { 7636 7733 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7639 7736 break; 7640 7737 7641 case 51 7:7642 7643 /* Line 1806 of yacc.c */ 7644 #line 19 83"parser.yy"7738 case 519: 7739 7740 /* Line 1806 of yacc.c */ 7741 #line 1995 "parser.yy" 7645 7742 { 7646 7743 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7649 7746 break; 7650 7747 7651 case 5 18:7652 7653 /* Line 1806 of yacc.c */ 7654 #line 1988"parser.yy"7748 case 520: 7749 7750 /* Line 1806 of yacc.c */ 7751 #line 2000 "parser.yy" 7655 7752 { 7656 7753 typedefTable.addToEnclosingScope2( *(yyvsp[(5) - (5)].tok), TypedefTable::ID ); … … 7659 7756 break; 7660 7757 7661 case 5 19:7662 7663 /* Line 1806 of yacc.c */ 7664 #line 1996"parser.yy"7758 case 521: 7759 7760 /* Line 1806 of yacc.c */ 7761 #line 2008 "parser.yy" 7665 7762 { 7666 7763 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7669 7766 break; 7670 7767 7671 case 52 0:7672 7673 /* Line 1806 of yacc.c */ 7674 #line 20 01"parser.yy"7768 case 522: 7769 7770 /* Line 1806 of yacc.c */ 7771 #line 2013 "parser.yy" 7675 7772 { 7676 7773 typedefTable.addToEnclosingScope2( TypedefTable::ID ); … … 7679 7776 break; 7680 7777 7681 case 52 1:7682 7683 /* Line 1806 of yacc.c */ 7684 #line 20 11"parser.yy"7778 case 523: 7779 7780 /* Line 1806 of yacc.c */ 7781 #line 2023 "parser.yy" 7685 7782 {} 7686 7783 break; 7687 7784 7688 case 522:7689 7690 /* Line 1806 of yacc.c */7691 #line 2013 "parser.yy"7692 { parseTree = parseTree != nullptr ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); }7693 break;7694 7695 7785 case 524: 7696 7786 7697 7787 /* Line 1806 of yacc.c */ 7698 #line 2019 "parser.yy" 7699 { (yyval.decl) = (yyvsp[(1) - (3)].decl) != nullptr ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7700 break; 7701 7702 case 525: 7703 7704 /* Line 1806 of yacc.c */ 7705 #line 2024 "parser.yy" 7706 { (yyval.decl) = 0; } 7707 break; 7708 7709 case 529: 7710 7711 /* Line 1806 of yacc.c */ 7712 #line 2032 "parser.yy" 7788 #line 2025 "parser.yy" 7789 { parseTree = parseTree ? parseTree->appendList( (yyvsp[(1) - (1)].decl) ) : (yyvsp[(1) - (1)].decl); } 7790 break; 7791 7792 case 526: 7793 7794 /* Line 1806 of yacc.c */ 7795 #line 2031 "parser.yy" 7796 { (yyval.decl) = (yyvsp[(1) - (3)].decl) ? (yyvsp[(1) - (3)].decl)->appendList( (yyvsp[(3) - (3)].decl) ) : (yyvsp[(3) - (3)].decl); } 7797 break; 7798 7799 case 527: 7800 7801 /* Line 1806 of yacc.c */ 7802 #line 2036 "parser.yy" 7803 { (yyval.decl) = nullptr; } 7804 break; 7805 7806 case 531: 7807 7808 /* Line 1806 of yacc.c */ 7809 #line 2044 "parser.yy" 7713 7810 {} 7714 7811 break; 7715 7812 7716 case 53 0:7717 7718 /* Line 1806 of yacc.c */ 7719 #line 20 34"parser.yy"7813 case 532: 7814 7815 /* Line 1806 of yacc.c */ 7816 #line 2046 "parser.yy" 7720 7817 { 7721 7818 linkageStack.push( linkage ); // handle nested extern "C"/"Cforall" … … 7724 7821 break; 7725 7822 7726 case 53 1:7727 7728 /* Line 1806 of yacc.c */ 7729 #line 20 39"parser.yy"7823 case 533: 7824 7825 /* Line 1806 of yacc.c */ 7826 #line 2051 "parser.yy" 7730 7827 { 7731 7828 linkage = linkageStack.top(); … … 7735 7832 break; 7736 7833 7737 case 53 2:7738 7739 /* Line 1806 of yacc.c */ 7740 #line 20 45"parser.yy"7834 case 534: 7835 7836 /* Line 1806 of yacc.c */ 7837 #line 2057 "parser.yy" 7741 7838 { // mark all fields in list 7742 7839 for ( DeclarationNode *iter = (yyvsp[(2) - (2)].decl); iter != nullptr; iter = (DeclarationNode *)iter->get_next() ) … … 7746 7843 break; 7747 7844 7748 case 53 4:7749 7750 /* Line 1806 of yacc.c */ 7751 #line 20 60"parser.yy"7845 case 536: 7846 7847 /* Line 1806 of yacc.c */ 7848 #line 2072 "parser.yy" 7752 7849 { 7753 7850 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7757 7854 break; 7758 7855 7759 case 53 5:7760 7761 /* Line 1806 of yacc.c */ 7762 #line 20 66"parser.yy"7856 case 537: 7857 7858 /* Line 1806 of yacc.c */ 7859 #line 2078 "parser.yy" 7763 7860 { 7764 7861 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7768 7865 break; 7769 7866 7770 case 53 6:7771 7772 /* Line 1806 of yacc.c */ 7773 #line 20 75"parser.yy"7867 case 538: 7868 7869 /* Line 1806 of yacc.c */ 7870 #line 2087 "parser.yy" 7774 7871 { 7775 7872 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7779 7876 break; 7780 7877 7781 case 53 7:7782 7783 /* Line 1806 of yacc.c */ 7784 #line 20 81"parser.yy"7878 case 539: 7879 7880 /* Line 1806 of yacc.c */ 7881 #line 2093 "parser.yy" 7785 7882 { 7786 7883 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7790 7887 break; 7791 7888 7792 case 5 38:7793 7794 /* Line 1806 of yacc.c */ 7795 #line 20 87"parser.yy"7889 case 540: 7890 7891 /* Line 1806 of yacc.c */ 7892 #line 2099 "parser.yy" 7796 7893 { 7797 7894 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7801 7898 break; 7802 7899 7803 case 5 39:7804 7805 /* Line 1806 of yacc.c */ 7806 #line 2 093"parser.yy"7900 case 541: 7901 7902 /* Line 1806 of yacc.c */ 7903 #line 2105 "parser.yy" 7807 7904 { 7808 7905 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7812 7909 break; 7813 7910 7814 case 54 0:7815 7816 /* Line 1806 of yacc.c */ 7817 #line 2 099"parser.yy"7911 case 542: 7912 7913 /* Line 1806 of yacc.c */ 7914 #line 2111 "parser.yy" 7818 7915 { 7819 7916 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7823 7920 break; 7824 7921 7825 case 54 1:7826 7827 /* Line 1806 of yacc.c */ 7828 #line 21 07"parser.yy"7922 case 543: 7923 7924 /* Line 1806 of yacc.c */ 7925 #line 2119 "parser.yy" 7829 7926 { 7830 7927 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7834 7931 break; 7835 7932 7836 case 54 2:7837 7838 /* Line 1806 of yacc.c */ 7839 #line 21 13"parser.yy"7933 case 544: 7934 7935 /* Line 1806 of yacc.c */ 7936 #line 2125 "parser.yy" 7840 7937 { 7841 7938 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7845 7942 break; 7846 7943 7847 case 54 3:7848 7849 /* Line 1806 of yacc.c */ 7850 #line 21 21"parser.yy"7944 case 545: 7945 7946 /* Line 1806 of yacc.c */ 7947 #line 2133 "parser.yy" 7851 7948 { 7852 7949 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7856 7953 break; 7857 7954 7858 case 54 4:7859 7860 /* Line 1806 of yacc.c */ 7861 #line 21 27"parser.yy"7955 case 546: 7956 7957 /* Line 1806 of yacc.c */ 7958 #line 2139 "parser.yy" 7862 7959 { 7863 7960 typedefTable.addToEnclosingScope( TypedefTable::ID ); … … 7867 7964 break; 7868 7965 7869 case 5 48:7870 7871 /* Line 1806 of yacc.c */ 7872 #line 21 42"parser.yy"7966 case 550: 7967 7968 /* Line 1806 of yacc.c */ 7969 #line 2154 "parser.yy" 7873 7970 { (yyval.en) = new ExpressionNode( build_range( (yyvsp[(1) - (3)].en), (yyvsp[(3) - (3)].en) ) ); } 7874 7971 break; 7875 7972 7876 case 550:7877 7878 /* Line 1806 of yacc.c */7879 #line 2147 "parser.yy"7880 { delete (yyvsp[(3) - (5)].str); }7881 break;7882 7883 7973 case 551: 7884 7974 7885 7975 /* Line 1806 of yacc.c */ 7886 #line 2152 "parser.yy"7887 { (yyval.decl) = 0; }7888 break;7889 7890 case 554:7891 7892 /* Line 1806 of yacc.c */7893 7976 #line 2159 "parser.yy" 7977 { (yyval.constant) = nullptr; } 7978 break; 7979 7980 case 552: 7981 7982 /* Line 1806 of yacc.c */ 7983 #line 2161 "parser.yy" 7984 { (yyval.constant) = (yyvsp[(3) - (5)].constant); } 7985 break; 7986 7987 case 553: 7988 7989 /* Line 1806 of yacc.c */ 7990 #line 2166 "parser.yy" 7991 { (yyval.decl) = nullptr; } 7992 break; 7993 7994 case 556: 7995 7996 /* Line 1806 of yacc.c */ 7997 #line 2173 "parser.yy" 7894 7998 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 7895 7999 break; 7896 8000 7897 case 55 5:7898 7899 /* Line 1806 of yacc.c */ 7900 #line 21 65"parser.yy"7901 { (yyval.decl) = 0; }7902 break; 7903 7904 case 56 0:7905 7906 /* Line 1806 of yacc.c */ 7907 #line 21 76"parser.yy"8001 case 557: 8002 8003 /* Line 1806 of yacc.c */ 8004 #line 2179 "parser.yy" 8005 { (yyval.decl) = nullptr; } 8006 break; 8007 8008 case 562: 8009 8010 /* Line 1806 of yacc.c */ 8011 #line 2190 "parser.yy" 7908 8012 { delete (yyvsp[(3) - (4)].en); } 7909 8013 break; 7910 8014 7911 case 56 1:7912 7913 /* Line 1806 of yacc.c */ 7914 #line 21 80"parser.yy"8015 case 563: 8016 8017 /* Line 1806 of yacc.c */ 8018 #line 2194 "parser.yy" 7915 8019 { delete (yyvsp[(1) - (1)].tok); } 7916 8020 break; 7917 8021 7918 case 56 2:7919 7920 /* Line 1806 of yacc.c */ 7921 #line 21 81"parser.yy"8022 case 564: 8023 8024 /* Line 1806 of yacc.c */ 8025 #line 2195 "parser.yy" 7922 8026 { delete (yyvsp[(1) - (1)].decl); } 7923 8027 break; 7924 8028 7925 case 56 3:7926 7927 /* Line 1806 of yacc.c */ 7928 #line 21 82"parser.yy"8029 case 565: 8030 8031 /* Line 1806 of yacc.c */ 8032 #line 2196 "parser.yy" 7929 8033 { delete (yyvsp[(1) - (1)].decl); } 7930 8034 break; 7931 8035 7932 case 56 4:7933 7934 /* Line 1806 of yacc.c */ 7935 #line 21 83"parser.yy"8036 case 566: 8037 8038 /* Line 1806 of yacc.c */ 8039 #line 2197 "parser.yy" 7936 8040 { delete (yyvsp[(1) - (1)].decl); } 7937 8041 break; 7938 8042 7939 case 56 5:7940 7941 /* Line 1806 of yacc.c */ 7942 #line 22 18"parser.yy"8043 case 567: 8044 8045 /* Line 1806 of yacc.c */ 8046 #line 2232 "parser.yy" 7943 8047 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7944 8048 break; 7945 8049 7946 case 56 7:7947 7948 /* Line 1806 of yacc.c */ 7949 #line 22 21"parser.yy"8050 case 569: 8051 8052 /* Line 1806 of yacc.c */ 8053 #line 2235 "parser.yy" 7950 8054 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7951 8055 break; 7952 8056 7953 case 5 68:7954 7955 /* Line 1806 of yacc.c */ 7956 #line 22 23"parser.yy"8057 case 570: 8058 8059 /* Line 1806 of yacc.c */ 8060 #line 2237 "parser.yy" 7957 8061 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 7958 8062 break; 7959 8063 7960 case 5 69:7961 7962 /* Line 1806 of yacc.c */ 7963 #line 22 28"parser.yy"8064 case 571: 8065 8066 /* Line 1806 of yacc.c */ 8067 #line 2242 "parser.yy" 7964 8068 { 7965 8069 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 7968 8072 break; 7969 8073 7970 case 57 0:7971 7972 /* Line 1806 of yacc.c */ 7973 #line 22 33"parser.yy"8074 case 572: 8075 8076 /* Line 1806 of yacc.c */ 8077 #line 2247 "parser.yy" 7974 8078 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7975 8079 break; 7976 8080 7977 case 57 1:7978 7979 /* Line 1806 of yacc.c */ 7980 #line 22 38"parser.yy"8081 case 573: 8082 8083 /* Line 1806 of yacc.c */ 8084 #line 2252 "parser.yy" 7981 8085 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 7982 8086 break; 7983 8087 7984 case 57 2:7985 7986 /* Line 1806 of yacc.c */ 7987 #line 22 40"parser.yy"8088 case 574: 8089 8090 /* Line 1806 of yacc.c */ 8091 #line 2254 "parser.yy" 7988 8092 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 7989 8093 break; 7990 8094 7991 case 57 3:7992 7993 /* Line 1806 of yacc.c */ 7994 #line 22 42"parser.yy"8095 case 575: 8096 8097 /* Line 1806 of yacc.c */ 8098 #line 2256 "parser.yy" 7995 8099 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 7996 8100 break; 7997 8101 7998 case 57 4:7999 8000 /* Line 1806 of yacc.c */ 8001 #line 22 47"parser.yy"8102 case 576: 8103 8104 /* Line 1806 of yacc.c */ 8105 #line 2261 "parser.yy" 8002 8106 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8003 8107 break; 8004 8108 8005 case 57 5:8006 8007 /* Line 1806 of yacc.c */ 8008 #line 22 49"parser.yy"8109 case 577: 8110 8111 /* Line 1806 of yacc.c */ 8112 #line 2263 "parser.yy" 8009 8113 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8010 8114 break; 8011 8115 8012 case 57 6:8013 8014 /* Line 1806 of yacc.c */ 8015 #line 22 51"parser.yy"8116 case 578: 8117 8118 /* Line 1806 of yacc.c */ 8119 #line 2265 "parser.yy" 8016 8120 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8017 8121 break; 8018 8122 8019 case 57 7:8020 8021 /* Line 1806 of yacc.c */ 8022 #line 22 53"parser.yy"8123 case 579: 8124 8125 /* Line 1806 of yacc.c */ 8126 #line 2267 "parser.yy" 8023 8127 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8024 8128 break; 8025 8129 8026 case 5 78:8027 8028 /* Line 1806 of yacc.c */ 8029 #line 22 58"parser.yy"8130 case 580: 8131 8132 /* Line 1806 of yacc.c */ 8133 #line 2272 "parser.yy" 8030 8134 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8031 8135 break; 8032 8136 8033 case 5 79:8034 8035 /* Line 1806 of yacc.c */ 8036 #line 22 60"parser.yy"8137 case 581: 8138 8139 /* Line 1806 of yacc.c */ 8140 #line 2274 "parser.yy" 8037 8141 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8038 8142 break; 8039 8143 8040 case 58 0:8041 8042 /* Line 1806 of yacc.c */ 8043 #line 22 69"parser.yy"8144 case 582: 8145 8146 /* Line 1806 of yacc.c */ 8147 #line 2283 "parser.yy" 8044 8148 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8045 8149 break; 8046 8150 8047 case 58 2:8048 8049 /* Line 1806 of yacc.c */ 8050 #line 22 72"parser.yy"8151 case 584: 8152 8153 /* Line 1806 of yacc.c */ 8154 #line 2286 "parser.yy" 8051 8155 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8052 8156 break; 8053 8157 8054 case 58 3:8055 8056 /* Line 1806 of yacc.c */ 8057 #line 22 77"parser.yy"8158 case 585: 8159 8160 /* Line 1806 of yacc.c */ 8161 #line 2291 "parser.yy" 8058 8162 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8059 8163 break; 8060 8164 8061 case 58 4:8062 8063 /* Line 1806 of yacc.c */ 8064 #line 22 79"parser.yy"8165 case 586: 8166 8167 /* Line 1806 of yacc.c */ 8168 #line 2293 "parser.yy" 8065 8169 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8066 8170 break; 8067 8171 8068 case 58 5:8069 8070 /* Line 1806 of yacc.c */ 8071 #line 22 81"parser.yy"8172 case 587: 8173 8174 /* Line 1806 of yacc.c */ 8175 #line 2295 "parser.yy" 8072 8176 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8073 8177 break; 8074 8178 8075 case 58 6:8076 8077 /* Line 1806 of yacc.c */ 8078 #line 2 286"parser.yy"8179 case 588: 8180 8181 /* Line 1806 of yacc.c */ 8182 #line 2300 "parser.yy" 8079 8183 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8080 8184 break; 8081 8185 8082 case 58 7:8083 8084 /* Line 1806 of yacc.c */ 8085 #line 2 288"parser.yy"8186 case 589: 8187 8188 /* Line 1806 of yacc.c */ 8189 #line 2302 "parser.yy" 8086 8190 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8087 8191 break; 8088 8192 8089 case 5 88:8090 8091 /* Line 1806 of yacc.c */ 8092 #line 2 290"parser.yy"8193 case 590: 8194 8195 /* Line 1806 of yacc.c */ 8196 #line 2304 "parser.yy" 8093 8197 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8094 8198 break; 8095 8199 8096 case 5 89:8097 8098 /* Line 1806 of yacc.c */ 8099 #line 2 295"parser.yy"8200 case 591: 8201 8202 /* Line 1806 of yacc.c */ 8203 #line 2309 "parser.yy" 8100 8204 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8101 8205 break; 8102 8206 8103 case 59 0:8104 8105 /* Line 1806 of yacc.c */ 8106 #line 2 297"parser.yy"8207 case 592: 8208 8209 /* Line 1806 of yacc.c */ 8210 #line 2311 "parser.yy" 8107 8211 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8108 8212 break; 8109 8213 8110 case 59 1:8111 8112 /* Line 1806 of yacc.c */ 8113 #line 2 299"parser.yy"8214 case 593: 8215 8216 /* Line 1806 of yacc.c */ 8217 #line 2313 "parser.yy" 8114 8218 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8115 8219 break; 8116 8220 8117 case 59 5:8118 8119 /* Line 1806 of yacc.c */ 8120 #line 23 14"parser.yy"8221 case 597: 8222 8223 /* Line 1806 of yacc.c */ 8224 #line 2328 "parser.yy" 8121 8225 { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); } 8122 8226 break; 8123 8227 8124 case 59 6:8125 8126 /* Line 1806 of yacc.c */ 8127 #line 23 16"parser.yy"8228 case 598: 8229 8230 /* Line 1806 of yacc.c */ 8231 #line 2330 "parser.yy" 8128 8232 { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); } 8129 8233 break; 8130 8234 8131 case 59 7:8132 8133 /* Line 1806 of yacc.c */ 8134 #line 23 18"parser.yy"8235 case 599: 8236 8237 /* Line 1806 of yacc.c */ 8238 #line 2332 "parser.yy" 8135 8239 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8136 8240 break; 8137 8241 8138 case 598:8139 8140 /* Line 1806 of yacc.c */ 8141 #line 23 23"parser.yy"8242 case 600: 8243 8244 /* Line 1806 of yacc.c */ 8245 #line 2337 "parser.yy" 8142 8246 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8143 8247 break; 8144 8248 8145 case 599:8146 8147 /* Line 1806 of yacc.c */ 8148 #line 23 25"parser.yy"8249 case 601: 8250 8251 /* Line 1806 of yacc.c */ 8252 #line 2339 "parser.yy" 8149 8253 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8150 8254 break; 8151 8255 8152 case 60 0:8153 8154 /* Line 1806 of yacc.c */ 8155 #line 23 27"parser.yy"8256 case 602: 8257 8258 /* Line 1806 of yacc.c */ 8259 #line 2341 "parser.yy" 8156 8260 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8157 8261 break; 8158 8262 8159 case 60 1:8160 8161 /* Line 1806 of yacc.c */ 8162 #line 23 32"parser.yy"8263 case 603: 8264 8265 /* Line 1806 of yacc.c */ 8266 #line 2346 "parser.yy" 8163 8267 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8164 8268 break; 8165 8269 8166 case 60 2:8167 8168 /* Line 1806 of yacc.c */ 8169 #line 23 34"parser.yy"8270 case 604: 8271 8272 /* Line 1806 of yacc.c */ 8273 #line 2348 "parser.yy" 8170 8274 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8171 8275 break; 8172 8276 8173 case 60 3:8174 8175 /* Line 1806 of yacc.c */ 8176 #line 23 36"parser.yy"8277 case 605: 8278 8279 /* Line 1806 of yacc.c */ 8280 #line 2350 "parser.yy" 8177 8281 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8178 8282 break; 8179 8283 8180 case 60 4:8181 8182 /* Line 1806 of yacc.c */ 8183 #line 23 51"parser.yy"8284 case 606: 8285 8286 /* Line 1806 of yacc.c */ 8287 #line 2365 "parser.yy" 8184 8288 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8185 8289 break; 8186 8290 8187 case 60 6:8188 8189 /* Line 1806 of yacc.c */ 8190 #line 23 54"parser.yy"8291 case 608: 8292 8293 /* Line 1806 of yacc.c */ 8294 #line 2368 "parser.yy" 8191 8295 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8192 8296 break; 8193 8297 8194 case 60 7:8195 8196 /* Line 1806 of yacc.c */ 8197 #line 23 56"parser.yy"8298 case 609: 8299 8300 /* Line 1806 of yacc.c */ 8301 #line 2370 "parser.yy" 8198 8302 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8199 8303 break; 8200 8304 8201 case 6 09:8202 8203 /* Line 1806 of yacc.c */ 8204 #line 23 62"parser.yy"8305 case 611: 8306 8307 /* Line 1806 of yacc.c */ 8308 #line 2376 "parser.yy" 8205 8309 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8206 8310 break; 8207 8311 8208 case 61 0:8209 8210 /* Line 1806 of yacc.c */ 8211 #line 23 67"parser.yy"8312 case 612: 8313 8314 /* Line 1806 of yacc.c */ 8315 #line 2381 "parser.yy" 8212 8316 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8213 8317 break; 8214 8318 8215 case 61 1:8216 8217 /* Line 1806 of yacc.c */ 8218 #line 23 69"parser.yy"8319 case 613: 8320 8321 /* Line 1806 of yacc.c */ 8322 #line 2383 "parser.yy" 8219 8323 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8220 8324 break; 8221 8325 8222 case 61 2:8223 8224 /* Line 1806 of yacc.c */ 8225 #line 23 71"parser.yy"8326 case 614: 8327 8328 /* Line 1806 of yacc.c */ 8329 #line 2385 "parser.yy" 8226 8330 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8227 8331 break; 8228 8332 8229 case 61 3:8230 8231 /* Line 1806 of yacc.c */ 8232 #line 23 76"parser.yy"8333 case 615: 8334 8335 /* Line 1806 of yacc.c */ 8336 #line 2390 "parser.yy" 8233 8337 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8234 8338 break; 8235 8339 8236 case 61 4:8237 8238 /* Line 1806 of yacc.c */ 8239 #line 23 78"parser.yy"8340 case 616: 8341 8342 /* Line 1806 of yacc.c */ 8343 #line 2392 "parser.yy" 8240 8344 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8241 8345 break; 8242 8346 8243 case 61 5:8244 8245 /* Line 1806 of yacc.c */ 8246 #line 23 80"parser.yy"8347 case 617: 8348 8349 /* Line 1806 of yacc.c */ 8350 #line 2394 "parser.yy" 8247 8351 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8248 8352 break; 8249 8353 8250 case 61 6:8251 8252 /* Line 1806 of yacc.c */ 8253 #line 23 82"parser.yy"8354 case 618: 8355 8356 /* Line 1806 of yacc.c */ 8357 #line 2396 "parser.yy" 8254 8358 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8255 8359 break; 8256 8360 8257 case 61 7:8258 8259 /* Line 1806 of yacc.c */ 8260 #line 2 387"parser.yy"8361 case 619: 8362 8363 /* Line 1806 of yacc.c */ 8364 #line 2401 "parser.yy" 8261 8365 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8262 8366 break; 8263 8367 8264 case 6 18:8265 8266 /* Line 1806 of yacc.c */ 8267 #line 2 389"parser.yy"8368 case 620: 8369 8370 /* Line 1806 of yacc.c */ 8371 #line 2403 "parser.yy" 8268 8372 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8269 8373 break; 8270 8374 8271 case 6 19:8272 8273 /* Line 1806 of yacc.c */ 8274 #line 2 391"parser.yy"8375 case 621: 8376 8377 /* Line 1806 of yacc.c */ 8378 #line 2405 "parser.yy" 8275 8379 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8276 8380 break; 8277 8381 8278 case 62 0:8279 8280 /* Line 1806 of yacc.c */ 8281 #line 24 01"parser.yy"8382 case 622: 8383 8384 /* Line 1806 of yacc.c */ 8385 #line 2415 "parser.yy" 8282 8386 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8283 8387 break; 8284 8388 8285 case 62 2:8286 8287 /* Line 1806 of yacc.c */ 8288 #line 24 04"parser.yy"8389 case 624: 8390 8391 /* Line 1806 of yacc.c */ 8392 #line 2418 "parser.yy" 8289 8393 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8290 8394 break; 8291 8395 8292 case 62 3:8293 8294 /* Line 1806 of yacc.c */ 8295 #line 24 06"parser.yy"8396 case 625: 8397 8398 /* Line 1806 of yacc.c */ 8399 #line 2420 "parser.yy" 8296 8400 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8297 8401 break; 8298 8402 8299 case 62 4:8300 8301 /* Line 1806 of yacc.c */ 8302 #line 24 11"parser.yy"8403 case 626: 8404 8405 /* Line 1806 of yacc.c */ 8406 #line 2425 "parser.yy" 8303 8407 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8304 8408 break; 8305 8409 8306 case 62 5:8307 8308 /* Line 1806 of yacc.c */ 8309 #line 24 13"parser.yy"8410 case 627: 8411 8412 /* Line 1806 of yacc.c */ 8413 #line 2427 "parser.yy" 8310 8414 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8311 8415 break; 8312 8416 8313 case 62 6:8314 8315 /* Line 1806 of yacc.c */ 8316 #line 24 15"parser.yy"8417 case 628: 8418 8419 /* Line 1806 of yacc.c */ 8420 #line 2429 "parser.yy" 8317 8421 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8318 8422 break; 8319 8423 8320 case 62 7:8321 8322 /* Line 1806 of yacc.c */ 8323 #line 24 20"parser.yy"8424 case 629: 8425 8426 /* Line 1806 of yacc.c */ 8427 #line 2434 "parser.yy" 8324 8428 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8325 8429 break; 8326 8430 8327 case 6 28:8328 8329 /* Line 1806 of yacc.c */ 8330 #line 24 22"parser.yy"8431 case 630: 8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2436 "parser.yy" 8331 8435 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8332 8436 break; 8333 8437 8334 case 6 29:8335 8336 /* Line 1806 of yacc.c */ 8337 #line 24 24"parser.yy"8438 case 631: 8439 8440 /* Line 1806 of yacc.c */ 8441 #line 2438 "parser.yy" 8338 8442 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8339 8443 break; 8340 8444 8341 case 63 0:8342 8343 /* Line 1806 of yacc.c */ 8344 #line 24 26"parser.yy"8445 case 632: 8446 8447 /* Line 1806 of yacc.c */ 8448 #line 2440 "parser.yy" 8345 8449 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8346 8450 break; 8347 8451 8348 case 63 1:8349 8350 /* Line 1806 of yacc.c */ 8351 #line 24 31"parser.yy"8452 case 633: 8453 8454 /* Line 1806 of yacc.c */ 8455 #line 2445 "parser.yy" 8352 8456 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8353 8457 break; 8354 8458 8355 case 63 2:8356 8357 /* Line 1806 of yacc.c */ 8358 #line 24 33"parser.yy"8459 case 634: 8460 8461 /* Line 1806 of yacc.c */ 8462 #line 2447 "parser.yy" 8359 8463 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8360 8464 break; 8361 8465 8362 case 63 3:8363 8364 /* Line 1806 of yacc.c */ 8365 #line 24 35"parser.yy"8466 case 635: 8467 8468 /* Line 1806 of yacc.c */ 8469 #line 2449 "parser.yy" 8366 8470 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8367 8471 break; 8368 8472 8369 case 63 4:8370 8371 /* Line 1806 of yacc.c */ 8372 #line 24 66"parser.yy"8473 case 636: 8474 8475 /* Line 1806 of yacc.c */ 8476 #line 2480 "parser.yy" 8373 8477 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8374 8478 break; 8375 8479 8376 case 63 6:8377 8378 /* Line 1806 of yacc.c */ 8379 #line 24 69"parser.yy"8480 case 638: 8481 8482 /* Line 1806 of yacc.c */ 8483 #line 2483 "parser.yy" 8380 8484 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8381 8485 break; 8382 8486 8383 case 63 7:8384 8385 /* Line 1806 of yacc.c */ 8386 #line 24 71"parser.yy"8487 case 639: 8488 8489 /* Line 1806 of yacc.c */ 8490 #line 2485 "parser.yy" 8387 8491 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8388 8492 break; 8389 8493 8390 case 6 38:8391 8392 /* Line 1806 of yacc.c */ 8393 #line 24 76"parser.yy"8494 case 640: 8495 8496 /* Line 1806 of yacc.c */ 8497 #line 2490 "parser.yy" 8394 8498 { 8395 8499 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8398 8502 break; 8399 8503 8400 case 6 39:8401 8402 /* Line 1806 of yacc.c */ 8403 #line 24 81"parser.yy"8504 case 641: 8505 8506 /* Line 1806 of yacc.c */ 8507 #line 2495 "parser.yy" 8404 8508 { 8405 8509 typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) ); … … 8408 8512 break; 8409 8513 8410 case 64 0:8411 8412 /* Line 1806 of yacc.c */ 8413 #line 2 489"parser.yy"8514 case 642: 8515 8516 /* Line 1806 of yacc.c */ 8517 #line 2503 "parser.yy" 8414 8518 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8415 8519 break; 8416 8520 8417 case 64 1:8418 8419 /* Line 1806 of yacc.c */ 8420 #line 2 491"parser.yy"8521 case 643: 8522 8523 /* Line 1806 of yacc.c */ 8524 #line 2505 "parser.yy" 8421 8525 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8422 8526 break; 8423 8527 8424 case 64 2:8425 8426 /* Line 1806 of yacc.c */ 8427 #line 2 493"parser.yy"8528 case 644: 8529 8530 /* Line 1806 of yacc.c */ 8531 #line 2507 "parser.yy" 8428 8532 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8429 8533 break; 8430 8534 8431 case 64 3:8432 8433 /* Line 1806 of yacc.c */ 8434 #line 2 498"parser.yy"8535 case 645: 8536 8537 /* Line 1806 of yacc.c */ 8538 #line 2512 "parser.yy" 8435 8539 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8436 8540 break; 8437 8541 8438 case 64 4:8439 8440 /* Line 1806 of yacc.c */ 8441 #line 25 00"parser.yy"8542 case 646: 8543 8544 /* Line 1806 of yacc.c */ 8545 #line 2514 "parser.yy" 8442 8546 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8443 8547 break; 8444 8548 8445 case 64 5:8446 8447 /* Line 1806 of yacc.c */ 8448 #line 25 05"parser.yy"8549 case 647: 8550 8551 /* Line 1806 of yacc.c */ 8552 #line 2519 "parser.yy" 8449 8553 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); } 8450 8554 break; 8451 8555 8452 case 64 6:8453 8454 /* Line 1806 of yacc.c */ 8455 #line 25 07"parser.yy"8556 case 648: 8557 8558 /* Line 1806 of yacc.c */ 8559 #line 2521 "parser.yy" 8456 8560 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8457 8561 break; 8458 8562 8459 case 6 48:8460 8461 /* Line 1806 of yacc.c */ 8462 #line 25 22"parser.yy"8563 case 650: 8564 8565 /* Line 1806 of yacc.c */ 8566 #line 2536 "parser.yy" 8463 8567 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8464 8568 break; 8465 8569 8466 case 6 49:8467 8468 /* Line 1806 of yacc.c */ 8469 #line 25 24"parser.yy"8570 case 651: 8571 8572 /* Line 1806 of yacc.c */ 8573 #line 2538 "parser.yy" 8470 8574 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8471 8575 break; 8472 8576 8473 case 65 0:8474 8475 /* Line 1806 of yacc.c */ 8476 #line 25 29"parser.yy"8577 case 652: 8578 8579 /* Line 1806 of yacc.c */ 8580 #line 2543 "parser.yy" 8477 8581 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8478 8582 break; 8479 8583 8480 case 65 1:8481 8482 /* Line 1806 of yacc.c */ 8483 #line 25 31"parser.yy"8584 case 653: 8585 8586 /* Line 1806 of yacc.c */ 8587 #line 2545 "parser.yy" 8484 8588 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8485 8589 break; 8486 8590 8487 case 65 2:8488 8489 /* Line 1806 of yacc.c */ 8490 #line 25 33"parser.yy"8591 case 654: 8592 8593 /* Line 1806 of yacc.c */ 8594 #line 2547 "parser.yy" 8491 8595 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8492 8596 break; 8493 8597 8494 case 65 3:8495 8496 /* Line 1806 of yacc.c */ 8497 #line 25 35"parser.yy"8598 case 655: 8599 8600 /* Line 1806 of yacc.c */ 8601 #line 2549 "parser.yy" 8498 8602 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8499 8603 break; 8500 8604 8501 case 65 4:8502 8503 /* Line 1806 of yacc.c */ 8504 #line 25 37"parser.yy"8605 case 656: 8606 8607 /* Line 1806 of yacc.c */ 8608 #line 2551 "parser.yy" 8505 8609 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8506 8610 break; 8507 8611 8508 case 65 6:8509 8510 /* Line 1806 of yacc.c */ 8511 #line 25 43"parser.yy"8612 case 658: 8613 8614 /* Line 1806 of yacc.c */ 8615 #line 2557 "parser.yy" 8512 8616 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8513 8617 break; 8514 8618 8515 case 65 7:8516 8517 /* Line 1806 of yacc.c */ 8518 #line 25 45"parser.yy"8619 case 659: 8620 8621 /* Line 1806 of yacc.c */ 8622 #line 2559 "parser.yy" 8519 8623 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8520 8624 break; 8521 8625 8522 case 6 58:8523 8524 /* Line 1806 of yacc.c */ 8525 #line 25 47"parser.yy"8626 case 660: 8627 8628 /* Line 1806 of yacc.c */ 8629 #line 2561 "parser.yy" 8526 8630 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8527 8631 break; 8528 8632 8529 case 6 59:8530 8531 /* Line 1806 of yacc.c */ 8532 #line 25 52"parser.yy"8633 case 661: 8634 8635 /* Line 1806 of yacc.c */ 8636 #line 2566 "parser.yy" 8533 8637 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8534 8638 break; 8535 8639 8536 case 66 0:8537 8538 /* Line 1806 of yacc.c */ 8539 #line 25 54"parser.yy"8640 case 662: 8641 8642 /* Line 1806 of yacc.c */ 8643 #line 2568 "parser.yy" 8540 8644 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8541 8645 break; 8542 8646 8543 case 66 1:8544 8545 /* Line 1806 of yacc.c */ 8546 #line 25 56"parser.yy"8647 case 663: 8648 8649 /* Line 1806 of yacc.c */ 8650 #line 2570 "parser.yy" 8547 8651 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8548 8652 break; 8549 8653 8550 case 66 2:8551 8552 /* Line 1806 of yacc.c */ 8553 #line 25 62"parser.yy"8654 case 664: 8655 8656 /* Line 1806 of yacc.c */ 8657 #line 2576 "parser.yy" 8554 8658 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8555 8659 break; 8556 8660 8557 case 66 3:8558 8559 /* Line 1806 of yacc.c */ 8560 #line 25 64"parser.yy"8661 case 665: 8662 8663 /* Line 1806 of yacc.c */ 8664 #line 2578 "parser.yy" 8561 8665 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); } 8562 8666 break; 8563 8667 8564 case 66 5:8565 8566 /* Line 1806 of yacc.c */ 8567 #line 25 70"parser.yy"8668 case 667: 8669 8670 /* Line 1806 of yacc.c */ 8671 #line 2584 "parser.yy" 8568 8672 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); } 8569 8673 break; 8570 8674 8571 case 66 6:8572 8573 /* Line 1806 of yacc.c */ 8574 #line 25 72"parser.yy"8675 case 668: 8676 8677 /* Line 1806 of yacc.c */ 8678 #line 2586 "parser.yy" 8575 8679 { (yyval.decl) = DeclarationNode::newVarArray( 0 ); } 8576 8680 break; 8577 8681 8578 case 66 7:8579 8580 /* Line 1806 of yacc.c */ 8581 #line 25 74"parser.yy"8682 case 669: 8683 8684 /* Line 1806 of yacc.c */ 8685 #line 2588 "parser.yy" 8582 8686 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); } 8583 8687 break; 8584 8688 8585 case 6 68:8586 8587 /* Line 1806 of yacc.c */ 8588 #line 25 76"parser.yy"8689 case 670: 8690 8691 /* Line 1806 of yacc.c */ 8692 #line 2590 "parser.yy" 8589 8693 { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); } 8590 8694 break; 8591 8695 8592 case 67 0:8593 8594 /* Line 1806 of yacc.c */ 8595 #line 2 591"parser.yy"8696 case 672: 8697 8698 /* Line 1806 of yacc.c */ 8699 #line 2605 "parser.yy" 8596 8700 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8597 8701 break; 8598 8702 8599 case 67 1:8600 8601 /* Line 1806 of yacc.c */ 8602 #line 2 593"parser.yy"8703 case 673: 8704 8705 /* Line 1806 of yacc.c */ 8706 #line 2607 "parser.yy" 8603 8707 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8604 8708 break; 8605 8709 8606 case 67 2:8607 8608 /* Line 1806 of yacc.c */ 8609 #line 2 598"parser.yy"8710 case 674: 8711 8712 /* Line 1806 of yacc.c */ 8713 #line 2612 "parser.yy" 8610 8714 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8611 8715 break; 8612 8716 8613 case 67 3:8614 8615 /* Line 1806 of yacc.c */ 8616 #line 26 00"parser.yy"8717 case 675: 8718 8719 /* Line 1806 of yacc.c */ 8720 #line 2614 "parser.yy" 8617 8721 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8618 8722 break; 8619 8723 8620 case 67 4:8621 8622 /* Line 1806 of yacc.c */ 8623 #line 26 02"parser.yy"8724 case 676: 8725 8726 /* Line 1806 of yacc.c */ 8727 #line 2616 "parser.yy" 8624 8728 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8625 8729 break; 8626 8730 8627 case 67 5:8628 8629 /* Line 1806 of yacc.c */ 8630 #line 26 04"parser.yy"8731 case 677: 8732 8733 /* Line 1806 of yacc.c */ 8734 #line 2618 "parser.yy" 8631 8735 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8632 8736 break; 8633 8737 8634 case 67 6:8635 8636 /* Line 1806 of yacc.c */ 8637 #line 26 06"parser.yy"8738 case 678: 8739 8740 /* Line 1806 of yacc.c */ 8741 #line 2620 "parser.yy" 8638 8742 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8639 8743 break; 8640 8744 8641 case 6 78:8642 8643 /* Line 1806 of yacc.c */ 8644 #line 26 12"parser.yy"8745 case 680: 8746 8747 /* Line 1806 of yacc.c */ 8748 #line 2626 "parser.yy" 8645 8749 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8646 8750 break; 8647 8751 8648 case 6 79:8649 8650 /* Line 1806 of yacc.c */ 8651 #line 26 14"parser.yy"8752 case 681: 8753 8754 /* Line 1806 of yacc.c */ 8755 #line 2628 "parser.yy" 8652 8756 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8653 8757 break; 8654 8758 8655 case 68 0:8656 8657 /* Line 1806 of yacc.c */ 8658 #line 26 16"parser.yy"8759 case 682: 8760 8761 /* Line 1806 of yacc.c */ 8762 #line 2630 "parser.yy" 8659 8763 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8660 8764 break; 8661 8765 8662 case 68 1:8663 8664 /* Line 1806 of yacc.c */ 8665 #line 26 21"parser.yy"8766 case 683: 8767 8768 /* Line 1806 of yacc.c */ 8769 #line 2635 "parser.yy" 8666 8770 { (yyval.decl) = DeclarationNode::newFunction( nullptr, nullptr, (yyvsp[(3) - (5)].decl), nullptr ); } 8667 8771 break; 8668 8772 8669 case 68 2:8670 8671 /* Line 1806 of yacc.c */ 8672 #line 26 23"parser.yy"8773 case 684: 8774 8775 /* Line 1806 of yacc.c */ 8776 #line 2637 "parser.yy" 8673 8777 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8674 8778 break; 8675 8779 8676 case 68 3:8677 8678 /* Line 1806 of yacc.c */ 8679 #line 26 25"parser.yy"8780 case 685: 8781 8782 /* Line 1806 of yacc.c */ 8783 #line 2639 "parser.yy" 8680 8784 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8681 8785 break; 8682 8786 8683 case 68 5:8684 8685 /* Line 1806 of yacc.c */ 8686 #line 26 32"parser.yy"8787 case 687: 8788 8789 /* Line 1806 of yacc.c */ 8790 #line 2646 "parser.yy" 8687 8791 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); } 8688 8792 break; 8689 8793 8690 case 68 7:8691 8692 /* Line 1806 of yacc.c */ 8693 #line 26 43"parser.yy"8794 case 689: 8795 8796 /* Line 1806 of yacc.c */ 8797 #line 2657 "parser.yy" 8694 8798 { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); } 8695 8799 break; 8696 8800 8697 case 6 88:8698 8699 /* Line 1806 of yacc.c */ 8700 #line 26 46"parser.yy"8801 case 690: 8802 8803 /* Line 1806 of yacc.c */ 8804 #line 2660 "parser.yy" 8701 8805 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8702 8806 break; 8703 8807 8704 case 6 89:8705 8706 /* Line 1806 of yacc.c */ 8707 #line 26 48"parser.yy"8808 case 691: 8809 8810 /* Line 1806 of yacc.c */ 8811 #line 2662 "parser.yy" 8708 8812 { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); } 8709 8813 break; 8710 8814 8711 case 69 0:8712 8713 /* Line 1806 of yacc.c */ 8714 #line 26 51"parser.yy"8815 case 692: 8816 8817 /* Line 1806 of yacc.c */ 8818 #line 2665 "parser.yy" 8715 8819 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8716 8820 break; 8717 8821 8718 case 69 1:8719 8720 /* Line 1806 of yacc.c */ 8721 #line 26 53"parser.yy"8822 case 693: 8823 8824 /* Line 1806 of yacc.c */ 8825 #line 2667 "parser.yy" 8722 8826 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); } 8723 8827 break; 8724 8828 8725 case 69 2:8726 8727 /* Line 1806 of yacc.c */ 8728 #line 26 55"parser.yy"8829 case 694: 8830 8831 /* Line 1806 of yacc.c */ 8832 #line 2669 "parser.yy" 8729 8833 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); } 8730 8834 break; 8731 8835 8732 case 69 4:8733 8734 /* Line 1806 of yacc.c */ 8735 #line 26 69"parser.yy"8836 case 696: 8837 8838 /* Line 1806 of yacc.c */ 8839 #line 2683 "parser.yy" 8736 8840 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8737 8841 break; 8738 8842 8739 case 69 5:8740 8741 /* Line 1806 of yacc.c */ 8742 #line 26 71"parser.yy"8843 case 697: 8844 8845 /* Line 1806 of yacc.c */ 8846 #line 2685 "parser.yy" 8743 8847 { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); } 8744 8848 break; 8745 8849 8746 case 69 6:8747 8748 /* Line 1806 of yacc.c */ 8749 #line 26 76"parser.yy"8850 case 698: 8851 8852 /* Line 1806 of yacc.c */ 8853 #line 2690 "parser.yy" 8750 8854 { (yyval.decl) = DeclarationNode::newPointer( 0 ); } 8751 8855 break; 8752 8856 8753 case 69 7:8754 8755 /* Line 1806 of yacc.c */ 8756 #line 26 78"parser.yy"8857 case 699: 8858 8859 /* Line 1806 of yacc.c */ 8860 #line 2692 "parser.yy" 8757 8861 { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); } 8758 8862 break; 8759 8863 8760 case 698:8761 8762 /* Line 1806 of yacc.c */ 8763 #line 26 80"parser.yy"8864 case 700: 8865 8866 /* Line 1806 of yacc.c */ 8867 #line 2694 "parser.yy" 8764 8868 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); } 8765 8869 break; 8766 8870 8767 case 699:8768 8769 /* Line 1806 of yacc.c */ 8770 #line 26 82"parser.yy"8871 case 701: 8872 8873 /* Line 1806 of yacc.c */ 8874 #line 2696 "parser.yy" 8771 8875 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); } 8772 8876 break; 8773 8877 8774 case 70 0:8775 8776 /* Line 1806 of yacc.c */ 8777 #line 26 84"parser.yy"8878 case 702: 8879 8880 /* Line 1806 of yacc.c */ 8881 #line 2698 "parser.yy" 8778 8882 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8779 8883 break; 8780 8884 8781 case 70 2:8782 8783 /* Line 1806 of yacc.c */ 8784 #line 2 690"parser.yy"8885 case 704: 8886 8887 /* Line 1806 of yacc.c */ 8888 #line 2704 "parser.yy" 8785 8889 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8786 8890 break; 8787 8891 8788 case 70 3:8789 8790 /* Line 1806 of yacc.c */ 8791 #line 2 692"parser.yy"8892 case 705: 8893 8894 /* Line 1806 of yacc.c */ 8895 #line 2706 "parser.yy" 8792 8896 { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); } 8793 8897 break; 8794 8898 8795 case 70 4:8796 8797 /* Line 1806 of yacc.c */ 8798 #line 2 694"parser.yy"8899 case 706: 8900 8901 /* Line 1806 of yacc.c */ 8902 #line 2708 "parser.yy" 8799 8903 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8800 8904 break; 8801 8905 8802 case 70 5:8803 8804 /* Line 1806 of yacc.c */ 8805 #line 2 699"parser.yy"8906 case 707: 8907 8908 /* Line 1806 of yacc.c */ 8909 #line 2713 "parser.yy" 8806 8910 { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); } 8807 8911 break; 8808 8912 8809 case 70 6:8810 8811 /* Line 1806 of yacc.c */ 8812 #line 27 01"parser.yy"8913 case 708: 8914 8915 /* Line 1806 of yacc.c */ 8916 #line 2715 "parser.yy" 8813 8917 { (yyval.decl) = (yyvsp[(2) - (3)].decl); } 8814 8918 break; 8815 8919 8816 case 7 09:8817 8818 /* Line 1806 of yacc.c */ 8819 #line 27 11"parser.yy"8920 case 711: 8921 8922 /* Line 1806 of yacc.c */ 8923 #line 2725 "parser.yy" 8820 8924 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8821 8925 break; 8822 8926 8823 case 71 2:8824 8825 /* Line 1806 of yacc.c */ 8826 #line 27 21"parser.yy"8927 case 714: 8928 8929 /* Line 1806 of yacc.c */ 8930 #line 2735 "parser.yy" 8827 8931 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8828 8932 break; 8829 8933 8830 case 71 3:8831 8832 /* Line 1806 of yacc.c */ 8833 #line 27 23"parser.yy"8934 case 715: 8935 8936 /* Line 1806 of yacc.c */ 8937 #line 2737 "parser.yy" 8834 8938 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8835 8939 break; 8836 8940 8837 case 71 4:8838 8839 /* Line 1806 of yacc.c */ 8840 #line 27 25"parser.yy"8941 case 716: 8942 8943 /* Line 1806 of yacc.c */ 8944 #line 2739 "parser.yy" 8841 8945 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8842 8946 break; 8843 8947 8844 case 71 5:8845 8846 /* Line 1806 of yacc.c */ 8847 #line 27 27"parser.yy"8948 case 717: 8949 8950 /* Line 1806 of yacc.c */ 8951 #line 2741 "parser.yy" 8848 8952 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8849 8953 break; 8850 8954 8851 case 71 6:8852 8853 /* Line 1806 of yacc.c */ 8854 #line 27 29"parser.yy"8955 case 718: 8956 8957 /* Line 1806 of yacc.c */ 8958 #line 2743 "parser.yy" 8855 8959 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8856 8960 break; 8857 8961 8858 case 71 7:8859 8860 /* Line 1806 of yacc.c */ 8861 #line 27 31"parser.yy"8962 case 719: 8963 8964 /* Line 1806 of yacc.c */ 8965 #line 2745 "parser.yy" 8862 8966 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8863 8967 break; 8864 8968 8865 case 7 18:8866 8867 /* Line 1806 of yacc.c */ 8868 #line 27 38"parser.yy"8969 case 720: 8970 8971 /* Line 1806 of yacc.c */ 8972 #line 2752 "parser.yy" 8869 8973 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8870 8974 break; 8871 8975 8872 case 7 19:8873 8874 /* Line 1806 of yacc.c */ 8875 #line 27 40"parser.yy"8976 case 721: 8977 8978 /* Line 1806 of yacc.c */ 8979 #line 2754 "parser.yy" 8876 8980 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8877 8981 break; 8878 8982 8879 case 72 0:8880 8881 /* Line 1806 of yacc.c */ 8882 #line 27 42"parser.yy"8983 case 722: 8984 8985 /* Line 1806 of yacc.c */ 8986 #line 2756 "parser.yy" 8883 8987 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8884 8988 break; 8885 8989 8886 case 72 1:8887 8888 /* Line 1806 of yacc.c */ 8889 #line 27 44"parser.yy"8990 case 723: 8991 8992 /* Line 1806 of yacc.c */ 8993 #line 2758 "parser.yy" 8890 8994 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8891 8995 break; 8892 8996 8893 case 72 2:8894 8895 /* Line 1806 of yacc.c */ 8896 #line 27 46"parser.yy"8997 case 724: 8998 8999 /* Line 1806 of yacc.c */ 9000 #line 2760 "parser.yy" 8897 9001 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8898 9002 break; 8899 9003 8900 case 72 3:8901 8902 /* Line 1806 of yacc.c */ 8903 #line 27 49"parser.yy"9004 case 725: 9005 9006 /* Line 1806 of yacc.c */ 9007 #line 2763 "parser.yy" 8904 9008 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8905 9009 break; 8906 9010 8907 case 72 4:8908 8909 /* Line 1806 of yacc.c */ 8910 #line 27 51"parser.yy"9011 case 726: 9012 9013 /* Line 1806 of yacc.c */ 9014 #line 2765 "parser.yy" 8911 9015 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8912 9016 break; 8913 9017 8914 case 72 5:8915 8916 /* Line 1806 of yacc.c */ 8917 #line 27 53"parser.yy"9018 case 727: 9019 9020 /* Line 1806 of yacc.c */ 9021 #line 2767 "parser.yy" 8918 9022 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); } 8919 9023 break; 8920 9024 8921 case 72 6:8922 8923 /* Line 1806 of yacc.c */ 8924 #line 27 55"parser.yy"9025 case 728: 9026 9027 /* Line 1806 of yacc.c */ 9028 #line 2769 "parser.yy" 8925 9029 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); } 8926 9030 break; 8927 9031 8928 case 72 7:8929 8930 /* Line 1806 of yacc.c */ 8931 #line 27 57"parser.yy"9032 case 729: 9033 9034 /* Line 1806 of yacc.c */ 9035 #line 2771 "parser.yy" 8932 9036 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 8933 9037 break; 8934 9038 8935 case 7 28:8936 8937 /* Line 1806 of yacc.c */ 8938 #line 27 62"parser.yy"9039 case 730: 9040 9041 /* Line 1806 of yacc.c */ 9042 #line 2776 "parser.yy" 8939 9043 { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); } 8940 9044 break; 8941 9045 8942 case 7 29:8943 8944 /* Line 1806 of yacc.c */ 8945 #line 27 64"parser.yy"9046 case 731: 9047 9048 /* Line 1806 of yacc.c */ 9049 #line 2778 "parser.yy" 8946 9050 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); } 8947 9051 break; 8948 9052 8949 case 73 0:8950 8951 /* Line 1806 of yacc.c */ 8952 #line 27 69"parser.yy"9053 case 732: 9054 9055 /* Line 1806 of yacc.c */ 9056 #line 2783 "parser.yy" 8953 9057 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); } 8954 9058 break; 8955 9059 8956 case 73 1:8957 8958 /* Line 1806 of yacc.c */ 8959 #line 27 71"parser.yy"9060 case 733: 9061 9062 /* Line 1806 of yacc.c */ 9063 #line 2785 "parser.yy" 8960 9064 { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); } 8961 9065 break; 8962 9066 8963 case 73 3:8964 8965 /* Line 1806 of yacc.c */ 8966 #line 2 798"parser.yy"9067 case 735: 9068 9069 /* Line 1806 of yacc.c */ 9070 #line 2812 "parser.yy" 8967 9071 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); } 8968 9072 break; 8969 9073 8970 case 73 7:8971 8972 /* Line 1806 of yacc.c */ 8973 #line 28 09"parser.yy"9074 case 739: 9075 9076 /* Line 1806 of yacc.c */ 9077 #line 2823 "parser.yy" 8974 9078 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8975 9079 break; 8976 9080 8977 case 7 38:8978 8979 /* Line 1806 of yacc.c */ 8980 #line 28 11"parser.yy"9081 case 740: 9082 9083 /* Line 1806 of yacc.c */ 9084 #line 2825 "parser.yy" 8981 9085 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8982 9086 break; 8983 9087 8984 case 7 39:8985 8986 /* Line 1806 of yacc.c */ 8987 #line 28 13"parser.yy"9088 case 741: 9089 9090 /* Line 1806 of yacc.c */ 9091 #line 2827 "parser.yy" 8988 9092 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 8989 9093 break; 8990 9094 8991 case 74 0:8992 8993 /* Line 1806 of yacc.c */ 8994 #line 28 15"parser.yy"9095 case 742: 9096 9097 /* Line 1806 of yacc.c */ 9098 #line 2829 "parser.yy" 8995 9099 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 8996 9100 break; 8997 9101 8998 case 74 1:8999 9000 /* Line 1806 of yacc.c */ 9001 #line 28 17"parser.yy"9102 case 743: 9103 9104 /* Line 1806 of yacc.c */ 9105 #line 2831 "parser.yy" 9002 9106 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); } 9003 9107 break; 9004 9108 9005 case 74 2:9006 9007 /* Line 1806 of yacc.c */ 9008 #line 28 19"parser.yy"9109 case 744: 9110 9111 /* Line 1806 of yacc.c */ 9112 #line 2833 "parser.yy" 9009 9113 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); } 9010 9114 break; 9011 9115 9012 case 74 3:9013 9014 /* Line 1806 of yacc.c */ 9015 #line 28 26"parser.yy"9116 case 745: 9117 9118 /* Line 1806 of yacc.c */ 9119 #line 2840 "parser.yy" 9016 9120 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9017 9121 break; 9018 9122 9019 case 74 4:9020 9021 /* Line 1806 of yacc.c */ 9022 #line 28 28"parser.yy"9123 case 746: 9124 9125 /* Line 1806 of yacc.c */ 9126 #line 2842 "parser.yy" 9023 9127 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9024 9128 break; 9025 9129 9026 case 74 5:9027 9028 /* Line 1806 of yacc.c */ 9029 #line 28 30"parser.yy"9130 case 747: 9131 9132 /* Line 1806 of yacc.c */ 9133 #line 2844 "parser.yy" 9030 9134 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9031 9135 break; 9032 9136 9033 case 74 6:9034 9035 /* Line 1806 of yacc.c */ 9036 #line 28 32"parser.yy"9137 case 748: 9138 9139 /* Line 1806 of yacc.c */ 9140 #line 2846 "parser.yy" 9037 9141 { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9038 9142 break; 9039 9143 9040 case 74 7:9041 9042 /* Line 1806 of yacc.c */ 9043 #line 28 34"parser.yy"9144 case 749: 9145 9146 /* Line 1806 of yacc.c */ 9147 #line 2848 "parser.yy" 9044 9148 { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( nullptr, nullptr, false ) ); } 9045 9149 break; 9046 9150 9047 case 7 48:9048 9049 /* Line 1806 of yacc.c */ 9050 #line 28 36"parser.yy"9151 case 750: 9152 9153 /* Line 1806 of yacc.c */ 9154 #line 2850 "parser.yy" 9051 9155 { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); } 9052 9156 break; 9053 9157 9054 case 7 49:9055 9056 /* Line 1806 of yacc.c */ 9057 #line 28 41"parser.yy"9158 case 751: 9159 9160 /* Line 1806 of yacc.c */ 9161 #line 2855 "parser.yy" 9058 9162 { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); } 9059 9163 break; 9060 9164 9061 case 75 0:9062 9063 /* Line 1806 of yacc.c */ 9064 #line 28 48"parser.yy"9165 case 752: 9166 9167 /* Line 1806 of yacc.c */ 9168 #line 2862 "parser.yy" 9065 9169 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9066 9170 break; 9067 9171 9068 case 75 1:9069 9070 /* Line 1806 of yacc.c */ 9071 #line 28 50"parser.yy"9172 case 753: 9173 9174 /* Line 1806 of yacc.c */ 9175 #line 2864 "parser.yy" 9072 9176 { (yyval.decl) = DeclarationNode::newFunction( nullptr, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), nullptr ); } 9073 9177 break; 9074 9178 9075 case 75 4:9076 9077 /* Line 1806 of yacc.c */ 9078 #line 28 74"parser.yy"9079 { (yyval.en) = 0; }9080 break; 9081 9082 case 75 5:9083 9084 /* Line 1806 of yacc.c */ 9085 #line 28 76"parser.yy"9179 case 756: 9180 9181 /* Line 1806 of yacc.c */ 9182 #line 2888 "parser.yy" 9183 { (yyval.en) = nullptr; } 9184 break; 9185 9186 case 757: 9187 9188 /* Line 1806 of yacc.c */ 9189 #line 2890 "parser.yy" 9086 9190 { (yyval.en) = (yyvsp[(2) - (2)].en); } 9087 9191 break; … … 9090 9194 9091 9195 /* Line 1806 of yacc.c */ 9092 #line 9 093"Parser/parser.cc"9196 #line 9197 "Parser/parser.cc" 9093 9197 default: break; 9094 9198 } … … 9321 9425 9322 9426 /* Line 2067 of yacc.c */ 9323 #line 28 79"parser.yy"9427 #line 2893 "parser.yy" 9324 9428 9325 9429 // ----end of grammar---- -
src/Parser/parser.h
r5802a4f r66f8528 59 59 SIGNED = 277, 60 60 UNSIGNED = 278, 61 VALIST = 279, 62 BOOL = 280, 63 COMPLEX = 281, 64 IMAGINARY = 282, 65 TYPEOF = 283, 66 LABEL = 284, 67 ENUM = 285, 68 STRUCT = 286, 69 UNION = 287, 70 OTYPE = 288, 71 FTYPE = 289, 72 DTYPE = 290, 73 TRAIT = 291, 74 SIZEOF = 292, 75 OFFSETOF = 293, 76 ATTRIBUTE = 294, 77 EXTENSION = 295, 78 IF = 296, 79 ELSE = 297, 80 SWITCH = 298, 81 CASE = 299, 82 DEFAULT = 300, 83 DO = 301, 84 WHILE = 302, 85 FOR = 303, 86 BREAK = 304, 87 CONTINUE = 305, 88 GOTO = 306, 89 RETURN = 307, 90 CHOOSE = 308, 91 DISABLE = 309, 92 ENABLE = 310, 93 FALLTHRU = 311, 94 TRY = 312, 95 CATCH = 313, 96 CATCHRESUME = 314, 97 FINALLY = 315, 98 THROW = 316, 99 THROWRESUME = 317, 100 AT = 318, 101 ASM = 319, 102 ALIGNAS = 320, 103 ALIGNOF = 321, 104 ATOMIC = 322, 105 GENERIC = 323, 106 NORETURN = 324, 107 STATICASSERT = 325, 108 THREADLOCAL = 326, 109 IDENTIFIER = 327, 110 QUOTED_IDENTIFIER = 328, 111 TYPEDEFname = 329, 112 TYPEGENname = 330, 113 ATTR_IDENTIFIER = 331, 114 ATTR_TYPEDEFname = 332, 115 ATTR_TYPEGENname = 333, 116 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 61 ZERO_T = 279, 62 ONE_T = 280, 63 VALIST = 281, 64 BOOL = 282, 65 COMPLEX = 283, 66 IMAGINARY = 284, 67 TYPEOF = 285, 68 LABEL = 286, 69 ENUM = 287, 70 STRUCT = 288, 71 UNION = 289, 72 OTYPE = 290, 73 FTYPE = 291, 74 DTYPE = 292, 75 TRAIT = 293, 76 SIZEOF = 294, 77 OFFSETOF = 295, 78 ATTRIBUTE = 296, 79 EXTENSION = 297, 80 IF = 298, 81 ELSE = 299, 82 SWITCH = 300, 83 CASE = 301, 84 DEFAULT = 302, 85 DO = 303, 86 WHILE = 304, 87 FOR = 305, 88 BREAK = 306, 89 CONTINUE = 307, 90 GOTO = 308, 91 RETURN = 309, 92 CHOOSE = 310, 93 DISABLE = 311, 94 ENABLE = 312, 95 FALLTHRU = 313, 96 TRY = 314, 97 CATCH = 315, 98 CATCHRESUME = 316, 99 FINALLY = 317, 100 THROW = 318, 101 THROWRESUME = 319, 102 AT = 320, 103 ASM = 321, 104 ALIGNAS = 322, 105 ALIGNOF = 323, 106 ATOMIC = 324, 107 GENERIC = 325, 108 NORETURN = 326, 109 STATICASSERT = 327, 110 THREADLOCAL = 328, 111 IDENTIFIER = 329, 112 QUOTED_IDENTIFIER = 330, 113 TYPEDEFname = 331, 114 TYPEGENname = 332, 115 ATTR_IDENTIFIER = 333, 116 ATTR_TYPEDEFname = 334, 117 ATTR_TYPEGENname = 335, 118 INTEGERconstant = 336, 119 CHARACTERconstant = 337, 120 STRINGliteral = 338, 121 REALDECIMALconstant = 339, 122 REALFRACTIONconstant = 340, 123 FLOATINGconstant = 341, 124 ZERO = 342, 125 ONE = 343, 126 ARROW = 344, 127 ICR = 345, 128 DECR = 346, 129 LS = 347, 130 RS = 348, 131 LE = 349, 132 GE = 350, 133 EQ = 351, 134 NE = 352, 135 ANDAND = 353, 136 OROR = 354, 137 ELLIPSIS = 355, 138 MULTassign = 356, 139 DIVassign = 357, 140 MODassign = 358, 141 PLUSassign = 359, 142 MINUSassign = 360, 143 LSassign = 361, 144 RSassign = 362, 145 ANDassign = 363, 146 ERassign = 364, 147 ORassign = 365, 148 ATassign = 366, 149 THEN = 367 148 150 }; 149 151 #endif … … 170 172 #define SIGNED 277 171 173 #define UNSIGNED 278 172 #define VALIST 279 173 #define BOOL 280 174 #define COMPLEX 281 175 #define IMAGINARY 282 176 #define TYPEOF 283 177 #define LABEL 284 178 #define ENUM 285 179 #define STRUCT 286 180 #define UNION 287 181 #define OTYPE 288 182 #define FTYPE 289 183 #define DTYPE 290 184 #define TRAIT 291 185 #define SIZEOF 292 186 #define OFFSETOF 293 187 #define ATTRIBUTE 294 188 #define EXTENSION 295 189 #define IF 296 190 #define ELSE 297 191 #define SWITCH 298 192 #define CASE 299 193 #define DEFAULT 300 194 #define DO 301 195 #define WHILE 302 196 #define FOR 303 197 #define BREAK 304 198 #define CONTINUE 305 199 #define GOTO 306 200 #define RETURN 307 201 #define CHOOSE 308 202 #define DISABLE 309 203 #define ENABLE 310 204 #define FALLTHRU 311 205 #define TRY 312 206 #define CATCH 313 207 #define CATCHRESUME 314 208 #define FINALLY 315 209 #define THROW 316 210 #define THROWRESUME 317 211 #define AT 318 212 #define ASM 319 213 #define ALIGNAS 320 214 #define ALIGNOF 321 215 #define ATOMIC 322 216 #define GENERIC 323 217 #define NORETURN 324 218 #define STATICASSERT 325 219 #define THREADLOCAL 326 220 #define IDENTIFIER 327 221 #define QUOTED_IDENTIFIER 328 222 #define TYPEDEFname 329 223 #define TYPEGENname 330 224 #define ATTR_IDENTIFIER 331 225 #define ATTR_TYPEDEFname 332 226 #define ATTR_TYPEGENname 333 227 #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 174 #define ZERO_T 279 175 #define ONE_T 280 176 #define VALIST 281 177 #define BOOL 282 178 #define COMPLEX 283 179 #define IMAGINARY 284 180 #define TYPEOF 285 181 #define LABEL 286 182 #define ENUM 287 183 #define STRUCT 288 184 #define UNION 289 185 #define OTYPE 290 186 #define FTYPE 291 187 #define DTYPE 292 188 #define TRAIT 293 189 #define SIZEOF 294 190 #define OFFSETOF 295 191 #define ATTRIBUTE 296 192 #define EXTENSION 297 193 #define IF 298 194 #define ELSE 299 195 #define SWITCH 300 196 #define CASE 301 197 #define DEFAULT 302 198 #define DO 303 199 #define WHILE 304 200 #define FOR 305 201 #define BREAK 306 202 #define CONTINUE 307 203 #define GOTO 308 204 #define RETURN 309 205 #define CHOOSE 310 206 #define DISABLE 311 207 #define ENABLE 312 208 #define FALLTHRU 313 209 #define TRY 314 210 #define CATCH 315 211 #define CATCHRESUME 316 212 #define FINALLY 317 213 #define THROW 318 214 #define THROWRESUME 319 215 #define AT 320 216 #define ASM 321 217 #define ALIGNAS 322 218 #define ALIGNOF 323 219 #define ATOMIC 324 220 #define GENERIC 325 221 #define NORETURN 326 222 #define STATICASSERT 327 223 #define THREADLOCAL 328 224 #define IDENTIFIER 329 225 #define QUOTED_IDENTIFIER 330 226 #define TYPEDEFname 331 227 #define TYPEGENname 332 228 #define ATTR_IDENTIFIER 333 229 #define ATTR_TYPEDEFname 334 230 #define ATTR_TYPEGENname 335 231 #define INTEGERconstant 336 232 #define CHARACTERconstant 337 233 #define STRINGliteral 338 234 #define REALDECIMALconstant 339 235 #define REALFRACTIONconstant 340 236 #define FLOATINGconstant 341 237 #define ZERO 342 238 #define ONE 343 239 #define ARROW 344 240 #define ICR 345 241 #define DECR 346 242 #define LS 347 243 #define RS 348 244 #define LE 349 245 #define GE 350 246 #define EQ 351 247 #define NE 352 248 #define ANDAND 353 249 #define OROR 354 250 #define ELLIPSIS 355 251 #define MULTassign 356 252 #define DIVassign 357 253 #define MODassign 358 254 #define PLUSassign 359 255 #define MINUSassign 360 256 #define LSassign 361 257 #define RSassign 362 258 #define ANDassign 363 259 #define ERassign 364 260 #define ORassign 365 261 #define ATassign 366 262 #define THEN 367 259 263 260 264 … … 286 290 287 291 /* Line 2068 of yacc.c */ 288 #line 2 89"Parser/parser.h"292 #line 293 "Parser/parser.h" 289 293 } YYSTYPE; 290 294 # define YYSTYPE_IS_TRIVIAL 1 -
src/Parser/parser.yy
r5802a4f r66f8528 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Oct 26 17:35:53201613 // Update Count : 20 6612 // Last Modified On : Wed Dec 14 21:28:22 2016 13 // Update Count : 2090 14 14 // 15 15 … … 78 78 %token RESTRICT // C99 79 79 %token FORALL LVALUE // CFA 80 %token VOID CHAR SHORT INT LONG FLOAT DOUBLE SIGNED UNSIGNED 80 %token VOID CHAR SHORT INT LONG FLOAT DOUBLE SIGNED UNSIGNED ZERO_T ONE_T 81 81 %token VALIST // GCC 82 82 %token BOOL COMPLEX IMAGINARY // C99 … … 153 153 %type<fctl> for_control_expression 154 154 %type<en> subrange 155 %type<constant> asm_name_opt 155 156 %type<en> asm_operands_opt asm_operands_list asm_operand 156 157 %type<label> label_list … … 362 363 { $$ = new ExpressionNode( build_varref( $1 ) ); } 363 364 | zero_one 364 { $$ = new ExpressionNode( build_ varref($1 ) ); }365 { $$ = new ExpressionNode( build_constantZeroOne( *$1 ) ); } 365 366 | tuple 366 367 | '(' comma_expression ')' … … 412 413 argument_expression: 413 414 // empty 414 { $$ = 0; }// use default argument415 { $$ = nullptr; } // use default argument 415 416 | assignment_expression 416 417 ; … … 443 444 { $$ = new ExpressionNode( build_field_name_fraction_constants( build_field_name_FLOATINGconstant( *$1 ), $2 ) ); } 444 445 | no_attr_identifier fraction_constants 445 { $$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) ); } 446 { 447 if( (*$1) == "0" || (*$1) == "1" ) { 448 $$ = new ExpressionNode( build_field_name_fraction_constants( build_constantZeroOne( *$1 ), $2 ) ); 449 } else { 450 $$ = new ExpressionNode( build_field_name_fraction_constants( build_varref( $1 ), $2 ) ); 451 } 452 } 446 453 ; 447 454 … … 678 685 comma_expression_opt: 679 686 // empty 680 { $$ = 0; }687 { $$ = nullptr; } 681 688 | comma_expression 682 689 ; … … 714 721 | '{' 715 722 // Two scopes are necessary because the block itself has a scope, but every declaration within the block also 716 // requires its own scope 723 // requires its own scope. 717 724 push push 718 725 local_label_declaration_opt // GCC, local labels … … 768 775 // therefore, are removed from the grammar even though C allows it. The change also applies to choose 769 776 // statement. 770 $$ = $7 != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;777 $$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw; 771 778 } 772 779 | CHOOSE '(' comma_expression ')' case_clause // CFA … … 775 782 { 776 783 StatementNode *sw = new StatementNode( build_switch( $3, $8 ) ); 777 $$ = $7 != 0? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw;784 $$ = $7 ? new StatementNode( build_compound( (StatementNode *)((new StatementNode( $7 ))->set_last( sw )) ) ) : sw; 778 785 } 779 786 ; … … 812 819 switch_clause_list_opt: // CFA 813 820 // empty 814 { $$ = 0; }821 { $$ = nullptr; } 815 822 | switch_clause_list 816 823 ; … … 825 832 choose_clause_list_opt: // CFA 826 833 // empty 827 { $$ = 0; }834 { $$ = nullptr; } 828 835 | choose_clause_list 829 836 ; … … 848 855 fall_through: // CFA 849 856 FALLTHRU 850 { $$ = 0; }857 { $$ = nullptr; } 851 858 | FALLTHRU ';' 852 { $$ = 0; }859 { $$ = nullptr; } 853 860 ; 854 861 … … 984 991 asm_operands_opt: // GCC 985 992 // empty 986 { $$ = 0; }// use default argument993 { $$ = nullptr; } // use default argument 987 994 | asm_operands_list 988 995 ; … … 1003 1010 asm_clobbers_list_opt: // GCC 1004 1011 // empty 1005 { $$ = 0; }// use default argument1012 { $$ = nullptr; } // use default argument 1006 1013 | string_literal 1007 1014 { $$ = new ExpressionNode( $1 ); } 1008 1015 | asm_clobbers_list_opt ',' string_literal 1016 // set_last return ParseNode * 1009 1017 { $$ = (ExpressionNode *)$1->set_last( new ExpressionNode( $3 ) ); } 1010 1018 ; … … 1027 1035 declaration_list_opt: // used at beginning of switch statement 1028 1036 pop 1029 { $$ = 0; }1037 { $$ = nullptr; } 1030 1038 | declaration_list 1031 1039 ; … … 1039 1047 old_declaration_list_opt: // used to declare parameter types in K&R style functions 1040 1048 pop 1041 { $$ = 0; }1049 { $$ = nullptr; } 1042 1050 | old_declaration_list 1043 1051 ; … … 1114 1122 { 1115 1123 typedefTable.setNextIdentifier( *$2 ); 1116 $$ = $1->addName( $2 ) ;1124 $$ = $1->addName( $2 )->addAsmName( $3 ); 1117 1125 } 1118 1126 | new_abstract_tuple identifier_or_type_name asm_name_opt 1119 1127 { 1120 1128 typedefTable.setNextIdentifier( *$2 ); 1121 $$ = $1->addName( $2 ) ;1129 $$ = $1->addName( $2 )->addAsmName( $3 ); 1122 1130 } 1123 1131 | type_qualifier_list new_abstract_tuple identifier_or_type_name asm_name_opt 1124 1132 { 1125 1133 typedefTable.setNextIdentifier( *$3 ); 1126 $$ = $2->addQualifiers( $1 )->addName( $3 ) ;1134 $$ = $2->addQualifiers( $1 )->addName( $3 )->addAsmName( $4 ); 1127 1135 } 1128 1136 ; … … 1275 1283 { 1276 1284 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1277 $$ = ( $2->addType( $1 ))->add Initializer( $4 );1285 $$ = ( $2->addType( $1 ))->addAsmName( $3 )->addInitializer( $4 ); 1278 1286 } 1279 1287 | declaring_list ',' attribute_list_opt declarator asm_name_opt initializer_opt 1280 1288 { 1281 1289 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1282 $$ = $1->appendList( $1->cloneBaseType( $4->add Initializer( $6 ) ) );1290 $$ = $1->appendList( $1->cloneBaseType( $4->addAsmName( $5 )->addInitializer( $6 ) ) ); 1283 1291 } 1284 1292 ; … … 1300 1308 type_qualifier_list_opt: // GCC, used in asm_statement 1301 1309 // empty 1302 { $$ = 0; }1310 { $$ = nullptr; } 1303 1311 | type_qualifier_list 1304 1312 ; … … 1410 1418 | VALIST // GCC, __builtin_va_list 1411 1419 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Valist ); } 1420 | ZERO_T 1421 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::Zero ); } 1422 | ONE_T 1423 { $$ = DeclarationNode::newBuiltinType( DeclarationNode::One ); } 1412 1424 ; 1413 1425 … … 1522 1534 field_declaration_list: 1523 1535 // empty 1524 { $$ = 0; }1536 { $$ = nullptr; } 1525 1537 | field_declaration_list field_declaration 1526 { $$ = $1 != 0? $1->appendList( $2 ) : $2; }1538 { $$ = $1 ? $1->appendList( $2 ) : $2; } 1527 1539 ; 1528 1540 … … 1573 1585 bit_subrange_size_opt: 1574 1586 // empty 1575 { $$ = 0; }1587 { $$ = nullptr; } 1576 1588 | bit_subrange_size 1577 1589 { $$ = $1; } … … 1610 1622 enumerator_value_opt: 1611 1623 // empty 1612 { $$ = 0; }1624 { $$ = nullptr; } 1613 1625 | '=' constant_expression 1614 1626 { $$ = $2; } … … 1619 1631 new_parameter_type_list_opt: // CFA 1620 1632 // empty 1621 { $$ = 0; }1633 { $$ = nullptr; } 1622 1634 | new_parameter_type_list 1623 1635 ; … … 1654 1666 parameter_type_list_opt: 1655 1667 // empty 1656 { $$ = 0; }1668 { $$ = nullptr; } 1657 1669 | parameter_type_list 1658 1670 ; … … 1702 1714 { 1703 1715 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1704 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ));1716 $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); 1705 1717 } 1706 1718 | declaration_specifier type_parameter_redeclarator assignment_opt 1707 1719 { 1708 1720 typedefTable.addToEnclosingScope( TypedefTable::ID ); 1709 $$ = $2->addType( $1 )->addInitializer( new InitializerNode( $3 ));1721 $$ = $2->addType( $1 )->addInitializer( $3 ? new InitializerNode( $3 ) : nullptr ); 1710 1722 } 1711 1723 ; … … 1763 1775 initializer_opt: 1764 1776 // empty 1765 { $$ = 0; }1777 { $$ = nullptr; } 1766 1778 | '=' initializer 1767 1779 { $$ = $2; } … … 1777 1789 initializer_list: 1778 1790 // empty 1779 { $$ = 0; }1791 { $$ = nullptr; } 1780 1792 | initializer 1781 1793 | designation initializer { $$ = $2->set_designators( $1 ); } … … 1888 1900 assertion_list_opt: // CFA 1889 1901 // empty 1890 { $$ = 0; }1902 { $$ = nullptr; } 1891 1903 | assertion_list_opt assertion 1892 { $$ = $1 != 0? $1->appendList( $2 ) : $2; }1904 { $$ = $1 ? $1->appendList( $2 ) : $2; } 1893 1905 ; 1894 1906 … … 1902 1914 { $$ = $4; } 1903 1915 | '|' '(' push type_parameter_list pop ')' '{' push trait_declaration_list '}' '(' type_name_list ')' 1904 { $$ = 0; }1916 { $$ = nullptr; } 1905 1917 ; 1906 1918 … … 2011 2023 {} // empty input file 2012 2024 | external_definition_list 2013 { parseTree = parseTree != nullptr? parseTree->appendList( $1 ) : $1; }2025 { parseTree = parseTree ? parseTree->appendList( $1 ) : $1; } 2014 2026 ; 2015 2027 … … 2017 2029 external_definition 2018 2030 | external_definition_list push external_definition 2019 { $$ = $1 != nullptr? $1->appendList( $3 ) : $3; }2031 { $$ = $1 ? $1->appendList( $3 ) : $3; } 2020 2032 ; 2021 2033 2022 2034 external_definition_list_opt: 2023 2035 // empty 2024 { $$ = 0; }2036 { $$ = nullptr; } 2025 2037 | external_definition_list 2026 2038 ; … … 2145 2157 asm_name_opt: // GCC 2146 2158 // empty 2147 | ASM '(' string_literal_list ')' attribute_list_opt { delete $3; } // FIX ME: unimplemented 2159 { $$ = nullptr; } 2160 | ASM '(' string_literal ')' attribute_list_opt 2161 { $$ = $3; } 2148 2162 ; 2149 2163 2150 2164 attribute_list_opt: // GCC 2151 2165 // empty 2152 { $$ = 0; }2166 { $$ = nullptr; } 2153 2167 | attribute_list 2154 2168 ; … … 2163 2177 ATTRIBUTE '(' '(' attribute_parameter_list ')' ')' 2164 2178 // { $$ = DeclarationNode::newQualifier( DeclarationNode::Attribute ); } 2165 { $$ = 0; }2179 { $$ = nullptr; } 2166 2180 ; 2167 2181 … … 2872 2886 assignment_opt: 2873 2887 // empty 2874 { $$ = 0; }2888 { $$ = nullptr; } 2875 2889 | '=' assignment_expression 2876 2890 { $$ = $2; } -
src/Parser/parseutility.cc
r5802a4f r66f8528 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // parseutility.cc -- 7 // parseutility.cc -- 8 8 // 9 9 // Author : Rodolfo G. Esteves … … 12 12 // Last Modified On : Sun Aug 14 23:45:03 2016 13 13 // Update Count : 3 14 // 14 // 15 15 16 16 #include "parseutility.h" … … 26 26 UntypedExpr *comparison = new UntypedExpr( new NameExpr( "?!=?" ) ); 27 27 comparison->get_args().push_back( orig ); 28 comparison->get_args().push_back( new NameExpr( "0") );28 comparison->get_args().push_back( new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) ) ); 29 29 return new CastExpr( comparison, new BasicType( Type::Qualifiers(), BasicType::SignedInt ) ); 30 30 } -
src/ResolvExpr/CommonType.cc
r5802a4f r66f8528 42 42 virtual void visit( OneType *oneType ); 43 43 44 void getCommonWithVoidPointer( PointerType* voidPointer, PointerType* otherPointer ); 44 45 template< typename RefType > void handleRefType( RefType *inst, Type *other ); 45 46 … … 143 144 } 144 145 145 /// true if a common type for t must be a complete type 146 bool requiredComplete( Type * t ) { 147 if ( TypeInstType * inst = dynamic_cast< TypeInstType * > ( t ) ) { 148 return inst->get_baseType()->isComplete(); 146 void CommonType::getCommonWithVoidPointer( PointerType* voidPointer, PointerType* otherPointer ) { 147 if ( TypeInstType* var = dynamic_cast< TypeInstType* >( otherPointer->get_base() ) ) { 148 OpenVarSet::const_iterator entry = openVars.find( var->get_name() ); 149 if ( entry != openVars.end() ) { 150 AssertionSet need, have; 151 WidenMode widen( widenFirst, widenSecond ); 152 if ( entry != openVars.end() && ! bindVar(var, voidPointer->get_base(), entry->second, env, need, have, openVars, widen, indexer ) ) return; 153 } 149 154 } 150 return false; 155 result = voidPointer->clone(); 156 result->get_qualifiers() += otherPointer->get_qualifiers(); 151 157 } 152 158 153 159 void CommonType::visit( PointerType *pointerType ) { 154 160 if ( PointerType *otherPointer = dynamic_cast< PointerType* >( type2 ) ) { 155 // Note: relationship between formal and actual types is antisymmetric 156 // void free(void *); 157 // forall(otype T) void foo(T *); 158 // 159 // should be able to pass T* to free, but should not be able to pass a void* to foo. 160 // because of this, the requiredComplete check occurs only on the first, since it corresponds 161 // to the formal parameter type (though this may be incorrect in some cases, in which case 162 // perhaps the widen mode needs to incorporate another bit for whether this is a formal or actual context) 163 if ( widenFirst && dynamic_cast< VoidType* >( otherPointer->get_base() ) && ! isFtype(pointerType->get_base(), indexer) && ! requiredComplete( pointerType->get_base() ) ) { 164 result = otherPointer->clone(); 165 result->get_qualifiers() += pointerType->get_qualifiers(); 161 if ( widenFirst && dynamic_cast< VoidType* >( otherPointer->get_base() ) && ! isFtype(pointerType->get_base(), indexer) ) { 162 getCommonWithVoidPointer( otherPointer, pointerType ); 166 163 } else if ( widenSecond && dynamic_cast< VoidType* >( pointerType->get_base() ) && ! isFtype(otherPointer->get_base(), indexer) ) { 167 result = pointerType->clone(); 168 result->get_qualifiers() += otherPointer->get_qualifiers(); 164 getCommonWithVoidPointer( pointerType, otherPointer ); 169 165 } else if ( ( pointerType->get_base()->get_qualifiers() >= otherPointer->get_base()->get_qualifiers() || widenFirst ) 170 166 && ( pointerType->get_base()->get_qualifiers() <= otherPointer->get_base()->get_qualifiers() || widenSecond ) ) { … … 256 252 result->get_qualifiers() += zeroType->get_qualifiers(); 257 253 } 254 } else if ( widenSecond && dynamic_cast< OneType* >( type2 ) ) { 255 result = new BasicType( zeroType->get_qualifiers(), BasicType::SignedInt ); 256 result->get_qualifiers() += type2->get_qualifiers(); 258 257 } 259 258 } … … 267 266 result->get_qualifiers() += oneType->get_qualifiers(); 268 267 } 268 } else if ( widenSecond && dynamic_cast< ZeroType* >( type2 ) ) { 269 result = new BasicType( oneType->get_qualifiers(), BasicType::SignedInt ); 270 result->get_qualifiers() += type2->get_qualifiers(); 269 271 } 270 272 } -
src/ResolvExpr/Resolver.cc
r5802a4f r66f8528 404 404 template< typename AggrInst > 405 405 TypeSubstitution makeGenericSubstitutuion( AggrInst * inst ) { 406 assert( inst ); 407 assert( inst->get_baseParameters() ); 406 408 std::list< TypeDecl * > baseParams = *inst->get_baseParameters(); 407 409 std::list< Expression * > typeSubs = inst->get_parameters(); … … 444 446 445 447 void Resolver::resolveAggrInit( ReferenceToType * inst, InitIterator & init, InitIterator & initEnd ) { 446 447 448 if ( StructInstType * sit = dynamic_cast< StructInstType * >( inst ) ) { 448 449 TypeSubstitution sub = makeGenericSubstitutuion( sit ); … … 455 456 } 456 457 } else if ( UnionInstType * uit = dynamic_cast< UnionInstType * >( inst ) ) { 457 TypeSubstitution sub = makeGenericSubstitutuion( sit );458 TypeSubstitution sub = makeGenericSubstitutuion( uit ); 458 459 UnionDecl * un = uit->get_baseUnion(); 459 460 // only resolve to the first member of a union -
src/ResolvExpr/Unify.cc
r5802a4f r66f8528 31 31 32 32 namespace ResolvExpr { 33 struct WidenMode {34 WidenMode( bool widenFirst, bool widenSecond ): widenFirst( widenFirst ), widenSecond( widenSecond ) {}35 WidenMode &operator|=( const WidenMode &other ) { widenFirst |= other.widenFirst; widenSecond |= other.widenSecond; return *this; }36 WidenMode &operator&=( const WidenMode &other ) { widenFirst &= other.widenFirst; widenSecond &= other.widenSecond; return *this; }37 WidenMode operator|( const WidenMode &other ) { WidenMode newWM( *this ); newWM |= other; return newWM; }38 WidenMode operator&( const WidenMode &other ) { WidenMode newWM( *this ); newWM &= other; return newWM; }39 operator bool() { return widenFirst && widenSecond; }40 41 bool widenFirst : 1, widenSecond : 1;42 };43 33 44 34 class Unify : public Visitor { -
src/ResolvExpr/Unify.h
r5802a4f r66f8528 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Unify.h -- 7 // Unify.h -- 8 8 // 9 9 // Author : Richard C. Bilson … … 27 27 28 28 namespace ResolvExpr { 29 struct WidenMode { 30 WidenMode( bool widenFirst, bool widenSecond ): widenFirst( widenFirst ), widenSecond( widenSecond ) {} 31 WidenMode &operator|=( const WidenMode &other ) { widenFirst |= other.widenFirst; widenSecond |= other.widenSecond; return *this; } 32 WidenMode &operator&=( const WidenMode &other ) { widenFirst &= other.widenFirst; widenSecond &= other.widenSecond; return *this; } 33 WidenMode operator|( const WidenMode &other ) { WidenMode newWM( *this ); newWM |= other; return newWM; } 34 WidenMode operator&( const WidenMode &other ) { WidenMode newWM( *this ); newWM &= other; return newWM; } 35 operator bool() { return widenFirst && widenSecond; } 36 37 bool widenFirst : 1, widenSecond : 1; 38 }; 39 40 bool bindVar( TypeInstType *typeInst, Type *other, const TypeDecl::Data & data, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, const OpenVarSet &openVars, WidenMode widenMode, const SymTab::Indexer &indexer ); 29 41 bool unify( Type *type1, Type *type2, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, OpenVarSet &openVars, const SymTab::Indexer &indexer ); 30 42 bool unify( Type *type1, Type *type2, TypeEnvironment &env, AssertionSet &needAssertions, AssertionSet &haveAssertions, OpenVarSet &openVars, const SymTab::Indexer &indexer, Type *&commonType ); -
src/SymTab/Autogen.h
r5802a4f r66f8528 88 88 if ( forward ) { 89 89 // generate: for ( int i = 0; i < 0; ++i ) 90 begin = new NameExpr( "0");90 begin = new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) ); 91 91 end = array->get_dimension()->clone(); 92 92 cmp = new NameExpr( "?<?" ); … … 96 96 begin = new UntypedExpr( new NameExpr( "?-?" ) ); 97 97 ((UntypedExpr*)begin)->get_args().push_back( array->get_dimension()->clone() ); 98 ((UntypedExpr*)begin)->get_args().push_back( new NameExpr( "1") );99 end = new NameExpr( "0");98 ((UntypedExpr*)begin)->get_args().push_back( new ConstantExpr( Constant( new OneType( emptyQualifiers ), "1" ) ) ); 99 end = new ConstantExpr( Constant( new ZeroType( emptyQualifiers ), "0" ) ); 100 100 cmp = new NameExpr( "?>=?" ); 101 101 update = new NameExpr( "--?" ); … … 175 175 } // namespace SymTab 176 176 #endif // AUTOGEN_H 177 -
src/SynTree/Declaration.h
r5802a4f r66f8528 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 18 23:50:24201613 // Update Count : 4 012 // Last Modified On : Tue Dec 13 13:37:33 2016 13 // Update Count : 49 14 14 // 15 15 … … 69 69 70 70 std::string get_mangleName() const { return mangleName; } 71 void set_mangleName( std::string newValue ) { mangleName = newValue; }71 DeclarationWithType * set_mangleName( std::string newValue ) { mangleName = newValue; return this; } 72 72 73 73 std::string get_scopedMangleName() const { return mangleName + "_" + std::to_string(scopeLevel); } 74 74 75 75 int get_scopeLevel() const { return scopeLevel; } 76 void set_scopeLevel( int newValue ) { scopeLevel = newValue; } 76 DeclarationWithType * set_scopeLevel( int newValue ) { scopeLevel = newValue; return this; } 77 78 ConstantExpr *get_asmName() const { return asmName; } 79 DeclarationWithType * set_asmName( ConstantExpr *newValue ) { asmName = newValue; return this; } 77 80 78 81 std::list< Attribute * >& get_attributes() { return attributes; } … … 87 90 // this represents the type with all types and typedefs expanded it is generated by SymTab::Validate::Pass2 88 91 std::string mangleName; 89 // need to remember the scope level at which the variable was declared, so that 90 // shadowed identifiers can be accessed 92 // need to remember the scope level at which the variable was declared, so that shadowed identifiers can be accessed 91 93 int scopeLevel = 0; 92 94 95 ConstantExpr *asmName; 93 96 std::list< Attribute * > attributes; 94 97 }; … … 106 109 Initializer *get_init() const { return init; } 107 110 void set_init( Initializer *newValue ) { init = newValue; } 111 108 112 Expression *get_bitfieldWidth() const { return bitfieldWidth; } 109 113 void set_bitfieldWidth( Expression *newValue ) { bitfieldWidth = newValue; } -
src/SynTree/DeclarationWithType.cc
r5802a4f r66f8528 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T hu Aug 18 23:50:41201613 // Update Count : 412 // Last Modified On : Tue Dec 13 14:49:43 2016 13 // Update Count : 7 14 14 // 15 15 … … 20 20 21 21 DeclarationWithType::DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Spec linkage, const std::list< Attribute * > & attributes ) 22 : Declaration( name, sc, linkage), attributes( attributes ) {22 : Declaration( name, sc, linkage ), asmName( nullptr ), attributes( attributes ) { 23 23 } 24 24 … … 26 26 : Declaration( other ), mangleName( other.mangleName ), scopeLevel( other.scopeLevel ) { 27 27 cloneAll( other.attributes, attributes ); 28 asmName = maybeClone( other.asmName ); 28 29 } 29 30 30 31 DeclarationWithType::~DeclarationWithType() { 31 32 deleteAll( attributes ); 33 delete asmName; 32 34 } 33 35 -
src/SynTree/Expression.cc
r5802a4f r66f8528 438 438 } 439 439 440 NameExpr::NameExpr( std::string _name, Expression *_aname ) : Expression( _aname ), name(_name) {} 440 NameExpr::NameExpr( std::string _name, Expression *_aname ) : Expression( _aname ), name(_name) { 441 assertf(_name != "0", "Zero is not a valid name\n"); 442 assertf(_name != "1", "One is not a valid name\n"); 443 } 441 444 442 445 NameExpr::NameExpr( const NameExpr &other ) : Expression( other ), name( other.name ) { -
src/SynTree/Type.h
r5802a4f r66f8528 82 82 ForallList forall; 83 83 }; 84 85 extern Type::Qualifiers emptyQualifiers; // no qualifiers on constants 84 86 85 87 class VoidType : public Type { -
src/driver/Makefile.am
r5802a4f r66f8528 16 16 17 17 # applies to both programs 18 AM_CXXFLAGS = -Wall 18 AM_CXXFLAGS = -Wall -O2 19 if BUILD_NO_LIB 20 else 21 AM_CXXFLAGS += -DHAVE_LIBCFA 22 endif 23 if BUILD_DEBUG 24 AM_CXXFLAGS += -DHAVE_LIBCFA_DEBUG 25 endif 26 if BUILD_RELEASE 27 AM_CXXFLAGS += -DHAVE_LIBCFA_RELEASE 28 endif 19 29 20 30 bin_PROGRAMS = cfa -
src/driver/Makefile.in
r5802a4f r66f8528 36 36 PRE_UNINSTALL = : 37 37 POST_UNINSTALL = : 38 build_triplet = @build@ 39 host_triplet = @host@ 40 @BUILD_NO_LIB_FALSE@am__append_1 = -DHAVE_LIBCFA 41 @BUILD_DEBUG_TRUE@am__append_2 = -DHAVE_LIBCFA_DEBUG 42 @BUILD_RELEASE_TRUE@am__append_3 = -DHAVE_LIBCFA_RELEASE 38 43 bin_PROGRAMS = cfa$(EXEEXT) 39 44 cc1lib_PROGRAMS = cc1$(EXEEXT) … … 92 97 BACKEND_CC = @BACKEND_CC@ 93 98 CC = @CC@ 99 CCAS = @CCAS@ 100 CCASDEPMODE = @CCASDEPMODE@ 101 CCASFLAGS = @CCASFLAGS@ 94 102 CCDEPMODE = @CCDEPMODE@ 95 103 CFA_BACKEND_CC = @CFA_BACKEND_CC@ … … 126 134 LIBS = @LIBS@ 127 135 LTLIBOBJS = @LTLIBOBJS@ 136 MACHINE_TYPE = @MACHINE_TYPE@ 128 137 MAINT = @MAINT@ 129 138 MAKEINFO = @MAKEINFO@ … … 157 166 am__untar = @am__untar@ 158 167 bindir = @bindir@ 168 build = @build@ 159 169 build_alias = @build_alias@ 170 build_cpu = @build_cpu@ 171 build_os = @build_os@ 172 build_vendor = @build_vendor@ 160 173 builddir = @builddir@ 161 174 datadir = @datadir@ … … 164 177 dvidir = @dvidir@ 165 178 exec_prefix = @exec_prefix@ 179 host = @host@ 166 180 host_alias = @host_alias@ 181 host_cpu = @host_cpu@ 182 host_os = @host_os@ 183 host_vendor = @host_vendor@ 167 184 htmldir = @htmldir@ 168 185 includedir = @includedir@ … … 190 207 191 208 # applies to both programs 192 AM_CXXFLAGS = -Wall 209 AM_CXXFLAGS = -Wall -O2 $(am__append_1) $(am__append_2) \ 210 $(am__append_3) 193 211 cfa_SOURCES = cfa.cc 194 212 -
src/driver/cfa.cc
r5802a4f r66f8528 231 231 } // if 232 232 233 string d;234 if ( debug ) {235 d = "-d";236 } // if237 238 233 // add the CFA include-library paths, which allow direct access to header files without directory qualification 239 240 234 args[nargs] = "-I" CFA_INCDIR; 241 235 nargs += 1; … … 244 238 nargs += 1; 245 239 } // if 240 args[nargs] = "-I" CFA_INCDIR "/concurrency"; 241 nargs += 1; 246 242 args[nargs] = "-I" CFA_INCDIR "/containers"; 247 243 nargs += 1; 248 244 245 #ifdef HAVE_LIBCFA 249 246 if ( link ) { 247 #if ! defined(HAVE_LIBCFA_RELEASE) 248 if( !debug ) { 249 cerr << "error: Option -nodebug is not available, libcfa was not installed." << endl; 250 exit( EXIT_FAILURE ); 251 } 252 #endif 253 #if ! defined(HAVE_LIBCFA_DEBUG) 254 if( debug ) { 255 cerr << "error: Option -debug is not available, libcfa-d was not installed." << endl; 256 exit( EXIT_FAILURE ); 257 } 258 #endif 259 250 260 // include the cfa library in case it's needed 251 261 args[nargs] = "-L" CFA_LIBDIR; 252 262 nargs += 1; 253 args[nargs] = "-lcfa"; 254 nargs += 1; 255 } // if 263 if( debug ) { 264 args[nargs] = "-lcfa-d"; 265 } else { 266 args[nargs] = "-lcfa"; 267 } 268 nargs += 1; 269 } // if 270 #endif //HAVE_LIBCFA 256 271 257 272 // add the correct set of flags based on the type of compile this is -
src/examples/Makefile.am
r5802a4f r66f8528 16 16 17 17 # applies to both programs 18 CFLAGS = -g -Wall -Wno-unused-function # TEMPORARY: does not build with -O2 18 CFLAGS = 19 AM_CFLAGS = -g -Wall -Wno-unused-function -O2 19 20 CC = @CFA_BINDIR@/cfa 20 21 21 noinst_PROGRAMS = fstream_test vector_test avl_test # build but do not install22 noinst_PROGRAMS = fstream_test vector_test avl_test Bench # build but do not install 22 23 fstream_test_SOURCES = fstream_test.c 23 24 vector_test_SOURCES = vector_int.c array.c vector_test.c 24 25 avl_test_SOURCES = avltree/avl_test.c avltree/avl0.c avltree/avl1.c avltree/avl2.c avltree/avl3.c avltree/avl4.c avltree/avl-private.c 26 27 Bench : Bench.c 28 @for ccflags in "-debug" "-nodebug"; do \ 29 echo ${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt Bench.c;\ 30 ${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt Bench.c;\ 31 ./a.out ; \ 32 done ; \ 33 rm -f ./a.out ; -
src/examples/Makefile.in
r5802a4f r66f8528 36 36 PRE_UNINSTALL = : 37 37 POST_UNINSTALL = : 38 build_triplet = @build@ 39 host_triplet = @host@ 38 40 noinst_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) \ 39 avl_test$(EXEEXT) 41 avl_test$(EXEEXT) Bench$(EXEEXT) 40 42 subdir = src/examples 41 43 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in … … 49 51 CONFIG_CLEAN_VPATH_FILES = 50 52 PROGRAMS = $(noinst_PROGRAMS) 53 Bench_SOURCES = Bench.c 54 Bench_OBJECTS = Bench.$(OBJEXT) 55 Bench_LDADD = $(LDADD) 51 56 am_avl_test_OBJECTS = avl_test.$(OBJEXT) avl0.$(OBJEXT) avl1.$(OBJEXT) \ 52 57 avl2.$(OBJEXT) avl3.$(OBJEXT) avl4.$(OBJEXT) \ … … 84 89 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 85 90 am__v_GEN_0 = @echo " GEN " $@; 86 SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \91 SOURCES = Bench.c $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 87 92 $(vector_test_SOURCES) 88 DIST_SOURCES = $(avl_test_SOURCES) $(fstream_test_SOURCES) \93 DIST_SOURCES = Bench.c $(avl_test_SOURCES) $(fstream_test_SOURCES) \ 89 94 $(vector_test_SOURCES) 90 95 ETAGS = etags … … 101 106 BACKEND_CC = @BACKEND_CC@ 102 107 CC = @CFA_BINDIR@/cfa 108 CCAS = @CCAS@ 109 CCASDEPMODE = @CCASDEPMODE@ 110 CCASFLAGS = @CCASFLAGS@ 103 111 CCDEPMODE = @CCDEPMODE@ 104 112 CFA_BACKEND_CC = @CFA_BACKEND_CC@ … … 110 118 111 119 # applies to both programs 112 CFLAGS = -g -Wall -Wno-unused-function # TEMPORARY: does not build with -O2120 CFLAGS = 113 121 CPP = @CPP@ 114 122 CPPFLAGS = @CPPFLAGS@ … … 137 145 LIBS = @LIBS@ 138 146 LTLIBOBJS = @LTLIBOBJS@ 147 MACHINE_TYPE = @MACHINE_TYPE@ 139 148 MAINT = @MAINT@ 140 149 MAKEINFO = @MAKEINFO@ … … 168 177 am__untar = @am__untar@ 169 178 bindir = @bindir@ 179 build = @build@ 170 180 build_alias = @build_alias@ 181 build_cpu = @build_cpu@ 182 build_os = @build_os@ 183 build_vendor = @build_vendor@ 171 184 builddir = @builddir@ 172 185 datadir = @datadir@ … … 175 188 dvidir = @dvidir@ 176 189 exec_prefix = @exec_prefix@ 190 host = @host@ 177 191 host_alias = @host_alias@ 192 host_cpu = @host_cpu@ 193 host_os = @host_os@ 194 host_vendor = @host_vendor@ 178 195 htmldir = @htmldir@ 179 196 includedir = @includedir@ … … 199 216 top_builddir = @top_builddir@ 200 217 top_srcdir = @top_srcdir@ 218 AM_CFLAGS = -g -Wall -Wno-unused-function -O2 201 219 fstream_test_SOURCES = fstream_test.c 202 220 vector_test_SOURCES = vector_int.c array.c vector_test.c … … 255 273 -rm -f *.tab.c 256 274 275 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Bench.Po@am__quote@ 257 276 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@ 258 277 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl-private.Po@am__quote@ … … 580 599 581 600 601 Bench : Bench.c 602 @for ccflags in "-debug" "-nodebug"; do \ 603 echo ${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt Bench.c;\ 604 ${CC} ${AM_CFLAGS} ${CFLAGS} $${ccflags} -lrt Bench.c;\ 605 ./a.out ; \ 606 done ; \ 607 rm -f ./a.out ; 608 582 609 # Tell versions [3.59,3.63) of GNU make to not export all variables. 583 610 # Otherwise a system limit (for SysV at least) may be exceeded. -
src/libcfa/Makefile.am
r5802a4f r66f8528 11 11 ## Created On : Sun May 31 08:54:01 2015 12 12 ## Last Modified By : Peter A. Buhr 13 ## Last Modified On : Fri Aug 26 12:03:37201614 ## Update Count : 19913 ## Last Modified On : Wed Dec 14 15:17:30 2016 14 ## Update Count : 211 15 15 ############################################################################### 16 16 … … 18 18 AUTOMAKE_OPTIONS = subdir-objects 19 19 20 lib_LIBRARIES = libcfa.a20 lib_LIBRARIES = 21 21 22 # put into lib for now 23 cfalibdir = ${libdir} 24 cfalib_DATA = builtins.cf extras.cf prelude.cf22 if BUILD_RELEASE 23 lib_LIBRARIES += libcfa.a 24 endif 25 25 26 # create extra forward types/declarations to reduce inclusion of library files 27 extras.cf : extras.regx extras.c 28 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf26 if BUILD_DEBUG 27 lib_LIBRARIES += libcfa-d.a 28 endif 29 29 30 # create forward declarations for gcc builtins 31 builtins.cf : builtins.c 32 ${AM_V_GEN}if [ -e $< ] ; then \ 33 @BACKEND_CC@ -E -P $^ | sed -e "/targetm/s/.*//" -e "/_Decimal/s/.*//" -e "s/void (const char \*)0();//" -e "s/\"//g" -e "s/\(__builtin_\) /\1/" > $@ ; \ 34 fi 30 libcfa_a-libcfa-prelude.o : libcfa-prelude.c 31 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -O2 -c -o $@ $< 35 32 36 builtins.c : builtins.def prototypes.awk 37 ${AM_V_GEN}if [ -e $< ] ; then \ 38 @BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ ; \ 39 fi 33 libcfa_d_a-libcfa-prelude.o : libcfa-prelude.c 34 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -D__CFA_DEBUG__ -O0 -c -o $@ $< 40 35 41 builtins.def : 36 EXTRA_FLAGS = -g -Wall -Wno-unused-function -I${abs_top_srcdir}/src/libcfa/libhdr -imacros libcfa-prelude.c @CFA_FLAGS@ 42 37 43 prototypes.awk : 44 45 MAINTAINERCLEANFILES = builtins.cf extras.cf ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}} 46 47 #-------------------------------------------------- 48 49 libcfa-prelude.c : ${srcdir}/prelude.cf ${srcdir}/extras.cf ${srcdir}/builtins.cf 50 ${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -l ${srcdir}/prelude.cf $@ # use src/cfa-cpp as not in lib until after install 51 52 libcfa-prelude.o : libcfa-prelude.c 53 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -c -o $@ $< 54 55 CFLAGS = -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 38 AM_CCASFLAGS = @CFA_FLAGS@ 39 CFLAGS = -quiet -no-include-stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS} 56 40 CC = ${abs_top_srcdir}/src/driver/cfa 57 41 58 headers = limits stdlib math iostream fstream iterator rational containers/vector 42 headers = limits stdlib math iostream fstream iterator rational assert containers/vector concurrency/threads 43 runtimehdrs = concurrency 59 44 libobjs = ${headers:=.o} 60 45 … … 63 48 @true 64 49 50 concurrency/libcfa_a-invoke.o : concurrency/invoke.c 51 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $< 52 53 concurrency/libcfa_d_a-invoke.o : concurrency/invoke.c 54 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 55 65 56 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator 66 57 67 libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} 58 libsrc = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c 59 60 libcfa_a_SOURCES = ${libsrc} 61 libcfa_a_CFLAGS = -nodebug -O2 62 libcfa_d_a_SOURCES = ${libsrc} 63 libcfa_d_a_CFLAGS = -debug -O0 68 64 69 65 stdhdr = ${shell echo stdhdr/*} 70 66 71 nobase_include_HEADERS = ${headers} ${stdhdr} 67 nobase_include_HEADERS = ${headers} ${stdhdr} concurrency/invoke.h 72 68 73 69 CLEANFILES = libcfa-prelude.c -
src/libcfa/Makefile.in
r5802a4f r66f8528 18 18 ######################## -*- Mode: Makefile-Automake -*- ###################### 19 19 ############################################################################### 20 21 20 22 21 … … 38 37 PRE_UNINSTALL = : 39 38 POST_UNINSTALL = : 39 build_triplet = @build@ 40 host_triplet = @host@ 41 @BUILD_RELEASE_TRUE@am__append_1 = libcfa.a 42 @BUILD_DEBUG_TRUE@am__append_2 = libcfa-d.a 40 43 subdir = src/libcfa 41 44 DIST_COMMON = $(nobase_include_HEADERS) $(srcdir)/Makefile.am \ … … 76 79 $(am__cd) "$$dir" && rm -f $$files; }; \ 77 80 } 78 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cfalibdir)" \ 79 "$(DESTDIR)$(includedir)" 81 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" 80 82 LIBRARIES = $(lib_LIBRARIES) 81 83 AR = ar … … 87 89 am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) 88 90 am__v_at_0 = @ 91 libcfa_d_a_AR = $(AR) $(ARFLAGS) 92 libcfa_d_a_LIBADD = 93 am__dirstamp = $(am__leading_dot)dirstamp 94 am__objects_1 = libcfa_d_a-limits.$(OBJEXT) \ 95 libcfa_d_a-stdlib.$(OBJEXT) libcfa_d_a-math.$(OBJEXT) \ 96 libcfa_d_a-iostream.$(OBJEXT) libcfa_d_a-fstream.$(OBJEXT) \ 97 libcfa_d_a-iterator.$(OBJEXT) libcfa_d_a-rational.$(OBJEXT) \ 98 libcfa_d_a-assert.$(OBJEXT) \ 99 containers/libcfa_d_a-vector.$(OBJEXT) \ 100 concurrency/libcfa_d_a-threads.$(OBJEXT) 101 am__objects_2 = libcfa_d_a-libcfa-prelude.$(OBJEXT) $(am__objects_1) \ 102 concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \ 103 concurrency/libcfa_d_a-invoke.$(OBJEXT) 104 am_libcfa_d_a_OBJECTS = $(am__objects_2) 105 libcfa_d_a_OBJECTS = $(am_libcfa_d_a_OBJECTS) 89 106 libcfa_a_AR = $(AR) $(ARFLAGS) 90 107 libcfa_a_LIBADD = 91 am__dirstamp = $(am__leading_dot)dirstamp 92 am__objects_1 = limits.$(OBJEXT) stdlib.$(OBJEXT) math.$(OBJEXT) \ 93 iostream.$(OBJEXT) fstream.$(OBJEXT) iterator.$(OBJEXT) \ 94 rational.$(OBJEXT) containers/vector.$(OBJEXT) 95 am_libcfa_a_OBJECTS = libcfa-prelude.$(OBJEXT) $(am__objects_1) 108 am__objects_3 = libcfa_a-limits.$(OBJEXT) libcfa_a-stdlib.$(OBJEXT) \ 109 libcfa_a-math.$(OBJEXT) libcfa_a-iostream.$(OBJEXT) \ 110 libcfa_a-fstream.$(OBJEXT) libcfa_a-iterator.$(OBJEXT) \ 111 libcfa_a-rational.$(OBJEXT) libcfa_a-assert.$(OBJEXT) \ 112 containers/libcfa_a-vector.$(OBJEXT) \ 113 concurrency/libcfa_a-threads.$(OBJEXT) 114 am__objects_4 = libcfa_a-libcfa-prelude.$(OBJEXT) $(am__objects_3) \ 115 concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) \ 116 concurrency/libcfa_a-invoke.$(OBJEXT) 117 am_libcfa_a_OBJECTS = $(am__objects_4) 96 118 libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS) 97 119 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) … … 99 121 am__depfiles_maybe = depfiles 100 122 am__mv = mv -f 123 CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 124 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) 125 AM_V_CPPAS = $(am__v_CPPAS_@AM_V@) 126 am__v_CPPAS_ = $(am__v_CPPAS_@AM_DEFAULT_V@) 127 am__v_CPPAS_0 = @echo " CPPAS " $@; 128 AM_V_lt = $(am__v_lt_@AM_V@) 129 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) 130 am__v_lt_0 = --silent 101 131 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 102 132 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) … … 112 142 am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) 113 143 am__v_GEN_0 = @echo " GEN " $@; 114 SOURCES = $(libcfa_a_SOURCES) 115 DIST_SOURCES = $(libcfa_a_SOURCES) 116 DATA = $(cfalib_DATA) 144 SOURCES = $(libcfa_d_a_SOURCES) $(libcfa_a_SOURCES) 145 DIST_SOURCES = $(libcfa_d_a_SOURCES) $(libcfa_a_SOURCES) 117 146 HEADERS = $(nobase_include_HEADERS) 118 147 ETAGS = etags … … 129 158 BACKEND_CC = @BACKEND_CC@ 130 159 CC = ${abs_top_srcdir}/src/driver/cfa 160 CCAS = @CCAS@ 161 CCASDEPMODE = @CCASDEPMODE@ 162 CCASFLAGS = @CCASFLAGS@ 131 163 CCDEPMODE = @CCDEPMODE@ 132 164 CFA_BACKEND_CC = @CFA_BACKEND_CC@ … … 136 168 CFA_LIBDIR = @CFA_LIBDIR@ 137 169 CFA_PREFIX = @CFA_PREFIX@ 138 CFLAGS = -quiet -no-include-stdhdr - g -Wall -Wno-unused-function @CFA_FLAGS@ -B${abs_top_srcdir}/src/driver -XCFA -t # TEMPORARY: does not build with -O2170 CFLAGS = -quiet -no-include-stdhdr -XCFA -t -B${abs_top_srcdir}/src/driver ${EXTRA_FLAGS} 139 171 CPP = @CPP@ 140 172 CPPFLAGS = @CPPFLAGS@ … … 163 195 LIBS = @LIBS@ 164 196 LTLIBOBJS = @LTLIBOBJS@ 197 MACHINE_TYPE = @MACHINE_TYPE@ 165 198 MAINT = @MAINT@ 166 199 MAKEINFO = @MAKEINFO@ … … 194 227 am__untar = @am__untar@ 195 228 bindir = @bindir@ 229 build = @build@ 196 230 build_alias = @build_alias@ 231 build_cpu = @build_cpu@ 232 build_os = @build_os@ 233 build_vendor = @build_vendor@ 197 234 builddir = @builddir@ 198 235 datadir = @datadir@ … … 201 238 dvidir = @dvidir@ 202 239 exec_prefix = @exec_prefix@ 240 host = @host@ 203 241 host_alias = @host_alias@ 242 host_cpu = @host_cpu@ 243 host_os = @host_os@ 244 host_vendor = @host_vendor@ 204 245 htmldir = @htmldir@ 205 246 includedir = @includedir@ … … 228 269 # create object files in directory with source files 229 270 AUTOMAKE_OPTIONS = subdir-objects 230 lib_LIBRARIES = libcfa.a 231 232 # put into lib for now 233 cfalibdir = ${libdir} 234 cfalib_DATA = builtins.cf extras.cf prelude.cf 235 MAINTAINERCLEANFILES = builtins.cf extras.cf ${addprefix ${libdir}/,${cfalib_DATA}} ${addprefix ${libdir}/,${lib_LIBRARIES}} 236 headers = limits stdlib math iostream fstream iterator rational containers/vector 271 lib_LIBRARIES = $(am__append_1) $(am__append_2) 272 EXTRA_FLAGS = -g -Wall -Wno-unused-function -I${abs_top_srcdir}/src/libcfa/libhdr -imacros libcfa-prelude.c @CFA_FLAGS@ 273 AM_CCASFLAGS = @CFA_FLAGS@ 274 headers = limits stdlib math iostream fstream iterator rational assert containers/vector concurrency/threads 275 runtimehdrs = concurrency 237 276 libobjs = ${headers:=.o} 238 libcfa_a_SOURCES = libcfa-prelude.c ${headers:=.c} 277 libsrc = libcfa-prelude.c ${headers:=.c} concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/invoke.c 278 libcfa_a_SOURCES = ${libsrc} 279 libcfa_a_CFLAGS = -nodebug -O2 280 libcfa_d_a_SOURCES = ${libsrc} 281 libcfa_d_a_CFLAGS = -debug -O0 239 282 stdhdr = ${shell echo stdhdr/*} 240 nobase_include_HEADERS = ${headers} ${stdhdr} 283 nobase_include_HEADERS = ${headers} ${stdhdr} concurrency/invoke.h 241 284 CLEANFILES = libcfa-prelude.c 242 285 all: all-am 243 286 244 287 .SUFFIXES: 245 .SUFFIXES: . c .o .obj288 .SUFFIXES: .S .c .o .obj 246 289 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) 247 290 @for dep in $?; do \ … … 310 353 @$(MKDIR_P) containers/$(DEPDIR) 311 354 @: > containers/$(DEPDIR)/$(am__dirstamp) 312 containers/ vector.$(OBJEXT): containers/$(am__dirstamp) \355 containers/libcfa_d_a-vector.$(OBJEXT): containers/$(am__dirstamp) \ 313 356 containers/$(DEPDIR)/$(am__dirstamp) 357 concurrency/$(am__dirstamp): 358 @$(MKDIR_P) concurrency 359 @: > concurrency/$(am__dirstamp) 360 concurrency/$(DEPDIR)/$(am__dirstamp): 361 @$(MKDIR_P) concurrency/$(DEPDIR) 362 @: > concurrency/$(DEPDIR)/$(am__dirstamp) 363 concurrency/libcfa_d_a-threads.$(OBJEXT): concurrency/$(am__dirstamp) \ 364 concurrency/$(DEPDIR)/$(am__dirstamp) 365 concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT): \ 366 concurrency/$(am__dirstamp) \ 367 concurrency/$(DEPDIR)/$(am__dirstamp) 368 concurrency/libcfa_d_a-invoke.$(OBJEXT): concurrency/$(am__dirstamp) \ 369 concurrency/$(DEPDIR)/$(am__dirstamp) 370 libcfa-d.a: $(libcfa_d_a_OBJECTS) $(libcfa_d_a_DEPENDENCIES) $(EXTRA_libcfa_d_a_DEPENDENCIES) 371 $(AM_V_at)-rm -f libcfa-d.a 372 $(AM_V_AR)$(libcfa_d_a_AR) libcfa-d.a $(libcfa_d_a_OBJECTS) $(libcfa_d_a_LIBADD) 373 $(AM_V_at)$(RANLIB) libcfa-d.a 374 containers/libcfa_a-vector.$(OBJEXT): containers/$(am__dirstamp) \ 375 containers/$(DEPDIR)/$(am__dirstamp) 376 concurrency/libcfa_a-threads.$(OBJEXT): concurrency/$(am__dirstamp) \ 377 concurrency/$(DEPDIR)/$(am__dirstamp) 378 concurrency/libcfa_a-invoke.$(OBJEXT): concurrency/$(am__dirstamp) \ 379 concurrency/$(DEPDIR)/$(am__dirstamp) 314 380 libcfa.a: $(libcfa_a_OBJECTS) $(libcfa_a_DEPENDENCIES) $(EXTRA_libcfa_a_DEPENDENCIES) 315 381 $(AM_V_at)-rm -f libcfa.a … … 319 385 mostlyclean-compile: 320 386 -rm -f *.$(OBJEXT) 321 -rm -f containers/vector.$(OBJEXT) 387 -rm -f concurrency/CtxSwitch-@MACHINE_TYPE@.$(OBJEXT) 388 -rm -f concurrency/libcfa_a-invoke.$(OBJEXT) 389 -rm -f concurrency/libcfa_a-threads.$(OBJEXT) 390 -rm -f concurrency/libcfa_d_a-invoke.$(OBJEXT) 391 -rm -f concurrency/libcfa_d_a-threads.$(OBJEXT) 392 -rm -f containers/libcfa_a-vector.$(OBJEXT) 393 -rm -f containers/libcfa_d_a-vector.$(OBJEXT) 322 394 323 395 distclean-compile: 324 396 -rm -f *.tab.c 325 397 326 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream.Po@am__quote@ 327 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iostream.Po@am__quote@ 328 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iterator.Po@am__quote@ 329 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa-prelude.Po@am__quote@ 330 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/limits.Po@am__quote@ 331 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/math.Po@am__quote@ 332 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rational.Po@am__quote@ 333 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdlib.Po@am__quote@ 334 @AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/vector.Po@am__quote@ 398 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-assert.Po@am__quote@ 399 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-fstream.Po@am__quote@ 400 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-iostream.Po@am__quote@ 401 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-iterator.Po@am__quote@ 402 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-libcfa-prelude.Po@am__quote@ 403 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-limits.Po@am__quote@ 404 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-math.Po@am__quote@ 405 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-rational.Po@am__quote@ 406 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_a-stdlib.Po@am__quote@ 407 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-assert.Po@am__quote@ 408 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-fstream.Po@am__quote@ 409 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-iostream.Po@am__quote@ 410 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-iterator.Po@am__quote@ 411 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-libcfa-prelude.Po@am__quote@ 412 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-limits.Po@am__quote@ 413 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-math.Po@am__quote@ 414 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-rational.Po@am__quote@ 415 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-stdlib.Po@am__quote@ 416 @AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/CtxSwitch-@MACHINE_TYPE@.Po@am__quote@ 417 @AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/libcfa_a-invoke.Po@am__quote@ 418 @AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/libcfa_a-threads.Po@am__quote@ 419 @AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/libcfa_d_a-invoke.Po@am__quote@ 420 @AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/libcfa_d_a-threads.Po@am__quote@ 421 @AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/libcfa_a-vector.Po@am__quote@ 422 @AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/libcfa_d_a-vector.Po@am__quote@ 423 424 .S.o: 425 @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ 426 @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ 427 @am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po 428 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 429 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 430 @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ $< 431 432 .S.obj: 433 @am__fastdepCCAS_TRUE@ $(AM_V_CPPAS)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ 434 @am__fastdepCCAS_TRUE@ $(CPPASCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ 435 @am__fastdepCCAS_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po 436 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ $(AM_V_CPPAS)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 437 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@ DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 438 @am__fastdepCCAS_FALSE@ $(AM_V_CPPAS@am__nodep@)$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 335 439 336 440 .c.o: … … 349 453 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 350 454 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` 351 install-cfalibDATA: $(cfalib_DATA) 352 @$(NORMAL_INSTALL) 353 test -z "$(cfalibdir)" || $(MKDIR_P) "$(DESTDIR)$(cfalibdir)" 354 @list='$(cfalib_DATA)'; test -n "$(cfalibdir)" || list=; \ 355 for p in $$list; do \ 356 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 357 echo "$$d$$p"; \ 358 done | $(am__base_list) | \ 359 while read files; do \ 360 echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(cfalibdir)'"; \ 361 $(INSTALL_DATA) $$files "$(DESTDIR)$(cfalibdir)" || exit $$?; \ 362 done 363 364 uninstall-cfalibDATA: 365 @$(NORMAL_UNINSTALL) 366 @list='$(cfalib_DATA)'; test -n "$(cfalibdir)" || list=; \ 367 files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ 368 dir='$(DESTDIR)$(cfalibdir)'; $(am__uninstall_files_from_dir) 455 456 libcfa_d_a-libcfa-prelude.obj: libcfa-prelude.c 457 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-libcfa-prelude.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-libcfa-prelude.Tpo -c -o libcfa_d_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi` 458 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-libcfa-prelude.Tpo $(DEPDIR)/libcfa_d_a-libcfa-prelude.Po 459 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libcfa-prelude.c' object='libcfa_d_a-libcfa-prelude.obj' libtool=no @AMDEPBACKSLASH@ 460 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 461 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi` 462 463 libcfa_d_a-limits.o: limits.c 464 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-limits.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-limits.Tpo -c -o libcfa_d_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 465 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-limits.Tpo $(DEPDIR)/libcfa_d_a-limits.Po 466 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_d_a-limits.o' libtool=no @AMDEPBACKSLASH@ 467 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 468 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 469 470 libcfa_d_a-limits.obj: limits.c 471 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-limits.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-limits.Tpo -c -o libcfa_d_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 472 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-limits.Tpo $(DEPDIR)/libcfa_d_a-limits.Po 473 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_d_a-limits.obj' libtool=no @AMDEPBACKSLASH@ 474 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 475 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 476 477 libcfa_d_a-stdlib.o: stdlib.c 478 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-stdlib.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-stdlib.Tpo -c -o libcfa_d_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 479 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-stdlib.Tpo $(DEPDIR)/libcfa_d_a-stdlib.Po 480 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_d_a-stdlib.o' libtool=no @AMDEPBACKSLASH@ 481 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 482 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 483 484 libcfa_d_a-stdlib.obj: stdlib.c 485 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-stdlib.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-stdlib.Tpo -c -o libcfa_d_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 486 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-stdlib.Tpo $(DEPDIR)/libcfa_d_a-stdlib.Po 487 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_d_a-stdlib.obj' libtool=no @AMDEPBACKSLASH@ 488 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 489 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 490 491 libcfa_d_a-math.o: math.c 492 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-math.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-math.Tpo -c -o libcfa_d_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c 493 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-math.Tpo $(DEPDIR)/libcfa_d_a-math.Po 494 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_d_a-math.o' libtool=no @AMDEPBACKSLASH@ 495 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 496 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c 497 498 libcfa_d_a-math.obj: math.c 499 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-math.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-math.Tpo -c -o libcfa_d_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi` 500 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-math.Tpo $(DEPDIR)/libcfa_d_a-math.Po 501 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_d_a-math.obj' libtool=no @AMDEPBACKSLASH@ 502 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 503 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi` 504 505 libcfa_d_a-iostream.o: iostream.c 506 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iostream.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-iostream.Tpo -c -o libcfa_d_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 507 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iostream.Tpo $(DEPDIR)/libcfa_d_a-iostream.Po 508 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_d_a-iostream.o' libtool=no @AMDEPBACKSLASH@ 509 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 510 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 511 512 libcfa_d_a-iostream.obj: iostream.c 513 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iostream.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-iostream.Tpo -c -o libcfa_d_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 514 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iostream.Tpo $(DEPDIR)/libcfa_d_a-iostream.Po 515 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_d_a-iostream.obj' libtool=no @AMDEPBACKSLASH@ 516 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 517 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 518 519 libcfa_d_a-fstream.o: fstream.c 520 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-fstream.Tpo -c -o libcfa_d_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 521 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-fstream.Tpo $(DEPDIR)/libcfa_d_a-fstream.Po 522 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_d_a-fstream.o' libtool=no @AMDEPBACKSLASH@ 523 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 524 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 525 526 libcfa_d_a-fstream.obj: fstream.c 527 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-fstream.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-fstream.Tpo -c -o libcfa_d_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 528 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-fstream.Tpo $(DEPDIR)/libcfa_d_a-fstream.Po 529 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_d_a-fstream.obj' libtool=no @AMDEPBACKSLASH@ 530 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 531 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 532 533 libcfa_d_a-iterator.o: iterator.c 534 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iterator.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-iterator.Tpo -c -o libcfa_d_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 535 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iterator.Tpo $(DEPDIR)/libcfa_d_a-iterator.Po 536 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_d_a-iterator.o' libtool=no @AMDEPBACKSLASH@ 537 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 538 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 539 540 libcfa_d_a-iterator.obj: iterator.c 541 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-iterator.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-iterator.Tpo -c -o libcfa_d_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 542 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-iterator.Tpo $(DEPDIR)/libcfa_d_a-iterator.Po 543 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_d_a-iterator.obj' libtool=no @AMDEPBACKSLASH@ 544 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 545 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 546 547 libcfa_d_a-rational.o: rational.c 548 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-rational.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-rational.Tpo -c -o libcfa_d_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 549 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-rational.Tpo $(DEPDIR)/libcfa_d_a-rational.Po 550 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_d_a-rational.o' libtool=no @AMDEPBACKSLASH@ 551 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 552 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 553 554 libcfa_d_a-rational.obj: rational.c 555 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-rational.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-rational.Tpo -c -o libcfa_d_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 556 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-rational.Tpo $(DEPDIR)/libcfa_d_a-rational.Po 557 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_d_a-rational.obj' libtool=no @AMDEPBACKSLASH@ 558 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 559 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 560 561 libcfa_d_a-assert.o: assert.c 562 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_d_a-assert.Tpo -c -o libcfa_d_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c 563 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-assert.Tpo $(DEPDIR)/libcfa_d_a-assert.Po 564 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='assert.c' object='libcfa_d_a-assert.o' libtool=no @AMDEPBACKSLASH@ 565 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 566 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c 567 568 libcfa_d_a-assert.obj: assert.c 569 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libcfa_d_a-assert.obj -MD -MP -MF $(DEPDIR)/libcfa_d_a-assert.Tpo -c -o libcfa_d_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi` 570 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_d_a-assert.Tpo $(DEPDIR)/libcfa_d_a-assert.Po 571 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='assert.c' object='libcfa_d_a-assert.obj' libtool=no @AMDEPBACKSLASH@ 572 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 573 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi` 574 575 containers/libcfa_d_a-vector.o: containers/vector.c 576 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-vector.o -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-vector.Tpo -c -o containers/libcfa_d_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 577 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-vector.Tpo containers/$(DEPDIR)/libcfa_d_a-vector.Po 578 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_d_a-vector.o' libtool=no @AMDEPBACKSLASH@ 579 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 580 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 581 582 containers/libcfa_d_a-vector.obj: containers/vector.c 583 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_d_a-vector.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_d_a-vector.Tpo -c -o containers/libcfa_d_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 584 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_d_a-vector.Tpo containers/$(DEPDIR)/libcfa_d_a-vector.Po 585 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_d_a-vector.obj' libtool=no @AMDEPBACKSLASH@ 586 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 587 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_d_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 588 589 concurrency/libcfa_d_a-threads.o: concurrency/threads.c 590 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-threads.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-threads.Tpo -c -o concurrency/libcfa_d_a-threads.o `test -f 'concurrency/threads.c' || echo '$(srcdir)/'`concurrency/threads.c 591 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-threads.Tpo concurrency/$(DEPDIR)/libcfa_d_a-threads.Po 592 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/threads.c' object='concurrency/libcfa_d_a-threads.o' libtool=no @AMDEPBACKSLASH@ 593 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 594 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-threads.o `test -f 'concurrency/threads.c' || echo '$(srcdir)/'`concurrency/threads.c 595 596 concurrency/libcfa_d_a-threads.obj: concurrency/threads.c 597 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-threads.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-threads.Tpo -c -o concurrency/libcfa_d_a-threads.obj `if test -f 'concurrency/threads.c'; then $(CYGPATH_W) 'concurrency/threads.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/threads.c'; fi` 598 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-threads.Tpo concurrency/$(DEPDIR)/libcfa_d_a-threads.Po 599 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/threads.c' object='concurrency/libcfa_d_a-threads.obj' libtool=no @AMDEPBACKSLASH@ 600 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 601 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-threads.obj `if test -f 'concurrency/threads.c'; then $(CYGPATH_W) 'concurrency/threads.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/threads.c'; fi` 602 603 concurrency/libcfa_d_a-invoke.obj: concurrency/invoke.c 604 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_d_a-invoke.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_d_a-invoke.Tpo -c -o concurrency/libcfa_d_a-invoke.obj `if test -f 'concurrency/invoke.c'; then $(CYGPATH_W) 'concurrency/invoke.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/invoke.c'; fi` 605 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_d_a-invoke.Tpo concurrency/$(DEPDIR)/libcfa_d_a-invoke.Po 606 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/invoke.c' object='concurrency/libcfa_d_a-invoke.obj' libtool=no @AMDEPBACKSLASH@ 607 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 608 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_d_a-invoke.obj `if test -f 'concurrency/invoke.c'; then $(CYGPATH_W) 'concurrency/invoke.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/invoke.c'; fi` 609 610 libcfa_a-libcfa-prelude.obj: libcfa-prelude.c 611 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-libcfa-prelude.obj -MD -MP -MF $(DEPDIR)/libcfa_a-libcfa-prelude.Tpo -c -o libcfa_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi` 612 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-libcfa-prelude.Tpo $(DEPDIR)/libcfa_a-libcfa-prelude.Po 613 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libcfa-prelude.c' object='libcfa_a-libcfa-prelude.obj' libtool=no @AMDEPBACKSLASH@ 614 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 615 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-libcfa-prelude.obj `if test -f 'libcfa-prelude.c'; then $(CYGPATH_W) 'libcfa-prelude.c'; else $(CYGPATH_W) '$(srcdir)/libcfa-prelude.c'; fi` 616 617 libcfa_a-limits.o: limits.c 618 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-limits.o -MD -MP -MF $(DEPDIR)/libcfa_a-limits.Tpo -c -o libcfa_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 619 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-limits.Tpo $(DEPDIR)/libcfa_a-limits.Po 620 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_a-limits.o' libtool=no @AMDEPBACKSLASH@ 621 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 622 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-limits.o `test -f 'limits.c' || echo '$(srcdir)/'`limits.c 623 624 libcfa_a-limits.obj: limits.c 625 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-limits.obj -MD -MP -MF $(DEPDIR)/libcfa_a-limits.Tpo -c -o libcfa_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 626 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-limits.Tpo $(DEPDIR)/libcfa_a-limits.Po 627 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='limits.c' object='libcfa_a-limits.obj' libtool=no @AMDEPBACKSLASH@ 628 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 629 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-limits.obj `if test -f 'limits.c'; then $(CYGPATH_W) 'limits.c'; else $(CYGPATH_W) '$(srcdir)/limits.c'; fi` 630 631 libcfa_a-stdlib.o: stdlib.c 632 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-stdlib.o -MD -MP -MF $(DEPDIR)/libcfa_a-stdlib.Tpo -c -o libcfa_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 633 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-stdlib.Tpo $(DEPDIR)/libcfa_a-stdlib.Po 634 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_a-stdlib.o' libtool=no @AMDEPBACKSLASH@ 635 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 636 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-stdlib.o `test -f 'stdlib.c' || echo '$(srcdir)/'`stdlib.c 637 638 libcfa_a-stdlib.obj: stdlib.c 639 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-stdlib.obj -MD -MP -MF $(DEPDIR)/libcfa_a-stdlib.Tpo -c -o libcfa_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 640 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-stdlib.Tpo $(DEPDIR)/libcfa_a-stdlib.Po 641 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stdlib.c' object='libcfa_a-stdlib.obj' libtool=no @AMDEPBACKSLASH@ 642 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 643 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-stdlib.obj `if test -f 'stdlib.c'; then $(CYGPATH_W) 'stdlib.c'; else $(CYGPATH_W) '$(srcdir)/stdlib.c'; fi` 644 645 libcfa_a-math.o: math.c 646 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-math.o -MD -MP -MF $(DEPDIR)/libcfa_a-math.Tpo -c -o libcfa_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c 647 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-math.Tpo $(DEPDIR)/libcfa_a-math.Po 648 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_a-math.o' libtool=no @AMDEPBACKSLASH@ 649 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 650 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-math.o `test -f 'math.c' || echo '$(srcdir)/'`math.c 651 652 libcfa_a-math.obj: math.c 653 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-math.obj -MD -MP -MF $(DEPDIR)/libcfa_a-math.Tpo -c -o libcfa_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi` 654 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-math.Tpo $(DEPDIR)/libcfa_a-math.Po 655 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='math.c' object='libcfa_a-math.obj' libtool=no @AMDEPBACKSLASH@ 656 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 657 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-math.obj `if test -f 'math.c'; then $(CYGPATH_W) 'math.c'; else $(CYGPATH_W) '$(srcdir)/math.c'; fi` 658 659 libcfa_a-iostream.o: iostream.c 660 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iostream.o -MD -MP -MF $(DEPDIR)/libcfa_a-iostream.Tpo -c -o libcfa_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 661 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iostream.Tpo $(DEPDIR)/libcfa_a-iostream.Po 662 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_a-iostream.o' libtool=no @AMDEPBACKSLASH@ 663 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 664 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iostream.o `test -f 'iostream.c' || echo '$(srcdir)/'`iostream.c 665 666 libcfa_a-iostream.obj: iostream.c 667 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iostream.obj -MD -MP -MF $(DEPDIR)/libcfa_a-iostream.Tpo -c -o libcfa_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 668 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iostream.Tpo $(DEPDIR)/libcfa_a-iostream.Po 669 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iostream.c' object='libcfa_a-iostream.obj' libtool=no @AMDEPBACKSLASH@ 670 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 671 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iostream.obj `if test -f 'iostream.c'; then $(CYGPATH_W) 'iostream.c'; else $(CYGPATH_W) '$(srcdir)/iostream.c'; fi` 672 673 libcfa_a-fstream.o: fstream.c 674 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-fstream.o -MD -MP -MF $(DEPDIR)/libcfa_a-fstream.Tpo -c -o libcfa_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 675 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-fstream.Tpo $(DEPDIR)/libcfa_a-fstream.Po 676 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_a-fstream.o' libtool=no @AMDEPBACKSLASH@ 677 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 678 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-fstream.o `test -f 'fstream.c' || echo '$(srcdir)/'`fstream.c 679 680 libcfa_a-fstream.obj: fstream.c 681 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-fstream.obj -MD -MP -MF $(DEPDIR)/libcfa_a-fstream.Tpo -c -o libcfa_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 682 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-fstream.Tpo $(DEPDIR)/libcfa_a-fstream.Po 683 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fstream.c' object='libcfa_a-fstream.obj' libtool=no @AMDEPBACKSLASH@ 684 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 685 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-fstream.obj `if test -f 'fstream.c'; then $(CYGPATH_W) 'fstream.c'; else $(CYGPATH_W) '$(srcdir)/fstream.c'; fi` 686 687 libcfa_a-iterator.o: iterator.c 688 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iterator.o -MD -MP -MF $(DEPDIR)/libcfa_a-iterator.Tpo -c -o libcfa_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 689 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iterator.Tpo $(DEPDIR)/libcfa_a-iterator.Po 690 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_a-iterator.o' libtool=no @AMDEPBACKSLASH@ 691 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 692 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iterator.o `test -f 'iterator.c' || echo '$(srcdir)/'`iterator.c 693 694 libcfa_a-iterator.obj: iterator.c 695 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-iterator.obj -MD -MP -MF $(DEPDIR)/libcfa_a-iterator.Tpo -c -o libcfa_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 696 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-iterator.Tpo $(DEPDIR)/libcfa_a-iterator.Po 697 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='iterator.c' object='libcfa_a-iterator.obj' libtool=no @AMDEPBACKSLASH@ 698 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 699 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-iterator.obj `if test -f 'iterator.c'; then $(CYGPATH_W) 'iterator.c'; else $(CYGPATH_W) '$(srcdir)/iterator.c'; fi` 700 701 libcfa_a-rational.o: rational.c 702 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-rational.o -MD -MP -MF $(DEPDIR)/libcfa_a-rational.Tpo -c -o libcfa_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 703 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-rational.Tpo $(DEPDIR)/libcfa_a-rational.Po 704 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_a-rational.o' libtool=no @AMDEPBACKSLASH@ 705 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 706 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-rational.o `test -f 'rational.c' || echo '$(srcdir)/'`rational.c 707 708 libcfa_a-rational.obj: rational.c 709 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-rational.obj -MD -MP -MF $(DEPDIR)/libcfa_a-rational.Tpo -c -o libcfa_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 710 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-rational.Tpo $(DEPDIR)/libcfa_a-rational.Po 711 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='rational.c' object='libcfa_a-rational.obj' libtool=no @AMDEPBACKSLASH@ 712 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 713 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-rational.obj `if test -f 'rational.c'; then $(CYGPATH_W) 'rational.c'; else $(CYGPATH_W) '$(srcdir)/rational.c'; fi` 714 715 libcfa_a-assert.o: assert.c 716 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-assert.o -MD -MP -MF $(DEPDIR)/libcfa_a-assert.Tpo -c -o libcfa_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c 717 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-assert.Tpo $(DEPDIR)/libcfa_a-assert.Po 718 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='assert.c' object='libcfa_a-assert.o' libtool=no @AMDEPBACKSLASH@ 719 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 720 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-assert.o `test -f 'assert.c' || echo '$(srcdir)/'`assert.c 721 722 libcfa_a-assert.obj: assert.c 723 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libcfa_a-assert.obj -MD -MP -MF $(DEPDIR)/libcfa_a-assert.Tpo -c -o libcfa_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi` 724 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcfa_a-assert.Tpo $(DEPDIR)/libcfa_a-assert.Po 725 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='assert.c' object='libcfa_a-assert.obj' libtool=no @AMDEPBACKSLASH@ 726 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 727 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-assert.obj `if test -f 'assert.c'; then $(CYGPATH_W) 'assert.c'; else $(CYGPATH_W) '$(srcdir)/assert.c'; fi` 728 729 containers/libcfa_a-vector.o: containers/vector.c 730 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-vector.o -MD -MP -MF containers/$(DEPDIR)/libcfa_a-vector.Tpo -c -o containers/libcfa_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 731 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-vector.Tpo containers/$(DEPDIR)/libcfa_a-vector.Po 732 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_a-vector.o' libtool=no @AMDEPBACKSLASH@ 733 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 734 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-vector.o `test -f 'containers/vector.c' || echo '$(srcdir)/'`containers/vector.c 735 736 containers/libcfa_a-vector.obj: containers/vector.c 737 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT containers/libcfa_a-vector.obj -MD -MP -MF containers/$(DEPDIR)/libcfa_a-vector.Tpo -c -o containers/libcfa_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 738 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) containers/$(DEPDIR)/libcfa_a-vector.Tpo containers/$(DEPDIR)/libcfa_a-vector.Po 739 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='containers/vector.c' object='containers/libcfa_a-vector.obj' libtool=no @AMDEPBACKSLASH@ 740 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 741 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o containers/libcfa_a-vector.obj `if test -f 'containers/vector.c'; then $(CYGPATH_W) 'containers/vector.c'; else $(CYGPATH_W) '$(srcdir)/containers/vector.c'; fi` 742 743 concurrency/libcfa_a-threads.o: concurrency/threads.c 744 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-threads.o -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-threads.Tpo -c -o concurrency/libcfa_a-threads.o `test -f 'concurrency/threads.c' || echo '$(srcdir)/'`concurrency/threads.c 745 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-threads.Tpo concurrency/$(DEPDIR)/libcfa_a-threads.Po 746 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/threads.c' object='concurrency/libcfa_a-threads.o' libtool=no @AMDEPBACKSLASH@ 747 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 748 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-threads.o `test -f 'concurrency/threads.c' || echo '$(srcdir)/'`concurrency/threads.c 749 750 concurrency/libcfa_a-threads.obj: concurrency/threads.c 751 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-threads.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-threads.Tpo -c -o concurrency/libcfa_a-threads.obj `if test -f 'concurrency/threads.c'; then $(CYGPATH_W) 'concurrency/threads.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/threads.c'; fi` 752 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-threads.Tpo concurrency/$(DEPDIR)/libcfa_a-threads.Po 753 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/threads.c' object='concurrency/libcfa_a-threads.obj' libtool=no @AMDEPBACKSLASH@ 754 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 755 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-threads.obj `if test -f 'concurrency/threads.c'; then $(CYGPATH_W) 'concurrency/threads.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/threads.c'; fi` 756 757 concurrency/libcfa_a-invoke.obj: concurrency/invoke.c 758 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT concurrency/libcfa_a-invoke.obj -MD -MP -MF concurrency/$(DEPDIR)/libcfa_a-invoke.Tpo -c -o concurrency/libcfa_a-invoke.obj `if test -f 'concurrency/invoke.c'; then $(CYGPATH_W) 'concurrency/invoke.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/invoke.c'; fi` 759 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) concurrency/$(DEPDIR)/libcfa_a-invoke.Tpo concurrency/$(DEPDIR)/libcfa_a-invoke.Po 760 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='concurrency/invoke.c' object='concurrency/libcfa_a-invoke.obj' libtool=no @AMDEPBACKSLASH@ 761 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 762 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o concurrency/libcfa_a-invoke.obj `if test -f 'concurrency/invoke.c'; then $(CYGPATH_W) 'concurrency/invoke.c'; else $(CYGPATH_W) '$(srcdir)/concurrency/invoke.c'; fi` 369 763 install-nobase_includeHEADERS: $(nobase_include_HEADERS) 370 764 @$(NORMAL_INSTALL) … … 473 867 check-am: all-am 474 868 check: check-am 475 all-am: Makefile $(LIBRARIES) $( DATA) $(HEADERS)869 all-am: Makefile $(LIBRARIES) $(HEADERS) 476 870 installdirs: 477 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$( cfalibdir)" "$(DESTDIR)$(includedir)"; do \871 for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ 478 872 test -z "$$dir" || $(MKDIR_P) "$$dir"; \ 479 873 done … … 505 899 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 506 900 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) 901 -rm -f concurrency/$(DEPDIR)/$(am__dirstamp) 902 -rm -f concurrency/$(am__dirstamp) 507 903 -rm -f containers/$(DEPDIR)/$(am__dirstamp) 508 904 -rm -f containers/$(am__dirstamp) … … 511 907 @echo "This command is intended for maintainers to use" 512 908 @echo "it deletes files that may require special tools to rebuild." 513 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)514 909 clean: clean-am 515 910 … … 517 912 518 913 distclean: distclean-am 519 -rm -rf ./$(DEPDIR) con tainers/$(DEPDIR)914 -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) 520 915 -rm -f Makefile 521 916 distclean-am: clean-am distclean-compile distclean-generic \ … … 534 929 info-am: 535 930 536 install-data-am: install- cfalibDATA install-nobase_includeHEADERS931 install-data-am: install-nobase_includeHEADERS 537 932 538 933 install-dvi: install-dvi-am … … 563 958 564 959 maintainer-clean: maintainer-clean-am 565 -rm -rf ./$(DEPDIR) con tainers/$(DEPDIR)960 -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) 566 961 -rm -f Makefile 567 962 maintainer-clean-am: distclean-am maintainer-clean-generic \ … … 580 975 ps-am: 581 976 582 uninstall-am: uninstall-cfalibDATA uninstall-libLIBRARIES \ 583 uninstall-nobase_includeHEADERS 977 uninstall-am: uninstall-libLIBRARIES uninstall-nobase_includeHEADERS 584 978 585 979 .MAKE: install-am install-strip … … 588 982 clean-libLIBRARIES ctags distclean distclean-compile \ 589 983 distclean-generic distclean-tags distdir dvi dvi-am html \ 590 html-am info info-am install install-am install- cfalibDATA\591 install-data install-data-am install-dvi install-dvi-am\592 install-exec install-exec-am install-html install-html-am\593 install-info install-info-am install-libLIBRARIES install-man \984 html-am info info-am install install-am install-data \ 985 install-data-am install-dvi install-dvi-am install-exec \ 986 install-exec-am install-html install-html-am install-info \ 987 install-info-am install-libLIBRARIES install-man \ 594 988 install-nobase_includeHEADERS install-pdf install-pdf-am \ 595 989 install-ps install-ps-am install-strip installcheck \ … … 597 991 maintainer-clean-generic maintainer-clean-local mostlyclean \ 598 992 mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ 599 tags uninstall uninstall-am uninstall-cfalibDATA \ 600 uninstall-libLIBRARIES uninstall-nobase_includeHEADERS 601 602 603 # create extra forward types/declarations to reduce inclusion of library files 604 extras.cf : extras.regx extras.c 605 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -E ${srcdir}/extras.c | grep -f extras.regx > ${srcdir}/extras.cf 606 607 # create forward declarations for gcc builtins 608 builtins.cf : builtins.c 609 ${AM_V_GEN}if [ -e $< ] ; then \ 610 @BACKEND_CC@ -E -P $^ | sed -e "/targetm/s/.*//" -e "/_Decimal/s/.*//" -e "s/void (const char \*)0();//" -e "s/\"//g" -e "s/\(__builtin_\) /\1/" > $@ ; \ 611 fi 612 613 builtins.c : builtins.def prototypes.awk 614 ${AM_V_GEN}if [ -e $< ] ; then \ 615 @BACKEND_CC@ -E prototypes.c | awk -f prototypes.awk > $@ ; \ 616 fi 617 618 builtins.def : 619 620 prototypes.awk : 621 622 #-------------------------------------------------- 623 624 libcfa-prelude.c : ${srcdir}/prelude.cf ${srcdir}/extras.cf ${srcdir}/builtins.cf 625 ${AM_V_GEN}${abs_top_srcdir}/src/driver/cfa-cpp -l ${srcdir}/prelude.cf $@ # use src/cfa-cpp as not in lib until after install 626 627 libcfa-prelude.o : libcfa-prelude.c 628 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -c -o $@ $< 993 tags uninstall uninstall-am uninstall-libLIBRARIES \ 994 uninstall-nobase_includeHEADERS 995 996 997 libcfa_a-libcfa-prelude.o : libcfa-prelude.c 998 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -O2 -c -o $@ $< 999 1000 libcfa_d_a-libcfa-prelude.o : libcfa-prelude.c 1001 ${AM_V_GEN}@BACKEND_CC@ @CFA_FLAGS@ -D__CFA_DEBUG__ -O0 -c -o $@ $< 629 1002 630 1003 # extensionless header files are overridden by -o flag in default makerule => explicitly override default rule to silently do nothing … … 632 1005 @true 633 1006 1007 concurrency/libcfa_a-invoke.o : concurrency/invoke.c 1008 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -O2 ${EXTRA_FLAGS} -c -o $@ $< 1009 1010 concurrency/libcfa_d_a-invoke.o : concurrency/invoke.c 1011 ${AM_V_CC}@BACKEND_CC@ -DHAVE_CONFIG_H -I. -I../.. -D__CFA_DEBUG__ -O0 ${EXTRA_FLAGS} -c -o $@ $< 1012 634 1013 ${libobjs} : ${abs_top_srcdir}/src/driver/cfa-cpp ${cfalib_DATA} # add dependency to cfa-cpp so all libraries are rebuilt with new translator 635 1014 -
src/libcfa/stdhdr/assert.h
r5802a4f r66f8528 14 14 // 15 15 16 #ifdef __CFORALL__ 16 17 extern "C" { 17 #include_next <assert.h> // has internal check for multiple expansion 18 #endif //__CFORALL__ 19 20 // has internal check for multiple expansion 21 #include_next <assert.h> 22 23 #ifdef __CFORALL__ 18 24 } // extern "C" 25 #endif //__CFORALL__ 19 26 20 27 // Local Variables: // -
src/main.cc
r5802a4f r66f8528 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sun Oct 30 10:11:38201613 // Update Count : 43 512 // Last Modified On : Wed Dec 14 14:35:54 2016 13 // Update Count : 436 14 14 // 15 15 … … 178 178 if ( ! nopreludep ) { // include gcc builtins 179 179 // -l is for initial build ONLY and builtins.cf is not in the lib directory so access it here. 180 FILE * builtins = fopen( libcfap | treep ? " builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" );180 FILE * builtins = fopen( libcfap | treep ? "../prelude/builtins.cf" : CFA_LIBDIR "/builtins.cf", "r" ); 181 181 assertf( builtins, "cannot open builtins.cf\n" ); 182 182 parse( builtins, LinkageSpec::Compiler ); 183 183 184 184 // read the extra prelude in, if not generating the cfa library 185 FILE * extras = fopen( libcfap | treep ? " extras.cf" : CFA_LIBDIR "/extras.cf", "r" );185 FILE * extras = fopen( libcfap | treep ? "../prelude/extras.cf" : CFA_LIBDIR "/extras.cf", "r" ); 186 186 assertf( extras, "cannot open extras.cf\n" ); 187 187 parse( extras, LinkageSpec::C ); … … 189 189 if ( ! libcfap ) { 190 190 // read the prelude in, if not generating the cfa library 191 FILE * prelude = fopen( treep ? " prelude.cf" : CFA_LIBDIR "/prelude.cf", "r" );191 FILE * prelude = fopen( treep ? "../prelude/prelude.cf" : CFA_LIBDIR "/prelude.cf", "r" ); 192 192 assertf( prelude, "cannot open prelude.cf\n" ); 193 193 parse( prelude, LinkageSpec::Intrinsic ); -
src/prelude/prelude.cf
r5802a4f r66f8528 22 22 // ------------------------------------------------------------ 23 23 24 const int 0, 1; 25 26 forall ( dtype DT ) const DT * const 0; 27 forall ( ftype FT ) FT * const 0; 24 //We have none 28 25 29 26 // ------------------------------------------------------------ … … 249 246 // ------------------------------------------------------------ 250 247 251 signed int ?==?( _Bool, _Bool ), ?!=?( _Bool, _Bool );252 signed int ?==?( signed int, signed int ), ?!=?( signed int, signed int );253 signed int ?==?( unsigned int, unsigned int ), ?!=?( unsigned int, unsigned int );254 signed int ?==?( signed long int, signed long int ), ?!=?( signed long int, signed long int );255 signed int ?==?( unsigned long int, unsigned long int ), ?!=?( unsigned long int, unsigned long int );248 signed int ?==?( _Bool, _Bool ), ?!=?( _Bool, _Bool ); 249 signed int ?==?( signed int, signed int ), ?!=?( signed int, signed int ); 250 signed int ?==?( unsigned int, unsigned int ), ?!=?( unsigned int, unsigned int ); 251 signed int ?==?( signed long int, signed long int ), ?!=?( signed long int, signed long int ); 252 signed int ?==?( unsigned long int, unsigned long int ), ?!=?( unsigned long int, unsigned long int ); 256 253 signed int ?==?( signed long long int, long long int signed), ?!=?( signed long long int, signed long long int ); 257 254 signed int ?==?( unsigned long long int, unsigned long long int ), ?!=?( unsigned long long int, unsigned long long int ); 258 signed int ?==?( float, float ), ?!=?( float, float );259 signed int ?==?( double, double ), ?!=?( double, double );260 signed int ?==?( long double, long double ), ?!=?( long double, long double );261 signed int ?==?( float _Complex, float _Complex ), ?!=?( float _Complex, float _Complex );262 signed int ?==?( double _Complex, double _Complex ), ?!=?( double _Complex, double _Complex );255 signed int ?==?( float, float ), ?!=?( float, float ); 256 signed int ?==?( double, double ), ?!=?( double, double ); 257 signed int ?==?( long double, long double ), ?!=?( long double, long double ); 258 signed int ?==?( float _Complex, float _Complex ), ?!=?( float _Complex, float _Complex ); 259 signed int ?==?( double _Complex, double _Complex ), ?!=?( double _Complex, double _Complex ); 263 260 signed int ?==?( long double _Complex, long double _Complex ), ?!=?( long double _Complex, long double _Complex ); 261 signed int ?==?( zero_t, zero_t ), ?!=?( zero_t, zero_t ); 262 signed int ?==?( one_t, one_t ), ?!=?( one_t, one_t ); 264 263 265 264 forall( dtype DT ) signed int ?==?( DT *, DT * ); … … 274 273 forall( ftype FT ) signed int ?!=?( FT *, FT * ); 275 274 276 forall( dtype DT ) signed int ?==?( const volatile DT *, const volatile void * );277 forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * );278 forall( dtype DT ) signed int ?!=?( const volatile DT *, const volatile void * );279 forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );280 281 forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * );282 forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * );283 forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * );284 forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * );285 forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * );286 forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * );287 forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * );288 forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * );275 // forall( dtype DT ) signed int ?==?( const volatile DT *, const volatile void * ); 276 // forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * ); 277 // forall( dtype DT ) signed int ?!=?( const volatile DT *, const volatile void * ); 278 // forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * ); 279 280 // forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * ); 281 // forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * ); 282 // forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * ); 283 // forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * ); 284 // forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * ); 285 // forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * ); 286 // forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * ); 287 // forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * ); 289 288 290 289 // ------------------------------------------------------------ … … 458 457 signed long long int ?=?( signed long long int *, signed long long int ), ?=?( volatile signed long long int *, signed long long int ); 459 458 unsigned long long int ?=?( unsigned long long int *, unsigned long long int ), ?=?( volatile unsigned long long int *, unsigned long long int ); 459 zero_t ?=?( zero_t *, zero_t ); 460 one_t ?=?( one_t *, one_t ); 461 460 462 461 463 _Bool ?*=?( _Bool *, _Bool ), ?*=?( volatile _Bool *, _Bool ); … … 654 656 void ?{}( double _Complex * ); 655 657 void ?{}( long double _Complex * ); 658 void ?{}( zero_t * ); 659 void ?{}( one_t * ); 656 660 657 661 // copy ctor … … 674 678 void ?{}( double _Complex *, double _Complex); 675 679 void ?{}( long double _Complex *, long double _Complex); 680 void ?{}( zero_t *, zero_t ); 681 void ?{}( one_t *, one_t ); 676 682 677 683 // dtor … … 694 700 void ^?{}( double _Complex * ); 695 701 void ^?{}( long double _Complex * ); 702 void ^?{}( zero_t * ); 703 void ^?{}( one_t * ); 696 704 697 705 // // default ctor -
src/tests/.expect/32/declarationSpecifier.txt
r5802a4f r66f8528 20 20 static inline void ___constructor__F_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1); 21 21 static inline void ___destructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1); 22 static inline void ___constructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){ 23 ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))) /* ?{} */); 24 } 25 static inline void ___constructor__F_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){ 26 ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))=___src__13s__anonymous0_1.__i__i_1) /* ?{} */); 27 } 28 static inline void ___destructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){ 29 ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))) /* ^?{} */); 30 } 22 31 static inline struct __anonymous0 ___operator_assign__F13s__anonymous0_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){ 23 32 ((void)((*___dst__P13s__anonymous0_1).__i__i_1=___src__13s__anonymous0_1.__i__i_1)); 24 33 return ((struct __anonymous0 )___src__13s__anonymous0_1); 25 }26 static inline void ___constructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){27 ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))) /* ?{} */);28 }29 static inline void ___constructor__F_P13s__anonymous013s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, struct __anonymous0 ___src__13s__anonymous0_1){30 ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))=___src__13s__anonymous0_1.__i__i_1) /* ?{} */);31 }32 static inline void ___destructor__F_P13s__anonymous0_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1){33 ((void)((*((int *)(&(*___dst__P13s__anonymous0_1).__i__i_1)))) /* ^?{} */);34 34 } 35 35 static inline void ___constructor__F_P13s__anonymous0i_autogen___1(struct __anonymous0 *___dst__P13s__anonymous0_1, int __i__i_1){ … … 44 44 static inline void ___constructor__F_P13s__anonymous113s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, struct __anonymous1 ___src__13s__anonymous1_1); 45 45 static inline void ___destructor__F_P13s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1); 46 static inline void ___constructor__F_P13s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1){ 47 ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))) /* ?{} */); 48 } 49 static inline void ___constructor__F_P13s__anonymous113s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, struct __anonymous1 ___src__13s__anonymous1_1){ 50 ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))=___src__13s__anonymous1_1.__i__i_1) /* ?{} */); 51 } 52 static inline void ___destructor__F_P13s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1){ 53 ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))) /* ^?{} */); 54 } 46 55 static inline struct __anonymous1 ___operator_assign__F13s__anonymous1_P13s__anonymous113s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, struct __anonymous1 ___src__13s__anonymous1_1){ 47 56 ((void)((*___dst__P13s__anonymous1_1).__i__i_1=___src__13s__anonymous1_1.__i__i_1)); 48 57 return ((struct __anonymous1 )___src__13s__anonymous1_1); 49 }50 static inline void ___constructor__F_P13s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1){51 ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))) /* ?{} */);52 }53 static inline void ___constructor__F_P13s__anonymous113s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, struct __anonymous1 ___src__13s__anonymous1_1){54 ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))=___src__13s__anonymous1_1.__i__i_1) /* ?{} */);55 }56 static inline void ___destructor__F_P13s__anonymous1_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1){57 ((void)((*((int *)(&(*___dst__P13s__anonymous1_1).__i__i_1)))) /* ^?{} */);58 58 } 59 59 static inline void ___constructor__F_P13s__anonymous1i_autogen___1(struct __anonymous1 *___dst__P13s__anonymous1_1, int __i__i_1){ … … 68 68 static inline void ___constructor__F_P13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1); 69 69 static inline void ___destructor__F_P13s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1); 70 static inline void ___constructor__F_P13s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1){ 71 ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))) /* ?{} */); 72 } 73 static inline void ___constructor__F_P13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1){ 74 ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))=___src__13s__anonymous2_1.__i__i_1) /* ?{} */); 75 } 76 static inline void ___destructor__F_P13s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1){ 77 ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))) /* ^?{} */); 78 } 70 79 static inline struct __anonymous2 ___operator_assign__F13s__anonymous2_P13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1){ 71 80 ((void)((*___dst__P13s__anonymous2_1).__i__i_1=___src__13s__anonymous2_1.__i__i_1)); 72 81 return ((struct __anonymous2 )___src__13s__anonymous2_1); 73 }74 static inline void ___constructor__F_P13s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1){75 ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))) /* ?{} */);76 }77 static inline void ___constructor__F_P13s__anonymous213s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, struct __anonymous2 ___src__13s__anonymous2_1){78 ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))=___src__13s__anonymous2_1.__i__i_1) /* ?{} */);79 }80 static inline void ___destructor__F_P13s__anonymous2_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1){81 ((void)((*((int *)(&(*___dst__P13s__anonymous2_1).__i__i_1)))) /* ^?{} */);82 82 } 83 83 static inline void ___constructor__F_P13s__anonymous2i_autogen___1(struct __anonymous2 *___dst__P13s__anonymous2_1, int __i__i_1){ … … 92 92 static inline void ___constructor__F_P13s__anonymous313s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, struct __anonymous3 ___src__13s__anonymous3_1); 93 93 static inline void ___destructor__F_P13s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1); 94 static inline void ___constructor__F_P13s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1){ 95 ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))) /* ?{} */); 96 } 97 static inline void ___constructor__F_P13s__anonymous313s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, struct __anonymous3 ___src__13s__anonymous3_1){ 98 ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))=___src__13s__anonymous3_1.__i__i_1) /* ?{} */); 99 } 100 static inline void ___destructor__F_P13s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1){ 101 ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))) /* ^?{} */); 102 } 94 103 static inline struct __anonymous3 ___operator_assign__F13s__anonymous3_P13s__anonymous313s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, struct __anonymous3 ___src__13s__anonymous3_1){ 95 104 ((void)((*___dst__P13s__anonymous3_1).__i__i_1=___src__13s__anonymous3_1.__i__i_1)); 96 105 return ((struct __anonymous3 )___src__13s__anonymous3_1); 97 }98 static inline void ___constructor__F_P13s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1){99 ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))) /* ?{} */);100 }101 static inline void ___constructor__F_P13s__anonymous313s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, struct __anonymous3 ___src__13s__anonymous3_1){102 ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))=___src__13s__anonymous3_1.__i__i_1) /* ?{} */);103 }104 static inline void ___destructor__F_P13s__anonymous3_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1){105 ((void)((*((int *)(&(*___dst__P13s__anonymous3_1).__i__i_1)))) /* ^?{} */);106 106 } 107 107 static inline void ___constructor__F_P13s__anonymous3i_autogen___1(struct __anonymous3 *___dst__P13s__anonymous3_1, int __i__i_1){ … … 116 116 static inline void ___constructor__F_P13s__anonymous413s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, struct __anonymous4 ___src__13s__anonymous4_1); 117 117 static inline void ___destructor__F_P13s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1); 118 static inline void ___constructor__F_P13s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1){ 119 ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))) /* ?{} */); 120 } 121 static inline void ___constructor__F_P13s__anonymous413s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, struct __anonymous4 ___src__13s__anonymous4_1){ 122 ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))=___src__13s__anonymous4_1.__i__i_1) /* ?{} */); 123 } 124 static inline void ___destructor__F_P13s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1){ 125 ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))) /* ^?{} */); 126 } 118 127 static inline struct __anonymous4 ___operator_assign__F13s__anonymous4_P13s__anonymous413s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, struct __anonymous4 ___src__13s__anonymous4_1){ 119 128 ((void)((*___dst__P13s__anonymous4_1).__i__i_1=___src__13s__anonymous4_1.__i__i_1)); 120 129 return ((struct __anonymous4 )___src__13s__anonymous4_1); 121 }122 static inline void ___constructor__F_P13s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1){123 ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))) /* ?{} */);124 }125 static inline void ___constructor__F_P13s__anonymous413s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, struct __anonymous4 ___src__13s__anonymous4_1){126 ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))=___src__13s__anonymous4_1.__i__i_1) /* ?{} */);127 }128 static inline void ___destructor__F_P13s__anonymous4_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1){129 ((void)((*((int *)(&(*___dst__P13s__anonymous4_1).__i__i_1)))) /* ^?{} */);130 130 } 131 131 static inline void ___constructor__F_P13s__anonymous4i_autogen___1(struct __anonymous4 *___dst__P13s__anonymous4_1, int __i__i_1){ … … 140 140 static inline void ___constructor__F_P13s__anonymous513s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, struct __anonymous5 ___src__13s__anonymous5_1); 141 141 static inline void ___destructor__F_P13s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1); 142 static inline void ___constructor__F_P13s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1){ 143 ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))) /* ?{} */); 144 } 145 static inline void ___constructor__F_P13s__anonymous513s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, struct __anonymous5 ___src__13s__anonymous5_1){ 146 ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))=___src__13s__anonymous5_1.__i__i_1) /* ?{} */); 147 } 148 static inline void ___destructor__F_P13s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1){ 149 ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))) /* ^?{} */); 150 } 142 151 static inline struct __anonymous5 ___operator_assign__F13s__anonymous5_P13s__anonymous513s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, struct __anonymous5 ___src__13s__anonymous5_1){ 143 152 ((void)((*___dst__P13s__anonymous5_1).__i__i_1=___src__13s__anonymous5_1.__i__i_1)); 144 153 return ((struct __anonymous5 )___src__13s__anonymous5_1); 145 }146 static inline void ___constructor__F_P13s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1){147 ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))) /* ?{} */);148 }149 static inline void ___constructor__F_P13s__anonymous513s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, struct __anonymous5 ___src__13s__anonymous5_1){150 ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))=___src__13s__anonymous5_1.__i__i_1) /* ?{} */);151 }152 static inline void ___destructor__F_P13s__anonymous5_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1){153 ((void)((*((int *)(&(*___dst__P13s__anonymous5_1).__i__i_1)))) /* ^?{} */);154 154 } 155 155 static inline void ___constructor__F_P13s__anonymous5i_autogen___1(struct __anonymous5 *___dst__P13s__anonymous5_1, int __i__i_1){ … … 164 164 static inline void ___constructor__F_P13s__anonymous613s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, struct __anonymous6 ___src__13s__anonymous6_1); 165 165 static inline void ___destructor__F_P13s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1); 166 static inline void ___constructor__F_P13s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1){ 167 ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))) /* ?{} */); 168 } 169 static inline void ___constructor__F_P13s__anonymous613s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, struct __anonymous6 ___src__13s__anonymous6_1){ 170 ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))=___src__13s__anonymous6_1.__i__i_1) /* ?{} */); 171 } 172 static inline void ___destructor__F_P13s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1){ 173 ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))) /* ^?{} */); 174 } 166 175 static inline struct __anonymous6 ___operator_assign__F13s__anonymous6_P13s__anonymous613s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, struct __anonymous6 ___src__13s__anonymous6_1){ 167 176 ((void)((*___dst__P13s__anonymous6_1).__i__i_1=___src__13s__anonymous6_1.__i__i_1)); 168 177 return ((struct __anonymous6 )___src__13s__anonymous6_1); 169 }170 static inline void ___constructor__F_P13s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1){171 ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))) /* ?{} */);172 }173 static inline void ___constructor__F_P13s__anonymous613s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, struct __anonymous6 ___src__13s__anonymous6_1){174 ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))=___src__13s__anonymous6_1.__i__i_1) /* ?{} */);175 }176 static inline void ___destructor__F_P13s__anonymous6_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1){177 ((void)((*((int *)(&(*___dst__P13s__anonymous6_1).__i__i_1)))) /* ^?{} */);178 178 } 179 179 static inline void ___constructor__F_P13s__anonymous6i_autogen___1(struct __anonymous6 *___dst__P13s__anonymous6_1, int __i__i_1){ … … 188 188 static inline void ___constructor__F_P13s__anonymous713s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, struct __anonymous7 ___src__13s__anonymous7_1); 189 189 static inline void ___destructor__F_P13s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1); 190 static inline void ___constructor__F_P13s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1){ 191 ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))) /* ?{} */); 192 } 193 static inline void ___constructor__F_P13s__anonymous713s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, struct __anonymous7 ___src__13s__anonymous7_1){ 194 ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))=___src__13s__anonymous7_1.__i__i_1) /* ?{} */); 195 } 196 static inline void ___destructor__F_P13s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1){ 197 ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))) /* ^?{} */); 198 } 190 199 static inline struct __anonymous7 ___operator_assign__F13s__anonymous7_P13s__anonymous713s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, struct __anonymous7 ___src__13s__anonymous7_1){ 191 200 ((void)((*___dst__P13s__anonymous7_1).__i__i_1=___src__13s__anonymous7_1.__i__i_1)); 192 201 return ((struct __anonymous7 )___src__13s__anonymous7_1); 193 }194 static inline void ___constructor__F_P13s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1){195 ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))) /* ?{} */);196 }197 static inline void ___constructor__F_P13s__anonymous713s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, struct __anonymous7 ___src__13s__anonymous7_1){198 ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))=___src__13s__anonymous7_1.__i__i_1) /* ?{} */);199 }200 static inline void ___destructor__F_P13s__anonymous7_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1){201 ((void)((*((int *)(&(*___dst__P13s__anonymous7_1).__i__i_1)))) /* ^?{} */);202 202 } 203 203 static inline void ___constructor__F_P13s__anonymous7i_autogen___1(struct __anonymous7 *___dst__P13s__anonymous7_1, int __i__i_1){ … … 220 220 static inline void ___constructor__F_P13s__anonymous813s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, struct __anonymous8 ___src__13s__anonymous8_1); 221 221 static inline void ___destructor__F_P13s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1); 222 static inline void ___constructor__F_P13s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1){ 223 ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))) /* ?{} */); 224 } 225 static inline void ___constructor__F_P13s__anonymous813s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, struct __anonymous8 ___src__13s__anonymous8_1){ 226 ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))=___src__13s__anonymous8_1.__i__s_1) /* ?{} */); 227 } 228 static inline void ___destructor__F_P13s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1){ 229 ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))) /* ^?{} */); 230 } 222 231 static inline struct __anonymous8 ___operator_assign__F13s__anonymous8_P13s__anonymous813s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, struct __anonymous8 ___src__13s__anonymous8_1){ 223 232 ((void)((*___dst__P13s__anonymous8_1).__i__s_1=___src__13s__anonymous8_1.__i__s_1)); 224 233 return ((struct __anonymous8 )___src__13s__anonymous8_1); 225 }226 static inline void ___constructor__F_P13s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1){227 ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))) /* ?{} */);228 }229 static inline void ___constructor__F_P13s__anonymous813s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, struct __anonymous8 ___src__13s__anonymous8_1){230 ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))=___src__13s__anonymous8_1.__i__s_1) /* ?{} */);231 }232 static inline void ___destructor__F_P13s__anonymous8_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1){233 ((void)((*((short *)(&(*___dst__P13s__anonymous8_1).__i__s_1)))) /* ^?{} */);234 234 } 235 235 static inline void ___constructor__F_P13s__anonymous8s_autogen___1(struct __anonymous8 *___dst__P13s__anonymous8_1, short __i__s_1){ … … 244 244 static inline void ___constructor__F_P13s__anonymous913s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, struct __anonymous9 ___src__13s__anonymous9_1); 245 245 static inline void ___destructor__F_P13s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1); 246 static inline void ___constructor__F_P13s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1){ 247 ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))) /* ?{} */); 248 } 249 static inline void ___constructor__F_P13s__anonymous913s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, struct __anonymous9 ___src__13s__anonymous9_1){ 250 ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))=___src__13s__anonymous9_1.__i__s_1) /* ?{} */); 251 } 252 static inline void ___destructor__F_P13s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1){ 253 ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))) /* ^?{} */); 254 } 246 255 static inline struct __anonymous9 ___operator_assign__F13s__anonymous9_P13s__anonymous913s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, struct __anonymous9 ___src__13s__anonymous9_1){ 247 256 ((void)((*___dst__P13s__anonymous9_1).__i__s_1=___src__13s__anonymous9_1.__i__s_1)); 248 257 return ((struct __anonymous9 )___src__13s__anonymous9_1); 249 }250 static inline void ___constructor__F_P13s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1){251 ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))) /* ?{} */);252 }253 static inline void ___constructor__F_P13s__anonymous913s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, struct __anonymous9 ___src__13s__anonymous9_1){254 ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))=___src__13s__anonymous9_1.__i__s_1) /* ?{} */);255 }256 static inline void ___destructor__F_P13s__anonymous9_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1){257 ((void)((*((short *)(&(*___dst__P13s__anonymous9_1).__i__s_1)))) /* ^?{} */);258 258 } 259 259 static inline void ___constructor__F_P13s__anonymous9s_autogen___1(struct __anonymous9 *___dst__P13s__anonymous9_1, short __i__s_1){ … … 268 268 static inline void ___constructor__F_P14s__anonymous1014s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, struct __anonymous10 ___src__14s__anonymous10_1); 269 269 static inline void ___destructor__F_P14s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1); 270 static inline void ___constructor__F_P14s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1){ 271 ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))) /* ?{} */); 272 } 273 static inline void ___constructor__F_P14s__anonymous1014s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, struct __anonymous10 ___src__14s__anonymous10_1){ 274 ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))=___src__14s__anonymous10_1.__i__s_1) /* ?{} */); 275 } 276 static inline void ___destructor__F_P14s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1){ 277 ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))) /* ^?{} */); 278 } 270 279 static inline struct __anonymous10 ___operator_assign__F14s__anonymous10_P14s__anonymous1014s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, struct __anonymous10 ___src__14s__anonymous10_1){ 271 280 ((void)((*___dst__P14s__anonymous10_1).__i__s_1=___src__14s__anonymous10_1.__i__s_1)); 272 281 return ((struct __anonymous10 )___src__14s__anonymous10_1); 273 }274 static inline void ___constructor__F_P14s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1){275 ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))) /* ?{} */);276 }277 static inline void ___constructor__F_P14s__anonymous1014s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, struct __anonymous10 ___src__14s__anonymous10_1){278 ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))=___src__14s__anonymous10_1.__i__s_1) /* ?{} */);279 }280 static inline void ___destructor__F_P14s__anonymous10_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1){281 ((void)((*((short *)(&(*___dst__P14s__anonymous10_1).__i__s_1)))) /* ^?{} */);282 282 } 283 283 static inline void ___constructor__F_P14s__anonymous10s_autogen___1(struct __anonymous10 *___dst__P14s__anonymous10_1, short __i__s_1){ … … 292 292 static inline void ___constructor__F_P14s__anonymous1114s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, struct __anonymous11 ___src__14s__anonymous11_1); 293 293 static inline void ___destructor__F_P14s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1); 294 static inline void ___constructor__F_P14s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1){ 295 ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))) /* ?{} */); 296 } 297 static inline void ___constructor__F_P14s__anonymous1114s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, struct __anonymous11 ___src__14s__anonymous11_1){ 298 ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))=___src__14s__anonymous11_1.__i__s_1) /* ?{} */); 299 } 300 static inline void ___destructor__F_P14s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1){ 301 ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))) /* ^?{} */); 302 } 294 303 static inline struct __anonymous11 ___operator_assign__F14s__anonymous11_P14s__anonymous1114s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, struct __anonymous11 ___src__14s__anonymous11_1){ 295 304 ((void)((*___dst__P14s__anonymous11_1).__i__s_1=___src__14s__anonymous11_1.__i__s_1)); 296 305 return ((struct __anonymous11 )___src__14s__anonymous11_1); 297 }298 static inline void ___constructor__F_P14s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1){299 ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))) /* ?{} */);300 }301 static inline void ___constructor__F_P14s__anonymous1114s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, struct __anonymous11 ___src__14s__anonymous11_1){302 ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))=___src__14s__anonymous11_1.__i__s_1) /* ?{} */);303 }304 static inline void ___destructor__F_P14s__anonymous11_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1){305 ((void)((*((short *)(&(*___dst__P14s__anonymous11_1).__i__s_1)))) /* ^?{} */);306 306 } 307 307 static inline void ___constructor__F_P14s__anonymous11s_autogen___1(struct __anonymous11 *___dst__P14s__anonymous11_1, short __i__s_1){ … … 316 316 static inline void ___constructor__F_P14s__anonymous1214s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, struct __anonymous12 ___src__14s__anonymous12_1); 317 317 static inline void ___destructor__F_P14s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1); 318 static inline void ___constructor__F_P14s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1){ 319 ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))) /* ?{} */); 320 } 321 static inline void ___constructor__F_P14s__anonymous1214s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, struct __anonymous12 ___src__14s__anonymous12_1){ 322 ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))=___src__14s__anonymous12_1.__i__s_1) /* ?{} */); 323 } 324 static inline void ___destructor__F_P14s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1){ 325 ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))) /* ^?{} */); 326 } 318 327 static inline struct __anonymous12 ___operator_assign__F14s__anonymous12_P14s__anonymous1214s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, struct __anonymous12 ___src__14s__anonymous12_1){ 319 328 ((void)((*___dst__P14s__anonymous12_1).__i__s_1=___src__14s__anonymous12_1.__i__s_1)); 320 329 return ((struct __anonymous12 )___src__14s__anonymous12_1); 321 }322 static inline void ___constructor__F_P14s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1){323 ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))) /* ?{} */);324 }325 static inline void ___constructor__F_P14s__anonymous1214s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, struct __anonymous12 ___src__14s__anonymous12_1){326 ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))=___src__14s__anonymous12_1.__i__s_1) /* ?{} */);327 }328 static inline void ___destructor__F_P14s__anonymous12_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1){329 ((void)((*((short *)(&(*___dst__P14s__anonymous12_1).__i__s_1)))) /* ^?{} */);330 330 } 331 331 static inline void ___constructor__F_P14s__anonymous12s_autogen___1(struct __anonymous12 *___dst__P14s__anonymous12_1, short __i__s_1){ … … 340 340 static inline void ___constructor__F_P14s__anonymous1314s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, struct __anonymous13 ___src__14s__anonymous13_1); 341 341 static inline void ___destructor__F_P14s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1); 342 static inline void ___constructor__F_P14s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1){ 343 ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))) /* ?{} */); 344 } 345 static inline void ___constructor__F_P14s__anonymous1314s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, struct __anonymous13 ___src__14s__anonymous13_1){ 346 ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))=___src__14s__anonymous13_1.__i__s_1) /* ?{} */); 347 } 348 static inline void ___destructor__F_P14s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1){ 349 ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))) /* ^?{} */); 350 } 342 351 static inline struct __anonymous13 ___operator_assign__F14s__anonymous13_P14s__anonymous1314s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, struct __anonymous13 ___src__14s__anonymous13_1){ 343 352 ((void)((*___dst__P14s__anonymous13_1).__i__s_1=___src__14s__anonymous13_1.__i__s_1)); 344 353 return ((struct __anonymous13 )___src__14s__anonymous13_1); 345 }346 static inline void ___constructor__F_P14s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1){347 ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))) /* ?{} */);348 }349 static inline void ___constructor__F_P14s__anonymous1314s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, struct __anonymous13 ___src__14s__anonymous13_1){350 ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))=___src__14s__anonymous13_1.__i__s_1) /* ?{} */);351 }352 static inline void ___destructor__F_P14s__anonymous13_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1){353 ((void)((*((short *)(&(*___dst__P14s__anonymous13_1).__i__s_1)))) /* ^?{} */);354 354 } 355 355 static inline void ___constructor__F_P14s__anonymous13s_autogen___1(struct __anonymous13 *___dst__P14s__anonymous13_1, short __i__s_1){ … … 364 364 static inline void ___constructor__F_P14s__anonymous1414s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, struct __anonymous14 ___src__14s__anonymous14_1); 365 365 static inline void ___destructor__F_P14s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1); 366 static inline void ___constructor__F_P14s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1){ 367 ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))) /* ?{} */); 368 } 369 static inline void ___constructor__F_P14s__anonymous1414s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, struct __anonymous14 ___src__14s__anonymous14_1){ 370 ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))=___src__14s__anonymous14_1.__i__s_1) /* ?{} */); 371 } 372 static inline void ___destructor__F_P14s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1){ 373 ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))) /* ^?{} */); 374 } 366 375 static inline struct __anonymous14 ___operator_assign__F14s__anonymous14_P14s__anonymous1414s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, struct __anonymous14 ___src__14s__anonymous14_1){ 367 376 ((void)((*___dst__P14s__anonymous14_1).__i__s_1=___src__14s__anonymous14_1.__i__s_1)); 368 377 return ((struct __anonymous14 )___src__14s__anonymous14_1); 369 }370 static inline void ___constructor__F_P14s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1){371 ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))) /* ?{} */);372 }373 static inline void ___constructor__F_P14s__anonymous1414s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, struct __anonymous14 ___src__14s__anonymous14_1){374 ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))=___src__14s__anonymous14_1.__i__s_1) /* ?{} */);375 }376 static inline void ___destructor__F_P14s__anonymous14_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1){377 ((void)((*((short *)(&(*___dst__P14s__anonymous14_1).__i__s_1)))) /* ^?{} */);378 378 } 379 379 static inline void ___constructor__F_P14s__anonymous14s_autogen___1(struct __anonymous14 *___dst__P14s__anonymous14_1, short __i__s_1){ … … 388 388 static inline void ___constructor__F_P14s__anonymous1514s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, struct __anonymous15 ___src__14s__anonymous15_1); 389 389 static inline void ___destructor__F_P14s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1); 390 static inline void ___constructor__F_P14s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1){ 391 ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))) /* ?{} */); 392 } 393 static inline void ___constructor__F_P14s__anonymous1514s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, struct __anonymous15 ___src__14s__anonymous15_1){ 394 ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))=___src__14s__anonymous15_1.__i__s_1) /* ?{} */); 395 } 396 static inline void ___destructor__F_P14s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1){ 397 ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))) /* ^?{} */); 398 } 390 399 static inline struct __anonymous15 ___operator_assign__F14s__anonymous15_P14s__anonymous1514s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, struct __anonymous15 ___src__14s__anonymous15_1){ 391 400 ((void)((*___dst__P14s__anonymous15_1).__i__s_1=___src__14s__anonymous15_1.__i__s_1)); 392 401 return ((struct __anonymous15 )___src__14s__anonymous15_1); 393 }394 static inline void ___constructor__F_P14s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1){395 ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))) /* ?{} */);396 }397 static inline void ___constructor__F_P14s__anonymous1514s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, struct __anonymous15 ___src__14s__anonymous15_1){398 ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))=___src__14s__anonymous15_1.__i__s_1) /* ?{} */);399 }400 static inline void ___destructor__F_P14s__anonymous15_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1){401 ((void)((*((short *)(&(*___dst__P14s__anonymous15_1).__i__s_1)))) /* ^?{} */);402 402 } 403 403 static inline void ___constructor__F_P14s__anonymous15s_autogen___1(struct __anonymous15 *___dst__P14s__anonymous15_1, short __i__s_1){ … … 428 428 static inline void ___constructor__F_P14s__anonymous1614s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, struct __anonymous16 ___src__14s__anonymous16_1); 429 429 static inline void ___destructor__F_P14s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1); 430 static inline void ___constructor__F_P14s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1){ 431 ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))) /* ?{} */); 432 } 433 static inline void ___constructor__F_P14s__anonymous1614s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, struct __anonymous16 ___src__14s__anonymous16_1){ 434 ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))=___src__14s__anonymous16_1.__i__i_1) /* ?{} */); 435 } 436 static inline void ___destructor__F_P14s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1){ 437 ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))) /* ^?{} */); 438 } 430 439 static inline struct __anonymous16 ___operator_assign__F14s__anonymous16_P14s__anonymous1614s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, struct __anonymous16 ___src__14s__anonymous16_1){ 431 440 ((void)((*___dst__P14s__anonymous16_1).__i__i_1=___src__14s__anonymous16_1.__i__i_1)); 432 441 return ((struct __anonymous16 )___src__14s__anonymous16_1); 433 }434 static inline void ___constructor__F_P14s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1){435 ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))) /* ?{} */);436 }437 static inline void ___constructor__F_P14s__anonymous1614s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, struct __anonymous16 ___src__14s__anonymous16_1){438 ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))=___src__14s__anonymous16_1.__i__i_1) /* ?{} */);439 }440 static inline void ___destructor__F_P14s__anonymous16_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1){441 ((void)((*((int *)(&(*___dst__P14s__anonymous16_1).__i__i_1)))) /* ^?{} */);442 442 } 443 443 static inline void ___constructor__F_P14s__anonymous16i_autogen___1(struct __anonymous16 *___dst__P14s__anonymous16_1, int __i__i_1){ … … 452 452 static inline void ___constructor__F_P14s__anonymous1714s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, struct __anonymous17 ___src__14s__anonymous17_1); 453 453 static inline void ___destructor__F_P14s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1); 454 static inline void ___constructor__F_P14s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1){ 455 ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))) /* ?{} */); 456 } 457 static inline void ___constructor__F_P14s__anonymous1714s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, struct __anonymous17 ___src__14s__anonymous17_1){ 458 ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))=___src__14s__anonymous17_1.__i__i_1) /* ?{} */); 459 } 460 static inline void ___destructor__F_P14s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1){ 461 ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))) /* ^?{} */); 462 } 454 463 static inline struct __anonymous17 ___operator_assign__F14s__anonymous17_P14s__anonymous1714s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, struct __anonymous17 ___src__14s__anonymous17_1){ 455 464 ((void)((*___dst__P14s__anonymous17_1).__i__i_1=___src__14s__anonymous17_1.__i__i_1)); 456 465 return ((struct __anonymous17 )___src__14s__anonymous17_1); 457 }458 static inline void ___constructor__F_P14s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1){459 ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))) /* ?{} */);460 }461 static inline void ___constructor__F_P14s__anonymous1714s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, struct __anonymous17 ___src__14s__anonymous17_1){462 ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))=___src__14s__anonymous17_1.__i__i_1) /* ?{} */);463 }464 static inline void ___destructor__F_P14s__anonymous17_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1){465 ((void)((*((int *)(&(*___dst__P14s__anonymous17_1).__i__i_1)))) /* ^?{} */);466 466 } 467 467 static inline void ___constructor__F_P14s__anonymous17i_autogen___1(struct __anonymous17 *___dst__P14s__anonymous17_1, int __i__i_1){ … … 476 476 static inline void ___constructor__F_P14s__anonymous1814s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, struct __anonymous18 ___src__14s__anonymous18_1); 477 477 static inline void ___destructor__F_P14s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1); 478 static inline void ___constructor__F_P14s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1){ 479 ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))) /* ?{} */); 480 } 481 static inline void ___constructor__F_P14s__anonymous1814s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, struct __anonymous18 ___src__14s__anonymous18_1){ 482 ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))=___src__14s__anonymous18_1.__i__i_1) /* ?{} */); 483 } 484 static inline void ___destructor__F_P14s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1){ 485 ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))) /* ^?{} */); 486 } 478 487 static inline struct __anonymous18 ___operator_assign__F14s__anonymous18_P14s__anonymous1814s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, struct __anonymous18 ___src__14s__anonymous18_1){ 479 488 ((void)((*___dst__P14s__anonymous18_1).__i__i_1=___src__14s__anonymous18_1.__i__i_1)); 480 489 return ((struct __anonymous18 )___src__14s__anonymous18_1); 481 }482 static inline void ___constructor__F_P14s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1){483 ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))) /* ?{} */);484 }485 static inline void ___constructor__F_P14s__anonymous1814s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, struct __anonymous18 ___src__14s__anonymous18_1){486 ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))=___src__14s__anonymous18_1.__i__i_1) /* ?{} */);487 }488 static inline void ___destructor__F_P14s__anonymous18_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1){489 ((void)((*((int *)(&(*___dst__P14s__anonymous18_1).__i__i_1)))) /* ^?{} */);490 490 } 491 491 static inline void ___constructor__F_P14s__anonymous18i_autogen___1(struct __anonymous18 *___dst__P14s__anonymous18_1, int __i__i_1){ … … 500 500 static inline void ___constructor__F_P14s__anonymous1914s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, struct __anonymous19 ___src__14s__anonymous19_1); 501 501 static inline void ___destructor__F_P14s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1); 502 static inline void ___constructor__F_P14s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1){ 503 ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))) /* ?{} */); 504 } 505 static inline void ___constructor__F_P14s__anonymous1914s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, struct __anonymous19 ___src__14s__anonymous19_1){ 506 ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))=___src__14s__anonymous19_1.__i__i_1) /* ?{} */); 507 } 508 static inline void ___destructor__F_P14s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1){ 509 ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))) /* ^?{} */); 510 } 502 511 static inline struct __anonymous19 ___operator_assign__F14s__anonymous19_P14s__anonymous1914s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, struct __anonymous19 ___src__14s__anonymous19_1){ 503 512 ((void)((*___dst__P14s__anonymous19_1).__i__i_1=___src__14s__anonymous19_1.__i__i_1)); 504 513 return ((struct __anonymous19 )___src__14s__anonymous19_1); 505 }506 static inline void ___constructor__F_P14s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1){507 ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))) /* ?{} */);508 }509 static inline void ___constructor__F_P14s__anonymous1914s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, struct __anonymous19 ___src__14s__anonymous19_1){510 ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))=___src__14s__anonymous19_1.__i__i_1) /* ?{} */);511 }512 static inline void ___destructor__F_P14s__anonymous19_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1){513 ((void)((*((int *)(&(*___dst__P14s__anonymous19_1).__i__i_1)))) /* ^?{} */);514 514 } 515 515 static inline void ___constructor__F_P14s__anonymous19i_autogen___1(struct __anonymous19 *___dst__P14s__anonymous19_1, int __i__i_1){ … … 524 524 static inline void ___constructor__F_P14s__anonymous2014s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, struct __anonymous20 ___src__14s__anonymous20_1); 525 525 static inline void ___destructor__F_P14s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1); 526 static inline void ___constructor__F_P14s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1){ 527 ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))) /* ?{} */); 528 } 529 static inline void ___constructor__F_P14s__anonymous2014s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, struct __anonymous20 ___src__14s__anonymous20_1){ 530 ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))=___src__14s__anonymous20_1.__i__i_1) /* ?{} */); 531 } 532 static inline void ___destructor__F_P14s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1){ 533 ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))) /* ^?{} */); 534 } 526 535 static inline struct __anonymous20 ___operator_assign__F14s__anonymous20_P14s__anonymous2014s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, struct __anonymous20 ___src__14s__anonymous20_1){ 527 536 ((void)((*___dst__P14s__anonymous20_1).__i__i_1=___src__14s__anonymous20_1.__i__i_1)); 528 537 return ((struct __anonymous20 )___src__14s__anonymous20_1); 529 }530 static inline void ___constructor__F_P14s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1){531 ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))) /* ?{} */);532 }533 static inline void ___constructor__F_P14s__anonymous2014s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, struct __anonymous20 ___src__14s__anonymous20_1){534 ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))=___src__14s__anonymous20_1.__i__i_1) /* ?{} */);535 }536 static inline void ___destructor__F_P14s__anonymous20_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1){537 ((void)((*((int *)(&(*___dst__P14s__anonymous20_1).__i__i_1)))) /* ^?{} */);538 538 } 539 539 static inline void ___constructor__F_P14s__anonymous20i_autogen___1(struct __anonymous20 *___dst__P14s__anonymous20_1, int __i__i_1){ … … 548 548 static inline void ___constructor__F_P14s__anonymous2114s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, struct __anonymous21 ___src__14s__anonymous21_1); 549 549 static inline void ___destructor__F_P14s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1); 550 static inline void ___constructor__F_P14s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1){ 551 ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))) /* ?{} */); 552 } 553 static inline void ___constructor__F_P14s__anonymous2114s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, struct __anonymous21 ___src__14s__anonymous21_1){ 554 ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))=___src__14s__anonymous21_1.__i__i_1) /* ?{} */); 555 } 556 static inline void ___destructor__F_P14s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1){ 557 ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))) /* ^?{} */); 558 } 550 559 static inline struct __anonymous21 ___operator_assign__F14s__anonymous21_P14s__anonymous2114s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, struct __anonymous21 ___src__14s__anonymous21_1){ 551 560 ((void)((*___dst__P14s__anonymous21_1).__i__i_1=___src__14s__anonymous21_1.__i__i_1)); 552 561 return ((struct __anonymous21 )___src__14s__anonymous21_1); 553 }554 static inline void ___constructor__F_P14s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1){555 ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))) /* ?{} */);556 }557 static inline void ___constructor__F_P14s__anonymous2114s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, struct __anonymous21 ___src__14s__anonymous21_1){558 ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))=___src__14s__anonymous21_1.__i__i_1) /* ?{} */);559 }560 static inline void ___destructor__F_P14s__anonymous21_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1){561 ((void)((*((int *)(&(*___dst__P14s__anonymous21_1).__i__i_1)))) /* ^?{} */);562 562 } 563 563 static inline void ___constructor__F_P14s__anonymous21i_autogen___1(struct __anonymous21 *___dst__P14s__anonymous21_1, int __i__i_1){ … … 572 572 static inline void ___constructor__F_P14s__anonymous2214s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, struct __anonymous22 ___src__14s__anonymous22_1); 573 573 static inline void ___destructor__F_P14s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1); 574 static inline void ___constructor__F_P14s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1){ 575 ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))) /* ?{} */); 576 } 577 static inline void ___constructor__F_P14s__anonymous2214s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, struct __anonymous22 ___src__14s__anonymous22_1){ 578 ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))=___src__14s__anonymous22_1.__i__i_1) /* ?{} */); 579 } 580 static inline void ___destructor__F_P14s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1){ 581 ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))) /* ^?{} */); 582 } 574 583 static inline struct __anonymous22 ___operator_assign__F14s__anonymous22_P14s__anonymous2214s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, struct __anonymous22 ___src__14s__anonymous22_1){ 575 584 ((void)((*___dst__P14s__anonymous22_1).__i__i_1=___src__14s__anonymous22_1.__i__i_1)); 576 585 return ((struct __anonymous22 )___src__14s__anonymous22_1); 577 }578 static inline void ___constructor__F_P14s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1){579 ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))) /* ?{} */);580 }581 static inline void ___constructor__F_P14s__anonymous2214s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, struct __anonymous22 ___src__14s__anonymous22_1){582 ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))=___src__14s__anonymous22_1.__i__i_1) /* ?{} */);583 }584 static inline void ___destructor__F_P14s__anonymous22_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1){585 ((void)((*((int *)(&(*___dst__P14s__anonymous22_1).__i__i_1)))) /* ^?{} */);586 586 } 587 587 static inline void ___constructor__F_P14s__anonymous22i_autogen___1(struct __anonymous22 *___dst__P14s__anonymous22_1, int __i__i_1){ … … 596 596 static inline void ___constructor__F_P14s__anonymous2314s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, struct __anonymous23 ___src__14s__anonymous23_1); 597 597 static inline void ___destructor__F_P14s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1); 598 static inline void ___constructor__F_P14s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1){ 599 ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))) /* ?{} */); 600 } 601 static inline void ___constructor__F_P14s__anonymous2314s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, struct __anonymous23 ___src__14s__anonymous23_1){ 602 ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))=___src__14s__anonymous23_1.__i__i_1) /* ?{} */); 603 } 604 static inline void ___destructor__F_P14s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1){ 605 ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))) /* ^?{} */); 606 } 598 607 static inline struct __anonymous23 ___operator_assign__F14s__anonymous23_P14s__anonymous2314s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, struct __anonymous23 ___src__14s__anonymous23_1){ 599 608 ((void)((*___dst__P14s__anonymous23_1).__i__i_1=___src__14s__anonymous23_1.__i__i_1)); 600 609 return ((struct __anonymous23 )___src__14s__anonymous23_1); 601 }602 static inline void ___constructor__F_P14s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1){603 ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))) /* ?{} */);604 }605 static inline void ___constructor__F_P14s__anonymous2314s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, struct __anonymous23 ___src__14s__anonymous23_1){606 ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))=___src__14s__anonymous23_1.__i__i_1) /* ?{} */);607 }608 static inline void ___destructor__F_P14s__anonymous23_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1){609 ((void)((*((int *)(&(*___dst__P14s__anonymous23_1).__i__i_1)))) /* ^?{} */);610 610 } 611 611 static inline void ___constructor__F_P14s__anonymous23i_autogen___1(struct __anonymous23 *___dst__P14s__anonymous23_1, int __i__i_1){ … … 622 622 static inline volatile const short __f48__FCVs___1(); 623 623 int main(int __argc__i_1, const char **__argv__PPCc_1){ 624 int _ retVal0 = { 0 };625 ((void)(_ retVal0=0) /* ?{} */);626 return ((int )_ retVal0);627 } 624 int ___retval_main__i_1; 625 ((void)(___retval_main__i_1=((int )0)) /* ?{} */); 626 return ((int )___retval_main__i_1); 627 } -
src/tests/.expect/32/extension.txt
r5802a4f r66f8528 61 61 } 62 62 static inline void ___constructor__F_P2uU2uU_autogen___1(union U *___dst__P2uU_1, union U ___src__2uU_1){ 63 void *_tmp_cp_ret0; 64 ((void)((_tmp_cp_ret0=__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))) , _tmp_cp_ret0)); 65 ((void)(_tmp_cp_ret0) /* ^?{} */); 63 ((void)__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))); 66 64 } 67 65 static inline void ___destructor__F_P2uU_autogen___1(union U *___dst__P2uU_1){ 68 66 } 69 67 static inline union U ___operator_assign__F2uU_P2uU2uU_autogen___1(union U *___dst__P2uU_1, union U ___src__2uU_1){ 70 void *_tmp_cp_ret1; 71 ((void)((_tmp_cp_ret1=__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))) , _tmp_cp_ret1)); 72 ((void)(_tmp_cp_ret1) /* ^?{} */); 68 ((void)__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))); 73 69 return ((union U )___src__2uU_1); 74 70 } 75 71 static inline void ___constructor__F_P2uUi_autogen___1(union U *___dst__P2uU_1, int __src__i_1){ 76 void *_tmp_cp_ret2; 77 ((void)((_tmp_cp_ret2=__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&__src__i_1)), sizeof(int ))) , _tmp_cp_ret2)); 78 ((void)(_tmp_cp_ret2) /* ^?{} */); 72 ((void)__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&__src__i_1)), sizeof(int ))); 79 73 } 80 74 __extension__ enum E { … … 97 91 __extension__ int __c__i_2; 98 92 ((void)(__extension__ __a__i_2=(__extension__ __b__i_2+__extension__ __c__i_2))); 99 int _tmp_cp_ret 3;100 ((void)((_tmp_cp_ret 3=__extension__ __fred__Fi_i__1(3)) , _tmp_cp_ret3));101 ((void)(_tmp_cp_ret 3) /* ^?{} */);93 int _tmp_cp_ret0; 94 ((void)((_tmp_cp_ret0=__extension__ __fred__Fi_i__1(3)) , _tmp_cp_ret0)); 95 ((void)(_tmp_cp_ret0) /* ^?{} */); 102 96 ((void)__extension__ sizeof(3)); 103 ((void)__extension__ (((int )(3!= 0)) || ((int )(4!=0))));97 ((void)__extension__ (((int )(3!=((int )0))) || ((int )(4!=((int )0))))); 104 98 ((void)__extension__ __alignof__(__extension__ __a__i_2)); 105 ((void)(((int )(__extension__ __a__i_2!= 0)) || ((int )((((int )(__extension__ __b__i_2!=0)) && ((int )(__extension__ __c__i_2!=0)))!=0))));106 ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!= 0)) ? __extension__ __c__i_2 : __extension__ __c__i_2));99 ((void)(((int )(__extension__ __a__i_2!=((int )0))) || ((int )((((int )(__extension__ __b__i_2!=((int )0))) && ((int )(__extension__ __c__i_2!=((int )0))))!=((int )0))))); 100 ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!=((int )0))) ? __extension__ __c__i_2 : __extension__ __c__i_2)); 107 101 ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2))); 108 102 ((void)((__extension__ __a__i_2 , __extension__ __b__i_2) , __extension__ __c__i_2)); -
src/tests/.expect/32/gccExtensions.txt
r5802a4f r66f8528 5 5 extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 extern int __x__i_1 ;7 extern int __x__i_1 asm ( "xx" ); 8 8 int main(int __argc__i_1, const char **__argv__PPCc_1){ 9 9 int ___retval_main__i_1; … … 11 11 asm ( "nop" : : : ); 12 12 asm ( "nop" : : : ); 13 static int __y__i_2 ;14 static int *__z__Pi_2 ;13 static int __y__i_2 asm ( "yy" ); 14 static int *__z__Pi_2 asm ( "zz" ); 15 15 int __src__i_2; 16 16 int __dst__i_2; … … 160 160 int __m2__A0A0i_2[((unsigned int )10)][((unsigned int )10)]; 161 161 int __m3__A0A0i_2[((unsigned int )10)][((unsigned int )10)]; 162 ((void)(___retval_main__i_1= 0) /* ?{} */);162 ((void)(___retval_main__i_1=((int )0)) /* ?{} */); 163 163 return ((int )___retval_main__i_1); 164 164 } -
src/tests/.expect/64/declarationSpecifier.txt
r5802a4f r66f8528 623 623 int main(int __argc__i_1, const char **__argv__PPCc_1){ 624 624 int ___retval_main__i_1; 625 ((void)(___retval_main__i_1= 0) /* ?{} */);625 ((void)(___retval_main__i_1=((int )0)) /* ?{} */); 626 626 return ((int )___retval_main__i_1); 627 627 } -
src/tests/.expect/64/extension.txt
r5802a4f r66f8528 61 61 } 62 62 static inline void ___constructor__F_P2uU2uU_autogen___1(union U *___dst__P2uU_1, union U ___src__2uU_1){ 63 void *_tmp_cp_ret0; 64 ((void)((_tmp_cp_ret0=__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))) , _tmp_cp_ret0)); 65 ((void)(_tmp_cp_ret0) /* ^?{} */); 63 ((void)__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))); 66 64 } 67 65 static inline void ___destructor__F_P2uU_autogen___1(union U *___dst__P2uU_1){ 68 66 } 69 67 static inline union U ___operator_assign__F2uU_P2uU2uU_autogen___1(union U *___dst__P2uU_1, union U ___src__2uU_1){ 70 void *_tmp_cp_ret1; 71 ((void)((_tmp_cp_ret1=__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))) , _tmp_cp_ret1)); 72 ((void)(_tmp_cp_ret1) /* ^?{} */); 68 ((void)__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&___src__2uU_1)), sizeof(union U ))); 73 69 return ((union U )___src__2uU_1); 74 70 } 75 71 static inline void ___constructor__F_P2uUi_autogen___1(union U *___dst__P2uU_1, int __src__i_1){ 76 void *_tmp_cp_ret2; 77 ((void)((_tmp_cp_ret2=__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&__src__i_1)), sizeof(int ))) , _tmp_cp_ret2)); 78 ((void)(_tmp_cp_ret2) /* ^?{} */); 72 ((void)__builtin_memcpy(((void *)___dst__P2uU_1), ((const void *)(&__src__i_1)), sizeof(int ))); 79 73 } 80 74 __extension__ enum E { … … 97 91 __extension__ int __c__i_2; 98 92 ((void)(__extension__ __a__i_2=(__extension__ __b__i_2+__extension__ __c__i_2))); 99 int _tmp_cp_ret 3;100 ((void)((_tmp_cp_ret 3=__extension__ __fred__Fi_i__1(3)) , _tmp_cp_ret3));101 ((void)(_tmp_cp_ret 3) /* ^?{} */);93 int _tmp_cp_ret0; 94 ((void)((_tmp_cp_ret0=__extension__ __fred__Fi_i__1(3)) , _tmp_cp_ret0)); 95 ((void)(_tmp_cp_ret0) /* ^?{} */); 102 96 ((void)__extension__ sizeof(3)); 103 ((void)__extension__ (((int )(3!= 0)) || ((int )(4!=0))));97 ((void)__extension__ (((int )(3!=((int )0))) || ((int )(4!=((int )0))))); 104 98 ((void)__extension__ __alignof__(__extension__ __a__i_2)); 105 ((void)(((int )(__extension__ __a__i_2!= 0)) || ((int )((((int )(__extension__ __b__i_2!=0)) && ((int )(__extension__ __c__i_2!=0)))!=0))));106 ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!= 0)) ? __extension__ __c__i_2 : __extension__ __c__i_2));99 ((void)(((int )(__extension__ __a__i_2!=((int )0))) || ((int )((((int )(__extension__ __b__i_2!=((int )0))) && ((int )(__extension__ __c__i_2!=((int )0))))!=((int )0))))); 100 ((void)(((int )((__extension__ __a__i_2>__extension__ __b__i_2)!=((int )0))) ? __extension__ __c__i_2 : __extension__ __c__i_2)); 107 101 ((void)(__extension__ __a__i_2=__extension__ (__extension__ __b__i_2+__extension__ __c__i_2))); 108 102 ((void)((__extension__ __a__i_2 , __extension__ __b__i_2) , __extension__ __c__i_2)); -
src/tests/.expect/64/gccExtensions.txt
r5802a4f r66f8528 5 5 extern void exit(int __status); 6 6 extern int printf(const char *__restrict __format, ...); 7 extern int __x__i_1 ;7 extern int __x__i_1 asm ( "xx" ); 8 8 int main(int __argc__i_1, const char **__argv__PPCc_1){ 9 9 int ___retval_main__i_1; … … 11 11 asm ( "nop" : : : ); 12 12 asm ( "nop" : : : ); 13 static int __y__i_2 ;14 static int *__z__Pi_2 ;13 static int __y__i_2 asm ( "yy" ); 14 static int *__z__Pi_2 asm ( "zz" ); 15 15 int __src__i_2; 16 16 int __dst__i_2; … … 160 160 int __m2__A0A0i_2[((long unsigned int )10)][((long unsigned int )10)]; 161 161 int __m3__A0A0i_2[((long unsigned int )10)][((long unsigned int )10)]; 162 ((void)(___retval_main__i_1= 0) /* ?{} */);162 ((void)(___retval_main__i_1=((int )0)) /* ?{} */); 163 163 return ((int )___retval_main__i_1); 164 164 } -
src/tests/.expect/castError.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: Can't choose between 3 alternatives for expression Cast of: 3 2 Name: f -
src/tests/.expect/completeTypeError.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: No reasonable alternatives for expression Applying untyped: 3 2 Name: *? -
src/tests/.expect/constant0-1DP.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: duplicate object definition for 0: signed int 3 2 Error: duplicate object definition for 0: const signed int -
src/tests/.expect/constant0-1NDDP.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: duplicate object definition for 0: signed int 3 2 Error: duplicate object definition for 0: const signed int -
src/tests/.expect/declarationErrors.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: duplicate static in declaration of x1: static const volatile short int 3 2 -
src/tests/.expect/dtor-early-exit-ERR1.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: jump to label 'L1' crosses initialization of y Branch (Goto) 3 2 -
src/tests/.expect/dtor-early-exit-ERR2.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: jump to label 'L2' crosses initialization of y Branch (Goto) 3 2 -
src/tests/.expect/memberCtors-ERR1.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: in void ?{}(struct B *b), field a2 used before being constructed 3 2 make: *** [memberCtors-ERR1] Error 1 -
src/tests/.expect/scopeErrors.txt
r5802a4f r66f8528 1 CFA Version 1.0.0 (debug)2 1 Error: duplicate object definition for thisIsAnError: signed int 3 2 Error: duplicate function definition for butThisIsAnError: function -
src/tests/Makefile.am
r5802a4f r66f8528 15 15 ############################################################################### 16 16 17 debug=yes 18 17 19 # applies to both programs 18 CFLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ # TEMPORARY: does not build with -O2 20 EXTRA_FLAGS = 21 CFLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ ${EXTRA_FLAGS} 19 22 CC = @CFA_BINDIR@/cfa 20 23 … … 30 33 31 34 all-tests : 32 @+python test.py --all # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program35 @+python test.py --all --debug=${debug} # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program 33 36 34 37 clean-local : … … 54 57 55 58 declarationSpecifier: declarationSpecifier.c 56 ${CC} ${CF ALGS} -CFA -XCFA -p ${<} -o ${@}59 ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@} 57 60 58 61 gccExtensions : gccExtensions.c … … 63 66 64 67 memberCtors-ERR1: memberCtors.c 65 ${CC} ${CF ALGS} -DERR1 ${<} -o ${@}68 ${CC} ${CFLAGS} -DERR1 ${<} -o ${@} 66 69 67 70 completeTypeError : completeTypeError.c 68 ${CC} ${CF ALGS} -DERR1 ${<} -o ${@}71 ${CC} ${CFLAGS} -DERR1 ${<} -o ${@} -
src/tests/Makefile.in
r5802a4f r66f8528 35 35 PRE_UNINSTALL = : 36 36 POST_UNINSTALL = : 37 build_triplet = @build@ 38 host_triplet = @host@ 37 39 EXTRA_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT) \ 38 40 avl_test$(EXEEXT) constant0-1DP$(EXEEXT) \ … … 111 113 BACKEND_CC = @BACKEND_CC@ 112 114 CC = @CFA_BINDIR@/cfa 115 CCAS = @CCAS@ 116 CCASDEPMODE = @CCASDEPMODE@ 117 CCASFLAGS = @CCASFLAGS@ 113 118 CCDEPMODE = @CCDEPMODE@ 114 119 CFA_BACKEND_CC = @CFA_BACKEND_CC@ … … 118 123 CFA_LIBDIR = @CFA_LIBDIR@ 119 124 CFA_PREFIX = @CFA_PREFIX@ 120 121 # applies to both programs 122 CFLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ # TEMPORARY: does not build with -O2 125 CFLAGS = -g -Wall -Wno-unused-function @CFA_FLAGS@ ${EXTRA_FLAGS} 123 126 CPP = @CPP@ 124 127 CPPFLAGS = @CPPFLAGS@ … … 147 150 LIBS = @LIBS@ 148 151 LTLIBOBJS = @LTLIBOBJS@ 152 MACHINE_TYPE = @MACHINE_TYPE@ 149 153 MAINT = @MAINT@ 150 154 MAKEINFO = @MAKEINFO@ … … 178 182 am__untar = @am__untar@ 179 183 bindir = @bindir@ 184 build = @build@ 180 185 build_alias = @build_alias@ 186 build_cpu = @build_cpu@ 187 build_os = @build_os@ 188 build_vendor = @build_vendor@ 181 189 builddir = @builddir@ 182 190 datadir = @datadir@ … … 185 193 dvidir = @dvidir@ 186 194 exec_prefix = @exec_prefix@ 195 host = @host@ 187 196 host_alias = @host_alias@ 197 host_cpu = @host_cpu@ 198 host_os = @host_os@ 199 host_vendor = @host_vendor@ 188 200 htmldir = @htmldir@ 189 201 includedir = @includedir@ … … 209 221 top_builddir = @top_builddir@ 210 222 top_srcdir = @top_srcdir@ 223 debug = yes 224 225 # applies to both programs 226 EXTRA_FLAGS = 211 227 fstream_test_SOURCES = fstream_test.c 212 228 vector_test_SOURCES = vector/vector_int.c vector/array.c vector/vector_test.c … … 638 654 639 655 all-tests : 640 @+python test.py --all # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program656 @+python test.py --all --debug=${debug} # '@' => do not echo command (SILENT), '+' => allows recursive make from within python program 641 657 642 658 clean-local : … … 662 678 663 679 declarationSpecifier: declarationSpecifier.c 664 ${CC} ${CF ALGS} -CFA -XCFA -p ${<} -o ${@}680 ${CC} ${CFLAGS} -CFA -XCFA -p ${<} -o ${@} 665 681 666 682 gccExtensions : gccExtensions.c … … 671 687 672 688 memberCtors-ERR1: memberCtors.c 673 ${CC} ${CF ALGS} -DERR1 ${<} -o ${@}689 ${CC} ${CFLAGS} -DERR1 ${<} -o ${@} 674 690 675 691 completeTypeError : completeTypeError.c 676 ${CC} ${CF ALGS} -DERR1 ${<} -o ${@}692 ${CC} ${CFLAGS} -DERR1 ${<} -o ${@} 677 693 678 694 # Tell versions [3.59,3.63) of GNU make to not export all variables. -
src/tests/test.py
r5802a4f r66f8528 104 104 # running test functions 105 105 ################################################################################ 106 def run_single_test(test, generate, dry_run ):106 def run_single_test(test, generate, dry_run, debug): 107 107 108 108 # find the output file based on the test name and options flag … … 113 113 sh("rm -f %s > /dev/null 2>&1" % test.name, dry_run) 114 114 115 options = "-debug" if debug else "-nodebug"; 116 115 117 # build, skipping to next test on error 116 make_ret, _ = sh(" %s %s 2> %s 1> /dev/null" % (make_cmd, test.name, out_file), dry_run)118 make_ret, _ = sh("""%s EXTRA_FLAGS="-quiet %s" %s 2> %s 1> /dev/null""" % (make_cmd, options, test.name, out_file), dry_run) 117 119 118 120 # if the make command succeds continue otherwise skip to diff … … 165 167 return retcode, error 166 168 167 def run_test_instance(t, generate, dry_run ) :169 def run_test_instance(t, generate, dry_run, debug) : 168 170 # print formated name 169 171 name_txt = "%20s " % t.name 170 172 171 173 #run the test instance and collect the result 172 test_failed, error = run_single_test(t, generate, dry_run )174 test_failed, error = run_single_test(t, generate, dry_run, debug) 173 175 174 176 # update output based on current action … … 194 196 195 197 # run the given list of tests with the given parameters 196 def run_tests(tests, generate, dry_run, jobs ) :198 def run_tests(tests, generate, dry_run, jobs, debug) : 197 199 # clean the sandbox from previous commands 198 200 sh("%s clean > /dev/null 2>&1" % make_cmd, dry_run) … … 207 209 pool = Pool(jobs) 208 210 try : 209 results = pool.map_async(partial(run_test_instance, generate=generate, dry_run=dry_run ), tests ).get(99999999)211 results = pool.map_async(partial(run_test_instance, generate=generate, dry_run=dry_run, debug=debug), tests ).get(99999999) 210 212 except KeyboardInterrupt: 211 213 pool.terminate() … … 222 224 return 0 223 225 226 def yes_no(string): 227 if string == "yes" : 228 return True 229 if string == "no" : 230 return False 231 raise argparse.ArgumentTypeError(msg) 232 return False 233 234 224 235 ################################################################################ 225 236 # main loop … … 227 238 # create a parser with the arguments for the tests script 228 239 parser = argparse.ArgumentParser(description='Script which runs cforall tests') 240 parser.add_argument('--debug', help='Run all tests in debug or release', type=yes_no, default='no') 229 241 parser.add_argument('--dry-run', help='Don\'t run the tests, only output the commands', action='store_true') 230 242 parser.add_argument('--list', help='List all test available', action='store_true') … … 296 308 sys.exit(1) 297 309 298 print('Running on %i cores' % options.jobs)310 print('Running (%s) on %i cores' % ("debug" if options.debug else "no debug", options.jobs)) 299 311 make_cmd = "make" if make_flags else ("make -j%i" % options.jobs) 300 312 … … 305 317 else : 306 318 # otherwise run all tests and make sure to return the correct error code 307 sys.exit( run_tests(tests, options.regenerate_expected, options.dry_run, options.jobs ) )319 sys.exit( run_tests(tests, options.regenerate_expected, options.dry_run, options.jobs, options.debug) )
Note:
See TracChangeset
for help on using the changeset viewer.